周报内容:
- CVPR2022论文一篇
- 使用PP-YOLOE+M模型进行PCBA板缺陷检测
- 下周工作计划
学习产出:
一、论文笔记
Self-Supervised Predictive Convolutional Attentive Block for Anomaly Detection
1.介绍
现有的CNN框架能提取到一个层次化的特征,从low-level(边、角)到high-level(语义特征,如车轮、鸟头等),但是缺乏一种把这些局部特征整合起来的能力。因此提出SSPCAB进行一个重建自监督学习任务来学习这些局部特征的整体结构。
原始特征经过该block达到增强特征的效果(让特征在正常和异常图上的差异变大,只在正常图像上训练)。它使我们能够在神经网络中的任何层 (不仅在输入处) 掩盖信息,并且它可以集成到广泛的神经体系结构中,非常通用。
思路:
当该block整合到一个基于正常训练样本训练的CNN中时,SSPCAB将只学习正常样本的全局结构,而当在测试时出现异常数据样本时,模块可能会提供较差的重建。因此,我们可以检测重建的质量,并利用重建结果来区分正常和异常样本。
2.具体结构
SSPCAB由一个被整流线性单元 (ReLU) 激活的masked卷积层和一个通道注意模块(这里用SE)组成。
图一 自我监督预测卷积注意力块 (SSPCAB)
(1)masked卷积
思想:利用像素处周围的像素值预测此处的值,增加模型对相对位置信息的把握能力。
一个核包含四个子核,在输入张量X的某个位置执行的卷积运算仅考虑这四个子核所在位置的输入值。四个子核的输出做sum作为M位置(mask)的输出。感受野的中心为 M,大小为1。输出张量Z的空间尺寸与输入张量X的空间尺寸相同。
图二 masked卷积核结构
(2)通道注意模块
Masked卷积的输出由该模块处理,并计算每个通道的注意分数。采用SE模块对信道方向的特征响应进行自适应重新校准,增加SSPCAB的建模能力,并在整个框架的输入和输出之间实现非线性处理。
首先,在每个通道进行全局池化,将特征块的每个通道的特征矩阵求平均值,这样每个通道只有一个值。再将这些值经过一个ReLU激活的FC层,和一个sigmoid激活的FC层,得到一组channel attention权重,将该权重加载到原始特征图各个通道上的输出,保持输入输出维度不变。
(3)重建损失
使用自监督学习方法重构masked区域来训练block。
我们将自监督重建损失定义为输入和输出之间的均方误差 (MSE):
当将SSPCAB集成到各种具有其自身损失函数的神经模型F中时,我们的损失可以简单地添加到相应的损失中。
3.实验
(1)数据集
MVTec AD:包含来自10个对象类别和5个纹理类别的图像,总共有15个类别。有3629张无缺陷训练图像和1725张有或没有缺陷的测试图像。
(2)初步结果
在DRAEM和CutPaste上加入SSPCAB进行实验,效果有所提高。
在基本架构之上添加基于MAE损失的掩蔽卷积层后,我们观察到显着的性能提升,用MSE替换MAE损失函数时,性能进一步提高。且通道注意(CA)模块的效果更好。
(3)消融实验结果
将SSPCAB放在网络的不同位置
结论:放在后面好一点
使用不同大小的mask M
结论:区别不明显
4.借鉴之处
该块需要整合到 使用正常样本训练的模型中,而我们的模型训练集为缺陷样本。
《Anomaly Detection for Solder Joints Using β-VAE》论文((14条消息) 2022/9/26-9/30 周报_嘿!947的博客-CSDN博客)
中提到的模型就需要使用正常样本进行训练,如果后期正常样本充足,可尝试作为备选方案。
二、基于PP-YOLOE+的PCBA缺陷检测
1. 原样板进行了拍摄、裁剪、标注。模型测试结果有所提升,但不排除是数据泄露造成的。
2. 对原样板加工产生缺陷。
三、下周工作计划
对处理过的样板进行标注和数据增强,保留一些未训练过的样本进行测试(之前用的是飞桨数据集进行裁剪处理后的图片)。 并增加新的缺陷类型——拉尖。