来自于码隆科技的2020 AAAI的一篇关于细粒度识别的文章,来自公司论文很不好的一点就是可能不会开源源码,这一点比较遗憾。
Contributions
- 提出了一个self-channel interaction(SCI)模块,对图像中不同通道之间的相互作用进行建模,这使它能够捕获每个通道的通道补充信息,从而增强了每个通道学习到的判别特征
- 提出了一个 novel contrastive channel interaction (CCI) 模块,学习图像之间的通道关系,动态地从两个比较的图像中识别出distinctive region。
Methodology
整个的model如上图所示,给定一个图像对,然后两个图像先经过backbone提取特征,生成一对feature map,随后经过SCI模块,来获取每个通道的补充信息,然后将原始特征和补充信息中的distinctive feature汇总在一起,然后将汇总后的特征输入到CCI模块,通过这个模块中的对比性损失,对两个图像之间的通道方向关系进行建模。
Self-Channel Interaction
通过上图,我们可以看到在特征通道中丰富的编码知识,并没有仅仅的去获取most discriminate channels,而是去尝试计算通道级的关系,来提取互补信息,然后将其与原始特征进行编码以进行细粒度分类。
输入图片
,
表示通过backbone提取的特征,然后将其reshape成
,SCI模块的输出是
其中
表示SCI的权重矩阵,其计算方式如下
其中
,需要留意的是
表示
和X的所有通道之间的交互,计算例子如下:
。这个W是一个
的矩阵。
对于W的定义,我们可以看出,权重较大的通道在语义上更加倾向于与
互补,因为生成的特征Y会丢失原始特征的某些信息,因此将生成特征和原始特征中distinctive feature进行汇总,
是一个
的卷积层,Z是一个discriminate features。
通过SCI模块,其实已经得到了有意义discriminate features,那么后面加一个softmax classifier进行分类应该也是可以的,但是无法捕获细粒度分类中的细微差异。
Contrastive Channel interaction (CCI)
作者认为图像
和
的SCI权重矩阵进行简单的相减就可以得到两幅图像之间的相互作用,其通道是通过对比从对比的图像中计算出来的特征通道来进行强调的,
是通过CCI产生的权重矩阵,
分别是
和
通过全连接层
学习的权重,
表示绝对值,作者这里说尝试了其他的运算来获取相互作用,但是效果都没有减法好,减法的话会抑制共性并突出显示两个图像之间独特的通道关系。但是这是不是最好的方式,要保留悬念。
然后CCI的权重矩阵
和
应用于特征
和
。
Loss Function
使用contrastive loss作为损失函数,假设每个batch中含有N个image pairs(2N images),那么contrastive loss如下所示
整个模型的损失函数为
转载:https://blog.csdn.net/WangKingJ/article/details/105752247