【论文笔记】AP-CNN: Weakly Supervised Attention Pyramid Convolutional Neural Network for FGVC

目录

task

Fine-Grained Visual Classification(细粒度视觉分类),以下简称FGVC。
相较于传统的目标检测和分类,有如下两个难点:

  1. 高类内方差(high intra-class variance):
    图片中属于同一类别的对象通常呈现显著不同的姿态和视角。

  2. 低类间方差(low inter-class variance):
    下属类(例如哈士奇和金毛两个下属类,都属于狗这一超类)之间的视觉差异往往是微妙的,因为它们属于同一超类别。

数据集

当前细粒度分类的主流数据集有三个:

  • CUB-200-2011:鸟类数据集,200类11788张图像,每张图像包含15各部位的位置信息。(位置信息主要给基于部件的网络模型训练用)
  • Stanford Cars:汽车数据集,196类16185张图像,不包含部件信息。
  • FGVC-Aircraft:飞机数据集,102类10200张图像,不包含部件信息。

近两年大部分细粒度分类论文都以上述三个数据集作为benchmark。

AP-CNN

2021年2月刊登在IEEE的一篇细粒度分类的文章。
论文地址(下载需要校园网)
源码地址

整体结构

【论文笔记】AP-CNN: Weakly Supervised Attention Pyramid Convolutional Neural Network for FGVC

; 1、主要改进

1)Attention Pyramid(注意金字塔)

在FPN的基础上,对每一层feature map都使用注意力机制,形成一个自下而上的注意力层级结构,作者给其取名为 注意金字塔(Attention Pyramid),这个结构中每一层又包含两个部分,分别是 空间注意通道注意,生成过程如下图所示:

【论文笔记】AP-CNN: Weakly Supervised Attention Pyramid Convolutional Neural Network for FGVC
  • 每一层的通道注意由FPN中对应层的Feature map进行一次全局平均池化和两次全连接而成。
    公式如下:A k ( c ) = σ ( W 2 ⋅ R e L U ( W 1 ⋅ G A P ( F k ) ) ) A^{(c)}_k=\sigma(W_2\cdot ReLU(W_1\cdot GAP(F_k)))A k (c )​=σ(W 2 ​⋅R e L U (W 1 ​⋅G A P (F k ​)))
  • 空间注意则由对应的Feature map进行一次33的反卷积,再做sigmoid而成。
    公式如下:A k ( s ) = σ ( v c ∗ F k ) A^{(s)}_k=\sigma(v_c
    F_k)A k (s )​=σ(v c ​∗F k ​)

空间注意通常的做法是对特征层进行 最大池化平均池化,之后把这俩结果进行堆叠,再做1*1卷积,然后sigmoid,最后和原特征层相乘即可。

这个部分作者没有做消融实验,我认为作者是想要和之前已经存在的CBAM进行区别,所以进行反卷积,魔改了一下😓。

; 2) ROI引导的细化模块

流程图:

【论文笔记】AP-CNN: Weakly Supervised Attention Pyramid Convolutional Neural Network for FGVC
以上述注意金字塔得到的空间注意 A k s A^{s}_{k}A k s ​ 作为掩膜,在每一层都生成对应数量的ROI(region of interest),效果如下:

【论文笔记】AP-CNN: Weakly Supervised Attention Pyramid Convolutional Neural Network for FGVC
之后根据这些生成的ROI做基于ROI的Dropblock和Zoom-in(过程省略,因为非常简单),得到最终的特征map Z k Z_k Z k ​.

最后再对 Z k Z_k Z k ​ 做一次分类,将这次的结果和初始FPN经过注意力后得到的分类结果进行平均,得到最终结果。

2、与主流模型比较

【论文笔记】AP-CNN: Weakly Supervised Attention Pyramid Convolutional Neural Network for FGVC

; 3、可视化

首先在训练时加上可视化选项,cd到AP-CNN目录下,激活对应环境,输入:

python -m vindom.server

在本机指定的窗口(官方初始定义为8097)
出现如下提示:

【论文笔记】AP-CNN: Weakly Supervised Attention Pyramid Convolutional Neural Network for FGVC
浏览器打开本机对应端口:

【论文笔记】AP-CNN: Weakly Supervised Attention Pyramid Convolutional Neural Network for FGVC
然后运行训练文件,输入:
python train.py --visualize
  • 记得要带上可视化选项。
    如下提示,则开始训练。
    【论文笔记】AP-CNN: Weakly Supervised Attention Pyramid Convolutional Neural Network for FGVC
    此时观察到浏览器端口页面变为训练与测试图像的ROI和三层mask展示:
    【论文笔记】AP-CNN: Weakly Supervised Attention Pyramid Convolutional Neural Network for FGVC
    (顺序被我不小心打乱了😓,我还不会恢复…)

4、总结

  • 本文其实没有任何的创新点,作者将 空间注意通道注意在FPN每一层都进行运用,得到了相较于 baseline:NTS在CUB-200-2011上0.9个点的精度提升。
  • lego的方法值得学习和应用😏

Original: https://blog.csdn.net/no_pain_no_gain_/article/details/124494939
Author: 事多做话少说
Title: 【论文笔记】AP-CNN: Weakly Supervised Attention Pyramid Convolutional Neural Network for FGVC

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/690910/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球