APP下载

面向复杂环境的线结构光光条中心提取算法

2022-11-02王成琳罗天洪

现代制造技术与装备 2022年9期
关键词:置信灰度偏差

奚 陶 王成琳 罗天洪 周 毅 张 超

(重庆文理学院 智能制造工程学院,永川 402160)

线结构光测量技术具有效率高、硬件成本低及操作简单等优点,已在表面质量检测[1]、三维重建[2]及几何参数测量[3]等领域广泛应用。测量过程中,激光发生器将光条投射到被测物体表面,经视觉传感器捕获光条图像后,通过图像分析技术得到被测物体表面的几何参数。线结构光光条的宽度一般超过一个像素,而光条中心线上各点的位置坐标代表最准确的测量信息,可用于反映被测几何特征参数[4-5]。因此,线结构光光条中心的精准提取是实现基于线结构光精准测量的一个重要环节。

传统光条中心提取方法可分为基于光条几何中心的提取方法和基于光条灰度特征的提取方法。由于噪声和不均匀光照等复杂环境因素的影响,光条表面常产生断线或噪声污染现象,导致传统方法无法准确获取光条中心。为保留传统光条中心提取方法的优点并抑制其缺点,学者们提出了大量改进方法。部分文献采用深度学习模型,先从复杂环境中识别光条目标,再用传统方法提取光条中心[6-8]。在改进传统方法的过程中,LI等人采用灰度重心法计算光条每列的中心点,再用最小二乘法拟合这些点,得到切向向量、法向量和曲率半径,进而在每个中心点周围定义一个矩形区域,沿着法向量方向重新计算矩形区域内的中心点坐标[9]。HE等人将灰度中心法和Hessian矩阵法相结合,提出一种不同于传统沿行或沿列提取光条中心点的方法[10]。LI等人基于Gauss-Lorenz峰值拟合模型预处理光条图像,并用灰度质心法提取光条纹中心,提高了光条中心的提取精度[11]。

文章提出一种适用于复杂环境的光条中心提取的混合算法,首先利用合成的光条图像训练YOLOv5s模型,识别复杂环境下的光条目标,其次采用自适应灰度阈值法、灰度均值法及基于亚像素的边缘检测方法提取光条像素,最后结合灰度重心法利用构造的滑动窗口搜索光条中心像素,实现光条中心的精准 提取。

1 光条中心提取方法

1.1 算法流程

光条中心的提取流程如图1所示,主要包含光条分割和光条中心计算两个环节。具体步骤为:(1)用局部二值模式(Local Binary Patterns,LBP)纹理算子提取光条纹理特征,统计光条表面灰度值,用纹理特征和灰度值人为合成光条图像;(2)用合成的光条图像训练YOLOv5s模型;(3)用训练好的YOLOv5s模型识别图像中的光条,并用置信框分割图像,仅保留置信框内的区域;(4)利用自适应灰度阈值方法提取置信框内的像素;(5)利用灰度均值法均衡化置信框内的像素灰度值;(6)采用亚像素边缘算子检测被提取像素的边缘;(7)用滑动窗口遍历图像,寻找满足阈值的光条像素点;(8)根据搜索的光条像素值,利用灰度重心法计算光条中心。

图1 光条中心提取流程图

1.2 光条分割

LBP通过局部二值化提取图像的局部纹理特征。它的操作原理是定义一个3×3窗口,通过比较相邻像素和中心像素的灰度值,从左上角的第一个位置顺时针读取8位二进制数。该位置的LBP值可以通过十进制编码获得,具体内容如图2所示。

图2 LBP算子原理图

LBP值反映了由其自身定义的窗口中的纹理信息,表达式为

式中:P为除3×3窗口中心像素外的像素;I(c)为中心像素的灰度值,即像素P的灰度值。从复杂环境的光条图像中截取光条片段,包括投射在背景上的片段和投射在其他物体上的片段。利用LBP算子表达片段的纹理特征,结合灰度加权平均,人工合成光条图像。合成的光条片段如图3所示,其中图3(a)、图3(b)和图3(c)分别为投射在背景上的合成光条片段、投射在量块上的合成光条片段和投射在工具上的合成光条片段。

图3 合成的光条片段

YOLOv5s是YOLO系列最新的检测算法,可分为输入终端、骨干网络、颈部结构和预测层4个部分。研究使用的YOLOv5s模型大小仅为7.3 MB,Focus层和对流边界层(Convective Boundary Layer,CBL)的卷积核数分别为32、64、128、256和512。 将合成的光条片段随机覆盖在原始光条图像的对应位置,再利用Labelimg图像标记工具标记合成的光条目标和原始光条目标作为输入图像,并训练YOLOv5s模型。使用YOLOv5s模型识别光条后,根据光条图像中置信框的坐标,将其外部设置为黑色,实现光条图像的分割。

1.3 光条中心计算

针对光条图像分割结果,首先采用自适应灰度阈值法提取置信框内的像素点,通过统计大量像素灰度值,确定阈值为165,其次利用形态学膨胀腐蚀算法去除剩余的噪声点和小孔洞,再次采用自适应灰度均值法均衡提取的像素灰度值,最后利用Canny边缘检测算子提取置信框内的光条边缘,并利用亚像素边缘检测算法细化其边缘,具体实施如下。

假设点(x,y)为置信框内光条边缘点,R(x,y)为该点的灰度值,点(x-1,y)、(x+1,y)、(x,y-1)和(x,y+1)分别是点(x,y)的4个领域点,对应的灰度值分别为P(x-1,y)、P(x+1,y)、P(x,y-1)和P(x,y+1),讨论下列4种情况。

(1)如果R(x,y)>P(x-1,y)且R(x,y)>P(x+1,y),点(x,y)的亚像素点(x0,y0)可以表示为

(2)如果R(x,y)>P(x,y-1)且R(x,y)>P(x,y+1),点(x,y)的亚像素点(x0,y0)可以表示为

(3)如果R(x,y)<P(x,y-1)且R(x,y)>P(x+1,y),点(x,y)的亚像素点(x0,y0)可以表示为

(4)如果R(x,y)<P(x,y-1)且R(x,y)>P(x,y+1),点(x,y)的亚像素点(x0,y0)可以表示为

通过遍历置信框内光条图像,根据亚像素计算方法获得光条边缘的亚像素边缘点。由于光条宽度超过一个像素,获得光条亚像素边缘点后,使用大小为4个像素的滑动窗口确定光条宽度并去除噪声点,原理如图4所示,其中虚线框表示大小为4像素的滑动窗口,灰色为置信度框的边缘像素,黑色为噪声点像素,白色为光条像素。

图4 基于滑动窗口的光条像素搜索

根据滑动窗口确定光条宽度的步骤如下。

步骤1:将包含光条的置信框图像转换为二值图像,使得2×2的窗口从置信框左上角滑动,遍历整个置信框图像搜索光条像素。

步骤2:如果滑动窗口的4个像素值在窗口滑过第1行时的某个时间内全部为1,则记录窗口的第2行的1的坐标。当遍历第2行时,检查与前一行1对应的下一行像素是否全部为1。若所有像素的值不是1,则前一行1的像素是噪声点。如果它们都是1,则检查此行的像素是否都是1。如果此行都是1,则前一行1的像素是光条的最小纵坐标。滑动窗口继续遍历下一行,直到找到窗口的4个像素不是1的点,此时是光条纵坐标的最大值。如果检查行的所有像素不是1,则窗口将遍历下一行直到整行的像素为1。重复上述操作,直至找到光条的最小纵坐标和最大纵坐标。

步骤3:利用式(7),结合步骤2中搜索的光条最小纵坐标和最大纵坐标,通过灰度重心法计算光条中心。

2 实验及其结果分析

为了验证所提方法的准确性,笔者进行定量实验。实验所用激光发生器为深圳市红外线激光科技有限公司生产的HW650L100-22BD型波长650 nm激光发生器。光条图像背景包含随机噪声和不均匀光照,由深圳市美迪视讯科技有限公司生产的分辨率为1 280×1 024的工业摄像机获取,镜头为MVJT0612型号的工业镜头,焦距为6~12 mm。计算机的配置为8 GB RAM、Intel Core i5-8300H CPU、NVIDIA GTX1660Ti GPU和Windows 10操 作系 统,其中运行的图像处理软件系统包括Python 3.8、MATLAB 2020b、Ashampoo Photo Commander、CUDA10.2、cuDNN7.6.5和Photoshop。程序编译软件是Anaconda和Pycharm。

2.1 光条识别结果

采集200幅光条图像,在每幅图像中随机添加光斑和噪声。光条图像分为训练集和测试集,分别包括175幅图像和25幅图像。数据集1包含160张合成光条图像、10张原始图像组成的训练集和25张原始图像测试集。数据集2的训练集和测试集分别为175张原始图像和25张原始图像。YOLOv4模型、YOLOv4 tiny模型和YOLOv5s模型使用数据集1训练,同时YOLOv5s模型使用数据集2训练。检测结果如图5所示,图5(a)中识别光条的置信率分别为1.00、0.99、0.98、0.97和1.00,图5(b)中识别光条的置信率分别为0.85、0.77、0.81、0.82和0.84,图5(c)中识别光条的置信率分别为0.92、0.91、0.91、0.90和0.93,图5(d)中识别光条的置信率分别为0.89、0.91、0.93、0.87和0.95。

图5 基于不同模型的光条识别结果

用精准率P、召回率R、F1值和均值平均精度mAP等模型评价指标评价模型识别光条的性能,表达式为

利用合成光条图像训练的YOLOv5s模型方法具有最高的精准率、召回率、F1值和均值平均精度,分别为96.70%、99.20%、97.93%和99.50%。利用原始光条图像训练的YOLOv5s模型,识别光条的精准率为82.20%,召回率为87.60%,F1值为84.81%,均值平均精度为83.26%。利用合成光条图像训练的YOLOv4 tiny模型,识别光条的精准率为91.60%,召回率为90.60%,F1值为91.09%,均值平均精度为89.64%。利用合成光条图像训练的YOLOv4模型,识别光条的精准率为93.50%,召回率为92.10%,F1值为92.79%,均值平均精度为94.67%。

2.2 光条中心提取结果

光条中心的提取过程如图6所示。其中:图6(a)是使用合成光条图像训练的YOLOv5s模型的光条识别结果;图6(b)是基于置信盒边缘的图像分割结果;图6(c)是置信框中像素的提取结果;图6(d)是置信框中像素的边缘检测结果;图6(e)是置信框中像素的边缘细化结果;图6(f)是光条中心的提取结果。

图6 光条中心的提取过程

采用骨架法、灰度重心法和Hessian矩阵法等传统方法,提取复杂环境下的光条中心,并与所提方法的提取结果进行对比。所提方法提取的光条中心结果如图7(a)所示,在不均匀照明和噪声干扰条件下,完整呈现了笔直的光条中心。图7(b)是使用骨架法提取光条中心的结果,显示了断裂的光条中心和错误的光条中心。图7(c)是基于灰度重心法的光条中心提取结果,显示了许多非直线和虚线。图7(d)是采用Hessian矩阵方法提取光条中心的结果,显示噪声区域中出现了错误的光条中心提取结果。

图7 基于不同方法的光条中心提取

为了进一步验证所提方法的性能,在MATLAB编程环境中,将具有一定宽度的光条随机添加至黑色背景图像,并将高斯噪声和光强区域添加到光条表面。在给定宽度的基础上,将人为计算的提取光条中心作为标准光条中心。利用所提方法、骨架法、灰度重心法和Hessian矩阵法提取的光条,与标准光条中心进行对比。使用如式(9)所示的偏差指数DEV评估不同方法的提取精度,其中N为重复比较试验次数,这里取值为15。(Xn,Yn)为标准光条中心15个不同点的像素坐标,(xn,yn)为标准光条上采样点的横坐标线或纵坐标线与通过比较算法提取的光条中心线之间的交点像素坐标。

表1记录了标准光条中心和其他方法提取的光条中心之间的像素坐标差异。表1中,光强1、光强2和光强3分别为3个不同光强的亮度区域,其中光强1的亮度最低,光强3的亮度最高。高斯噪声标准差s分别设置为0.02、0.04和0.06。从表1可以看出:当不同光强和不同参数噪声的照明区域叠加在光条时,标准光条中心与所提方法提取的光条中心之间的最大偏差和最小偏差分别为0.052像素和0.017像素;使用骨架法的最大偏差和最小偏差分别为0.414像素和0.144像素;采用Hessian矩阵法的最大偏差和最小偏差分别为0.265像素和0.106像素;使用灰质心法的最大偏差和最小偏差分别为0.562像素和0.290像素。可见,在所有方法中,灰度重心法的比较偏差最大。

表1 不同方法提取光条中心的光强比较 单位:像素

3 结语

文章提出了一种新的混合算法用来精确提取复杂环境下的光条中心。首先,利用YOLOv5s深度学习模型识别复杂环境下的光条目标,得到利用特征合成的光条图像训练的YOLOv5s模型,大大提高了复杂环境下光条的识别精度,其精准率、召回率、F1值和均值平均精度分别为96.70%、99.20%、97.93%和99.50%。其次,所提方法将置信框外部设置为黑色,并将置信度框中的像素处理为亮度均匀、边缘细化的像素。利用构造的滑动窗口去除噪声、搜索光条像素,可准确确定光条宽度。最后,结合得到的光条宽度,采用灰度重心法计算光条中心。在性能测试实验中,使用所提方法提取的光条纹中心相对于标准光条中心的最大偏差和最小偏差分别为0.052像素和0.017像素,表明所提方法在复杂环境中具有鲁棒性。未来,开发自适应的光条中心提取算法将是研究重点。

猜你喜欢

置信灰度偏差
采用改进导重法的拓扑结构灰度单元过滤技术
50种认知性偏差
置信职业行为在护理教育中的研究现状
天津港智慧工作平台灰度发布系统和流程设计
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
基于靶试的空空导弹自主飞可靠性置信度分析*
如何走出文章立意偏差的误区
证件照里放飞自我
Arduino小车巡线程序的灰度阈值优化方案
加固轰炸机