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

2021-11-10 12:28黄荣锐王吉芳孙巍伟
关键词:铝型材卷积精度

黄荣锐,王吉芳,邓 张,孙巍伟

(北京信息科技大学 机电工程学院,北京 100192)

0 引言

铝型材是日常生活和工业生产中应用非常广泛的金属制品[1]。受生产工艺的限制,铝型材表面经常会出现各种缺陷,这些缺陷影响产品的外观、性能及使用寿命。传统的金属制品表面缺陷识别方法一般采用肉眼观察,速度慢、精度低,导致在实际生产中成本增加,影响企业经济效益[2]。

随着科学技术的发展,出现了基于机器视觉的缺陷检测方法。传统的基于机器视觉的表面缺陷检测方法往往采用常规图像处理算法或人工设计特征加分类器方式。例如针对被检产品的表面颜色选择光源[3]或者依据被检测产品表面反射性质选择不同成像方案,主要包括明场成像、暗场成像和混合成像等[4]。然而,上述产品表面缺陷检测方法需要针对不同的材料和特征提前设计方案,通用性差且检测系统成本较高,实际生产中往往很难达到机器视觉缺陷检测系统所需的理想环境,导致检测效率和检测质量无法得到保证。缺陷与背景的对比度低,差异像素较小,单个产品包含多个缺陷且尺度差异大,都将导致经典方法的效果大大降低。近年来,以卷积神经网络(convolutional neural networks,CNN)为代表的深度学习快速发展,深度学习具有自主学习的特性,使得它在机器视觉的多个领域广泛应用,同时也为铝型材的表面缺陷检测提供了思路。Ross Girshick等[5]基于CNN设计了R-CNN(region-CNN)模型,通过选择性搜索来确定候选框,将深度学习应用于目标检测上。何凯明等[6]提出了SPPNet(spatial pyramid pooling network,空间金字塔池化网络)模型,使得特征提取的速度得到了极大的提高,并在此基础上提出Fast R-CNN[7]模型。为了突破候选区域算法的时间瓶颈,Ross B.Girshick[8]等提出了Faster R-CNN模型。为了进一步提高网络的检测速度,Redmon等[9]推出了基于one-stage的YOLO模型,区别于基于候选区域的two-stage目标检测模型,可以免去候选框提取的步骤,直接在特征图上采取回归方法。

YOLO相较于Faster R-CNN效率更高,检测速度更快,但是在对不同大小的目标进行检测的过程中,由于YOLO每个网格单元只能回归同一种类的两个边界框,导致其对小目标的检测精度远低于Faster R-CNN算法。实际生产中的铝型材缺陷种类繁多,缺陷生成无规则、可预见性差。针对铝型材产品表面缺陷的特点,本文采用了检测精度更高的Faster R-CNN算法进行改进。

在Faster R-CNN中,网络仅仅利用了最后一层的特征图(Feature MAP)进行缺陷定位,该特征图的语义信息强但丢失了太多有关缺陷目标的细节信息,导致对目标的大小和位置敏感度更低,难以适应铝型材多尺度和形状的缺陷检测需要,尤其是在高像素图片下,卷积下采样过程导致小像素特征丧失判别力,传统正方形卷积对长条形缺陷识别能力差,速度慢。为此,本文提出了一种基于Faster R-CNN的改进算法,大幅提高了铝型材产品表面缺陷的检测精度。

1 基于Faster R-CNN的改进算法

1.1 特征金字塔网络

针对本文研究的铝型材产品表面缺陷,把实验将要用到的数据集的产品表面缺陷做了统计,如图1、图2所示。

图1 缺陷种类及数量统计

图2 选框面积及数量统计

从图中可以看出铝型材产品表面缺陷的种类及缺陷的大小分布无规律,各种数量差异大。原Faster R-CNN仅使用主干网络的最后一层特征层用于预测,无法兼顾大小形状不一的缺陷,尤其对小像素缺陷检测能力差。为了解决这个问题,本文在主干网络和ROI Pooling(region of interest pooling,感兴趣区域池化)阶段引入了特征金字塔结构(feature pyramid networks,FPN)对算法进行改进。下面首先介绍主干网络和ROI Pooling阶段。

Faster R-CNN采用VGG16或者ResNet作为主干神经网络模型(Backbone)进行图片的特征提取。相较于仅有16层网络深度的VGG16,ResNet凭借其特有的“短接”形式将网络层次大大地提高了。随着网络层次的加深,获得的特征极为丰富。

为了兼顾检测精度与检测速度,通过实验对比,本文采用ResNet101作为主干提取网络,其结构如表1所示,共有5个卷积块,2~5层的大核都包括3个小卷积核模板并按照数量重复,第一层只有1个卷积核。相邻大的卷积层之间有一条“捷径”。网络共有101层,故而称为ResNet101。

表1 特征提取网络结构

采用ResNet101作为主干提取网络的Faster R-CNN结构如图3所示。

图3 使用ResNet101的Faster R-CNN结构

ROI Pooling即对ROI(region of interest,感兴趣区域)进行池化操作,实现将不同尺度的ROI池化为固定的尺度以满足全连接层的输入需求。

分类部分利用已经获得的proposal feature MAPs,通过全连接层与逻辑回归函数Softmax计算每个区域提议(proposal)具体属于哪一种缺陷类别,输出概率向量;同时再次利用边界框回归(bounding box regression)获得每个proposal的位置偏移量,用于回归更加精确的目标检测框。回归、分类网络结构如图4所示。

图4 分类、回归网络

考虑到本文采用的样本本身分辨率较高,为了减少卷积神经网络的开销造成的计算量,在综合考虑效率问题的基础上,在进行卷积运算的过程将图片先缩小一半再作为输入放入网络之中。

在卷积过程中,通过下采样的过程,提取的特征图像素仅有原图片的1/16。主干网络输出的特征图大小为原图的1/32。通过统计得到,在数据集中边长小于等于64的样本占17.23%,小于等于32的样本占9.32%,小像素(如图5)缺陷较大的比例将严重影响最终模型的性能。

图5 小像素缺陷展示

为了提高小像素的检测精度,本文采用了特征金字塔结构来对网络进行改进。特征金字塔在针对铝型材数据集中具有两个优点:第一,低层的特征经过卷积、上采样操作之后和高层的信息进行融合,在卷积神经网络中,输出的特征具有强的语义信息,低层的特征具有结构信息,因此将高低层的信息进行结合,增强特征的表达能力。第二,将候选框生成和特征提取的位置分散到了特征金字塔的每一层,这样可以增加小目标的特征映射分辨率,提高检测能力。Faster R-CNN结合FPN的整体结构如图6所示。

图6 特征金字塔改进结构

1.2 Softer-NMS

Faster R-CNN在RPN阶段生成大量锚点和预测框,其中包含大量冗余的预测框,在Faster R-CNN中通过NMS的方式将冗余预测框剔除。然而因为NMS会将相邻的重叠阈值过大的预测框直接删除,导致部分包含待检测目标的选框丢失,影响检测精度;其次,NMS的阈值大小对检测精度影响大,过大易导致误检测,过小又容易误删除目标。

由于本文研究的铝型材产品表面缺陷出现的位置和形状随机性强,但是数据集标记用的选框又是水平竖直方向的,人工标定的真实框内也包含了大量背景,因此生成预测框阶段容易出现大量重叠的预测框。NMS的处理虽然能够将得分较高的选框筛选出来,然而同时也丢失了很多包含目标的正确选框,影响检测的精度。

如图7所示,铝型材缺陷既存在图7(a)这样大致方向水平、选框可以较好地框选的缺陷,也存在图7(b)这样旋转、弯曲的缺陷,此时选框内除了目标外还存在大量无缺陷区域。针对铝型材产品表面缺陷的特点,本文提出使用改进算法Softer-NMS取代NMS。

图7 水平目标及不规则目标对比

Softer-NMS通过预测标注方差范围内的预测框加权平均,提高了定位精度。其网络结构改进如图8所示,它和Fast R-CNN相比加入了AbsVal(absolute value layer)实现对真实框标注方差的预测。

图8 Fast R-CNN及Softer-NMS改进框架

1.3 可变形卷积网络

铝材的瑕疵有很多是条状的,传统正规的正方形卷积对这种特定形状的缺陷处理能力较弱。针对这个问题本文加入了可变形卷积(deformable convolutional networks,DCN)来处理数据,可变形卷积在计算的过程中能够自动地计算每个点的偏移,从最合适的地方提取特征进行卷积运算。

如图9所示,本文将ResNet结构中的最后一个block改成了可变卷积。在特征提取网络已学习了大量特征的情况下可以保证可变卷积偏移过程的质量。

图9 可变形卷积改进结构

1.4 候选框调整优化算法

Faster R-CNN先在RPN阶段生成候选框,在最后回归时精调候选框。RPN阶段生成的候选框有偏大或者偏小的情况,其调整的方法是根据框内部的信息来推断框的位置。如图10所示,(a)是建议框偏大的情况,根据内部信息可以判断应该缩小选框,但是(b)建议框偏小,在仅有框内信息的情况下难以调整至准确大小。

图10 选框调整

本文将整张图片作为特征输入池化层,送给这个候选框当特征,选框获得了完整的特征信息,以此增强了调整选框的准确度。结构改动如图11所示。

图11 候选框调整优化改进结构

2 实验结果及分析

2.1 实验数据准备

本文采用天池—铝型材数据集,该数据集采样于佛山某铝型材企业实际生产中有瑕疵的铝型材监测影像数据。数据集包含10种铝型材的表面缺陷,即不导电、擦花、角位漏底、桔皮、漏底、喷流、漆泡、起坑、杂色、脏点,缺陷样本包括单缺陷及多缺陷样本共3 005张,具体数量如图12所示。加上1 351张无缺陷的样本,共计有4 356张,全是2 560×1 920分辨率的彩色图像。每张缺陷图配有一个标注缺陷框的标签文件。

图12 缺陷数量及种类

在卷积神经网络的训练中,数据集越大,就能提供更多特征用于训练,可以提高模型的鲁棒性,数据集大小是影响最终模型性能的关键因素。因此在训练前还对数据集进行了增强,包括图像的水平竖直翻转,增强后数据集数量增加到13 068张。

为了评估本文改进算法的效果,使用平均精度(MAP)作为检测效果的评价指标。评价过程将人工标注的边界框与检测到的选框进行比较,并返回分数。分数越高,模型的检测就越准确。

根据国际通用的COCO检测标准,认为交并比(intersection over union,IoU)大于0.5为正确检测到目标,同一类别每张图片检测准确率的均值为AP (average precision),MAP (mean average precision)指的是所有缺陷类型AP的平均值。APs指仅评价检测目标像素小于32×32的准确率。

2.2 不同算法实验结果对比

将增强之后的数据集用于实验之中,分别进行了各种主流算法以及Faster R-CNN算法的各项改进算法对铝型材数据集的检测精度,得到以下实验结果。

不同算法缺陷检测结果如表2所示。

表2 不同算法缺陷检测结果对比

从表2中可以看出,在几种单阶段目标检测算法中,采用多尺度检测的SSD512可以达到73.48%的MAP,但是其检测精度和速度都不如YOLOv4。SSD300虽然在检测速度上有优势,但是检测精度和其他算法比落后较多,无法满足检测需求。而经过本文改进的采用two-stage的Faster R-CNN虽然在检测速度上落后单阶段的各种算法较多,但是在检测精度上有着较大的领先,更符合生产需求。

改进Faster R-CNN算法和YOLOv4算法检测的MAP对比如表3所示。

表3 改进Faster R-CNN及YOLOv4检测MAP对比

从表3可以看出,相较于YOLOv4,改进Faster R-CNN主要在脏点、擦花这类小像素缺陷上有着较大的优势。综合实际生产需求,虽然改进Faster R-CNN检测时间跟其他算法相比较慢,但和人工检测相比,仍然提供了可观的检测速度。

基于Faster R-CNN的不同算法检测结果对比如表4所示。

表4 不同算法缺陷检测结果对比

根据表4的数据,采用ResNet101作为主干网络比ResNet50检测效果提高了5.69%,说明采用更深层次的特征提取网络可以获得更丰富的特征信息,提高模型性能。但是ResNet152相较于ResNet101却并没有提高,可以看出,此时更深的网络深度对准确率的影响已经趋于平缓,多次实验得到的平均结果基本和ResNet101持平,可以视作实验误差。在MAP没有提高的基础上计算量却大幅增加,故而本文采用ResNet101作为主干网络,并对其进行改进。本文采用的几项改进针对性强,每次改进MAP均有一定的提升,最终网络结构MAP较原网络提高7.69%,检测效果有了较大提升。

对于不同缺陷类别原算法与改进算法检测MAP对比如表5所示。

表5 原算法与改进算法MAP对比

如表5所示,改进算法对所有种类缺陷检测精度都有不同幅度的提高,尤其在小像素缺陷(脏点、漆泡)得到了较大的提升,分别提高了31%和35.52%,提升幅度可观,能更好地满足铝型材表面缺陷检测需求。

3 结束语

本文针对铝型材表面缺陷目标尺度变化大、形状不规则、小像素目标数量多的特点,通过加入FPN加强了检测算法的特征表达能力,提高了检测精度;通过Softer-NMS对边框的再调整,大幅提高预测框回归的准确率;通过DCN的加入优化了检测框的精度。在对普通尺寸像素缺陷(除脏点、漆泡外)的检测中平均精度达94%,同时大幅提升了小像素检测精度,最终在IoU为0.5的标准下得到了86.81%的MAP以及4.3帧/s的检测速度。面对实际生产的缺陷检测能力强,能满足铝型材表面缺陷检测需求。

猜你喜欢
铝型材卷积精度
基于不同快速星历的GAMIT解算精度分析
数字化无模铸造五轴精密成形机精度检验项目分析与研究
基于全卷积神经网络的猪背膘厚快速准确测定
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
以工匠精神凸显“中国精度”
铝型材拉弯成型过程中常见问题及处理
浅谈ProENGINEER精度设置及应用