Fully Convolutional Cross-Scale-Flows for Image-based Defect Detection
1. 摘要
- 领域: 缺陷检测
- 模型:flow
- 成就:缺陷检测排行榜第二名
- 数据集:
- Magnetic Tile Defects
- MVTec AD
2.创新点
(1)提出 fully convolutional cross-scale normalizing flow (CS-Flow)模型,是基于real-NVP的流模型
(2)CS-Flow能同时处理不同尺度的特征图,处理时将多种尺度的特征图并行传入流模型,并且让它们之间相互作用。
3.网络结构
(1)CNN特征提取层 – EfficientNet-B5 X -> Y ,特征提取层,在ImageNet上预训练,不参与整个网络的训练过程。
- 输入尺寸分为三组:768*768 384*384 192*192
- 得到三组特征图尺寸:24*24*304 12*12*304 6*6*304
(2)流模型: Y -> Z (Z 为标准正态分布)
- 特征提取,得到三组特征图
- 按通道数(奇偶?)划分特征图为两部分 yI、yII
- 将三组 yI、yII输入到cross-scale convolutions模块进行仿射变换 (创新点)
- 沿通道数拼接
(3)细节:
- coupling block使用 real-NVP的结构
- y out , 2 = y in , 2 ⊙ e γ 1 s 1 ( y in , 1 ) + γ 1 t 1 ( y in , 1 ) y out , 1 = y in , 1 ⊙ e γ 1 s 2 ( y out , 2 ) + γ 2 t 2 ( y out , 2 ) \begin{array}{c} \boldsymbol{y}_{\text {out }, 2}=\boldsymbol{y}_{\text {in }, 2} \odot e^{\gamma_{1} s_{1}\left(\boldsymbol{y}_{\text {in }, 1}\right)}+\gamma_{1} t_{1}\left(\boldsymbol{y}_{\text {in }, 1}\right) \\ \boldsymbol{y}_{\text {out }, 1}=\boldsymbol{y}_{\text {in }, 1} \odot e^{\gamma_{1} s_{2}\left(\boldsymbol{y}_{\text {out }, 2}\right)}+\gamma_{2} t_{2}\left(\boldsymbol{y}_{\text {out }, 2}\right) \end{array} yout ,2=yin ,2⊙eγ1s1(yin ,1)+γ1t1(yin ,1)yout ,1=yin ,1⊙eγ1s2(yout ,2)+γ2t2(yout ,2)
- we introduce the learnable block-individual scalar coefficients γ1 and γ2
- soft-clamping
- σ α ( h ) = 2 α π arctan h α \sigma_{\alpha}(h)=\frac{2 \alpha}{\pi} \arctan \frac{h}{\alpha} σα(h)=π2αarctanαh
- 将输出限制在 (−α, α) 之间
(4)损失函数:
- change of variable公式:
- p Y ( y ) = p Z ( z ) ∣ det ∂ z ∂ y ∣ p_{Y}(\boldsymbol{y})=p_{Z}(\boldsymbol{z})\left|\operatorname{det} \frac{\partial \boldsymbol{z}}{\partial \boldsymbol{y}}\right| pY(y)=pZ(z)∣∣∣det∂y∂z∣∣∣
- log p Y ( y ) = log p Z ( z ) + log ∣ det ∂ z ∂ y ∣ \log p_{Y}(\boldsymbol{y})=\log p_{Z}(\boldsymbol{z})+\log \left|\operatorname{det} \frac{\partial \boldsymbol{z}}{\partial \boldsymbol{y}}\right| logpY(y)=logpZ(z)+log∣∣∣det∂y∂z∣∣∣
- L ( y ) = − log p Y ( y ) = ∥ z ∥ 2 2 2 − log ∣ det ∂ z ∂ y ∣ \mathcal{L}(\boldsymbol{y})=-\log p_{Y}(\boldsymbol{y})=\frac{\|\boldsymbol{z}\|_{2}^{2}}{2}-\log \left|\operatorname{det} \frac{\partial \boldsymbol{z}}{\partial \boldsymbol{y}}\right| L(y)=−logpY(y)=2∥z∥22−log∣∣∣det∂y∂z∣∣∣
4.实验
(1)参数设置
- 特征提取层:the output of layer 36 of EfficientNet-B5
- MVTec AD, we use features at s = 3 scales with input image sizes of 768 × 768, 384 × 384 and 192 × 192 pixels,通道数:304
- MTD samples, we resized the images to 384 × 384, 192 × 192 and 96 × 96 pixels
- nblocks = 4 coupling blocks
- 3*3卷积(3层)+5*5卷积(1层)