飞道的博客

Learning Attentive Pairwise Interaction for Fine-Grained Classification论文解读

881人阅读  评论(0)

论文链接:https://arxiv.org/abs/2002.10191

分享的这篇文章来自于AAAI2020,文章的整个思路并不难理解。文章的idea来自于我们人类对相似图像的识别。一般来说,我们识别相似的图像,一方面是去找到图像中特殊的区域来进行识别,另一方面是通过比较图像对来有效地得到对比线索。这篇论文就是从后者获得的灵感。
文章提出了Attentive Pairwise Interaction Network (API-Net),该网络可以通过交互逐步识别一对细粒度的图像。

思维导图

Model


整个的网络如上图所示,简单说一下流程如下:

  1. 在训练阶段,输入一对图像对到backbone中,分别提取特征,得到对应的特征向量 x 1 , x 2 x_1,x_2 ,然后我们得到一个 mutual vector x m R D x_m\in \Bbb{R}^{D}
  2. 我们将 x m x_m x i x_i 按通道进行点乘,即用 x m x_m 查找哪个通道可能包含对比线索,然后再通过sigmoid函数,得到gate vector g i R D g_i\in \Bbb{R}^{D}
  3. 然后再gate vector 的指导下进行成对的交互,交互后的向量放入softmax classifier中得到损失函数。

上图中的黄色部分是网络的核心部分, Attentive Pairwise Interaction(API),它是一个即插即用的模块,只在训练的过程中存在,在测试的时候,单图像进行测试,图像通过backbone提取特征向量之后,直接放入softmax classifier中,得到得分向量用于标签预测。

Attentive Pairwise Interaction(API)

这是网路的核心部分,但是并没有很复杂,它主要由三部分组成。

  1. Mutual Vector Learning.
  2. Gate Vector Generation.
  3. Pairwise Interaction

下面详细的介绍一下这三个部分,以更好的来理解文章(个人拙见,有不完备的地方还请路过的大佬指教)。

Mutual Vector Learning. 这是一个很简单的部分,输入一对图像到backbone,提取对应的特征向量 x 1 , x 2 R D x_1,x_2\in \Bbb{R}^{D} ,然后我们通过下式得到一个mutual vector

其中 f m f_m 是一个 x 1 , x 2 x_1,x_2 的映射函数,一个简单的MLP在实验中就可以产生很好的效果。这个操作,我认为就是将 x 1 , x 2 x_1,x_2 中的discriminative domain放入 x m x_m 中。它的特征通道中通常包含一些 high-level contrastive clues。

Gate Vector Generation. 从其model的图像中,也可以很明显的看出它是怎么产生的,在上一部分,我已经得到了mutual vector x m x_m ,然后将其与 x i , i { 1 , 2 } x_i,i\in \{1,2\} 按通道进行点乘,再将其添加到sigmoid中,产生gate vector g i R D g_i \in \Bbb{R}^{D}

那么 g i g_i 有什么深层次的含义呢?我觉得它是用每个 x i x_i 的discriminative attention来强调语义上的不同。
Pairwise Interaction. 我们在肉眼识别细粒度图像的时候,不仅仅是要关注于每个图像中突出的部分,还要观察彼此的不同部分,基于此,论文通过residual attention引入了交互机制。

x i s e l f R D x^{self}_i\in \Bbb{R}^{D} 表示的是通过自身的gate vector强调的, x i o t h e r R D x^{other}_i\in \Bbb{R}^{D} 表示的是通过一对中其他的gate vector激活的。

Training

API模块最后输出了4个attentive features x i j x_i^{j} ,然后我们将其输入到softmax分类器中,

p i j R C p_i^{j}\in \Bbb{R}^{C} 是预测的得分向量,C是预测类别数。
Loss Function.

第一个 L c e \mathcal{L}_{ce} 是cross entropy loss,第二个 L r k \mathcal{L}_{rk} 是score ranking regularization。

Cross Entropy Loss

这种损失能够使API-Net在标签 y i y_i 的监督下逐步的识别出所有的attentive features x i j x_i^{j}

Score Ranking Regularization.

p i j ( c i ) p_i^{j}(c_i) 是预测的向量 p i j p_i^{j} 中获得的分数, c i c_i 是于image i i 的ground truth label相关的对应索引。这个损失的目的是,让 x i s e l f x_i^{self} 仅仅通过它自己的gate vector激活。

论文的设计上的主要内容差不多就是这样,那么有一个问题就是,训练图像的pairs是怎么构建的?
Pair Construction.
在a batch中随机的采样 N c l N_{cl} 个类别,对于每个类别,我们随机的采样 N i m N_{im} 个图像,然后将这些图像输入到backbone中去提取特征向量,根据Euclidean distance将其特征与batch中的其他特征进行比较,论文中说的是每张图片能够构建两对,它的特征和batch中最相似的特征,这样的话最后产生的就是 2 × N c l × N i m 2\times N_{cl}\times N_{im} 个pairs。这个地方不是很明白,两个特征是有顺序的么?有的话那应该的确是两对,如果不是有顺序的话,那这个2对是怎么产生的呢?我觉得在这个地方处理的时候,应该不是很简单。


转载:https://blog.csdn.net/WangKingJ/article/details/105469692
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场