APP下载

一种基于空间编码结构光的稠密三维重建算法

2021-02-21许宏丽杨东学

西安电子科技大学学报 2021年6期
关键词:三维重建投影仪条纹

陈 荣,许宏丽,2,杨东学,黄 华,3

(1.北京交通大学 计算机与信息技术学院,北京 100044;(2.北京交通大学 交通数据分析与挖掘北京市重点实验室,北京100044;(3.北京交通大学 轨道工程北京市重点实验室,北京 100044)

三维重建技术是计算机视觉技术的重要分支之一,是计算机视觉和工业测量领域相结合的一个热门研究领域。在工业产品质量控制、医疗保健、车身结构分析等领域,快速、准确、方便地获取物体表面三维信息的需求日益增加。目前,结构光技术因非接触、精度高、速度快、设备成本低等优势,而成为三维重建可靠且有效的技术。

根据模式设计策略的不同,结构光编码技术可以分为时间编码和空间编码。在文献[1]中总结了时间编码和空间编码的主要常用方法。时间编码方法需要按顺序投影多个模式。基于时间编码的系统容易实现且具准确性高、稠密度高和鲁棒性好等优点,但该方法需要投影和拍摄多个编码模式,因此不适合用于动态场景和快速运动目标的三维重建。相比之下,空间编码方法只需要拍摄单幅图像,非常适用于动态场景和快速运动目标的三维重建。但是空间编码方法容易受到环境光照、物体纹理等不良因素的影响,导致解码准确率的降低。另外,空间编码方法难以对每个像素都进行独立编码,因此获得的三维点云数据比较稀疏。

近年来,由于对动态场景进行三维重建的需求不断增长,空间编码的研究活动逐渐增加。文献[2]通过颜色聚类的方法来识别特征点的颜色。文献[3]根据主成分分析和K均值聚类思想设计一种自适应颜色聚类方法,实现了对高低强度颜色的识别。另一些研究者使用主成分法(Principal Component Analysis,PCA)进行颜色空间分析[4-5]或聚类方法[6]来解决这些问题,通过利用结构化图案的几何特征来减少对颜色信息的依赖性。上述方法在结构光图像质量较好的条件下能实现较高的识别精度,但在外界环境影响或物体表面结构复杂导致拍摄结构光图像低质时,重建精度较低。文献[7]设计了基于伪随机阵列的菱形编码图案,该方法可以高精度地提取编码图案的特征点。但是由于该方法的特征描述子邻域范围过大,故而只适用于稀疏重建。

一些研究者对稠密三维重建技术进行了研究,并提出了不同的方法。文献[8]提出了基于两种颜色的De Bruijn序列的网格条纹模式的稠密三维重建方法,但该方法需要复杂的网格条纹检测与条纹识别算法。文献[9]提出了基于自均衡De Bruijn序列的稠密三维重建方法,但在对表面颜色、纹理复杂的物体进行三维重建时,结果并不理想。文献[10]提出通过离散相位信息和有色De Bruijn序列信息组合的投影图案用于高精度深度感测,但是这种方法会受到编码宽度的影响,难以重建复杂物体表面的细节。

基于空间编码结构光技术,笔者提出了一种新的稠密三维重建方法。首先,设计了一种使用两种颜色通道的空间编码结构光模式,其由红色的正弦光栅条纹和蓝色的伪随机点组合而成,所提出的方法不需要对条纹颜色进行识别,也不需要对相机-投影系统进行颜色校准。其次,基于该空间编码结构光,提出了一种基于局部相位匹配的稠密三维重建方法。基于两步定位法检测条纹中心点位置,再利用零均值归一化互相关(ZNCC)准则,对左、右相机拍摄图像的条纹中心点进行匹配。所提出的方法不依赖于条纹的颜色序列进行解码,因此多个条纹之间没有关联性,降低了对因遮挡、纹理产生的异常点的敏感性。然后,利用傅里叶变换求取相邻条纹之间像素点的相位信息,并基于相位匹配算法对相邻匹配条纹之间的所有的像素点进行匹配。最后,根据三角测量原理对匹配点计算三维坐标,实现稠密三维重建。

1 研究方法

1.1 结构光模式设计

传统的彩色条纹编码方法,如基于De Bruijn序列的彩色条纹模式,需要使用多种颜色对条纹进行编码,因此一般不适用于颜色目标的三维重建。另外,此类方法的解码过程通过识别颜色序列中的惟一子序列来提取空间位置信息,不同条纹的解码之间会存在依赖性。如果在解码过程中某个条纹发生检测失败的情况,则可能会对其他条纹的识别造成不好影响。针对以上问题,笔者设计了由正弦条纹和伪随机点组合而成的结构光模式,分别由两个颜色通道进行编码,如图1(c)所示。该模式的编码颜色是很容易变换的,因此,可以根据待测物体的颜色信息改变结构光的编码颜色。同时,条纹是通过其周围随机点的分布情况进行识别的,因此,不同条纹之间的解码不存在依赖性。

图1 设计的结构光模式

正弦条纹如图1(a)所示,它可以通过下式生成:

P(x,y)=C+Acos(2πfx) ,

(1)

其中,A、C和f分别代表幅度、直流偏移量和条纹频率。通过式(1),在条纹之间引入了满足正弦变化的编码信息,为后续的解码算法提供了相位信息,是实现稠密三维重建的前提条件。

伪随机点如图1(b)所示。随机点是在黑色的背景上随机生成彩色点,需满足高度随机分布,保证条纹可以有效地识别。根据以下3条规则来生成伪随机点:

(1)随机点尺寸:每个随机点的尺寸设定为K×K像素,其中K可由投影仪和相机的分辨率共同设定;

(2)随机点密度:设K×K像素为一个点,则在包含3×3个点的矩形区域中,只有一个点是随机点;

(3)随机点分布:随机点需满足随机分布的特性,且每个随机点的八邻域中不能有其他随机点。

在图2图中,图(a)是带复杂彩色图案的书本,图(b)、(d)分别是由De Bruijn序列和笔者构造的光模式拍摄的结构光图像,图(c)、(e)分别是图(b)、(d)的解码结果,竖线表示提取出的条纹。可以看出,De Bruijn序列的结果中有多个条纹都没有被提取出来,同时一些与书本颜色一样地方的条纹的提取结果并不好。而笔者提出的方法能够较好地提取出所有条纹,说明这种方法与彩色条纹方法比较,在颜色复杂的物体上能够获得更好的结果。

图2 带颜色物体的解码结果

1.2 稠密三维重建方法

在笔者提出的方法中,首先通过结构光投影仪将结构光模式投射到待测物体表面,左、右相机同步拍摄;然后对左、右结构光图像进行解码,进行特征点的提取与匹配;最后根据三角测量原理进行重建。主要包括以下3个步骤。第1步:提取左、右结构光图像的条纹中心点,并对左、右条纹中心点进行匹配;第2步:通过傅里叶变换获取左、右相位图;第3步:对相邻条纹之间的像素点,利用相位信息进行匹配,最后对匹配点计算三维坐标。

在进行三维重建之前,需对相机拍摄的原始结构光图像进行立体校正,使左、右结构光图像的特征点的对应关系被限制在两个图像的相同行。

对左、右结构光图像提取到的条纹中心点进行匹配。遍历左结构光图像的每一行,对每一个条纹中心点,与右结构光图像相同行的每一个条纹中心点计算相似度,选取相似度最高的点作为匹配候选点。在伪随机点图像中,根据ZNCC算法,计算左、右条纹中心点的空间相关相似度。假设f和g分别是左、右图像两个具有相同大小的条纹中心点邻域图像块。f和g的空间相关相似度计算公式如下:

(2)

最后,根据顺序一致性约束,利用动态规划算法剔除错误匹配点。

正弦条纹经过投影仪投射,受物体表面调制,由相机捕获得到的图像可表示如下:

(3)

其中,

IA(u,v)=α(u,v)A,

(4)

IC(u,v)=α(u,v)(C+β(u,v)) ,

(5)

α(u,v)和β(u,v)表示场景中每个点的反射率和背景光强。

将式(3)变为如下形式:

(6)

采用带通滤波器进行滤波,使得仅有一个复频率分量保留下来:

(7)

最后,计算相位:

(8)

其中,Im(If(u,v))表示复数If的虚部,Re(If(u,v))表示复数If的实部。

设由上述方法获得的左、右相位图分别记为φL、φR。

如图3所示,假设左结构光图像中两个相邻条纹中心点分别是(uL1,v)、(uL2,v),它们在右结构光图像中匹配的条纹中心点分别是(uR1,v)、(uR2,v)。

图3 相位匹配

对于在(uL1,v)和(uL2,v)之间的像素点(u,v),使用式(9)来找到位于(uR1,v)和(uR2,v)之间的对应点(u+d,v)。

(9)

其中,uR1-u≤t≤uR2-r。

对式(9)求得的视差d进行优化以获得亚像素视差dsub。当φL(u,v)≥φR(u+d,v)时,通过式(10)计算亚像素视差dsub:

(10)

当φL(u,v)<φR(u+d,v)时,通过式(11)计算亚像素视差dsub:

(11)

最终,点(u,v)与点(u+dsub,v)相匹配。根据三角测量原理,对匹配点计算三维坐标,获得被测物体表面的三维点云数据。

2 实验结果

笔者使用的实验设备如图4所示,该结构光系统主要由一台结构光投影仪和两个工业相机组成。使用的结构光投影仪是DLP LightCrafter 4500,其分辨率为1 140×912。两个相机都是PointGrey Chameleon3工业相机,分辨率为1 280×1 024,搭配的镜头均为Myutron FV 1022。在实验中,两个相机之间的距离约为100 mm,与物体的距离约为700 mm。

图4 结构光系统

在进行三维重建之前需要对结构光系统进行标定[12]。在笔者提出的方法中,结构光投影仪仅作为光源,用于投射结构光模式,因此不需要对结构光投影仪进行标定。因此,可以更加灵活地摆放结构光投影仪的位置,零均值归一。

首先对如图5(a)所示的平板进行三维重建,来评估笔者提出方法的准确性。该平板的尺寸为150 mm×120 mm。将重建后的结果进行平面拟合并计算均方根误差(RMSE)。图5(b)是通过Kinect获得的结果,其RMSE是1.457 mm。笔者提出方法的重建结果如图5(c)所示,该平面的RMSE为 0.349 mm。这种方法的误差明显小于Kinect的误差,说明文中方法的重建结果优于Kinect的结果。另外,Kinect受限于其元器件的分辨率和处理算法,获得的点云数量较少,而文中方法获得的点云数量比Kinect的点云数量更加稠密。

图5 平板重建结果

分别以球体、锥体、兔子模型和大卫石膏模型为被测目标进行实验,这4种被测目标表面的形状和纹理各有差异。首先,使用格雷相移法对所有被测目标进行三维重建,格雷相移法是一种基于格雷码和相移法的结构光时间编码方法,格雷相移法在实验中单次重建需投射53幅模式(包括44幅格雷码模式和9幅相移模式)。格雷相移法能够获得高精度的三维重建点云数据,因此将格雷相移法获得的三维重建结果作为真实值(GT)。然后,将文中方法和其他不同方法对这4个被测目标进行实验并比较,结果如图6所示。在图6中,图(a)是被测目标,图(b)是利用格雷相移法获得的真实值,图(c)是ZHANG的方法[13]得到的结果,图(d)是Kumiko的方法[14]得到的结果,图(e)是文中方法得到的结果。Kumiko的方法是基于条纹的结构光空间编码方法,只能够对条纹中心点进行重建,因此获得的点云结果也呈现条纹状,比较稀疏,不能完整重建出被测物体表面。文中方法和ZHANG的方法都能够获得更加稠密的点云。

图6 三维重建结果

在表1中,展示了不同方法获得的点云的数量。文中方法与ZHANG的方法都能得到较多的点云数量,但基于条纹的Kumiko方法得到的点云数量要少许多。ZHANG的方法虽然能够获得稠密的点云数据,但该方法是逐像素进行匹配的,没有考虑像素之间的连续性,因此获得的点云数据连续性较差,连续的表面出现了断裂的现象,重建结果也较差。而文中方法在利用傅里叶变换求相邻条纹之间的相位时,相当于考虑了像素之间的连续性,因此获得的点云比较光滑。但与格雷相移法获得的真实值做比较,以上方法在一些纹理细节的重建上都显得不足。

表1 三维重建点云数量对比

最后,以格雷相移法获得的真实值(GT)作为基础,分别将ZHANG的方法与文中方法的匹配结果、重建结果与真实值作比较,得到的结果如表2所示。记当前像素点(u,v)的匹配点是(up,v),而其在真实值的匹配点是(uGT,v),则第3列μup和第4列ρup分别表示所有点的匹配误差(up-uGT)的平均误差与标准差;第5列 Δup< 1表示误差 Δup=|up-uGT|小于1像素的点占的百分比;第6列RMSE表示三维重建的均方根误差。由表2可以看出,文中方法与ZHANG的方法比较,匹配误差小于1像素的所占百分比更高,RMSE也更小,说明文中方法得到了更优的结果。笔者提出的方法在前3个被测物体的结果中,匹配误差小于1像素的百分比高达95%以上,大卫头像的结果也达到84%,因此导致RMSE变大的原因可能是受到了物体边缘处一些异常点的影响。

表2 三维重建结果对比

3 结束语

笔者提出了一种基于空间结构光编码的稠密三维重建方法。首先,设计了一种单颜色的正弦条纹编码模式,通过引入伪随机点来对条纹进行识别。其次,提出了一种局部相位匹配的稠密三维重建算法,通过获取相邻条纹之间的像素的相位信息,逐像素进行匹配,实现了高空间分辨率的三维重建。所提出的方法仅需要一个图像对来进行三维重建,提高了三维重建速度。同时,该方法不需要对投影仪进行标定和颜色校正,简化了三维重建过程和系统开发过程。实验结果证实了该方法的可行性和有效性。

在多相机多投影仪同步拍摄重建的相关工作中,如何将不同投影的交叠部分分离是一个工作难点。而笔者提出方法中的条纹相较传统彩色条纹只需要一种颜色,因此具有用于多投影重建的潜力。不同投影可以投射不同颜色的条纹,通过颜色通道分离交叠区域。

在未来的工作中,将继续研究该方法对于纹理丰富物体的重建效果,并且把该方法应用于多投影仪全表面重建。

猜你喜欢

三维重建投影仪条纹
天空投影仪
三维重建的飞机机动动作库设计与可视化
基于Mimics的CT三维重建应用分析
防尘投影仪支撑架
谁是穷横条纹衣服的人
索尼发布真4K投影仪
高校多媒体教室投影仪维护技术分析
条纹回归
互联网全息位置地图迭加协议与建模制图技术
光编码技术在犯罪现场重建中的应用