-
文中使用的深度学习方法为监督学习,因此在训练时需要为输入数据提供与其相对应的真实值对输入的训练数据进行标记。神经网络的输入数据为散斑图像,其真实值为物体在两个视角间的匹配关系。为了获得准确的匹配关系,采用条纹投影轮廓术计算训练数据集中物体在两个视角的视差数据。
利用投影仪投影正弦条纹,通过两个视角的相机对投影到待测物体上的条纹图像进行采集。投影到待测物体上的条纹会根据待测物体形状的不同产生不同程度的形变。条纹投影轮廓术就是通过这些形变条纹求解出物体在两个视角上的相位信息,并利用相位信息进行匹配。目前,有许多的方法可以从形变条纹中提取出相位信息,其中N步相移法可以提供较高的测量分辨率和精度。投影仪投影N步相移法所使用的正弦条纹
$I_n^p\left( {{x^p},{y^p}} \right)$ 可以表示为:$$ I_n^p({x^p},{y^p}) = \frac{1}{2} + \frac{1}{2}\cos \left(2{\text{π}} {f_0}{x^p} - \frac{{2{\text{π}} n}}{N}\right) $$ (1) 式中:f0为正弦条纹的频率;
$\left( {{x^p},{y^p}} \right)$ 为投影仪坐标系中的像素坐标。在投影仪投影正弦条纹到待测物体上后,通过相机来采集投影到待测物体上的正弦条纹,采集到的正弦条纹$I_n(x,y)$ 可以表示为:$$ {I_n}(x,y) = A(x,y) + B(x,y)\cos \left[ {\phi (x,y) - \frac{{2{\text{π}} n}}{N}} \right] $$ (2) 式中:
$(x,y)$ 为相机坐标系中的像素坐标;$A(x,y)$ 为平均光强;$B(x,y)$ 为光强调制度;$\phi {{(x,y)}}$ 为待测物体的相位[19]。通过最小二乘法[20]可以将相位$\phi {{(x,y)}}$ 表示为:$$ \phi (x,y) = {\rm{arctan}}\frac{{\sum\nolimits_{n = 1}^N {{I_n}\sin \left(\dfrac{{2{\text{π}} n}}{N}\right)} }}{{\sum\nolimits_{n = 1}^N {{I_n}\cos \left(\dfrac{{2{\text{π}} n}}{N}\right)} }} $$ (3) 根据反正切函数的特性,计算出来的相位
$\phi {{(x,y)}}$ 的数值范围为-π到π,并且存在着2π的不连续跳变。将公式(3)中计算出来的相位$\phi {{(x,y)}}$ 称为包裹相位。由于包裹相位具有周期性特性,因此在相机的同一极线上存在着多个相位相同的像素点,所以无法通过包裹相位来进行相位匹配。为了消除包裹相位中的不连续跳变,从而获得连续分布的相位信息,需要通过相位展开算法将包裹相位$\phi {{(x,y)}}$ 转换为绝对相位$\varPhi \left( {x,y} \right)$ 。其中绝对相位和包裹相位之间的关系可以表示为:$$ \varPhi (x,y) = \phi (x,y) + 2{\text{π}} k(x,y) $$ (4) 式中:
$k(x,y)$ 为光栅条纹级次。根据获取光栅条纹级次$k(x,y)$ 的原理不同,可以将相位展开算法分为空间展开算法和时间展开算法。空间展开算法是利用包裹相位与其相邻像素的相位之间的关系来进行相位展开[21]。对于相邻像素中相位差较大的不连续表面,空间相位展开算法无法准确地消除包裹相位中的不连续跳变。因为空间相位展开算法在处理不连续表面中存在的缺陷,所以提出了多频时间相位展开算法。多频时间相位展开算法通过多个不同频率的包裹相位来进行相位展开[22],通过投影不同频率的条纹图像到待测物体表面,计算出不同频率的包裹相位:高频包裹相位
${\phi _h}\left( {x,y} \right)$ 和低频包裹相位${\phi _l}\left( {x,y} \right)$ ,与这两个频率的包裹相位相对应的绝对相位可以表示为:$$ {\varPhi _h}(x,y) = \frac{{{f_h}}}{{{f_l}}}{\varPhi _l}(x,y) $$ (5) 式中:
${\varPhi _h}\left( {x,y} \right)$ 为高频包裹相位${\phi _h}\left( {x,y} \right)$ 所对应的绝对相位;${\varPhi _l}\left( {x,y} \right)$ 为低频包裹相位${\phi _l}\left( {x,y} \right)$ 所对应的绝对相位;fh和fl分别为高频和低频条纹的条纹频率。根据公式(4)和公式(5)可以将高频条纹所对应的光栅条纹级次${k_h}\left( {x,y} \right)$ 表示为:$$ {k_h}(x,y) = Round\left[ {\frac{{{{{\phi _l}(x,y){f_h}} / {{f_l}}} - {\phi _h}(x,y)}}{{2{\text{π}} }}} \right] $$ (6) 式中:Round[ ]为取整函数。在已知光栅条纹级次和包裹相位的情况下,就可以根据公式(4)计算得到与包裹相位相对应的绝对相位。条纹投影轮廓术获得物体在两个视图之间的视差信息的步骤为:首先,通过两个视角的相机采集投影到物体上的正弦条纹图像,然后,利用N步相移法将条纹图像转化为包裹相位,再利用时间相位展开算法对包裹相位进行计算得到绝对相位,最后,通过绝对相位匹配获得物体在两个视图之间的视差信息。
相位匹配是在极线上通过最小化绝对相位差获得物体在两个视图之间的视差信息。以目标图像的像素点
$(a,b)$ 为例,在参考图像的同一极线上搜索与点$(a,b)$ 绝对相位误差最小的点$(c,b)$ ,两个点在横坐标的差a−c就为目标图像中像素点$(a,b)$ 的视差值。为了确保相位匹配的准确性,需要保证两个视图的绝对相位处于同一极线上。通过对双目立体视觉系统进行标定,利用标定数据对采集到的条纹图像进行极线校正,使得两个视图的条纹图像处于同一极线上,从而保证获得的绝对相位处于同一极线。 -
深度学习的方法是利用神经网络结构实现对数据的分析和预测。在该章节中介绍的神经网络结构是基于卷积神经网络建立的孪生网络结构。孪生网络由两个子网络组成,两个子网络通过共享权重实现连接。神经网络结构如图1所示,以目标散斑图像中的一个像素点做边长为R的正方形图像块,以参考散斑图像中D个参考像素点做长为R+D−1,宽为R的长方形图像块。在文中,目标散斑图像块的大小为19×19,即R=19。根据两个相机之间的基线距离和对训练集中视差数据的统计,训练集物体的视差数据范围为−50~100,所以参考散斑图像块的大小为19×169,即D=151。将这两个图像块作为子网络的输入数据,两个子网络的基本结构由卷积层组成。卷积层的作用是提取输入数据的特征值,因为卷积层中卷积核的尺寸为3,且采用的padding方式为VALID,所以经过9卷积层后输出的特征矩阵分别为[1,64]和[151,64],其中64为卷积层中卷积核个数即输出的特征数。
在输入数据经权重共享的子网络处理后,目标像素点与参考像素点所对应的特征矩阵将经过点积运算获得匹配相似度。深度学习中需要对训练数据进行标记,因为该神经网络结构的作用是在参考散斑图像的151个参考像素点中寻找目标散斑图像目标像素点的匹配点,所以神经网络的“标签”应为目标散斑图像的目标像素点与参考散斑图像的151个参考像素点的匹配相似度。将匹配相似度以曲线图的形式表示,匹配曲线如图2所示。匹配曲线的取值可以表示为:
$$ {{{y}}_i} = \left\{\begin{aligned} & 0.5,\;{x_i} = {x_c}\\ & 0.1,\;abs({x_i} - {x_c}) = 1\\ & 0.05,\;abs({x_i} - {x_c}) = 2\\ & 0,\;{\text{其他}} \end{aligned} \right. $$ (7) 式中:yi为曲线纵坐标,即匹配相似度;xi为曲线横坐标,若目标散斑图像的目标点为
$(a,b)$ ,参考散斑图像的匹配点为$(c,b)$ ,则目标点的视差值为a−c。因为151个参考像素点在横坐标分布范围为:a−100→a+50,所以目标点$(a,b)$ 在曲线图横坐标轴上对应的数值为xa=100,匹配点$(c,b)$ 在曲线图横坐标上对应的数值为xc=100+c−a。因此匹配曲线峰值所对应的横坐标会随着目标点的视差值而变化。相比于传统的单输入卷积神经网络[23],文中的网络采用了孪生网络结构,由于孪生网络利用权重共享的子网络来统一处理不同路径的输入数据,因此可以更好地衡量两个输入图像的相似度,所以孪生网络结构更加适用于图像匹配。相比于Zbontar J的MC-CNN网络[24],文中的网络没有正样本与负样本选择的局限性,在参考图像块中将所有可能的匹配点作为参考像素点,并且在输出端使用较为平缓的真实值曲线容许了一定的误差范围,从而使网络的匹配结果更稳定、可靠。相比于Luo W[25]的网络结构,因为Luo W的网络结构中参考图像块将匹配点
$(c,b)$ 置于图像块中心,即参考像素点的横坐标分布为:c−75→c+75,所以真实值曲线中最高点的横坐标始终固定在xi=75的位置。而文中的网络结构中真实值的曲线最高点会随着输入目标图像块视差值的不同而变化,这样增加了神经网络训练时的不确定性,从而提高了网络的稳定性和预测的准确性。 -
通过上述网络结构对输入数据进行训练,并利用训练好的模型对散斑图像进行预测。与训练时输入数据为图像块不同,为了减少预测的时间和使用资源,在使用深度学习模型预测时输入的测试数据为整幅图像。通过深度学习模型对目标散斑图像和参考散斑图像进行预测,其中目标散斑图像和参考散斑图像分别为左右视角相机采集的单幅散斑图像。利用子网络预测获得的特征值进行计算,获得散斑图像的视差匹配值,即匹配代价聚合
$C(x,y,d)$ ,匹配代价聚合的计算公式如下:$$ C(x,y,d) = - {F_m}(x,y,f) \cdot {F_r}(x + d - 100,y,f) $$ (8) 式中:Fm为目标散斑图像预测得到的特征值;Fr为参考散斑图像预测得到的特征值;f为卷积层输出的特征数;d为视差值,因为训练时使用的参考散斑图像由151个参考像素点组成,所以d∈[0,150];
$(x,y)$ 为目标散斑图像的像素点坐标。尽管通过神经网络可以得到较为准确的匹配结果,但是还不足以获得准确的视差信息,在一些边缘和特征复杂的区域会出现较多的错误点,所以可以对匹配代价聚合
$C(x,y,d)$ 进行一些后处理方法来减少这些区域内的错误点,从而获得更准确的视差数据。因为在后处理中使用到半全局匹配算法(SGM),所以为了适应半全局匹配算法,在公式(8)中将视差匹配代价聚合以负数形式表示,使得匹配点的视差匹配值为视差匹配代价聚合中的最小值。 -
将从子网络中预测获得的视差匹配代价聚合通过半全局匹配(SGM)算法来对其进行改善,进而获得更准确的视差匹配代价聚合
$C_{{\rm{SGM}}}(p,d)$ ,与Hirschmuller[26]中使用16个方向进行半全局匹配不同,文中只在水平和垂直两个方向上进行半全局匹配。目标像素点在指定方向r上进行半全局匹配后得到的匹配代价聚合$L_r(p,d)$ 可以表示为:$$ \begin{split} {L_r}(p,d) =\; &C(p,d) - \mathop {\min }\limits_k {L_r}(p - r,k)+ \\ & \min \left\{ \begin{aligned} & {L_r}(p - r,d), \\ & {L_r}(p - r,d - 1) + {P_1}, \\ & {L_r}(p - r,d + 1) + {P_1}, \\ & \mathop {\min }\limits_i {L_r}(p - r,i) + {P_2} \end{aligned} \right\} \end{split} $$ (9) 式中:p为目标像素点,其坐标为
$(x,y)$ ;P1和P2为惩罚系数。因为与主像素点进行半全局匹配的参考点为与主像素点在水平和垂直方向相邻的四个参考像素点,所以最终半全局匹配算法计算得到的视差匹配代价聚合$C_{{\rm{SGM}}}(p,d)$ 可以表示为:$$ {C_{{\rm{SGM}}}}(p,d) = \frac{1}{4}\sum\limits_r {{L_r}(p,d)} $$ (10) 通过计算每个目标像素点p的匹配代价聚合
$C_{{\rm{SGM}}}(p,d)$ 最小值所对应的视差值d就可以得到视差数据Dint(p),视差数据可以表示为:$$ {D_{{int} }}(p) = \mathop {\arg \min }\limits_d {C_{{\rm{SGM}}}}(p,d) $$ (11) -
根据公式(11)可知,计算得到的视差值为整数。在实际情况中视差数据基本不会以整数的形式存在。整像素的视差数据用于计算待测物体的三维数据的精度会低于亚像素的视差数据。为了可以进一步提高测量的精度,可以通过视差匹配代价聚合
$C_{{\rm{SGM}}}(p,d)$ 拟合的曲线将整像素的视差数据转化为亚像素的视差数据:$$ \begin{split} {D_s}(p) =\; & {D_{{int} }}(p) - \\ & \frac{{{C_{{\rm{SGM}}}}(p,{d'} + 1) - {C_{{\rm{SGM}}}}(p,{d'} - 1)}}{{2({C_{\rm{SGM}}}(p,{d'} + 1) + {C_{{\rm{SGM}}}}(p,{d'} - 1) - 2{C_{{\rm{SGM}}}}(p,{d'}))}} \end{split} $$ (12) 式中:Ds(p)为亚像素的视差数据;d'为p点的整像素视差数据,即d'=Dint(p)。因为匹配获得的视差数据是目标图像像素点的横坐标值减去参考图像匹配点的横坐标值,所以亚像素的视差数据Ds(p)需要根据公式(8)中的相对关系进行转换:
$$ D(p) = 100 - {D_s}(p) $$ (13) 式中:D(p)为经过转换后的亚像素视差数据。虽然半全局匹配和亚像素计算的后处理方法可以获得更准确的视差数据,但是计算出的视差数据中依然会存在着部分误差点。
-
为了提高测量的精度,需要尽可能地排除视差数据中的误差点。在双目立体视觉系统中,可以通过左右一致性检验的方法来排除视差图像中的误差点。将左右相机采集到的散斑图像互为目标图像和参考图像,进而获得左右相机的视差图像,之后检验两个视差图像中对应像素点的视差值是否相同来判定该像素点是否为误差点,左右一致性检验的算法为:
$$ {D_{{\rm{LR}}}}(p) = \left\{ \begin{aligned} & d,\left| {d - {D_{\rm{R}}}(p - d)} \right| \leqslant 1 \\ & 0,\left| {d - {D_{\rm{R}}}(p - d)} \right| > 1 \end{aligned} \right. $$ (14) 式中:DLR(p)为经过左右一致性检验后的视差图像;DR(p)为右相机的视差图像;d为左相机视差图像p点处的视差值d=DL(p)。通过左右一致性检验可以将左右相机的视差图像中不对应的像素点视为误差点,然后将其去除。
Speckle projection profilometry with deep learning
-
摘要:
针对传统的单幅散斑图像匹配算法测量精度低且无法测量复杂面型物体等问题,提出了一种基于深度学习的散斑投影轮廓术,即通过深度学习的方法实现散斑图像的逐像素匹配。设计利用孪生卷积神经网络结构,将目标散斑图像和参考散斑图像以图像块的形式输入神经网络。通过卷积层运算提取散斑图像块的特征信息,进而将子网络得到的特征信息融合为两个图像块之间的匹配系数,以获得散斑图像的视差数据,并最终可将视差数据转化为物体的三维信息。实验结果表明,该方法可以通过单幅散斑图像实现精度约为290 μm的三维轮廓测量。
Abstract:Traditional single speckle pattern matching algorithms always suffer from the low measurement accuracy and cannot be used to measure complex surface objects. A speckle projection profilometry with deep learning was proposed to realize the pixel-by-pixel matching. The siamese convolutional neural network structure was applied and extended where the main speckle pattern and the auxiliary speckle pattern were fed into the neural network patch by patch. It was expected that the feature from the speckle pattern patches could be extracted by the convolution operation. In this way, the features were fused and the matching coefficient between the two patches was obtained, which could be further used to formulate the disparity data and then the three-dimensional (3D) object was reconstructed. The experiment results demonstrate that with the proposed method 3D measurement with an accuracy of about 290 μm could be achieved through a single speckle pattern.
-
Key words:
- speckle projection /
- deep learning /
- 3D measurement /
- siamese network
-
图 5 视差图像和与真实值的误差图。(a) ZNCC匹配得到的视差图;(b) CNN网络得到的视差图;(c)文中方法得到的视差图;(d) ZNCC匹配的误差图;(e) CNN网络的误差图;(f) 文中方法的误差图;(g) ZNCC匹配获得的深度图;(h) CNN网络获得的深度图;(i) 文中方法获得的深度图
Figure 5. Disparity map and error graph from true value. (a) Disparity of ZNCC matching; (b) disparity of CNN; (c) disparity of the proposed method; (d) error of ZNCC matching; (e) error of CNN; (f) error of the proposed method; (g) depth of ZNCC matching; (h) depth of CNN; (i) depth of the proposed method
图 7 精度球三维重构及其分析;(a)图为左边精度球三维重构结果;(b)图为左边精度球误差分布;(c)图为左边精度球误差直方图;(d)图为右边精度球三维重构结果;(e)图为右边精度球误差分布;(f)图为右边精度球误差直方图
Figure 7. 3D reconstruction and analysis of precision sphere. (a) 3D reconstruction result of left precision sphere; (b) error distribution of left precision sphere; (c) error histogram of left precision sphere; (d) 3D reconstruction result of right precision sphere; (e) error distribution of right precision sphere; (f) error histogram of right precision sphere
-
[1] Su X, Zhang Q. Dynamic 3-D shape measurement method: a review [J]. Optics and Lasers in Engineering, 2010, 48(2): 191−204. doi: 10.1016/j.optlaseng.2009.03.012 [2] Gorthi S S, Rastogi P. Fringe projection techniques: whither we are? [J]. Optics and Lasers in Engineering, 2010, 48(2): 133−140. doi: 10.1016/j.optlaseng.2009.09.001 [3] Feng S, Zhang L, Zuo C, et al. High dynamic range 3d measurements with fringe projection profilometry: a review [J]. Measurement Science and Technology, 2018, 29(12): 122001. doi: 10.1088/1361-6501/aae4fb [4] Zhang S. High-speed 3D shape measurement with structured light methods: A review [J]. Optics and Lasers in Engineering, 2018, 106: 119−131. [5] Zhou P, Zhu J, Jing H. Optical 3-D surface reconstruction with color binary speckle pattern encoding [J]. Optics Express, 2018, 26(3): 3452−3465. doi: 10.1364/OE.26.003452 [6] Guo J, Peng X, Li A, et al. Automatic and rapid whole-body 3D shape measurement based on multinode 3D sensing and speckle projection [J]. Applied Optics, 2017, 56(31): 8759−8768. doi: 10.1364/AO.56.008759 [7] Pan B, Xie H, Wang Z. Equivalence of digital image correlation criteria for pattern matching [J]. Applied Optics, 2010, 49(28): 5501−5509. doi: 10.1364/AO.49.005501 [8] Liu X, Zhao H, Zhan G, et al. Rapid and automatic 3D body measurement system based on a GPU-Steger line detector [J]. Applied Optics, 2016, 55(21): 5539−5547. doi: 10.1364/AO.55.005539 [9] Schaffer M, Grosse M, Harendt B, et al. High-speed three-dimensional shape measurements of objects with laser speckles and acousto-optical deflection [J]. Optics Letters, 2011, 36(16): 3097−3099. doi: 10.1364/OL.36.003097 [10] Lionello G, Cristofolini L. A practical approach to optimizing the preparation of speckle patterns for digital-image correlation [J]. Measurement Science and Technology, 2014, 25(10): 107001. doi: 10.1088/0957-0233/25/10/107001 [11] Zhong F, Kumar R, Quan C. RGB laser speckles based 3D profilometry [J]. Applied Physics Letters, 2019, 114(20): 201104. doi: 10.1063/1.5094125 [12] García J, Zalevsky Z, García-Martínez P, et al. Three-dimensional mapping and range measurement by means of projected speckle patterns [J]. Applied Optics, 2008, 47(16): 3032−3040. doi: 10.1364/AO.47.003032 [13] Zhou P, Zhu J, You Z. 3-D face registration solution with speckle encoding based spatial-temporal logical correlation algorithm [J]. Optics Express, 2019, 27(15): 21004−21019. doi: 10.1364/OE.27.021004 [14] LeCun Y, Bengio Y, Hinton G. Deep learning [J]. Nature, 2015, 521(7553): 436−444. doi: 10.1038/nature14539 [15] Rivenson Y, Zhang Y, Günaydın H, et al. Phase recovery and holographic image reconstruction using deep learning in neural networks[J]. Light: Science & Applications, 2018, 7(2): 17141. [16] Sinha A, Lee J, Li S, et al. Lensless computational imaging through deep learning [J]. Optica, 2017, 4(9): 1117−1125. doi: 10.1364/OPTICA.4.001117 [17] Feng S, Chen Q, Gu G, et al. Fringe pattern analysis using deep learning [J]. Advanced Photonics, 2019, 1(2): 025001. [18] Feng S, Zuo C, Yin W, et al. Micro deep learning profilometry for high-speed 3D surface imaging [J]. Optics and Lasers in Engineering, 2019, 121: 416−427. doi: 10.1016/j.optlaseng.2019.04.020 [19] Zuo C, Feng S, Huang L, et al. Phase shifting algorithms for fringe projection profilometry: A review [J]. Optics and Lasers in Engineering, 2018, 109: 23−59. doi: 10.1016/j.optlaseng.2018.04.019 [20] Malacara D. Optical Shop Testing[M]. New York: John Wiley & Sons, 2007, 59. [21] Zuo C, Huang L, Zhang M, et al. Temporal phase unwrapping algorithms for fringe projection profilometry: A comparative review [J]. Optics and Lasers in Engineering, 2016, 85: 84−103. doi: 10.1016/j.optlaseng.2016.04.022 [22] Yin W, Chen Q, Feng S, et al. Temporal phase unwrapping using deep learning[J]. arXiv preprint arXiv: 1903.09836, 2019. [23] Yin W, Zuo C, Feng S, et al. High-speed 3D shape measurement with the multi-view system using deep learning[C]//SPIE, 2019, 11189: 111890B. [24] Zbontar J, LeCun Y, others. Stereo matching by training a convolutional neural network to compare image patches [J]. Journal of Machine Learning Research, 2016, 17(1-32): 2. [25] Luo W, Schwing A G, Urtasun R. Efficient deep learning for stereo matching[C]//IEEE, 2016: 5695-5703. [26] Hirschmuller H. Stereo processing by semiglobal matching and mutual information [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2007, 30(2): 328−341. [27] Zhang M, Chen Q, Tao T, et al. Robust and efficient multi-frequency temporal phase unwrapping: optimal fringe frequency and pattern sequence selection [J]. Optics Express, 2017, 25(17): 20381−20400. doi: 10.1364/OE.25.020381 [28] Pan B. Digital image correlation for surface deformation measurement: historical developments, recent advances and future goals [J]. Measurement Science and Technology, 2018, 29(8): 082001. doi: 10.1088/1361-6501/aac55b [29] Zhang L, Curless B, Seitz S M. Spacetime stereo: Shape recovery for dynamic scenes[C]//IEEE, 2003, 2: II-367. [30] Feng S, Zuo C, Tao T, et al. Robust dynamic 3-D measurements with motion-compensated phase-shifting profilometry [J]. Optics and Lasers in Engineering, 2018, 103: 127−138. doi: 10.1016/j.optlaseng.2017.12.001
计量
- 文章访问数: 1020
- HTML全文浏览量: 318
- 被引次数: 0