结构光模板设计总结
在结构光系统中,拍摄图像的质量对于获得一个良好的模板数据库来进行标定、解码和重建是非常重要的。因此,照相机的分辨率通常比投影仪的分辨率高,并且投影仪的视野通常需要在照相机的视野范围内调整。
根据本人自己的理解,简要将如下几种常见模板进行了分析评价,同时也诚挚希望各位来补充相关内容。
-
散斑随机模板:常见于商用的深度相机,eg. Kinect、RealSense等
散斑模板设计一般要求局部散斑在全局具有唯一性,常见的编码方法有非正规码、M-array码和De Bruijn编码。通常,传统方法一般是利用如NCC、ZNCC等相关函数采用局部窗口进行匹配求解视差;当然也有利用深度学习方法进行匹配的,一般是采用孪生网络对图像对进行特征提取,计算代价然后得到视差图。
特点:
a). 这种模板设计简单,通过生成随机点阵便可完成模板设计;
b). 单一的静态模板,易于实现,可实现实时深度获取;
c). 点阵的特点在具体投射时,可以应用散斑投射器来替代投影仪,有利于降低成本且易于硬件实现和系统的小型化;
然而,该模板空间分辨率低、对噪声很敏感、测量精度低、该方法难以实现投影仪与摄像机像素级的对应精度。 -
时间编码的二值条纹模板:
这种模板通常由格雷码设计构成,在时间轴方向可唯一确定像素点,根据唯一性便可对图像进行匹配。类似的还有N值模板。
特点:
a). 设计简单,编、解码算法也简单易懂;
b). 处理速度快,因为处理算法在计算上的时间代价不高;
c). 鲁棒性好精度高,由于只需要识别二值情况,没有其他干扰;
然而,需要投射多个模板,耗时大,不适合动态场景;同样对投射技术要求高,因为模板是动态的;受投影仪空间分辨率的限制,匹配精度不高。 -
基于相位法的余弦模板:
这种模板通常由余弦函数构成,可以是多帧带有相移的余弦函数,也可是单帧嵌入标记的余弦模板。通过求解绝对相位来获取深度信息。
特点:
a). 对环境光和物体反射率具有鲁棒性;
b). 抗干扰能力强,精度较高,也是目前高精度获取中的主流方法。
然而,这种模板可能特别容易受到传感器或环境噪声的影响,产生一定的相位便宜;同时由于在求解相位的过程中,得到的是截断的包裹相位,在相位跳变点有着歧义性,这也是不少学者研究的热点,即如何快速高效的进行相位解包裹处理。
相位模板有如下方法:1)多频外差法;2)格雷码+相移法;3)简单强度比替代arctan的算法;4)单帧彩色相移法;5)傅里叶变换轮廓术(FTP);5)深度学习方法:利用单帧图像直接预测求解相位、并进行解缠绕处理。
此外,还有一种二元离焦法:
该方法生成的是二元模板,根据投影仪的散焦程度不同,二元模板将在成像后发生不同的形变,得到近似正弦的条纹图案。这种方法,实现了速度上的突破,不受投影仪非线性响应的影响;具有较高的深度分辨率;然而二元离焦法需要仔细调整投影仪的镜头,使其在一个小的失焦范围内,限制了它的深度测量能力。 -
基于几何形状的空间编码模板
这种模板通常采用预先设计好的几种几何形状或带有颜色信息的特征,根据基于迦瓦罗域或De Bruijn序列等方法设计的码表,生成模板。根据一定的滑窗规则,唯一确定某位置处的码字进行模板匹配,便可得到相关的深度信息。
特点:
a). 该模板一般具有较高的鲁棒性,对特征点的位置提取准确;
b). 可实时获取深度信息,模板单一;
然而,这种模板需要依靠邻域信息,设计精确的特征提取算法是关键,算法设计较为复杂;且该模板得到的深度图是稀疏的,特征的疏密决定了深度图的情况;通常要获得稠密深度图,一般需要配合插值算法。 -
基于网格线的空间模板
这种模板与上面4)模板类似,一般通过定位网格线条的位置来定位网格点,随后根据网格点周围的特征来获取网格点的码元信息。
也有采用无编码的网格,根据网格点的拓扑关系来进行匹配,求解深度信息。
还有线条模板:通过对线条进行分割、聚类得到视差图。
多线条片段模板:借助片段端点的邻域情况进行匹配,通过置信传播对匹配情况进行微调,得到匹配结果。
目前为止,我所能想到的有关结构光的模板就这么些了,欢迎各位补充!