A Novel Plug-in Module for Fine-Grained Visual Classification
Po-Yung Chou, Cheng-Hung Lin Member , IEEE, and Wen-Chung Kao Fellow, IEEE
Department of Electrical Engineering, National Taiwan Normal University
[论文地址]([2202.03822] A Novel Plug-in Module for Fine-Grained Visual Classification (arxiv.org))
问题描述
视觉任务可以分为粗粒度和细粒度,粗粒度分类表示对具有很大分类差异性的类别进行分类。例如猫跟狗的分类;细粒度分类(FGVC)则对具有高度相似性的类别进行分类,它常常为某个类别的子类别。如对猫,狗的种类进行分类。细粒度分类面临的三挑战:①同一类对象可能由于拍摄角度,光照等在颜色和形状上表现处很大差异。②分属不同子类别的对象可能非常相似,例如德牧和黑背。③细粒度分类需要专家进行标注,数据昂贵。
细粒度分类通常需要专家标注,数据昂贵。所以处理细粒度分类问题,常用方法是先找到更加具有区分度的区域,使用区域的局部特征来更精确地分类。这就使得处理细粒度分类问题的方法大多是两个或多个阶段的体系结构,不能方便地进行端到端训练。
为了寻找强区分区域,目前的方法可分为三类:①区域建议网络(RPN)查找区域,例如NTS、FDL、StackerdLSTM。②通过注意力增强特征图,如CAL、MA-CNN、API-Net、WS-DAN。③通过自注意力的机制中注意力图强度作为区分区域的判断依据。前两种通常是CNN主干采用的方法,第三种则是Vit主干的实现方法。
前两种方法找到这些区分区域后,上述方法通过裁剪和调整大小将原始图像和特征图重新输入网络,或者使用注意机制加强特征图之间的关系。缺点就是需要两阶段或者多阶段的体系结构,同时,这些定位方法往往会生成较大的预测区域,并且不太能关注细微局部特征。而基于Vit的方法直接使用自注意中的注意图作为区域选择的依据,避免了基于反馈的结构能够实现端到端的训练,缺点是很难拓展到卷积神经网络等其他结构,扩展性较差。
此外,本文探索了目标检测模型和FGVC方法的关系,通过目标检测获取的特征图携带了丰富的位置和类别信息,但需要进行人工标注区域信息。FGVC只需要图像级的注释进行训练,所以作者考虑了弱监督目标检测算法Weakly Supervised Object Detection(WSOD)。WSOD的概念是。特征映射的相应反映了对象的位置,所以可以使用这些特征映射通过弱监督多阶段架构和损失函数设计完成边界框预测。
创新点
针对上述两阶段结构不方便进行端对端训练的问题,本文提出了一种插件类型的模块,它可以集成到许多的公共主干网,包括基于CNN和基于Transformer的网络。它通过输出像素级的特征图,并融合过滤后的特征来增强视觉分类。该方法在CUB200-2011和NABirds上的准确率分别达到了92.77%和92.83%。
主要贡献可总结为:
- 提出的插件网络可以应用到不同的模型中,该网络集成了背景分割和特征融合,能有效提高细粒度视觉分类准确性
- 提出的方法在细粒度类的分类数据集上取得了更先进的准确性
方法描述
文章提出的插件模块主要有三个操作,包括划分、竞争、联合。此外为了更好的检测不同尺度的关键特征,在骨干中引入了特征金字塔Feature Pyramid Network (FPN) 。方法的主要思想是通过将特征图上的每一个像素或patch视为一个特征,然后对这些特征进行分类并将其分类能力作为区分的基础。
提出的插件模块流程图
对于输入图片,经过一个n层的Backbone网络获取每一层处理后的特征图送入弱监督分类器。弱监督分类器然后筛选出具有强分辨能力和与分类关系较小的区域。最后使用组合其对所选结果的特征进行融合来获得预测结果。弱监督选择算法如下图:
弱监督选择算法
对于特征融合,本文考虑了两种实现方式:1.通过全连接层实现,将特征图在输入全连接层之前先连接起来形成输入特征,经过全连接层后直接产生预测结果。2.通过图卷积实现,通过该方法可以更有效地集成每个点的特征且不会破坏主干模型输出结果。文章采用了这种方式,整体结构如图所示。
Combiner的结构
方法的前向传播和反向传播过程
训练的第一个目标是使每个特征图的特征点具有分类能力,该部分的总损失为Lb。公式(1)表示对每一层特征图中每个特征点的分类结果取平均,然后通过公式(2)将每一层的交叉熵损失相加得到块总损失。
除了训练整体分类,特征图的选定位置通过Mask进行标记,Mask是一个二值矩阵,1代表选取特征点,0代表丢弃点。所以S* (M ask)可以表示具有区分性的区域特征,S*(~Mask)表示求其的背景特征点 。等式(3)表示l层选取特征的和。选取区域的损失等式(4)所示。等式(5)代表丢弃特征的和。该部分的损失定义如等式(6)所示。
背景输出的目的主要是用来选取预测前景和背景的阈值分数,本文将flatten output最高的概率值作为该分数。
选取的特征fs∈R^N ×C将被输入组合器产生混合尺度的分类结果,输出特征fcob∈R^N0 ×C。
N0代表经过组合器后超节点个数,然后对这些超节点上的特征进行平均送入线性分类器输出预测。组合器分类损失为Lc,整个损失函数定义如等式(7)。
实验结果
- 表一表二首先展示了在两个细粒度分类数据集上与其他方法的比较结果
2. 表三展示了加入plug-in model后模型的性能提升
消融实验(基于Swin-T主干)
1.选择区域的数量
如表五所示,选择区域的数量对于准确性没有太大影响,却会导致参数量差异,权衡之后选择[256,128,64,32]
2.选择区域和丢弃区域
选取不同数量的选择区域对于选择准确性和丢弃准确性的影响。
-
组合器
表七对比不同的组合器对准确性的影响,选取的单层的GCN具有最高的精度和较少的计算量。
4.池化数
表八对比不同的池化比对三种GCN的精度影响。1/128表示输出节点数使输入节点的一百二十八分之一.
- 不同功能模块添加后对精度影响