韩 成,秦贵和,宫 宇,张 超,薛耀红
(1.吉林大学 计算机科学与技术学院,长春 130012;2.长春理工大学 计算机科学技术学院,长春 130022;3.吉林交通职业技术学院 外语系,长春 130021)
一般情况下,结构光三维重构方法主要分为系统参数标定、结构光编解码和特征点三维信息的计算3个部分。其中,系统参数标定部分主要是通过最小二乘法计算摄像机和投影机的内外参数;特征点三维信息的计算大多采用针孔模型和三角形相似原理;对于结构光的编码方法来说,利用各种编码策略可以使像素点本身带有先验编码信息,编码策略选择的合适与否影响着匹配算法的复杂性和三维重构的准确性。对结构光编码方法的研究已有很多,其中时间编码中的线结构光[1-2]方法不能快速实时地对物体进行重构,但它的编码原理简单、易于实现;现有的单幅空间编码[3]方法虽然能够对物体实现实时重构,但通过寻找角点[4]或条纹边界[5]的方法得到的特征点坐标信息不够精确,并且大多数情况下是使用彩色条纹编码[6-8]的形式,并不适用于无约束的三维信息解算。对于解码方法,张超等[9]提出一系列图像预处理方法,可以更加准确地提取较细格雷码的条纹;于晓洋等[10]采用一种基于边缘导向的亚像素定位技术提取格雷码条纹边缘;Fechteler等[6]提出了自适应彩色分类方法和捕获3D模型的方法,解决了环境光、颜色、人脸特征对重构质量的影响,提高了系统的鲁棒性。Brink等[11]根据图中已记录条纹的潜在关联性和邻接性,提出了最大生成树算法,使用该算法可以得到比以往方法更精确、更可靠的重构结果。孔令富等[12]利用序列的窗口特性和空间邻域编码思想对各条纹边界进行标识,采用全局优化思想对条纹边界进行最优邻域匹配,不需要假定物体全表面单调,对其连续性也不做严格要求。Zhang等[13]引入了多通道动态规划思想,克服了图像中的条纹遮挡问题,但常会出现对局部单调区域之间的边界集的解码误差。
在以往的研究中,彩色结构光编码方法多用于空间编码和直接编码,而且大多数都能用于动态物体的测量,但由于受到CCD摄像机的颜色保真度及分辨率的影响而无法得到理想的效果和精度,不容易找到清晰的、无二义性的对应,对三维物体的测量精度不高,很难用于物体的精确测量。一般情况下,运用的颜色多于3种,容易出现颜色混淆不易识别的问题,而且通常采样密度和分辨率都不高。彩色结构光的编码和解码技术在结构光重构的数据获取中起着至关重要的作用,进而影响着系统的测量精度、速度和可靠性。本文提出了一种具有拓扑结构和内部结构相关性的彩色结构光编码方法及其解码方法。
为了计算得到特征点的三维信息,需要对系统的参数进行标定。标定的精度和准确性是至关重要的,每一个系统参数的标定误差都将对三维点云计算的结果产生极大影响。对系统参数的标定主要分为摄像机的内外参数标定和投影机的内外参数标定两个部分[14]。在进行标定的过程中,需要将摄像机和投影机二者之间的关系统一在同一个坐标系下,因此,在进行系统参数标定之前必须建立一个世界坐标系。
首先将具有特定尺寸、已知特征的平面标定图像贴附于参考平面板上,然后将此参考平面板固定于精密移动平台上,并保证平面标定图像能够被摄像机完整地摄取,同时投影机也能够将平面标定图像完整地投射到参考平面板上。如图1所示,在参考平面板没有移动时,设平面标定图像所在的平面为世界坐标系的XY平面,平面标定图像中沿着特征点向右为世界坐标系的X轴正方向,沿着特征点向下为世界坐标系的Y轴正方向,垂直于平面标定图像向内为世界坐标系的Z轴正方向,平面标定图像中最左上特征点位置为世界坐标系的原点。
图1 世界坐标系的确定Fig.1 World coordinate system
为了减少标定时间,提高标定精度,通常假定摄像机的成像模型是小孔成像[14]。在对摄像机内外参数进行标定时,对摄像机的成像畸变进行校正。首先通过线性的针孔模型计算得到摄像机的初始内参,然后使用最大似然法对摄像机进行非线性求精,得到考虑畸变系数的优化内参。在多个方向上移动参考平面板,每次移动完成后都由摄像机摄取一幅标定图像。为了尽可能地提高移动过程中的精确度,使用精密移动平台以保证每次移动的距离都是预先设定的,这样便可以知道平面标定图像上每一个特征点在世界坐标系中的确切坐标值。
标定图像摄取完成后,需要对摄取的标定图像进行畸变校正。使用如图2所示的极坐标模型,假设无畸变条件下的一点P0(x0,y0)在畸变图像中的位置为P1(x1,y1),P0和P1到原点O的距离分别为r0和r1,且在不考虑切向畸变的情况下P0和P1在同一条由原点O发出的射线上,则P0和P1的关系为
式中:r0为无畸变点到原点O的距离;r1为畸变点到原点O的距离;ai为借助摄像机已经求出的系数。
图2 畸变校正的极坐标模型Fig.2 Polar coordinate model of distortion correction
根据此模型进行畸变校正的效果对比图如图3所示。
图3 畸变校正效果Fig.3 Effect of distortion correction
对摄取的标定图像进行畸变校正而得到每一幅平面标定图像中各个特征点在标定图像中的图像坐标,然后根据公式
计算出特征点在世界坐标系中的世界坐标和在图像坐标系中的图像坐标之间的单应性变换矩阵MC。式(4)中,(ui,vi)为摄像机图像坐标系中特征点的二维图像坐标;MCij为MC矩阵中第i行第j列的元素值;(Xi,Yi,Zi)为世界坐标系中特征点的三维世界坐标。
对摄像机参数标定完成后,便可以根据MC矩阵的值对投影机的参数进行标定。从摄像机和投影机成像模型的角度看,两者都是使用针孔成像模型,但又存在着一个根本的区别,即一个是摄取图像,一个是投射图像。因此,在对投影机进行标定时将需要借助于摄像机摄取图像的能力。
首先通过投影仪将平面标定图像投射到参考平面板上,并由摄像机对投射到参考平面板上的平面标定图像进行摄取。通过线性的针孔模型计算得到投影机的初始内参,然后使用最大似然法对投影机进行非线性的求精,得到考虑畸变系数的优化内参。根据投影机的畸变系数对待投影的标定图像进行畸变还原,使待投射的标定图像是具有畸变的,以保证投射出的畸变图像通过投影机的投射后将原有的畸变相互抵消掉,使最终投射到标定板上的标定图像能够对参数的标定结果起到积极作用,使参数的标定结果更加精确。如果不对标定图像进行畸变还原,则将使得单应性变换矩阵MP中的外参值出现误差。畸变还原的过程与畸变校正的过程是相反的,该过程可由式(2)进行描述。
将处理后的标定图像再次投射到参考平面板上,并由摄像机摄取,根据公式
有效的注视点要求视网膜中央凹对准注视目标超过200ms,考虑到视觉任务的处理耗时,操作者的视觉注意处于用户界面局部区域并进行任务加工时,注意转移速度慢,注视点停留时间可能会更长,因此本研究认为注视点停留时间大于某一阈值也可以反映操作者正在关注注视点所在位置区域.
求解没有进行畸变还原的标定图像中的特征点与摄像机摄取的标定图像中的特征点的单应性变换矩阵MP。式(5)中,MPij为MP矩阵中第i行第j列的元素值;由式(4)计算得出特征点在世界坐标系下的三维坐标为 (Xi,Yi,Zi)。
结构光的编解码技术是一种主动式地给待测三维实体进行特征点标记的有效方法。该方法可以使三维实体具有更易识别和控制的特征点信息。对于结构光编码来说,主要包含结构光的编码设计,结构光特征点信息的提取,结构光特征点信息的匹配3个重要组成部分。为了求解出指定特征点的三维坐标信息,必须准确地标识出每一对特征点之间的匹配关系,因此结构光的编解码技术便成了确定特征点信息的重要手段。
对所有光束进行编码是结构光检测技术的核心,好的编码方法可以减少解码的时间,提高解码的精度。目前已有多种结构光编码方法,如二进制编码、格雷编码、基于随机序列的彩色编码、直接彩色编码等[1,3,6]。但如果彩色条纹间隔很近,由于彩色条纹间的干扰,很难准确地提出中心彩色条纹或标定条纹的颜色。本文提出一种具有拓扑结构和局部结构化的结构光编码方法。这种编码方法具有以下4个优点:①编码得到的结构图像能够满足大尺寸、高精度的要求。②编码的结构化程度更高,使得编码图像的解码正确率更高,编码图像的抗干扰性更强。③由单幅编码图像便可以得到整个空间的特征点信息,实时性强。④该编码方法对接收结构光编码图像的曲面没有严格的限制。
在此编码方法中,使用了8种颜色对图像进行编码,其中的6种彩色颜色便可以有720种不同的5元素组合,但在图像编码的过程中却不能将这些颜色进行任意的组合,因为灰度值相近的颜色(如红色与品红色)进行相邻组合将对解码工作造成阻碍而不能正确地进行解码,如图4所示。其中颜色块的颜色分别为红色、绿色、蓝色、黑色、青色、品红色、黄色、白色。将所述的8种颜色块分为两组,一组是由红色、绿色、蓝色、品红、黄色、青色6种颜色块组成,称为彩色元组;另一组是由黑色、白色两种颜色块组成,称为黑白元组。根据彩色元组中6种彩色颜色块的灰度值的不同将彩色元组划分为两组,一组是由红色、蓝色、品红色3种彩色颜色元素组成,称为高值彩色元组,另一组是由绿色、青色、黄色3种颜色元素所组成,称为低值彩色元组。
使用黑白元组中的元素交替排列组成如图5(a)的3×3方形区域,称为白微区域;使用黑白元组中的元素按照与白微区域相同位置块的颜色相反组成如图5(b)的区域,称为黑微区域;利用彩色元组中的6种彩色颜色生成微区域的一层彩色边界,彩色边界中与低值彩色元组中元素相邻的颜色块为在高值彩色元组中随机选取的元素,与高值彩色元组中元素相邻的颜色块为在低值彩色元组中随机选取的元素。如果彩色边界的左上方第一个颜色块为高值彩色元组中的元素,称为高值彩色原子边界,如图6(a)所示;如果彩色边界的左上方第一个颜色块为低值彩色元组中的元素,称为低值彩色原子边界,如图6(b)所示。使用低值彩色原子边界和白微区域构成5×5的方形区域,称为低值原子区域,如图7(a)所示;使用高值彩色原子边界和黑微区域构成5×5的方形区域,称为高值原子区域,如图7(b)所示。
图5 区域结构化编码图像Fig.5 Regional structured coding image
图6 彩色边界图像Fig.6 Color boundary image
图7 区域编码图像Fig.7 Regional coding image
交替使用高值原子区域和低值原子区域,并保证在高值原子区域的上方、下方、左边、右边相邻的原子区域只能为低值原子区域,在低值原子区域的上方、下方、左边、右边相邻的原子区域只能为高值原子区域,任意两个高值原子区域的彩色原子边界都不能具有相同的颜色块组成结构,同时任意两个低值原子区域的彩色原子边界都不能具有相同的颜色块组成结构,即可生成彩色结构光编码图像,如图8所示。从图中可以看出,该彩色编码图像由多个原子区域组成而形成整体的拓扑结构,每个原子区域中的编码又形成了局部拓扑结构,在每个原子区域中的微区域则形成了局部结构化的编码,因此该编码图像具有较强的抗干扰性。
图8 编码图像Fig.8 Coded image
在对摄像机拍摄的编码图像(解码图像)进行解码时,首先需要确定该图像中的特征点的位置,然后,确定每一个特征点的颜色,最后根据彩色边框编码的拓扑结构和颜色边框内部的结构确定解码图像中的每一个特征点与原始编码图像中的特征点的对应关系,以实现准确的解码。
由于编码特征点信息存在颜色的变化、特征区域变形等干扰,因此,在提取特征点信息的过程中,很难准确地提取出各个编码特征点在编码图像中的位置,造成无法准确地对特征点进行解码,从而不能正确地对三维实体进行重构操作。为了更加准确地提取出编码图像中的特征点信息并对特征点进行解码,需要对摄像机摄取的编码图像进行灰度化,并使用一种基于波形分析的特征点提取方法,确定特征点的位置。
该方法对灰度化的解码图像的每一行像素点的灰度值进行分析,根据解码图像的编码规则可知,每一个特征点都将处于解码图像灰度图波形中的波峰或波谷区域之内,当确定出波形图的波峰和波谷区域后,就可以对每一个特征区域进行特征点的精确位置求取,即求取该特征区域的质心位置。
在实际的灰度值波形图中,波形图一般都是不平滑的,在波峰和波谷区域之内会出现波形的抖动而影响区域的确定。为了消除波形中抖动因素对图像分割的影响,需要在波形分析时对一些次要的小峰进行摒弃处理而引入滤波操作,即使用滤波方法对波形进行平滑化处理。使用该方法可以更加有效地得到编码特征点在解码图像中的位置。
在利用波形分析方法对解码图像进行处理后,由于相邻像素点对特征点的干扰,因此,很难准确地确定特征点的颜色。文献[15]提出了基于聚类分析的颜色分类方法,该方法可以有效地消除干扰,提高确定特征点颜色的精确性,但不可以准确识别黑色且识别黑色的时间长,本文对该方法进行了改进,改进后的方法可以识别任何颜色,并减少了处理时间。
为了确定特征点的颜色,分别用a1、a2、…、a8表示彩色结构光解码图像中像素点的8种颜色,其中颜色ax的RGB值分别用rx、gx、bx表示,x=1,2,…,8;设Mq表示属于第q种颜色的像素点的个数,并且初始值都为零。基于聚类分析的颜色分类方法的实施步骤如下:
(1)设Nq=0,q=1,2,…,8。计算每一个编码特征点在RGB颜色空间中的坐标分别得到8种颜色在RGB颜色空间中的坐标间的距离:
式中:D(i,j,s)表示特征点在RGB颜色空间中的坐标 (R(i,j),G(i,j),B(i,j))到点(rs,gs,bs)的距离。
(2)找到每一个编码特征点的8个距离中最小的一个,如果 D(i,j,q)是{(D(i,j,1),D(i,j,2),…,D(i,j,8)}中的最小值且q值最小,说明该特征点的颜色属于q类,Nq=Nq+1;并根据式(7)记录特征点的RGB值。
如果对于每一个q=1,2,…,8都有Nq=Mq,那么基于聚类分析的颜色分类方法结束,否则继续执行步骤(3)。
(3)根据式(8)修改a1,a2,…,ak的 RGB值,然后用每一个Mq记录对应的Nq,转而执行步骤(1)。
编码特征点的匹配对特征点三维信息的求取至关重要,每一对特征点之间必须具有唯一性。通过波形分析得到特征点的位置后,根据该特征点在解码图像中的位置携带的拓扑结构信息和结构化信息便可以确定特征点的编码信息,从而能够确定出与原始编码图像特征点之间的对应关系。在对特征点进行解码时,因为每个特征点的颜色序列在编码图像中的组合方式是唯一的,所以可以通过颜色序列之间的拓扑关系和颜色序列内部的拓扑关系来确定出该区域的结构化模式。对特征点进行解码时,首先需要根据5×5子区域的彩色边框编码来唯一确定出该区域的匹配关系,如图9所示。如果特征点是彩色编码,则可根据边框的拓扑结构确定特征点的编码;如果特征点是黑色或白色,则需要对区域内部的3×3子区域进行结构化解码来确定特征点在特征区域内的位置,再结合5×5子区域的解码便可以确定出特征点的编码,如图10所示。
图9 子区域5×5的解码Fig.9 Decoding of 5×5sub-region
图10 子区域3×3的解码Fig.10 Decoding of 3×3sub-region
对特征点的三维信息进行求取,需要根据已知的特征点计算出精度更高的三维信息,使得重构出的三维实体更符合实际。由于在使用三角法对特征点的三维信息进行求解的过程中,存在如摄像机与投影机夹角等参数的计算误差,因此本文中使用无约束的求解方法来提高特征点的求解精度。当得到解码图像中每个特征点的编码值与调制前编码图像中特征点的编码值之间的匹配关系后,便可以使用基于单应性变换矩阵(MC和MP)的最大似然法计算待测三维实体表面特征点的三维信息,求取特征点三维信息的解算模型如图11所示。
图11 三维信息解算模型Fig.11 Three-dimensional information solution model
在计算得到摄像机单应性变换矩阵MC和投影机单应性变换矩阵MP的基础上,通过联立式(4)(5),便可以得到一个含有4个表达式的非齐次方程组:
使用最大似然法对公式(9)进行求解,便可得到特征点在世界坐标系下的坐标值(XWp,YWp,ZWp)。
基于彩色结构光的三维重构系统包括硬件部分和软件部分。系统的硬件部分如图12所示,使用的计算机型号为DELL DIMENSION 5150。所用的投影机为可以满足车系统要求的家用投影机,型号为EPSON EB-W6。摄像机是三维重构系统中的一个关键组成部分,其工作主要是摄取编码图像,本系统使用的是Canon EOS。系统的软件部分包括摄像机标定模块、投影机标定模块、编码结构光图像采集模块、数字图像处理模块、结构光编码图像的解码模块、结构光特征点匹配模块、图像与数据的并行处理和计算模块以及点云数据三维信息计算模块。
图12 实验系统Fig.12 Experimental system
在系统参数标定的过程中,标定摄像机拍摄9幅标定图像,标定投影机也拍摄9幅标定图像,包括世界坐标系XY平面上的一张,向前、后、左、右移动的各两张,标定图像每次移动的距离为20 mm。根据式(4)(5)进行求解,可以计算出系统的参数值,如表1和表2所示。
表1 单应性变换矩阵元素MCij值Table 1 MCijvalue of homography transformation matrix elements
表2 单应性变换矩阵元素MPij值Table 2 MPijvalue of homography transformation matrix elements
图13 调制的编码图像Fig.13 Modulation of coded image
对摄像机摄取的编码图像进行解码是关系到整个计算过程是否正确的关键,摄取的编码图像如图13所示。在对头像编码图像中的8741个编码特征点进行解码时,仅有13个编码特征点的解码发生误匹配,解码正确率超过99.5%,进一步证明了本文编解码方法的有效性。通过系统参数的标定和特征点编码的匹配后,根据计算得到的特征点的世界坐标对其进行三维重构就可以看到重构后的三维实体,如图14所示。三维点云的计算与重构过程平均花费不到0.1s,平均每秒钟可以达到15帧,满足动态重构的需要;对特定特征点进行尺寸重构后,最小误差为0.4mm,最大误差为4.7mm,平均误差为1.3mm。从图14中可以看出,三维重构后的实体模型达到了预期的三维重构效果。
图14 三维实体重构Fig.14 Reconstruction of three-dimensional objects
通过实验可以看出,本文中的三维重构方法不仅能够很好地重构出原始三维实体,而且对三维实体表面特征数据的提取也非常完整。使用文中的编码方法,只需一幅编码图像便可以得到三维实体表面的全部信息,并且在一定程度上提高了编码图像的抗干扰能力,基本实现了编码图像的实用性和通用性设计。在对编码图像进行解码时,使用了波形分析的方法对特征信息进行细化处理,使用基于聚类分析的颜色分类方法确定特征点的颜色,有效地消除了颜色干扰,利用编码图像中存在的拓扑结构,提高了特征点的解码的准确性。
[1]郑作勇,姚莉,姚婷婷,等.一种简易的线结构光投影三维形状获取方法[J].软件学报,2006(17):176-183.Zheng Zuo-yong.Yao Li,Yao Ting-ting,et al.A simple method for shape recovery based on linear structured light[J].Journal of Software,2006(17):176-183.
[2]陶立,孙长库,何丽,等.基于结构光扫描的彩色三维信息测量技术[J].光电子·激光,2006,17(1):111-114.Tao Li,Sun Chang-ku,He Li,et al.A color 3-D acquisition method based on structured-light scanning[J].Journal of Optoelectronics·laser,2006,17(1):111-114.
[3]Jordi Pages,Joaquim Salvi,Carles Matabosch.Implementation of a robust coded structured light technique four dynamic 3Dmeasurements[C]∥Proc of ICIP 2003,Barcelona,Spain,2003.
[4]廖素引,金施群,吴先良,等.单幅图像的三维重构视觉系统特征点提取算法的研究与实现[J].宇航计测技术,2009,29(6):12-15.Liao Su-yin,Jin Shi-qun,Wu Xian-liang,et al.Research and realization of the feature point extraction algorithm in 3Dreconstruction system using single image[J].Journal of Astronautic Metrology and Measurement,2009,29 (6):12-15.
[5]黄俊春,章炯民.基于彩色结构光的实时三维重建[J].计算机应用与软件,2009,26(12):235-237.Huang Jun-chun,Zhang Jiong-min.Real-time 3D reconstruction based on colour-coded structured light[J].Computer Applications and Software,2009,26(12):235-237.
[6]Fechteler P,Eisert P,Rurainsky J.Fast and high resolution 3Dface scanning[C]∥Proc of ICIP 2007,San Antonio,Texas,USA,2007.
[7]Fechteler P,Eisert P.Adaptive color classification for structured light systems[C]∥Proc of CVPR 2008,Anchorage,AK,USA,2008.
[8]Koninckx Thomas P,van Gool Luc.Real-time range acquisition by adaptive structured Light[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2006,28(3):432-445.
[9]张超,杨华民,韩成,等.基于格雷码结构光的编解码研究[J].长春理工大学学报:自然科学版,2009,32(4):365-368.Zhang Chao,Yang Hua-min,Han Cheng,et al.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):365-368.
[10]于晓洋,吴海滨.基于条纹边缘解码的结构光三维测量技术[J].电子器件,2008,31(2):389-392.Yu Xiao-yang,Wu Hai-bin.3Dmeasurement tech-nology by structured light based on fringe edge decoding[J].Chinese Journal of Electron Devices,2008,31 (2):389-392.
[11]Brink Willie,Robinson Alan,Rodrigues Marcos.Indexing uncoded stripe patterns in structured light systems by maximum spanning trees[C]∥British Machine Vision Conference,Leeds,UK,2008.
[12]孔令富,陈淑平,郭福田.一种基于编码结构光的三维重建匹配算法[C]∥计算机技术与应用进展2007全国第18届计算机技术与应用(CACIS)学术会议论文集,浙江,中国,2007.
[13]Zhang Li,Curless Brian,Seitz Steven M.Rapid shape acquisition using color structured light and multi-pass dynamic programming[C]∥Proc of the 1st Int'l Symp on 3DData Processing Visualization and Transmission(3DPVT).Padova:IEEE Com-puter Society Press,2002.
[14]韦争亮,钟约先,袁朝龙,等.单摄像机单投影仪三维测量系统标定技术[J].清华大学学报:自然科学版,2009,49(2):202-205.Wei Zheng-liang,Zhong Yue-xian,Yuan Chaolong,et al.Calibration of a 3Dmeasurement system having one camera and one projector[J].Journal of Tsinghua University(Science and Technology),2009,49(2):202-205.
[15]范静涛,韩成,张超,等.一种新的De Bruijn彩色结构光解码技术研究[J].电子学报,2012,40(3):483-488.Fan Jing-tao,Han Cheng,Zhang Chao,et al.Study of a new decoding technology for De Bruijn structured light[J].ACTA Electronica Sinica,2012,40(3):483-488.