基于改进UNet 网络的线结构光光条中心提取*

2023-12-09 08:50张勇停
计算机与数字工程 2023年9期
关键词:光条灰度卷积

张勇停 李 锋

(江苏科技大学 镇江 212003)

1 引言

线结构光扫描技术是一种基于光学三角法的非接触式测量技术,主要由相机和投射线光条的激光器组成,被广泛应用于三维测量、三维图像重建、焊缝检测与跟踪、质量检测等领域[1~2]。测量时,先将线激光器发射的激光束投射到被测物体,激光平面匀速扫描物体表面的同时使用相机连续拍照,根据相机拍摄的光条图像计算二维图像的中心坐标,再根据标定得到的系统参数就可以计算二维坐标对应在世界坐标系中的三维坐标。线光条图像具有一定的像素宽度,通常为几到几十个像素,能否精确地提取光条中心是线结构光视觉系统的关键,其提取精度直接影响到整个线结构光视觉系统的精度[3]。

传统的光条中心提取算法主要有极值法[4]、灰度重心法[5]、方向模板法[6]、曲线拟合法[7]、基于Hessian 的Steger 算法[8]。极值法是从光条局部截面上寻找灰度分布的极大值点作为中心,对于灰度分布满足符合理想高斯分布的光条具有非常好的提取效果,计算速度快,但易受噪声影响,精度较低,适用性低。灰度重心法的算法简单,计算效率高,但精度低,对噪声敏感。方向模板法虽然降低了噪声对中心提取结果影响,但是计算效率大大下降。曲线拟合法的核心在于采用多项式曲线来拟合已有光条,从而用拟合的多项式代替原光条。基于Hessian 的Steger 算法计算精度高,但需要进行大量的高斯卷积运算,运行速度较慢。Wu[9]等提出了一种均方灰度梯度法和灰度重心法结合的算法,速度快且精度高。蔡怀宇[10]等提出了一种基于PCA 的中心线提取方法,用PCA 法代替Hessian 矩阵获取光条的法线方向,明显提高了计算速度。

近年来,深度学习在图像分类、目标检测、图像语义分割等[11~13]领域取得了一系列突破性的研究成果,但是深度学习在光条中心提取方面还没有太多的研究。王胜春[14]等提出基于ENet 网络对光条进行分割,再利用模板法计算光条中心,增加了算法复杂度。郭雁蓉[15]等提出一种两段式的卷积神经网络,第一个网络用于目标检测,第二个网络进行中心提取,在复杂环境中的提取结果比Hessian 矩阵法、灰度重心法表现好,但是增加了传播错误。

2 UNet网络结构

UNet 网络是Ronnerberger 等[16]在FCN[17]网络的基础上开发的。如图1所示,UNet网络具有对称的U型编解码结构,编码器对应的是图像下采样过程,解码器对应的是特征图上采样过程。在编码器部分中采用最大池化操作来缩小特征图,提取更高层次的特征,用来获取场景信息;在解码器部分使用上采样操作来恢复到原始图像大小,上采样的过程是结合了下采样各层信息和上采样的输入信息来还原细节信息。相应的编码器和解码器之间通过跳跃连接恢复上采样图像的细节信息。编码器通过CNN 单元来获取图像的特征信息,包括卷积层,BN层和ReLU层,如图1所示。

图1 UNet特征提取模块

3 网络结构改进

3.1 RCNN

RCNN[18]是基于CNN的模型优化,在CNN单元上加两个求和运算就得到了RCNN,如图2所示。

图2 改进的特征提取模块

输入图像后,RCNN 首先通过第一个3×3 的卷积层生成初步特征图,经过BN 层ReLU 层之后,再用第二个3×3 的卷积层生成新的特征图,将两次的特征图相加生成输出特征X(t-1)。再通过同样的操作,并与初步特征图相加就得到了RCNN 单元的输出特征图X(t)。

每个RCNN 单元中都有5 个卷积,并在每个卷积后还有一次加法运算,因此RCNN 单元的图像有效感受场将逐渐扩大。通过这些成功的卷积操作和加法运算后,RCNN 单元可以提取比只有固定有效感受场的普通CNN 单元更深和更复杂的特征数据。同时这5 个卷积层共享权重参数,需要学习的参数数量不变,减少了网络模型的复杂度。

3.2 基于RCNN的UNet网络

本文提出的基于RCNN 的UNet 网络结构如图3 所示,将UNet 网络中的CNN 单元替换为改进后的RCNN 单元。该网络共7层架构,即3层编码器、桥接器和3 层解码器,共36 层网络,最后一层是每个像素的sigmoid激活函数。sigmoid激活函数将对应的特征映射转换为概率值pi,表示该像素是光条中心的概率。假设yi表示像素点(i)的标签,则yi=1,否则,为yi=0。该算法采用二元交叉熵函数作为损失函数,其计算公式如下:

图3 改进的UNet网络结构

其中N是输入图像的像素数量。

4 实验及结果分析

4.1 数据集

实验采用FU650L200-BD22 一字线激光器和Manta G-125B 工业相机采集图像,数据集的图片大小均为512pixel×512pixel,数据集共1500 张图片,训练集和测试集分别为1150和350张图片。

4.2 实验环境

本文的实验使用的深度学习框架是Pytorch,显卡是GeForce GTX 1080GPU(显存大小为8GB),操作环境是基于i7-7820 的64 位Windows 10,编程语言是Python3.7。

4.3 实验步骤

在数据预处理阶段,将数据集图片进行数据增强处理,包括翻转、旋转、裁剪、缩放等操作。在参数优化阶段使用Adam优化器,Adam算法的作用是可以在训练时自适应地调整学习率,初始学习率为0.0001,batch size为6,epoch为200次。

通过对比如图4 所示的loss 曲线,可以看出迭代次数在达到25左右时loss曲线趋于平缓,随着迭代次数的增加,模型逐渐收敛。

图4 训练loss曲线

4.4 实验结果与分析

为了验证本文所提算法的性能,分别采用传统的灰度重心法,Steger 算法和本文算法对线结构光的光条进行中心提取,分别对比三种算法的精度和计算效率。图5(a)~图5(c)分别为连续型光条、间断型光条和曲线型光条三种不同形状的光条。

图5 三种不同形状的光条

不同方法提取不同形状光条中心的实验结果如图6 所示。图6(a)~图6(c)分别为灰度重心法、Steger算法和本文改进方法的提取结果。

图6 不同算法的提取结果

由上述实验结果可知,灰度重心法在光条灰度不均匀时的提取效果较差,Steger 算法和本文算法受光条灰度分布影响较小,性能更稳定。

对上述实验的实验结果做精度分析,可以通过改进算法提取到的光条中心点到光条中心真值距离的标准差来表示该提取算法的精度。标准差可表示为

式中,n为中心点个数,xi为第i个中心点到真值的距离,为中心点到真值的平均值。表1 为通过三种算法计算后得到光条中心坐标的标准差。

表1 各算法的标准差

表2 为上述三组不同形状的图片分别在三种算法下的程序运行时间。

表2 各算法的运行时间

为了进一步体现本文算法的优势,对比灰度重心法、Steger算法和本文算法的综合性能,分别取三种算法的程序运行时间和标准差的乘积作为衡量算法综合性能的评判标准,如表3 所示,可以看出,本文所提算法的综合性能与灰度重心法和Steger法相比较具有一定的优势。

表3 各算法的综合性能

为了验证本文算法的在噪声下的提取效果,在光条图像中添加由高斯噪声和椒盐噪声组成的单像素噪声点。图7 为原图提取的光条中心,图8 为噪声处理后提取的光条中心。

图7 原图的提取结果

图8 噪声处理后的提取结果

通过对比图可以看出,噪声处理前后光条的提取结果相差很小,几乎不受噪声影响。

综上所述,本文提出的基于改进UNet 网络的线结构光光条中心提取算法相比Steger 算法和灰度重心法对光条中心的提取效果更好、性能更稳定、计算效率更高。

5 结语

通过对传统的UNet 网络进行改进,将普通的CNN单元替换为改进的RCNN单元,在特征变换过程中保留了更多的细节信息,利用端到端的深度学习方式,减少了先分割光条后提取中心的传播错误。通过对不同形状的光条,采用传统的灰度重心法和Steger 算法进行对比实验,本文算法的精度要比传统灰度重心法要高,运行时间要比Steger 算法更少,满足实时性的要求,且有一定的抗噪性,综合性能较好。

猜你喜欢
光条灰度卷积
面向复杂环境的线结构光光条中心提取算法
采用改进导重法的拓扑结构灰度单元过滤技术
基于3D-Winograd的快速卷积算法设计及FPGA实现
Steger算法在运动鞋底表面光条图像中心提取的应用
基于块匹配的激光条纹亚像素中心提取
基于灰度拉伸的图像水位识别方法研究
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算