【论文研读】【流模型】【缺陷检测】FastFlow: Unsupervised Anomaly Detection and Localization via 2D Normalizing Flows

FastFlow: Unsupervised Anomaly Detection and Localization via 2D Normalizing Flows

![[imgs/截屏2021-12-23 下午3.30.10.png]]


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、网络结构

![[imgs/截屏2021-12-23 下午4.09.27.png]]

  • 特征提取器
    • CaiTDeiTResNet18Wide-ResNet50-2
    • 使用vision transformer时,仅用1
    • 使用resnet时,直接用前三个block的最后一层(输出尺寸:64、32、16
  • Normalizing Flow
    • X → Z X \to Z XZ
    • 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(xz)
      • 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)+logdet(xz)=logpZ(fθ(x))+logdet(xfθ(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 Xf1H1f2H2f3H3...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 Xf11H1f21H2f31H3...fK1Z
      • 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网络)
      ![[imgs/截屏2021-12-24 下午2.48.31.png]]
  • 定量结果:
    • MVTec:
      ![[imgs/截屏2021-12-24 下午2.53.46.png]]
      • 图片级AUC:99.4,像素级AUC:98.5,SOTA
  • BTAD:
    - 像素级AUC:97.0,SOTA
    ![[imgs/截屏2021-12-24 下午2.54.33.png]]
  • 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)性能好
        在这里插入图片描述
  • 定性结果
    在这里插入图片描述
  • 网络细节
    • backbone: ImageNet预训练,frozen
    • optim: Adam(learning_rate=1e-3. weight_decay=1e-5)
    • 500 epoch
    • batch_size: 32
      在这里插入图片描述
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值