1. 首页
  2. 计算成像实验系统
  3. 结构光三维成像系统

产品型号:

结构光三维成像系统

系统主要由两个相机和一个投影模组组成,首先需要标定两个相机成像模型及二者相对姿态信息,然后使用多频相移结构光编码方案,投影模块向物体表面投射编码结构光,双目相机同步采集条纹图像。软件算法通过对图像序列解码获取经物体表面调制的相位信息,基于相位信息及极线约束实现双目相机的同名点匹配,最后使用双目立体视觉三角原理实现高精度三维点云重建。整个过程主要涉及以下算法技术:相机标定、多频相移结构光编解码、基于双目极线矫正的同名点匹配及点云三维坐标计算等。

分类: 计算成像实验系统

产品介绍

工作原理:

  • 投射阶段:投射器将特定的结构光(如具有特定图案的光,包括离散光斑、条纹光 、编码如格雷码、正弦条纹等)投射到被测物体的表面。
  • 成像阶段:相机拍摄被物体表面调制(因物体表面形状、深度等因素导致结构光发生扭曲、变形、遮挡等)后的结构光图像。
  • 计算阶段:基于三角测量等数学原理和算法,对采集的图像进行解析计算。如果已知相机和投射器的相对位置等参数(通常需要提前标定),就可以根据结构光图像中光的变化等信息解算出被测物体表面各点的三维位置信息,从而实现三维重建。

系统主要由两个相机和一个投影模组组成,首先需要标定两个相机成像模型及二者相对姿态信息,然后使用多频相移结构光编码方案,投影模块向物体表面投射编码结构光,双目相机同步采集条纹图像。软件算法通过对图像序列解码获取经物体表面调制的相位信息,基于相位信息及极线约束实现双目相机的同名点匹配,最后使用双目立体视觉三角原理实现高精度三维点云重建。整个过程主要涉及以下算法技术:相机标定、多频相移结构光编解码、基于双目极线矫正的同名点匹配及点云三维坐标计算等。

相机成像是三维空间场景到二维图像的一种映射,空间中物点发出的光被相机镜头汇聚到相机成像平面上得到该物点的像点,这一投影过程可以通过相机成像模型表征。理想情况下,普通针孔相机成像模型可使用四个相机内参表示,如下的A矩阵即为相机内参数,其由等效焦距和主点坐标共四个系数组成:

实际应用中,因相机镜头畸变的原因,需要考虑畸变对成像的影响,故在相机成像模型中引入畸变系数,通常使用3径向畸变和2阶切向畸变即可满足实际应用精度需求:

其中k1、k2、k3为径向畸变系数,P1、P2为切向畸变系数。因此,项目使用9个系数表征针孔相机成像模型。

双目系统的标定包括两个相机成像模型的标定及两相机之间相对姿态的标定。标定过程只需在系统前方放置平面标定板,让两个相机同步采集平面标定板图像,拍摄多个标靶姿态(为保证标定精度,建议6个姿态以上),算法程序对标靶图像角点进行检测得到角点亚像素坐标,得到测量值。标定的目标是通过迭代优化调整相机成像模型参数,使得标靶角点的三维坐标经相机内外参数投影到成像面的像素坐标与测量值重投影像素误差最小化。对于双目系统而言实际上是优化以下目标函数:

其中,表示第i个标靶姿态的第j个角点在相机l上的成像点(测量值),表示第i个标靶姿态的第j个角点的三维坐标经成像模型投影到相机成像面上的像素点。A,K分别表示相机内参数矩阵和畸变系数矩阵,表示第i个标靶坐标系相对于左相机坐标系的姿态关系矩阵。T为左右两个相机之间的姿态关系矩阵。

在高精度结构光测量技术中,相移技术被广泛应用。其基本思想是通过采集多帧有一定相移的条纹图像来计算包含有被测物体表面三维信息的相位值。对于N步相移法,第n幅投影条纹图案表示为:

其中,是条纹图案的强度;a和b分别表示背景强度和条纹对比强度,f表示条纹空间频率,a,b 和 f 的数值可根据测量需求进行设定,是相移量。

相机采集到条纹序列之后,可以从图像中计算经物体表面调制的相位,N步相移解相结果可表示为:

其中为相机采集到的条纹图像的灰度值。

以上计算可以得到折叠相位信息,需要做进一步的相位展开。在本项目中,采用三频外差方式进行展开计算。基本思想是投射三个特定空间频率的条纹图像到物体表面,然后计算三个频率的折叠相位,外差原理指两种不同频率的相位函数𝝋𝟏 (𝒙)与𝝋𝟐 (𝒙)叠加可以得到一种频率更低的相位函数𝝋3 (𝒙),基于此可以将三种高频相位叠加为频率为1的相位函数,进而实现相位展开。基本叠加思想如下图:

双目三维重建的一个关键环节是左右相机的同名点匹配。对于左相机图像的一个像素点,为了在右相机上找到其同名点,常见的技术方案有以下几种:

1、使用双方向正交相位进行相位值匹配;

2、使用单方向相位联合极线约束;

3、对单方向相位图做极线矫正,然后沿水平方向匹配相位值。

利用极线约束可以有效降低对应点查找的计算量,但在通常情况下,由于两个相机的主轴不平行,使得极线是一条倾斜的直线,如果考虑镜头畸变,极线将成为曲线,在一条曲线上查找对应点依然有着较大的计算复杂度。极线矫正能够将两图像的相机主轴矫正到平行状态,并且消除了垂直方向上面的视差及畸变的影响,使得相对应的点总是位于同一水平线上, 这将进一步简化对应点查找的计算过程。故在本项目中使用极线矫正的方案,即方案3。

本项目将采用Bouguet算法实现双目极线矫正,从原理上,算法处理过程主要包括以下三个步骤:

第一步:根据双目姿态信息R、t,两相机坐标系各旋转一半,使得两坐标系坐标轴平行。如下图:

第二步:建立参考坐标系,将两坐标系旋转到共面,如下图。其中坐标系三个坐标轴做如下定义:

基于以上坐标轴定义,可得到待旋转矩阵:

所以,整个极线矫正过程,两个相机坐标系分别做如下旋转:

第三步:构建虚拟相机,建立矫正前后图像像素映射关系。

此外,在实际工程中,可以将测量深度范围做限定,从而使同名点搜索的范围变为一条直线段,进一步缩小同名点搜索范围。

因相位图由离散像素组成,通过比对相位值找到整像素同名点之后,为了进一步提升精度,结合相位线性变化的特性,本项目使用线性插值算法进行亚像素同名点计算。

  1. 在完成同名点匹配之后,即得到了视差图。为了将视差图转化为三维点云,需要做进一步的计算。经过极线矫正后,双目相机几何结构如下图。根据三角形相似原理,可得:

由于在工程应用中,视差使用左右相机图像的水平方向像素坐标直接作差,其坐标系原点定义在图像左上角,所以上式可转换为:

同样根据三角形相似原理:

其中,为极线矫正后的左相机坐标系的主点坐标,为极线矫正后左相机图像的像素坐标,f为极线矫正后虚拟相机的焦距,T表示极线矫正后两相机坐标系的基线长度,对于左右双目系统,其等效于沿x轴方向的长度。

软件使用C++语言开发,并使用Qt开发UI界面。软件主要包括以下功能:

1、实现投影及相机的同步触发采集控制;

2、实现结构光系统标定算法;

3、实现多频结构光解码算法;

4、实现极线矫正的双目立体匹配并重建单面点云数据(无多视角配准及点云融合);

5、点云渲染显示;

如上所述,软件实现了整个系统的硬件采集控制、系统标定及单面点云扫描重建等功能。

名称 规格型号 单位 数量
投影模组 分辨率不低于720p,投射比约1.2:1,光源:RGB三色LED 1
标定板 12*9玻璃基板棋盘格标定板(精度不低于0.01mm) 1
面阵相机 500万像素(含USB线及触发线) 2
镜头 焦距12mm 2
支架 三脚架、底座螺钉、支撑板、万向云台、转接底板 1
遮光布 2*2M黑色植绒吸光布 1

1、相比其他一些三维成像技术(如纯被动的双目立体视觉),它是一种主动三维测量方式。

2、可以在一定程度上较好地实现对物体的三维成像和测量,尤其在工业检测(如物体体积、外形尺寸测量等)、生物识别(如人脸三维识别等)、机器人视觉导航(利用三维环境信息)等场景有广泛应用。

相关产品