论文阅读笔记 | (ECCV 2018) Learning to Navigate for Fine-grained Classification

论文来自北京大学,做细粒度图像分类。

论文下载:Learning to Navigate for Fine-grained Classification

知乎专栏计算机视觉一隅,文章(ECCV 2018) Learning to Navigate for FGVC (详细版)

Abstract

由于找出判别特征比较困难,细粒度图像分类具有挑战性。找到完全表征对象的那些细微特征并不简单。为了处理这种情况,文章提出了一种新颖的自监督(self-supervision )机制,可以有效地定位信息区域而无需边界框/部分注释(bounding box/part annotations)。

提出的模型,称为Navigator-Teacher-Scrutinizer Network(NTS-Net),由Navigator agent,Teacher agent和Scrutinizer agent组成。考虑到informativeness of the regions与ground-truth class概率之间的内在一致性,设计了一种新颖的训练机制,使Navigator能够在Teacher的指导下检测大部分信息区域(informative regions)。之后,Scrutinizer仔细检查Navigator中建议区域(proposed regions)并进行预测

文章提出的模型可以被视为一种多代理合作(multi-agent cooperation),其中agents彼此相互受益,共同进步。 NTS-Net可以端到端地进行训练,同时在推理过程中提供准确的细粒度分类预测以及更大的信息区域。在广泛的基准数据集中实现了最先进的性能。

1 Introduction

细粒度分类旨在区分同一超类的从属类(subordinate classes),例如, 区分野生鸟类,汽车模型等。 挑战来源于找出信息区域(informative regions)和提取其中的判别特征(discriminative features)。因此,细粒度分类的关键在于开发自动方法以准确识别图像中的信息区域。

Previous works

  • 监督学习:利用细粒度的人工注释,如bird classification中鸟类部分的注释。虽然取得了不错的结果,但它们所需的细粒度人工注释代价昂贵,使得这些方法在实践中不太适用。
  • 无监督学习:学习规则定位信息区域,不需要昂贵的注释,但缺乏保证模型聚焦于正确区域的机制,这通常会导致精度降低。

文章提出了一种新颖的自监督(self-supervision )机制,可以有效地定位信息区域而无需边界框/部分注释(bounding box/part annotations)。开发的模型称为NTS-Net,采用multi-agent cooperative学习方法来解决准确识别图像中的信息区域的问题。 直观地,被赋予地ground-truth class的概率较高的区域应该包含更多的对象特征语义,从而增强整个图像的分类性能。 因此,设计了一种新的损失函数来优化每个选定区域的信息量,使其具有与概率为ground-truth class相同的顺序,并且我们将完整图像的ground-truth class作为区域的ground-truth class。

概括阐述self-supervision机制

NTS-Net由Navigator agent,Teacher agent和Scrutinizer agent组成。

  1. Navigator导航模型以关注最具信息性的区域:对于图像中的每个区域,Navigator预测区域的信息量,并使用预测来提出(propose)信息量最大的区域。
  2. Teacher评估Navigator建议的区域并提供反馈:对于每个建议区域(proposed region),Teacher评估其属于ground-truth class的概率;置信度(confidence)评估指导Navigator使用新颖的排序一致(ordering-consistent)损失函数来提出更多信息区域。
  3. Scrutinizer仔细检查Navigator中建议区域并完成细粒度分类:每个建议区域被放大到相同的大小,并且Scrutinizer提取其中的特征;区域特征和整个图像的特征被联合处理,以完成细粒度分类。

总的来说,本文的方法可以被视为强化学习(reinforcement learning)中的actor-critic[21]机制,其中Navigator是actor,Teacher是critic。通过Teacher提供的更精确的监督,Navigator将定位更多信息区域,这反过来将有利于Teacher。因此,agents共同进步并最终得到一个模型,该模型提供准确的细粒度分类预测以及更大的信息区域。

下图是模型的概览。

论文阅读笔记 | (ECCV 2018) Learning to Navigate for Fine-grained Classification_第1张图片

3 Methods

3.1 Approach Overview

本文方法依赖于一个假设,即信息区域有助于更好地表征对象,因此融合信息区域和全图像的特征将获得更好的性能。 因此,目标是定位对象的信息最丰富的区域(localize the most informative regions)。

信息量较大的区域应该有更高的置信度。The following condition should hold:

使用Navigator网络来近似信息函数(information function)和Teacher网络来近似置信度函数(confidence function)C.

Navigator网络评估其信息性I(Ri),Teacher网络评估其置信度C(Ri)。 为了满足Condition1,我们优化Navigator网络使  {I(R1),I(R2),...,I(RM)} 和 {C(R1),C(R2),..., C(RM)} 具有相同的顺序。

随着Navigator网络根据Teacher网络的改进,它将产生更多信息区域,以帮助Scrutinizer网络产生更好的细粒度分类结果。

3.2 Navigator and Teacher

论文阅读笔记 | (ECCV 2018) Learning to Navigate for Fine-grained Classification_第2张图片

导航到可能的信息区域可被视为区域建议问题,已进行了广泛研究。 其中大多数都基于滑动窗口搜索(sliding-windows search)机制。 Shaoqing Ren, Kaiming He等人[38]引入了一种新颖的区域建议网络(RPN),它与分类器共享卷积层并减轻计算建议的边际成本。他们使用anchors来同时预测多个区域建议。每个anchor与滑动窗口的位置、纵横比(aspect ratio)和箱尺度(box scale)相关联。

受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。

论文阅读笔记 | (ECCV 2018) Learning to Navigate for Fine-grained Classification_第3张图片

3.3 Scrutinizer

随着Navigator network逐渐收敛,它将产生信息性的对象特征区域,以帮助Scrutinizer network做出决策。 我们使用前K个信息区域与完整图像相结合作为输入来训练Scrutinizer network。 换句话说,那些K个区域用于促进细粒度识别。 图4证明了该过程,其中K = 3。Michael Lam等人 [25]表示,使用信息区域可以减少类内差异,并可能在正确的标签上产生更高的置信度。

论文阅读笔记 | (ECCV 2018) Learning to Navigate for Fine-grained Classification_第4张图片

该网络主体分为三个组件:Navigator、Teacher、Scrutinizer

1) Navigator:类似于Feature Pyramid Networks(FPN)结构,在不同尺度Feature maps上生成多个候选框,每个候选框的坐标与预先设计好的Anchors相对应。Navigator做的就是给每一个候选区域的“信息量”打分,信息量大的区域分数高。

2) Teacher:就是普通的Feature extractor + FC + softmax,判断输入区域属于target lable的概率。

3) Scrutinizer:就是一个全连接层,输入是把“各个局部区域和全图提取出来的logits”concatenate到一起的一个长向量,输出对应200个类别的Logits。

流程:

1)尺寸(448,448,3)的原图进入网络,进过Resnet-50提取特征以后,变成一个(14,14,2048)的Feature map,还有一个经过Global Pooling之后2048维的Feature Vector和一个经过Global Pooling+ FC之后200维的Logits。

2)预设的RPN在(14,14)(7,7)(4,4)这三种尺度上根据不同的size, aspect ration生成对应的Anchors,一共1614个。

3)用步骤1中的Feature map,到Navigator中打分,用NMS根据打分结果只保留N个信息量最多的局部候选框。

4)把那N个局部区域双线性插值到(224,224),输入Teacher网络,得到这些局部区域的Feature vector和Logits。

5)把步骤1和4中的全图Feature vector和局部Feature vector给concatenate在一起,之后接FC层,得到联合分类Logits用于最终决策。

监督:

1)普通的Cross-Entropy:步骤1中的全图logits, 步骤4中的part logits,步骤5中的concat logits都用label进行最简单的监督。

2)Ranking Loss: 步骤3中的信息量打分需要用步骤4中的分类概率进行监督,即对于4中的判断的属于目标label概率高的局部区域,必须在3中判断的信息量也高。

 

你可能感兴趣的:(深度学习,计算机视觉)