三维重建之结构光编码方案研究

描述

一、序言

在介绍结构光编码方案之前,先介绍一下目前常见的三维测量方法,从原理上来讲分为以下几类:

结构光

大家可以看到,结构光属于主动式光学测量的一类,而常见的光学三维测量可以分为以下三类,右边是它们各自的原理图:

结构光

二、结构光分类

接下来进入主题,正式介绍结构光编码方案。结构光三维重建按照所投影的图案一般可以分为以下三类,点结构光、线结构光和面结构光,其中面结构光按照编码原理又可以基于时域编码的结构光和基于空域编码的结构光。

1、点结构光

其光源一般是激光器,测量时将光束投射到被测物表面形成光点,相机拍摄被测物图像,如下图所示,之后通过空间三角关系获得被测物光点照射位置的三维坐标。

结构光

优点:逐点扫描被测物表面,每个点都要采集一张图片,可以获取较高密度的点云,精度最高。

缺点:需要采集大量的图片,导致效率低下。

2、线结构光

线结构光是对点结构光的扩充改进,它将扫描点变成扫描线,测量时激光器发出的光线以一条线的形式扫描被测物表面,之后还是用相机采集扫描的图片,通过空间三角关系获得被测物光点照射位置的三维坐标。

优点:对比点结构光方法,只需进行一维扫描就可获得物体的深度,简化了点结构光的复杂度。

缺点:效率较低。

3、面结构光

面结构光也叫编码结构光,典型的硬件组成由投影仪—相机对表示,如下图所示。投影仪将编码图案投射到被测物表面,然后由相机进行同步采集。其基本原理是投射的编码图案经过被测物表面调制,此时物体表面的高低信息便储存在了调制后的编码图案中,然后用相机从一个或多个角度采集这些变形的图案,找到相机和投影仪像素之间的对应点,利用三角法原理求出被测物表面的三维坐标。

结构光

按照不同的编码方法,面结构光可以分为多类:

A、时域编码

时域编码是一种常用的编码策略,该方法将一系列的简单图案按时间先后顺序投影到被测物表面,一个给定像素的编码就是该位置在时间上随投影图案的明暗变化。

优点:这种编码方案在三维测量上有很高的测量精度,且易于在工程上实现。

缺点:速度较慢,无法对动态物体进行实时重建。

接下来介绍几种常见的时域编码:

① Binary Code (二进制编码)

二进制编码使用黑白条纹形成一系列投影图案,这样物体表面上的每个点都拥有一个独特的二进制代码。N个图案可以编码2ⁿ个条纹。

优点:精度比较高,对表面特征不太敏感,因为所有像素中只存在二进制值。

缺点:为了获得高的空间分辨率,需要投影大量的序列图案,而且场景中的所有对象都必须保持静止,级数较高的二进制码图片条纹密集,解码容易出错。

结构光

② Gray Code (格雷码)

格雷码是二进制码的一种改进,它的任意俩个相邻代码只有一位二进制数不同,最大数和最小数之间也仅有一位数不同即“首尾相连”,又称“循环码”。

优点:精度高,相邻状态变换是仅有一位发生改变,鲁棒性好。

缺点:速度慢,无法达到实时

结构光

③ Phase Shift (相移码)

投影多幅具有相位差的结构光图像来获得相位信息,常见的几种算法有三步相移法、四步相移法和五步相移法。编码图案的强度按照正弦函数分布,沿平行于编码轴的线的每个点都可以用唯一的相位值来表征。任何非平面3D形状都会导致记录的图案相对于投影图案发生变形,并记录为相位偏差,此相位偏差可以提供被测物体的形状信息。

优点:速度较快,三步相移法只需要投影三幅图片即可,测量精度也较高。

缺点:投影的非线性问题、包裹相位展开问题、相位误差补偿问题。

结构光

④ Hybrid:Phase Shift + Gray Code (相移+格雷码)

格雷码和相移码可以混合使用,利用各自的优点进行更好的编码解码方案。

优点:格雷码在没有任何模糊性的情况下确定相位的绝对范围,而相移提供的亚像素分辨率超过了格雷码提供的条纹数。

缺点:混合方法需要更多的投影,并且不适合动态对象的三维成像。

结构光

B、空域编码

空域编码和时域编码最显而易见的不同就是时域编码需要投射多幅图案而空域编码只需投射一幅图案。唯一的编码图案中每点的码字从该点周围点提供的信息(例如像素值、几何形状等)中得到。

优点:该编码方法在测量过程中只投影和采集一幅图像,计算量比时域编码方法显著降低,可用于实时的三维场景测量。

缺点:空域编码分辨率不高,且在解码阶段会有空间临近点的信息丢失,最终计算得到的的场景三维点与时域编码相比精度较低。

接下来介绍几种常见的空域编码:

① One-shot method based on point-pattern

使用单个点或一组点来解决相机和投影仪之间的对应问题。有了足够多的点,就可以鲁棒地测量物体的三维形状。

优点:简单、高效、精度高、抗外界光干扰强。

缺点:重建分辨率低,具体应用通常需要特定的图像处理方法。

结构光

② One-shot method based on line-pattern:

使用一组线条或条纹来解决相机和投影仪之间的对应问题,因为设计图案中的所有线条都是平行的,深度是通过相机和投影仪之间的线对线三角测量计算的。

优点:简单、高效、精度高、分辨率相对较高、抗外部光干扰能力强

缺点:特定的应用通常需要特定的图像处理方法。

结构光

③ One-shot method based on crossed-line-pattern

使用一组交叉线或交叉条纹来解决相机和投影仪之间的对应问题。通常,交叉线图案的水平线和垂直线采用不同的颜色,以便于识别线。设计图案中相同颜色的所有线条都是平行的,深度是通过相机和投影仪之间的水平线到水平线三角测量和垂直线到垂直线三角测量计算的。

优点:简单、高效、精度高、分辨率相对较高、抗外部光干扰能力强

缺点:特定的应用通常需要特定的图像处理方法。

结构光

三、补充:

Light coding method

光编码可以被认为是结构光的一种演变,它使用随机散斑代替精心设计的结构光图案,通过相机和散斑投影仪之间的三角测量来计算深度。下图显示了通过三角测量进行深度计算的原理,基线b 、到参考面Z0的距离、红外摄像机的焦距f以及摄像机坐标观察到的视差d均通过标定确定。然后,深度Z k 计算为:

结构光

结构光

激光束投射到扩散表面后,衍射斑随机形成。这些衍射点是高度随机的,并且随着距离的变化而改变图案。在三维空间中,不同位置的图案总是不同的。产生的散斑图案取决于激光的波长、激光束的大小以及扩散面与观察面之间的距离。下图显示了Kinect v1和其它文献中分别产生的两种不同散斑图案。由于散斑图案的高度随机性,其图像处理精度远低于处理精心设计的图案,因为精确的数学模型可用于已知形状的图案。与其他结构光方法相比,光编码方法的测量精度要低得多。与其他方法相比,它具有成本低、通用性好等优点。

结构光

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分