基于改进Faster R-CNN的铝型材表面缺陷检测研究

2023-12-18 10:42吴吉灵金玉珍
计算机时代 2023年11期

吴吉灵 金玉珍

关键词:表面缺陷检测;Faster R-CNN;特征金字塔;可变形卷积;感兴趣区域池化

中图分类号:TG146.21;TP391.4 文献标识码:A 文章编号:1006-8228(2023)011-52-05

0 引言

铝型材凭借其高强度、轻量化的优秀特性,成为航空航天装备等核心领域中不可或缺的材料之一[1]。然而,受制于环境因素的制约,铝型材在生产过程中不可避免的会出现一些缺陷,轻则影响工业产品的外观质量,重则带来潜在的安全隐患[2]。因此,解决铝型材表面缺陷的检测问题,对于保障工业安全生产和提高产品质量都具有重要意义。

基于传统图像处理的机器视觉方法[3]往往存在较大的局限性,它需要根据不同的目标去手工设计特征和分类算法,对于通用的场景适应能力较差,且一旦脱离简单的场景使用,就很难达到令人满意的检测性能。

近年来,深度学习方法已经逐渐取代传统机器视觉方法,被广泛应用于铝型材表面缺陷检测研究[4]。Li 等[5]采用自适应阈值法提取铝型材表面缺陷的图像特征,并基于反向传播神经网络对缺陷完成了分类;Sun 等[6]改进了YOLOv3 算法,为铝型材表面缺陷提供了一种端到端的解决方案,并提升了检测精度;Duan和Zhang[7]提出了一种基于梯度图像的双流卷积神经网络,对铝型材表面缺陷进行了有效的分类和识别;Neuhauser 等[8]利用深度卷积神经网络从视频中提取特征,用于铝型材表面缺陷的实时分类和检测。刘孝保等[9]提出了一种主从特征融合驱动的铝型材表面缺陷检测模型,有效提高了检测精度;曹阳等[10]在网络结构上引入了挤压激活模块,使模型更好地聚焦于铝型材缺陷的维度特征,提升了网络的检测精度;Wei 等[11]提出了一种基于深度学习的多尺度缺陷检测网络,优化了对铝型材中尺度差异过大缺陷的检测效果。

上述相关研究虽然提升了检测的精度,但是面对铝型材表面缺陷复杂多变和微小缺陷难以检测的问题,仍有一定的提升空间。本文提出了一种改进的Faster R-CNN 算法[12],用于铝型材表面缺陷检测。算法使用ResNet-101[13]代替VGG-16 作为特征提取网络,避免梯度消失和梯度爆炸的发生;加入特征金字塔结构(Feature Pyramid Network,FPN)[14]以融合多尺度的特征,提升微小缺陷的检测效果;使用可变形卷积(Deformable Convolution Network,DCN)[15]模块改善标准卷积模块对不规则缺陷形状的适应能力;运用精确感兴趣区域池化(Precise ROI Pooling)[16]解决量化取整带来的信息丢失问题,增强小目标缺陷的定位能力;并使用K 均值聚类(K-means Clustering)算法对初始锚框的尺寸和大小进行调整。最后通过实验结果证明了改进算法的有效性。

1 Faster R-CNN概述

Faster R-CNN,作为双阶段目标检测算法中的典型代表,已被广泛应用于学术界和工业界。它是在R-CNN[17]和Fast R-CNN[18]的基础上发展而来,通過引入区域候选网络(Region Proposal Network,RPN)代替选择性搜索(Selective Search)算法来生成区域候选框,从而显著提高了检测速度和准确度。

Faster R-CNN 的具体结构如图1 所示,主要包含特征提取网络、区域候选网络、感兴趣区域池化(ROI Pooling)和分类回归层四部分。①特征提取网络VGG-16 对原始图像的特征进行提取;②区域候选网络通过滑动窗口的方式在特征图上提取一系列锚点,然后针对每个锚点分别预测其是否为目标区域,并对预测结果进行修正,最终得到精确的候选目标区域;③感兴趣区域池化将任意大小的候选区域转化为固定大小的特征图,用于后续过程;④分类回归层进一步细化区分类别和获取更精确的预测框。

2 改进的Faster R-CNN 算法

针对铝型材表面缺陷的检测难点,本文从五个方面对Faster R-CNN 算法进行了改进,改进后结构如图2 所示。选取ResNet-101 作为主干网络以增强缺陷特征的提取能力;使用特征金字塔结构获取多尺度的特征信息,增强微小缺陷的检测能力;使用可变形卷积以适应多变的缺陷形状;运用Precise ROIPooling 消除量化取整引起的信息丢失,增强微小缺陷的定位能力;最后对初始锚框进行优化,以适应检测任务,提升准确率。

2.1 特征提取网络的改进

最初的Faster R-CNN 以VGG-16 作为特征提取部分,它包含了三个全连接层,为整个网络带来了过多的参数量和计算复杂度,并且容易出现梯度消失和梯度爆炸的情况。本文使用ResNet-101 代替VGG-16 提取铝型材表面缺陷的特征,通过残差单元解决了上述问题,有利于获取更高质量的特征信息。

ResNet 的网络结构如图3 所示。框中所选为ResNet-101,其中包括了残差块、全局平均池化层和全连接层。

2.2 多尺度特征融合的改进

对铝型材表面缺陷分析可知,其中各类缺陷尺度差异巨大,如图4所示,且微小缺陷数量多。改进了特征提取网络的Faster R-CNN 在只利用单尺度特征图的情况下,难以保持较好的鲁棒性,且最后一层特征图在下采样32 倍后,已经很难检测到微小缺陷的信息。

本文在此基础上引入特征金字塔结构,将浅层几何信息和深层语义信息相结合,加强了缺陷特征的表达能力,同时也增加了小目标特征的映射分辨率,有效地改善了算法对多尺度缺陷的检测能力和微小缺陷的识别能力。

2.3 可变形卷积的改进

铝型材表面上存在许多细长的条状缺陷,例如角位漏底,而传统的正方形卷积核结构难以对其形成有效的特征提取。为加强模型对这类缺陷的检测能力,本文使用可变形卷积网络中的可变形卷积来对原网络中的卷积部分进行改进。

图5 为标准卷积和可变形卷积的对比示意图,其中图5(a)为标准卷积,图5(b)、图5(c)、图5(d)均为可变形卷积。可变形卷积在每个点都加入了一个可学习的偏移量,使感受野不在局限于标准的方形结构,而是根据目标自适应的调整形状,从而获取更加充分的缺陷特征。

2.4 ROI Pooling 结构的改进

Faster R-CNN 算法使用ROI Pooling 结构将感兴趣区域池化成所需的固定尺度大小,如图6(a)所示。整个过程中包含两次量化取整操作,带来了数据上的丢失,同时候选框的位置相较于初始位置也发生了相对应的变化,影响了微小缺陷的定位精度。

Precise ROI Pooling在感兴趣区域对齐(ROI Align)的基础上更进一步,如图6(b)所示,使用二重积分的方式对特征图进行整体池化,取消了量化取整的同时没有引起额外的参数加入,最大程度地使数据信息得到保存。并且本文在原网络的基础上,增加了一条支线的ROI Pooling 去获取额外的上下文信息,更好地优化候选框。

2.5 锚框尺寸的改进

由于铝型材表面缺陷的形状、尺度差异巨大,区域候选网络中的初始锚框难以对其进行拟合,使模型的检测精度出现了下降。因此,本文使用K-means 聚类算法对数据集进行分析,从而获取更优的锚框尺寸和宽高比,以优化检测效果。

图7 为K-means 聚类算法的具体流程,文中K 值取4,优化后锚框大小为{322,642,1282,2562,5122},锚框宽高比为{0.005,0.2,0.5,1,2,5,20}。

3 实验与结果分析

实验环境如下:Linux系统,其版本为Ubuntu18.04.6;CPU 型号为Intel Core Processor,其核心数为12 核;GPU 型号为NVIDIA Tesla V100,其显存为32GB,CUDA 版本为11.3;算法实现框架为PyTorch,Python版本为3.7,并且进一步安装了支持算法代码运行的相关第三方库。

实验参数如下:使用随机梯度下降算法(SGD)进行权重更新,其中动量为0.9,权重衰减为0.0001,初始学习率为0.005,训练周期为26。学习率分别在第16个epoch 和第22 个epoch 衰减为原先的1/10。

3.1 实验数据集

本文实验采用阿里云天池平台所提供的铝型材表面缺陷数据集,数据集中共包含4356 张图片,其中单缺陷图片为2776 张、多缺陷图片为229 张、无缺陷图片为1351 张,分辨率均为2560×1920 像素。缺陷的类型有10 种,如图8 所示,分别为不导电、擦花、角位漏底、桔皮、漏底、喷流、漆泡、起坑、杂色和脏点。

按照8:1:1 的比例将数据集进行划分,并对训练集和验证集进行数据增强,包括图像翻转、圖像旋转和图像亮度调节,从而提升模型泛化性,增强后的训练集数量为15505 张。

3.3 检测算法对比实验

为了证明本文所提出的方法在铝型材表面缺陷检测任务上的优越性,本节将通过实验与一些主流及其改进算法进行对比,结果如表1 所示。

表1 显示,单阶段目标检测算法的检测速度较快,而双阶段目标检测算法在检测精度上更有优势。本文方法在mAP 指标上明显高于其他算法,更能满足实际工业生产过程中的需求,尽管在检测速度上略有逊色,但仍然可以对缺陷较快完成检出。

3.4 改进策略消融实验

为了探究所提出的每项改进策略对铝型材表面缺陷检测的影响,本文对其进行了消融实验,以分析各策略对检测精度的实际贡献大小,实验结果如表2所示,√代表加入此改进策略,-代表未加入此改进策略。其中,ResNet-101 主干网络极大地提升了整个算法的特征提取能力,对mAP 的提升可达15.08%;特征金字塔更好地完成了浅层几何信息和深层语义信息的融合,对精度提升了3.75%;可变形卷积使模型更适应多变的缺陷形态,对精度提升了1.73%;并且ROIPooling 和锚框尺寸的改进也分别使检测精度提升了1.87% 和1.35%。由消融实验的结果可知,本文的改进策略切实有效地优化了原算法,使缺陷检测结果更加准确。

Faster R-CNN 算法在整体改进前后,对铝型材表面各类缺陷的检测性能对比如图9 所示。图2 显示,相较于原算法,改进后的算法在擦花、喷流、漆泡和脏点上的性能提升巨大,解决了微小缺陷检测效果差的问题。

3.5 检测效果可视化

改进的Faster R-CNN 算法对铝型材表面缺陷的检测效果如图10 所示,从中可以看出,该算法对各类缺陷都能较好地检出,尤其对小目标缺陷识别效果有明显提升,满足了实际缺陷检测的需求。

4 结束语

本文针对铝型材表面缺陷的检测难点,以FasterR-CNN 作为基线进行了改进。首先选取ResNet-101作为主干网络以增强缺陷特征的提取能力,接着引入特征金字塔结构去融合多尺度特征,提升微小目标的检测性能,使用可变形卷积以优化狭长缺陷的识别效果,其次对ROI Pooling 结构进行改进以消除量化取整引起的信息丢失问题,提升缺陷的定位精度,最后使用K-means 聚类算法对锚框尺寸进行优化。实验结果表明,改进的Faster R-CNN 算法在检测精度上相较于原算法得到了显著提升,并较大程度优化了微小缺陷的检测效果,在mAP 和FPS 指标上分别达到了86.73%和7帧每秒,能够满足工业上铝型材表面缺陷的检测要求。而如何使检测模型轻量化,在不降低检测精度的同时提升检测速度,将是后续的优化方向。