@TangWill
2019-06-16T23:19:56.000000Z
字数 2564
阅读 557
大创
本文提出了一种由数码相机和DLP投影仪通过编码结构光以扫描3D 物体的方法。由于这种方法的编码模式是有彩色条纹组成的彩色组,我们可以通过彩色条纹的扫描线来解码颜色组。
在本文中,由全排列生成的模式编码,在单个颜色组中出现部分彩色条纹丢失的情况下,可以减少错误率。该方法还提供了抗错误性的能力并降低了时间复杂度。
全排列模式编码的性能相较于相同策略的其他方法更胜一筹。通过实验,重建结果的精度比空间编码的De Brujin 3D扫描方法提升了46%。
相机与投影仪相对位置的创新
编码模式的创新
本文设计了一种排列方法(该方法将在接下来的内容中给出)来编码颜色图案。将编码后的图案投射到物体上后,我们可以捕捉和解码图案信息,用于坐标计算。
本文的编码图案为由水平彩色条纹组成的颜色组。
本文用六个颜色通过全排列来编码模式。因此,有个不同的颜色组,而每个颜色组包含七个颜色(除之前提到的六种颜色外,另加一个白色条纹用于不同色组之间的区分),在图像捕获和模式解码部分,论文提出每个色组共有14个条纹,即之前提到的七个彩色条纹和七条黑色条纹,因此,每个颜色组包含14个像素(pixel)。
分别对之前提到的六种颜色赋予一个数字,如图所示,
颜色编码可以用下列公式生成,
其中,是一个色组中颜色的数量(包括白色,在本文中),而表示第个色组。是从数组中获取第数字的函数。
例如,,如图为获得第二个数字的过程,
通过上述等式,可以生成我们需要数量的条纹。例如,如果我们需要1024个彩色条纹,则需生成147个色组。下图为部分由上述公式生成的色组,
可以用C++中的next_permutation生成这组数据的全排列
一个色组由七个彩色条纹和七个黑色条纹组成,因此每个色组包含14个像素(pixel),而色组中彩色条纹的顺序是对七个颜色的色码进行全排列生成的。
在通过相机捕获图像后,对于相机的扫描线,我们可以给每个颜色附一个色码。扫描线垂直于彩色条纹的方向。然后,根据白色条纹将六个颜色条纹归为一个色组,并可根据色组中彩色条纹的顺序从之前得到的色组表中查得该色组的索引。
例如,如果一个颜色组中彩色条纹的顺序为,则该色组的编码为,接着查询色组索引表得到该色组的索引,由于每个色组有14个像素,进而可得到这个色组的开始位置是,条纹的位置为1778,的位置为1780,重复上述过程,可以得到所有色组的数目并通过公式(1)转换为角度(相似关系)。
文中没有提出具体的对不同颜色识别、检测和矫正,若是直接进行颜色辨别,鲁棒性不高。
利用三角法则的坐标重建的概念如图所示,
使用三角法则计算点的坐标
为了证明这种方法的可行性,本文进行了两个实验。
本文没有对重建结果和真实数值进行二分回归评测,只是进行了做差比较,有待改进。
此文,本文还对一个雕塑并从两个角度进行了重建和分析。
本文提出的减少了计算耗费而且提供了容错能力从而降低了错误率,进而改善了重建的精度和准确性。全排列编码可以将模式解码的时间复杂度降低到。
在3D扫描中,相机标定和颜色标定是必要的过程,这两个标定过程需要人为实现。
我们必须测量几何失真和颜色失真的值,然后调整我们系统的参数并再次测量这些值。这些程序将来应该改进为自动校准。
有两个问题将继续解决。首先,在模式编码中,生成带有颜色的模式条纹,颜色信息可能会丢失或更改,因为物体表面。第二,颜色组是由七种颜色组成,如果对象表面小于七种颜色的长度,它无法得到颜色信息。
(1)、参考本文关于相机和投影仪相对位置的创新,尝试应用于其他方法
(2)、全排列数据的生成方式
(3)、找到更合适的颜色数量和窗口大小