Paper 2019CVPR《 Looking for the Devil in the Details: Learning Trilinear Attention Sampling Network for Fine-grained Image Recognition》解读
论文简介
这篇论文的链接为Looking for the Devil in the Details, 为贺郑亮继RA-CNN, MA-CNN之后在2019年的又一新作,发布于2019CVPR。因为我现在的研究方向涉及到细粒度的识别,所以最近关注到了这篇文章。那么抱着记录学习且分享知识的态度,在此对这篇paper做些解读,如有错误,还请大佬多多指教。
git-hub 源码地址:https://github.com/Heliang-Zheng/TASN
Abstract
现在的大多数基于注意力的细粒度识别方法,主要是依靠定位和放大关键parts,但是受限于parts的数量以及巨大的计算成本。在这篇文章里所用了三线注意力采样网络(TASN)以teacher-student的方式从数百个parts proposals中学习细粒度特征。
主要分为三个大部分:
- 三线注意力模块 Trilinear Attention module:生成Attention maps
- 注意力采样 Attention-based sampler: 扩大图片关键部位的分辨率
- 特征蒸馏 feature distiller: 将部件级特征逐步蒸馏转移到对象级特征
该算法2019年在Naturalist-2017, CUB-Bird, and Stanford-Cars datasets 中都取得了最好成绩。
个人认为该算法的主要优点在于:
- 基于弱监督学习,end-to-end 不再受到Attention parts的数量限制,也不需要太繁重的人工标记过程。
- 通过三线注意力的模型,很简单的快速的将特征图转换为注意力图。
- 注意力采样和知识蒸馏,可以既保证整体上的特征,又获取了大量的局部细节特征。
- 很好的解决了基于人工标记的识别中会遇到的multiple consistent问题,也就是说能容许非常规的姿态(比如说部分part被遮盖的图片)。同时也就能处理非常大量的细节局部。
Method
如上图所示,基本的结构是:
- (a)为输入的图片,经过一系列的卷积层得到feature maps到 (b)。
- 利用(b)中的三线注意力模型将feature maps转变为Attention maps。
- 注意力采样(c) 通过Attention maps 和原图来得到采样图。 这里生成了两种采样图,分别为结构保留(d)以及细节保留(e) 。值得注意的是结构保留是对Attention maps做了average pooling处理,这样来保留住全局的一个特征。 细节保留 是对Attention maps 做了random select,这样对每个注意力图随机的加入采样,意在保留局部部件的细粒度特征。
- 上面蓝色的线被称为master-net,学习全局的特征,下面绿色的线被称为part-net,学习局部的特征。接入参数共享的卷积层和全连层最后通过soft target 交叉熵,将part-net中的部件特征提取到master-net中。
Trilinear Attention 三线注意力
该Trilinear Attention 的思路是启发与作者上一篇MA-CNN中通过feature maps的channels间的空间关系来得到Attention maps的方法。
在实现中,用了resnet-18作为backbone,移除了最后两个下采样来获取相对高分辨率的特征图。为了提高卷积响应的鲁棒性,通过添加两组具有多个扩张速率的扩张卷积层来增加视野。
假设一个feature map的shape为 c × h × w c\times h\times w c×h×w。 c表示channels,h表示height,w表示width。首先我们需要reshape成两个维度的图,也就是 c × w h c \times wh c×wh。写做 X ∈ R c × h w X\in \mathbb{R}^{c \times hw} X∈Rc×hw。
那么基础的三线公式为: M b ( X ) : = ( X X T ) X M_{b}(X):=(XX^{T})X Mb(X):=(XXT)X
可以很容易推导出 X X T ∈ R c × c XX^{T}\in \mathbb{R}^{c \times c} XXT∈Rc×c,也就代表着各个channels之间的空间关系。比如 X i X j T X_{i}X_{j}^{T} XiXjT就是指代第i个channel上的feature map和第j个chanel上的feature map的空间关系。然后将这个空间关系与特征图feature maps进行一次整合( X X T X XX^{T}X XXTX)就得到了Attention maps。如下图所示。
在进一步的实验中发现,在 X X X的第二个维度上使用 softmax normalization可以提升三线模型的效果,于是改进的公式为: M b ( X ) : = N ( N ( X ) X T ) X M_{b}(X):=N(N(X)X^{T})X Mb(X):=N(N(X)XT