©作者 | 博学的咖喱酱
不鸣则已,一鸣惊人!浙江大学光电学院提出全归一化流模型——PyramidFlow,它将潜在模板对比的思想融入最先进的归一化流技术,提出金字塔耦合块 (Pyramid Block) 和体积归一化策略 (Volume Normalization),首次实现了高分辨的缺陷异常定位。一句话:提出了首个不依赖于预训练模型的全归一化流方法,专为高分辨率的缺陷异常定位设计。
论文标题:
PyramidFlow: High-Resolution Defect Contrastive Localization using Pyramid Normalizing Flow
https://arxiv.org/abs/2303.02595
https://github.com/gasharper/autoFlow
背景
在工业加工过程中,不可控因素会给产品带来不可预见的缺陷,如何有效地检测这些缺陷是生产控制过程中的重要问题。在过去,基于监督学习的方法被广泛使用,这类方法需要收集尽可能多的正常样本和缺陷样本,使用判别式模型来区分和定位缺陷;然而,由于工业产品的良品率高、缺陷来源复杂且多样,在实际应用中无法详尽地收集各式各样的缺陷,因此基于监督学习的方法常常难以得到广泛应用。为了解决这个问题,最近一些研究者提出通过“模拟异常”(如数据增强或生成对抗网络)来人为地制造缺陷样本,但这类方法仍然依赖于缺陷的先验知识,这将无法泛化到开放世界的未知场景。 由于监督学习在数据缺乏时的无力性,我们审视了目前非监督的缺陷检测方法,将它们大致分为两类:基于重建 (reconstruction-based) 的方法和基于异常 (anomaly-based) 的方法。基于重建的方法使用正常样本训练自编码器来重建自身,但当遇到缺陷样本时,缺陷无法很好地被自编码器重建,因此重建结果与原图的显著差异便定位了缺陷的位置;然而,解码器重建原图的过程是一个不适定的逆问题,这使得这类方法难以重建复杂纹理。基于异常的方法大多数是基于预训练编码器来获取良好表征(良好表征即相似的纹理具有相似的表征),如 PaDiM 或 SPADE,然后使用 Mahalanobis 距离或 KNN 来度量特征空间的距离,因此远离正常原型 (normal prototype) 便指示了图像块的异常;最近的研究在预训练特征的基础上,进一步使用归一化流来重塑特征空间的概率分布,使正常原型紧致化。然而,为获取足够大的感受野、充分感知纹理特征,预训练模型通常需要下采样 16 倍甚至更多,这使得缺陷定位图像的分辨率通常仅有 32 甚至更低。预训练模型的使用极大地限制了缺陷异常定位的精度,因此工业界亟需一种能实现高分辨率的缺陷异常定位方法。方法
然而,直接将现有的归一化流技术应用于高分辨率图像是行不通的,因为高分辨率图像具有很大的块方差 (patch-variance)。现有方法配合预训练特征的目的便是将块特征投射到低方差的高维空间,高维空间相比低维空间能够更有效地使用归一化流来重塑概率分布。基于重建的方法能够保持高分辨率、基于异常的方法能够泛化到未知场景、基于归一化的方法能够重塑概率空间分布,我们取这三者的优点,提出了一种全新的缺陷异常检测范式——潜在模板对比。▲ (a,b) 其他缺陷异常检测范式,(c) 所提出的潜在模板对比范式
这种范式基于如下思想:可逆归一化流建立了图像空间与潜在空间的双射关系,在图像空间中的操作都对应了潜在空间中的某个操作。因此基于重构的方法在图像空间中“对比”(差值、差异的意思),同样对应了潜在空间中的“对比”,重构方法中使用被重构的图像进行对比,而归一化流中无需重构,只需要使用“模板”图像进行对比即可——这就是潜在模板对比的思想。使用潜在模板对比还有一个好处——它隐式降低了块方差,它相当于将图像进行零均值化,使检测效果对于光照更加鲁棒。 此外,由于低分辨率对于异常检测很重要,而高分辨率对于异常定位很重要,我们借鉴了图像处理中常用的拉普拉斯金字塔的思想,提出了可逆金字塔 (invertible pyramid):它将单个特征分解为多尺度,由于这个操作是可逆的,也能够将这些多尺度特征合成回单个特征。可逆金字塔作为一种可逆操作,类似常规归一化流中常用的 concat-split 操作,是实现特征多尺度和多频率(不同层级对应了高频、低频)感知的重要手段。 在多尺度的基础上,我们受到了医疗图像分割中 U-Net 的启发、也借鉴了 CS-Flow 的思想,提出了多尺度归一化流——PyramidFlow,它以可逆金字塔分解得到的特征金字塔作为输入,将不同尺度块之间进行可逆耦合(如论文图 3 所示),以此作为基本组件来构建金字塔归一化流。其中,我们提出了两种多尺度耦合块 (Pyramid Coupling Block),如下图的紫色和红色箭头所示(具体计算方式见论文 Sec3.2),而虚线代表无操作的单位映射。
▲ PyramidFlow的模型结构,包括两种多尺度耦合块然而,图像直接使用归一化流映射出来的特征也仅有三通道,无法传递丰富的差异信息。一种常见的方法是使用预训练模型将其映射到高维空间(如使用 ResNet18 进行特征抽取得到 64 维的特征图,然后再进行 PyramidFlow 映射),这便是论文中 Ours (Res18) 对应的方法。还有另一种方法是使用随机初始化的 1x1 卷积将其映射到 64 维,这种方法没有用到预训练模型,整个算法是相对优雅的“全归一化流 (Fully Normalizing Flow)”,这便是论文中 Ours (FNF) 的方法。此外,全归一化流方法还有一个好处:它使用的 1x1 卷积是样本无关 (sample-independent) 的,因此无需考虑 1x1 卷积引起的概率分布变化,也无需在训练过程中将其冻结,这使得整个模型是完全可优化的;相反,使用预训练模型需要在优化过程中将其冻结,否则预训练模型将会发生坍缩。此外,我们还观察到仿射耦合块中概率分布的体积变化是影响异常检测泛化的重要因素。在传统仿射耦合块中,概率分布变换满足如下关系(x 是原图像,z 是潜在空间):
由于 是相对低维的,在传统优化过程中将 最大化损害了归一化流中子网络 的数值稳定性(在传统归一化流中,通常是通过 clamp 操作约束稳定性的),我们观察到这将损害了模型在异常检测方面的泛化性能。因此,我们提出了"体积归一化"方法(包括通道体积归一化 CVN 和空间体积归一化 SVN 两种),它类似于"批归一化"它们之间的区别如下图所示。体积归一化方法将系数估计网络 的输出进行零均值归一化,使得总体归一化流的概率分布变化为 ,有效地简化了优化目标 。在消融实验表明,体积归一化方法有效稳定了归一化流的数值稳定性,提升了模型的泛化能力。
实验
我们在工业异常检测 MVTecAD 数据集上进行了详细的实验,结果如下表所示。▲ MVTecAD实验结果
在不基于额外先验 (External Prior=×) 的情况下,我们的方法远超同类算法。在基于额外先验(仅使用 ResNet18 模型)的情况下,我们的方法仍然超越了大部分基于复杂预训练模型(如 EfficientNet-B5 或 Wide-ResNet50)的算法,取得的最佳的 AUPRO 综合性能。 此外,我们的算法还在更具有挑战性的 BTAD 数据集上进行了测试,该数据集基本都是复杂纹理的工业图像。结果如下表所示,我们的算法仍然展现出显著的优越性。▲ BTAD实验结果
▲ MVTecAD和BTAD数据集上的异常定位结果
在附录中,我们也将其和其他方法的结果进行了对比,结果如下面两幅图所示:
▲ 更全面的对比结果1
此外,我们的论文中还有很多实验,如消融实验、对于未配准类的实验,感兴趣的读者可以直接看论文。在本文中,我们提出了 PyramidFlow,这是一种基于潜在模板对比范式的全归一化流方法,利用类金字塔的归一化流和体积归一化,实现了高分辨率的缺陷对比定位。我们的方法可以从头开始端到端地进行训练,类似于 UNet,我们的全面实验表明,它优于不使用外部先验的可比算法,甚至在复杂情况下实现了最先进的性能。虽然在未配准类别的实验表明我们的方法不及最先进的方法,但仍表现出有竞争力的性能。未来的研究将集中于改善这种情况下的性能。
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧