聊聊三维重建-条纹法之相位法(一)

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

本文由知乎作者Tengfei Jiang授权转载,不得擅自二次转载。

原文链接:

https://zhuanlan.zhihu.com/p/81731606

前言

上一篇文章里我们介绍了双目立体视觉的基本原理。具体到三维扫描应用中,有多种结构光重建的方案。条纹法是其中应用比较广泛的一类方法,尤其在追求高精度的工业应用中比较常见。条纹法,顾名思义,通过投射一组时序变化的条纹图案,来辅助完成立体匹配和视差计算、或者深度的直接计算。根据不同的条纹图案,衍生出了一系列方法,如格雷码等二值编码方案、正弦条纹的相移法、格雷码+相移法、彩色条纹法等等。本文主要介绍相位法的原理。

相位法又叫相位测量轮廓术(Phase Measurement Profilometry,PMP),这听起来有点神秘的名字,来自激光干涉计量领域,在19世纪80年代被引入三维测量领域。PMP方法通过采用正弦光栅投影和相移技术,利用多幅具有一定相位差的条纹图来计算相位,再对应计算出物体的高度。

相位与高度的关系

将下图左边的条纹图投射到物体上,我们会发现原本竖直的条纹图案发生了扭曲,我们称之为条纹图被物体高度调制,扭曲的条纹形状就蕴藏了物体的高度信息。

 

接下来,我们看如何从正弦条纹的相位差里推算物体的高度信息。请看下图,整个系统包含投射系统,相机及参考平面。相机中心距离投影系统中距离为 d,且两者连线与参考平面平行。相机到参考平面距离为 L0。

假设投射系统投射的光束与参考平面交于C点,该点在相机像平面上成像于E点。当放上物体后,假设另一光束与物体交于D点,也在相机像平面中成像于E点。于是对相平面中的E点而言,前后出现了两个相位值,因而根据该相位差,即可推导出D点的高度h。

 

其中T是正弦条纹的周期,是 AC之间的相位差。特别注意: 上面公式推导中使用了一个等式替换:

这个等式成立是有条件的,注意与 是不同的。所以要求此处的相位差必须是经过相位展开后,非周期性的。这就牵扯出相位法中非常重要的相位展开(phase unwrapping)的技术,我们在本文稍后介绍相位展开。

上述方法只需要使用一个相机加一个投影系统,通常称之为单目相位法。上一篇文章介绍的双目视觉原理,也可以和相位法紧密结合,只需要将双目匹配的描述子换成展开后的相位值即可。

相移法解相

包裹相位展开

相位展开也叫解包裹(我觉得叫拆快递也是可以的:),目的是为了重建连续的相位分布。相位展开一般有空域展开与时域展开。 

  • 空域展开 一般需要比较相邻两个像素点截断相位值,通过加减2kπ,使相邻像素点相位位于(-π,+π)。从这个方法的描述来看,能work的条件在于三维物体表面在相平面的投影的连续性,一旦出现深度不连续区域,该方法就会出错。即使保证深度连续,该方法精度也不高,因为相位空域展开方法本质上是积分过程,容易产生累计误差,导致相位展开失败。下图是空域展开的示意图。

 

  • 时域展开 通过投射不同条纹图到物体来辅助确定绝对相位。常用的办法有投射多种频率的条纹图,投射格雷码条纹图等。这些方法均是对每个点的相位在序列上独立展开,从原理上就能避免误差传播,此外该算法在展开相位时不依赖附近点的相位值,因而可以准确测量深度不连续区域,而且非常有利于算法并行处理,可以使用GPU或FPGA加速。时域相位展开方法以其理论的优越性和实践的精确性赢得了广泛的应用。下图是多频相移时域展开的示意图。

 

观察上述相位图,是不是看起来和空域展开图很相似?这两者的展开方法一样,唯一的区别是沿着空域横轴还是沿着时间轴展开。接下来介绍两类相位展开的方法。

Gray编码法

向物体投射一组Gray编码图像和相移图像,通过对编码图像进行解码得到相移图像的级数,下图中是6幅Gray编码图序列,图像中任意点的Gray编码值根据所在每幅图像中落于黑白区域而选定,诸如 011001。Gray编码相比其他二值编码的优势在于:图像上任意一点,最多只会存在一个码处于01边界,这使得解码出错的概率大大减少。

 

在相位计算过程中,首先计算每个空间点的相位主值 ,和对应的Gray编码值B(x,y),得到的绝对相位值为:

在具体应用中采用几位Gray编码,几步相移需要根据实际情况选择。假设场景在条纹方向的像素宽度是N个像素,若要求在整个解包场景中对包裹进行无歧义展开,需要满足下式,其中k表示需要投影的Gray码光栅数,表示包裹相位的周期。

Gray编码法算法简单,但是解码过程依赖图像二值化的准确程度,因此对被测物体表面颜色比较敏感,颜色较丰富或颜色较暗都会影响二值化的准确性,需要在物体表面喷白色粉末;另外投射的Gray编码图仅可用于相位展开,对提高相位计算精度并没有帮助。另外当投射场景较大时,需要增加Gray编码的位数,相应的增加投影的图像数据,采集时间也会增加。

多频相移法

下图可知,当场景超过T,则包裹相位会出现循环,绝对相位的求解就会出现歧义。

参考文献

1、 http://www.doc88.com/p-0058545515267.html

2、 http://www.doc88.com/p-9038154413483.html

3、 http://xueshu.baidu.com/usercenter/paper/show?paperid=392481e13f6279fc01571e400f7527a2&site=xueshu_se

4、 https://www.quora.com/What-are-the-advantages-of-Gray-code-over-binary-code

交流群

欢迎加入我们公众号读者群一起和同行交流,目前有3D视觉、CV&深度学习SLAM、三维重建、点云后处理、自动驾驶等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。

知识星球

学习3D视觉核心技术,扫描查看详情,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

3D视觉工坊 CSDN认证博客专家 算法 3D视觉
个人公众号:3D视觉工坊。公众号特邀嘉宾及合伙人,先后就职于国内知名研究机构、自动驾驶公司、海康研究院,主要研究方向为深度学习、目标检测、语义分割、图像处理、自动驾驶感知算法等,CSDN博客专家。博主先后任职于国内知名研究院、知名大厂,致力于3D视觉算法、VLAM算法开发,涉及相机标定、手眼标定、结构光、点云后处理、三维重建等相关领域的研究,同时也是CSDN博客专家。3D视觉工坊坚持原创,近一年来输出了非常多的高质量文章,获得了粉丝的一致好评,我们将始终坚持走原创路线,打造一个铁杆粉丝的聚集区。
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值