Learning to Navigate for Fine-grained Classification 论文地址
参考博客
介绍
问题描述:细粒度分类任务是用来区分上一级公共类的子类,例如野生鸟类、汽车型号。这些子类通常是由各个领域专家根据特定的规则定义的,这些规则通常关注特定区域的细微差别。
主要挑战:由于类间变化较小,找到具有判别能力的特征相对普通分类任务更加困难。
现有问题
- 强监督学习:利用细粒度的人工注释,如鸟分类中部分部位的注释。虽然取得了不错的结果,但它们所需的细粒度人工注释代价昂贵,使得这些方法在实践中不太适用。
- 无监督学习:学习规则定位信息区域,不需要昂贵的注释,但缺乏保证模型聚焦于正确区域的机制,这通常会导致精度降低。
本文方法
文章提出了一种新颖的自监督(self-supervision )机制,可以有效地定位信息区域而无需边界框/部分注释(bounding box/part annotations)。开发的模型称为NTS-Net,采用multi-agent cooperative学习方法来解决准确识别图像中的信息区域的问题。 直观地,被赋予地ground-truth class的概率较高的区域应该包含更多的对象特征语义,从而增强整个图像的分类性能。 因此,设计了一种新的损失函数来优化每个选定区域的信息量,使其具有与概率为ground-truth class相同的顺序。
整体思路
概括阐述self-supervision机制NTS-Net由Navigator agent,Teacher agent和Scrutinizer agent组成。
- 对于图像中的每个区域,Navigator预测区域的信息量,并提出信息量最大的区域。
- Teacher评估Navigator建议的区域并提供反馈:对于每个候选区域,Teacher评估其属于ground-truth class的概率,根据置信度评估来指导Navigator来提出具有更多信息量的区域。
- Scrutinizer仔细检查Navigator中候选区域并完成细粒度分类:每个候选区域被放大到相同的大小,并且提取其中的特征;区域特征和整个图像的特征被联合处理,以完成细粒度分类。
主要贡献
- 提出了一种新的多智能体协作学习方案,解决了细粒度分类任务中信息区域的精确识别问题。
- 提出了一种新的多智能体协作学习方案,解决了细粒度分类任务中信息区域的精确识别问题
- 本文的模型可以端到端的训练,同时提供精确的细粒度分类预测以及推理过程中的高信息量区域,实现了最先进的性能在广泛的基准数据集。
相关工作
- 强监督利用bounding box等额外的人工标注信息,获取目标的位置、大小等,有利于提升局部和全局之间的关联,从而提高分类精度。
- Part-based R-CNN基于R-CNN算法完成了局部区域的检测,利用约束条件对R-CNN提取到的区域信息进行修正之后提取卷积特征,并将不同区域的特征进行连接,构成最后的特征表示,然后通过SVM分类器进行分类训练。
- 弱监督即仅利用图像的类别标注信息,不使用额外的标注。
- DVAN(Diversified visual attention network )利用注意力机制定位具有判别能力的区域,并使用LSTM网络,更好地聚集不同判别区域的信息,最后进行分类。
- 目标检测:本文的方法需要选择信息区域,也可以看作是目标检测。引用anchor概念提取候选框,利用自监督学习,引入FPN到细粒度分类。
- 排序学习:????={????_1,????_2,⋯,????_???? }表示要排序的目标。
????={????_1,????_2,⋯????_???? }表示目标的索引。
如果Y_????≥????_????,那么X_????应该在X_???? 的前面。 - 损失函数:
本文方法
Navigator and Teacher
- 受anchors概念的启发,文章的Navigator network将图像作为输入,并产生一堆矩形区域{R’1, R’2, … R’A},每个都有一个表示该区域信息量的分数(图2显示了anchors的设计)。对于大小为448的输入图像X,我们选择具有{48,96,192}和比率{1:1, 3:2, 2:3}的anchors,然后Navigator network将生成一个表示所有anchors的信息量的列表。 我们按照下面式子中的信息列表进行排序。 其中A是anchors的数量,I(Ri)是排序信息列表中的第i个元素。
- 为了减少区域冗余,根据其信息量对区域采用non-maximum suppression(NMS)。 然后我们采取前M个信息区域{R1, R2, … RM}并将它们输入Teacher network以获得{C(R1), C(R2)), … C(RM)}。 图3显示了M = 3的概述,其中M表示用于训练Navigator network的区域数量的超参数。 我们优化Navigator network使{I(R1), I(R2), … I(RM)}和{C(R1), C(R2)), … C(RM)}具有相同的顺序。 每个建议区域通过最小化ground-truth class和predicted confidence之间的交叉熵损失(cross-entropy)来用于优化Teacher。
Scrutinizer
随着Navigator network逐渐收敛,它将产生信息性的对象特征区域,以帮助Scrutinizer network做出决策。 我们使用前K个信息区域与完整图像相结合作为输入来训练Scrutinizer network。 换句话说,那些K个区域用于促进细粒度识别。为了方便表示,其中K = 3。使用信息区域可以减少类内差异,并可能在正确的标签上产生更高的置信度。
- Feature Extractor:ResNet-50
- Navigator:FPN思想,不同层提取不同尺度特征。(48,96,192)
- Teacher:Resize to 224x224,网络输出该区域的置信度。
- Scrutinizer:接受top-K个区域输入,得到k个2048维特征向量,然后和整张图片的特征向量拼接,得到(k+1)x2048维向量,经过softmax预测最终类别。
实验
本文在Caltech-UCSD Birds(CUB-200-2011),Stanford Cars和FGVC Aircraft三个数据集上进行评估提出的算法。
- Caltech-UCSD Birds:鸟分类任务,200种野生鸟类,11788张图片,训练数据和测试数据比例1:1。
- Stanford Cars :汽车分类任务,196类汽车,16185张图片,训练数据和测试数据比例1:1。
- FGVC Aircraft :飞机分类任务,超过100类别,10000张图片,训练数据和测试数据比例2:1。
预处理图片:448x448。
固定 M=6:每张图片有6个候选区域。
Feature Extractor:ResNet-50。
Regularization:Batch Normalization。
优化器:SGD。
学习率:0.001。
权重衰减:1e-4。
NMS阈值:0.25。
ResNet-50自身可以达到84.5%,[26]提高了1.5%,而本文提出的NTS-Net相比ResNet-50提高了3%,相比[26]提高了1.5%。
当K=0时,即仅仅使用整张图片输入网络,本文可以达到85.3%,仍然高于ResNet-50, 表明Navigator还通过共享特征提取器来帮助Scrutinizer更好地学习特征表示。
为了分析不同组件的影响,设计了不同的对照试验。
NS-Net表示没有Teacher网络,分类精度从87.5%下降到83.3%。
超参数K对实验结果的影响。
为了分析导航网络在模型中的导航位置,我们绘制了导航网络预测的导航区域,使用红、橙、黄、绿表示前四个包含信息较多的区域。
第一行k=2,二到四行k=4。
总结
- 本文提出了一种不需要边界框/部分标注的细粒度分类新方法。三个网络,Navigator, Teacher, Scrutinizer相互协作、相互增强。
- 本文设计了一个新的损失函数,它考虑了区域信息量和概率之间的排序一致性。
- 我们的算法是端到端可训练的,并在CUB-200-2001,FGVC Aircraft和Stanford Cars数据集上达到最优效果。