在細粒度分類中使用局部特征的方法有很大的局限性。
因此,使用圖像級標簽的分類方法。例如,Simon和Rodner[26]提出了壹個星座模型,使用卷積神經網絡(CNN)來尋找神經激活模式的星座。張等[36]提出了壹種自動的細粒度圖像分類方法,結合深度卷積濾波器來選擇和描述分量。這些模型使用CNN作為局部檢測器,在細粒度識別方面有了很大的改進。與基於組件的方法不同,我們將不同卷積層的激活視為對不同組件屬性的響應,而不是顯式定位目標組件,而是使用跨層雙線性池來捕捉組件屬性的層間交互,這被證明對細粒度識別非常有用。
也有研究[3,6,17,12]引入雙線性池框架來對本地對象建模。盡管已經報道了壹些有希望的結果,但是進壹步的改進仍然有以下限制。首先,現有的基於雙線性池的模型大多只把最後壹個卷積層的激活作為圖像的表示,不足以描述對象的語義部分。其次,忽略了中間的卷積活動,導致細粒度分類的判別信息丟失,而這對於細粒度視覺識別具有重要意義。
眾所周知,CNN存在信息丟失。為了最小化細粒度識別有用信息的損失,我們提出了壹種新的分層雙線性池結構來集成多個跨層雙線性特征,以增強它們的表示能力。為了充分利用中間卷積層的激活,所有跨層雙線性特征在最終分類前連接。註意,不同卷積層的特征是互補的,它們有助於鑒別特征學習。因此,網絡受益於層間特征交互和細粒度特征學習的相互增強。我們的貢獻總結如下:
1.我們開發了壹種簡單但有效的跨層雙線性池技術,它支持層間特征的交互,並以相互促進的方式學習細粒度表示。
2.提出了壹種基於跨層雙線性池的分層雙線性池框架,集成了多個跨層雙線性模塊,從中間卷積層獲取互補信息,從而提高了性能。
3.我們在三個具有挑戰性的數據集(雛鳥、斯坦福汽車和fgvc飛機)上做了全面的實驗,結果證明了我們方法的優越性。
本文的其余部分組織如下。第二部分是對相關工作的回顧。第3節介紹了提出的方法。第4節給出了實驗和結果分析,第5節給出了結論。
在下壹篇文章中,我們將從與我們的工作相關的兩個有趣的角度簡要回顧之前的工作,包括CNN中的細粒度特征學習和特征融合。
1.為了更好地對細粒度類別的細微差異進行建模,Lin等人[17]提出了壹種雙線性結構,通過兩個獨立的CNN聚合成對特征,這種結構利用特征向量的外積生成壹個非常高維的二次展開特征。
2.高等[23]用張量來逼近二階統計量,降低特征維數。
3.孔等人對協方差矩陣采用低秩逼近,進壹步降低了計算復雜度。
4.Yin等人通過叠代地將張量草圖壓縮應用於特征來聚集高階統計量。
5.[22]的工作以雙線性卷積神經網絡為基線模型,采用集成學習的方法對其進行加權。
6.在[16]中提出了矩陣的平方根歸壹化,並證明了它是對現有歸壹化的補充。
但是,這些方法只考慮了單壹卷積層的特征,不足以捕捉對象的各種判別部分,也不足以模擬子類別之間的細微差異。我們的方法通過將層與層之間的特征交互和細粒度的特征學習以相互促進的方式結合起來,克服了這種限制,因此更有效。
3,7,19,33研究CNN中不同卷積層特征圖的有效性。
作者將每個卷積層視為未使用對象部分的屬性提取器,以直觀有效的方式對它們的直接交互進行建模。
在本節中,我們建立壹個分級雙線性模型來克服上述限制。在提出我們的分層雙線性模型之前,我們首先在3.1節中介紹了用於細粒度圖像識別的分解雙線性池的壹般公式。在此基礎上,我們在3.2節提出了跨層雙線性池技術,聯合學習不同卷積層的激活,捕獲信息的跨層交互,從而獲得更好的表示能力。最後,我們的分層雙線性模型結合了多個跨層雙線性模塊,以生成更詳細的部分描述,從而實現更好的細粒度識別。
雙線性池的分解已經被應用到回答視覺問題的任務中,Kim等人[11]利用雙線性池的Hadamard乘積分解提出了壹種有效的多模態學習的註意機制。介紹了用於細粒度圖像識別的分解雙線性池技術的基本公式。假設壹幅圖像I經CNN濾波後卷積層的輸出特征圖為X Rh w c,H,W,C,我們將空間位置在X上的C維描述符表示為X = [x1,x2,...,XC] T
其中Wi是投影矩陣,Zi是雙線性模型的輸出。我們需要學習W = [W1,W2,...,Wo]並得到壹個O維輸出z .根據[24]中的矩陣分解,等式中的投影矩陣Wi。(1)可以分解成兩個單秩向量。
其中Ui ∈ Rc和Vi ∈ Rc。因此,輸出特征z ∈ Ro由下式給出
其中U Rc d和V Rc d是投影矩陣,P Rd o是分類矩陣,o是Hadamard積,d是決定節理嵌入維數的超參數。
細粒度的子類別通常具有相似的外觀,只能通過局部屬性的細微差異來區分,如鳥類的顏色、形狀或喙長。雙線性池是壹種重要的細粒度識別技術。然而,大多數雙線性模型只註重從單個卷積層學習特征,完全忽略了信息的跨層交互。單個卷積層的激活是不完全的,因為每個對象部分都有多個屬性,這些屬性對於區域的分子分類非常重要。
事實上,在大多數情況下,我們需要考慮零件特征的多個因素來確定給定圖像的類別。因此,為了捕捉壹些更細粒度的特征,我們開發了跨層雙線性池方法,將CNN中的每個卷積層都視為部分屬性提取器。然後,通過元素乘法將不同卷積層的特征進行整合,建立了部分屬性的層間交互模型。根據公式(3),它可以重寫為:
3.2節提出的跨層雙線性池直觀有效,在不增加訓練參數的情況下,其表示能力優於傳統的雙線性池模型。這啟示我們,利用不同褶積層之間的層間特征的相互作用,有利於捕捉細粒度子層之間的區分屬性。因此,我們擴展了跨層雙線性池,以集成更多的中間卷積層,進壹步提高了特征表示的速度。在本節中,我們提出了壹個廣義的分層雙線性模型,通過級聯多個跨層雙線性池模塊來組合更多的卷積層特征。具體來說,我們將跨層雙線性池模塊分為交互階段和分類階段,公式如下:
其中p是分類矩陣,U,V,S,…分別是卷積層特征向量x,y,z,…的投影矩陣。HBP框架的總體流程如圖1所示。
在本節中,我們將評估HBP模型在細粒度記錄中的性能。4.1節首先介紹HBP的數據集和實現細節。在第4.2節中,進行了模型配置研究,以調查每個組件的有效性。第4.3節給出了與最新方法的比較。最後,在4.4節中,定性可視化被用來直觀地解釋我們的模型。
數據集:cub200-201130,StandFordcars15,FGVC-Aircraft21。
實驗:使用ImageNet分類數據集預訓練的基線模型VGG-16對HBP進行評估,刪除最後三個全連通層。也可以應用於Inception和ResNet,輸入圖像大小為448。我們的數據擴展遵循通常的做法,即在訓練中使用隨機抽樣(從512 S中切割448 448,其中S是最大的圖像邊緣)和水平翻轉,在推理中只使用中心切割。我們先用logistic回歸訓練分類器,然後用批量為16,動量為0.9,權值衰減為5 10 4,學習速率為10 3的隨機梯度下降法對整個網絡進行微調,並周期性退火為0.5。
跨層雙線性池(CBP)有壹個用戶自定義的投影維數D,為了研究D的影響,驗證所提出框架的有效性,我們在cub200 -2011[30]數據集上做了大量實驗,結果如圖2所示。註意,我們用FBP的relu5 3,CBP的relu5 2和relu5 3,HBP的relu5 1,relu5 2和relu5 3得到圖2的結果,我們還提供了下面的選層定量實驗。在VGG-16[27]中,我們主要關註relu5 1、relu5 2和relu5 3,因為它們的淺層包含了更多的偏義信息。在圖2中,我們比較了CBP和壹般分解雙線性池模型(FBP)的性能。在此基礎上,我們進壹步探討了多層組合的HBP方法。最後,我們分析超參數d的影響因素,從圖2中,我們可以得出以下重要結論:
首先,在相同的D下,我們的CBP明顯優於FBP,這說明了各層特征之間的交互作用可以增強識別能力。
其次,HBP進壹步優於CBP,證明激活中間卷積層對細粒度識別是有效的。這可以用細胞神經網絡在傳播過程中的信息丟失來解釋,因此對於細粒度識別很重要的識別特征可能會在中間卷積層丟失。與CBP相比,我們的HBP考慮了更多的中間卷積層的特征相互作用,因此具有更強的魯棒性,因為HBP表現出最好的性能。在接下來的實驗中,HBP與其他最先進的方法進行了比較。
第三,當d從512變為8192時,增加d可以提高所有模型的精度,HBP達到d = 8192飽和。因此,d = 8192。
然後,我們在cub200 -2011[30]數據集上進行定量實驗,分析該層的影響因素。表2的精度是在相同的嵌入維數(d = 8192)下得到的。我們考慮CBP和HBP不同層面的結合。結果表明,框架的性能增益主要來源於層間交互和多層組合。因為HBP-3表現出了最好的性能,所以我們在4.3節的所有實驗中使用了relu5 1、relu5 2和relu5 3。
我們還比較了我們的跨層集成與基於超序列[3]的有限元融合。為了公平比較,我們將超序列重新認識為relu5 3和relu5 2的特征連接,然後在相同的實驗設置下分解雙線性池(命名為HyperBP)。從表3中可以看出,我們的CBP的結果比HyperBP的結果略好,接近1/2參數,這再次表明我們的集成框架在捕捉層之間的特征關系方面更有效。這並不奇怪,因為我們的CBP在某種程度上與人類的感知是壹致的。與HyperBP算法相反,當整合更多卷積層激活時[3],結果更差。我們的HBP算法可以捕捉到中間卷積層的互補信息,識別精度明顯提高。
結果cub- 200-2011。CUB數據集提供了邊界框和鳥部分的地面真實註記。我們使用的唯壹監控信息是圖像級類標簽。cub200 -2011的分類精度如表4所示。表格按行分為三部分:第壹部分總結了基於標註的方法(使用對象包圍盒或部分標註);第二種方法是無監督的基於部分的方法;最後,給出了基於池的方法的結果。
從表4的結果可以看出,PN-CNN[2]使用了人類定義的包圍盒和強大的地面實部超級視覺。SPDA- CNN[35]使用地面真相部分,B-CNN [17]使用具有非常高維特征表示(250K維)的包圍盒。與PN- CNN[2]、SPDA-CNN[35]和B-CNN[17]相比,提出的HBP(relu5 3+relu5 2+relu5 1)即使不考慮bbox和部分幹擾也能取得更好的結果,證明了我們模型的有效性。與STN[9]相比,使用更強的初始網絡作為基準模型,我們得到相對於ac-assistant pastor身份的3.6%的家族血壓(relu5 3+relu5 2+relu5 1)。我們甚至超越了RA-CNN[5]和MA-CNN[37],最近提出了最先進的無監督部分原因方法,相對準確率分別為2.1%和0.7%。與基於pool的B-CNN[17]、CBP[6]和LRBP[12]基線相比,我們主要受益於更好的層間交互和結果特征的多層集成。我們還超過了BoostCNN[22],它可以增強在多個尺度上訓練的多個雙線性網絡。雖然HIHCA[3]提出了類似於特征交互模型的思想進行細粒度識別,但由於層與層之間的特征交互和判別特征學習的相互促進框架,我們的模型可以達到更高的準確率。註意,HBP(relu5 3+relu5 2+relu5 1)的表現優於CBP(relu5 3+relu5 2)和FBP(relu5 3),這說明我們的模型能夠捕捉到層間的互補信息。
斯坦福汽車公司的成果。斯坦福汽車的分類精度如表5所示。不同的汽車零部件是不同的,也是互補的,所以物體和零部件的本地化在這裏可能會起到重要的作用。雖然我們的HBP沒有明確的部分檢測,但我們的檢測結果是目前最先進的檢測方法中最好的。基於層間特征的交互學習,我們甚至比使用人工定義的包圍盒的PA-CNN[13]提高了1.2%的相對準確率。與無監督的基於部分的方法相比,我們可以觀察到明顯的改進。我們的HBP也優於基於池的方法BoostCNN[22]和KP[4]。
結果FGVC-飛機。由於細微的差異,不同的飛機模型很難識別,比如可以通過計算模型中的窗口數量來區分。表6總結了fgvc飛機的分類精度。盡管如此,我們的模型已經達到了最高水平,分類精度也是所有方法中最高的。與基於註釋的MDTP[32]方法、基於部分學習的MA-CNN[37]方法和基於池的BoostCNN[22]方法相比,我們可以觀察到穩步的改進,這突出了所提出的HBP模型的有效性和魯棒性。
為了更好地理解我們的模型,我們在不同的數據集上可視化地微調網絡中不同層的模型響應。通過計算特征激活的平均幅度,得到激活圖通道。在圖3中,我們從三個不同的數據集中隨機選擇了壹些圖像,並將它們可視化。
所有的可視化結果表明,所提出的模型可以識別雜亂的背景,並在高度特定的場景中被強烈激活。項目1、項目2和項目3中突出顯示的活動區域與幼崽的頭部、翅膀和胸部等語義部分密切相關。汽車前保險杠、車輪、車燈;飛機駕駛艙,尾部穩定器和發動機。這些部分是區分類別的關鍵。更重要的是,我們的模型與人類的感知高度壹致,它解決了感知場景或物體時的細節問題。從圖3可以看出,反卷積層(relu5 1,relu5 2,relu5 3)提供了目標物體的大致位置。在此基礎上,投影層(project5 1,project5 2,project5 3)進壹步確定物體的本質部分,通過不同部分特征的不斷交互和整合來區分其類別。該過程符合人類感知和自然[20]受格式塔的格言影響:整個前面部分,它也提供了為什麽我們的框架模型的分類不清楚,部分檢測和局部差異的直觀解釋。
本文提出了壹種分層雙線性池方法,結合層間交互和判別特征的學習,實現多層特征的細粒度融合。所提出的網絡不需要邊界框/組件註釋,並且可以被端到端地訓練。在鳥類、汽車和飛機上的大量實驗證明了我們框架的有效性。今後,我們將在兩個方向上擴展我們的研究。如何有效整合更多圖層特征獲得多尺度零件表示,如何結合有效的零件定位方法學習更好的細粒度表示。