本发明属于计算机视觉和异常检测领域,特别涉及了一种基于多模态可学习提示的零样本异常检测方法。
背景技术:
1、异常检测的主要任务是识别与常规模式不同的情形,广泛应用于工业缺陷检测、医学图像分析、视频监控等领域。有监督异常检测方法依赖精心整理的异常样本,不能有效检测训练数据中不存在的异常类型。无监督异常检测方法仅在正常样本上训练,将正常样本分布之外的特征数据视为异常,已成为重要的异常检测研究方向。然而,无监督方法需要在大量的正常样本上学习异常边界,带来了繁重的数据收集任务。零样本异常检测方法不依赖目标域的任何数据,为新异常类型及数据难以收集的场景提供了新的解决思路。现有零样本异常检测方法大多基于视觉语言大模型构建,依赖专家经验设计提示模板,增加了网络设计的难度,并降低了模型的泛化性能。另外,现有方法大多依靠大模型的文本编码网络提取文本描述特征,极大增加了异常检测模型的复杂度,不利于异常检测效率的提升。
技术实现思路
1、为了解决背景技术中存在的问题,本发明的目的在于提供一种基于多模态可学习提示的零样本异常检测方法,以解决现有异常检测模型的结构复杂以及检测效率低的问题。本发明通过设计通用性较强的可学习提示嵌入表示异常状态和正常状态,缓解提示工程对专家领域知识的依赖,另外,构建不依赖文本编码网络的异常检测框架,有效降低模型的计算复杂度。
2、为了实现上述目的,本发明采用的技术方案为,包括以下步骤:
3、步骤s1)构建基于多模态可学习提示的异常图像检测网络;
4、步骤s2)训练异常图像检测网络;
5、步骤s3)将待测图像输入到训练后的异常图像检测网络获得异常区域热图,根据异常区域热图获得待测图像的异常区域。
6、所述的异常图像检测网络包括视觉编码网络、多层感知机mlp、多模态可学习提示模块和异常区域计算模块;视觉编码网络中加载有多模态可学习提示模块中的可学习视觉提示向量,视觉编码网络的输出经多个多层感知机mlp后输入到异常区域计算模块,同时通过多模态可学习提示模块获得可学习文本提示嵌入特征,将可学习文本提示嵌入特征输入到异常区域计算模块,异常区域计算模块的输出依次经改变特征维度操作和元素相加操作后获得异常区域热图的结果。
7、所述的视觉编码网络包括依次进行的四个阶段,每个阶段均包含多层依次连接的残差注意层,视觉编码网络的每个阶段均输出视觉编码特征,四个阶段分别输出第一视觉编码特征t1、第二视觉编码特征t2、第三视觉编码特征t3和第四视觉编码特征t4作为视觉编码网络的输出。
8、所述视觉编码网络输出的四个编码视觉特征均经各自的多层感知机mlp处理后获得四个视觉特征,四个视觉特征共同输入到异常区域计算模块中。
9、所述的多模态可学习提示模块包括可学习文本提示嵌入特征e,可学习文本提示嵌入特征e的构建步骤如下:
10、1)初始化状态文本描述:首先针对样本的状态state构建对应样本的状态文本描述;
11、2)初始化状态编码特征:利用视觉语言大模型clip预训练好的分词嵌入模块分别编码正常样本和异常样本的状态文本描述,以获得正常样本的状态编码特征fn和异常样本的状态编码特征fa;
12、3)构建可学习文本提示向量:分别对正常样本的状态编码特征fn和异常样本的状态编码特征fa求平均值,以获得正常样本的可学习文本提示向量vn和异常样本的可学习文本提示向量va;
13、4)构建可学习文本提示嵌入特征e:将正常样本的可学习文本提示向量vn和异常样本的可学习文本提示向量va在第0维上拼接,获得可学习文本提示嵌入特征e,并作为多模态可学习提示模块的输出,输入至异常区域计算模块中。
14、所述的多模态可学习提示模块还包括可学习视觉提示向量p,可学习视觉提示向量p插入至视觉编码网络的残差注意层中,可学习视觉提示向量p的构建步骤如下:
15、1)首先,确定待插入的可学习视觉提示向量p中的分词token数量n;
16、2)接着根据分词token数量n设置可学习视觉提示向量p的维度为n×d,d表示预设的常数;
17、3)将设置好维度的可学习视觉提示向量p插入到视觉编码网络中第一阶段和第二阶段的第 i个残差注意层的输入端, i表示预设的常数。
18、所述的异常区域计算模块中,是根据视觉编码网络输出的视觉特征与多模态可学习提示模块输出的可学习文本提示嵌入特征按照以下方式的余弦相似度计算获得异常区域:
19、gm=softmax(fm@et), m=1,2,3,4
20、其中,符号@表示矩阵相乘,softmax( )表示激活函数,et表示可学习文本提示嵌入特征的转置,fm表示视觉编码网络中第m阶段对应获得的视觉特征,gm表示视觉特征fm对应获得的初步异常区域图。
21、将所述异常区域计算模块输出的四个初步异常区域图gm经改变特征维度操作reshape后获得了四个目标异常区域图mm,再将四个目标异常区域图mm按对应元素相加,获得最终的异常区域热图。
22、所述步骤s2)训练时采用零样本迁移学习方法,对异常图像检测网络中的视觉编码网络的网络参数不做更新,仅对多模态可学习提示模块中可学习文本提示嵌入特征e、可学习视觉提示向量p的参数以及多层感知机mlp的参数进行优化训练。
23、所述步骤s3)中具体是在异常区域热图中以像素值大于预设的异常阈值的图像区域作为异常区域。
24、在异常图像检测网络训练阶段,待检图像i依次经过视觉编码网络的第一阶段、第二阶段、第三阶段和第四阶段后,获得第一视觉编码特征t1、第二视觉编码特征t2、第三视觉编码特征t3和第四视觉编码特征t4,四个视觉编码特征分别经各自的多层感知机mlp(768)获得第一视觉特征f1、第二视觉特征f2、第三视觉特征f3和第四视觉特征f4。四个视觉特征分别与构建的可学习文本提示嵌入特征e经异常区域计算模块计算余弦相似度,并通过reshape操作获得第一目标异常区域图m1、第二目标异常区域图m2、第三目标异常区域图m3和第四目标异常区域图m4。四个目标异常区域图与标注的真实异常区域计算距离损失,并迭代优化可学习文本提示嵌入特征和可学习视觉提示向量。训练完成后,可学习文本提示嵌入特征直接参与测试阶段的异常检测任务,不需要测试图像的任何特定信息,实现零样本异常检测的目的。
25、在模型测试阶段,以待检图像和优化后的可学习文本提示嵌入特征作为输入,由视觉编码网络提取第一视觉编码特征t1、第二视觉编码特征t2、第三视觉编码特征t3和第四视觉编码特征t4,并与可学习文本提示嵌入特征经异常区域计算模块获得第一目标异常区域图m1、第二目标异常区域图m2、第三目标异常区域图m3和第四目标异常区域图m4,四个目标异常区域图的维度均为b×h×w,与输入图像空间尺寸保持一致。然后,四个目标异常区域图按对应元素求和,获得最终的待检图像异常区域热图。
26、本发明针对正常样本和异常样本状态构建了通用性较强的可学习文本提示嵌入特征。针对视觉编码网络,设计可学习视觉提示向量,并插入到指定视觉编码网络的输入空间。利用视觉语言大模型的视觉编码网络从多个阶段提取输入图像的视觉特征。将获得的多个视觉特征与构建的可学习文本提示嵌入特征计算余弦相似度,通过构建的异常区域计算模块预测待检输入图像的异常区域。本发明提出的可学习文本提示嵌入特征避免了常规方法对提示模板的依赖,有效降低了提示工程的设计难度;设计的可学习视觉提示向量避免了对大模型的全参数优化,降低了大模型微调难度。另外,所设计的异常检测网络不依赖文本编码网络,极大降低了网络的复杂度,同时提高了异常检测准确率。
27、本发明的有益效果是:
28、本发明利用通用性较强的文本描述初始化可学习文本提示嵌入特征,有效避免了提示工程对专家领域知识的强依赖问题。另外,可学习提示的优化完全由数据驱动,不受目标域任何数据特性的影响,极大提高了模型的零样本泛化性能。同时,构建的异常检测网络完全丢弃了文本编码网络,极大降低了模型的计算复杂度,同时提高了异常检测准确率。