作者:冯世杰,左超,尹维,陈钱
期刊:红外与激光工程
年份:2020.03
注:以后再补充,目前仅仅是作为一份论文阅读笔记。这块方法还有很多,另外还需要结合最新的3D深度学习论文找想法,打算先读大量论文,再做整个整理!
推荐读博心得:「博士期间导师教会我最重要的五件事」超爱我导师~
核心:通过将立体视觉中的相机替换成光源发生器(如结构光中的投影仪,偏折术中的屏幕),主动投射特征点来实现重建功能。
系统原理示意图如下,变形的条纹即我们的特征点:
图1 条纹投影三维成像原理 |
大致的步骤如下:
下面我们来仔细讲一下每个阶段的具体细节。
参考链接:结构光相移法-多频外差原理+实践(上篇)
以投射的 N N N步相移图案为例,其表达式:
I n ( x , y ) = a + b cos [ φ ( x , y ) + 2 π ⋅ n N ] {I_n}\left( {x,y} \right) = a + b\cos \left[ {\varphi \left( {x,y} \right) + \frac{{2\pi \cdot n}}{N}} \right] In(x,y)=a+bcos[φ(x,y)+N2π⋅n]
注:通常,每次我们仅在一个方向上进行编码,比如编码 x x x 方向,那么 y y y 方向是完全一致的,如图1所示。
其中:
计算包裹相位 φ \varphi φ 的公式如下:
φ ( x , y ) = arctan ∑ n = 1 N I n sin ( 2 π n N ) ∑ n = 1 N I n cos ( 2 π n N ) \varphi \left( {x,y} \right) = \arctan \frac{{\sum\limits_{n = 1}^N {{I_n}\sin \left( {\frac{{2\pi n}}{N}} \right)} }}{{\sum\limits_{n = 1}^N {{I_n}\cos \left( {\frac{{2\pi n}}{N}} \right)} }} φ(x,y)=arctann=1∑NIncos(N2πn)n=1∑NInsin(N2πn)
参考链接:结构光相移法-多频外差原理+实践(上篇)
解得的相位是包裹着的,存在 2 π 2 \pi 2π 相位跳变,为了获得连续的绝对相位,需要对其进行相位展开:
ϕ ( x , y ) = φ ( x , y ) + 2 π ⋅ k ( x , y ) \phi \left( {x,y} \right) = \varphi \left( {x,y} \right) + 2\pi \cdot k\left( {x,y} \right) ϕ(x,y)=φ(x,y)+2π⋅k(x,y)
其中:
相位展开算法的目的在于确定光栅条纹的级数,得到级数,我们就可以获得连续的绝对相位。根据求取光栅级数的原理不同,可以分为两种:
参考链接:Zhang Song, GPU-assisted high-resolution, real-time 3-D shape measurement[J]. Opt. Express, 2006
TODO:后面补充这部分内容
有一种方法是,直接将“投影仪”当做“逆相机”处理。
单幅条纹,即空域相位解调法,传统的方法有:
传统方法:
为克服这些问题,Feng等人[40] 提出基于深度学习框架的单帧光栅条纹分析法,具体地:
TODO:细节不清楚,去看原理,估计是傅里叶。
一般而言,条纹图像可以表示为:
I ( x , y ) = A ( x , y ) + B ( x , y ) c o s [ φ ( x , y ) ] I(x,y)=A(x,y)+B(x,y)cos[\varphi(x,y)] I(x,y)=A(x,y)+B(x,y)cos[φ(x,y)]
如图2所示,结合条纹公式,构建了2个卷积神经网络:CNN1和CNN2:
最终代入反正切函数,即可得到最终的相位分布。该方法用标准12步相移算法作为标签,通过对大量样本的学习,它即可利用单幅条纹图像输出对应的高精度相位分布。
实验表明:相比较传统傅里叶方法,该方法误差降低50%以上,能够有效保持物体边界与轮廓的细节,总体测量效果接近12步相移法,实现了“高精度、高效率、全自动”。效果如图3所示:
Shi等人[41]提出:
标签:四步像移+Shearlet变换法滤波,实现噪声抑制,如下:
噪声存在会降低图像信噪比,进而影响相位恢复准确性,Yan[42]提出了方法,原理如下图所示:
构建一个20层卷积神经网络:
效果:
数据来自仿真。
基于深度学习的相位展开方法,同样分为两类:空域法和时域法。
Spoorthi G.E. 提出了PhaseNet,原理如下图所示:
输入:包裹相位,通过构建的神经网络 D C N N DCNN DCNN,使其输出条纹级次。该网络由一个编码器、解码器,和一个像素级的“分类层”组成。
另外,由于深度学习网络预测的条纹级次在 包裹相位跳变 和 存在相位陡变 区域容易发生错误进而提出 基于聚类的条纹级次后处理方法,通过合并互补的方式来增强相位空间分布的平滑度。
原始包裹相位+优化后的条纹级次,可计算最终的展开相位。效果如下所示:
训练和测试数据来自仿真,而实际的包裹相位情况往往比仿真更复杂。
PhaseNet:预测条纹级次,再结合包裹相位,计算展开后的相位。
U-Net[44]:直接预测包裹相位对应的去包裹相位。
结果:
传统方法:多频相位展开、多波长(外差)相位和数论方法。
为了提升测量效率,使用尽可能少的光栅图案,一种方法是:获取低频和高频两种频率的包裹相位。具体地:
文献[45]:
功能和多频外差是一样的,但是去包裹误差更小,如下图所示:
采用深度学习辅助后,时域多频相位展开的正确率可得到大幅提升。
基于单幅图像的测量方法在测量速度、运动伪影的鲁棒性等方面,均优于基于多副图像的结构光技术。
Sam Vam [46] 提出完全基于深度学习的单帧光栅解调方法:从单幅变形的光栅中直接解调出表面的高度信息,结构如下图所示:
使用了仿真数据,真实数据,精度还有很大提升空间。
条纹投影将双目相机中一个相机替换成投影仪,构建了一种主动式的“双目”三维成像系统,但是投影仪的镜头与相机镜头,其在设计与功能上还是存在很大差异的,因此,简单的套用相机标定的模型,很难准确标定投影仪的畸变,进而造成三维轮廓出现失真。
文献[47]提出,如图16所示:
LV等人,提出全连接网络:
该方法用来补偿剩余畸变对三维重构造成影响。研究人员利用训练好的模型对平板测量进行验证,结果如下图所示:
需要一种精确的方式来确定不同姿态下平板表面真实三维数据。
这个方法,其实可以归位于时域相位展开,但是可以算作一个新的方向。
尽管目前 C M O S CMOS CMOS 可以实现每秒万帧、甚至百万帧的拍摄,但是由于运动模糊的关系,如何有效从拍摄到的二维图片获取三维深度图像,依然是个挑战。
文献[49],提出了微频深度轮廓术,原理如下所示:
使用三种不同频率中的相位信息,其中一幅用于重构三维轮廓,另外两幅用来辅助相位展开,最后根据标定的系统参数,重构光栅图像中包含的三维轮廓信息。
为了测试有效性,Feng设置了一个瞬态场景,包含一个静态的石膏像和一个下落的乒乓球,相机拍摄速度为20,000帧/s,记录了乒乓球落地、反弹的全过程。需要说明的是,两个物体均未在网络的训练过程中出现。
其中:
根据结果可知,效果还不错。
优势:
缺点:
极具发展前景!