彭伟康, 陈爱军, 吴东明, 朱利森
(1. 中国计量大学计量测试工程学院,浙江 杭州 310018; 2. 东精集团有限公司,浙江 金华 321015)
水平尺是一种用于对物体或平面进行水平度或垂直度检测的计量器具。气泡水平尺由于其成本低、体积小、重量轻、操作简单等优点使用最为广泛。气泡水平尺最核心的部件是水准泡,水准泡中的气泡与参考刻线之间的偏移程度可以衡量物体或平面的水平度和垂直度。水准泡的质量决定了水平尺的精准性和稳定性,因此在水准泡生产完成后对其进行质量检测尤为重要。
国内水平尺生产厂家大多采用人工的方式对水准泡进行缺陷检测,受到光线、人眼疲劳等因素的影响,人工检测方式的正确率和检测效率都非常有限。而采用计算机视觉检测的方法能有效地克服这些缺点。目前水平尺工业检测多采用的是边缘检测和轮廓跟踪等图像处理方法。魏煜等[1]采用最优阈值变换和轮廓跟踪的方法实现了水准泡气泡的精准检测。盛伟等[2]引入了Canny边缘提取时自适应选取阈值的方法,并结合二分搜索算法和加权最小二乘法,设计了一种鲁棒性较强的水准泡气泡端点定位方法。喻婷等[3]利用模糊最小化形态学梯度得到水准泡气泡的边缘信息,根据气泡边缘图像的灰度剖面特性得到参考刻线位置,结合目标邻域法搜索气泡端点,提出了一种快速准确的气泡水平尺偏移量计算方法。此类方法实现了工装于水平尺中水准泡气泡和刻线目标的检测,而水准泡生产过程产生的缺陷,根据产生原因不同产生的缺陷类别不同,且同种缺陷的形态也不相同,上述方法均无法满足水准泡缺陷检测这样种类和形态多样的情况。
近年来,伴随着GPU性能的不断提升,深度学习发展迅速。其通过采用神经网络自动对特征进行提取,能够挖掘出所需检测目标的深层次特征,具有强大的泛化能力,已经在工业缺陷检测领域有了广泛的应用。王庆等[4]采用深度残差网络(deep residual network, ResNet)代替 Faster R-CNN 网络中的特征提取层进行模拟计算,有效提高了排水管道缺陷检测的识别正确率,均值平均精度(mean average precision,mAP)达到了 89%,鉴于 ResNet的优点,本文将其应用到水准泡缺陷检测方法中。徐守坤等[5]提出了一种基于改进的 Faster R-CNN和多部件结合的安全帽佩戴检测方法,运用多尺度训练和增加锚点数量,并引入防止正负样本不均衡的在线困难样本挖掘策略,有效增强了不同尺寸目标检测的鲁棒性,mAP达到94.23%。王超洋等[6]提出了一种基于融合FPN结构的Faster RCNN配网架空线路异常状态检测系统,mAP达到了94.8%。
目标检测网络模型主要分为两类,一类是基于区域的 two-stage 模型,如 R-CNN[7],Fast R-CNN[8],Faster R-CNN[9]等,该类方法精测精度较高但速度较慢;另一类是基于回归的one-stage模型,如YOLO[10]、SSD[11]等,该类方法检测速度较快但检测精度较低,且对小目标物体检测效果较差。而水平尺水准泡缺陷目标大小和形态多样,且采用工业流水线触发式采集得到图像后进行检测,对实时性要求不高。Faster R-CNN 采用区域提案网络(region proposal network,RPN)提取特征,将特征提取、候选区域提取、位置精修、目标分类整合到一个深度网络框架中,实现了端到端的目标检测,检测精度相较其他网络都要高。因此,本文采用Faster R-CNN网络作为水准泡缺陷检测的基础框架。
针对水准泡不同缺陷大小和形态多样的问题,本文提出一种基于改进Faster R-CNN的水准泡缺陷检测方法。
Faster R-CNN 使用了 RPN 网络来代替 Fast RCNN中的Selective Search选择性搜索方法,并与整个网络共享卷积特征,减少了模型参数和训练时间。Faster R-CNN网络模型主要由4部分组成:特征提取、候选区域生成、感兴趣区域池化、分类和回归。网络模型结构如图1所示。首先,将水准泡图像进行归一化后输入特征提取网络进行特征提取。然后,提取得到的Feature Maps传入候选区域生成网络,生成一系列前景和背景候选区域。再经过ROI Pooling层后得到大小相同的候选区域特征图,最后进行分类和边界框回归。
图1 Faster R-CNN模型结构
RPN网络是Faster R-CNN模型的核心,其是全卷积网络,输入为共享的卷积特征图,经过端到端的训练可以生成目标候选框。RPN网络结构如图2所示。RPN网络采用了滑动窗口和锚点机制,每一个滑窗都会通过中间层生成256维特征,滑窗中心的锚点生成k个锚框。生成的256维特征再分别经过全连接层,结合生成的锚框进行类别的判断和位置的回归。分类层得到前景和背景的得分,回归层得到目标框对于原图坐标的偏移,故对于k个锚框,分类层输出2k个得分,回归层输出4k个参数化坐标。汇总分类层和回归层的结果后进行后处理,先对越界候选框的剔除,再根据分类得分通过非极大值抑制来对重叠候选框进行筛除,最后对候选框进行偏移可以得到目标候选框。
图2 RPN网络结构
本文提出了一种基于改进Faster R-CNN的水准泡缺陷检测方法。该方法采用ResNet[12]替代VGGNet进行图像特征提取,并针对水准泡样本目标特征来设计RPN锚框,同时在特征提取网络和RPN网络中间引入递归特征金字塔[13]来增强模型多尺度检测能力,提高不同尺度水准泡缺陷的检测精度。
原Faster R-CNN模型采用vgg16作为特征提取网络,作为经典的卷积神经网络VGGNet广泛应用于目标检测领域进行特征提取,通常增加网络的层数可以增加非线性表达能力,学习到更深层的特征,但随着层数增加到一定程度,网络性能反而会变差,出现网络退化问题。
深度残差网络基于VGGNet进行了修改,通过短路机制加入了残差单元,使网络可以进行两层到三层间的残差学习,很好的解决了网络退化问题。ResNet中采用了两种残差单元,图3(a)为基本残差单元,包含两个64通道的3×3卷积且输入输出通道数均为64,可直接相加,主要用于相对浅层的网络,图3(b)为针对深度网络的残差单元,通过一个1×1卷积进行了降维,最后通过256通道的1×1卷积恢复,可以有效减少参数量和计算量。对于短路连接,当输入输出的维度一致时,可直接将输入加到输出上,但当维度不一致时(维度增加一倍),需要使用1×1卷积来调整输入通道维度,使其可以相加。改进的Faster R-CNN模型采用ResNet作为特征提取网络,深层的网络可以学习到更复杂的特征,且当网络达到最优时,短路机制确保网络更深层的部分仅为恒等映射,使网络性能不会随深度增加而降低。
图3 残差单元
RPN采用了锚点(anchor)机制,对于共享特征图上每个滑窗都会生成一组锚框,锚框的设计直接影响候选框的生成。原始的Faster R-CNN对于每个滑动窗口生成3种长宽比和3种缩放尺度的9个锚框,但是默认的锚框参数很难覆盖水准泡目标真值框范围。因此,本文根据水准泡数据集中标注目标的尺寸参数来设计锚框,数据集中标注的检测框宽度和宽高比统计情况如图4所示。由于长宽比分布较为离散,不利于锚框参数设置取值,进一步对长宽比进行量化统计,统计结果如图5所示。
图4 数据集中标注的检测框宽度和长宽比统计图
图5 数据集中标注的检测框长宽比量化统计图
根据图4和图5,本文锚框参数设置如表1所示。根据设置参数生成锚框时,先保持锚框的面积不变,改变宽高比,再保持宽高比不变,改变缩放尺度,最终可生成数量为33的一组锚框。
表1 锚框参数
原Faster R-CNN模型采用顶层特征进行预测,顶层特征含有丰富的语义信息,但相对于底层特征,其丧失了许多细节信息,不利于水平尺水准泡划痕、破损等小目标对象的检测且定位信息相对粗略。
目标检测领域常使用特征金字塔网络(feature pyramid networks,FPN)[14]来提取多尺度特征信息并进行融合,进而提高目标检测的精度。FPN网络结构分为自底向上和自顶向下两个部分,结构示意图如图6(a)所示,FPN先自下向上通过卷积网络对水准泡图像进行特征提取得到深层特征图,再自上向下对深层的特征进行层层的上采样,并采用横向连接的方法将两过程中各层生成的大小相同的特征图进行融合,然后在各个融合层中进行独立预测,实现目标的多尺度检测。FPN可以有效提高对水准泡划痕、破损等小目标对象的检测效果,但单次的上采样融合特征过程,只提升了小尺寸目标检测的精度,对于大尺寸目标检测的精度没有明显的提升,且在逐级上采样与低层特征融合的过程中,会产生一定的多层特征冗余,这对于水准泡划痕、破损等小目标缺陷检测是不利的。
图6 特征金字塔结构
递归特征金字塔在FPN的基础上增加了反馈连接,通过将FPN上采样融合特征重复连入自下向上的主干网络进行递归可以有效地增强FPN的特征表示能力,其网络结构如图6(b)所示。将RFP展开为顺序网络,如图7所示,RFP采用空洞空间金字塔池化(atrous spatial pyramid pooling,ASPP)来实现反馈连接,并对相邻次的递归特征通过融合模块(Fusion)进行融合。ASPP作为连接模块,结构如图8所示,其有4个平行的分支,其中一个分支使用全局平均池化层来压缩特征,再通过1×1卷积将压缩特征转换成通道数为输入特征1/4的特征,另外3个分支通过空洞卷积输出通道数同样为输入特征1/4的特征,3个分支里空洞卷积层的内核大小为[1,3,3],空洞率为[1,3,6],然后对4个分支的输出
图7 RFP展开顺序网络
图8 ASPP结构
特征进行连接后得到和输入特征大小相同的特征图。融合模块结构如图9所示,其以当前次得到的特征Fi和下一次递归计算得到的特征Fi+1作为输入,通过一个卷积层和sigmoid操作计算特征Fi+1的权重,然后根据得到的权重计算Fi和Fi+1的加权和作为输出。改进的Faster R-CNN模型融合递归特征金字塔网络,通过反馈连接的方式将水准泡缺陷检测的错误信息回传来调整主干网络参数,使主干网络再训练得到的特征可以更好地适应水准泡缺陷检测任务,并且采用空洞空间金字塔池化的方式进行特征连接可以有效增加获得特征的感受野范围,进一步增强模型对于不同尺度水准泡缺陷目标的检测能力。
图9 融合模块结构
本实验在 Windows 10×64系统下进行,利用Google公司tensorflow深度学习框架在NVIDIA GTX1050Ti GPU硬件平台上进行训练。设置超参数批尺寸为1,学习率为0.001,权值衰减系数为0.0001,采用Momentum动量梯度下降方法,设置初始动量为0.9。
本文数据集图像采集设备为Basler acA1600-20gm工业相机,采用 Computar M7528-MP镜头,镜头到水准泡高度36 mm,可达到视场宽度35 mm,水准泡工件宽度约为30 mm,采集时采用lemons HF-HX12050R红色环形光源辅助照明。水准泡气泡、刻线和缺陷数据集中含有6种检测目标,分为两类固有组成检测目标(气泡类和刻线类)和47类缺陷检测目标(破损类、划痕类、熔花类和塞斜类)。数据集包含1200张图像,使用LabelImg软件对数据集中所有图像包含的六类检测目标进行标注,并按7∶1∶2的比例将数据集分为训练集、验证集和测试集。图10展示了本文数据集中的部分图像,图10(a)为有破损缺陷的水准泡图像,图10(b)为有划痕缺陷的水准泡图像,图10(c)为有熔花缺陷的水准泡图像,图10(d)为有塞斜缺陷的水准泡图像。
图10 数据集部分图像
为验证本文模型的性能,模型训练结束后,对测试集的240幅水准泡图像进行检测。并选用平均值准确度(mAP)作为评价指标,mAP是所有检测目标类别的平均精度(average precision,AP)的均值,能综合考虑召回率和查准率的影响,其公式为:
其中,c为检测类别数,AP是以召回率(recall)为横轴,查准率(precision)为纵轴得到的PR曲线上precision的均值,其计算公式为:
其中,P(R)是precision关于recall的PR曲线函数,TP为正样本被正确预测为正样本的数量,FP为负样本被错误预测为正样本的数量,FN为正样本被错误预测为负样本的数量。
本文使用ResNet作为特征提取网络,为验证ResNet性能并确定合适的网络层数,分别采用ResNet50、ResNet101、ResNet152和原模型使用的vgg16作为特征提取网络进行训练,得到检测结果如表2所示。
表2 不同特征提取网络对模型检测结果的影响
从表2可以看出,ResNet有效提高了模型的检测精度,其中采用ResNet101的模型的检测精度最高,表明ResNet101较适合水准泡缺陷检测任务。相比于vgg16,模型采用ResNet101作为特征提取网络后,对于刻线目标的检测精度提高了7.1%,对于破损目标的检测精度提高了5.0%,对于熔花目标的检测精度提高了9.7%,对于气泡和塞斜目标的检测精度分别达到了99.9%和100%,而对于划痕目标的检测精度没有明显提升。
为了验证融合RFP网络后模型对水准泡缺陷目标检测的有效性,本文采用ResNet101作为特征提取网络,将融合RFP网络后的模型、融合FPN网络后的模型和未融合金字塔网络的模型在测试集上的检测效果进行对比,得到结果如表3所示。
表3 RFP对模型检测结果的影响
从表3可以看出,融合RFP网络后模型的mAP较未融合多尺度网络模型和融合FPN网络模型分别提高了2.2%和1.4%,其中划痕缺陷的检测精度得到了明显的提高,说明模型通过RFP网络可以有效地强化对于小目标缺陷的敏感度,提高检测精度。结合表2,采用ResNet101并融合RFP的改进Faster R-CNN模型相比采用vgg16的原Faster R-CNN模型的mAP提升了6.3%,有效提高了检测精度。图11为采用本文模型对水准泡样本进行缺陷检测的检测结果示例图,图中红框为带有类别和概率信息的检测结果框,可以看到气泡、刻线和各类缺陷目标均能被准确检测。
图11 检测结果示例
本文提出了一种基于融合RFP的Faster R-CNN水准泡缺陷检测方法。针对水准泡的缺陷检测,本文提出的改进模型采用ResNet101作为特征提取网络,根据水准泡缺陷特点设计anchor方案,通过递归方式强化特征金字塔的多尺度特征输出,并通过空洞空间金字塔池化进行递归特征连接进一步增强模型多尺度检测性能,有效提高了模型的检测精度。在水准泡缺陷数据集上的实验证明,融合RFP的Faster R-CNN改进模型的mAP达96.7%,相比采用 vgg16的原Faster R-CNN模型提升6.3%,有效地提升了检测性能。本文提出的水准泡缺陷检测方法对企业工业缺陷自动化检测有一定的借鉴意义,对推动我国工业生产方式变革有一定帮助。