基于特征过滤与特征解耦的域泛化模型
2024-03-12刘坤王丁王静凯陈海永刘卫朋
刘坤,王丁,王静凯,陈海永,刘卫朋
(河北工业大学 人工智能与数据科学学院,天津 300131)
作为光伏发电核心部件的光伏电池在生产过程中不可避免会出现缺陷.这些缺陷会降低光伏电池板的光电转换效率和使用寿命,严重者可能产生安全隐患,因此,生产环节中的光伏电池质量检测是必不可少的.基于机器视觉的光伏电池表面缺陷检测技术对于提升光伏电池产品质量、提高光伏电池生产行业的智能化制造水平具有重要意义.
近年来,基于深度学习的工业缺陷识别方法被不断提出.Chen等[1]提出用于光伏电池表面缺陷分类的多光谱深度卷积神经网络.Su等[2]提出RCAG-Net模型,通过注意力机制提高光伏电池缺陷分类的性能.Yu等[3]提出用于晶圆表面缺陷识别的堆叠卷积稀疏降噪自动编码器.Miao等[4]提出将连续小波变换与卷积神经网络相结合的焊缝缺陷检测模型.Li等[5]提出多层特征融合模块,提升深度检测模型对地铁隧道面缺陷的检测能力.
目前,高度依赖大规模高质量标注数据的深度缺陷识别方法在封闭场景下取得了良好的效果,但在跨场景情况下,某一场景数据训练的深度模型无法应用在其他场景.域泛化方法通过提升模型的泛化能力,使某一场景数据训练的深度模型广泛应用到多种场景中.基于数据操作的域泛化方法[6-10]旨在生成多种不同风格样式的数据,使训练阶段的数据多样化和丰富化,从而提升模型的泛化能力.在基于数据操作的域泛化缺陷识别方法中,Wang等[11]通过使用与目标任务相关的数据对模型进行预训练,并在微调阶段设计噪声正则化策略从而提升缺陷检测的泛化性能.Duan等[12]在数据层面通过原始域和增强域联合更新参数,并在特征层面增加扰动,来提高每个元任务中缺陷识别的泛化能力.基于特征学习的域泛化方法[13-16]则是通过减少不同样式数据间的差异,使学习到的模型能够对看不见的域具有泛化的能力.在特征学习的域泛化缺陷识别方法中,Xie等[17]通过减少由不同材料引起的域偏移的影响,提高模型对射焊接缺陷识别的性能.Zhou等[18]通过集成分割网络和分类网络的2阶段跨域缺陷检测网络挖掘跨域数据中隐藏的价值,从而提升模型对工业产品表面缺陷识别的性能.Ma等[19]设计双编码器从不同分辨率的图像中提取多尺度特征并将这些特征通过跨尺度融合模块进行自适应融合,缓解由跨场景轨道外观不一致引起的域偏移问题.
在以实例级归一化(instance normalization,IN)为代表的基于特征学习的域泛化方法中,Nam等[20]在保证模型泛化能力的同时,通过选择性地使用批归一化和实例级归一化来提升模型对任务特征的把握.Jin等[21]提出风格归一化和恢复模块,利用通道注意力从残差中提取与任务相关的鉴别特征,确保网络对行人重识别任务的识别性.Tang等[22]先进行特征级风格扩充,而后重新校准统计数据来弥合训练分布和测试分布之间的差距,提升模型泛化能力.
实例级归一化仅对不同特征通道做归一化操作,并不能直接参与到缺陷检测的学习过程中,会不可避免地丢失一些缺陷的鉴别特征.为此,本研究提出基于特征过滤与特征解耦的域泛化(feature filtering and feature decoupling based domain generalization,FF-FDDG)模型,该模型通过亮度过滤-残差模块(luminance filtering-residual module,LFR)和对比白化损失(contrast whitening loss,CWL)函数,实现在降低实例级归一化无任务性造成的影响的同时提取亮度不变的缺陷特征,提升模型的泛化能力.所提出的亮度过滤-残差模块通过实例归一化过滤亮度特征,并从被过滤的特征中提取与缺陷相关的特征,缓解实例级归一化无任务性导致的缺陷特征区分性差的问题.提出对比白化损失函数用于解耦特征中的亮度变换特征和纹理特征,引导模型学习亮度不变的缺陷纹理特征,以提升模型在跨场景亮度变换情况下的泛化能力.
1 基于特征过滤与特征解耦的域泛化模型
针对跨场景情况下由图像亮度变换引起的深度缺陷检测模型性能下降问题,所设计的基于特征过滤与特征解耦的域泛化模型如图1所示.图中,CN为特征级风格调换模块.
图1 基于特征过滤与特征解耦的域泛化模型Fig.1 Feature filtering and feature decoupling based domain generalization model
1.1 亮度过滤-残差模块
为了降低实例级归一化无任务性造成的缺陷特征鉴别信息丢失的问题,提出亮度过滤-残差模块,如图2所示.
图2 亮度过滤-残差模块Fig.2 Luminance filtering-residual module
如图3所示为同一张光伏电池图像不同通道的浅层特征在经过实例级归一化前后的可视化结果.可以看出,实例级归一化虽然引入了外观不变性,但实例级归一化后特征中缺陷的鉴别性信息有所下降.
图3 实例级归一化前后的特征对比Fig.3 Feature comparison before and after instance normalization
式中:Fi为第i层特征图,σ (Fi) 和µ (Fi) 分别表 示原特征第i层特征图的标准差和均值,FCN,i为经过特征级风格调换模块后的第i层特征图和分别表示经过特征级风格调换模块后第i层特征图的标准差和均值.
特征级风格调换模块[20]的表达式如下:
经过实例级归一化后F和FCN被剔除的信息可以表示为
式中:FIN为F经过实例级归一化后的结果,FCN_IN为FCN经过实例级归一化的结果.
通道注意力机制可以自适应地提高关注点的表示,从而关注重要特征并抑制不必要的特征,为了从被实例级归一化滤除的信息中提取缺陷相关的特征,使用通道注意力对任务相关特征进行自适应精馏,通道注意力的蒸馏向量可以表示为
式中:ω1和ω2为全连接层参数,Relu 为Relu激活函数,Sigmoid 为Sigmoid 激活函数,pool为全局平均池化.由于F和FCN为同一图像仅经过不同层风格调换的结果,对于Fsub和FCN_sub使用同一a对任务相关特征进行自适应精馏从而降低非必要的计算开销:
式中:ω3为全连接层.
1.2 对比白化损失函数
为了解耦特征中的亮度变化特征和纹理特征,引导模型学习缺陷纹理特征,提升模型的泛化能力,设计了对比白化损失,其计算流程如图4所示.图中,下标S表示拉伸.
图4 对比白化损失计算流程Fig.4 Calculation process of contrast whitening loss
具体而言,分别计算原特征F和 其经过特征级风格调换模块后所得到的特征FCN的协方差矩阵:
式中:IN 为式(1)的实例级归一化,H和W分别为特征图的高度和宽度.2个协方差矩阵的方差矩阵V(V∈RC×C)可以表示为
式中:sqrt 为算数平方根,µ(X)′为X和XCN的均值.
式中:µ(X) 和µ (XCN) 为协方差矩阵X和XCN的均值.方差矩阵V表示相应的协方差对亮度变换的敏感性,更高的方差值表示该部分特征包含更多的特定领域风格,即与亮度变化相关的信息.为了识别这些元素,将方差矩阵V修改为上三角矩阵,即仅保留主对角线元素和主对角线上方元素:
对比白化损失的掩码矩阵M(M∈RC×C)可以表示为
式中:Q为方差矩阵V中所有数值的前n% 的最小的数值.
对比白化损失可以表示为
式中:E表示算术平均值,⊙ 表示矩阵对应位置相乘,||·||1表示矩阵的一阶范数.
最终的损失函数定义如下:
式中:Ldet为不同检测器的检测损失,λ 为对比白化损失的权重,N为对比白化损失所添加到的层数.
2 实验验证
2.1 光伏电池采集设备及缺陷数据介绍
为了验证所提出的方法的有效性,在生产场景采集的光伏电池片缺陷数据上进行实验,光伏电池缺陷检测图像采集设备如图5所示.
图5 光伏电池缺陷检测图像采集设备Fig.5 Acquisition equipment for photovoltaic cell defect detection image
光伏电池电致发光(electroluminescence,EL)图像由近红外相机捕获光伏电池通电后发出的近红外光得到.光伏电池的发电效率不同,且不同成像设备参数也并不完全一致,因此不同光伏电池图像存在亮度差异.不同图像亮度场景下的光伏电池EL缺陷图像如图6所示.图中,c为亮度均值,p为归一化后各个数据集图像亮度均值的分布情况.
图6 不同亮度图像实例及其亮度分布Fig.6 Instances of images with different brightness and corresponding brightness distribution
不同图像亮度场景下的光伏电池EL缺陷图像示例如图6(a)所示,该数据集包含3种不同亮度场景的光伏电池EL缺陷图像,其中SEL_1包含图像1 688张,SEL_2包含图像1 309张,为了在更加广泛的亮度变换情况下进行实验验证,通过图像亮度操作生成了与SEL_1和SEL_2亮度差异较大的SEL_3图像951张.该数据集共包含4类缺陷:开焊、漏焊、碎片以及隐裂,图像的分辨率为398×380像素.由图6(b)3个场景下的图像亮度分布情况可以看出,SEL_1的图像具备最低的亮度均值,SEL_3的图像具备最高的亮度均值,同时3个场景图像亮度统计曲线的峰值之间存在较大差距,即不同场景下采集到的数据具备较大的亮度差异.
2.2 实验环境及参数设置
实验使用的CPU为I7-11700K,GPU为NVIDIA GeForce RTX 3090O24G,操作系统为Win10,网络模型使用PyTorch框架搭建.当检测框架为YOLOv7[24]时,batch size=4,epoch=200,根据经验设置损失函数中的λ=0.2,对比白化损失所添加到的层数N=3.当检测框架为Faster-RCNN[25]时,batch size=4,epoch=100,考虑到检测框架中骨干网络的改变,根据经验设置损失函数中的λ=0.3,对比白化损失所添加到的层数N=2.
2.3 评价指标
为了对所提出方法的性能进行统计性能评估,采用置信度为0.5,IoU为0.3情况下的平均精度 (average precision,AP)的和在所有类别下AP的均值 (mean average precision,mAP)评估不同方法在数据集上的有效性:
式中:Psmooth(i) 为平滑处理的PR曲线第i个均分点的Precision;r1,r2,r3,···,r100为按升序排列的Precision插值段第1个插值处对应的recall值;k为类别数,在本研究中k=4;A Pi表示第i类缺陷的AP.
2.4 统计性能对比
为了验证所提出方法的有效性,分别以YOLOv7和Faster-RCNN这2个检测框架为基线1和基线2,利用不同场景的光伏电池缺陷数据集进行实验,并将所提方法与域泛化方法(实例级归一化(IN)[13]、SNR[16]和CNSN[17])做比较.在每个检测框架下设计6组实验,分别为SEL_1 ⇒SEL_2,SEL_1 ⇒ SEL_3,SEL_2 ⇒ SEL_1,SEL_2 ⇒SEL_3,SEL_3 ⇒ SEL_1以及SEL_3 ⇒ SEL_2,每组实验均使用单一亮度场景数据进行训练,其余亮度数据进行测试.比如,SEL_1 ⇒ SEL_2表示以SEL_1为训练数据,以SEL_2为测试数据.统计性能结果如表1、2所示.定义后文中的跨场景平均mAP为该方法在6组跨场景实验情况下的mAP均值.
表1 YOLOv7上不同场景及不同检测模型下的统计性能结果Tab.1 Statistical performance results for different scenarios and different detectors on YOLOv7 %
由表1可以看出,以YOLOv7为基线1的方法在跨场景情况下的平均mAP为71.45%,在基线1的基础上,实例级归一化(IN)通过降低图像亮度变化带来的影响,将跨场景情况下的平均mAP提升到76.73%;针对实例级归一化无任务性做出改进的SNR通过通道注意力从被实例级归一化滤除的特征信息中选择性地返还缺陷相关特征,在跨场景情况下的平均mAP为78.36%,相较于IN提升了1.51%;CNSN的跨场景平均mAP仅为71.29%,相较于YOLOv7下降了0.16%,可以看出,在跨场景缺陷检测任务中,对同一实例不同特征层间的风格对调不仅不能较好地扩充特征信息,还会破坏缺陷的特征表示.FF-FDDG不仅通过亮度过滤-残差模块解决了实例级归一化无任务性对缺陷特征提取的影响,并通过改进的白化损失引导模型提取亮度不变信息,使得跨场景情况下的平均mAP提升到84.02%,相较于基线1提升了12.57%.
从表2可以看出,以Faster-RCNN为基线2的方法在跨场景情况下的平均mAP为60.94%,在此基础上,实例级归一化(IN)将跨场景情况下的平均mAP提升到63.10%,但受实例级归一化无任务性的影响,在SEL_3 ⇒ SEL_2情况下,其mAP下降到了61.10%.SNR的跨场景平均mAP为61.80%,虽然相较于Faster-RCNN的有0.87% 的提升,但较IN的下降了1.29%,CNSN的则相较于Faster-RCNN的下降了5.01%.FF-FDDG在保证跨场景情况都有性能提升的同时,平均mAP提升到66.20%,相较基线2提升了5.30%.与基线1情况下的统计性能结果相佐.
表2 Faster-RCNN上不同场景及不同检测模型下的统计性能结果Tab.2 Statistical performance results for different scenarios and different detectors on Faster-RCNN %
2.5 消融实验
为了验证所提出的亮度过滤-残差模块和对比白化损失的有效性,分别以YOLOv7和Faster-RCNN为基线1和基线2对所提出亮度过滤-残差模块和对比白化损失进行消融实验,实验结果如表3、4所示.表中,数据均为跨场景平均mAP.
表3 以YOLOv7为基线的消融实验结果Tab.3 Ablation experiment results with YOLOv7 as baseline %
由表3可以看出,相较于基线1,所提出的亮度过滤-残差模块使模型性能提升了12.57%,所提出的对比白化损失使模型性能进一步提升了3.52%.由表4可以看出,在基线2检测框架下,所提出的亮度过滤-残差模块和对比白化损失对模型的泛化都具有正向提升.
表4 以Faster-RCNN为基线的消融实验结果Tab.4 Ablation experiment results with Faster-RCNN as baseline %
2.6 特征图可视化结果
为了验证所提方法的有效性,在SEL_1 ⇒SEL_2和SEL_1 ⇒ SEL_3数据集上,以YOLOv7为基线,IN、LFR和LFR+CWL提取的浅层特征可视化结果如图7所示.
图7 不同场景特征可视化结果Fig.7 Visualization results of features in different scenarios
图中,图7(a)、(b)为SEL_2图像的浅层特征可视化结果,图7(c)、(d)为SEL_3图像的浅层特征可视化结果.由图7(a)、(b)、(c)、(d)的第2列可以看出,受跨场景亮度变化的影响,模型无法提取完整且清晰的缺陷特征.对于大尺度的缺陷,由图7(c)第3列可以看出,实例级归一化的引入使缺陷特征完整地展现,由7(c)第4、5列可以看出,本研究所提出方法进一步降低了亮度变化所带来的影响,使缺陷特征更加完整且清晰.
对于小尺度的缺陷,由图7(a)、(b)、(d)第3列可以看出,实例级归一化的引入降低了细小缺陷的特征表示.由图7(a)、(b)、(d)第4列和第3列可以看出,引入所提出的亮度过滤-残差模块相比较引入实例级归一化的情况,可以更完整地提取小缺陷特征.进一步的,从图7(a)、(b)、(d)第5列可以看出,在所提出的亮度过滤-残差模块和对比白化损失(CWL)函数的共同作用下,模型可以完整精细地提取细小缺陷的特征.
2.7 不同域泛化方法检测效率对比
为了验证所提方法可以在兼顾检测效率的同时达到了较高的检测精度,在YOLOv7和Faster_RCCN检测框架下对比不同域泛化方法的检测速度v和跨场景平均mAP,结果如表5所示.可以看出,FF-FDDG相较于性能最好的域泛化方法SNR在检测速度方面下降了0.76帧/s,但所提方法在跨场景情况下相较于SNR的平均mAP提升了5.01%,综上,FF-FDDG在兼顾检测速度的同时达到了较高的检测精度.
表5 不同域泛化方法检测效率Tab.5 Detection efficiency of different domain generalization methods
3 结语
通过分析现有基于实例级归一化的域泛化方法存在的不足,发现本研究提出的FF-FDDG通过降低实例级归一化无任务性的影响,在跨场景光伏电池表面缺陷数据上具备更强的泛化性能,能够有效缓解跨场景缺陷检测任务中由图像亮度变换引起的深度缺陷检测模型泛化能力差的问题.不过,在更宽泛且亮度变化更复杂的情况下仍有较大的研究空间.同时,同一类缺陷在不同图像亮度情况下边缘信息不明确的情况也会对跨场景情况下的缺陷分割任务带来更大的挑战,仍有待研究.