结构光三维扫描中余弦光栅算法改进
2014-11-30贺行政
贺行政
(中国安全生产科学研究院,北京100012)
0 引 言
结构光三维扫描技术利用图像处理方法和立体视觉算法,测量复杂物体表面的三维坐标数据,属于计算机视觉技术领域。其硬件主要由光栅发生器、摄像机和计算单元组成,基本原理为,通过光栅发生器向被测物体表面投射系列光栅条纹,这些条纹分别被被测物体表面的形状所调制。利用摄像机摄取这些被调制的光栅图像,根据各图像的灰度特征,计算其各像点的相位值,然后根据左、右相机对应像点的相位值相等的特性,再结合外极线理论,确定彼此的立体匹配点。之后,运用专有算法计算出后得到物体表面各空间点的三维坐标[1,2]。扫描得到的坐标数据可以被导入第三方三维设计软件、数控加工设备和三维打印(3D打印)设备等。由于测量过程中不需接触被测物体表面,且速度快、精度高,该技术越被广泛应用于逆向工程、工业设计、个性化定制和医疗等领域[3-5]。目前的三维扫描设备中,普遍选用市售的投影仪作为光栅投射设备。由于投影仪是针对视频应用而设计的[6],设计时重点关注视觉对图像感知的需要,往往只能输出近似的余弦光栅图案[7],导致相位值计算发生偏离,增大了扫描结果的误差。为了减小数据误差,提高测量精度,本文对传统余弦光栅的扫描方式及相应计算方法进行了改进。
1 光栅扫描及其算法改进
1.1 传统光栅扫描及算法
典型的结构光三维扫描设备如图1(以双目视觉为例)所示。工作时,通常向被测物体表面投射两组具有一定规律的黑白图案的光栅条纹,其中一组为格雷码光栅,另一组为余弦光栅[8,9]。格雷码光栅是具有一定规律的黑白相间的竖条纹,是具有反射特性和循环特性的单步自补码,可靠性高。格雷码光栅图案示例如图2所示,其目的是为了确定图像上各像点的周期值。余弦光栅则是为了计算图像上各像点在其所在周期内 (通过格雷码光栅计算而来)的相位值。对每一个像点,综合其周期值和相位值,可得到其唯一的周期相位值。在双目视觉系统中,左、右两组图像里,在周期相位值相等的像点中,可以找出相互匹配点。在匹配点确定后,根据所在系统中的几何光学的原理,即可计算出相应空间点的三维坐标值[10]。
以8幅格雷码光栅为例说明图像上像点的周期值的计算过程。对摄像机所摄取的各幅格雷码图像的每个像素点,提取其灰度值,首先根据整个图像的灰度分布统计设定合适的阈值 (阈值的确定通常使用经改进后的大津算法),进行二值化处理。低于阈值灰度的图像位取值0,高于阈值灰度的图像位取值1,然后按顺序组合在一起,依据其编码规则计算周期值[10,11]。
具体的方法是,用0值与第一幅图像的各像点的二值化灰度值进行异或计算,结果存为周期值的第一位,再将周期值的第一位与第二幅图像的各像点的二值化灰度值进行异或计算,结果存为第二位,依次类推,最后将周期值的第7位与第8幅图像的各像点的二值化灰度值进行异或计算,结果存为第8位。在按上述步骤计算后,可以得到一个8位的二进制数,将其转换为十进制数值,称之为该像素点所在的周期值。使用8幅格雷码时,周期值范围为0-255。
在上述的每一个周期内,再投射一组余弦光栅。余弦光栅是强度按余弦函数规律变化的竖条纹,一般为3至6幅图案,每幅图案同时按照一定规律进行平移投射。我们以最常用的4幅为例说明。投射的4幅余弦光栅各自强度分布分别为 (其中,a表示环境光影响,b表示光栅亮度影响):
第1次:G1=a+b*sinφ。
第2次:G2=a-b*sinφ。
第3次:G3=a+b*cosφ。
第4次:G4=a-b*cosφ。
显然,根据4幅图像的灰度值的变化,可以计算出每一个周期内图像各像点的相位值φ。从上述公式中可以看到,所得到的相位值φ与环境光强度及光栅亮度变化无关[3,7]。
运用反三角函数,首先将每个周期内的相位值拟合为直线。为便于后续处理,将相位值值域取为 [0,1]。之后再结合其根据格雷码光栅所得的周期值,就可以计算出图像中同一行每一个像素点的周期相位值。这样,如果对标准白色平板投射上述光栅进行测量时,因为白色平板对各光栅的调制都是均匀的,所以图像中每一行的各像点的周期相位值,随着像素的推移应为一条线性向上的直线 (像素自左至右推移)。
以上的计算推导都是基于这样一个前提,就是假设光栅发生器所投射的是理想的余弦光栅图案。
1.2 传统光栅投影中存在的问题分析
在进行三维扫描时,为了确保输出数据的精度,希望所投射的光栅,尤其是余弦光栅,其图案条纹的灰度特性非常精准,按照理想曲线平滑变化[10]。但实际上,如上所述,目前普遍采用视频投影仪作为三维扫描的光栅发生器。在视频投影仪设计时,为了最大限度地满足使用者的视觉需要,更多地考虑了人的眼睛的视觉感应特点,其中包括物理特点、生理感觉特点及心理感知特点,依此对投影仪的输出光强进行了修正。人的眼睛对光线的感应曲线是一条非线性的曲线。而且,投影仪所投影图像的颜色信息,通常是由红、绿、蓝 (RGB)3种基色合成的,而眼睛对这3个基色也分别对应不同的感应曲线。这些因素决定了投影仪并不能投射理想的光栅图案[10]。
另外,由于RGB三基色的波长不同,在光学元件中的折射率也稍有不同。三束光线在透过投影仪的几何光学系统汇聚时,不能完全重合成一个点 (或一条线),将其放大后如图3所示。虽然这种现象人眼无法分辨,但对高精度的三维扫描系统来说,足以影响其数据的精度。
现代投影仪普遍使用数字化技术,所投射出的图案画面,实际上都是由数量众多的离散像点组成,其灰度值本身就是跳跃变化的。而且,在一部分三维扫描设备中,单个余弦光栅的宽度仅为几个像素,所以在模拟余弦光栅时,各离散点之间灰度差别很大,以常用总灰阶256计,灰度差可以大至127,因此,理论上很难获得理想的光滑变化的余弦曲线,而是近似处理后得到的结果。
图3 光栅汇聚偏离
综上所述,目前普遍使用的视频投影仪,并不是理想的光栅投射设备,不能投射出所需的余弦光栅。这样一来,相位的计算公式并不严格成立,只能获得近似值。特别是曲线变化较小区域,各像点的周期相位值与实际值之间发生较大偏离。因为相位值的计算局限于各个周期范围内,所以周期相位值的周期性偏差比较明显。其偏差直接影响到三维扫描所输出的坐标的测量精度,所以需要改进。
1.3 改进的光栅投射及其算法
针对上述问题,本文对投射方法进行了如下改进,为适应新的光栅,相位值的计算方法也进行了相应改变。
对于格雷码光栅,其具有单步互补特征,加之所投射的黑白条纹只有2种亮度状态,非高即低,这又进一步降低了误码率。而且在后续运算之前,事先作了二值化处理,参与运算的只有0值或1值,所以本身误差较小。实际计算时,即使仍然在个别像点发生错误,还可以通过其周边的像点的灰度值的关联关系进行修正处理。基于此,本文基本沿用了传统的思路。但改变了周期宽度,确定8个像素点为一个周期。其各点的周期值的计算原理及方法与传统算法相同。
而对于余弦光栅,其水平方向相邻各点的投射光强值需要遵照余弦函数的规律变化,由于上述1.2中所述原因,加之其参与运算的值是各像素的实际灰度值,而不是二值化后的0、1值,所以容易产生误差。因此,本文重点对其进行了改进。改进的基本思路:适当增加所投射的余弦光栅数量,尽量减小相邻光栅之间的平移量。经过改进后,在每个周期中总计投射8幅形状相同但位置有区别 (位置平移)的电子余弦光栅,使相邻像素点的相位值两两相同,并按表1所示的规律进行顺序水平方向平移。共平移7次,每次平移的几何宽度为1个像素。
表1 改进后的投射余弦光栅相位值
对图像中的各像素点的相位值的计算步骤如下:
(1)分别计算表1中投影顺序1所在行的8个相位的正弦值和余弦值,以此作为后述卷积计算的内积。
正弦卷积内积值:0,0,1,1,0,0,-1,-1;
余弦卷积内积值:1,1,0,0,-1,-1,0,0。
(2)对所拍摄的8幅余弦光栅图像,取其各个像素点的灰度值,分别与上述的正弦卷积内积值和余弦卷积内积值进行卷积计算,其结果记为nsin和ncos。在卷积运算过程中,消除了环境光强度变化对相位值的影响。
(3)综合分析nsin和ncos值的特点,对每个周期内的ncos值进行归一化处理。归一化过程中包含除法运算,以此消除了光栅亮度变化对相位值的影响。
(4)在其所在的周期内,对归一化后的ncos值进行直线化,得到每个像素点的相位值。其值域为 [0,1]。
(5)结合前述的通过格雷码光栅运算所得的周期值,可以计算出每个像素点的周期相位值。
如前所述,对标准白色平板进行扫描时,对于位于同一行的各像素点,周期相位值应为一条线性上升的直线(像素自左至右顺序统计)。白色平板一般选用精度00级的大理石平板,或者使用经精密加工研磨的金属平板。平板经白色无光漆精细喷涂处理。
通过如上的卷积计算和归一化处理过程,将余弦光栅的非理想性所带来的影响,均匀地分布到同周期内的相邻像素中。在之后的立体匹配时,选用的是周期相位值的相对值,改进后的数据减小了立体匹配过程的误差。
2 方法验证
因为本算法的改进,与三维扫描仪的硬件无关,所以可以采用同一硬件,仅对其软件升级,即可进行对比测试。实际测试时,运用传统方法与改进后的方法,分别对标准白色平板进行扫描,然后计算同一图像行内各像点的周期相位值,数据对比如图4所示。由图4可以看出,周期相位值的直线性,在各周期中部区域变化不大,但在周期交界区域,数据得到了较大改善,周期性偏差明显减小,避免了传统方法中存在的数据局部跳变现象。在扫描后获得的点云的坐标值数据中,体现为经过第三方软件对点云三角化处理后的图像上,具有周期性的条状细凸起减轻,表面更平滑。因为单次扫描所得三维坐标数据质量的提高,这样减小了数据后续优化处理的计算量。通常,对物体进行三维扫描时,如果仅仅从单个角度扫描,视线受到物体凹凸部分的遮挡,只能获取局部数据,所以,需要从多个角度进行扫描后,然后对所得的多个角度的数据进行三维数据拼接、融合,以得到较完整的三维坐标点云。以上改进减少了跳变点的数量,能够获得更好的数据拼接及边界融合效果。
在对体积较小的物体进行三维扫描时,如果所使用的三维扫描仪固有扫描范围较大,所得坐标点数就比较少,利用该方法可以改善上述情况下的数据融合质量,提高拼接成功率。
测试时,白色平板对光线反射很强。如果光强太强,可能超出摄像机的动态范围,所以需要事先综合调整摄像机的光圈及投影仪的亮度。最好在设备中集成有亮度反馈及自动调节功能,以免影响测试结果。
3 结 论
针对结构光三维扫描,分析了常用的光栅发生器所投射的余弦光栅的非理想性所带来的问题,为此,提出了一种经过改进的光栅投射方式及对各图像点的相位值计算方法。根据实验测试结果,证明对改善像素点的周期相位值的直线性具有较好效果。在应用本方法时,一般不需要改变三维扫描仪的原有硬件结构,例如摄像机、投影仪等,只需对应用软件进行技术升级即可。软件算法清晰,具有实用价值。
4 结束语
在结构光三维扫描技术中,往往重点关注与计算机视觉理论相关的算法研究及改进,测量数据的后续优化处理等方面问题,而忽视了硬件设备 (如光栅发生器等)的特性。本文重点分析了光栅发生器的投影特性对相位计算可能带来的影响,提出了改良方法,使误差得到较均匀分布。本算法适用于使用市售投影仪作为光栅投射设备的三维扫描应用中,尤其是使用便携式投影仪的场合,因为便携式投影仪的性能通常稍差一些,例如在光线汇聚、投射均匀性、对比度等方面。
[1]Zhang Song,Yau Shing-Tung.Generic nonsinusoidal phase error correction for three-dimensional shape measurement using a digital video projector[J].Applied Optics,2007,46 (1):36-43.
[2]WANG Jianwen,DU Chunmei.Three-dimensional laser scanning image processing algorithms to mend [J].Computer Engineering and Design,2010,31 (17):3929-3931 (in Chinese).[王建文,杜春梅.激光三维扫描图像处理改进算法 [J].计算机工程与设计,2010,31 (17):3929-3931.]
[3]XIE Jieru,WANG Zhen.Optical 3Dprofile measurements using LCD fringe projection [J].Acta Metrologica Sinica,2008,29 (4):301-304 (in Chinese).[谢捷如,王震.运用LCD条纹投影进行光学三维轮廓测量 [J].计量学报,2008,29 (4):301-304.]
[4]WANG Jianwen,DU Chunmei.Study on key techniques for 3Dlaser scanning system [J].Computer Engineering and Design,2010,31 (5):1089-1092 (in Chinese).[王建文,杜春梅.三维激光扫描系统的关键性技术研究 [J].计算机工程与设计,2010,31 (5):1089-1092.]
[5]SUN Junhua,YANG Yang,ZHANG Guangjun.Three dimensional scanning technique using color structured light patterns based on phase moving coding strategy [J].Optical Technique,2008,34 (1):122-125 (in Chinese).[孙军华,杨扬,张广军.基于相移的彩色结构光编码三维扫描技术[J].光学技术,2008,34 (1):122-125.]
[6]WU Qingyang,SU Xianyu,XIANG Liqun,et al.A new calibration method for two sensor measurement system based on line structure light [J].Chinese J Lasers,2007,34 (2):259-264(in Chinese).[吴庆阳,苏显渝,向立群,等.线结构光双传感器测量系统的标定方法 [J].中国激光,2007,34(2):259-264.]
[7]ZHANG Nanyangsheng,YANG Kuntao.3Dmeasurement technology based on virtual grating of frequency conversion projection[J].Opto-Electronic Engineering,2007,33 (12):39-43 (in Chinese).[张南洋生,杨坤涛.虚拟光栅变频投影三维测量技术的研究 [J].光电工程,2007,33 (12):39-43.]
[8]YU Xiaoyang,WU Haibin,YIN Liping,et al.3Dmeasurement technology based on structured light by combining Gray code with phase-shift [J].Chinese Journal of Science Instrument,2007,28 (12):5-11 (in Chinese).[于晓洋,吴海滨,尹丽萍,等.格雷码与相移结合的结构光三维测量技术[J].仪器仪表学报,2007,28 (12):5-11.]
[9]LIN Huan,MA Zhifeng,YAO Chunhai,et al.3Dmeasurement technology based on binocular vision using a combination of Gray code and phase-shift structured light [J].Acta Elec-tronica Sinica,2013,41 (1):24-28 (in Chinese).[林焕,马志峰,姚春海,等.基于格雷码-相移的双目三维测量方法研究 [J].电子学报,2013,41 (1):24-28.]
[10]HE Xingzheng,MA Jinglan,WANG Wei.A grating generator for 3Dscanner using CPLD [J].Applied Mechanics and Materials,2014:462-463,89-92.doi:10.4028/www.scientific.net/AMM.462-463.89.
[11]ZHANG Chao,YANG Huamin,HAN Cheng.Study of coding and decoding based on Gray-code structure light [J].Journal of Changchun University of Science and Technology(Natural Science Edition),2009,32 (4):635-638 (in Chinese).[张超,杨华民,韩成,等.基于格雷码结构光的编解码研究 [J].长春理工大学学报 (自然科学版),2009,32(4):635-638.]