Feature Boosting, Suppression, and Diversification for Fine-Grained Visual Classification
这是一篇2021年放在arxiv上面的一篇关于细粒度识别的文章,提出了两个新颖的模块,称之为:FBSM特征增强和抑制模块,FDM特征融合模块。经验证、效果显著!
论文地址: https://arxiv.org/abs/2103.02782
Github地址: https://github.com/chaomaer/FBSD
机构:National Key Laboratory for Novel Software Technology
Nanjing University, Nanjing 210023, China
论文阅读
1.问题动机
从有区别的局部区域学习特征表示在细粒度视觉分类中起着关键作用。利用注意力机制提取零件特征已经成为一种趋势。然而,这些方法有两个主要的局限性:首先,它们通常只关注最显著的部分,而忽略了其他不明显但可区分的部分。其次,他们孤立地对待不同的零件特征,而忽略了它们之间的关系。
2.解决思路
通过引入两个轻量级模块,它们可以很容易地插入到现有的卷积神经网络中。一方面,引入了一个特征增强和抑制模块FBSM,该模块增强特征图中最显著的部分以获得特定于零件的表示,并抑制它以迫使后续网络挖掘其他潜在零件。另一方面,引入了一个特征多样化模块,它从相关的部件特定表示中学习语义互补的信息。结构图如下;
2.1FBSM
首先是从主干网络中的某一特定的层输出的特征图X开始,送入FBSM模块,具体来说:
一、获得最显著性区域特征图
1、先是把特征向量沿着宽维度分割成k部分,得到x(i)
2、接着同等对待这k部分特征向量、先经过1 × 1 卷积把通道数变为一,接着跟上BatchNorm2d函数和Relu函数进行数据的归一化。
3、然后跟上自适应的平均池化层进行压缩空间维度信息,使每一部分的空间高和宽大小变为1 × 1 、得到每一部分的重要性因子。
4、再把这k部分在宽维度上拼接起来得到B’。
5、在对宽维度的k个数据进行归一化,得到每一部分对应的归一化后的分数(即重要性因子)。
6、再使用torch.repeat_interleave函数将宽维度上的size恢复到输入到FBSM时的size。
7、此时已经可以根据分数判断最显著性的区域,紧接着根据公式获取最显著性区域的特征图 X b X_b Xb:
8、此时最显著性的特征图已经可以水平送入到下一阶段,即FDM模块。
二、获取最显著性区域被抑制的特征图
1、通过之前获得的最显著性部分、即可获得抑制特征图 X s X_s Xs,根据公式可求得抑制性特征图中每一部分的重要性因子,我个人理解为除了之前得到的最显著性区域以外的部分都是重要的(用1表示),就是要迫使网络学习除了最显著性特征以外的其他的具有区别性的特征。
2、与原始特征图点乘得到抑制性特征图 X s X_s Xs
3、把抑制性特征图 X s X_s Xs垂直送入到下一个FBSM模块
In short, the functionality of FBSM can be expressed as: F B S M ( X ) = ( X b , X s ) FBSM(X)=(X_b,X_s) FBSM(X)=(X