李 丽,王燕妮
(西安建筑科技大学信息与控制工程学院,陕西 西安 710055)
机器视觉被称为智能制造的“智慧之眼”,为智能制造打开了新的“视”界,是实现工业自动化和智能化的必要手段。传统的工业制造中,通过人工对零部件特征提取,该方法劳动强度大,效率低,且依赖于人的经验等。计算机视觉的发展,为工业检测速度和准确率以及智能化程度做出很大贡献,视觉系统取代人工检测是智能制造发展的必然趋势[1]。视觉检测如何克服复杂的工业生产环境,减少人工干预,提高检测算法准确率和检测实时性是很大的挑战[2]。
零件识别和定位是工业机器人视觉任务的重要工作基础,传统的视觉识别算法中通常采用人工提取工件形态特征和模式识别方法相结合。文献[3]使用Snake算法从复杂背景中提取零件轮廓,通过边缘特征识别目标。文献[4]提出基于局部双线性插值的提取梯度直方图特征,对零部件细小缺陷检测。文献[5]对低纹理信息的零件检测,提出了CL2D(color line2D)快速匹配算法,得到了较好的检测效率。传统算法在检测任务中准确度有一定的提升,但是对检测环境要求极高,只适应某些特定的条件,容易受图像旋转、缩放的影响,导致检测效率不高甚至失败。而工业检测环境复杂,受光照和相机位姿变化的影响,识别精度受到很大影响。
近年来,深度学习算法在图像检测方面有优越的表现,深度卷积神经网络能够完善分类器自主学习提取抽象的高级特征。基于深度学习的检测算法在工业领域也取得了显著成果。文献[6]从改进聚类生成方案角度出发,提升发动机零件表面缺陷的检测准确率。文献[7]在SSD(single shot multibox detector)网络中融入Inception预测结构,对模拟生产环境下的装配零件训练,提高了检测准确率。文献[8]在残差网络基础上引入特征拼接,同时引入注意力机制,融合不同特征通道信息提高对列车底部零件的检测精度。
目前应用于工业零件的检测精度不断提高,但是实际应用环境噪声大,视觉算法受到光照不均匀、相机位姿变化、工件形态等因素影响,导致检测精度下降,同时工控机设备一般性能不高,没有强大的图形处理器。为了满足工业领域对零件的检测精度和实时性的要求,提出一种增强感受野的轻量化零件检测方法。
本文借鉴YOLOv5(you only look once)网络结构,该网络是由Ultralytics团队设计的目标检测网络,根据深度和宽度的不同,有YOLOv5s,YOLOv5m,YOLOv5l,YOLOv5x四个版本, YOLOv5s的模型最小,输入端采用Mosaic数据增强方式,随机缩放、随机裁剪、随机排布的方式进行拼接,可以提高对小目标的检测效果,训练之前通过聚类算法计算设置初始锚框,对原始图像能够自适应图片缩放。主干借鉴了CSPNet(cross stage partial network)设计思路,在主干网络中设计CSP模块增强网络特征提取,为了更好地提取融合特征,颈部网络使用FPN+PAN结构,FPN(feature pyramid networks)[10]层自顶向下生成高语义信息的特征图,PAN(path aggregation network)[11]层自底向上生成强定位特征,从不同的主干层对检测模块进行特征融合。结构图如图1所示。
图1 YOLOv5s网络结构图Fig.1 YOLOv5s network structure
本文提出有效增强感受野的轻量级工业零部件目标检测网络,使用ShuffleNetv2轻量化网络作为主干,网络模型对输入层的不同特征图进行分组卷积,可以大幅度降低卷积的计算量,同时为解决不同组的特征信息不通信的问题,分组卷积之后采用shuffle技术对通道均匀地打乱。随着网络加深,语义信息更加复杂,本文构造了并行空洞金字塔轻量级模块,通过对输入特征图不同比例的空洞卷积,提取更加丰富的多尺度语义信息,扩大感受野,丰富特征信息。在特征融合模块,从轻量化的角度出发,采用深度可分离卷积可能因为网络参数量减少而影响特征融合能力,本文在特征融合模块使用GSConv(group-shuffle strategy convolution)[14]替换普通卷积,并设计了GSCSP(group-shuffle strategy cross stage partial)模块,提高了网络融合能力。网络结构如图2所示。
图2 本文网络结构图Fig.2 The proposed network structure
YOLOv5主干特征提取网络采用了CSPDarknet53结构,为了满足在边缘设备上高效运行深层卷积网络的同时保持精度的需求,本文采用ShuffleNet搭建主干网络,该模型基本单元通过分组卷积、通道重排技术提高特征提取能力,并使用深度可分离卷积降低网络计算量。传统的神经网络中大量堆叠的卷积操作会产生冗余特征图,为了平衡网络模型的速度和精度,通过设置模块输出通道数来控制网络模型。网络参数如表1所示。
表1 网络参数维度Tab.1 Dimensions of network parameters
在工业环境中,工件特征的长宽比和大小受相机位姿变化的影响,相机旋转和相机倾斜等位姿变化幅度不同,其工件特征尺寸可以任意变化。而YOLO网络是根据聚类算法提前设定锚框,工件的特征长宽比与聚类结果差距很大,则会影响网络的定位信息。为增强网络对多尺度特征的提取能力,提高对工件的检测准确率,在网络中设计并行空洞金字塔轻量级结构。
空洞卷积(atrous convolution, AConv)是在卷积核的像素直接插入“洞”,以提高像素分别率,扩大感受野,捕获特征信息。深度可分离卷积将普通卷积分成两步,通道卷积(depthwise convolution, DWConv)和逐点卷积(pointwise convolution, PWConv),这个过程独立地查看卷积层的通道相关性和空间相关性。受ASPP(atrous spatial pyramid pooling)网络[12]和文献[13]的启发,文中设计了并行空洞金字塔通道(parallel atrous spatial pyramid path, PASPP),该结构采用空洞卷积和深度可分离卷积相结合构成特征融合通道,空洞卷积以棋盘方式提取特征,会丢失很大一部分信息,为避免局部信息丢失,使用不同的扩张率提取特征进行融合,膨胀系数设置地合理可以提高网络获取多尺度信息的能力,避免空洞卷积造成的局部信息丢失,使得模型对不同尺度的特征提取能力更强,信息更加丰富。
图3展示了空洞卷积与通道卷积结合的方式,输入特征层以独立通道采用空洞卷积,每个通道分别以3×3卷积核,扩张率r=2进行空洞卷积,然后对输出通道进行融合。空洞卷积可以任意扩大感受野提取特征信息,通道卷积对输入层的每个通道进行卷积,可以减少参数量。这个过程并不会改变通道数。
图3 空洞卷积和通道卷积结合Fig.3 Combination structure of DWConv and AConv
PASPP结构如图4所示,将输入特征通过1×卷积减少通道数,1×1Conv框模块包含三个组成部分:卷积层,批归一化层,激活层。通道输出结果被映射到四路分支。第一路分支以卷积核大小为3×3,扩张率为2,经过通道卷积,有效减少参数量;第二路分支是卷积核大小为3×3,扩张率r=5的空洞卷积和通道卷积相结合;第三路分路扩张率最大r=9,能够获得更多全局性的上下文信息增强推理能力;第四路保留了原来的特征信息。然后将不同空洞率的卷积信息进行特征融合,使得网络对不同尺度目标的适应性更强。由于深度卷积缺少通道信息之间的交流,引入Channel Shuffle进行通道重排,弱化通道之间的独立性。最后通过1×1的卷积降维和通道间编码。
图4 PASPP结构图Fig.4 Structure of PASPP
目标检测任务中,为了增强网络的学习能力,颈部网络对骨干网络提取不同尺度特征进行融合,提取更精细的细节进行图像识别。YOLOv5s模型的Neck层采用FPN+PAN结合方式,通过自上而下采样与深层特征信息进行融合,增强了深层网络的语义信息。利用浅层的精准定位信息,采用自下而上的路径增强方法与深层网络融合,缩短了信息路径,增强了特征金字塔。YOLOv5s在上采样和下采样操作中采用C3模块,减少了模型参数量,保证准确的同时,提高了网络速度。
本文从轻量化程度和网络的特征提取能力出发,引入文献[14]中新的卷积方式GSConv卷积替代普通卷积。为了使网络更加轻量化,一般会采用深度可分离卷积(depthwise separable convolution, DSC)替换普通卷积(standard convolution, SC),但DSC特征提取和特征融合的能力低很多。图像特征提取过程中,每一次特征图的空间压缩和通道扩张会导致语义信息的丢失,通道卷积将每层特征独立卷积,割断了通道之间的连接,GSConv最大限度地保留了它们之间的连接,特征图进入颈部网络时,通道维度达到最大,空间维度最小,适合在颈部网络中使用GSConv。其网络结构如图5所示。
图5 GSConv结构图Fig.5 Structure of GSConv
结合GSConv卷积设计了GSCSP模块,结构如图6所示。该模块先使用卷积减少通道数,其中一个分支经过N个使用ResNet(residual network)[15]连接方式的GSBottleneck模块。另一分支保留了上层输入的特征映射,将两路特征融合后,经过1×1卷积进行降维和通道编码。GSCSP模块减少冗余重复信息,提高了模型的表达能力,很大程度上减少了计算量。
图6 GSCSP结构图Fig.6 Structure of GSCSP
在工业领域样本少,没有开发的公共数据集,本文使用的数据集是汽车生产线上工业相机拍摄的图像。对数据集展开了两项工作:1) 以车间工人经验区分机舱类型的特征区作为标签,制作标签文件;2) 针对工业生产环境对检测精度影响因素,对数据集进行数据增强处理。如图7所示为两种型号相似度很高的汽车机舱。
图7 机舱架原始图Fig.7 Original image of engine compartment
在工业环境中获取原始图像2 000张,图片大小为2 048×1 536像素,其中A类型发动机舱图片1 000张,B类型汽车机舱图片1 000张。在实际环境中不容易获取大量样本,为了避免光照因素和相机位姿变化影响网络识别的精度,扩大数据集。实验中通过模拟相机位姿变化,对样本集进行数据增强。通过分析,实际工厂环境中相机可能存在的动作有相机倾斜、相机旋转、相机抖动。针对三类动作,分别设计对应的图像处理方式。其中相机倾斜为特征区域在图片中的大小变化;相机旋转为将图像进行一定角度的旋转;相机抖动为特征区域在图像中的位置变化。同时因光照补充原因,采集的图像会因光线太亮产生反光或光照不足等情况,为了消除光照带来的影响,对图像进行了亮度变化操作。数据增强的结果如图8所示。
图8 数据增强Fig.8 Data enhancement
从工业环境中获取原始图像,通过7∶1∶2的比例划分为训练集、验证集、测试集。充分考虑工业生产中的复杂环境,对数据集进行不同范围的数据增强。图像旋转是以原始图像在[-90°,90°]范围内随机旋转角度生成一组数据集。图像偏移是以原始图像在(-200,200)像素点范围内在X轴和Y轴方向上进行随机偏移生成一组数据集,偏移像素的颗粒大小为50。图像缩放是以原始图像在(0.6,1)范围内随机按比例缩小图像生成一组数据集。图像亮度是以原始图像调整图像亮度生成一组数据集。训练数据集大小如表2所示。
表2 训练数据集Tab.2 Training datasets
为了对比本文改进算法性能,使用精准率(precision),召回率(recall),平均精度(mAP),运算浮点数(FLOPs),参数量(parameters)、模型大小(model size)和每秒帧数(frame per second, FPS)作为目标检测网络的评价指标。mAP体现目标检测网络的综合性能。
本文中所有的实验都是在实验室服务器上搭建的pytorch环境下进行的,其中训练机的主要硬件参数:Intel(R) Core(TM) i5-4590 CPU @ 3.30 GHz;16.00 GB内存;NVIDIA TITAN Xp。软件参数:Windows 10系统;Python3.7;Pytorch1.9框架;cuda11.1、cudnn11.1。
为了验证改进目标网络对工业零部件的检测能力,实验中使用200张原始图像作为测试集,通过图像旋转、图像缩放、图像偏移、图像调整亮度数据增强操作生成800张的数据集,工业环境中相机位姿和光照条件的影响是随机变化的,为了验证网络的鲁棒性,对测试数据集做更大幅度的数据增强,以 [-120°,120°]范围内进行图像旋转,图像缩放在(0.4,1)范围内随机缩小图像,图像亮度是在其他三种操作基础上改变图像亮度。
3.4.1目标检测网络消融实验
针对工业环境下对汽车零部件的目标检测,本实验的改进主要为使用ShuffleNetv2作为主干网络,引入PASPP模块,在颈部网络使用GSCSP模块替换C3模块。为了定量分析各模块的检测性能,在工业机舱零件数据集上进行了消融实验,结果如表3所示。
表3 不同模块的性能对比Tabl.3 Comparison results of different modules
从表3中可以看出:不加任何改进模块的情况下,主干网络使用ShuffleNetv2提取特征的YOLOv5-1.0,其mAP值只有92.8%;添加轻量化PASPP模块的YOLOv5-PASPP模型,相比YOLOv5-1.0精度提高了1.3%,有效增加网络感受野;提出的GSCSP模块替换C3模块,模型大小基本保持不变,增强了网络融合信息的能力。本文算法对比YOLOv5s网络,参数量减少了60.3%,保持了较高的精度。本文提出的网络结构在减少网络参数量和计算量,轻量化程度最高的情况下,保证网络精度,在精度和速度上都达到了令人满意的结果。
为了验证轻量化PASPP模块中使用深度可分离卷积的有效性,实验如表4所示。YOLOv5-SC实验中PASPP模块使用的是普通卷积,精度没有明显提升,添加的PASPP模型能够提取更多上下文特征信息,且降低了参数量;YOLOv5-DSC将聚合网络中的普通卷积替换为深度可分离卷积,降低了网络计算量,但融合能力很低,影响网络精度;提出的GSCSP结构保留了更多通道相关性,解决了因DSC产生的特征丰富性过差的问题。
表4 不同卷积方式的实验结果Tab.4 Comparison results of different convolution modes
3.4.2网络对比实验
为了验证本文算法对汽车零部件检测的针对性,与其他主流算法进行了对比实验,包括SSD[16], YOLOv3-tiny[17],YOLOv4-tiny[18],YOLOv5s,实验结果如表5所示。
表5 模型性能对比Tab.5 Comparison of model performance
从上述实验结果分析可知,由于SSD模型在规模上较大,所需计算量多,在推理速度上表现最差。本文算法模型上最小,模型大小只有4.3 MB,比YOLOv5s的检测速度高24帧/s,精度基本保持一致。本文算法对工业汽车零部件的检测效果表现优异。图9为各种场景下的样本检测结果,在模拟遮挡、过曝光、旋转等复杂条件下,验证不同网络的检测能力。由于光照因素,往往会出现识别特征减少的情况,比如识别目标区域曝光或者失光,检测较为困难,YOLOv3-tiny网络对这类目标不敏感有漏检的情况。当图像旋转,特征区域的长宽比发生变化,本文算法提出的多尺度空洞金字塔模块,使得模型更能学习到这些样本特征。
图9 各场景检测结果Fig.9 The results of various samples detect
3.4.3实验结果
为了验证本文算法对汽车零部件的分类能力,实验中选择两种轻量化网络ShuffleNetv2,MobileNetv3[19]和两种经典网络EfficientNetv2[20],ResNet50[15]分别对数据集进行训练。测试数据集包括800张图像,实验结果如表6所示。本文提出的算法检测速度最快,可以达到实时检测要求,其准确率也表现较好。实验过程中发现,当测试数据集在训练范围内进行增强操作,其网路表现效果良好,当超出训练范围,加大测试集难度,本文算法依然可以有较好的分类结果,因此本文提出的算法能够更好地应对复杂的工业环境,提高检测能力。
表6 模型对比结果Tab.6 Comparison of model performance
针对工业环境中光照条件、相机位姿变化等因素影响检测精度下降问题,提出一种适用性更强的轻量化网络。为提高网路速度,使用ShuffleNetv2网络结构作为主干,并设计PASPP模块提高网络对不同尺度目标的特征提取;为提升网络精度,结合GSConv设计GSCSP网络模块,在不增加参数的情况下提高模型精度。实验结果表明,相比YOLOv5s网络,参数量大幅减少60.8%,mAP为96.1%,算法优势突出,对工业零部件具有较好的检测能力,具有更快的推理速度,能够满足实际生产中零部件检测需求。