曹鹏娟,王明泉,范 涛,朱榕榕,刘嘉宇
(中北大学仪器科学与动态测试教育部重点实验室,山西 太原 030051)
随着生产集成电路方法的改进,BGA封装技术应用性变高,且封装手段越来越难,在BGA焊点的检测上,由于基板附着在BGA的上方,采用传统的可见光手段难以穿透基板,无法获取球栅阵列的语义和视觉信息。由于X射线具有强穿透性,能对基板下的BGA特性进行定性、定量描述,因此,在工业生产中,利用X射线对球栅阵列进行检测具有一定的必要性和不可替代性。而被X射线透射后的BGA图像有噪声大、对比度低等缺点,使得BGA检测图像中的背景和目标较难区分,检测图像易混叠,识别难度较大。
近年来,许多学者对BGA焊点空洞缺陷的检测算法进行了大量的研究。张瑞秋[1]利用Fisher函数对焊球中的缺陷进行定量判断;李乐等[2]采用Otsu阈值分割法完成焊球的轮廓提取,再对BGA焊点中的气泡使用Blob分析法来进行连通性分析,完成气泡的选择;张俊生等[3]采用一种动态阈值分割算法提取出焊球区域和气泡区域,实现对缺陷的分割。上述传统数字图像处理算法受X射线图像的影响大,存在检测精确度低、泛化性差和效率低的问题。卷积神经网络之类的深度学习在缺陷检测等任务中显示着出色的性能。基于CNN的焊点缺陷检测方法很多,如CNN网络[4]、神经网络Mask R-CNN[5]、 3D CNN网络[6]和FCN网络[7]等。然而基于神经网络的检测算法在运行中消耗的内存与时间资源都很大,且准确率有待提高,并不具备工业检测的实时性需求。而且近年来以U-Net为例的语义分割网络在分割任务中展现出了优势,U-Net是Ronneberger等在2015年提出的一种网络模型,是近几年医学图像分割中最流行的一种网络结构[8-10]。但含有BGA封装的印刷电路板往往是多层结构,且印刷电路板尺寸小,焊点边缘气泡的像素与背景的像素对比度差。
针对以上问题,本文提出一种改进的U-Net。在原有U-Net结构框架基础上,将传统的卷积层替换为密集连接的深度可分离卷积层,以此来减少计算量,添加密集块可以增强信息流,缓解梯度消失,提高模型的分割性能。在编码与解码部分加入多尺度跳跃连接,加强特征融合,减少特征描述上的差异。
BGA焊点空洞检测是印刷电路板在质量检测中最重要的工序之一,而且印刷电路板X射线图像背景复杂、灰度分布不均匀,在检测中往往有很大的挑战。但是焊点空洞缺陷分布芯片四周的焊球内部,并且缺陷种类均为气泡缺陷,其语义信息较为简单明确。同时,在实际生产过程中,印刷电路板中BGA焊点气泡缺陷率较低,相较于医学图像,缺陷工业数据集的获取较为困难,且人工标注难度较大,检测效率要求较高。因此,分割模型应满足少量数据即可达到较高准确率、检测速度及较小的内存的要求。
因此,本文在U-Net分割模型基础上进行改进,保留了U-Net端到端的结构,并且包含由密集连接的深度可分离卷积和多尺度跳跃连接。本文所提出的改进U-Net的网络架构如图1所示。该网络模型受MobileNet[11]的概念启发,在U-Net架构上进行改进:采用深度可分离卷积替代常规卷积减少网络特征提取计算量;采用密集连接架构防止网络梯度消失;采用简易的多尺度跳跃连接加强语义信息的融合。
图1 改进U-Net网络架构
针对传统U-Net分割网络中常规卷积单元运算量较大导致网络性能差的问题,提出采用深度可分离卷积单元替代常规卷积单元,在降低U-Net网络整体运算量的同时提升网络表征效能[12]。
深度可分离卷积在处理单次卷积运算时分解为深度卷积和点卷积。深度卷积在输入的每个通道上独立进行,逐点卷积再进行1×1卷积将深度通道输出映射到新的通道空间。
图2和图3为常规卷积单元和深度可分离卷积单元的对比示意图。
图2 常规卷积
图3 深度可分离卷积
在卷积运算中,输入特征映射的大小为Pf×Pf×K并与特征映射m生成大小为Pm×Pm×L的输出,其中,Pf为输入特征映射的空间宽度和高度;K为输入通道的数量;Pm为输出特征地图的空间宽度和高度;L为输出通道的数量。然后,对于尺寸大小为Pn×Pn×K×L的卷积核N进行常规卷积运算,运算量为
Gc=Pn·Pn·K·L·Pf·Pf
(1)
在深度可分离卷积中,运算量是深度卷积和点卷积的总和,即
Gd=Pn·Pn·K·Pf·Pf+K·L·Pf·Pf
(2)
结合式(1)和式(2),减少的运算量为
(3)
式(3)表示与传统卷积相比,深度可分离卷积的计算需求减少,从而使网络的计算和参数量大大降低。
由于U-Net的网络深度执行小目标的分割任务时精度不高,而直接添加网络层数虽然可以解决小目标缺陷的分割问题,但是更深层次的神经网络在网络训练中容易出现梯度消失和冗余计算的问题。所以为了克服上述问题,本文引入了密集连接的思想。
本文受DenseNet[13]的启发,在轻量密集连接单元中,采用dense block作为本文改进U-Net的主要构建块。DenseNet使用常规的卷积层,具有参数简单、消失梯度最小化和特征重用的优点。本文设计了一种轻量化的dense block作为本文改进U-Net的主要构建块。轻量密集连接单元的基本结构如图4所示,与DenseNet不同的是,本文的轻量密集连接单元的卷积层都是深度可分离卷积层。
图4 轻量密集连接单元
轻量密集连接单元第一层是深度可分离卷积单元、批量归一化(batch normalization,BN)、修正线性单元(rectified linear unit,ReLU)激活函数、另一个深度可分离卷积和1个Dropout层。如图4中的黑色虚线箭头所示,第1个深度可分离卷积单元也紧密连接到Dropout层。通过这种改进机制,轻量密集连接单元保持了原始密集连接块有极高的特征重用性的优点,与此同时,轻量密集连接单元需要的参数数量更少。
在U-Net体系结构中,编码器和解码器的每一层之间都存在跳跃连接,编码部分在下采样之前和解码部分的上采样操作之后存在跳跃路径。在最大池化操作期间,空间信息会丢失,跳跃连接有助于网络将信息从编码端传播到解码端。然而,在特征融合过程中,跳跃路径通常会出现语义鸿沟的问题,编码部分的第1层低级特征连接到处理更多高级特征的解码器的终端层。此外,由于BGA焊点气泡的大小、形状和位置的变化增加了检测的复杂性,因此,必须保留低级和高级特征以进行详细分割。
为了减少编解码特征之间的差异,增强特征的融合,本文在MultiResUNet[14]的基础上做出了改进,同样利用了Inception V2中Inception module优良的局部拓扑结构网络,在编码器和解码器之间集成了1个多尺度的Inception模块,目的是增强在编码侧所提取到的低级语义特征。通过这种方法,在与解码器侧的高级语义特征合并之前,低级特征将进行进一步的处理,并且通过增加网络的深度和宽度在保持计算预算不变的同时还提高了计算资源的利用率。
事实证明,Inception模块扩大了感受野而且可以获取更多的上下文信息,增强了对底层特征的描述能力。这种方法是处理BGA的X射线图像中焊点的形状、大小和位置这类可变性问题的关键。
在本文所提出的轻量密集连接单元中,使用了2个大小为3×3的深度可分离卷积层进行特征提取。在多尺度跳跃路径中,本文使用了3个大小为3×3的深度可分离卷积块代替MultiResUNet中MultiRes block的常规卷积,减少网络的计算需求,如图5所示。
图5 多尺度跳跃连接架构
该设计将3个大小为3×3的深度可分离卷积块的输出串联起来而不是串联较大的5×5和7×7的卷积块,这样可以增强感受野,同时减少编、解码部分之间的语义差距。为了使学习过程更加稳定,卷积之后的输入和输出必须大小相同,因此,在跳跃路径中还引入了1×1卷积块的残差连接用来匹配深度。
本文算法所需的数据集是使用Labelme软件标注好的BGA数据图像,数据集包含1 200张BGA焊点的射线图像,训练集图像格式保存为jpg格式,对应的标签图像保存为png格式。
本文所使用的计算机配置为RTX2080显卡,内存为16 GB,Windows10操作系统,软件编程环境为 Python 3.7。
在训练过程中,将Batch Size 设置为2,选用Adam作为优化器自适应调整步长,将初始学习率设置为 0.000 1,epoch设置为60,使用二值交叉熵损失函数为
(4)
f为样本的数量;i为像素点;pi为像素点i的真实值;qi为像素点i的网络预测值。
2.3.1 网络性能分析
为了判断本文所提模型对缺陷部分的分割效果,采用Apixel表示像素精度、SF1表示F1系数、Cdice表示Dice系数作为评价指标。评价指标为:
(5)
(6)
(7)
PT为样本预测正例的同时真实标签也为正例;NF为样本被预测为反例而真实标签为正例;PF为样本被预测为正例的同时真实标签为反例;NT为样本预测为反例且真实标签为反例。
为验证本文所提网络相较于传统深度学习分割算法FCN网络、U-Net网络具有更好的鲁棒性和分割精度,在自建数据集上进行了对比实验,所测试网络均使用Adam优化器,设置训练轮数为60。表1分别给出了FCN、U-Net和本文方法的Apixel、Cdice、SF1、网络占用内存大小和网络收敛轮数。图6为损失函数值变化曲线。
表1 本文方法与其他方法的对比
图6 损失函数值变化曲线
由表1可以得出,在自建的BGA射线图像的数据集中,本文所提出的改进U-Net算法的精度为0.906,分别比FCN与U-Net提升了0.039和0.015。并且本文所提网络的Cdice为0.845,优于FCN与U-Net网络0.052和0.029,而SF1分别优于FCN与U-Net网络0.045和0.028。
本文所提算法相比FCN与U-Net,在保持较好分割精度的同时网络计算开销较少,网络整体占用内存大小仅134 MB。从图6中可以看出,本文所提网络收敛速度相比其他2种网络显著加快,网络训练17轮时已经收敛。
2.3.2 分割结果对比
实验在BGA数据集上进行,实验中将原始图像调整到512像素×512像素分辨率,各网络的模型实验结果如图7所示。
图7 3种不同算法的结果对比
图7a为原始图像,图7b为标注后的标签图像。图7e表明,本文提出的改进网络在分割细节上优于其他2个网络。而FCN、U-Net会受到X射线图像灰度分布不均匀和图像噪声的影响,错误地将2个噪声位置当作气泡分割出来,导致其误判率较高。与此同时,本文算法对气泡的分割更加精确,对气泡的边缘分割更精细,虽然也会受到噪声的干扰,但是在缺陷的整体分割和细节部分的分割中取得了不错的效果,基本可以达到人工标注的效果。
本文根据分割后的结果进行原图映射,对焊点的空洞缺陷进行标记,标记为白色,并使用白色轮廓线标记出焊点区域,如图8所示。然后分别统计提取出的BGA焊点和空洞缺陷区域的像素个数,统计得出BGA焊点的等效面积,记为SBGA和空洞的等效面积,记为Svoid。空洞面积与焊点面积的比值为该焊点的空洞率L。
图8 BGA焊点标记
根据国标IPC-A-610G中对焊点空洞率的可接受性标准表明,焊点中只存在1个空洞时,该空洞面积不得超过焊点面积的25%,否则判定该焊点为不合格;当焊点中存在多个空洞时,该焊点内的所有空洞面积之和不得超过焊点面积的 20%。本文对图8中BGA焊点的缺陷结果进行分析,分析结果如表2所示,在9个标记的焊点中,编号为3、4、9的焊点对应的空洞率分别为13.78%、17.88%、3.66%,判定焊点质量为合格,其余焊点质量均为不合格。
表2 BGA焊点缺陷结果分析
本文在BGA焊点X射线气泡缺陷检测中,针对基于深度学习的图像分割算法检测效率较低的情况,提出了一种基于改进U-Net的球栅阵列缺陷识别方法。基于U-Net经典网络模型,提出:将常规卷积用深度可分离卷积单元替换,减少网络使用参数量,降低运算时间;在主干网络中的深度可分离卷积单元中,使用密集连接方法将卷积模块紧密连接在一起,增加特征重用性提高网络运算精度;添加多尺度跳跃连接减少编解码特征之间的差异,有利于特征的传播。最后将FCN、U-Net网络与本文的改进U-Net进行对比实验,实验结果表明,本文改进的U-Net模型网络在减少网络计算复杂度的同时提升了网络性能,在像素精度、Cdice和SF1上分别达到了0.906、0.845和0.863,能够提升BGA焊点气泡的检测效率。