首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

技术干货|结构光技术及其实现三维成像的主要原理

原创 | BFT机器人

3D表面成像的一种主要方法是基于“结构光”的使用

即使用专门设计的二维空间变化强度模式对场景进行主动照明

3D结构光的整个系统包含结构光投影设备、摄像机、图像采集和处理系统。其过程就是投影设备发射光线到被测物体上,摄像机拍摄在被测物体上形成的三维光图形,拍摄图像经采集处理系统处理后获得被测物体表面数据。

在这个系统中,当相机和投影设备相对位置一定时,投射在被测物体上的光线畸变程度取决于物体表面的深度,所以在拍摄图像中可以得到一张拥有深度的光线图像。

3D结构光的根本就是通过光学手段获取被拍摄物体的三维结构,再通过这一信息进行更深度的应用。

01

结构光技术

我们周围的物理世界是三维的,然而,传统的相机和成像传感器只能获取缺乏深度信息的二维图像。

这一基本限制极大地限制了我们感知和理解现实世界物体复杂性的能力。在过去的几十年里,由于各种细分市场的应用需求、高分辨率和高速电子成像传感器的进步以及不断提高的计算能力的推动,3D表面成像技术的研究、开发和商业化取得了巨大进步。

3D表面成像的一种主要方法是基于“结构光”的使用,即使用专门设计的二维空间变化强度模式对场景进行主动照明。如图1所示,一个空间变化的二维结构照明是由一个特殊的投影仪或由空间光调制器调制的光源产生的。结构光模式上每个像素的强度用数字信号,

,其中(i, j)表示投影图形的(x, y)坐标。

本文讨论的结构光投影模式是二维模式。

图1 结构光示例

成像传感器(如摄像机)用于在结构光照明下获取场景的二维图像。

如果场景是一个没有任何三维表面变化的平面,则获取的图像显示的模式与投影的结构光模式相似。然而,当场景中的表面是非平面时,表面的几何形状会扭曲从相机看到的投影结构光模式。结构光三维曲面成像技术的原理是根据结构光投影变形信息提取三维曲面形状。利用各种结构光原理和算法,可以精确地计算出场景中物体的三维表面轮廓。

如图1所示,成像传感器、结构光投影仪和物体表面点之间的几何关系可以用三角剖分原理表示为:

目前有许多结构光表面成像技术可用。将所有技术分为顺序(多镜头)或单镜头类别,如图2所示,这可以被视为该技术的路线图。如果目标3D物体是静态的,并且应用程序对采集时间没有严格的限制,则可以使用多镜头技术,并且通常会产生更可靠和准确的结果。

然而,如果目标是移动的,则必须使用单镜头技术来获取特定时间实例的三维物体的快照三维表面图像。

图2 结构光表面三维成像技术分类框架

02

二进制编码与格雷码编码

二进制编码采用黑白相间的条纹形成一系列的投影模式,使得物体表面的每个点具有一种独特的二进制码,区别于其他任何不同点的码。一般来说,N个图案可以编码2N条条纹。图4显示了一个简化的5位投影模式。一旦这个图案序列被投射到一个静态场景中,就会有32(2的五次方)个用独特条纹编码的独特区域。

沿每条水平线计算所有32个点的三维坐标(x, y, z)(基于三角剖分原理),从而形成一个完整的3D图像帧。

二进制编码技术是非常可靠的,对表面特征不太敏感,因为只有二进制值存在于所有像素。然而,为了实现高空间分辨率,需要对大量的序列模式进行投影。场景中的所有对象必须保持静态。3D图像采集的整个持续时间可能比实际的3D应用程序所允许的更长。

图3 用于三维成像的二值编码投影

为了有效地减少获得高分辨率三维图像所需的图案数量,开发了灰度级图案。例如,可以使用M个不同的强度级别(而不是二进制代码中的两个级别)来生成投影模式的唯一编码。

在这种情况下,N个图案可以编码M的N次方条。每个条纹码可以可视化为基于n的空间中的个点,每个维度有M个不同的值。例如,N = 3, M =4,则唯一码条的总数为64(4的3次方)。

相比之下,对于64条带二进制码的条纹,需要6个图案。在二进制和灰色编码模式的设计中存在优化问题。目标是最大化所有唯一码字之间的某种类型的距离度量。对于实际的3D成像应用,要能够区分相邻条纹很重要。

相移是一种众所周知的用于三维表面成像的条纹投影方法。一组正弦图案被投影到物体表面。三个投影条纹图案的每个像素(x, y)的强度描述为:

其中I1(x,y), I2(x,y), I3(x,y)是三种条纹的强度,I0(x,y)是直流分量(背景), Imod(x,y)是调制信号幅度,φ(x,y)是相移,θ是恒定相移角。

图4 相移与三个投影条纹

从三种条纹的强度来看:

通过在φ0(x, y)值上加减2π的倍数,可以消除弧切函数在2π处的不连续。

根据测量相位φ(x, y)与参考平面的相位值之差,可以计算出三维(x, y, z)坐标。

图5 根据相位值计算Z深度

灰度码确定了相位的绝对范围,没有任何歧义,而相移提供的亚像素分辨率超出了灰度码所提供的条纹数。然而,混合方法需要更多的投影,但不适合动态对象的3D成像。

更多精彩内容请关注公众号:BFT机器人

本文为原创文章,版权归BFT机器人所有,如需转载请与我们联系。若您对该文章内容有任何疑问,请与我们联系,将及时回应。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230517A01WM800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券