1.基于知识蒸馏的零样本工业异常检测方法,其特征在于,包括训练阶段和测试阶段;
训练阶段包括以下步骤:
选取任一类别工业产品中的正常工业图像和异常工业图像,进行预处理后,构建成训练集;
构建知识蒸馏网络架构,包括教师模型、学生模型、图像编码器和文本编码器,其中教师模型采用预训练的DINO模型,学生模型包括轻量级特征匹配模块和文本注意力模块;
利用训练集数据对教师模型进行训练,将训练好的教师模型中的知识转移到学生模型中;
测试阶段包括以下步骤:
构建工业异常检测模型,将测试集中的待检测图片输入至工业异常检测模型中,得到检测结果;其中工业异常检测模型包括图像编码器、学生模型和文本编码器;
利用训练集数据对教师模型进行训练,将训练好的教师模型中的知识转移到学生模型中的步骤包括:将训练集中待检测图像输入至图像编码器中,得到四层待检测图像特征 ,其中 为第一层图像特征, 为第二层图像特征, 为第三层图像特征, 为第四层图像特征;
对四层待检测图像特征进行处理,得到对应的相关性矩阵 ,公式为:,
式中, 为 矩阵的转置矩阵;
将相关性矩阵 输入至轻量级特征匹配模块进行特征转换,得到特征图 ,公式为:,
式中, 表示由两层 归一化卷积层组成;
将同样的待检测图像输入至预训练的DINO模型,得到四层待检测图像特征,其中 为第一层图像特征, 为第二层图像特征, 为第三层图像特征,为第四层图像特征;
计算DINO模型输出的四层特征各自点积后的相关性矩阵 ,公式为:,
式中, 为 矩阵的转置矩阵;
采用二元交叉熵损失BCE计算图像编码器输出转换后的相关性矩阵与 DINO模型输出转换后的相关性矩阵之间的差异,公式为:,
式中, 表示二元交叉熵损失;
利用 训练轻量级特征匹配模块,选择损失最小的模型作为最终的轻量级特征匹配模块;
将第四层图像特征 进行处理后输入至3个不同并行分支的多尺度特征映射模块中,得到特征图 ,使特征图 的维度与文本编码器相同;
将待检测图像的正常状态与异常状态构造成固定格式的文本提示模板,并将特征图对齐到文本嵌入空间;
生成待检测图像的异常粗热力图;
将待检测图像的正常状态与异常状态构造成固定格式的文本提示模板,并将特征图对齐到文本嵌入空间的步骤包括:构造成固定格式的文本提示模板H,表示为:,
式中, 是固定文本部分, 表示物体的状态,包括good和damaged,对应正常和异常; 表示r个可学习类别标记;
通过文本提示模板H生成正常 与异常文本 ,分别表示为:,
,
将正常文本和异常文本映射到嵌入空间,分别得到特征图 ,其中C表示文本编码器的嵌入维度, 表示文本长度;
将特征图 使用全局平均池化进行降维,以提取全局特征,得到特征图 ,公式为:,
式中, 表示全局平均池化操作;
将 表示为 ,然后通过残差相加以更新类别标记 ,表示为:,
式中,表示初始化时随机生成的标记;
更新后的类别标记被重新注入到正常文本与异常文本中,形成视觉引导后的文本,分别表示为:,
,
式中, 表示视引导后的正常文本, 表示视引导后的异常文本;
将 和 通过文本编码器映射到嵌入空间,得到最终的正常文本特征 和异常文本特征 ,分别表示为:,
,
式中, 表示线性变换操作, 表示归一化操作。
2.根据权利要求1所述的基于知识蒸馏的零样本工业异常检测方法,其特征在于,将第四层图像特征 进行处理后输入至3个不同并行分支的多尺度特征映射模块中,得到特征图 的步骤包括:将第四层图像特征 去除表示全局特征的类别标记,仅保留表示局部特征的补丁级标记,然后调整大小为预设尺寸,得到特征图 ;
将特征图 分别输入至3个不同并行分支,得到三个不同的特征图 、 和,公式分别为:,
,
,
式中, 表示标准 卷积, 表示标准 卷积; 表示膨胀 卷积,R表示张量的维度空间;
接着在通道维度上拼接原始特征 与各分支提取的多尺度特征,得到特征图 ,公式为:,
式中, 表示通道维度上的拼接操作,使用一个1×1卷积 对特征图 进行降维,得到特征图 ,公式为:,
最后,应用残差连接将特征图 与特征图 相加,得到特征图 ,公式为:。
3.根据权利要求2所述的基于知识蒸馏的零样本工业异常检测方法,其特征在于,使特征图 的维度与文本编码器相同的步骤包括:将特征图 重新展平至一维,得到特征图 ,公式为:,
式中, 表示展平操作;
然后通过一个1×1卷积层作为线性投影层 进行特征变换,得到特征图 ,公式为:。
4.根据权利要求3所述的基于知识蒸馏的零样本工业异常检测方法,其特征在于,生成待检测图像的异常粗热力图的步骤包括:针对四层待检测图像特征 ,去除类别标记,仅保留补丁标记,得到特征图,表示为:,
式中, 表示去除待检测图像特征的类别标记;
接着对四层特征图 进行线性投影,得到投影特征图 ,表示为:,
对于每一层 的投影特征图 ,计算每个补丁和正常文本特征 与异常文本特征 之间的余弦相似度 与 ,表示为:,
,
对于每一层图像特征,计算正常与异常匹配得分的差值,得到每一层的异常得分矩阵,表示为:,
接下来进行生成多层热力图并进行合并操作:首先将每一层的异常得分矩阵 重塑为 的二维矩阵,表示为:,
式中, 表示矩阵大小重塑操作;
然后将四层异常得分矩阵进行均值融合,表示为:,
最后为了将补丁级别的异常得分映射到原始图像空间,需要进行双线性插值,表示为:,
式中, 表示上采样操作, 表示图像原始大小, 指定上采样采用的方法为双线性插值;
对热力图进行归一化处理,将热力图的值限制在 范围内,表示为:,
式中,min表示取矩阵最小值,max表示取矩阵最大值;
设置阈值T0来生成异常分割掩码:,
式中, 表示位置 处的异常分割掩码, 表示归一化后的异常热力图在(x,y) 位置处的异常得分,T0为异常检测的阈值;
将异常分割掩码叠加到原始图像上,获得最终的异常检测结果:,
式中, 表示原始输入的图像,符号 表示逐元素相乘,用于将异常区域进行高亮显示;
最后计算预测损失,选取真实掩码 作为多尺度特征映射模块的监督信号,表示图像中每个像素的真实异常情况,E表示图像的高度,W表示图像的宽度, 表示异常区域, 表示正常区域;
对于一个批次中第L个图像,异常掩码的总损失为:,
式中, 表示 Focal Loss, 表示 ;
将一个批次中所有图像的损失进行求和,得到最终的总损失函数为:,
式中,batchsize表示在一次迭代中,用于模型训练或推理的样本数量;
利用损失函数 训练多尺度特征映射模块,选择损失最小的模型作为最终的多尺度特征映射模块。