结构光三维重建原理

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

结构光三维重建原理_第1张图片

 引言

    结构光三维测量是目前制造业中应用比较广泛的一种非接触式主动测量方法,其特点是能够精确快速地实现被测物体三维信息计算。对比双目立体视觉重建方法,结构光也是利用两个位姿的光学元件通过三角测量实现三维重建,但由于主 动投射结构光图案至被测物体,使得像素点之间的匹配更加容易和准确。本文所 述结构光方法均选择多频外差原理实现绝对相位求解,相较于其它结构光方法, 该方法测量的精度和抗干扰能力更高。

多频外差结构光测量原理

    多频外差法是基于时间相位展开算法,该方法利用不同频率的条纹光栅投影到

被测物体表面,并且每种频率条纹投影过程中都会进行相应的相移变换。这种根 据时间相位展开的算法,对每个像素点的相位信息计算是独立的,有利于对干扰 的抑制,因此多频外差法也成为主要的结构光算法之一。

相移原理

    相移的目的是计算同一频率的条纹光栅图的相位主值,在 N 步相移法中,假设 投影的条纹光栅光强满足正弦分别,则条纹光栅光强分布函数有:

结构光三维重建原理_第2张图片

其计算过程如图 3.1 所示。

结构光三维重建原理_第3张图片

图3.1 相移法过程

    图 3.1 中(a)中表示条纹光栅的强度,图中有四条正弦条纹光栅,每条光栅具有 相同频率但相位相差 π / 2 。图(b)表示由式(3.2)计算后的相移主值图,相位主值 图反映了一个周期内相位值φ的变化,相位主值图呈现出周期性锯齿变化,在一个周期内相位值是唯一的,但在整个图像范围内,相位主值不存在唯一性,因此需要通过相位展开算法,将周期性的相位主值变换为只存在一个周期的绝对相位值。

 相位展开

    相移算法将条纹光栅中包含的相位主值(x, y) 计算出来,但是通过相移法计算 的相位信息在整个测量范围内出现周期性的锯齿变化,不能保证相位值的唯一性,因此需要通过外差原理,将相位主值展开为连续变化的绝对相位值 φ(x, y) 。外差 解相原理是对不同频率的相位主值叠加在一起进行绝对相位求取的方法。根据不 同频率相位主值叠加原理有:

结构光三维重建原理_第4张图片

结构光三维重建原理_第5张图片

图3.2 相位主值展开

结构光三维重建原理_第6张图片

结构光三维重建原理_第7张图片

结构光三维重建原理_第8张图片

其中 floor 表示数据存在小数时,向下取整数。

目前多频外差法主要采用三种频率的条纹光栅进行计算,并且相移步数为四步, 因为选择频率只有两种时,p1 和 p2 的节距就变得很大,此时会使得三维重建的精 度降低,重建细节模糊,如果采用更高频率的条纹光栅进行计算[59],则对应的条 纹光栅的节距将变小,光栅的正弦化信息丢失严重并且增加投影图片的数量,降低重建的速度。

深度计算 

单目结构光三维重建不需要通过立体匹配得到视差值来计算深度信息,尤其是

对于多频外差法的结构光。通过相机图像中每个像素点对应的绝对相位值即可确 定该像素点与投影仪投影平面中的像素点的匹配关系。由于投影仪的低通作用, 投射的条纹光栅图案在空间中形成了连续变化的图像,而相机采集的过程是将正 弦信息离散化。在相机进行绝对相位计算时,每个像素点都是独立计算的,并且 每个像素点得到的绝对相位值是浮点类型,因此可以对其直接进行深度信息的计 算,而不需要做进一步亚像素的估算,结构光测量模型如图 3.3 所示。

结构光三维重建原理_第9张图片

图33 结构光测量模型

结构光三维重建原理_第10张图片

结构光三维重建原理_第11张图片

得空间中点 P 的唯一解。
    在计算点 P 的空间坐标时,其精度主要依赖两个因素:系统标定精度和解相的

准确性。系统标定精度由相机标定精度和投影仪标定精度共同决定,相机的标定 算法研究较早,并且由于其工作方式与投影仪不同,其标定方法根据成熟。目前 投影仪的标定大多采用逆相机标定方案,其标定精度依赖于相机的标定精度。因 此,对投影仪标定也是结构光三维重建中研究的重要问题之一。条纹光栅频率和 相移的步数、条纹光栅的投影和采集的准确性以及解相中误差的处理方法都会决 定解相位的准确性。本章通过基于三种四步的多频外差法对投影仪的标定、系统 非线性误差展开研究,并采用一定的优化方法,提高系统标定精度和解相的准确性。

上述内容,如有侵犯版权,请联系作者,会自行删文。

结构光三维重建原理_第12张图片

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

你可能感兴趣的:(算法,人工智能,python,计算机视觉,java)