周天宇,朱启兵,黄 敏,徐晓祥
1.江南大学 轻工过程先进控制教育部重点实验室,江苏 无锡 214122
2.无锡市创凯电气控制设备有限公司,江苏 无锡 214400
光发射次模块(transmitter optical subassembly,TOSA)可以实现光电信号的转换,在光通信领域具有广泛的应用。作为TOSA的重要组成部分,载波芯片(chip on carrier,COC)的质量好坏对TOSA是否能够长期稳定地工作有着重大的影响。由于制造工艺和生产环境的影响,崩口、定位柱破损以及波导区域污渍是COC生产过程中经常出现的三种典型缺陷。研究高效、快速而准确的COC缺陷自动检测方法,对COC质量控制与故障检测具有重要的实际意义。
随着深度学习的发展,越来越多的基于深度卷积神经网络的目标检测方法被提出[1-4],这些方法主要可以分为两类:一类是双阶段(two stage)目标检测算法;另一类是单阶段(one stage)目标检测算法。其中,双阶段算法是基于区域推荐的分类方法实现的,代表性算法有RCNN[5]、Fast R-CNN[6]、Faster R-CNN[7]、Mask R-CNN[8]、Cascade R-CNN[9]和Sparse R-CNN[10]等。单阶段算法是基于端到端的回归方法实现的,代表性算法有SSD[11]、YOLO[12]、YOLOv2[13]、YOLOv3[14]和YOLOv4[15]等。双阶段分类算法具有较高的检测准确性而单阶段回归算法具有更快的检测速度,随着众多算法的提出,这些方法的检测效果在不断提高,尤其是YOLO系列算法经过不断的更新优化,网络性能进一步提升。
基于深度卷积神经网络的目标检测算法被广泛应用于工业产品的表面缺陷检测。黄凤荣等人[16]提出了一种基于Faster R-CNN的发动机零件表面缺陷检测算法;Chen等人[17]将生成对抗网络与YOLOv3算法进行结合,研究了一种芯片晶粒的表面缺陷检测方法。Perez等人[18]提出了一种基于VGG-16的预训练卷积神经网络分类器,并结合CAM网络实现建筑物表面缺陷的检测和定位;金颖等人[19]研究了一种基于Mask R-CNN的柱塞式制动主缸内槽表面缺陷检测系统。
现有基于深度卷积网络的表面缺陷检测算法为了取得更好的检测准确性,通常依赖于大型深度网络,存在参数量过多、检测时间慢的问题,难以满足COC缺陷检测实时性的需求。针对此问题,本文提出了一种基于轻量级卷积神经网络的COC缺陷检测算法YOLOEfficientnet。
首先,借鉴了YOLOv3网络端到端单阶段检测的思想,引入了轻量级特征提取网络Efficientnet[20]作为主干网络对图像进行特征提取。其次,为了解决下采样的过程中导致信息丢失的问题,引入SPP-Net[21]结构来增大图像的感受野,分离出更加显著的上下文特征。最后,针对COC缺陷多尺度以及波导区域污渍小目标难以检测的问题,引入了PANet[22]结构进行多尺度特征融合。本文提出的基于轻量级卷积神经网络的COC缺陷检测算法YOLO-Efficientnet在保证检测准确性的同时,减少了网络的参数量,缩短了检测时间,能够对COC缺陷进行高效、快速而准确地检测。
本文提出的YOLO-Efficientnet算法的网络结构如图1所示,为了减少网络参数,缩短检测时间,主干网络采用轻量级卷积神经网络Efficientnet,对尺寸为416×416的输入图片进行8倍、16倍以及32倍的下采样特征提取,得到52×52、26×26和13×13这3种不同尺度的特征图。为了解决Efficientnet对输入图片进行特征提取下采样过程导致的信息丢失问题,增大图像的感受野,在Block7之后引入SPP-Net结构,分别使用大小为13×13、9×9、5×5和1×1的池化核进行最大池化处理,分离出更加显著的上下文体征。针对COC缺陷多尺度以及波导区域污渍小目标难以检测的问题,引入PANet对52×52、26×26和13×13这3个不同尺度的特征图进行增强特征融合,在原有的特征金字塔自上而下(topdown)特征融合的基础上,增加自下而上(bottom-up)的增强路径,通过对浅层特征图和深层特征图的反复提取,更加充分地融合不同深度的特征信息。最终得到3个不同尺度的特征图输出y1、y2和y3,实现多尺度预测。
图1 YOLO-Efficientnet网络结构Fig.1 Network structure of YOLO-Efficientnet
在预测阶段,对于每张输入图像,预测包括目标边界框位置、置信度和目标类别的三维张量。将y1、y2和y3这3种尺寸分别为13×13、26×26和52×52特征图划分为S×S个单元格(S分别取13、26和52),给每个网格设置3个先验框来预测3个边界框,输出维度为S×S×(3×(4+1+M)),即4个边界框的偏移量、1个缺陷目标置信度和M个缺陷类型。最后通过非极大值抑制(non-maximum suppression,NMS)的方法剔除重复的边界框,从而实现目标检测。
近年来,随着卷积神经网络的发展,为了提升网络性能,提高模型的泛化能力,通常通过网络的深度、网络的宽度或者网络的分辨率这3个维度实现网络缩放。其中,网络的深度是指增加网络的层数,通过更深的神经网络来增强特征提取能力;网络的宽度是指加深网络的通道数,增加每一层提取的特征层数,得到更多的特征;网络的分辨率是指通过增大输入图片的分辨率来减少图像信息损失,使得网络能够学习更加丰富的特征。然而,在前人的研究中,大多只通过放大其中的一个维度以达到更高的准确率,例如目前常用的残差网络ResNet[23],从ResNet-18到ResNet-200,通过将网络深度从18层增加到200层来提高网络的准确率。3个维度中任一维度的放大都可以带来精度的提升,但随着倍率越来越大,提升却越来越小,同时会引入更多的参数,增大模型的计算量,模型准确率也会很快达到饱和。
Google2019提出的轻量级网络Efficientnet[20],利用复合模型缩放(compound model scaling)方法,对网络的深度、宽度以及分辨率进行同时缩放,综合优化3个维度提升网络指标,在提高网络准确率的情况下,大大减少了模型的参数量和计算量。Efficientnet网络在不同的缩放比例条件下,可得到不同的模型结构(Efficient-B0~Efficient-B7)。
综合考虑检测时间和检测准确性,本文选用Efficientnet-B3作为主干网络对输入图像进行特征提取。Efficientnet-B3的网络结构如表1所示,Efficientnet-B3由1个Stem层和7个Block层组成。Stem层是1个3×3的卷积,Block层由不断堆叠的倒残差模块MBConv-Block组成,其中,MBConvBlock1和MBConvBlock6分别表示其扩展比例为1和6。在Block3、Block5和Block7后输出52×52、26×26和13×13这3种不同尺度的特征图。
表1 Efficientnet-B3网络结构Table 1 Network structure of Efficientnet-B3
作为Efficientnet的基本模块,倒残差模块MBConv-Block在移动翻转瓶颈卷积(mobile inverted bottleneck convolution,MBConv)模块的基础上,引入了压缩与激发网络(squeeze-and-excitation network,SENet)的注意力思想,在通道维度上引入注意力机制,这种注意力机制让模型可以更加关注信息量最大的通道特征,而抑制那些不重要的通道特征。
MBConv Block的网络结构如图2所示。首先对输入图片进行1×1的卷积操作并根据扩展比例改变输出通道维度(如扩展比例为6时,会将通道维度提升6倍;如果扩展比例为1,则直接省略该1×1的卷积和其之后批归一化和激活函数)。在此基础上,利用k×k的卷积核对扩展后的特征图在二维平面内进行逐通道深度卷积(depthwise Conv)操作;并在通道维度上引入SE module注意力机制,获得不同通道的权重对特征图进行通道相乘操作,使模型可以更加关注信息量最大的通道特征,而抑制那些不重要的通道特征。利用多个1×1的卷积核对特征图进行逐点卷积(pointwise Conv)操作,恢复原通道维度。最后进行输入的残差跳跃连接,得到最终的特征图输出。
图2 MBConv Block网络结构Fig.2 Network structure of MBConv Block
相比于常规卷积操作,MBConv Block网络利用深度卷积和逐点卷积操作来提取特征,具有更少的参数量和运算量。同时,SE module注意力机制的引入有助于提高模型的精度。
为了解决Efficient-B3对输入图片进行特征提取下采样的过程中导致信息丢失的问题,增大图像的感受野,如图3所示,在最后一层Block7之后引入SPP结构,分别使用大小为13×13、9×9、5×5和1×1的池化核进行最大池化处理,分离出更加显著的上下文体征,有利于实现多尺度预测。
图3 SPP-Net网络结构Fig.3 Network structure of SPP-Net
深层特征图包含更多的语义信息,注重轮廓特征,适合大目标的检测;浅层特征图位置信息,注重细节特征,适合小目标的检测。针对COC缺陷多尺度以及波导区域污渍小目标难以检测的问题,引入PANet对浅层特征图和深层特征图进行增强特征融合。
PANet的结构如图4所示,在原有的特征金字塔FPN自上而下(top-down)特征融合的基础上,增加自下而上(bottom-up)的增强路径,通过对浅层特征图和深层特征图的反复提取,更加充分地融合不同深度的特征信息。引入PANet结构,对13×13、26×26和52×52这3个不同尺度的特征图进行增强特征融合,最终得到3个不同尺度的输出y1、y2和y3,实现多尺度预测。
图4 PANet网络结构Fig.4 Network structure of PANet
将3种尺度的特征图y1、y2和y3分别划分为13×13、26×26和52×52个单元格,给每个单元格设置3个先验框来预测缺陷目标的边界框。边界框的预测过程如图5所示,虚线矩形框是预设先验框,宽为pw,高为ph,中心点在特征图上的坐标为(c x,c y)。网络通过预测缺陷的位置坐标的偏移量t x,t y,tw,th从而得到缺陷的实际位置。实线矩形框是通过网络预测偏移量得到的预测边界框,中心点坐标为(bx,b y),宽为bw,高为bh。计算公式如下:
图5 边界框预测Fig.5 Bounding box prediction
本文提出的YOLO-Efficientnet算法的损失函数由边界框误差losscoord、置信度误差lossIOU和类别误差lossclass三部分组成,其中边界框误差采用的是均方误差,置信度误差和类别误差采用交叉熵误差。将尺寸分别为13×13、26×26和52×52的特征图y1、y2和y3划分成S×S个单元格(S分别取13、26和52),每个单元格预测3个边界框,损失函数为:
其中,λcoord是边界框预测的惩罚系数,λobj和λnoobj分别表示包含和不包含目标时置信度的惩罚系数。和分别表示第j个候选边界框所在的第i个网格负责和不负责检测该目标;(x i,yi,w i,h i)和分别表示预测边界框和真实边界框的中心点横坐标、纵坐标,边界框的宽度和高度;ci和̂分别表示预测置信度和真实置信度;M表示目标类别的数量;p i(c)和分别表示网格中的目标属于某个类别c的预测概率和真实概率。
通过构建边界框误差、置信度误差和类别误差的损失函数对网络进行训练,预测目标的位置信息和类别信息,最后,通过置信度阈值的设置来过滤掉得分较低的边界框,对剩下的边界框进行非极大值抑制操作来剔除重复的边界框,从而实现COC缺陷检测。
本文实验是基于TensorFlow的Keras深度学习框架实现。在硬件配置为Inter®Core™i7-5930K CPU@3.50 GHz,32 GB内存,NVIDA GeForce GTX TITAN X操作系统为Windows 10(64位)的服务器下进行。总训练轮次(epoch)为300,初始学习率设置为0.001,批量大小设置为16,权重衰减系数为0.000 5,动量设置为0.9,在第100次epoch之后减小为0.000 1。
本文的数据是COC经过200倍显微相机采集得到的图像,COC缺陷图像如图6所示,其中蓝色实线框表示崩口缺陷,黄色虚线框表示波导污渍缺陷,红色点划线框表示定位柱破损缺陷。
图6 COC缺陷Fig.6 COC defect
COC缺陷图像共200张,选取150张进行训练,50张用作测试。对150张训练图像进行水平翻转、垂直翻转、提高亮度、引入高斯噪声以及锐化操作实现数据集扩充,得到4 800张训练样本。使用Labellmg图像标注软件进行人工标注,数据集格式为VOC2007。
将50张待检测COC缺陷图像输入训练好的模型进行测试,采用检测准确性、误检率和漏检率作为性能指标,其中误检率表示对缺陷的类别进行误判的概率,漏检率表示对缺陷未能检测到的概率。对波导区域污渍、崩口以及定位柱破损这3类缺陷进行检测统计的结果如表2所示。本文提出的YOLO-Efficientnet算法对COC波导区域污渍、崩口以及定位柱破损3类缺陷的检测准确率分别达到了100%、98%和96.3%,未出现误检情况,对COC缺陷的平均检测准确率达到了98.5%。
表2 缺陷检测统计Table 2 Defect detection statistics
为了进一步验证YOLO-Efficientnet算法对COC缺陷检测的有效性,将本文算法与常用的目标检测算法YOLOv3、YOLOv4以及现有的轻量级算法YOLOv4-tiny在COC缺陷数据集上进行对比实验,实验参数采用默认参数。考虑到实际生产需求,采用COC缺陷平均检测准确率、参数量以及每张COC缺陷图像的平均检测时间作为衡量指标,实验结果如表3所示。
表3 不同算法COC缺陷检测结果Table 3 COC defect detection results of different algorithms
相比较传统的Faster R-CNN以及SSD算法,本文YOLO-Efficientnet算法的检测准确性大幅提高,同时缩短了检测时间。
与YOLOv3和YOLOv4算法相比,由于轻量级主干网络Efficientnet-B3引入,本文算法具有更少的参数量,缩短了检测时间;同时,由于引入SPP-Net结构和PANet增强特征融合,本文算法取得了更高的准确率。
此外,由于现有轻量级网络YOLOv4-tiny算法采用了主干网络CSPDarknet53-tiny以及简化版的图像金字塔,只对两种尺度的特征图进行特征融合,因此,虽然检测时间更短但是检测准确率大幅降低,不能满足COC缺陷检测的需求。
以上实验表明,本文提出的YOLO-Efficientnet算法,对COC缺陷检测的准确率达到了98.5%,每张COC缺陷图像的平均检测时间达到39 ms,满足COC缺陷实时检测的需求,检测结果如图7所示。
图7 基于YOLO-Efficientnet的COC缺陷检测结果图Fig.7 COC defect detection results based on YOLO-Efficientnet
本文针对COC的3类缺陷的实时检测问题,提出了一种基于轻量级卷积神经网络的COC缺陷检测算法YOLO-Efficientnet。借鉴YOLOv3目标检测的思想,引入了轻量级卷积网络Efficientnet进行特征提取,减少了网络参数,缩短了检测时间。同时,引入SPP结构增大图像感受野,采用PANet进行增强特征融合,从而实现多尺度预测。实验结果表明,本文提出的算法对COC缺陷检测的准确率达到了98.5%,检测时间达到每张图片0.42 s,满足COC缺陷高效、快速而准确检测的需求。