最新异常检测方法SQUID,基于深度特征In-painting
将输入图像划分为N×N个不重叠的块,并将它们输入编码器进行特征提取。将训练两个生成器来重建原始图像。在重建的同时,将创建一个解剖模式字典,并通过一个新的记忆队列动态更新(§3.2);教师生成器直接使用编码器提取的特征;学生生成器使用由我们的绘画块(§3.3)增强的特征。教师和学生生成器通过知识提炼范式耦合。使用鉴别器来评估学生生成器重建的图像是真的还是假的。一旦经过训练,它也可以用于检测测试图像中
来源:投稿 作者:橡皮
编辑:学姐
论文链接:https://arxiv.org/pdf/2111.13495.pdf
代码链接:https://github.com/tiangexiang/SQUID
0.背景:
摄影成像和射线照相成像中的视觉任务是不同的。例如,当识别照片图像中的对象时,我们假设平移不变量——无论猫出现在图像的左侧还是右侧,它都是猫。另一方面,在射线照相成像中,结构的相对位置和方向是重要特征,可以识别正常解剖结构和病理状况。
无监督异常检测仅使用健康图像进行模型训练,不需要其他注释,如疾病诊断或定位。多达80%的临床错误发生在放射科医生一开始就错过异常的时候。异常检测的影响是通过向放射科医生明确指出存在可疑病变,然后让他们深入查看扫描结果来减少80%的判断错误。
自然成像中的异常检测。异常检测是识别偏离正常数据分布的罕见事件的任务。早期的尝试包括单类SVM、字典学习和稀疏编码。
医学成像中的异常检测。医学领域的异常检测通常是在病理学基础上进行的。
1.主要贡献:
提出了用于修复和检测射线照相图像异常的空间感知存储器队列(缩写为SQUID)。在训练过程中,模型可以根据递归解剖模式的空间位置对其进行分类,从而动态地维护视觉模式词典。由于解剖学的一致性,健康图像中相同的身体区域有望表达相似的视觉模式,这使得独特模式的总数可以管理。在推断过程中,由于字典中不存在异常模式,因此如果存在异常,则所生成的射线照相图像预计是不现实的。
提出了一种新的方法,该方法明确地利用了射线照相图像的先验,大大提高了从射线照相图像中检测异常的性能。
我们克服了记忆矩阵的局限性,提出了一种有效而高效的记忆队列,用于射线照相图像中的无监督异常检测。
2.网络介绍: SQUID
将输入图像划分为N×N个不重叠的块,并将它们输入编码器进行特征提取。将训练两个生成器来重建原始图像。在重建的同时,将创建一个解剖模式字典,并通过一个新的记忆队列动态更新(§3.2);教师生成器直接使用编码器提取的特征;学生生成器使用由我们的绘画块(§3.3)增强的特征。教师和学生生成器通过知识提炼范式耦合。使用鉴别器来评估学生生成器重建的图像是真的还是假的。一旦经过训练,它也可以用于检测测试图像中的异常(§3.4)。
3.1方法细节:概述
(1)特征提取。我们将输入图像划分为N×N个不重叠的块,并将它们输入编码器进行特征提取。提取的特征将用于图像重建。实际上,编码器可以是任何骨干架构;为了简单起见,我们在这项工作中采用了基本的卷积和池层。
(2)图像重建。我们引入教师和学生生成器来重建原始图像。在重建的同时,解剖模式的字典将被创建并动态更新为Memory Queue(§3.2)。具体而言,教师生成器使用编码器(本质上是自动编码器)提取的特征直接重建图像。另一方面,学生生成器使用了我们在 in-paintng block 中增强的特征(§3.3)。教师和学生生成器通过知识提取范式在所有上采样水平上耦合。学生生成器的目标是根据增强特征重建正常图像,然后将其用于异常判别(§3.4);而教师生成器用作防止学生不断生成相同的正常图像的正则化器。
(3)异常判别。在对抗性学习之后,我们使用鉴别器来评估生成的图像是真的还是假的。只有学生生成器将接收从鉴别器导出的梯度。两个生成器和鉴别器相互竞争,直到它们收敛到平衡。经过训练后,鉴别器可用于检测测试图像中的异常(§3.4)。
3.2方法细节:Inventing Memory Queue as Dictionary 内存队列作为字典
动机。记忆矩阵由Gong等人引入,此后被广泛用于无监督异常检测。为了打造“正常”的外观,通过对记忆矩阵中的相似模式进行加权平均来增强特征。然而,这种增强被应用于从整个图像中提取的特征,从而丢弃了图像中的空间信息。因此,当前形式的记忆矩阵无法像射线照相图像那样感知解剖一致性。
空间感知内存。为了利用空间信息,我们将分割的小块而不是整个图像传递到模型中。这些补丁与原始图像的唯一位置标识符相关联。我们试图通过将内存矩阵中的搜索空间仅限于补丁对应的非重叠片段来建立补丁位置和内存区域之间的关系。也就是说,特定位置的补丁只能访问整个内存矩阵中的相应段(如下图所示)。我们将这种新策略称为“空间感知内存”,因为它能够将空间信息显式编码到内存矩阵中。空间感知内存也可以加快扩充速度,因为它不再通过整个内存矩阵来组装类似的功能。
内存队列。在基于学习的记忆矩阵中,“正常模式”是通过组合矩阵中的学习基础而形成的。然而,在基本组合和实际图像特征之间总是存在分布差异。这种视差使得后续的图像生成变得困难。为了解决这个问题,我们提出了一个内存队列来存储模型训练期间的真实图像特征,从而呈现与图像特征相同的分布。具体来说,它在训练期间直接将先前看到的特征复制到队列结构中。经过训练后,记忆队列可以用作正常模式的字典。在下图中,展示了t-SNE可视化,以验证记忆矩阵中的学习基础(蓝点)与训练集的实际图像特征(灰点)的分布不同。相比之下,内存队列中存储的图像特征(红点)与实际图像特征的分布相同。
Gumbel收缩。控制存储器中激活模式的数量已被证明有利于异常检测。然而,设置硬收缩阈值无法适应在内存中找不到合适条目的情况。一个自然的解决方法是激活内存中的前k个类似模式。然而,该策略将梯度流限制为仅topk存储器条目,而其余未激活的条目不能接收任何梯度并按预期进行更新。为了将梯度扩展到记忆中的所有模式,受之前工作的启发,提出了一个Gumbel收缩模式:
其中,w表示图像特征和Memory中的条目之间的相似性,sg(·)表示停止梯度运算,ℎs(·,t)表示具有阈值t的硬收缩算子,φ(·)为Softmax函数。在前向传递中,Gumbel收缩确保了记忆中前k个最相似的条目的组合;在反向传播过程中,Gumbel收缩基本上起到Softmax的作用。在我们的框架中,我们将Gumbel收缩应用于内存队列和内存矩阵。
3.3方法细节:Unsupervised Feature Fusion 无监督特征融合
动机。图像 In-paintng 最初被提出用于恢复具有相邻上下文的损坏图像区域。根据上述直觉,我们建议通过将异常射线照相图案 In-paintng 成正常的图案来实现异常检测。当在图像空间中 In-paintng 像素时,通常会看到恢复的区域与边界伪影相关联,特别是当使用Deep Nets时。当将异常检测公式化为 In-paintng 任务中的像素级别时,这些不希望的伪影导致了许多误报。
为了缓解这个问题,我们改为在特征级别实现 In-paintng 的任务。潜在特征对像素级噪声、旋转和平移具有更好的不变性,因此更适合于后续的异常检测。
其中 inpaint(·) 是设计的in-painting block ,δ~Bernoulli(ρ)是一个二元变量,ρ是门控概率。在每个训练步骤获得后,复制原始F以更新内存。在推理过程中,我们完全禁用快捷方式,使得对于确定性预测,=inpaint(F)。
3.4方法细节: Anomaly Discrimination 异常判别
我们的鉴别器可以通过评估重建的质量来检测异常——如果现实的话是正常的;否则不正常。这是因为生成器是在正常图像上训练的,所以内存队列只存储正常模式。在推理过程中,由于异常模式从未出现在内存队列中,因此重建的图像看起来不现实。
我们的 in-painting block 专注于将任何补丁特征(正常或异常)增强为类似的“正常”特征。学生生成器然后根据“正常”特征重建“正常”图像。教师生成器用于防止学生生成与输入无关的相同图像。一旦经过训练,输入和学生生成器的重建图像之间的语义(而不是像素级)差异预计会很小(如果正常),否则会很大。因此,我们委托优化的鉴别器网络来感知异常情况。为了更好地说明,我们将编码器、教师生成器、学生生成器和鉴别器标记为E、、和D。异常分数A可以通过以下公式计算:
其中 φ(·) 是Sigmoid函数,µ 和 σ 是在训练样本上计算的异常分数的平均值和标准差。
3.5方法细节: Loss Function 损失方程
实验结果:
关注下方《学姐带你玩AI》🚀🚀🚀
回复“CVPR”免费领取500+篇顶会论文合集
码字不易,欢迎大家点赞评论收藏!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)