APP下载

基于无锚框关键点算法的工件表面缺陷检测

2023-01-31戚裕绮范成杰丁国清马有为

计算机工程与设计 2023年1期
关键词:铝制内壁划痕

戚裕绮,范成杰,陈 欣+,丁国清,马有为

(1.上海交通大学 电子信息与电气工程学院,上海 200240;2.上海交通大学 学生创新中心,上海 200240;3.上海航天技术研究院 上海航天控制技术研究所,上海 201108)

0 引 言

随着制造业向自动化、智能化方向发展,工件表面的自动视觉检测方法已逐渐替代人眼视觉。传统图像处理方法依赖于特征模板的选择,特征表达能力往往有限,提取的特征不够稳定、鲁棒性不强。因此,如何降低特征提取的复杂性与不确定性仍需进一步研究[1]。近年来,基于深度卷积神经网络的深度学习在目标检测任务上取得重大突破,可以通过训练样本自动学习高级特征,并学习输入与输出的关系,从而实现稳定高效的目标检测。目前,目标检测可分为基于锚框(anchor-based)和无锚框(anchor-free)算法。Anchor-based算法通过不同的方式生成锚框,在此基础上进行编解码完成目标检测,该方法虽然在一定程度上能解决目标尺度不均等问题,但泛化能力较差,不符合人眼视觉特性。Anchor-free算法分为以CornerNet[2]为代表的keypoint-based方法和以FCOS[3]为代表的pixel-wise方法。目标检测算法已被广泛地应用于各种缺陷检测任务中。王晓茹等[4]基于Faster R-CNN和锚点集优化方法研究了硅片图像缺陷检测。郭亚萍等[5]提出基于SegNet网络的工件表面缺陷检测方法。由于受目标检测算法发展进程影响,目前的缺陷检测研究仍主要集中在anchor-based算法,而anchor-free算法网络结构较精简,在工业领域有着应用前景。本文提出一种基于无锚框关键点的工件表面缺陷检测算法(anchor-free and keypoint-based defect detection,AFKPDD),旨在解决工件表面图像背景纹理复杂、划痕缺陷尺寸异常、矩形框限制特征表示等问题,实现对工件表面的缺陷检测功能。

1 工件内壁图像获取

1.1 内壁视觉检测方法

工件内壁视觉检测原理[6]如图1所示,自上而下由CCD相机、远心镜头、同轴光源及具有45°斜切反射面的圆柱形反射镜构成。反射镜伸入内径为4.5 mm的工件内部,内壁成像区域经45°镜反射后向上进入镜头并在CCD上成像。同轴光源的光线向下进入反射镜后,经45°反射镜反射到内壁,为内壁成像区域提供充足光照。

图1 工件内壁视觉检测原理

由于反射镜成像范围的限制,需要通过在工件的周向和轴向上进行连续采集并拼接子图像来获取工件内壁的完整图像。本文选择每圈拍摄100幅图像,选取有效成像区域中成像质量最佳的区域作为子图像,共拍摄3圈。图像采集的各参数见表1。拍摄的内壁图像以及截取的子图像、拼接后得到的工件内壁完整展开图如图2所示。

图2 工件内壁图像

表1 连续图像采集参数

1.2 铝制工件内壁数据集

本文对50个铝制工件进行图像采集,得到的每个工件内壁原始图像大小为2600pix×1132pix,直接处理这么大的图像不仅影响训练速度,还会降低检测精度,因此,对原始图像进行裁剪,将每一幅图像分解为8幅640 pix×640 pix的子图像。当检测出每个子图像的缺陷时,可以很容易得出该缺陷在原始图像上的坐标分布。铝制工件内壁数据集由400张图像组成,存在缺陷的样本数量为220,缺陷标注框共计471个,缺陷类型为划痕。对每一张图像,使用ImgLabel标注工具对缺陷位置和类别进行标注。

有研究结果表明[7],COCO数据集中85%以上的目标尺寸比例是正常的(指min(w,h)/max(w,h)>1/3), 其余细长目标尺寸比例异常 (指min(w,h)/max(w,h)<1/3), 异常比例目标的检测准确率远低于正常比例的目标,这表明细长目标的检测存在一定难度。

铝制工件内壁数据集的缺陷多为细长划痕,图3为所有划痕标注框的高宽分布图,落在左上和右下的两三角形区域的点表示该标注框属于异常比例,这样的标注框有288个,占所有标注框的61%。

图3 缺陷标注框的高和宽统计

细长目标的准确率低下的一个主要原因在于矩形边界框与目标轮廓的契合度低。虽然矩形边界框便于标注和计算,但它们仅提供目标的粗略定位,并不能完全拟合缺陷的形态。如图4所示,某一划痕的标注矩形框高449 pix,宽151 pix,旋转后的矩形框高451 pix,宽30 pix,面积占比仅为20%。因此,从矩形边界框中提取的特征可能会受到背景大面积无效信息的严重影响,导致特征质量降低,从而降低缺陷目标检测的性能。针对上述问题,本文提出基于可变形卷积和无锚框关键点的AFKPDD算法,可以更好地提取划痕缺陷的有效信息,提高划痕的检测精度。

图4 标注框和实际拟合框

2 AFKPDD缺陷检测算法

2.1 AFKPDD缺陷检测算法流程

本文提出的AFKPDD算法主要分为3个部分:特征提取网络、基于无锚框关键点的检测模块和训练策略。

特征提取网络负责提取图像的特征信息,为了提升整体检测精度,在骨干网络中增加了可变形卷积特征金字塔网络[8](FPN)结构,融合了多尺度特征,增强了对目标变化的适应性。

基于无锚框关键点的检测模块负责缺陷的定位和分类,相比于基于锚框的算法,无锚框算法预设的超参数少、泛化能力更强。采用RepPoints Head实现了对缺陷形态关键点的检测,摒弃了传统算法中直接预测目标框的方法。该方法通过9个关键点检测缺陷,能更好地拟合缺陷的形态,更适用于目标尺寸比例异常、比例变换大、目标占检测框比例小的划痕缺陷检测。

训练策略负责提升网络的整体性能和泛化能力,本文主要提出两个策略:数据增强和多任务学习。为了改善铝制工件内壁数据集样本数量小的问题,针对图像特征设计了一种随机遮挡数据增强方法。为了优化模型学习过程和模型性能,引入了与铝制工件内壁缺陷检测相关的辅助任务,促进工件内壁缺陷检测任务的学习。

AFKPDD算法实现缺陷检测的流程如图5所示。首先,将待测工件内壁图像输入特征提取网络,通过ResNet50和FPN提取图像特征,得到4层不同尺度的特征映射。然后,每层的特征并行输入RepPoints Head检测模块,分别完成回归和分类任务。最后,将各层的检测结果按尺度融合,输出缺陷检测结果。图5虚线部分仅存在于训练网络,数据集中的bbox和label用于训练时损失函数的计算,辅助任务用于优化模型的整体性能。

图5 AFKPDD缺陷检测流程

2.2 特征提取网络

特征提取网络使用ResNet50[9]作为骨干网络,并采用特征金字塔网络结构,为了得到缺陷更准确的定位,在特征金字塔网络中加入可变形卷积[10],特征提取网络具体结构如图6所示。

图6 多尺度特征提取网络

考虑到铝制工件内壁数据集样本数量少,样本特征不像COCO数据集那样含有丰富的语义,本文选用网络深度适中的ResNet50作为骨干网络,并采用迁移学习策略[11],使用在ImageNet数据集[12]上预训练的权重,以便新网络可以更快地学习,提高训练收敛速度,改善了铝制工件内壁数据集样本数过少的问题。

在卷积神经网络中,底层的特征语义信息比较少,但是目标位置准确;高层的特征语义信息比较丰富,但是目标位置比较粗略[13]。此外,工件表面缺陷检测注重底层的纹理信息,且缺陷的尺寸变换大,故多尺度多层次结合的特征对缺陷检测非常重要。

特征金字塔网络把ResNet50卷积的{Ck}层和上采样之后的{Pk}层进行相加,目的是把低层次高分辨率的信息和高层次强语义的信息结合起来,提高检测性能和小目标识别。此外,为了得到缺陷更准确的定位,引入了可变形卷积,使其可以根据缺陷的尺度和形状改变感受野和采样位置。

标准卷积操作为:在特征图上使用卷积核R进行采样,然后进行加权求和。对于特征图上的点p0,标准卷积公式为

(1)

式中:R定义了卷积核的大小,在3×3卷积核的R为 {(-1,-1), (-1,0), (-1,1), (0,-1), (0,0), (0,1), (1,-1), (1,0), (1,1)}。

在可变形卷积中,引入了偏移量Δpn,使采样位置变成了不规则位置,计算公式为

(2)

其中,Δpn通常为小数,具体实现时使用了双线性插值法。

可变形卷积在标准卷积中增加了二维的偏移量,使采样的感受野不再是规则的网格形状,如图7所示。可变形卷积可以自适应地学习感受野尺寸,更好提取输入的特征。相比于传统的固定尺寸的卷积核,变化适应性强,泛化能力强。

图7 3×3卷积与可变形卷积

2.3 基于无锚框关键点的检测模块

传统的基于锚框的方法需要计算锚框与边界框之间的IoU来获得正样本,检测时根据锚框进行边框回归,其性能很大程度上受限于锚框的预设。为了实现无锚框缺陷检测,并改善缺陷尺寸比例异常、矩形边界框和缺陷目标形态拟合程度低的问题,采用了基于关键点点集表示缺陷位置信息的方法。该方法通过使用可变形卷积,回归出多个目标点和中心点的偏移量,得到9个预测点,然后进行变换,生成预测矩形框,如图8所示。这种方法的优势在于能适应缺陷的形状,提供对缺陷检测更有用的图像特征。

图8 基于关键点的缺陷位置表示法

检测模块基于RepPoints Head[14],流程如图9所示。定位任务采用两次回归的方法,先将特征图上的点作为初始点,预测9个偏移量(Δx,Δy)参数,然后在这9个点的基础上进行调整改善,通过进一步卷积预测相对于第一阶段(Δx,Δy)的偏移量,得到最终的点集。两次回归逐步细化,得到更准确的目标定位。

图9 基于关键点的检测模块

为了检测完整的划痕缺陷,点集(pts)和矩形框(bbox)的变换方法选用Min-max策略。在点集上执行x、y两个轴上的Min-max操作以确定外接矩形框

(3)

回归损失函数采用SmoothL1 Loss,相比L1和L2 Loss具有更强的鲁棒性。SmoothL1 Loss计算预测框和grouth-truth之间的距离进行回归

L(x)=L(x1)+L(x2)

(4)

(5)

式中:x1和x2分别表示预测框和grouth-truth左上角的距离和右下角的距离。

分类损失函数采用Focal Loss[15],该损失函数基于交叉熵损失函数改进,降低了大量简单负样本在训练中所占的权重,旨在解决无锚框目标检测模型中正负样本比例严重失衡的问题。公式为

(6)

式中:γ因子取值为2,用来减小易分类样本的损失,使得更加关注困难样本的分类。α因子取值为0.25,用来平衡正负样本的比例不均。

2.4 随机遮挡数据增强方法

针对铝制工件内壁数据集,设计了一种随机遮挡数据增强方法以优化网络模型的训练。Cutout[16]随机选择一个固定大小的正方形区域对图像进行遮挡,在矩形范围内,所有的值都设置为0,或者其它纯色值。本文针对内壁图像不存在大面积的遮挡,背景干扰多为细长条纹理的特点,设计了一种基于cutout改进的数据增强方法,随机选择1~5个填充色为黑色的矩形,矩形尺寸从 {(10,60), (10,100), (10,200), (40,20), (100,100)} 中随机选择。

2.5 多任务学习

为了改善铝制工件内壁数据集小样本导致的模型优化问题,设计了一种多任务学习策略,如图10所示。将铝制工件内壁缺陷检测作为主任务、钢材表面缺陷检测作为辅助任务,采用底层网络参数共享的形式互相促进学习,然后通过各自的输出层学习独有特征,最后分别输出各自的检测结果。该方法有助于降低过拟合风险,因为模型学的任务越多,学习到包含所有任务的表征就越难,从而降低了过拟合某个任务的可能性,很好地提升了模型的性能。

图10 多任务学习

钢材表面缺陷选用东北大学公开的NEU-DET数据集[17],该数据集共有1800张图片,包含钢材表面6种缺陷:裂纹、夹杂物、斑块、麻点、滚压和划痕。该数据集在网上公开的缺陷数据集中质量较好,与本文的铝制工件内壁缺陷相关性高,故适合作为多任务学习策略中的辅助任务。

3 实 验

3.1 实验环境

本实验硬件配置为NVIDIA GEFORCE RTX 2080 Ti,Intel Core i9-9900K CPU @ 3.60 GHz。软件环境为Python 3.7和PyTorch 1.6.0。骨干网络ResNet50初始化采用ImageNet数据集上预训练的网络参数。初始学习率为0.0005,优化策略为随机梯度下降法,动量因子为0.9,权重衰减因子为0.0001,同时引入warmup策略,使学习率在初始的500次迭代中逐渐增加。batch size为4,训练了150个epoch。使用几何变换数据增强方法。使用非极大值抑制(non-maximum suppression,NMS)[18]方法去除冗余的检测框,IoU阈值为0.4。

3.2 评估指标

本实验用平均精度(average precision,AP)为评估指标。与图像分类任务不同,缺陷检测任务仅仅用精确度来评估性能是不合适的。精确度(Precision)和召回率(Recall)通常是此消彼长的关系。平均精度是这两个重要检测指标较为折中的指标,可以较为综合全面地评估缺陷检测网络的性能。其中,精确度是指识别正确的某类缺陷占被识别为该类缺陷的比例,召回率是指被识别出的某类正确缺陷占所有该类缺陷的比例。在本任务中,当预测框与ground-truths框的IoU不小于0.4时,则认为该预测框的定位正确。具体计算公式为

(7)

(8)

式中:TP为被识别出的某类缺陷数,FP为被误识别为某类缺陷的数量,FN为未被识别出的某类缺陷数。

根据精确度(P)和召回率(R)的关系计算AP,对于不同的置信度阈值,召回率和精确度会有所变化。把R和P分别作为横、纵坐标,可以得到一条P-R曲线,AP值为该曲线与横、纵坐标轴所围成区域的面积

(9)

3.3 结果分析与对比

图11显示了测试集检测结果的可视化图,输出结果的预测框上方显示有一个标签信息,包含预测的缺陷类型和预测置信度。从结果图可知,该检测系统很好地将划痕缺陷从铝制工件背景纹理中区分出来,污渍没有被误检为缺陷,错位的划痕也成功地被完整检测出。

图11 测试集图像的检测结果

将本文算法与其它主流目标检测算法YOLOv3[19]、SSD512[20]、CornerNet和FCOS作对比,检测结果见表2。YOLOv3和SSD512属于anchor-based方法,AP分别为69.2%和77.1%。后两者属于anchor-free方法,CornerNet是keypoint-based 算法的代表,核心思想是分别提取左上角和右下角点的特征并预测角点的位置,该方法AP为79.6%,召回率为97.7%。FCOS是pixel-wise算法的代表,核心思想是直接对目标框中每个像素点到目标框四边的距离进行回归定位,该方法AP达到85.1%,召回率达到98.9%。本文算法AFKPDD检测结果AP达到89.8%,召回率达到97.7%,AP在所有算法中达到最高。

表2 多种算法缺陷检测结果

为了验证本文所提出改进策略的有效性,进行了一系列的自对比实验,具体检测结果见表3。方法1采用基于关键点的检测模块,特征提取网络为单一的ResNet50。方法2采用多尺度特征提取网络,AP提升了5.4%。方法3使用了随机遮挡数据增强手段,使小样本训练性能得到提高。由于划痕较浅,边界不明显,划痕之间的语义特征十分相近,经实验验证,不适合多样本混合的数据增强方法。方法4在多尺度特征提取网络中加入可变形卷积,检测出的划痕更完整,定位更准确,AP提升了1.6%。方法5为完整的AFKPDD算法,相比方法4,增加了多任务学习策略,AP达到89.8%,辅助任务设置如下:对NEU-DET中裂纹、夹杂物、斑块、麻点和滚压5类钢材表面缺陷进行检测,所用样本数量与主任务的训练样本数相同。自对比实验结果表明,AFKPDD算法能有效提升缺陷检测网络的综合性能。

表3 自对比实验结果

为了验证提出模型的泛化能力,在数据集NEU-DET上进行了验证实验。表4比较了多种算法在NEU-DET数据集上的AP结果。其中,AFKPDD算法的多任务学习将铝制工件内壁缺陷检测设置为辅助任务。实验结果表明,本文提出的AFKPDD算法适用于NEU-DET数据集,裂纹、夹杂物、斑块、麻点、滚压和划痕的AP分别为69.7%、87.0%、96.4%、89.8%、75.8%和96.7%。NEU-DET数据集中的划痕检测AP结果高于本文铝制工件内壁数据集的原因主要有两点:一是NEU-DET样本数大于铝制工件内壁样本数;二是NEU-DET的划痕特征较为单一,受背景影响小。NEU-DET中的划痕类别的AP和6种缺陷的平均AP(mAP)在本文算法AFKPDD上表现最佳,分别为96.7%和84.9%,验证了本文模型针对细长划痕检测的适用性。

表4 各算法在NEU-DET上的检测结果

4 结束语

针对工件表面图像划痕缺陷尺寸比例异常、背景纹理复杂、矩形边界框与目标轮廓的契合度低等问题,提出了一种基于无锚框关键点的目标检测算法AFKPDD。设计了

多尺度特征提取模块,更充分地利用了不同层、不同分辨率特征的信息;在多尺度特征提取模块中加入可变形卷积,可以根据缺陷的尺度和形状改变感受野和采样位置;采用基于无锚框关键点的检测模块,以适应细长缺陷的形状,提取更有效的图像特征;设计了一种数据增强方法和多任务学习策略,提升了模型的整体性能。对工件内壁图像采集并制作成包含400张图片的铝制工件内壁数据集,AFKPDD算法在该数据集上的AP达到89.8%,优于其它目标检测算法。AFKPDD算法在NEU-DET数据集中的划痕检测结果AP达到96.7%。实验结果表明,本文算法能很好地实现工件表面划痕缺陷的检测,算法泛化性较强。

猜你喜欢

铝制内壁划痕
铝合金模板钢制锁条经济性研究分析
富马酸卢帕他定治疗皮肤划痕症的疗效观察
垣曲北白鹅墓地出土的青铜匽姬甗(M3:10)
手提包里的折叠滑板车
基于微观划痕的疲劳强度预测
膀胱内壁子宫内膜异位1例
气化炉激冷室内壁堆焊工艺技术
冰上芭蕾等
集流管内壁冲压模具设计