韩 明,吴庆祥,2,曾雄军
1(福建师范大学 光电与信息工程学院,福州 350007)
2(医学光电科学与技术教育部重点实验室,福州 350007)
随着人工智能的不断发展,人工智能技术被广泛地应用在各个领域,不断推进社会的进步[1].其中,深度学习领域的发展,加快了人工智能的步伐.深度学习属于机器学习领域的一个新的研究分支,该算法可分为监督式学习、非监督式学习、半监督式学习、以及强化学习[2].其中,监督式学习是指通过人工标记的数据来推测出目标函数.目前的分类,目标检测等任务大多均采取的是监督式的学习方式.基于深度学习算法的Mask R-CNN 网络亦是通过监督式的学习方式来对网络权重进行迭代更新.
近年来,针对齿轮齿形缺陷检测已存在一些检测方案.2019 年,李凯等通过将齿轮图像二值化来获取齿轮中心点坐标,利用中心点坐标构建环形滤波器获取只含轮齿部分的感兴趣区域,最终通过对灰度均值小于阈值的轮齿进行细分来判定该轮齿是否为缺齿[3].2018 年,杨亚等通过检测得到的关键点将标准齿轮与待检测齿轮进行配准,对配准图像采用绝对差分的方式得到绝对差分图像,通过绝对差分图像判定待检测齿轮是否存在缺齿[4].2017 年,郑硕文等构建基于机器视觉与多传感器的齿轮缺陷检测系统[5].上述的齿轮缺陷检测方法以及张钰婷、李盼等[6,7]更早提出的缺陷检测方案大多是围绕传统的图像处理算法来进行展开的.采用深度学习算法实现齿轮缺陷检测的特点在于神经网络可以自主对齿轮图像进行特征提取,通过将提取到的低层特征进行组合形成高层具有较深语意的特征,使得网络模型可以自动学习到从样本图像输入到结果输出的复杂映射关系[8].鉴于Mask R-CNN[9]网络具有对微小目标进行有效检测的优势,在原网络基础上,针对齿轮微小视觉缺陷检测目标对原网络进行改进,提高了Mask R-CNN 网络对于缺齿对象的召回率指标.基于改进的Mask R-CNN 齿轮缺齿检测方法可应用到对流水线上齿轮视觉缺陷或者类似的产品进行检测,具有广阔的应用场景.
Mask R-CNN 架构(见图1)主要由两部分构成,第一部分为区域候选网络,用于获取候选框.第二部分利用RoIAlign 网络层对感兴趣区域进行池化操作,产生固定尺寸的特征图,后续网络层通过对该固定尺寸特征图进行处理,实现对目标的分类、检测、以及分割.本文通过理论分析并结合实验结果对共享特征提取过程进行优化,并针对标注方案中标注框的大小对候选区域网络中的锚框大小进行重新设计.
(1)共享特征提取网络
Mask R-CNN 的共享特征提取网络采用残差神经网络与特征金字塔网络的组合,对输入图像进行特征提取.
1)残差神经网络
为了尽可能提高网络的缺齿检出率,同时兼顾网络的训练与检测速度,应优选一种残差神经网络.通用的残差神经网络[10]主要有5 种,分别为:ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152,缺齿检出率公式表达如下:
在通用的目标检测评价指标中,一般采用召回率与精确率是两个指标,计算方法如表1.
图1 Mask R-CNN 结构
表1 精确率与召回率
表1 中,P表示缺陷轮齿对象,N表示为正常轮齿对象,T与F表示检测结果是否正确.TP:缺陷轮齿对象被正确识别为缺陷轮齿对象的数量;FP:正常轮齿对象被错误识别为缺陷轮齿对象的数量;FN:缺陷轮齿对象被错误识别为正常轮齿对象的数量.精确率与召回率表达式如下:
由于检测目标为缺陷轮齿,故将缺陷轮齿视为正样本.召回率与缺齿检出率两个指标在数值上是完全相等的,其中,TP等于检出缺齿的总个数,TP与FN之和等于缺齿的总个数.由于训练的样本标注类别只有缺齿这一类,因此FP的值将趋近于0,Precision(精确度)将趋近于1 这个常数.故实验从通用的目标检测评价指标角度,还可使用召回率来对网络的检测效果进行评价.
实验比较5 种通用残差神经网络作为共享特征提取网络的检测效果,采用迁移学习方式对Mask RCNN 网络进行训练,网络初始权重为基于coco 数据集训练得到的权重.训练集数量为200 张,缺齿标注个数为500 个,测试集的数量为150 张,总齿数为1800 个,缺齿数为280 个,检测结果如表2.
表2 5 种残差神经网络检测结果比较
由以上检测结果可以得出,随着残差神经网络深度的增加,召回率表现为递增,更深的网络同时需要更多的训练时间,且测试时间也相应增加.实验结果显示,ResNet-101 与ResNet-152 召回率指标的差距相对不是很大,综合召回率与网络耗时考量,选择使用ResNet-101 作为特征提取网络.
2)特征金字塔网络
高层特征图虽然含有较深语意的特征表达,其分辨率却很低,当对小尺度目标进行特征提取时,重要的特征信息容易丢失.特征金字塔网络[11]利用自上而下通道以及侧向连接将高层高语意低分辨率特征图与低层低语意高分辨率的特征图进行融合,从而获得不同尺度兼具高语意与高分辨率的特征图.图像共享特征提取过程如图2,ResNet-101 具有5 个阶段,每个阶段是根据输出特征图的大小是否改变进行划分.分别将各个阶段最后网络层输出的特征图称为{C1,C2,C3,C4,C5},图2 中,C5是经过ResNet-101 第五阶段生成的特征图,也是网络学习到的具有最深语意的特征图,该特征图未进行融合操作,分辨率较低.
特征金字塔网络将C5进行1×1 卷积操作得到P5,对P5进行上采样操作与C4经过1×1 卷积得到的特征图进行融合,得到P4,P4既具有P5的深层语意而且还保留了C4中微小对象较高分辨率特征.P3,P2的获取方式与P4相同.最后,还需对融合得到的特征图进行一次3×3 卷积操作,目的是降低对特征图进行上采样操作之后的混叠效应.在此,实验对用于后续网络进行预测的特征图进行优化调整,剔除对P5进行的3×3 卷积操作,如图3,分析如下:①P5并非是经过上采样与融合得到,既对P5而言不存在混叠效应.② 该3×3 卷积操作采用“padding=same”的方式,即卷积前后特图的尺寸不发生改变,剔除该3×3 卷积对后续特征图尺寸匹配不会造成影响.③ 经实验测试,该3×3 卷积操作的剔除相应地提高了网络的缺齿检出率指标.
图2 图像特征提取过程
图3 优化的图像特征提取过程
(2)候选区域网络
候选区域网络[12]实质是一个基于滑窗的无类别目标检测器.用于生成目标候选框.候选区域网络始应用于Faster R-CNN 中,作用对象为单尺度特征图.具体操作:将一个3×3 的滑窗置于单尺度特征图上进行滑动,在滑窗滑过的位置上以滑窗的中心作为锚点,产生k个锚框.Faster R-CNN 中,k参数为9,以像素为单位,大小为{1282,2562,5122},在该3 种尺寸的基础上分配{1:2,1:1,2:1}宽高比.通过计算锚框与标注框的IoU值来判断锚框与标注框的重叠度,数值越大表示重叠度越高,最大值为1,其计算公式如下:
即锚框与标注框交集和锚框与标注框并集的比值.
Mask R-CNN 中候选区域网络的作用对象为由特征金字塔网络生成的具有金字塔层次的多尺度特征图,分别为{P2,P3,P4,P5,P6},其中P6是对P5进行降采样得到的,尺寸缩小了一倍.与Faster R-CNN 不同的是,对每个层次的特征图仅分配一种尺寸的锚框,这样可以有效减少冗余锚框的数量.以像素为单位,Mask RCNN 网络将{P2,P3,P4,P5,P6}锚框的尺寸分别设置为{322,642,1282,2562,5122},每个尺寸的锚框均分配以{1:2,1:1,2:1}的宽高比,故每个层次特征图的锚框的尺寸种数为3 种,5 种具有金字塔层次特征图的锚框尺寸的种数为15 种,采用式(4)来计算锚框与标注框的IoU数值.
实验检测对象为有缺陷的轮齿,齿轮样本如图4.
图4 齿轮样本
当齿轮旋转以及缺陷存在于轮齿位置的不同使得对有微小缺陷的轮齿进行标注的尺寸会发生改变,即标注框的尺寸发生改变.但无论齿轮转动多少角度,标注框的尺寸最大值不会超过图5 中线段1 与线段2 的长度,实际标注框的宽与高最大值分别为线段1、线段2 长度的正弦、余弦值,通过计算得到,以像素为单位,线段1 与线段2 的长度为32 个像素.根据标注框的尺寸,假设各层次特征图使用锚框的尺寸为{322,642,1282,2562,5122},设标注框的尺寸为最大值32×32,则锚框的尺寸均大于等于标注框的尺寸.当标注框包含于锚框时会有最大IoU值,位置关系如图6,各尺寸锚框与标注框的最大IoU值如表3.特别地,当锚框尺寸为32×32,锚框与标注框完全重合时,IoU数值取得最大值1.
图5 标注尺寸波动示意图
图6 IoU 达到最大值时锚框与标注框的包含关系
表3 5 种锚框尺寸对应最大IoU 数值
计算各个尺寸锚框与标注框的IoU数值与设定阈值0.7 做比较,IoU数值大于0.7 的锚框被分配一个正标签,IoU数值小于0.3 的锚框被分配一个负标签,介于0.3 与0.7 之间的锚框将直接被舍弃.由表3 可得仅有P2特征图的锚框会被分配正标签,通过对分配正标签的锚框进行修正使得训练候选区域网络的损失值达到最低.训练候选区域网络的损失函数如下:
其中,Lcls表达式如下:
其中,ti代表对锚框进行不断修正得到的候选框的4 个参数化坐标,pi代表锚框中含有目标的概率或置信度,i代表锚框索引.当锚框被赋予正标签时,为1,此时Lreg函数值对损失函数值L有效,通过反向传输与梯度下降的优化方法,对ti进行不断修正,最终得到较理想的候选框坐标,使得损失值L降到最低;当锚框均被赋予负标签时,为0,Lreg函数值对损失函数值L无效,即ti不影响L值,此时将式(6)代入式(5)中得:
式中,Ncls为常数,此时的L随pi同增同减,为使L优化为最低,pi应为最低,此时锚框i均被视为背景来对候选区域网络进行训练.
根据以上推导,针对标注框可能的最大尺度32×32(图5),仅有尺寸为32×32 的锚框会被分配正标签,但当标注框的尺寸为图5 中A 框(20×10)时,此时使用32×32 的锚框得到最大的IoU值为0.4,既A 框中对象即使参与了候选区域网络的训练,也是以一种不存在缺齿对象的身份来对候选区域网络训练的,这种问题导致的最终结果是造成Mask R-CNN 网络更高的漏检率.针对以上问题,将图5 中标注框A 框的尺寸设为锚框的最小尺寸,将图5 中线段1 与线段2 的长度设为锚框的最大尺寸,以像素为单位,A 框尺寸近似为为20×10,则以1:1 的锚框宽高比,使用的最小锚框尺寸20×20,最大锚框尺寸为32×32.同样对每个尺寸的锚框分配{1:2,1:1,2:1}的宽高比,则各个层次特征图锚框尺寸分配情况如表4,选择表4 中的锚框尺寸提高了可容忍标注框尺寸的下限,从而实现对候选区域网络进行更加有效的训练.
表4 根据标注框尺寸设计相应的锚框尺寸
(3)多任务训练
采用多任务训练机制,利用Mask R-CNN 的掩膜分支损失函数,使得微小目标检测效果更加精确.多任务训练损失函数公式定义如下:
式中,Lcls为分类损失函数,Lbox为边框损失函数,Lmask为掩膜损失函数.
(1)数据集制作
目前缺乏公共的齿轮数据集,且数量较少.因此采用数据扩增的手段来建立数据集.采用的数据扩增方式为对缺齿齿轮图像平移、360 度随机旋转、添加随机椒盐噪声.对图像进行平移与随机旋转是为了实现Mask R-CNN 网络能够对图像内任意位置、旋转任意角度的缺齿齿轮进行有效的检测,添加随机椒盐噪声是为了提高网络对含有椒盐噪声干扰的齿轮图像的鲁棒性.本实验齿轮图像数据集统一为273×265(像素)RGB 图像,含有缺齿的样本展示如图7.
图7 缺齿样本展示
(2)标注方案设计
训练集使用VGG Image Annotator(VIA)进行标注,标注完另存后缀名为json 文件.在进行齿轮图像标注时,设计两种标注方案,针对不同的标注方案使用对应的锚框尺寸.方案1:对整个齿轮对象进行标注,然后二分类,既对标注对象分类为合格齿轮与不合格齿轮.不合格的齿轮是指带有缺齿等缺陷的齿轮(如图8).方案2:直接对齿轮缺陷部分进行标注(如图8).方案1的优点在于可忽略具体缺陷类型,分类类别单一,但是利用方案1 训练得到的Mask R-CNN 网络在精度判别方面存在一个问题,对于有微小缺陷的齿轮,其判别能力较差.具体来说,一个有几个像素缺齿的齿轮,其对于整个齿轮而言是微不足道的,从而导致微小缺陷容易被忽略,将不合格齿轮判定为合格.采用方案2 对缺陷部分进行标注,就好比在提醒网络更应该关注微小缺陷本身,使得处于像素级别缺陷可以被检测出来.两种标注方案在设计理念上各有优缺点,只是方案一的标注思路使得带有像素级别缺齿的齿轮与合格齿轮相比并无明显差别,召回率较低,且标注工作量更大,而方案2 相对于方案1 而言应当注意的是,当待检测工件缺陷类型较多时,需要对缺陷类别进行逐一分类,既多分类.综合样本标注工作量以及网络检测效果考量,针对微小缺陷对象,实验采用第2 种样本标注方案.
图8 缺齿样本标注
特征提取网络采用ResNet-101 与FPN 的组合,加载基于coco 数据集预训练好的网络模型权重文件,使用经过样本扩增的齿轮数据集对网络模型进行迁移学习.实验训练集为200 张微小缺齿图像,图像规格统一为273×265 的三通道RGB 图像,每张齿轮图像至少有一个带有缺陷的轮齿,同时部分齿轮图片含有多个不同尺度的微小缺齿,保证训练得到的模型能同时对多种尺度范围的微小缺齿进行检测.
使用显卡型号为1080Ti 的服务器对Mask RCNN 网络模型进行训练,显卡显存11 GB.Python 版本3.6.0、Tensorflow-gpu 版本1.6.0、Keras 版本2.1.6.网络一次迭代训练读取两张图像,一个epoch 迭代次数为100 次,经过一次epoch 训练之后,训练集中的200 张图像对网络模型进行了一次完整训练,参数epoch 设置为500 次,每训练完一个epoch,便将最后一次迭代训练得到的损失值保存在日志中,经过500 次epoch 训练之后,改进的Mask R-CNN 网络损失值得到有效收敛,使用tensorboard 对损失函数曲线进行显示,如图9.
图9 损失函数曲线
部分检测结果如图10,图中上侧为使用未经调整Mask R-CNN 网络检测结果,下侧为使用经过优化改进之后的Mask R-CNN 网络检测结果.从图10 的检测结果可以看出,通过对图像特征提取过程进行优化以及根据标注框的尺寸设置合适的锚框尺寸,可以提高召回率,改善缺齿检出率指标,实现对采集范围内任意位置的缺齿进行更加有效地检测.实验目标为实现缺齿目标的检测,故去除掩膜输出,得到图11 中的检测结果.去除掩膜输出之后更便于对检测对象进行观察.Mask R-CNN 网络改进前与改进后的检测数据比较如表5.由表5 得出,经过优化的Mask R-CNN 网络对比未优化Mask R-CNN 网络,缺齿检出率提高了5.7%,召回率提高了0.057,召回率与缺齿检出率分别达到了0.982 与98.2%.利用优化的Mask R-CNN 网络进行检测仍存在5 个缺齿漏检,可对训练集进一步地扩增,使得缺齿样本覆盖更广的特征空间,进一步提高召回率与缺齿检出率指标.同时本方法与传统的图像处理与机器学习算法[13]进行了比较,识别率提高了0.4 个百分点,比较结果见表6.
采用优化后的Mask R-CNN 目标检测网络不仅可以对齿轮微小缺齿进行检测,譬如齿轮划痕、齿面腐蚀、齿面污渍等视觉缺陷均可以采用这一方法.通过将优选的残差神经网络与对特征提取过程进行优化的特征金子塔网络进行结合作为共享特征提取网络,使得整个网络模型能够更好地学习到微小对象的特征表达.该方法无需进行大量图像处理工作,有效的避免了传统图像处理方法对微小缺陷图像进行处理过程中造成的误差,且可实现对采集范围内任意位置的齿轮微小缺陷的检测,提高了检测手段的智能化水平.该方法具有通用性,无需针对某一特定缺陷设定一个算法去解决.基于分割的样本标注过程相对比较繁琐,要求样本标注精确以避免手工标注带来的误差.尽量使用像素比较高的样本,优质的数据集可以训练出检测效果更好网络模型.
图11 去除掩膜输出
表5 检测结果比较
表6 检测方法比较
致谢
作者感谢中央引导地方科技发展专项(2017L3009)以及福建省光电传感工程研究中心对本研究的支持.