结构光技术详解.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

本文的目的就是对结构光技术做一个比较全面的简介。总体而言,所说的结构光主要可以分为两类

线扫描结构光;

面阵结构光。

一般说结构光的时候都指代第二类,这里也主要关注面阵结构光。

01

线扫描结构光

线扫描结构光较之面阵结构光较为简单,精度也比较高,在工业中广泛用于物体体积测量、三维成像等领域。

1.1数学基础

先来看一个简单的二维下的情况:

通过上图可以看到线扫描结构光装置的一个基本结构。主动光源L缓慢扫过待测物体,在此过程中,相机记录对应的扫描过程,最后,依据相机和光源在该过程中的相对位姿和相机内参等参数,就可以重建出待测物体的三维结构。

由上图可知:

1.2应用

如上图,相机与投影器等相对位姿都经过了精确的校正,并且选取了测量台上的一角作为原点建立物方坐标系。

因此,激光投影器所投射的线激光在物方坐标系中可以通过一个平面方程来描述:

02

面阵结构光

面阵结构光大致可以分为两类:随机结构光和编码结构光。随机结构光较为简单,也更加常用。

通过投影器向被测空间中投射亮度不均和随机分布的点状结构光,通过双目相机成像,所得的双目影像经过极线校正后再进行双目稠密匹配,即可重建出对应的深度图。

如下图为某种面阵的红外结构光。

随机结构光这里就不再说了,因为和普通双目算法是很相似的。一些额外的考虑就是是否给相机加装滤光片、光斑的密度要到什么程度等硬件和光学的问题了。

这里主要讨论编码结构光。编码结构光可以分为两类:

时序编码;

空间编码。

2.1时序编码

如上图,时序编码结构光即为在一定时间范围内,通过投影器向被测空间投射一系列明暗不同的结构光,每次投影都通过相机进行成像。

假设共有n张影像,并设被阴影覆盖的部分编码值为1,未被覆盖的部分编码值为0。此时,每个像素都对应唯一一个长度为n的二进制编码,双目影像搜索匹配像素的问题就变成了查找具有相同编码值的像素。

如果双目图像已经进行了极线校正,那么所投影的结构光只需要在x方向上不具有重复性即可。

如上图中,红框内的像素的编码为0110,转化为十进制则为5。此时,只需要在右图相同行上检索编码值为5的像素即可。

上图编码方式称为二进制码(binarycode),每段区域不断的进行二分下去直至投影的编码宽度等于相机的像素宽度即可。对于宽度为1024的图像,最少需要10张影像来进行编码。

BinaryCode的一种改进为GrayCode.GrayCode比BinaryCode具有更好的鲁棒性,它使得相邻两个像素相差1bit。GrayCode的详细介绍和其与BinaryCode之间的转换可以参考wikipedia。

注意观察即可看到graycode和binarycode在前几行像素上的不同

转换算法:

由以上的介绍也可以得出时序编码结构光的优缺点:

优点:

高精度;

缺点:

只适用于静态场景;

需要拍摄大量影像。

2.2空间编码

为满足动态场景的需要,可以采用空间编码结构光。前面谈到了随机结构光,就是不带编码信息,投影随机纹理,而这里讨论的空间编码结构光特指向被测空间中投影经过数学编码的、一定范围内的光斑不具备重复性的结构光。

由此,某个点的编码值可以通过其临域获得。其中,包含一个完整的空间编码的像素数量(窗口大小)就决定了重建的精度。

2.2.1德布鲁因序列(DeBruijn)序列

2.2.2二维空间编码

德布鲁因序列是一种一维编码,可以将之扩展到二维空间中,使得对于一个x*y大小的二维空间,其中一个w*h大小的子窗口所包含的编码值在这整个二维编码序列中只出现一次。

如上面中的4*6的M-arrays序列中,每个2*2大小的窗口所包含的编码值都是唯一的。

同样也可以利用RGB信息来进行二维编码,有相关算法来产生一些伪随机二维编码。如在下图中,左边展示了一个6*6大小的二维矩阵,子窗口的大小为3*3。

算法首先在左上角的3*3子窗口中随机填入各种颜色;然后一个3*1大小的滑动窗口移动到右端第一个空白处,并随机填入3中颜色;在填入生成的随机颜色前,算法会先验证子窗口的编码的唯一性能不能得到保证,若不能,则会重新生成3中随机颜色;

如此循环,只是在竖直方向上滑动窗口的大小变为1*3,直至将整个6*6矩阵填满。右图则是该算法产生的某种伪随机二维编码的示例。

通过以上对空间编码的讨论,也可以看出空间编码结构光的一些优缺点:

优点:

无需多张照片,只需要一对影像即可进行三维重建。可以满足实时处理,用在动态环境中。

缺点

易受噪声干扰:由于反光、照明等原因可能导致成像时部分区域等编码信息缺失;

对于空间中的遮挡比较敏感;

相较于时序编码结构光精度较低。

以上是对各种常用的结构光技术的一些介绍。其实,三维重建中最常用的还是随机面阵结构

文档评论(0)

外卖人-小何 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档