李文静,石义官,徐 亮
(1.重庆水利电力职业技术学院智能制造学院, 重庆 402160;2.中国兵器装备集团自动化研究所, 四川 绵阳 621000)
底火作为枪弹中的重要部件,其装配质量直接影响着武器装配的战技指标。底火装配过程中存在一定的未知因素可能造成底火装配缺陷的制品,主要表现为底火擦痕、无底火、烂底火、底火压痕(凹痕)、横底火、反底火等。一直以来,枪弹装配质量的检测多采用人工方式进行,其生产效率低,劳动强度大,生产质量受人为影响因素较大。随着枪弹生产效率的提高[1]和在线检测质量可追溯,现有的检测方式不能满足装配质量的自动化、高效在线检测的要求。
机器视觉技术已被广泛应用于现代工业生产中,国内早在2009年就由许运来[2]提出了采用基于CCD和图像处理的方式检测枪弹的圆柱外表面质量检测。近年来,孙文缎[3-4]提出了基于线阵相机采集的枪弹表面质量检测技术,利用图像处理枪弹表面缺陷进行分类检测。苟文韬等[5]设计了一套完整的缺陷分割及缺陷分类的枪弹外观质量检测解决方案。近年来,深度学习在缺陷检测领域也有迅猛的发展,李雪莹等[6]提出了采用基于gcForest机器学习算法的弹壳检测系统,实现了尺寸测量和表面缺陷分类,实现了正确率为96.1%的损伤分类。利照坚等[7]提出基于改进卷积神经网络和Faster RCNN网络相结合的方法实现子弹缺陷检测,使得准确率、召回率和mAP达90%。然而,目前的研究主要集中在枪弹表面及外观缺陷的检测,而对于枪弹底火缺陷检测的研究基本空白。
本文针对枪弹底火装配质量的自动化、高线和在线检测的需求,提出了采用Mask R-CNN的枪弹底火装配质量检测系统,用于检测底火装配后的质量问题(如漏装、反装、划伤等)。
该检测系统主要由设备运行系统、数据交换、图像检测系统构成,如图1所示为系统组成结构。设备运行系统由控制器PLC、传感器、电机气缸、转盘支架等组成,主要完成综合管理设备的正常运转、与图像检测系统的数据交换、并对不合格产品进行剔废。数据交换系统采用以太网链接,进行信号触发及结果处理。图像检测系统主要由工控机、摄像头及光源组成,主要是对枪弹底火部位进行拍照及处理。对于该检测系统,摄像机的拍摄效果直接关系到机器视觉识别算法的设计及检测的准确度,因此摄像机的选择至关重要,本文选择工业CCD相机技术参数如表1所示。摄像头位于子弹转盘的正上方,光源位于转盘与摄像头的正中间,确保为待检枪弹底火提供充足的光照,如图2所示为系统硬件结构实物。
该检测系统的工作流程如图3所示,上料机构将子弹传送到转盘上,转盘运送子弹进入底火检测系统工位。当子弹到达相机位置时,PLC将触发CCD相机进行枪弹底火图像采集,相机安装如图2所示。CCD相机经光电传感器及模数转换等图像采集模块将二进制信号送到上位机中。上位机中的图像处理模块采用基于Mask R-CNN的识别算法对底火质量进行自动检测,判断产品OK与NG。如果检测到存在缺陷,将信号通过数据交换接口输送到设备运行PLC,由运行PLC做出相应剔废动作。
图1 系统组成结构框图
技术参数参数值感光芯片IMX264靶面尺寸2/3″、1/4″、1/1.8″感光芯片尺寸最大8.4 mm×7.1 mm水平/垂直分辨率最大2 448px×2 048px分辨率最大6 MP帧速率23 fps以上像素位深10 or 12 bits
图2 图像采集系统硬件结构实物
图3 系统工作流程图
Mask R-CNN是一种基于深度学习的图像实例分割算法,可对物体进行目标检测和像素级分割,完成物体的图像分割、特征点定位和类别检测等。Mask R-CNN结合Faster R-CNN与全卷积神经网络( Fully convolutional networks,FCN)算法分别进行目标定位与分割[8]。Mask R-CNN的网络结构图如图4所示,主要包括特征提取层、区域建议网络(Region proposal network,RPN) 、ROIAlign层以及全连接层。Mask R-CNN算法首先采用特征金字塔网络(Feature Pyramid Network,FPN)对目标图像进行特征提取并生成多尺度特征图(Feature Map)。区域建议网络(RPN)找出图像中的候选区域( Region of interest,ROI),将得到的候选区域映射到特征图后传入ROIAlign层,ROIAlign层进一步对特征图进行像素校正得到固定维度的特征向量,然后将特征向量传入全连接层来预测不同实例所属分类,最终得到兴趣目标实例分割结果。同时,在ROI Align层后添加了一个掩码分支(Mask branch),生成目标图像的分割掩码。
图4 Mask R-CNN网络结构框图
1) Faster R-CNN
Ross B.Girshick在2016年提出的Faster R-CNN检测器,主要由区域建议网络(RPN)和Fast R-CNN组成。Mask R-CNN使用特征金字塔网络(FPN)+ResNet101进行特征提取,将提取的特征图输入RPN中,RPN主要用于寻找可能包含目标物体的最接近真实框的候选框,使得网络进一步接近实时检测。为了获得精准的目标位置,通过Fast R-CNN预测判断RPN生成的每个建议区域的分类概率,从而优化RPN的建议区域的偏移量。
2) ROI Align
获取到候选区域之后,需要将其转化为固定维度的特征向量,以便后续的分类和边界框回归。Mask R-CNN中使用ROI Align方法。ROI Align层主要通过双线性内插的方法计算像素点上的像素值,将特征聚集的过程转换为连续过程,遍历各个候选区域并保存浮点数边界,取消了量化操作过程,提高了算法检测分割时的精度。
双线性插值方法保证了池化过程中像素输入前后的对应关系,回传过程中,采用如下公式进行反向传播[9]:
(1)
其中:xi表示的是池化前特征图上的像素点;yrj为池化后第r个区域中第j个坐标点;i(r,j)代表点yrj对应的原图像像素点坐标;Δh与Δw分别表示横纵坐标的梯度[10]。
3) FCN
FCN网络用于预测分割,它的工作原理的是利用反卷积对最后一个卷积层的特征图进行上采样以不断扩大特征图,使它恢复到与输入图像相同的尺寸,并对每个像素值进行分类,从而实现输入图像的准确分割。Faster R-CNN为每个候选对象ROI提供了两个输出,边界框偏移量(Box Regression)和类标签(Classification),Mask R-CNN算法并行添加了一个用于预测分割的掩码层(Mask Branch),Mask Branch分支是应用到每一个 ROI 上的一个小的 FCN,用FCN从每一个ROI中预测出一个m×m大小的mask[10]。
文中选用101层的深度残差网络ResNet101作为特征提取层的基础网络,模型超参数的设置与Faster R-CNN 基本一致[11]。网络中每个样本ROI的损失函数L为
L=Lbox+Lcls+Lmask
(2)
其中:Lbox为边框损失函数;Lcls为分类损失误差;Lmask为掩膜损失函数。
其中,边框损失函数如式(3)所示,
(3)
(4)
分类层是用于分类,输出k+1维数组p,表示属于k类的背景和概率。对于每个ROI输出离散型概率分布p=(p0,p1,…,pk),通常p由k+1类的全连接层利用softmax计算得出[12]。Lcls由真实分类u对应的概率决定:
Lcls(p,u)=-logpu
(5)
Lmask表示平均二进制交叉熵损失函数如式(6)所示,
(6)
本实验的训练与验证均基于TensorFlow框架,系统运行环境为Ubuntu16.04,训练阶段 GPU:1080Ti、8G 内存,通过Pyhon语言实现编程操作。
使用 Mask R-CNN 对底火缺陷进行识别时,首先需要对底火图像进行标注。目前,枪弹底火缺陷图像并没有像Image Net,MNIST手写体数字识别等项目具有公共的图像库[15],本文的数据集主要通过CCD相机拍摄来自枪弹生产流水线,在数据集建立的过程中,采集了枪弹不同形态、不同位置、不同角度的缺陷图片,如划伤、烂底、歪底、反底、侧底等的图片500张,底火缺陷示例如图5所示。为了弥补训练样本数量的不足,提高模型的训练精度,本文对原有的训练样本进行图像水平/竖直翻转,镜像,平移等几何变换,最终将样本扩充为2 000张,其中训练集为1 600张,400张为测试集。然后采用LabelMe软件对数据集进行标注,标注后的每张图片都会生成一个JSON文件存放绘制点的坐标信息。
图5 底火缺陷示例
本文提出的基于Mask R-CNN的枪弹底火缺陷检测方法具体的检测算法主要有以下几个步骤:① 获取待检测枪弹底火的图像;② 对获取的底火图像进行位置矫正,定位底火中间,画定底火检测区域。③ 把提取的底火图像传输到训练好的网络模型中进行检测,判断是否具有缺陷;④ 获取模型的检测结果,若未检测到缺陷则为合格,若检测到缺陷则将结果输出到PLC以对此枪弹进行剔除,检测流程如图6所示。
图6 枪弹底火检测算法流程框图
为了验证本文算法的可行性,利用本文所提出的算法对西南自动化研究所采集的1 000幅底火装配现场样本图像进行识别,图7展示了部分检测结果。图中虚线边框区域表示检测算法标记的缺陷存在位置,实线为手动绘制缺陷区域,如图7可以看出采用本文的识别方法能取得较好的识别效果。利用本文检测算法检测结果和与人工检测结果如表2所示。可以看出,本文检测算法比人工检测在正确率和速度方面均有较大幅度提升。
图7 底火缺陷检测结果
检测方法缺陷底火图像漏检错检正确检测率/%每张检测时间/ms本文算法1731099.4400人工检测1733496650
该系统已在西南自动化研究所底火装配流水线安装使用,整个系统通过测试,运行良好。截至目前,该系统共检测枪弹底火图像6632张,其中合格底火4 992个,不合格数为1 640,图8所示为软件监控界面。
图8 软件监控界面
根据枪弹底火装配质量在线检测的需求,研究了基于Mask R-CNN的枪弹底火装配质量检测系统,设计了枪弹底火装配质量检测的总体方案及系统的硬件组成结构,提出了基于Mask R-CNN的枪弹底火检测算法。测试结果表明文中所设计的检测方案能够准确、快速地检测出枪弹底火的质量问题,检测准确率达99.4%,平均检测时间约为400 ms,系统检测速度和检测精度均能满足工业生产的需求,为枪弹底火装配质量在线检测提供了新的手段。该系统实现了底火装配质量的自动化检测,有效地解决了人工检测存在的主观性强、劳动强度大、漏检率高、检测效率低等问题。