基于锚点集优化的硅片图像缺陷检测方法
2020-11-02王晓茹张雪英黄丽霞赵利军肖方生王安红
王晓茹,张雪英+,黄丽霞,赵利军,肖方生,王安红
(1.太原理工大学 信息与计算机学院,山西 太原 030024;2.太原科技大学 电子信息学院,山西 太原 030024;3.中国电子科技集团公司 第二研究所,山西 太原 030024)
0 引 言
近年来,随着图像处理技术的发展,用机器视觉代替人类视觉进行硅片图像的缺陷检测,已成为光伏硅片生产线上必不可少的环节。通过对硅片图像中缺陷的形状、类型、面积、位置的分析计算[1],实现大规模工业生产过程的无损检测需求。
然而,由于硅片缺陷图像目标区域小、对比度低、光照不均匀,现有机器视觉算法识别硅片缺陷会存在以下问题:①工业图像对比度低,很难区分背景中的小目标和其它杂物,导致检测精度降低;②卷积神经网络的多层次池化操作会使得目标区域变得更小[2],例如每一个32×32像素大小的区域经过五层卷积后最多输出1个像素;③Faster R-CNN默认的锚点框尺寸较大,训练过程中易导致RPN产生的候选区域和真实(ground truth,GT)区域之间重叠比例小于阈值而被误认为负样本,从而导致硅片缺陷的漏检[3],因此标准检测方法的锚点默认设置不适用于硅片缺陷数据的训练和检测。
基于以上分析,本文提出一种锚点集的优化方法,并将之用于Faster R-CNN网络进行真实工业现场的硅片图像缺陷检测。首先,根据GT box的大小和期望的定位精度,通过数学理论分析,得到优化后的候选窗锚点集,并推导出可提取的最小目标区域的anchor尺寸;最后,通过调整检测阶段非极大值抑制(NMS)获取锚点的数量,提高检测速度。实验结果表明,优化锚点集后网络模型的检测精度和速度都有明显提高。
1 相关工作
领域内对硅片缺陷检测的研究已有大量成果,但大多基于机器视觉的传统技术,主要依赖锐化、平滑等预处理算法和人工设计的缺陷特征[4],会使得检测过程存在较多主观导向,设计过程比较耗时,最终得到的特征也参差不齐,泛化能力差。不同于传统的方法,基于深度学习的Faster R-CNN[5]检测技术近年来取得突破性进展,通过在原始图像中利用区域建议网络采用滑动窗口的方式提取面积尺寸各异的候选锚点(anchor),并直接连接RoI pooling层进行感兴趣区域[6]的选择,实现了真正意义上端到端的实时目标检测,使得精度和速度都得到明显提升。
本文汲取Faster R-CNN框架中RPN网络使用卷积结构产生候选窗的特点,并针对真实工业场景的硅片检测问题,设计和推导优化的候选窗锚点。因而下面将介绍Faster R-CNN检测网络的原理及所用的特征提取网络——深度残差神经网络。
1.1 Faster R-CNN检测网络框架
Faster R-CNN的网络框架如图1所示,主要由卷积特征提取网络(convolution neural network,CNN)、区域建议网络(region proposal network,RPN)、分类定位网络3部分组成。该算法实现步骤为:
(1)将任意大小的图片输入到CNN网络(ZF-Net、VGG、ResNet-50),通过多个激活的卷积层自动提取图像特征,得到具有代表性的多个特征图;
(2)RPN网络使用深度卷积神经网络得到的卷积特征进行区域建议,并自动生成候选框;
(3)将RPN生成的区域建议映射到CNN网络的最后一层卷积的特征图上,然后通过感兴趣区域池化(region of interest pooling, RoI pooling)层得到固定大小的特征图;
(4)利用softmax分类层进行具体类别的判断,同时利用边框回归层获得物体的精确位置。
1.2 深度残差神经网络—ResNet
Faster R-CNN使用CNN网络进行特征提取,这是由于CNN可以避免显式特征的设计和抽取,隐式地从训练数据中进行特征学习[7]。传统的CNN网络或全连接网络在完成图像分类问题时,当卷积层达到一定深度后,其分类精度不升反降,导致网络训练结果达不到预期。为了保证缺陷检测模型的优质性,在基于Faster R-CNN的检测架构中,特征提取的部分采用深度残差神经网络(residual neural networks,ResNet)[8],通过堆叠多个如图2所示的残差块(residual block)结构,来解决网络加深所带来的梯度消失、网络退化问题。
图2 Residual block结构
由图2可知,残差网络ResNet是在叠加的CNN网络基础上使用了一种“shortcut connection”的连接方式,通过直接将输入信息绕道传到输出,只学习残差的方式,保护信息的完整性,简化学习目标和难度。这种连接方式通过反向传播减弱网络层数加深时造成的梯度爆炸问题[9],一定程度上加快神经网络的收敛,达到提高训练精度的效果。
2 本文所提出的硅片缺陷检测模型
针对硅片缺陷图像的特点,本文提出了一种硅片缺陷检测模型——基于优化锚点集的Faster R-CNN模型。首先,使用Faster R-CNN检测网络,以ResNet-50为基准网络进行特征提取;然后,在训练前对数据进行扩充,防止过拟合;最后,根据期望的定位精度,通过数学理论分析推导出一种优化的锚点集,并利用优化后的锚点集训练缺陷检测模型。其整体检测流程如图3所示。
图3 硅片缺陷检测流程
2.1 Faster R-CNN和ResNet-50的融合网络
本文采用一种两阶段的Faster R-CNN网络检测技术进行工业场景的硅片图像缺陷检测。首先通过RPN网络预先产生优化的候选锚点,生成感兴趣区域,然后利用ImageNet上预训练好的权重模型对RPN和Fast R-CNN联合训练,使得缺陷检测模型很快趋于收敛,得到优化的硅片缺陷检测模型。
为了获得缺陷图像的深层语义信息,在特征提取网络部分,选用ResNet-50模型,且残差网络在ImageNet上进行了预训练。在工业背景下,由于硅片检测要求复杂度小,功耗低,因此选择ResNet-50的浅层结构进行特征提取,然后将第五层卷积网络结构附着在RPN之后。这里每个残差块都采用瓶颈结构,包含两个1×1的卷积操作,第一个1×1卷积是为了减少输入的特征图数量,第二个1×1卷积是为了保证卷积的同时完成维度上的适应,这样既能减少计算量,又能通过3×3卷积融合各个通道的特征。具体结构如图4所示。
图4 ResNet-50中的残差块
ResNet-50是由16个图4所示的残差块堆叠而成的50层网络,详细结构信息见表1。在神经网络中,网络模型的深度对检测性能会产生重要的影响,通常,卷积神经网络模型越深,检测精度越高[10]。因此,实验部分还比较了几种不同的CNN架构(ZF-Net、VGG),研究不同深度的卷积特征提取网络对检测性能的影响。
2.2 目标函数
所提模型的损失函数L如下所示
表1 ResNet-50网络结构信息
2.3 训练集构建
硅片缺陷主要包括缺角和裂纹两种类型。由于工业生产环境下的有缺陷的硅片较少,而且工业相机采集等设备上的客观因素,导致实验原始数据集数量较少,无法满足大型卷积神经网络的训练要求,且训练过程容易产生过拟合。因此,本文通过将原始图像进行对称、旋转、镜像以及调整亮度等方式扩充训练样本,通过同态滤波增强目标区域和背景的灰度差异,如图5所示。
图5 训练集示例
2.4 锚点集的问题分析及优化推导
2.4.1 固定尺度锚点的不足分析
在区域建议生成阶段,RPN会预先设置一个固定尺寸的锚点,通过变换尺度(scales)和长宽比(ratios),每个像素特征点会对应k(k=scales×ratios)个锚点,为了训练RPN,Faster R-CNN为每个锚点分配一个二值类别标签[11],通过判断预测的锚框与真实框GT box之间的重叠比(intersection over union, IoU)来判断是否为正标签,通常认为IoU≥0.7的锚点为正标签。
传统的Faster R-CNN生成锚框时,尺寸建议使用类似{1282,2562,5122}的二次幂,长宽比选取{1∶1、1∶2、2∶1},这种锚点选择在VOC 2007之类的数据集上表现很好,在这些数据集中,目标区域通常相对较大,占总图像面积比例也相对较大,因此这些锚点大小更适合于大型对象。对于硅片缺陷图像中以裂纹缺陷为代表的小目标对象,锚点尺寸的默认设置太大,通常导致训练过程中候选区域和目标区域的交并比小于阈值而产生漏检,虽然ResNet通过增加跨连接层来规避局限性,仍无法顾及到更多的边界细节。为了解决这一问题,通常使用二进制方案添加额外的锚点,但是这种方法可能无法生成具有足够重叠的锚点集[12]。本文从理论上估计锚点的大小,结合硅片缺陷检测问题,设计并使用性能更好的候选框。
2.4.2 锚点集的优化推导
如图6所示,假设Sgt是真实框Bgt的边长,Sa是锚点Ba的边长,当Sa≥Sgt时,锚框Ba和真实框Bgt的交并比可以表示为
(1)
图6 锚框大小选择
(1)锚点集的最大值
针对图6(a)所示的情况,假设Sgt与Sa正相关,相关因子为a,即Sa≥aSgt且a≥1,则IoU表示为
(2)
通常在检测中,当IoU超过一定的阈值t时才能将RPN产生候选框归类为正例,即IoU≥t,求解Sa,可以得到
(3)
特殊地,对于Sa=aSgt时,有
(4)
(2)锚点集的最小值
为了研究特征图分辨率对RPN识别小目标的潜在影响,考虑图6(b)中的情况,假设正方形真实框Bgt,存在具有相同尺度和高宽比的锚框Ba,在最坏的情况下,这两个框彼此相隔一定距离d/2[14],这些框之间的IoU可以表示为
(5)
对于式(5),求解IoU(Bgt,Ba)≥t时的Bgt,对于最小可检测物体的尺寸,得到以下关系
(6)
从方程(6)可知,假设t=0.5,求解可得最小可检测物体的尺寸大小为Sgt≈44px,其中px为像素,这表明对于卷积块的末端,需要产生更高分辨率的特征图,对于conv4特征图(d=8),最小可检测物体的尺寸大小为Sgt≈22 px,因为用于分类的对象都大于30 px,且锚点的选用采用二进制方案,所以,选用的最小锚点尺寸为32。
综合以上分析,并通过表2中硅片数据集中缺陷区域的平均大小,可以计算得出锚点集A={32,45,64,128,181,256}。
表2 硅片缺陷数据集构成
3 实验与分析
本文实验在caffe的开源平台下进行,系统环境为台式机(Intel Xeon(R) CPU E5-2620 v4 @ 2.10 GHz×14,128 G内存),采用NVIDIA GTX 1080Ti的GPU进行并行加速。网络训练过程中设置初始学习率为0.001,动量为0.85,权重衰减率为0.0004,采用随机梯度下降法优化训练,总迭代为7万次。
3.1 实验数据集
实验所采集到的图片为1812张硅片缺陷图像,大小为2048×1700,类别为裂纹和缺角两类,其中裂纹又根据尺寸分为4种类型:点状、线形、裂缝、断裂,这两类硅片缺陷数据集构成见表2。其中,训练集图片数量为1500张,包括1000张裂纹图片和500张缺角图片;测试集图片数量为312张,包括212张裂纹图片和100张缺角图片。且裂纹图片中每张图片含有2-3个不同大小的裂纹缺陷。
3.2 实验结果与分析
实验选用平均准确率均值(mean average precision,mAP)作为硅片缺陷检测的主要性能指标。为了评价本文方法的性能,我们从特征提取网络的选取、锚点集的优化、不同锚点数量的对比这三方面进行实验。
3.2.1 特征提取实验
Faster R-CNN使用CNN网络进行特征提取,CNN的结构对特征学习能力至关重要,因此,本节分别使用基于ZF-Net、VGG和ResNet-50几种卷积网络的Faster R-CNN模型对硅片图像进行检测,研究特征提取网络对检测性能的影响,检测结果见表3。
表3 不同特征提取网络的Faster R-CNN模型识别性能对比
从表3可以看出,使用较大型的VGG16网络和更深的ResNet-50网络训练时mAP均能达到91.5%左右,由此可见,卷积神经网络模型越深,检测精度越高,因此,后续实验选用VGG16和ResNet-50作为基准网络进行实验对比。表3也可得到,对于硅片缺陷类型而言,缺角可以100%检测到,但裂纹的检测效果较差,这是由于裂纹图像中的绝大部分缺陷区域面积都较小,在锚点中所占的比例也就很小,多为小目标检测,这样在训练过程中由于候选区域和GT重叠比例过小而被标定为负样本并舍弃,因此针对裂纹图像特点的实验设计是本文的重点。
3.2.2 锚点集优化的实验
为了验证锚点集理论推导的有效性,本文在裂纹数据集上评估了锚点大小的选择,实验结果见表4。
表4 所提的优化锚点集训练模型的平均准确率对比/%
从表4中可以看到,根据GT图像集合推断得到的锚点集方法比无优化的Faster R-CNN效果更好,使裂纹缺陷的检测准确率获得明显的提升,这是因为优化后的锚点集更好覆盖了数据集中的小目标区域,对面积较小的目标检测更具有代表性。另外,VGG网络的准确率提升了1.8%,ResNet-50提升了4.2%,这说明,由于网络层数的加深,以及锚点集的重新选择,ResNet-50可以学习更多的特征信息,拥有更强的表征能力,也提高了Faster R-CNN网络对小目标的敏感度和鲁棒性。
3.2.3 不同锚点数量的对比实验
综合以上实验,理论优化锚点集之后可以很好覆盖标记的GT图像,提高裂纹缺陷检测率,且ResNet-50有对小目标较强的敏感度,因此本节选用ResNet-50为基准特征提取网络,基于优化后的锚点集对裂纹和缺角两种缺陷进行检测。
为了提高检测速度,Faster R-CNN算法在非极大值抑制(non-maximum suppression,NMS)后用了300个锚点进行检测[15],而重新选定的锚点集可以很好地覆盖目标区域,因此,减少NMS后选用的锚点数量,对比实验结果见表5。
表5 所提方法的缺陷检测结果对比
由表5可知,根据GT图像优化锚点集后的Faster R-CNN,不仅对裂纹区域的检测结果明显提升,对缺角区域的平均准确率依旧100%,这是由于RPN产生锚点时会变换不同的尺度和长宽比,缩放比例后的锚点可以很好覆盖不同大小的硅片缺陷类型,从而对较大面积的缺角区域检测准确度不会有所影响。另外,调整NMS后选取的候选框数目后,虽然精度相比94.25%略微有所损耗,但检测速度获得显著提升,可以在不损失精度的情况下提升检测速度,实现缺陷区域的精确定位。
3.2.4 缺陷检测结果可视化
基于优化锚点集的Faster R-CNN硅片图像缺陷检测结果如图7所示。图7(a)是对裂纹的检测结果,图7(b)是对缺角的检测结果,从这些结果中可以看出对于不同大小的两种缺陷,由于重新选择了新的锚点集,因此裂纹和缺角都可以实现精确检测与定位。在检测结果中,方框代表模型所检测出的缺陷的具体位置,其上方字母及数字代表模型对缺陷区域的分类结果:硅片图像缺陷分类及类别得分。
图7 硅片缺陷检测结果可视化
4 结束语
根据复杂的工业生产背景下硅片缺陷图像的数据特点,提出了一种优化锚点集的缺陷检测方法,解决了传统检测技术中模型参数和数据特点不匹配的问题。针对该问题,从期望的定位精度中推导出提取的最小缺陷区域的大小,得到优化的锚点集,并用于训练缺陷检测模型,从而提高了Faster R-CNN对裂纹图像的检测精度和效率。从实验结果和分析可以看出,在不损失精度的情况下,提出的检测模型实现了检测速度的大幅度提高。尽管通过深度学习技术实现的检测方法准确率较高,但这些方法时间复杂度较高,因此,为了建立高效的缺陷检测系统,下一步的研究工作包括网络结构的优化和检测速度的进一步提升。