综述|线结构光中心提取算法研究

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

摘 要: 线结构光扫描是三维重建领域的关键技术。光条纹中心提取算法是决定线结构光三维重建精度以及光条纹轮廓定位准确性的重要因素。本文详细阐述了光条纹中心提取算法的理论基础及发展历程,将现有算法分为三类,传统光条纹中心提取算法、基于传统光条纹中心提取的改进算法、基于神经网络光条纹中心提取算法,并提出每一类算法的优势与不足。最后,对线结构光中心提取算法的发展提出展望,生产更高质量的线激光器,扩充基于神经网络的光条纹中心线检测模型的训练样本。

关键词:中心提取;线结构光;三维重建;光条纹

1.引言

双目立体视觉技术是三维重建领域的关键技术之一,广泛应用于机器人视觉导航,非接

触性三维测量,工业检测,医学成像,航空测绘,军事应用和全息投影等领域[1]。双目视觉测量原理是两台平行放置的CCD相机观测同一物体,相机分别获取图像并提取两幅图像中的特征点进行立体匹配,使用三角测量法由视差值计算物点的三维空间坐标[2]。立体匹配是双目视觉测量最关键的模块[3],对于表面光滑、图像灰度变化小的物体立体匹配的难度极高[4]。因此引入线结构光扫描技术主动增加图像的纹理特征,利用双目相机采集线结构光条纹[5]如图 1所示。由于设备硬件结构的原因激光器投射出的线结构光光条纹通常具有3~12个像素宽度,需要提取单像素甚至亚像素级的光条纹中心作为双目视觉系统的匹配点[6,7]。因此光条纹中心点的提取是立体视觉测量中的关键问题,目前使用最广泛的中心提取算法是Steger C在二十世纪末提出的基于Hessian矩阵的Steger算法,长期以来国内外研发团队基于Steger算法以及其他传统算法不断做出改进,显著提高了中心提取算法精度。本文对近二十年的光条纹中心提取算法进行综述,将现有算法分为三类,传统光条纹中心提取算法、基于传统光条纹中心提取的改进算法、基于神经网络光条纹中心提取算法,并提出各种算法的优势与不足。

图1 双目系统采集线结构光条纹

Fig.1 Structure light stripe of acquisition line of binocular system

2. 传统光条纹中心提取算法

传统的光条纹中心提取算法有灰度重心法、阈值法、极值法、边缘法、中心法、二值形态学细化法、Steger算法、曲线拟合法、深度约束法。本文根据不同算法的理论基础与特点将其分为四大类,光条纹几何中心提取方法、基于光条纹灰度分布特点提取方法、基于形态学条纹中心提取方法、光条纹亚像素中心提取方法。

2.1 基于光条纹灰度分布特点提取方法

2.1.1 灰度重心法条纹中心提取

投射到平坦物体表面的线结构光条纹截面光强分布近似服从高斯分布[7]。通过灰度重心法可以求出条纹横截面光强分布曲线的高斯中心[8],对光条纹逐行提取高斯中心,将中心点拟合形成光条纹中心线。

灰度重心法的计算公式如下:      

                                        

光条纹第v列的灰度重心坐标为p(xv,v),在包含U行,V列的图像中坐标(u,v)处的像素灰度值为I(u,v),其中u=1,2,3,…,U;v=1,2,3…,V。灰度重心法速度快,实时性好,当光条纹投射在形态复杂的物体表面时,光条纹会产生较大形变,此时条纹截面呈现非高斯分布,继续使用灰度重心法会出现中心提取误差,如图 2所示。

图2 中心提取误差直方图[45]

Fig.2 Histogram of center extraction error

2.1.2 极值法提取光条纹中心

极值法的原理是对光条纹横截面的灰度分布函数做梯度运算,将梯度值为零处的像素点作为光条纹中心点,极值法对截面像素呈高斯分布的光条纹适用性较高[9,10],由于是基于灰度值的方法提取中心点,算法易受噪声影响,信噪比较小的图像不采用此方法[11,12]

2.1.3 曲线拟合法提取光条纹中心

由于条纹截面光强分布呈高斯分布[13],对条纹截面的像素点采用二次抛物线拟合[14]与最小二乘法的高斯曲线拟合[14,15],光条纹每一行截面拟合结果的局部极大值对应的像素点即为条纹中心[16]

2.1.4 方向模板法提取光条纹中心

方向模板法最初由胡斌[17]提出,是基于灰度重心法的改进算法。线结构光投射到粗糙的物体表面时,光条纹会发生形变与偏移,在一定范围内,可认为光条纹向四个方向发生偏移,水平、垂直、左倾45o、右倾45o。对应上述光条纹发生偏移的四种情况,构建四个方向的模板,分别与条纹截面各行的像素块做卷积,取响应值最大的像素块中心点作为该行的条纹中心。方向模板法能够克服白噪声的影响,并可以在一定程度上修补断线,但受限于有限的模板方向,纹理复杂的物面会使条纹向更多方向发生偏移。

2.1.5 脊线跟踪法提取光条纹中心

  将光条纹各行横截面灰度值最大的点连接成条纹脊线,沿脊线切线方向灰度值变换平缓,脊线的法线方向光条纹灰度值逐渐降低。脊线跟踪法对噪声十分敏感[10]

2.2 光条纹几何中心提取方法

2.2.1 边缘法和中心法提取光条纹中心

提取光条纹的两条边缘如图3(a)所示,并以其中一条边缘作为光条纹中心,边缘法处理速度快,但会给三维重建结果带来很大误差。常用的条纹边缘提取方法有Canny算法[18],Canny算法需要调整高低阈值及高斯滤波器大小。考虑光条纹边缘的连续性也可以采用邻域法提取光条纹边缘[11],提取到的光条纹两个边缘线的列坐标分别为u、v,则中心法得到的光条纹中心的列坐标y=(u+v)/2。如图3(b)所示,中心法提取的光条纹中心点准确性高于边缘法,但由于图像噪点影响,边缘线的提取会出现误差导致中心法的效果不佳。

图3(a) 边缘法[23]     

    (b) 中心法[23]

Fig.3 (a) arginal method;(b) Central method

2.2.2 阈值法提取光条纹中心

设定阈值T,在光条纹截面上找到最接近阈值的四个点,用这四个点在光条纹截面上的坐标以及灰度值做线性插值,得到光条纹截面上的两个点p,q的坐标,取p,q的中点即为光条纹中心点如图4所示。阈值法可以做到实时提取中心点,但易受到噪声干扰导致线性插值结果出现偏差如图5所示为噪声对阈值法的干扰。

图4阈值法[10]      

  图5 噪声对阈值法的影响[10]

2.2.3 基于形态学条纹中心提取方法

利用细化法[19]提取光条纹中心骨架,由于光条纹具有一定的宽度,所以需要对光条纹反复进行形态学处理,对光条纹不断地进行腐蚀操作,剥离光条纹边界,同时也要保证剥离边界后的光条纹中心线是单像素宽度的连通线,连通线保持光条纹原有的拓扑结构。由于光照影响,细化法提取的条纹中心线有毛刺出现,使中心线的宽度超过单像素。

2.2.4 光条纹亚像素中心提取方法

Steger算法利用Hessian矩阵对图像求二阶方向导数[20],二阶方向导数绝对值最大的方向就是光条纹的法线方向[10]

  • 3
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值