代碼 https://github.com/yangze0930/NTS-Net
Learning to Navigate for Fine-grained Classification
Abstract
細粒度分類由於難以找到有區分度的特征而具有很大的挑戰性。要找到這些微妙的特征來完全描述物體並不是一件簡單的事。針對這種情況,我們提出了一種新的自我監督機制,在不需要限定bounding box/part標注的情況下,有效地定位信息區域。我們的模型被稱為NTS-Net的Navigator-Teacher-Scrutinizer 網絡,由Navigator agent、Teacher agent和Scrutinizer agent組成。考慮到區域的信息量與為ground truth類的概率之間的內在一致性,我們設計了一種新的訓練范式,使Navigator能夠在Teacher的指導下檢測出信息量最大的區域。然后,仔細檢查Navigator推薦的區域並做出預測。我們的模型可以看作是一個多agent的合作,agent之間相互受益,共同進步。NTS-Net可以端到端的訓練,同時在推理過程中提供精確的細粒度分類預測以及高信息量的區域。我們在廣泛的基准數據集上實現了最先進的性能。
1 Introduction
細粒度分類的目的是區分一個普通類的從屬類,例如區分野鳥種類、汽車型號等。這些從屬類通常由領域專家用復雜的規則定義,這些規則通常關注特定區域的細微差異。雖然深度學習推動了許多計算機視覺任務的研究[24,38,33],但其在細粒度分類中的應用或多或少不盡人意,這在很大程度上是由於難以找到信息區域並從中提取有區分度的特征。對於像鳥一樣擺出各種姿勢的從屬類來說,情況更糟。
因此,細粒度分類的關鍵在於開發自動方法來准確地識別圖像中的信息區域。之前的一些研究[45,8,3,46,13,2,29]利用了細粒度的人工標注,如鳥類分類中的鳥類parts標注。雖然獲得了不錯的結果,但它們所需的細粒度人工注釋代價高昂,使得這些方法在實踐中不太適用。其他方法[49,47,48,43]采用無監督學習方案來定位信息區域。它們消除了對昂貴注釋的需要,但缺乏一種機制來保證模型關注正確的區域,這通常會導致准確性下降。
在本文中,我們提出了一種新的自監督機制來有效地定位信息區域,而不需要細粒度的bounding-box/part標注。我們所開發的模型,即我們稱之為NTS-Net的Navigator-Teacher-Scrutinizer網絡,采用多agent合作學習方案來解決准確識別圖像中的信息區域的問題。從直觀上看,被分配為ground-truth類的概率較高的區域應該包含更多的對象特征語義,從而提高整個圖像的分類性能。因此,我們設計了一種新的損失函數來優化所選區域的信息量,使其具有與ground truth類的概率相同的次序,並以全圖像的ground turth類作為區域的ground turth類。
具體來說,我們的NTS-Net由一個Navigator agent、一個Teacher agent和一個Scrutinizer agent組成。Navigator導航模型以關注信息最豐富的區域:對於圖像中的每個區域,Navigator預測該區域的信息含量,並使用預測結果推薦信息最豐富的區域。Teacher對Navigator提出的區域進行評價並提供反饋:對於每個提出的區域,Teacher對其屬於ground-truth類的概率進行評價;置信度評估引導Navigator使用我們的順序一致(ordering-consistent)損失函數提出更多的信息區域。Scrutinizer從Navigator中審查建議的區域,並進行細粒度的分類:每個建議的區域被擴大到相同的大小,Scrutinizer從中提取特征;將區域特征和整體圖像特征進行聯合處理,進行細粒度分類。從整體上看,我們的方法可以看作是強化學習中的actor-critic[21]方案,Navigator是actor,Teacher是critic。當Teacher提供更精確的指導時,Navigator將定位更具信息的區域,這反過來也將使Teacher受益。結果,各agent共同進步,最終得到一個模型,該模型提供精確的細粒度分類預測以及信息豐富的區域。圖1顯示了我們方法的概述。

我們的主要貢獻總結如下:
-我們提出了一種新的多agent合作學習方案,以解決在細粒度分類任務中不需要bounding-box/part標注的情況下准確識別信息區域的問題。
-我們設計了一種新的損失函數,通過使區域的信息量和其被判定為ground-truth類的概率具有一致性,Teacher可以引導Navigator定位圖像中信息量最高的區域。
-我們的模型可以端到端的訓練,同時提供精確的細粒度分類預測,以及在推理過程中提供高信息區域。我們在廣泛的基准數據集上實現了最先進的性能。
本文的其余部分組織如下:我們將在第2節回顧相關的工作。在第3節中,我們將闡述我們的方法。實驗結果在第4節給出並分析,最后在第5節總結。
2 Related Work
2.1 Fine-grained classification
有各種各樣的方法被設計來區分細粒度的類別。由於一些細粒度分類數據集提供了bounding-box/part注釋,早期的作品[45,8,2]在訓練和推理階段都利用了這些注釋。然而,在實際部署模型時,將沒有可用的人工注釋。后來,一些作品[3,46]只在訓練階段使用bounding-box/part注釋。在這種設置下,框架非常類似於檢測:選擇區域,然后對pose-normalized 的對象進行分類。Jonathan等人[22]使用共分割和對齊的方法生成沒有part標注的part,但訓練時使用了bounding-box標注。最近,出現了一種更普遍的設置,它在訓練或推理時都不需要bounding-box/part注釋。這個設置使細粒度分類在實踐中更有用。本文主要考慮最后一種設置,即在訓練或推理階段不需要bounding-box/part標注。
為了在沒有細粒度注釋的情況下學習,Jaderberg等人提出了Spatial Transformer Network來顯式地操作網絡內的數據表征,並預測信息區域的位置。Lin等[28]使用雙線性模型構建整幅圖像有區分度的特征;模型能夠捕獲不同從屬類之間的細微差別。Zhang等人[47]提出了一種兩步法來學習一組part檢測器和part顯著性映射。Fu等[12]使用替代優化方案訓練注意力proposal網絡和基於區域的分類器;它們表明兩項任務是相關的,並且可以相互受益。Zhao等人[48]提出了Diversified Visual Attention Network (DVAN),明確追求注意力的多樣性,更好地收集具有區分度的信息。Lam等人[25]提出了一種Heuristic-Successor Network (HSNet)來將細粒度分類問題制定為圖像中信息區域的順序搜索問題。
2.2 Object detection
早期目標檢測方法采用SIFT[34]或HOG[10]特征。最近的工作主要集中在卷積神經網絡。R-CNN[14]、OverFeat[40]、SPPnet[16]等方法采用傳統的圖像處理方法生成對象proposals,並進行類別分類和bounding box回歸。稍后的工作,如Faster R-CNN[38]提出 Region Proposal Network (RPN),以生成proposal。YOLO[37]和SSD[31]通過采用single-shot架構,在Faster R-CNN[38]上提高了檢測速度。另一方面,Feature Pyramid Networks (FPN)[27]專注於更好地解決多尺度問題,並從多個特征maps生成anchors。我們的方法需要選擇信息區域,這也可以看作是目標檢測。據我們所知,我們是第一個將FPN引入細粒度分類的人,同時消除了人工注釋的需要。
2.3 Learning to rank
在機器學習和信息檢索領域[30]中,排名學習正在引起人們的關注。訓練數據由帶有指定順序的item列表組成,而目標是學習item列表的順序。設計了排序損失函數來懲罰排序錯誤的配對。
表示用於排序的對象,
表示對象的索引,其中
表示
應該排在
的前面。
表示排序函數的假設集。其目標是找到能夠最小化定義在
的某損失函數的排序函數
。有很多的排序方法。通常,這些方法被分成三類:the point-wise approach [9], pair-wise approach [18,4] 和list-wise approach[6,44]。
point-wise方法為每個數據賦予一個數值分數,learning-to-rank問題被看作回歸問題,使用L2損失函數,如下:

pair-wise排序方法中,learning-to-rank問題被看作分類問題,即學習一個二分類器去選擇概率最高的對。假設
的值為0或1,
=0意味着
排在
前面。然后損失被定義在所有的對上,如等式2所示,其目標是找到最優
去最小化錯序對的平均數量:

list-wise方法直接優化整個列表,可見其看作排列的分類問題。
為排序函數,損失定義為:

在我們的方法中,我們的navigator損失函數采用了multi-rating pair-wise排序損失,使區域的信息量和被判定為ground truth類的概率之間具有一致性。
3 Methods
3.1 Approach Overview
我們的方法是基於信息區域有助於更好地描述目標的假設,因此將信息區域的特征與完整圖像融合將獲得更好的性能。因此,目標是定位對象中信息最豐富的區域。我們假設所有區域都是矩形的,我們將
表示為給定圖像中所有區域的集合。我們定義信息函數
以評估區域
有多少的信息,且定義置信度函數
為分類器去評估區域屬於ground turth類的置信度。如第一節所說的,有着更多信息的區域應該有着更高的置信度,因此下面的條件應被滿足:
![]()
我們使用Navigator網絡去近似信息函數
,Teacher網絡去近似置信度函數
。為了簡化,在區域空間
選擇M個區域
,對於每個區域
,Navigator網絡評估其信息量
,Teacher網絡評估其置信度
。為了滿足條件1(condition 1),我們優化Navigator網絡去使
有相同的順序。
隨着Navigator網絡按照Teacher網絡的要求進行改進,它將產生更具信息的區域,幫助Scrutinizer網絡做出更好的細粒度分類結果。
在3.2節中,我們將描述Navigator如何在Teacher的監督下提出信息區域。在第3.3節中,我們將介紹如何從Scrutinizer獲得細粒度的分類結果。3.4節和3.5節將分別詳細介紹網絡架構和優化。
3.2 Navigator and Teacher
導航到可能的信息區域可以看作是一個區域推薦問題,該問題在[41,11,1,7,20]中得到了廣泛的研究。其中大多數都基於滑動窗口搜索機制。Ren等人[38]引入了一種新的區域推薦網絡(region proposal network ,RPN),該網絡與分類器共享卷積層,並降低了計算proposals的邊際成本。他們使用anchors來同時預測多個區域proposals。每個anchor都與滑動窗口的位置、長寬比和方框比例相關聯。受anchors想法的啟發,我們的Navigator網絡將圖像作為輸入,生成一系列的長方形區域
,每個區域都有一個表示區域信息量的分數(圖2表示了我們anchors的設計)。對於大小為448的輸入圖像X,我們選擇尺度為{48,96,192}、比率為{1:1, 3:2, 2:3}的anchors,然后Navigator網絡將生成表示所有anchors信息量的列表。我們如等式4一樣排序信息列表,其中A表示anchors的數量,
表示順序信息列表中的第i個元素:
![]()

為了減少區域的冗余量,我們在區域中,基於其信息量,采用non-maximum suppression (NMS)方法。然后我們使用top-M的信息區域
,並將他們輸入Teacher網絡去得到置信度
。圖3展示了M=3的概述,其中M是一個表示有多少區域被用來訓練Navigator網絡的超參數。我們優化Navigator網絡去使
有相同的順序。每個推薦的區域通過最小化ground truth類和預測置信度之間的交叉熵損失去有優化Teacher。
3.3 Scrutinizer

隨着Navigator網絡的逐步收斂,將產生具有對象特征的信息區域,幫助Scrutinizer網絡進行決策。我們使用top-k個信息區域結合完整圖像作為輸入來訓練Scrutinizer網絡。換句話說,這些K個區域用於促進細粒度識別。圖4展示了K = 3時的過程。Lam等人的[25]表明,使用信息區域可以減少類內方差,並有可能在正確的標簽上產生更高的置信度分數。我們的對比實驗表明,添加信息區域顯著提高了大量數據集的細粒度分類結果,包括CUB-200-2001、FGVC Aircraft和Stanford Cars,如表2、3所示。

3.4 Network architecture
為了獲得區域proposals與特征圖中特征向量的對應關系,我們使用不使用全連接層的全卷積網絡作為特征提取器。其中,我們選擇在ILSVRC2012[39]上預訓練好的ResNet-50[17]作為CNN特征提取器,Navigator、Scrutinizer、Teacher network都共享特征提取器中的參數。我們表示特征提取器中的參數為W。對於輸入圖像X,提取的深度表征被表示為X⊗W,⊗表示卷積、池化和激活操作的組合。
Navigator network. 受Feature Pyramid Networks (FPN) [27]設計的啟發,我們使用了一個具有橫向連接的自頂向下結構來檢測多尺度區域。我們使用卷積層逐層計算特征層次,后面跟着ReLU激活和max-pooling。然后我們得到一系列不同空間分辨率的特征圖。較大的特征maps中的anchors對應較小的區域。圖4中的Navigator網絡顯示了我們的設計草圖。利用不同層次的多尺度特征圖,可以生成不同尺度和比例的區域信息。在我們的設置中,我們使用尺度為{48×48,96×96,192×192}的區域對應尺度為{14×14,7×7,4×4}的特征圖。我們將Navigator網絡中的參數表示為
(包括特征提取器中的共享參數)。
Teacher network. Teacher網絡(圖3)近似於映射
,表示每個區域的置信度。接收M個來自Navigator網絡的尺度歸一化后(224×224)的信息區域
,Teacher網絡輸出置信度作為teaching信號,幫助Navigator網絡學習。除了特征提取器中的共享層外,Teacher網絡還有一個全連接層,共有2048個神經元。為方便起見,我們將Teacher網絡中的參數表示為
。
Scrutinizer network. 接收到Navigator網絡的top-K個信息區域后,將這K個區域調整到預先定義的大小(實驗中使用224×224),並將其輸入特征提取器生成這K個區域的特征向量,每個區域的長度為2048。然后,我們將這些K個特征與輸入圖像的特征連接起來,並將其輸入到一個具有2048×(K + 1)個神經元的全連接層(圖4)。我們使用函數
來表示這些轉換的組成。我們將Scrutinizer網絡中的參數表示為
。
3.5 Loss function and Optimization
Navigation loss. 將Navigator網絡中預測的M個最具信息的區域表示為
,其信息量表示為
=
,Teacher網絡預測的置信度表示為
=
。然后navigation損失被定義為:

其中,函數f是non-increasing函數,用於當
時,鼓勵
,在我們的實驗中,使用hinge損失函數
。該損失函數懲罰
和
中錯序的對,鼓勵
和
中有着相同順序的對。navigation損失函數是可微的,在后向傳播中根據鏈式規則估計關於
的導數,我們能夠得到:

該等式遵循定義![]()
Teaching loss. 我們定義Teaching損失
為:

其中
是置信度函數,將區域映射到其判定為ground truth類的概率。等式7的第一項是所有區域交叉熵損失的總和,第二項是整張圖的交叉熵損失
Scrutinizing loss. 當Navigator網絡導航到最具信息的區域
,Scrutinizer網絡得到細粒度識別結果
。我們設置交叉熵損失為分類損失:
![]()
Joint training algorithm. 總損失被定義為:
![]()
其中λ和μ為超參數。在我們的設置中,λ=μ= 1。總體算法可見算法1。我們使用隨機梯度法來優化
。

4 Experiments
4.1 Dataset
我們在Caltech-UCSD Birds (CUB-200-2011)[42]、Stanford Cars[23]和FGVC Aircraft[35]數據集上綜合評價了我們的算法,這些數據集被廣泛用作於細粒度圖像分類的基准。我們在所有的實驗中都沒有使用任何bounding box/part標注。所有3個數據集的統計數據如表1所示,我們遵循與表中相同的訓練/測試分割。
Caltech-UCSD Birds. CUB-200-2011是一項鳥類分類任務,有來自200種野生鳥類的11788張圖像。訓練數據與測試數據的比值大致為1:1。它通常被認為是最具競爭力的數據集之一,因為每個物種只有30張圖像可供訓練。
Stanford Cars. Stanford Cars數據集包含16,185張圖像,超過196個類,每個類大約有一個50-50的分割。圖片中的汽車是從多個角度拍攝的,類別通常是在生產年份和車型的級別(例如2012年特斯拉model S)。
FGVC Aircraft. FGVC Aircraft dataset包含10000張圖像,超過100個類,訓練/測試集分割比約為2:1。這個數據集中的大部分圖像都是飛機。數據集被組織成一個從細到粗的四級層次結構:Model, Variant, Family, Manufacturer。

4.2 Implementation Details
在所有的實驗中,我們進行預處理圖像大小448×448,我們設置M = 6,這意味着6個區域被用於為每個圖像訓練Navigator網絡(對超參數 K和M沒有限制)。我們使用全卷積網絡ResNet-50[17]作為特性提取器和使用 Batch Normalization作為規范器。我們使用初始學習率為0.001的Momentum SGD,並在60個epochs后乘以0.1,我們使用1e−4的權重衰減。NMS閾值設置為0.25,不使用預訓練的檢測模型。我們的模型對超參數的選擇具有魯棒性。
4.3 Quantitative Results
總的來說,我們提出的系統優於所有以前的方法。由於我們不使用任何bounding box/part標注,所以我們不與依賴於這些標注的方法進行比較。表2顯示了我們的結果與CUB-200-2011之前的最佳結果的對比。ResNet-50是一個強大的基線,其本身達到了84.5%的精度,而我們提出的NTS-Net的表現明顯優於它3.0%。與使用ResNet-50作為特征提取器的[26]相比,提高了1.5%。值得注意的是,當我們只使用完整圖像(K = 0)作為Scrutinizer的輸入時,我們的精度達到了85.3%,也高於ResNet-50。這一現象表明,在導航到信息區域時,Navigator網絡也通過共享特征提取器來促進Scrutinizer,從而更好地學習特征表示。

表3分別顯示了我們在FGVC Aircraft 和Stanford Cars上的結果。我們的模型實現了最新的最先進的結果,在FGVC Aircraft上得到91.4%的top-1准確率和Stanford Cars上93.9%的top-1准確率。

4.4 Ablation Study
為了分析我們框架中不同組件的影響,我們在CUB-200-2011中設計了不同的運行,並將結果報告在表4中。我們使用NS-Net表示沒有Teacher的指導的模型,NS-Net讓Navigator網絡單獨提出區域,精度從87.5%下降到83.3%,我們假設這是因為Navigator沒有收到teacher的監督,將隨機推薦區域,這樣導致我們不能從分類中獲益。我們還研究了超參數K的作用,即 使用了多少個part區域進行分類。由表4可知,當K從2增加到4時,精度僅提高0.2%,精度提高很小,而特征維數幾乎翻倍。另一方面,當K從0增加到2時,准確率增加了2.0%,這表明簡單地增加特征維數只會得到很小的改善,但我們的多agent框架將實現相當大的改善(0.2% vs 2%)。

4.5 Qualitative Results
為了分析Navigator網絡在哪里導航模型,我們在圖5中繪制了Navigator網絡預測的導航區域。我們使用紅色、橙色、黃色、綠色矩形表示導航器網絡提出的信息含量最高的四個區域,紅色矩形表示信息含量最高的一個區域。可以看出,定位的區域確實為細粒度分類提供了信息。第一行顯示了在cube -200-2011數據集中K = 2時:我們可以發現,使用兩個區域可以覆蓋鳥類的信息parts(特別是在第二幅圖片中,即使鳥類的顏色和背景非常相似,也能區分出來鳥和背景)。第二行是在CUB-200-2011中設置K = 4時,我們可以看到鳥類信息最豐富的區域是頭部、翅膀和身體,這與人類的認知是一致的。第三行是在 Stanford Cars中設置K = 4時:我們可以發現,headlamps和grilles被認為是車信息最豐富的區域。第四行是在FGVC Airplane中設置K = 4時:Navigator網絡定位了飛機的機翼和機頭,這對分類非常有幫助。

5 Conclusions
本文提出了一種不需要bounding box/part標注的細粒度分類方法。這三個網絡:Navigator, Teacher和Scrutinizer相互合作,相互加強。我們設計了一個新的損失函數,它考慮了區域的信息和概率之間的排序一致性。我們的算法是端到端可訓練的,並在CUB-200-2001, FGVC Aircraft 和Stanford Cars 數據集上取得了最先進的結果。
