视觉目标检测是计算机视觉的经典任务, 旨在定位图像中存在物体的位置并识别物体的具体类别. 目标检测是许多计算机视觉任务及相关应用的基础与前提, 直接决定相关视觉任务及应用的性能好坏[1]. 作为钢铁工业的主要产品形式之一, 带钢已成为汽车、机械制造、化工、航空航天和造船等行业不可缺少的原材料, 其表面质量的优劣将直接影响其最终产品的性能和质量[2]. 在生产带钢的过程中, 受结构及制造工艺等影响, 会导致带钢表面出现划痕、裂纹、斑块、夹杂、麻点以及压入氧化铁皮等缺陷, 这类缺陷不仅会对产品的外观产生影响, 更会降低钢材耐磨性、耐腐蚀性、抗疲劳性和抗氧化性等性能. 因此, 利用计算机视觉对带钢表面缺陷进行检测对于提高带钢表面质量是十分重要的.
随着计算机视觉与深度学习的快速发展, 基于卷积神经网络的目标检测模型在缺陷检测任务中发挥着重要的作用. 现阶段的目标检测算法以结构为划分方式主要可以分为两类, 一类是以R-CNN算法[3]、Fast R-CNN算法[4]、Faster R-CNN算法[5]和Mask R-CNN算法[6]为代表的两阶段目标检测算法; 另一类是以SSD算法[7]和YOLO系列算法[8-10]为代表的一阶段目标检测算法. 对于两阶段的目标检测网络, 主要训练两个部分, 第1步是训练RPN (region proposal network) 网络, 第2步是训练目标区域检测的网络. 网络的准确度高、速度相对较慢; 对于一阶段的目标检测网络, 直接通过主干网络给出类别和位置信息, 没有使用RPN网络. 这样的算法速度更快, 但是精度相对略低.
近年来, 带钢表面缺陷检测算法逐渐被深度学习算法替代. 在图像分类领域, Fu等[11]提出了一种端到端的卷积神经网络, 对带钢表面缺陷进行分类; He等[12]利用对抗神经网络生成大量未标注数据, 解决了缺陷样本不足的问题. 而在目标检测领域, He等[13]以ResNet和 RPN为模型, 建立了一个带钢缺陷检测系统; Lv等[14]等提出了一种新型端到端缺陷检测网络, 探讨了改进的钢材表面缺陷检测与分类方法; 代小红等[15]运用图像增强与多层特征融合技术, 提出了一种基于改进Faster R-CNN的带钢缺陷检测算法; 翁玉尚等[16]使用K-meansⅡ聚类算法, 并调整网络结构, 采用改进后的Mask R-CNN算法对带钢表面进行检测; 李维刚等[17]利用加权K-means聚类算法对YOLOv3算法进行改进, 提高先验框与特征图层的匹配度; 孙泽强等[18]对YOLOv5算法运用频域注意力机制提取目标信息, 并采用解耦头将分类任务与回归任务分离, 对带钢缺陷目标进行更精确检测. 目前针对带钢表面缺陷检测的算法有很多, 但大多存在模型体积大、参数量多的问题.
本文为了进一步提高缺陷检测的准确率, 并在满足准确率高与模型参数量少的情况下, 基于YOLOv5算法进行轻量化改进, 以此实现在工业化场景下模型的部署能力. 首先将YOLOv5主干网络改进为ShuffleNetv2[19]网络, 在满足检测准确率的同时降低模型参数. 然后通改进YOLOv5原有网络结构, 加入了CARAFE[20]上采样算子和更换GSConv[21]. 最后针对YOLOv5骨干网络与颈部网络的特征融合进行修改, 设计一种跨层级的多级特征融合机制, 提升目标检测性能. 本文提出的算法在 NEU-DET数据集上进行测试, 实验结果表明, 该方法具有良好的检测性能, 满足工业部署需求.
1 YOLOv5算法作为一阶段端到端检测算法的代表作, YOLOv5是在YOLOv4基础上进一步优化改进得到的目标检测算法. YOLOv5算法针对子模块的深度和宽度分别设计了YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x五种不同的模型, 这五种模型检测精度与模型大小依次提升. YOLOv5s很好地将参数量与准确性进行了平衡, 所以本文选择以YOLOv5s为基础进行带钢缺陷检测.
YOLOv5的检测流程主要分为4个部分, 分别为输入端、Backbone特征提取端、Neck特征融合端以及Head输出端. YOLOv5结构如图1所示.
在图片输入网络前, 会在输入端进行mosaic数据增强、自适应锚框计算和自适应图片缩放操作, 对数据进行预处理.
在Backbone主干网络部分, 相较于早期版本, 新版YOLOv5把网络的第1层Focus模块换成了一个6×6大小的卷积层, 两者在理论上是等价的, 但是对于某些GPU设备, 新模块相较于Focus模块更加高效; C3模块替换了早期的BottleneckCSP模块, 通过残差连接实现特征融合并减小计算量; SPPF模块采用多个小尺寸池化核级联代替SPP模块中单个大尺寸池化核, 在保留原有功能的前提下进一步提高运行速度.
在Neck特征融合部分, 借鉴FPN (feature pyramid network)与PANet的思想, 将深层的语义信息与浅层的位置信息相互传递, 增强多个尺度的信息融合.
在Head网络输出部分, 接收Neck传递的不同尺度的特征图, 采用非极大值抑制筛选目标框, 形成3个预测层, 用来预测和回归目标.
2 模型改进与优化 2.1 轻量化特征提取网络
ShuffleNet[22]是由旷视科技提出的一种轻量级的特征提取网络. 当前主流的轻量化网络主要使用深度可分离卷积 (depthwise separable convolution)和分组卷积 (group convolution), 以降低网络的计算量, 但这两种卷积操作没有办法改变特征通道数, 因此还需要1×1卷积改变通道维度. 在轻量化网络中大量的1×1卷积在一定程度上降低了模型的精度, 为了进一步降低模型计算量, ShuffleNetv1提出了通道混洗 (channel shuffle)的思想, 通过通道混洗完成通道间信息的融合. 通道混洗操作如图2所示.
在ShuffleNetv1中采用了大量的分组卷积与逐点卷积, 这会导致模型速度变慢, 于是在ShuffleNetv2中提出了一种新的通道分割 (channel split)操作. 图3所示为ShuffleNetv2的基本单元.
具体操作是将输入特征分为两部分, 一部分进行深度可分离计算, 再将计算结果与另一部分进行concat操作, 最后进行通道混洗, 完成信息的交流.
为了满足检测准确性与模型轻量化, 本文将YOLOv5的主干网络替换为ShuffleNetv2的两个基本单元. 首先在网络第一层增加CBRM结构, 对输入图像做一次卷积、批量归一化、最大池化和激活操作, 然后将单元1与单元2交替堆叠, 形成新的主干网络结构, 在遵循ShuffleNetv2提出的4条准则的前提下, 保证模型的泛化能力并降低模型参数.
2.2 GSConv卷积层
大型深度学习模型很难部署在工业场景下的嵌入式设备上, 并且大多轻量级网络使用大量的深度可分离卷积, 无法达到足够的准确性, 即使将主干网络替换成ShuffleNetv2, 但依然存在大量的1×1卷积操作, 这种密集卷积的操作反而会占用更多资源, 即使经过了通道混洗操作, 效果仍然不好. 因此本文将GSConv模块嵌入到特征融合阶段, 显著降低模型参数量. 本文没有将GSConv模块引入主干网络, 这是因为它会加深网络层数, 不利于空间信息流动, 进而影响推理速度. GSConv模块原理如图4所示.
GSConv模块主要由Conv模块、DWConv模块、Concat模块和通道混洗模块组成. 假设输入特征图通道数为c1, 期望特征图通道数为c2, 首先对输入特征图进行标准卷积操作, 得到通道数为c2/2的特征图; 接下来对它进行深度可分离卷积操作, 得到另一个通道数为c2/2的特征图; 然后将两个特征图进行concat拼接, 得到通道数为c2的拼接特征图; 最后通过通道混洗操作输出目标通道数的特征图.
GSConv模块采用深度可分离卷积结合标准卷积的形式, 可以通过深度可分离卷积降低计算复杂度, 同时通过标准卷积缓解由于深度可分离卷积的特征提取和融合能力弱而造成识别精度低的问题.
2.3 CARAFE上采样算子为了将输入特征图的输出尺寸与原图进行匹配, 同时实现不同尺度的特征融合, 上采样操作在目标检测领域应用十分广泛. 但常用的上采样操作存在着一些问题, 比如仅依靠像素点的空间位置信息决定上采样核, 容易丢失重要的特征信息. 并且在预测上采样核的过程中, 会引入大量的计算量与参数量, 这对网络的轻量化设计有着不利的影响. 因此本文引入CARAFE轻量级上采样算子, 在不引入较多参数和计算量的前提下, 增大感受野, 并将输入信息与特征图的语义信息进行关联, 实现比主流上采样操作更好的性能. CARAFE原理图如图5所示.
CARAFE将上采样分成两个模块, 分别是上采样核预测模块与特征重组模块. 在上采样预测模块中, 对于H×W×C的输入图像, 首先使用1×1卷积对输入的特征图通道压缩到H×W×Cm, 减小计算量; 然后为了对卷积进行编码, 对通道数量进行重新分配, 其中, σ是上采样系数; 接下来进行像素重组, 扩大上采样的接受域; 最后归一化处理, 减少操作中的参数量. 在特征重组模块中, 使用上采样核预测模块得到的特征图和普通上采样得到的特征图进行点乘, 得到输出值. 两个模块的公式如式(1)所示.
$\left\{ \begin{split} & {{K_{{\rm{encoder}}}} = {k_{{\rm{up}}}} - 2} \\ & {{W_0} = \psi (N({X_{1}}, {K_{{\rm{encoder}}}}))} \\ & {{Z_0} = \varphi (N({X_1}, {k_{{\rm{up}}}}), {W_0})} \end{split} \right.$ | (1) |
其中, 每个目标位置都需要一个kup×kup的上采样核. ψ代表上采样核预测模块, Kencoder是编码卷积的卷积核, N(Xl, k)是以该位置为中心的X的子区域, W0是预测模块的输出, φ是特征重组模块, Z0是上采样模型的总输出.
2.4 跨层级特征融合机制
随着特征提取和特征融合网络层数的加深, 信息的流通与传递会变得更加困难. 相比于其他目标检测算法, YOLOv5采用了FPN[23]的思想, 设计了一种自顶向下的特征融合网络, 同时兼顾了浅层特征与深层特征, 一定程度上解决了目标检测精度低的问题, 但这种结构对浅层特征的提取仍有一定的不足. 本文设计了一种新的跨层级特征融合机制, 将浅层特征与深层特征进行进一步融合. 改进后的网络结构如图6所示.
具体来说, 第1个特征融合层与主干网络第4层相连, 接收的特征图经过卷积核大小为3×3, 步长为2的卷积操作; 然后与特征融合网络经过GSConv操作的特征图进行concat连接, 形成通道数为512的特征图; 最后与检测头相连, 经过C3操作后输出结果. 同理, 第2个特征融合层与主干网络第2层相连, 经过类似操作后输出结果.
由于浅层特征感受野更小, 更加注重细节信息, 能够提取到更多的细节, 因此增加两个相似的特征融合结构, 起到浅层网络与深层网络全局融合的作用, 进一步增强了网络检测能力.
3 实验结果及分析 3.1 数据集
本文使用东北大学公开的带钢NEU-DET数据集作为训练测试数据. 其中, 包含了6种不同类型的表面缺陷: 划痕(scratches, Sc)、裂纹 (crazing, Cr)、斑块 (patches, Pa)、夹杂 (inclusion, In)、麻点 (pitted surface, Ps)以及压入氧化铁皮 (rolled-in scale, Rs). 共有1800张灰度图片, 每种缺陷各300张, 图片大小为200×200. 本文按照训练集、验证集和测试集8:1:1的比例抽取数据, 即训练集1440张, 验证集和测试集各180张. 各类缺陷如图7所示.
3.2 实验环境与参数设定实验使用的环境如表1所示.
在训练过程中, 加载预训练模型“yolov5s.pt”, 设置epoch=200, batch size=64, 动量为0.937, 采用SGD算法和余弦退火学习率衰减方式进行训练.
3.3 评价指标在目标检测领域中, 通常采用召回率 (recall, R)、精确率 (precision, P)、平均精度 (average precision, AP)和平均精度均值 (mean average precision, mAP)对性能进行评定. 召回率是指正确预测为正的占全部实际为正的比例, 精确率是指正确预测为正的占全部预测为正的比例. 计算公式如式(2)所示.
$\left\{ \begin{split} & R = \frac{{TP}}{{TP + FN}} \\ & P = \frac{{TP}}{{TP + FP}} \end{split} \right.$ | (2) |
其中, TP (true positive)表示一个实例是正类并且被认定为正类; FN (false negative)表示一个实例是正类但被判定为假类; FP(false positive)表示一个实例是假类但被判定为正类. 以P为纵坐标, R为横坐标绘制的曲线被称为P-R曲线, P-R曲线与坐标轴围成的面积被称为AP. 所有类别AP的均值被称为mAP, 两者越接近1, 表示模型检测越准确.
评价目标检测模型, 除了精确度指标外, 模型复杂度也必须要考虑. 通常用正向推理的浮点运算次数 (floating points of operations, FLOPs)和参数量 (parameters)来描述模型的复杂度. 其中, FLOPs越小, 说明模型计算复杂度越小; parameters越少, 模型体积越小.
本文采用mAP和参数量作为模型的主要评价指标, 另外采用FLOPs和每秒传输帧数 (frames per second, FPS)综合衡量模型检测速度.
3.4 消融实验及结果为了体现不同改进策略对带钢表面缺陷检测准确性的影响, 进行消融实验, 其中, “√”表示采用此模型进行设计. 实验结果如表2所示.
本实验以原始YOLOv5s模型为基线. 由第2组与第1组对比可知, 使用轻量化主干网络mAP降低到75.1%, GFLOPs降低到8.0, FPS提升到47.3f/s, 说明轻量化网络由于参数量的降低, 会降低模型检测精度, 但模型检测速度提高. 第2组和第3组进行对比可知, 增加GSConv模块后, 增强了网络的特征融合能力, mAP提高了1.9%, GFLOPs降低0.5, FPS降低1.7 f/s, 检测速度相比于原始YOLOv5s有所提高, 但检测精度仍然低于原始YOLOv5s. 第2组和第4组对比可以发现, 更换上采样层为CARAFE后, 增大了感受野, 提高了语义信息的关联能力, mAP提升了1.1%, GFLOPs提高0.5, FPS降低1.2 f/s. 第2组与第5组对比可知, 同时引入GSConv模块与CARAFE上采样层后, 模型结合两个模块的优点, mAP提升了2.9%, GFLOPs降低0.1, FPS提高0.9 f/s. 第2组与第6组对比可知, 在增加特征融合层后, 更有利于浅层信息与深层信息的融合交流, mAP提升了0.5%, GFLOPs提高2.3, FPS提高1.7 f/s. 综合第1组与第6组的比较结果, 改进后的模型的mAP、GFLOPs和FPS均优于原始YOLOv5模型.
3.5 对比实验及结果为了进一步验证本文算法的有效性, 将其与SSD、Faster-RCNN、YOLOv3、YOLOX[24]、YOLOv7[25]和YOLOv5在内的主流目标检测算法在NEU-DET数据集上进行对比实验. 实验结果如表3所示.
根据实验结果可以看出, 本文提出的算法mAP为78.5%, FPS为49 f/s, 参数量为5.88×106, 与YOLOv5算法相比, mAP提高1.4%, FPS提升3.5 f/s, 参数量降低1.15×106. 相比于参数量很大的Faster-RCNN、SSD、YOLOv3、YOLOX、YOLOv7算法, mAP都有明显提高. 除与SSD相比FPS降低外, 都高于其他算法. 结果表明, 本文算法在实现了模型轻量化的同时, mAP和FPS得到有效提升. 总体而言, 本文算法对目标具有较高的准确率, 可以实现在工业场景下的部署, 效果优于其他主流的目标检测算法.
如图8所示, 为原始YOLOv5s与本文算法在各类缺陷上的检测结果对比情况. 其中, 标注框上标注了缺陷类型以及置信度.
根据图8的检测结果可以看出, 经过改进后的网络在检测相同位置的缺陷时, 置信度更高; 相较于原始YOLOv5算法对于部分目标检测不到的情况也有所改善.
针对带钢表面的缺陷检测问题, 前人进行了很多研究. 为了验证本文算法的综合性能, 选取部分文献与本文算法进行对比. 对比结果如表4所示.
根据对比, 在带钢表面缺陷检测领域的研究中, mAP普遍偏低, 主要原因是由于带钢缺陷中的裂纹缺陷特征不明显, 并且在NEU-DET数据集中, 存在数据标注不完全的问题. 这些原因都会对检测时的速度和精度产生影响.
其中, 文献[18]的mAP最高, 主要原因将检测类别由6类改为5类, 删除了裂纹类别; 文献[26]的mAP为82.4%, 但参数量过多; 与文献[27]和文献[28]对比, 本文算法mAP分别提高4.4%和1.7%, 同时参数量有着明显下降. 与其他算法相比, 在检测精度方面, 本文算法mAP虽然低于文献[18]和文献[26], 但参数量最低, 满足了检测模型的轻量化要求; 而在检测速度方面, 理论上FPS高于30 f/s, 即满足实时检测的要求, 本文算法FPS虽然低于文献[26]和文献[27], 但仍可以保证检测时的流畅.
4 结论与展望
对于带钢的表面缺陷检测问题, 本文对YOLOv5s算法进行改进. 采用轻量化的ShuffleNetv2网络作为主干网络, 引入CARAFE轻量级上采样算子增大特征图感受野, 采用GSConv层保留语义信息, 引入多层级连的特征融合机制, 增强顶层特征与底层特征的融合. 通过实验的检测结果, 可以发现改进网络在提升检测精度的前提下, 实现了检测网络的轻量化. 但现有数据集对裂纹类缺陷的标注不完全, 测试时会将检测结果中部分正确的检测判定为假正例. 在接下来的研究中, 会对数据进行清洗, 调整标注信息, 从而进一步提升检测精度.
[1] |
曹家乐, 李亚利, 孙汉卿, 等. 基于深度学习的视觉目标检测技术综述. 中国图象图形学报, 2022, 27(6): 1697-1722. DOI:10.11834/jig.220069 |
[2] |
吴平川, 路同浚, 王炎. 带钢表面自动检测系统研究现状与展望. 钢铁, 2000, 35(6): 70-75. DOI:10.3321/j.issn:0449-749X.2000.06.018 |
[3] |
Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation. Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014. 580–587.
|
[4] |
Girshick R. Fast R-CNN. Proceedings of 2015 IEEE International Conference on Computer Vision. Santiago: IEEE, 2015. 1440–1448.
|
[5] |
Ren SQ, He KM, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 |
[6] |
He KM, Gkioxari G, Dollár P, et al. Mask R-CNN. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42(2): 386-397. DOI:10.1109/TPAMI.2018.2844175 |
[7] |
Liu W, Anguelov D, Erhan D, et al. SSD: Single shot multibox detector. Proceedings of the 14th European Conference on Computer Vision. Amsterdam: Springer, 2016. 21–37.
|
[8] |
Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 779–788.
|
[9] |
Redmon J, Farhadi A. YOLO9000: Better, faster, stronger. Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017. 6517–6525.
|
[10] |
Redmon J, Farhadi A. YOLOv3: An incremental improvement. arXiv:1804.02767, 2018.
|
[11] |
Fu GZ, Sun PZ, Zhu WB, et al. A deep-learning-based approach for fast and robust steel surface defects classification. Optics and Lasers in Engineering, 2019, 121: 397-405. DOI:10.1016/j.optlaseng.2019.05.005 |
[12] |
He D, Xu K, Zhou P, et al. Surface defect classification of steels with a new semi-supervised learning method. Optics and Lasers in Engineering, 2019, 117: 40-48. DOI:10.1016/j.optlaseng.2019.01.011 |
[13] |
He Y, Song KC, Meng QG, et al. An end-to-end steel surface defect detection approach via fusing multiple hierarchical features. IEEE Transactions on Instrumentation and Measurement, 2020, 69(4): 1493-1504. DOI:10.1109/TIM.2019.2915404 |
[14] |
Lv XM, Duan FJ, Jiang JJ, et al. Deep metallic surface defect detection: The new benchmark and detection network. Sensors, 2020, 20(6): 1562. DOI:10.3390/s20061562 |
[15] |
代小红, 陈华江, 朱超平. 一种基于改进Faster RCNN的金属材料工件表面缺陷检测与实现研究. 表面技术, 2020, 49(10): 362-371. |
[16] |
翁玉尚, 肖金球, 夏禹. 改进Mask R-CNN算法的带钢表面缺陷检测. 计算机工程与应用, 2021, 57(19): 235-242. DOI:10.3778/j.issn.1002-8331.2010-0446 |
[17] |
李维刚, 叶欣, 赵云涛, 等. 基于改进YOLOv3算法的带钢表面缺陷检测. 电子学报, 2020, 48(7): 1284-1292. DOI:10.3969/j.issn.0372-2112.2020.07.006 |
[18] |
孙泽强, 陈炳才, 崔晓博, 等. 融合频域注意力机制和解耦头的YOLOv5带钢表面缺陷检测. 计算机应用, 2023, 43(1): 242-249. |
[19] |
Ma NN, Zhang XY, Zheng HT, et al. ShuffleNet v2: Practical guidelines for efficient CNN architecture design. Proceedings of the 15th European Conference on Computer Vision. Munich: Springer, 2018. 122–138.
|
[20] |
Wang JQ, Chen K, Xu R, et al. CARAFE: Content-aware reassembly of features. Proceedings of the 2019 IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019. 3007–3016.
|
[21] |
Li HL, Li J, Wei HB, et al. Slim-neck by GSConv: A better design paradigm of detector architectures for autonomous vehicles. arXiv:2206.02424, 2022.
|
[22] |
Zhang XY, Zhou XY, Lin MX, et al. ShuffleNet: An extremely efficient convolutional neural network for mobile devices. Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 6848–6856.
|
[23] |
Lin TY, Dollár P, Girshick R, et al. Feature pyramid networks for object detection. Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017. 936–944.
|
[24] |
Ge Z, Liu ST, Wang F, et al. YOLOX: Exceeding YOLO series in 2021. arXiv:2107.08430, 2021.
|
[25] |
Wang CY, Bochkovskiy A, Liao HYM. YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors. arXiv:2207.02696, 2022.
|
[26] |
马燕婷, 赵红东, 阎超, 等. 改进YOLOv5网络的带钢表面缺陷检测方法. 电子测量与仪器学报, 2022, 36(8): 150-157. DOI:10.13382/j.jemi.B2205354 |
[27] |
曹义亲, 伍铭林, 徐露. 基于改进YOLOv5算法的钢材表面缺陷检测. 图学学报. http://kns.cnki.net/kcms/detail/10.1034.T.20221012.1820.004.html. (2022-10-13).
|
[28] |
李鑫, 汪诚, 李彬, 等. 改进YOLOv5的钢材表面缺陷检测算法. 空军工程大学学报(自然科学版), 2022, 23(2): 26-33. |