FastFlow: Unsupervised Anomaly Detection and Localization via 2D Normalizing Flows
1、创新点
- 提出2D流模型——FastFlow
- 全卷积网络
- 2维的loss function
- 能有效获取全局的和局部的分布
- 轻量级网络结构
- 交替拼接大卷积核(3 × \times × 3)和小卷积核(1 × \times × 1)
- 适应端到端的推理
- 高效
- 可作为插件使用
- 可配合不同的特征提取器(CNN、ViT)
2、解决问题
- 其他模型:
- 当前的异常检测模型不能有效的将图像特征映射到一个明确的分布
- 当前模型忽略了局部特征和全局特征间的关系
- 传统flow模型,需将2D特征压缩成1D,进行概率估计,损伤了内部的空间关系信息,限制的flow的能力
- 传统flow模型,使用
sliding window method
,需在大量patch逐个检测异常,复杂度高、推理速度受限
- FastFlow模型:
- 训练阶段,学习将输入的特征映射到特定的分布
- 推理阶段,利用似然去识别异常
- 2D的flow维持了原特征的空间位置关系,提升了检测效率
- 端到端的推理整个图片,直接输出异常检测和定位结果,推理效率高
3、网络结构
- 特征提取器
CaiT
、DeiT
、ResNet18
、Wide-ResNet50-2
- 使用
vision transformer
时,仅用1
层 - 使用
resnet
时,直接用前三个block
的最后一层(输出尺寸:64、32、16
)
Normalizing Flow
- X → Z X \to Z X→Z
change of variable formula
:- p X ( x ) = p Z ( z ) ∣ d e t ( ∂ z ∂ x ) ∣ p_X(x)=p_Z(z)|det(\frac{\partial z}{\partial x})| pX(x)=pZ(z)∣det(∂x∂z)∣
- l o g p X ( x ) = l o g p Z ( z ) + l o g ∣ det ( ∂ z ∂ x ) ∣ = l o g p Z ( f θ ( x ) ) + l o g ∣ d e t ( ∂ f θ ( x ) ∂ x ) ∣ log p_X(x)=log p_Z(z)+log |\det (\frac{\partial z}{\partial x})|=log p_Z(f_\theta(x))+log |det(\frac{\partial f_\theta(x)}{\partial x})| logpX(x)=logpZ(z)+log∣det(∂x∂z)∣=logpZ(fθ(x))+log∣det(∂x∂fθ(x))∣
Flow
:- X → f 1 H 1 → f 2 H 2 → f 3 H 3 . . . → f K Z X \overset{f_1}{\rightarrow}H_1 \overset{f_2}{\rightarrow}H_2 \overset{f_3}{\rightarrow}H_3 ... \overset{f_K}{\rightarrow}Z X→f1H1→f2H2→f3H3...→fKZ
- X ← f 1 − 1 H 1 ← f 2 − 1 H 2 ← f 3 − 1 H 3 . . . ← f K − 1 Z X \overset{f_1^{-1}}{\leftarrow}H_1 \overset{f_2^{-1}}{\leftarrow}H_2 \overset{f_3^{-1}}{\leftarrow}H_3 ... \overset{f_K^{-1}}{\leftarrow}Z X←f1−1H1←f2−1H2←f3−1H3...←fK−1Z
- y a , y b = s p l i t ( y ) y_a,y_b=split(y) ya,yb=split(y)
- y a ′ = y a {y_a}'=y_a ya′=ya
- y b ′ = s ( y a ) ⨀ y b + b ( y a ) , 其 中 s ( ) 和 b ( ) 的 计 算 是 本 文 的 创 新 点 , 2 D {y_b}'=s(y_a) \bigodot y_b + b(y_a),其中s()和b()的计算是本文的创新点,2D yb′=s(ya)⨀yb+b(ya),其中s()和b()的计算是本文的创新点,2D
- y ′ = c o n c a t ( y a ′ , y b ′ ) {y}'=concat({y_a}',{y_b}') y′=concat(ya′,yb′)
4、实验
- 数据集:
- MVTec
- BTAD
- CIFAR-10
- 评价指标:
- 图片集和像素级的 the area under the receiver operating characteristic curve (AUROC)
- 复杂度分析:
- 推理速度
- 额外推理时间(不包括backbone网络)
- 额外参数量(不包括backbone网络)
- 定量结果:
- MVTec:
- 图片级AUC:99.4,像素级AUC:98.5,SOTA
- MVTec:
- BTAD:
- 像素级AUC:97.0,SOTA
- CIFAR-10:
- Ablation Study
- subnet使用的卷积核大小:
- (1)交替使用 3 × 3 3 \times 3 3×3和 1 × 1 1 \times 1 1×1卷积核
- (2)只使用 3 × 3 3 \times 3 3×3卷积核
- backbone为CaiT、Wide-ResNet50-2时,方案(1)性能好
- backbone为DeiT、ResNet18时,方案(2)性能好
- subnet使用的卷积核大小:
- 定性结果
- 网络细节
- backbone: ImageNet预训练,frozen
- optim: Adam(learning_rate=1e-3. weight_decay=1e-5)
- 500 epoch
- batch_size: 32