基于级联式卷积神经网络的芯片检测方法

2022-05-10 01:25安胜彪陈书旺赵立欣李亚航
无线电工程 2022年5期
关键词:子图关键点尺寸

安胜彪,杨 旭,陈书旺,赵立欣,李亚航,白 宇

(河北科技大学 信息科学与工程学院,河北 石家庄 050018)

0 引言

随着无人驾驶、5G和物联网等新兴技术的发展,芯片被广泛应用在计算机、移动电话、智能终端和其他数字电器等设备中。芯片排序、出厂前的缺陷质量检测、芯片封装前的定位和尺寸检测等都需要对芯片进行识别。常用的芯片识别方法可分为经典的图像处理方法和深度学习方法。传统图像处理方法中如周伟等[1]改进Harris角点检测算法,求得芯片的角度信息并对图像进行校正;Hou等[2]利用模板匹配和邻域比较算法实现芯片缺陷检测。深度学习方法中如肖磊[3]将全局平均池化层与Alexnet[4]卷积神经网络相结合,对6种缺陷类型的压敏电阻进行缺陷分类;Zhu等[5]在对IC芯片图像进行预处理后获得单个字符图像,改进轻量化的LeNet-5[6]对2个方向的芯片表面字符进行检测。

由于芯片种类较多,传统图像处理算法需要对每种芯片设计特定的特征提取算法,耗费大量的人力物力,效率较低。而深度学习方法可以自动从样本中学习特征,无需人工提取特征和参数设置,与传统方法相比更加具有适应性,可以减小外界客观因素造成的误检情况。因此本文基于深度学习的方法对芯片进行识别定位。

近年来基于深度学习的目标检测方法被大量提出,其中具有代表的有单阶段的YOLO[7-10]系列和双阶段的Faster R-CNN[11]。本文的图像来自智能排料系统中的芯片,运动控制模块根据芯片的位置和角度对芯片进行转移排序。常用的水平目标检测并不能检测出物体的角度,因此有学者提出了旋转目标检测方法,如Liu等[12]提出的R2CNN方法使用Faster R-CNN[11]框架,设计了带斜框的非极大值抑制操作;Ma等[13]采用RRPN将旋转因素融入到区域提取网络中实现多方向的文字检测,将RoI Pooling[11]改为带角度的RoI Pooling,提取旋转目标特征。旋转目标检测大多用于遥感图像和文字检测中,目前没有文献将旋转目标检测应用在芯片检测中,且很多旋转目标检测方法是基于二阶段的Faster R-CNN[11]检测网络,在区域建议部分引入旋转锚框得到旋转候选区域,大量的旋转候选区域在后续的计算和非极大值抑制过程中大大增加了计算量,降低了检测速度。

本文以排料系统中的芯片为实验对象,求得芯片位置和角度信息,为自动化抓取模块提供准确的数据支持,提出了一种级联式卷积神经网络的芯片检测方法,主要贡献有以下3点:

① 采用级联的工作方式将芯片检测分为目标检测和角度检测2个阶段。第1级网络为芯片目标检测网络,采用改进的YOLOv5s模型检测芯片位置;第2级网络为关键点回归网络,对芯片的4个角顶点进行回归求取角度信息。第1级网络可以为第2级网络的任务提供输入图像,级联的工作方式通用性强、灵活性高。

② 在第2级网络中,提出使用关键点回归的方式求取角度信息。根据芯片的显著形状特征,回归出芯片的4个角顶点,再对角顶点进行计算得到角度信息。这种方式可以避免传统图像处理中的特征设计环节,同时减少深度学习算法中旋转目标检测复杂的旋转锚框计算。

③ 针对大尺寸目标密集型图像,提出叠加式裁剪算法进行数据预处理,在不改变图像质量的同时引入较少的计算量。在数据整合和YOLOv5s模型的预测框筛选阶段使用DIou-NMS[14],提高了小目标和密集目标的检测精度。

1 总体框架和级联网络结构

1.1 总体框架

本文采用级联的工作方式,第1级网络为芯片目标检测网络,第2级网络为关键点回归网络。总体框架设计如图1所示,大尺寸图像为原始数据集。首先对大尺寸图像进行叠加式裁剪处理,得到小尺寸的子图作为芯片目标检测网络的输入。芯片目标检测网络利用结合DIoU-NMS[14]的YOLOv5s模型对子图进行检测,将子图检测结果进行数据整合处理后获得大尺寸图像上每个芯片的水平目标框。接下来对水平目标框进行扩边处理后将只包含单个芯片的图像裁剪下来作为关键点回归网络的输入。芯片的表面结构主要由塑封体和引脚组成,颜色单一,且位于中心的塑封体多为黑色的正方形或长方形,特征单调。因此,第2级网络将芯片的4个角顶点作为回归对象,最后根据回归出的4个角顶点计算每个芯片的角度。求得芯片位置和角度后,将信息传给后续的运动控制系统来完成芯片的转移。

图1 总体框架Fig.1 Overall architecture

1.2 级联网络结构

1.2.1 芯片目标检测网络

为更好地满足工业上对检测速度和精度的要求,芯片目标检测网络选用轻量化的YOLOv5s模型。YOLOv5s没有使用 RPN生成候选区域,而是直接在卷积神经网络中提取特征来预测物体分类和位置信息,是一种端到端的目标检测算法,主要分为主干网络、neck层和预测层。其中,主干网络采用CSPDarknet53结构,同时引入Focus模块,大大减少层数和参数量;neck网络包含PAN[15]和SPP[16]模块,将高层特征信息与不同层的输出特征进行聚合,加强特征融合能力。经过特征提取后,预测层共得到3种不同尺度的特征图。YOLOv5s中引入了自适应锚框,直接在特征图上设置大小不同的锚框并进行回归和分类。

YOLOv5共有4种不同深度和宽度的模型,为考虑工业中的部署条件,本文采用模型最小的YOLOv5s进行训练,模型结构如图2所示。其中CBL由Conv,BN和LeakyRelu组成,CSP1结构与YOLOv4[10]中的CSP结构一致。实际应用中,芯片种类复杂但形状上具有一定的相似性,如塑封芯片多由矩形塑封体和数量不等的引脚组成。某些特殊情况下芯片同为矩形且引脚数目也相同,此时需要根据更细节的信息如表面的数字标识来判断类型。YOLOv5在类间差异较小的情况下可能会造成类型的误检,因此本文把不同类型的芯片归为一类,专注识别芯片的位置。网络的预测层(YOLOHead)输出为S×S×(5+C)×K,其中S为3种不同尺度的特征图大小,分别为80,40,20,C为对象类别数,取值为1,K为每种尺度下的锚框个数,取值为3。以输出的最大特征图为例,网络的预测层输出大小为(80 pixel×80 pixel×18)。

图2 YOLOv5s网络结构Fig.2 YOLOv5s network structure

在采用YOLOv5s模型对子图进行目标检测后,使用数据整合处理对子图上的结果进行整合,得到大尺寸图像上每个芯片的位置。首先根据芯片位置将单个芯片图像裁剪下来并进行保存,之后按照裁剪顺序将图像传给关键点回归网络进行检测。

1.2.2 关键点回归网络结构

根据芯片的形状特征,本文将单个芯片的4个角顶点作为检测对象,专注识别芯片的4个角顶点。关键点回归网络的具体结构如图3所示。

图3 关键点回归网络结构Fig.3 Key points regression network structure

该模型采用全卷积的结构,网络的输入端为128 pixel×128 pixel×3大小的图像。经过多个大小为3×3的卷积操作和卷积核大小为2×2的最大池化操作来提取芯片特征和降低特征图大小。网络最后输出为大小1×1、通道数为8的特征图,8通道代表4个关键点坐标po=(x1,y1;x2,y2;x3,y3;x4,y4)。网络最后一层用1×1的卷积替代了全连接层,减小了计算参数。损失函数采用smoothL1,计算如下:

(1)

式中,x为真实的点坐标和预测出的点坐标的差值。smoothL1使损失函数值对于离群点更加鲁棒[23],相比于L2损失函数,其对离群点、异常值不敏感,可以有效解决梯度爆炸问题。

2 数据处理过程

2.1 叠加式裁剪算法

叠加式裁剪算法是芯片目标检测网络的数据预处理过程。本文的芯片盛放在透明亚克力防静电成像专用托盘,该托盘同时还是一个翻转机构。为给后续的检测任务提供高清数据集,采用工业CCD扫描仪进行拍摄,得到的图像大小为14 032 pixel×10 208 pixel。其中最小的芯片为140 pixel×70 pixel,最大的为482 pixel×482 piexl。将大尺寸图像输入到YOLOv5s模型中,32倍下采样后的特征图为438 pixel×319 pixel,大于最小芯片所占的像素,由于下采样倍数太大无法保证小目标的检测精度。下采样倍数过小(为8倍)时,网络前向传播需要在内存中保存大尺寸的特征图,会大量耗费GPU资源,容易造成显存爆炸,无法进行正常的训练及推理。因此在图像输入到网络之前,对大尺寸图像进行了叠加式裁剪处理,在保证图像质量的同时引入较少的计算量,适用于检测不同大小的芯片。该算法的输入为1张14 032 pixel×10 208 pixel大小的图像,输出为49张877 pixel×638 pixel大小的子图。在裁剪前,需要先将高分辨率图像的长宽都缩小为原来的1/4,图像大小变为7 016 pixel×5 104 pixel,7 106记作ho,5 104记作wo。裁剪步骤如下:

① 将长宽比4∶4进行图像裁剪,确定出子图大小为877 pixel×638 pixel,877记作hs,638记作ws;

② 将wo的左右2端各留出ws/2的距离,对剩下的宽边(wo-ws)进行三等分,对长边进行四等分;

③ 将ho的左右2端留出hs/2的距离,对剩下的长边(ho-hs)进行三等分,对宽边进行四等分;

④ 将wo,ho的左右2端各留出ws/2,hs/2的距离,对剩余图像的长宽进行三等分。

本文的叠加式裁剪算法使图像之间的重叠程度变为50%,加大了重叠面积,减少了位于图像边缘的冗余子图,可以确保不同大小的芯片都能完整地出现在每一张子图上,减少漏检情况。图4是对实际图像进行裁剪后的效果图,图4(a)为原图,图4(b)~(e)为按上述4步切割后的子图。该方法适同样用于其他大尺寸的图像,只需要确定出子图的标准长宽,即可生成相应的子图。

(a) 原始图像

(b) 裁剪1

(c) 裁剪2

(d) 裁剪3

(e) 裁剪4

2.2 单个芯片裁剪处理

关键点回归网络的输入图像中只包含单个芯片,为确保芯片的4个角顶点都能完整地出现在图像中,避免芯片4个角顶点位于图片边缘而影响检测效果,本文需要裁剪出只包含单个芯片的图像。该方法作为关键点回归网络的数据预处理过程,以芯片的原始水平框为基准,将水平目标框的长宽向外扩展最大边长的10%。图5为裁剪示例,即将图中红色水平框扩展为绿色水平框,并将绿色水平框所包含的图像裁剪下来进行保存。

图5 单个芯片裁剪示例Fig.5 Example of cutting out a single chip

在训练阶段需要求得对应于裁剪图像中芯片的4个角顶点坐标信息。推理测试阶段,第1级网络的检测结果进行单个芯片裁剪处理后将作为第2级网络的输入数据。

2.3 数据整合处理

本文拍摄的图像尺寸较大,因此在推理测试过程中,先使用叠加式裁剪算法对大尺寸图像进行裁剪得到子图,再调用YOLOv5s对每张子图进行目标检测。数据整合处理是将每张子图的检测结果根据裁剪规律映射到其对应的大尺寸图像上,由于子图间有叠加且芯片比较密集,同一个芯片在不同子图上可能会被重复检测到,存在一个目标有多个预测框的情况。针对这种情况,传统的NMS只利用IoU作为评判标准,对大于阈值的框进行剔除,该阈值的选取是靠经验选取,且IoU的计算只考虑了2个框的重叠面积,对于重叠预测框的关系表达不够全面。因此在数据整合阶段,选用DIoU-NMS[14]进行预测框的筛选,DIoU计算如下:

(2)

式中,d为预测框和真实框的中心点之间的距离;c为预测框和真实框组成的最小外接矩形的对角线长度。DIoU考虑了2个预测框中心点的距离,若相邻框的中心点越靠近当前最大得分框的中心点,则更有可能是冗余框,对重叠的目标框有较好的筛选效果,DIoU的原理如图6所示。利用DIoU-NMS[14]对整合后的预测框进行筛选即可得到图像上每个芯片的水平目标框。

图6 DIoU原理Fig.6 DIoU principle diagram

3 实验结果与分析

3.1 实验设置

数据集包括3种不同类型芯片,分别为小外形晶体管、中形封装芯片和无引脚芯片载体。使用rolabelimg对大尺寸图像进行标记,可根据标记信息求出每个芯片的4个角顶点坐标。为获取两级网络的输入数据集,首先对大尺寸图像进行叠加式裁剪共得到7 840张子图,类别统一设置为0,作为第1级网络的输入。其次,根据高分辨率图像的标记信息进行单个芯片裁剪处理,得到6 000张包含单个芯片的图像,同时生成带有芯片角顶点坐标的txt文件,作为第2级网络的训练输入。2个网络所用的数据集都按8∶1∶1的比例划分成训练集、验证集和测试集。

本文的网络训练在GeForce GTX 2080硬件平台下进行。芯片目标检测网络的输入图像大小为640 pixel×640 pixel,关键点回归网络输入图像大小为128 pixel×128 pixel。均采用Adam优化方法,初始学习率设置为0.001,学习率采用指数衰减方式,批量大小设置为64。

3.2 芯片目标检测网络的检测结果

本文的芯片大小不一,无引脚芯片体积约是小外形晶体管体积的2~3倍,密集程度也不相同。YOLOv5s中引入了FPN[17]和PAN[15]结构进行多尺度预测,将高层次的语义信息和低层次的位置信息进行融合,同时利用DIoU-NMS对预测框进行筛选,提高了小目标及密集物体检测的精度,能够满足芯片检测的要求。

小外形晶体管和无引脚芯片的部分检测结果如图7所示,当芯片大于其面积的一半出现在图像中时,芯片都可以被检测出来。中型封装器件的子图检测结果经过数据整合后,得到大尺寸图像中的每个芯片的位置,结果如图8所示。

(a) 小外形晶体管

(b) 无引脚芯片

图8 数据整合结果Fig.8 Data integration results

3.3 关键点回归网络的检测结果

关键点回归网络的损失函数变化情况如图9所示,经过200轮训练后网络逐渐稳定,训练集损失约0.06,验证集损失约0.08。

图9 损失函数曲线Fig.9 Loss function curve

芯片的旋转角度根据点计算得到:

θ=arctan((y2-y1)/(x2-x1)),

(3)

式中,θ为所求的角度;(x1,y1),(x2,y2)分别为芯片的左上角坐标及其顺时针方向的第1个点坐标值,如图10所示。若y2-y1<0,则角度θ为负值,反之θ为正值。物料排序系统中只需要把芯片摆正即可,因此没有考虑字符方向,式(3)求的角度为相对角度。

图10 角度计算示例Fig.10 Angle solution example

关键点回归网络的点回归结果如图11中的第1行所示。由图可知,网络较为准确地回归出了芯片的4个角顶点。利用式(3)求得图11 (a)~(c)的3个芯片的角度分别为39°,13°,-20°。得到角度后,利用旋转矩阵函数来验证角度[18]是否正确。旋转后的结果如图11(d)~(f)所示,3个图像中的芯片都已归正。

图11 关键点回归检测结果Fig.11 Key point regression detection results

3.4 对比实验

为验证级联卷积神经网络对芯片的检测效果,选取3种不同类型的芯片各40张,一共120张图片进行实验,分别以平均角度误差、平均精度、推理时间、模型大小、计算量(GFLOPs)作为实验的评价指标。角度误差是图像的真实角度与预测角度之间的差值,平均精度(AP)是精确率(Precision)与召回率(Recall)曲线与坐标轴围成的面积,计算如下:

(4)

(5)

(6)

式中,TP为真正例;TN为真反例;FP为假正例;FN为假反例。本文将YOLOv5s模型应用于第1级网络进行芯片目标检测。在相同配置条件下使用相同数量的测试集,与目前常用的双阶段目标检测方法Faster R-CNN[9]和单阶段目标检测方法YOLOv3[9]进行了对比实验,分别从平均精度、推理时间和模型大小3个方面进行比较。在进行芯片识别定位时,先对大尺寸图像进行叠加式裁剪处理,即3个模型的输入都为小尺寸子图,再对子图的结果进行数据整合,因此本文的推理时间指的是裁剪、检测和数据整合共同需要的时间。具体实验结果如表1所示。

表1 多种目标检测模型结果对比Tab.1 Comparison of results of multiple target detection models

由表1可以看出,YOLOv5模型的检测精度最高,达到91.5%,其模型远远小于 Faster R-CNN和YOLOv3,检测时间也相对较短。验证了单阶段目标检测模型的检测速度优于双阶段的目标检测。从工业上对检测精度和速度的要求出发,本文选用YOLOv5s进行检测。

为验证叠加式切割算法和DIoU-NMS方法对YOLOv5s模型检测效果的影响,进行了消融实验。第1组实验中对大尺寸图像不进行任何处理,直接输入到模型中进行检测,后3组实验为分别加入不同改进方法后的结果,从平均精度和参数量2个方面进行评估。实验结果如表2所示。

表2 不同改进方法的结果对比Tab.2 Comparison of the results of different improved methods

由表2可以看出,当直接将大尺寸图像输入到YOLOv5s模型中时,检测精度相对较低为81.7%,计算量为264 GFLOPs。经观察发现,该方法对小外形晶体管的检测效果较差,可能是由于将大尺寸图像进行32倍下采样时,造成了小目标信息的丢失,在8倍下采样中,由于输入尺寸较大,需要保留较大的特征图,造成了计算量相对较大。在对大尺寸图像进行叠加式裁剪后, AP值提高了9.8%,计算量为16.5 GFLOPs,经过叠加式裁剪处理后模型检测的是小尺寸的子图,因此计算量大大减少;加入DIoU-NMS后,AP值提高了7.6%;同时加入2种方法后AP值为94.6%,计算量为17 GFLOPs。由实验结果可知,DIoU-NMS提高了重叠物体和密集物体的检测效果,虽然加入DIoU-NMS后带来了0.5 GFLOPs的计算量,但从精度和计算量2个角度综合考虑,本文选用叠加式裁剪和DIoU-NMS结合的方式。

为验证第2级网络关键点回归方法对角度的检测效果,将关键点回归网络与传统图像处理方法中的Hough变换、最小外接矩形法在角度误差和推理时间上进行对比实验,实验结果如表3所示。

表3 不同角度求解方法的检测结果Tab.3 Detection results of different angle solution methods

由表3可以看出,Hough变换求解倾斜角度时间为321.4 ms,最小外接矩形法求解倾斜角度时间为126.2 ms,本文提出的关键点回归网络的方法仅使用43.5 ms就完成了角度求解,且平均角度误差小于其他2种方法。Hough变换根据物体的直线进行角度求解,若图像中有其他干扰芯片出现,检测结果会大大降低;使用最小外接矩形算法时,需要对图像先进行一定的降噪处理,该方法受图像质量的影响较大。关键点回归网络利用较强的泛化能力,不需要对检测图像做其他处理就可以对不同类型的芯片进行检测。

级联后的模型大小为126.3 MB,比原始YOLOv3模型要小很多,完成1张大尺寸图像的位置和角度检测的时间为0.5 s,满足排料需求。最后部署到Jetson Agx Xavier上,将检测到的位置和角度传送给后续的运动控制装置。

4 结束语

本文从提高排料系统自动化装配效率和排料准确度出发,提出了1种级联式卷积神经网络的芯片检测方法。该方法采用级联方式,分步检测芯片的位置和角度,第1级网络基于改进的YOLOv5s模型检测芯片位置,并给第2级网络提供输入图像。第2级网络通过关键点回归的方式,以更简洁快速的方法求得芯片角度。针对大尺寸图像设计了叠加式裁剪算法,在YOLOv5s的预测框筛选和数据整合阶段加入了DIoU-NMS,提高了小目标和密集型目标的检测精度。实验结果表明,基于级联式的芯片检测方法的检测精度高达94.6%,单张图片的检测时间为0.5 s,能够满足排料系统中对检测精度和速度的要求。提升级联网络的检测速度,设计轻量化模型结构将是下一阶段的研究方向。

猜你喜欢
子图关键点尺寸
Top-k频繁子图挖掘的差分隐私保护算法
论建筑工程管理关键点
CIIE Shows Positive Energy of Chinese Economy
肉兔育肥抓好七个关键点
异构属性网络中统计显著密集子图发现算法研究
更换一只更大尺寸的低音炮和再买一只相同尺寸的低音炮 哪种方法比较合适?
交叉立方体的最大导出子图与拥塞
利用定义法破解关键点
机械能守恒定律应用的关键点
佳石选赏