基于单双目结合的线结构光扫描技术

2020-04-24 03:07张志毅
计算机工程与设计 2020年3期
关键词:单目双目坐标系

王 迪,杨 龙,张志毅

(西北农林科技大学 信息工程学院,陕西 杨凌 712100)

0 引 言

三维点云数据获取技术在工业铸件、医疗诊断、文物保护等领域有着广泛应用。依据测量设备是否与测量模型表面直接进行接触,可将其分为接触式和非接触式两类。接触式三维测量技术以三坐标测量仪为代表,该项技术通过探测头与物体表面直接接触以获取物体的三维点坐标,测量精度可以达到μm级别,但该设备造价昂贵且容易对物体造成损耗,影响测量精度,因此并未得到广泛使用。数字三维照相系统成本低,精度高,因此一直是非接触式方法研究的热点。根据有无辅助的照明设备,数字三维照相系统可分为被动三维测量法和主动三维测量法,被动三维测量法以双目立体视觉[1,2]为代表,此类方法系统构成比较简单且适用性强,但对物体自身特征(如颜色、结构、纹理等)的依赖程度较高,因此具有一定的局限性。主动测量方法以光栅投影法[3]和线结构扫描法[4-7]较为常见,光栅投影法测量精度高但计算复杂,且对所用的光源有特殊要求。线结构光扫描法目前存在单目[4,5]和双目[6,7]两种方式,单目线结构光扫描方法扫描速度快但系统标定困难,点云数据恢复精度较低;双目线结构光扫描方法能够达到较高的精度但速度较慢,无法满足实时性的要求。

针对以上方法存在的问题,文中提出一种单目和双目结合的线结构光扫描方法,用投影仪取代传统激光,在双目系统结构下计算光平面方程,提高平面参数的拟合精度,然后利用求得的平面方程,在单目系统下计算被测物体表面的三维坐标。本文提出的方法能够同时兼顾扫描精度和时间效率的需求,因此具有一定的实用价值。

1 系统方案设计

1.1 系统硬件设计

整个系统的硬件平台包括两个罗技C920摄像头(分辨率1920×1080),一台微型投影仪(分辨率1280×720,流明2500)以及用来计算光平面方程的柱形纸筒。如图1所示,两台摄像机和投影仪置于平台同侧,用投影仪投射的单位像素宽度的红色光条取代传统激光,并同步使用摄像机对含有光条信息的图像进行捕获,根据所获得的图像信息,恢复物体的三维点云数据。

图1 系统硬件平台

1.2 系统软件流程

系统软件的实现需要在双目系统结构和单目系统结构两种环境下进行。在双目系统中,为获取计算物体三维坐标时所需要的相机内部参数和两台相机间的位姿关系,采用经典的张正友标定算法对系统进行标定,之后用投影仪向柱形纸筒表面投射单位像素的红色移动光条,并使用两台相机实时进行图像捕获,每获取到一对图像,首先采用中值滤波对其进行去噪处理,并对图像进行极线校正,使得同一物点在两幅图像上的投影点处于同一水平位置,以此来缩小匹配点的空间搜索范围,之后提取同一水平位置上左右图像的光条中心,便可以得到对应的匹配点。在此基础上,计算出左右匹配点的视差,依据三角形原理,即可得到光条中心的三维点坐标,对所求得的三维点进行拟合,即可得到对应的光平面方程。在单目系统中,对被测物体进行扫描,利用单台相机采集到的图像信息以及获取的光平面方程即可求解物体的三维点坐标。系统流程如图2所示。

图2 系统流程

2 系统设计原理

2.1 相机坐标系到世界坐标系的映射原理

如图3所示,明确像素坐标系到世界坐标系之间的转换关系,是获取三维点坐标的首要步骤。在不考虑透镜畸变的情况下,可以将摄像机模型理想化为针孔模型,由此,两坐标系之间的转换关系可以写成式(1)的形式

(1)

式中:f表示摄像头的焦距,dx,dy表示单位像素在图像坐标系中x轴方向和y轴方向上的物理尺寸, (u0,v0) 则表示图像坐标系原点在像素坐标系中的具体位置,以上4个变量共同构成了摄像机的内参矩阵M1,M2是摄像机的外参矩阵,由旋转矩阵R和平移矩阵T构成,代表了摄像机坐标系和世界坐标系之间的位姿关系。文中以左摄像机坐标系为世界坐标系,采用经典的张正友棋盘格标定算法获取左右相机的内外参数,由此即可实现坐标系之间的映射。

图3 像素坐标系与世界坐标系的转换关系

2.2 光条中心提取算法

为了获取高精度的三维点云数据,理想情况下成像到图像上的光条宽度应该为单位像素,但是受到物体表面材质、环境光线及其它因素的影响,所采集图像的光条宽度通常大于一个像素,因此首先需要进行光条中心提取。

受外界环境及设备自身等因素的影响,采集到的光源图像通常都会存在一些噪声点,这些噪声点会使得光条中心的提取结果严重偏离正确值,进一步影响点云数据的获取精度,因此,在提取光条中心之前,首先需要对图像进行预处理以去除噪声点,考虑到光条图像中多为锐利的噪声点,采用中值滤波对图像进行处理。除此之外,在双目系统中,为了缩小匹配点的搜索范围,提升查找效率,采用系统标定所获取的相机间的位姿关系,对左右两幅图像进行极线校正,使得物体上一点在两幅图像上的投影点处于同一水平位置,之后便可对光条中心进行提取。

按照计算方式的不同,目前较为常见的光条中心提取算法可分为几何中心提取和能量中心提取两大类。其中,阈值法[8]和边缘法[9]是前者的典例,这一类方法通常比较简洁高效,但提取精度低,因此并不适用于对精确度要求较高的场景;灰度重心法[10]和极值法[11]是能量中心提取算法中较为常用的两种,相较于极值法,灰度重心法的计算精度更高且鲁棒性更强,因此成为常用的一种中心提取算法。光条图像单行像素的R通道值近似服从正态分布,符合加权重心法的使用场景,因此选用该方法提取光条中心。假定图像的分辨率为m×n, 对于图像中的第k行,其光条中心的横坐标xk为

(2)

其中,权值Ni的取值为

(3)

式中:R(k,i) 表示当前像素R通道的值,此处,T不是固定的常量值,而是以当前行中所有像素R通道的最大值为基准,减少t个单位所得到的值。多次实验结果表明,t的取值范围在20~30之间为最佳。加权重心法的光条中心提取结果如图4所示。

图4 光条中心提取结果

2.3 双目立体视觉测量模型

光平面方程的计算是在双目系统结构下进行的,在这个过程中利用双目立体视觉理论对三维点坐标进行求解是问题的关键。

如图5所示,设Ol为左摄像机的光心,Or为右摄像机的光心,此处采用的两台相机型号相同,因此焦距同为f, 由于在初始阶段已经对左右像平面进行了极线校正,因此空间中一点在两幅图像上的成像点基本处于同一水平高度,假定以左侧相机坐标系为参考坐标系,则对其进行平移,即可得到右侧相机坐标系,移动的距离为左右相机透镜中心距离B, 设Ol坐标为(0,0,0),Or为 (B,0,0),P(x,y,z) 为空间一点,其在左右像平面上的成像点分别为Pl(xl,yl),Pr(xr,yr), 根据各坐标系之间的转换关系,可以推演出如下关系式

(4)

图5 双目立体视觉测量模型

通过对上式进行简化可得到P点三维坐标为

(5)

依据上述原理,在双目系统中对柱形纸筒进行扫描,通过提取同一水平位置左右图像的光条中心,即可得到对应匹配点,恢复出投影在柱形纸筒上的光条中心的三维点坐标,结果如图6所示。

图6 柱形纸筒三维点云恢复结果

2.4 点云数据拟合光平面

在计算出投射在柱形纸筒表面上的光条中心三维点坐标之后,对其进行拟合获取对应的光平面参数。目前,较为常用的平面拟合方法有最小二乘法、特征值法等。前者仅考虑了z轴方向的误差,但在真实场景下,受环境及设备自身因素的影响,x、y方向上也同样存在误差,因此该方法在此处并不适用。特征值法通过最小化点到平面的距离求解平面方程参数,能够同时兼顾x、y、z这3个方向的误差。但当点云数据存在异常值扰动时,以上两种方法的拟合结果都会受到影响,对此,李伟等[12]等提出一种改进的最小二乘平面拟合算法,通过中位数法获得最佳初始平面模型,并采用迭代最小二乘法剔除残差较大的离群点以获取最佳平面方程,该方法具有一定的抗差性。陈汉青等[13]提出稳健加权总体最小二乘法,通过设置一定的规则剔除异常点,使得求解的参数更加精确,但该算法不具有鲁棒性。李希等[14]采用RANSAC(random sample consensus)算法剔除点云数据中的异常值,并采用总体最小二乘法对剩余的有效点进行拟合,该方法能够获得较为理想的拟合结果,但参数的设置会对拟合结果产生影响。由于双目线结构光扫描能够达到较高的精度,因此恢复出的三维点只存在少量异常点,为了满足实效性要求,此处采用迭代的特征值法对光平面进行拟合。

设空间平面方程为

ax+by+cz=d

(6)

式中: (a,b,c) 为待拟合平面的单位法向量,d为坐标原点到拟合平面的距离。假设对柱形纸筒进行扫描后,从单幅图像中共恢复出n个数据点 {(xi,yi,zi),i=1,2,…,n}, 其中任意一点 (xi,yi,zi) 到拟合平面的距离可以表示为

di=|axi+byi+czi-d|

(7)

为了获得高精度的平面拟合参数,应在条件a2+b2+c2=1的约束下,满足

(8)

设所构成的函数f为

(9)

采用拉格朗日乘数法求解函f数的极值,并令函数对参数d的偏导数为零,得

(10)

则式(7)可以改写为

(11)

将式(11)带入式(9),并分别对a、b、c求偏导,令所有偏导数为零,可得到特征值方程

(12)

由此将平面参数求解问题转化为对矩阵特征值及特征向量的求解,设

显然,矩阵A为3×3的实对称矩阵,求解A的最小特征值λmin及其对应的齐次线性方程组,所得到的非零向量即为平面方程的3个参数a、b、c, 将其带入式(10),即可得到参数d的值。

为了降低点云数据中的异常值对平面参数拟合精度造成的影响,采用稳健的加权迭代思想逐步剔除数据中的离群点,直至拟合精度满足预定需求。具体实现步骤如下:

步骤1 采用特征值最小二乘法拟合平面方程,获取初始参数值a、b、c;

步骤2 根据式(11)计算点云数据集中每个点到平面的距离di;

步骤3 根据式(13)计算所有点到平面距离的标准偏差,若di>2ε, 则认为该点为异常值,将其从点集中删除

(13)

步骤4 更新点云数据集并重新求解平面方程的参数;

步骤5 重复执行步骤2~步骤4,直至点云集合中任意一点到拟合平面的距离di均小于给定阈值,此时 (a、b、c) 即为平面方程的最优解;

步骤6 依据式(10)求解参数d的值,获得最佳平面拟合方程。

在双目系统中求得所有光条所对应的平面方程后,在单目系统中对物体进行扫描,通过计算相机透镜中心与结构光中心在像平面映射点的连线与对应光平面方程的交点,便可以计算出空间中一点的三维坐标。

3 实验结果及分析

本次实验以C++作为编程语言,Windows7为系统开发平台,内存4 GB。为了确认本文方法的有效性和可行性,分别以磨砂材质的弱纹理水杯、毛绒材质的维尼熊和表面光滑易反光的恐龙玩具作为测量模型,并以点云数据获取精度、速度及密度作为衡量标准,将所提出方法的扫描结果与双目线结构光扫描方法和单目线结构光扫描方法的结果进行比较。

如图7~图9所示,在每组数据中,图(a)为模型原始图像,图(b)~图(d)分别为3种扫描方法所获取的点云数据,其中图像左边为点云的正视图,右边为点云的侧视图。从图中可以看出,对于不同的模型,双目线结构光扫描方法的精度最高,文中提出的方法次之,最后是单目线结构光扫描方法。双目线结构光扫描方法是对左右两幅图像逐行提取结构光中心并逐点进行匹配以恢复三维点云数据,在这个过程中,结构光中心提取和像素匹配的精度对三维扫描的结果起决定性作用,目前关于这两个领域的研究已经相对成熟,误差可以稳定在较小的范围内,因此该方法相对于另外两种精度更高;单目线结构光扫描方法需要对背景板进行标定以获取背景板平面方程,并在此基础上计算光平面方程,每一步的误差都会对后续操作造成较大影响,因此扫描精度较低,从图7(b),图8(b),图9(b)的侧视图区域可看出恢复出的模型表面有一定的凹凸;文中提出的方法利用双目线结构光扫描法精度高的优势,通过对柱形纸筒进行双目扫描以计算光平面方程,该方法计算出的光平面方程相较于传统背景板标定方法误差小,在此基础上采用单目扫描恢复三维点云数据,此方法的扫描精度与双目扫描方法相差不多,但扫描速度得到了较大提升。

图7 水杯三维点云恢复结果

图8 玩具熊三维点云恢复结果

图9 恐龙三维点云恢复结果

除扫描方法外,模型材质对扫描精度也有一定的影响。如图7所示,对于磨砂材质的无纹理水杯,当红色光条投影到物体表面上时,不会产生反光、颜色吸收等问题,因此能够得到较为完整的三维模型,扫描效果较好。图8中,毛绒玩具熊的眉毛、眼睛、鼻子处呈棕黑色,当光条被投影到这些部位时,红色被吸收,图像上对应像素点的R通道值无法达到阈值,从而形成孔洞,而鼻尖处反光处像素的R通道值大于阈值,因而可恢复出三维数据。对于表面光滑的恐龙模型,如图9所示,其腿部、背部等点云恢复正常,由此可见物体上的反光点对点云数据的恢复基本上不产生影响。

单双目结合的三维扫描方法不仅在点云数据恢复精度上能达到一定的标准,在时间效率上也满足生产实践的需求。在测量模型与扫描装置之间的距离保持不变的前提下,分别采用3种方法对不同的模型进行扫描,并将不同情况下,根据单幅分辨率为1920×1028的光条图像计算物体三维点坐标所需的时间进行比较,结果见表1。在等距条件下,对于不同的模型,同一方法计算三维坐标所消耗的时间基本不受物体大小及形态的影响,即在时间效率上3种方法均是模型不相关的。其中,由于双目线结构光扫描方法受限于两幅图像的匹配速度,因此在三者中耗时最长,达到了368.07 ms/幅,本文提出的方法和单目线结构光扫描方法在扫描之前均对光平面方程进行了标定,将时间缩短为78 ms/幅左右,是双目扫描的1/5。

表1 单幅图像点云数据恢复时间

表2显示了等距离条件下,3种模型在不同扫描方法下恢复出的三维点个数。由表中可以看出,当被测模型与扫描系统相对位置维持不变的情况下,对于同一物体而言,3种扫描方法获取到的三维点数量基本持平,无明显差异。

表2 等距离条件下恢复的三维点个数

由以上分析可知,传统双目线结构光扫描方法能够达到较高的扫描精度,但时间效率较低,在某些情况下无法满足实时性的要求;传统单目线结构光扫描方法在时效上有一定的优势,但扫描精度易受背景板标定的影响,可能出现较大误差;单双目结合的扫描方法综合了两者的优势,在扫描精度和实效性上都能够满足一定的要求,且恢复出的模型三维点数目与其它两种方法基本持平,因此具有一定的实用价值。

4 结束语

针对传统线结构光扫描方法的局限性,提出一种单目和双目结合的扫描方法。首先采用投影仪投射的红色移动光条取代传统激光作为线光源,这在一定程度上缩减了硬件成本,之后,以柱形纸筒为辅助,在双目系统中对其进行扫描并采用迭代特征值最小二乘法对获取到的光条中心三维点坐标进行拟合,得到光平面方程,该方法提高了平面参数的拟合精度,最后在单目系统中利用所求得的光平面方程计算物体表面的三维点坐标。实验结果表明,该方法能够有效发挥双目扫描和单目扫描各自的优势,在点云数据恢复精度和速度上取得有效折中,具有一定的实用价值。但需要指出的是:受外界环境和设备噪声等因素的影响,恢复出的三维点云数据中难免会存在一些噪声点,如何剔除扫描物体之外的噪声点,是接下来要研究的主要内容。

猜你喜欢
单目双目坐标系
独立坐标系椭球变换与坐标换算
基于单目视觉车距测量方法综述
基于双目测距的卡尔曼滤波船舶轨迹跟踪
一种单目相机/三轴陀螺仪/里程计紧组合导航算法
基于单目视觉的仓储物流机器人定位方法探讨
解密坐标系中的平移变换
坐标系背后的故事
单目SLAM直线匹配增强平面发现方法
基于HALCON和VC++的双目机器人织物抓取系统设计
基于双目视觉图像的长度测量方法