APP下载

动态环境下的激光条纹中心线提取方法

2021-12-22苗红霞郭章旺饶星楠

计算机测量与控制 2021年12期
关键词:中心线像素点灰度

张 衡,苗红霞,2,郭章旺,饶星楠

(1.河海大学 物联网工程学院,江苏 常州 213022; 2.江苏省输配电装备技术重点实验室,江苏 常州 213022)

0 引言

在光学非接触式三维测量技术中,线结构光三维测量技术因其测量精度适中,实时性好且易于实现的优势,被广泛地应用于医疗诊断、三维重建、工业生产现场的表面质检和尺寸测量等领域[1-2]。线结构光三维测量系统主要包括激光器、相机等设备,使用激光器向被测物体表面投射激光,使用相机拍摄激光条纹图像,通过对激光条纹图像的处理和分析,得到被测物体表面的三维信息[3]。在相机所采集的激光条纹图像中,激光条纹具有一定的宽度,必须提取出激光条纹单像素宽度的中心线,才能精准获取所需特征点的坐标,此过程被称为线结构光条纹中心提取[4]。线结构光条纹中心线的提取对整个线结构光三维测量系统至关重要,它直接决定了二维平面到三维空间坐标转换的输入,是线结构光三维测量的基础。因此,需着重提高线结构光条纹中心提取算法的准确性、稳定性以及实时性[5]。

当前国内外学者对线结构光条纹中心提取算法进行了广泛地研究。经典的线结构光条纹中心提取算法主要分为基于几何中心和基于能量中心两类[6]。前者通过分割条纹区域后计算区域的几何中心来确定激光条纹的中心线,主要有几何中心法、骨架细化法和阈值法等;后者利用激光条纹图像的灰度分布特性进行条纹中心提取,主要有模板法、灰度重心法、曲线拟合法和Steger法等[7]。基于几何中心的条纹中心提取算法提取速度快,但对光条图像质量要求很高[8]。其中,几何中心法对条纹边缘分割的精度敏感[9];骨架细化法需要多次迭代,耗时较多且易受噪声影响;阈值法精度较差且易受椒盐噪声干扰[10]。基于能量中心的条纹提取算法考虑了光条灰度分布规律,相比基于几何中心的方法在一定程度上提高了算法的精度和稳健性,但存在计算量大、适用性弱等缺点[11]。其中,模板法对模板选取质量要求较高,且模板不具备普适性,中心提取的稳定性较差;灰度重心法计算速度快,可以实现亚像素级别的中心线提取,但易受噪声干扰,仅适用与光条质量较好的场合[12];曲线拟合法和Steger法计算复杂度较大,难以保证条纹中心提取的实时性[13]。

在经典条纹中心提取算法的基础上,一些学者结合实际应用情况提出了一些改进算法,在一定程度上提高了算法的精度和运行效率。张佳等[14]使用自适应宽度的灰度重心法提高了光条中心提取的准确性,并通过计算斜率阈值对光条中心线进行平滑优化;周渊等[15]使用密度聚类算法提取激光条纹中心线的候选像素点,然后使用最短路径搜索算法获得激光条纹中心线,为激光条纹中心线提取提供了一种新的思路,但是仅能提取像素级别的检测精度;韩洁等[16]提出了一种适用于激光条纹区域分割的变阈值分割算法,提高了激光条纹中心线提取的精度;杨毅等[17]使用灰度重心法提取激光条纹初始中心线,然后使用均值平滑以及Savitzky-Golay滤波算法对初始中心线进行平滑处理,减轻了中心线的波动性;李伟明等[18]在传统灰度重心法的基础上结合轮廓跟踪算法提取激光条纹中心线,实现了对激光条纹中心的快速提取;李涛涛等[19]使用高斯-洛伦兹分峰拟合处理激光条纹横截面,结合灰度重心法提取出激光条纹中心,相比传统灰度重心法其提取精度具有一定的提升。上述算法往往假定光条质量较好,光质均匀且稳定。实际工业应用场景中采集到的激光条纹往往质量较差,受到多种外界干扰,加大了激光条纹中心线提取的难度。

为方便从图像中分割出激光条纹区域,目前常使用差分法处理投射激光前后的两幅图像,直接去除背景信息,从而得到仅包含所投射的激光条纹的图像,能够方便的使用相关图像分割算法分割出激光条纹区域。而在实际工业现场,被测物体通常处于运动状态,往往不方便同时获取投射激光的图像和未投射激光的图像,只能采集到具有复杂背景信息的激光条纹图像。因此需要对采集到的具有复杂背景信息的激光条纹图像进行进一步的处理,使其能够便于提取激光条纹区域,以满足动态测量环境下进行激光条纹中心线提取的要求。

在实际的工业现场,由于激光器投射出的激光条纹质量不均匀、被测物体表面各部分的反射情况不同以及被测物体表面起伏较大等原因,激光条纹成像可能出现光强分布不均、光带各部分宽度差别大、激光条纹断裂等问题,从而加大了条纹中心提取的难度。目前,针对以上问题提出的改进算法较少,并且优化效果并不明显,需要进行进一步研究以满足动态测量环境下对多种复杂线型的激光条纹的中心线提取。

针对动态测量环境下激光条纹图像存在复杂背景信息、激光光强分布不均、光带各部分宽度差别大、激光条纹断裂等问题,本文研究了一种适用于动态测量环境的激光条纹中心线提取方法。本文通过研究线结构光条纹灰度分布特性,分析了影响条纹中心提取的主要因素。通过图像预处理以及自适应裁剪算法提取出感兴趣区域,其次通过改进型伽马校正以及改进型变阈值大津阈值分割算法分割出激光条纹区域,然后使用二维灰度重心法提取初始激光条纹中心线,最终通过二次优化算法提取出精确的条纹中心线,并通过具体实验验证了本文所提算法的有效性。

1 中心线提取流程及条纹特性分析

1.1 激光条纹中心线提取流程

本文所提的动态环境下线结构光条纹中心提取方法的具体流程如图1所示。

图1 激光条纹中心线提取流程

首先对图像进行RGB通道分离以及小窗口中值滤波,消除图片中的椒盐噪声;其次使用自适应裁剪算法分割出原始图像中的感兴趣区域,减小后续运算量,提升算法的实时性;再次使用改进型伽马校正算法对图像进行灰度编辑,突出激光条纹区域,将图像转化为灰度直方图具有双峰特点的图像,以便后续分割出激光条纹区域;然后使用改进型变阈值大津阈值分割算法分割出图像中的激光条纹区域,通过形态学变换获取激光条纹的掩膜图像,并采用自适应宽度的二维灰度中心法提取初始激光条纹中心线;最后使用一种基于Hampel滤波法和均值平滑法的二次优化算法对初始激光条纹中心线进行优化,实现断线修补并对中心线进行平滑,从而精确地提取出激光条纹中心线。

1.2 激光条纹特性分析

在理想情况下,激光条纹截面光强应当呈现高斯分布的特点。但在实际工业生产场景中,由于激光器本身质量问题、环境光干扰以及被测物体表面材质等因素的影响,实际采集到的激光条纹图像的红色分量灰度图如图2(a)所示,该光条截面像素点的灰度分布情况如图2(b)所示。可以看出,越靠近光条中心位置,像素点灰度值越高,中心位置可能有多个灰度饱和值;远离光条两边灰度快速递减,呈现关于光条中心线对称的特征,条纹整体灰度值分布近似呈现平顶高斯分布的特点,且不同位置灰度分布差别较大。

图2 激光条纹及截面灰度值分布

在实际工业生产应用中,通常应尽量控制被测物材质、被测物形状、环境干扰等因素,从而获得光质均匀且整体稳定的激光条纹。但对外界干扰因素的控制并不总是可以实现,采集的线结构光条纹图像的质量容易受到各种因素的干扰,且采集的激光条纹的难以保证,从而加大了条纹中心提取的难度。影响条纹中心提取的因素有以下几个方面:

1)在动态测量环境下,被测物处于运动状态,往往不方便同时获取投射激光的图像和未投射激光的图像,无法使用差分法提取激光条纹,采集到的激光条纹图像中存在复杂的背景信息,如图3(a)所示;

2)不同光照条件下,采集的激光条纹图像差别较大,对于同一光条提取出的中心线误差较大,如图3(b)与3(c)所示;

3)由于被测物表面材质以及颜色的差别,激光条纹可能出现光强分布不均、光带各部分宽度差别大的情况,如图3(d)所示;

4)由于被测物表面的起伏较大以及激光器和相机安装位置的影响,图像中的激光条纹可能出现断裂,如图3(e)所示。

图3 激光条纹图像实例

2 激光条纹区域提取

2.1 ROI裁剪

在实际采集的图像中,包含线结构光信息的只是图像中的一部分,而在提取条纹中心线时需要处理激光条纹区域中的每一个像素点,为了减小算法计算量,需要对图像进行裁剪,提取出感兴趣区域(ROI,region of interest)。本文中采集图像的原始尺寸为720×1 280 pixel,激光器投射红色激光,图像中线结构光条纹区域整体呈纵向分布。由于结构光区域在图像中的位置以及面积占比并不固定,结合线结构光条纹总体呈纵向分布的特点,本文提出了一种自适应裁剪算法提取ROI。具体步骤如下:

步骤1:对相机采集的原始图像进行RGB通道分离,提取红色分量;

步骤2:对提取出的红色分量图像进行小窗口中值滤波,在保留激光条纹边缘信息的同时,去除椒盐噪声对后续处理的影响;

步骤3:定义W、Q两个长度为720的一维数组,W中数据的初始值为无穷大,Q中数据的初始值为0。由于激光条纹区域的灰度值要明显大于背景区域,故可由像素点的灰度值来粗略判断结构光条纹区域。对图像中的像素点进行逐行遍历,将第i行第一次遍历到的灰度值大于250的像素点的列值保存到W[i],继续遍历本行像素点,当再次遍历到灰度值大于250的像素点时,将像素点的列值保存到Q[i],重复上述过程来更新Q[i],直至完成遍历。当第i行没有灰度值大于250的像素点时,W[i]、Q[i]保持初始值不变;

步骤4:令数组W中的最小值为w,数组Q中的最大值为q,为防止对线结构光条纹区域的过度分割,同时考虑线结构光条纹的投射宽度,在当前分割边界的基础上左右扩充30个像素点,以[w-30,q+30]∈[1,1 280]为ROI边界裁剪图像。

裁剪前后的图像示例如图4所示,裁剪前图像尺寸为720×1 280 pixel,裁剪后图像尺寸为720×117 pixel。经过裁剪,需处理的图像尺寸相比于原图像明显减小,从而极大地降低了算法的计算量。

图4 裁剪前后激光条纹图像对比

2.2 改进型伽马校正

精准提取激光条纹中心线的前提是将图像中的激光条纹区域提取出来,以便进行进一步的处理。动态测量环境下采集的激光条纹图像,背景部分完全取决于被测物的纹理和颜色,相比于差分法处理后的图像,存在背景信息复杂、背景与前景区分度小的问题,严重影响光条区域分割的精度。如图5(a)所示,差分法得到的图像灰度值较大的部分为激光条纹区域,背景部分的灰度值接近零。如图5(d)所示图像的灰度直方图呈现双峰特点,可以方便地使用图像分割算法分割出激光条纹区域。

具有复杂背景的激光条纹图像及其灰度直方图如图5(b)和5(e)所示,难以通过图像分割算法精确分割出激光条纹区域。参考屏幕显像领域常用的对图像进行灰度非线性编辑的伽马校正(GC, gamma correction)算法[20-21],本文提出了一种类伽马校正(STGC,improved gamma correction)算法对激光条纹图像进行非线性灰度编辑的,检测出图像信号中的深色部分和浅色部分,并使两者比例增大,突出图像中激光条纹区域与背景区域的对比度,使图像的灰度直方图呈现双峰特点。

设激光条纹区域中心线附近的灰度阈值为Gth,对ROI裁剪后的图像中的像素点进行遍历,当像素点的灰度值小于等于阈值Gth时,对像素点按公式(1)进行灰度变换,对灰度值大于阈值Gth的像素点不作处理。

GIGC(i,j)=

(1)

式(1)中,i和j分别为像素点所属的行数和列数,G(i,j)为i和j所标识的像素点初始的灰度值,GIGC(i,j)为G(i,j)经过IGC处理后的灰度值。

为减少算法的计算量,提高算法的实时性,预先建立伽马校正查找表 (LUT,look up table),为0~255之间的每个整数执行一次预校正操作,将其对应的校正值存入预先建立的LUT,就可以使用该表对任何像素值在0~255之间的图像进行非线性灰度编辑。

根据实拍图像测试,当gamma为0.5时,校正后的图像能够较好的区分激光条纹区域和背景区域,使用IGC前后灰度值的对应关系如图6所示,灰度值小于Gth时呈指数级下降,大于Gth时保持原灰度值不变。

图6 使用IGC前后灰度值的对应关系

通过对多个场景下实测激光条纹图像进行观察,可知激光条纹区域中心的灰度值在240以上,而背景区域灰度值一般小于240。故设定gamma为0.5,Gth为240,使用STGC对图像进行非线性灰度变换,变换后的图像及其灰度直方图如图5(c)和图5(f)所示。可以看出,变换前图像的灰度直方图具有多个峰值,难以分割出激光条纹区域与背景区域;校正后图像的灰度直方图大体呈现双峰特点,灰度值较高的峰值为激光条纹区域灰度峰值。通过图5(f)可以看出,IGC可以在保留激光条纹区域信息的基础上,降低背景部分的干扰,便于对激光条纹区域进行分割。

2.3 激光条纹区域分割

实际工业场景下,由于激光光强分布不均且被测物表面材质以及颜色的差别,若对整张图片使用相同的灰度阈值进行分割,则分割出的激光条纹存在较多分段,缺失部分激光条纹信息。针对实际激光条纹图像的特点,本文提出了一种改进型变阈值大津阈值分割(IVT-Otsu,improved variable threshold Otsu)算法来分割图像的激光条纹区域。

对校正后的激光条纹图像,本文采用IVT-Otsu算法分割出激光条纹区域。该算法运用了最大化类间差的思想,在没有任何先验知识的前提下,通过对图像中各像素点进行灰度值统计来确定图像分割的最佳灰度阈值,使图像前景与背景两部分之间的类间方差最大。使用IVT-Otsu算法分割激光条纹区域的具体步骤如下:

步骤1:统计图像中每行像素点的灰度直方图,使用Otsu算法计算每一行像素点的最佳灰度阈值,记图像共n行像素,可得最佳分割阈值集合K={k1,k2,k3,…,kn};

步骤2:统计集合K的灰度直方图,使用Otsu算法计算出最佳的分割阈值kth,并且使用kth将集合K分割为K0={ki|ki≥kth,i∈{1,2,3,…,n}}和K1={ki|ki

步骤3:对K1集合的分割阈值重新赋值,按照调整后的阈值分割出图像中的激光条纹区域。

根据最大类间方差的原理,kth为图像分割的最佳灰度阈值,但是为了平衡对强弱光条区域的分割,使分割出的激光条纹区域能够在一定程度上维持连通性,在实际分割时对分割阈值进行适当调整。通过调整强光条行和弱光条行的分割阈值,减轻光强分布不均对激光条纹区域分割的影响。经过实验验证,本文将K1集合中的阈值小于0.4×kth的部分统一重新赋值为0.4×kth,大于0.4×kth的部分统一重新赋值为0.7×kth,既避免了对无光条区域的错误分割,同时又保留了光强较弱部分的光条信息,从而分割出连续性较好的激光条纹区域。图7(a)为原始激光条纹灰度图像,图7(b)为使用IVT-Otsu算法分割后得到的二值图像,白色部分为分割出的激光条纹区域。通过图7(a)与图7(b)的对比可以看出,IVT-Otsu算法能够精确地分割出激光条纹区域。

针对获得的二值图像,本文还对其进行了形态学闭运算以及形态学开运算处理,去除较窄的间断和细长的沟壑、消除小的孔洞,并去除分割出的较小的噪声区域。对二值激光条纹图像进行形态学运算,得到的结果如图7(c)所示。图7(d)和图7(e)分别为图7(b)和图7(c)的局部细节放大图,可以看出,经过形态学运算激光条纹区域的细小孔洞以及外部较小的噪声区域被基本消除。根据列坐标由小到大的顺序,记录激光条纹区域每个横截面的像素点列坐标记为数组Hi(i为所在行数,对于非激光条纹区域的行,记Hi为空数组),以便进行后续的中心提取。

图7 激光条纹图像及其二值化

3 激光条纹中心线提取

3.1 初始中心线提取

理想条件下,激光条纹的截面的能量呈高斯分布,条纹中心点与激光能量最高点相吻合,表现在图像上为激光条纹横截面的灰度质点即为该激光条纹横截面的中心点。灰度重心法(GBM, gray barycentric method)就是将每一行激光条纹截面的灰度值分布中的质心作为激光条纹的中心。

在实际工业场景下,由于激光条纹各部分的宽度不一致,光强分布不均,且激光条纹中心位置像素灰度值差距较小,本文采用自适应宽度的二维灰度重心法(TD-GBM,two-dimensional gray barycentric method)来提取激光条纹亚像素级中心坐标。考虑激光条纹区域的灰度连续性,相邻横截面间像素点灰度值存在相关性,故将灰度质心的计算窗口从一维提升为二维,使相邻横截面的灰度值参与计算当前横截面中心点坐标。相比于传统灰度重心法,变宽二维灰度重心法在提升中心点计算可信度的同时,减小了提取中心线的波动性。对于边界位置的横截面,直接使用一维灰度重心法进行处理。计算激光条纹各截面中心坐标的数学表达式为:

当Hi为非空数组时,

(2)

式(2)中,ai为第i个激光条纹横截面中心列坐标,Hi为激光条纹区域第i个横截面上所有像素点列坐标组成的数组,ri为Hi中元素的个数,whalf为使用TD-GBM计算中心坐标时向上下拓展的行数,2×whalf+1为使用TD-GBM时的窗口宽度,n为图像的总行数。

当Hi为空数组时,

ai=NaN

(3)

式中,NaN代表空值。

采用GBM与TD-GBM初步提取出的激光条纹中心线如图8所示。通过对比图8(a)与图8(c)可看出,TD-GBM相较于GBM提取的激光条纹中心线波动性明显减小,但是初步提取出的条纹中心线仍存在较明显的波动。如图8(e)所示,对于激光条纹质量不佳的图像,初步提取出的条纹中心线存在局部明显异常值以及中心线断裂的问题,需要进一步优化。

图8 GBM与VT-GBM提取结果对比

3.2 二次优化

针对提取出的激光条纹中心线存在断裂以及波动性较大的问题,本文提出了二次优化算法对初步提取出的初始激光条纹中心线进行优化。

使用Hampel滤波算法[22]进行初次优化,检测出初始中心线上的异常值,并对其进行修正,从而在剔除异常值的前提下实现断线重连,完成对初始中心线的初次优化。设第i行激光条纹初始中心线的位置为(i,ai),ai为中心点的列坐标,记图像共有n行像素点,Hampel滤波窗口长度为2M+1,令新的第i行激光条纹中心线的位置为(i,bi),具体步骤如下:

步骤1:在i∈{M+1,M+2,M+3,…,n-M+1}时,以(i,ai)为中心构建长度为2M+1的滤波窗口Ai={ai-M,…,ai-1,ai,ai+1,…,ai+M},并根据公式(4)计算Ai的绝对中位差MADi。

MADi=median(|Ai-median(Ai)|)

(4)

步骤2:缩放中位数绝对偏差以获得正态分布标准偏差的估计值di=1.482 6×MADi,并根据公式(5)对中心点坐标进行修正。若ai与Ai中值之差大于2×di,将bi赋值为Ai的中值;若ai与Ai中值之差不大于2×di,直接将bi赋值为ai;

(5)

步骤3:处理步骤1与步骤2未处理的边界值,在i∈{1,2,3,…,M}∪{n-M+1,n-M+2,n-M+3,…,n}时,同样以(i,ai)为中心构建长度为2M+1的滤波窗口,窗口内无值部分补零代替,同样按照步骤1和步骤2的计算过程完成对边界点的处理。

经过Hampel滤波后的激光条纹中心线如图9所示,中心线断裂部分得到了有效的修补,同时消除了初始中心线上较大的毛刺,与实际的激光条纹中心线更加接近。

图9 初次优化前后结果对比(局部放大)

Hampel滤波在实现对初始中心线的断线修补的同时,还去除了一些明显的异常值,在一定程度上对中心线进行了平滑处理。为了进一步提高对于激光条纹中心坐标提取的精确度,采用均值平滑法对中心线进行二次优化处理。当前第i行激光条纹中心线的位置为(i,bi),采用均值平滑法优化后的位置为(i,ci),具体步骤如下:

步骤1:当i∈{N+1,N+2,N+3,…,n-N+1}时,以(i,bi)为中心构建长度为2N+1的窗口Bi={bi-N,…,bi-1,bi,bi+1,…,bi+N},并按照公式(6)计算ci;

(6)

步骤2:处理步骤1未处理的边界值,在i∈{1,2,3,…N}∪{n-N+1,n-N+2,n-N+3,…,n}时,将ci直接赋值为bi。

ci=bi

(7)

二次优化后的激光条纹中心线如图10所示,可以看出相比初次优化,二次优化后的中心线更加平滑,基本消除了二维灰度重心法提取的激光条纹中心线波动较大的问题,提高了中心线提取的精度。

图10 二次优化前后结果对比(局部放大)

4 实验结果与分析

为验证本文所提算法在动态测量环境下进行激光条纹中心提取的准确性、稳定性以及实时性,本文基于动态测量环境搭建了单线结构光视觉测量系统,系统示意图如图11所示。实验以中心波长为650 nm、功率为100 mW、线宽为0.1 mm的红色一字线激光器为光源;以呈像尺寸为1 280×720 pixel的CMOS工业相机采集图像。在Windows10操作系统中,以Matlab2019b为开发环境进行激光条纹中心线提取。

图11 单线结构光视觉测量系统示意图

实验中,使用一字线激光器向被测对象投射红色激光。其中,工业相机、一字激光器以及被测对象这三者之间的位置满足三角法测量系统的位置分布要求,采集多种复杂情况下的激光条纹图像进行中心线提取,以验证本文算法的有效性。

4.1 准确性分析

为了有效验证本文所提方法的提取效果,选择将极值法、骨架细化法、GBM和Steger法作为比较算法。将算法应用于直线型激光条纹的中心线提取,各算法提取出的激光条纹中心线区域放大如图12所示。本文所提算法提取出的激光条纹中心线最接近光条实际的中心位置处,其余算法提取出的中心线均存在不同程度的偏移。

(8)

表1为使用5种算法计算得到的激光条纹中心坐标的标准误差值。

表1 各算法提取激光条纹中心线的标准误差

由表1可知,由于其没有考虑激光条纹的灰度分布特性,极值法与骨架细化法的标准误差相对较大;GBM按照激光条纹横截面的灰度分布特性较为精确的提取出中心线,但是存在较大的波动性;Steger法较为平滑的提取了激光条纹中心线,但是整体呈现分段式变化的特点,较大的影响了提取的精确度;本文所提优化算法的标准误差最小,即提取的激光条纹中心的精确度最高。

4.2 适用性分析

为进一步验证本文所提方法对动态测量环境下多种复杂背景的适用性,实验采集了复杂背景下多种线型的激光条纹图像进行中心线提取,使用本文所提方法提取激光条纹中心线,结果如图13所示。

图13(a)反映了对于复杂背景下线型为曲线的激光条纹图像的提取效果;图13(b)反映了对于复杂背景下线型为折线的激光条纹图像的提取效果;图13(c)反映了对于复杂背景下各部分激光条纹宽度变化较大、光强分布严重不均的激光条纹图像的提取效果;图13(d)反映了对于复杂背景下激光投射面各部分反光特性差别较大的激光条纹图像的提取效果。可以看出本文所提优化算法能够较精确地提取各种复杂情况下的激光条纹中心线,受背景干扰以及激光条纹质量的影响较小,适用于复杂背景下多种线型的激光条纹。

图13 各线型激光条纹的提取结果(局部放大)

4.3 稳定性分析

为验证本文所提方法的稳定性,用工业相机在同一位置、不同光照条件下采集了四幅激光条纹图像,如图14所示。分别使用极值法、骨架细化法、GBM、Steger法以及本文所提算法进行中心提取,并计算中心提取的重复性误差。

图14 不同光照下的激光条纹图像(从(a)到(d)光照逐渐变弱)

算法的重复性误差能够表征在不同时刻下算法提取激光条纹中心线的偏差大小,也反映了算法对不同光照条件以及随机噪声下的适应能力。算法提取光条中心点的重复性误差记为ER,不同时刻下拍摄的激光条纹图像总个数记为P。

(9)

(10)

式(9)和式(10)中,ER为算法提取4幅图像的激光条纹中心线产生的重复性误差,ERp为提取第p幅图像的激光条纹中心线产生的误差,ci,p为第p幅图像的第i个激光条纹横截面的中心坐标。

对于不同时刻下采集的光条图像,表2为5种算法提取光条中心点的重复性误差。与传统算法相比,本文所提的优化算法重复性误差数值最小。这表明在不同光照条件下,本文所提算法提取的激光条纹中心线间的差别最小,具有较高的稳定性。

表2 各算法提取激光条纹中心线的重复性误差

4.4 提取时间分析

由于提取激光条纹中心线要求具备实时性的特点,因此需要对中心线提取算法的运行效率进行研究。为了减小误差,在同一台计算机上分别采用5种算法对同一组图像进行20次激光条纹中心线提取,取运行时间的均值作为算法的提取时间。各算法提取激光条纹中心线的提取时间如表3所示。

表3 各算法提取激光条纹中心线的提取时间

由表3可知,Steger法由于需要进行大量的卷积运算,计算复杂度较高,故其提取中心线的时间花费最大,运行效率最低;骨架细化法由于需要多次迭代运算细化激光条纹区域来提取激光条纹骨架,时间花费较大,在5种算法中仅次于Steger法,运行效率较低;极值法的时间花费最小,但是其在背景复杂的情况下提取效果极不稳定,一般不能应用于实际工业场景;本文所提算法通过自适应裁剪算法降低了后续的计算量,在与灰度重心法相比花费时间相差不大的前提下,极大地提高了激光条纹中心线提取的准确性,具有更高的实际应用价值。

5 结束语

针对实际工业应用场景中存在的动态测量环境下激光条纹图像中存在复杂背景信息、激光光强分布不均、光带各部分宽度差别大、激光条纹断裂等问题,本文提出了一种适用于动态环境的激光条纹中心线提取方法。通过自适应裁剪算法、改进型伽马校正以及改进型变阈值大津阈值分割算法来提取出激光条纹区域,显著降低了动态测量环境下拍摄的激光条纹图像存在的复杂背景信息对提取激光条纹中心线造成的影响。通过自适应宽度的二维灰度重心法以及后续的二次优化算法,精确地提取出激光条纹中心线。通过多组实验验证,算法可以准确而高效地实现动态测量环境下的激光条纹中心线提取,能够在多种复杂情况下精确地提取激光条纹中心线,具有很强的适应性。

猜你喜欢

中心线像素点灰度
航空滤光片阵列多光谱图像条带灰度调整算法
天津港智慧工作平台灰度发布系统和流程设计
基于局部相似性的特征匹配筛选算法
Arduino小车巡线程序的灰度阈值优化方案
树叶竞技场
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
停机后汽缸温差大原因分析及处理
图像采集过程中基于肤色理论的采集框自动定位
一种基于灰度分割的调焦评价函数