Transformer在细粒度分类上的应用
TransFG :Transformer在細粒度分類上的應用
- 摘要
- 1.引言
- 2.相關工作
- ==細粒度視覺分類==
- **==Transformer==**
- 3.方法
- 3.1作為特征提取的vision transformer
- 3.2. TransFG Architecture
- 區域選擇模塊
- 3.2.2 對比特征學習
- 4.實驗
- 實驗設置
- 4.1 實驗設計
- **實施細節**.
- 4.2 **定量分析**
- 4.3.消融實驗
- **4.4.定性分析**
- 5.結論
論文: TransFG: A Transformer Architecture for Fine-grained Recognition
首個驗證 vision transformer 在細粒度視覺分類上的有效性工作,為占主導地位的CNN 骨干與 RPN 模型設計提供了一個替代方案。文章中介紹了 TransFG,一種用于細粒度視覺分類的新型神經架構,它可以自然地聚焦于物體中最具分辨力的區域,并在多個標準基準上實現 SOTA 性能。其中可視化結果的呈現,說明了 TransFG 能夠準確地捕捉到鑒別性的圖像區域。
摘要
- 現有方法
目前,處理細粒度分類問題主要是通過聚焦于如何定位最有區別的圖像區域并依靠它們來提高網絡捕捉細微變化的能力。這些工作大多是通過重用主干網絡來提取選定區域的特征來實現的。
- 存在問題
這種策略不可避免地使整個過程變得復雜,并要求預測框包含對象的絕大大部分。
- TransFG
transformer的自注意力機制將每個patch token鏈接到分類token,注意力鏈接的強度可以被直觀地認為是表征重要性的指標。
在這項工作中,我們提出了一種新的基于transformer的框架:TransFG,其中我們將transformer的所有原始注意力權重集成到一個attention map中,以指導網絡有效和準確地選擇有區別的圖像塊并計算它們之間的關系。應用對比損失來進一步擴大相似子類的特征表示之間的距離。
- 效果
在五個流行的細粒度benchmark上進行實驗來證明TransFG的效果:CUB-200-2011, Stanford Cars, Stan-ford Dogs, NABirds and iNat2017 ,在這些基準上,實現了SOTA。
1.引言
目前來說,為了避免人工密集的區域標簽,這個領域致力于圖片層次標簽的弱監督的方法。方法可以分為兩大類:局部區域定位和特征編碼。與特征編碼方法相比,定位方法的優點在于它們明確地捕捉不同子類之間的細微差別,這種差別更具有解釋性,并且通常產生更好的結果。
早期定位方法依賴于局部標簽去定位有差別的區域,現在主要采用區域提議網絡(RPN)來提取包含差別區域的bbox。在獲得所選擇的圖像區域之后,它們被重新調整到預定義的大小,并再次通過主干網絡,以獲得信息豐富的局部特征。典型的策略是單獨使用這些局部特征進行分類,并采用秩損失來保持bbox的質量和它們的最終概率輸出之間的一致性。但是,該機制忽略了所選區域之間的關系,不可避免使得RPN預測的bbox包含大部分對象的邊界框,以便獲得正確的分類結果。有時這些邊界框甚至可以包含大面積的背景,導致混亂。此外,與主干網相比,RPN模塊具有不同的優化目標,這使得網絡更難訓練,主干網的重用使得整個算法流程變得復雜。
最近,vision transformer在傳統的分類任務中取得了巨大的成功,這表明利用其固有的注意機制將transformer直接應用于圖像塊序列可以捕獲圖像中的重要區域,從而便于分類。一系列關于下面任務的擴展工作,如對象檢測,語義分割,證實了vision transformer捕捉全局和局部特征的強大能力。
我們在五個流行的細粒度視覺分類基準(CUB-200-2011,斯坦福汽車,斯坦福狗,NABirds,iNat 2017年)上廣泛評估了我們的模型。性能比較的概述可以在圖1中看到,在大多數數據集上,我們的轉換優于現有的具有不同主干的SOTA CNN方法。總之,在這項工作中做出了幾項重要貢獻:
- 第一個驗證vision transformer在細粒度視覺分類上的有效性,它提供了一種替代具有RPN模型設計的CNN主干的方法。
- 引入了TransFG,一種新的用于細粒度視覺分類的神經體系結構,它自然地聚焦于對象的最有區別的區域,并在幾個標準基準上實現SOTA性能。
- 可視化結果展示了我們的轉換能夠準確地捕捉有區別的圖像區域,并幫助我們更好地理解它如何做出正確的預測。
2.相關工作
簡要回顧了現有的關于細粒度視覺分類和transformer的工作。
細粒度視覺分類
已經做了許多工作來解決細粒度視覺分類的問題,它們可以大致分為兩類:定位方法和特征編碼方法。前者側重于訓練一個檢測網絡來定位有區別的部分區域,并重用它們來執行分類。后者旨在通過計算高階信息或尋找對比對之間的關系來學習更多的信息特征。
- 定位方法
以往,利用區域標簽來監督定位過程的學習過程。然而,由于這樣的標注是昂貴的并且通常是不可獲得的,如今僅具有圖像級標簽的弱監督區域引起了更多的關注。
He等人[21]提出了一個復雜的強化學習程序,以估計如何選擇有區別的圖像區域及其數量。
Ge等人[16]交替地使用基于掩蔽的CNN和基于CRF的分割來提取對象實例和區分區域。Yang等人[47]基于區域特征構建的數據庫,對全局分類結果進行重新排序。
然而,這些方法都需要一個特殊設計的模塊來提出潛在的區域,并且這些選擇的區域需要通過主干再次轉發以進行最終分類。此外,一些預測的區域往往包含整個對象,這是不夠具有區別性。 - 特征編碼
該方法一個方面集中于豐富特征表示以獲得更好的分類結果。
Yu等人[50]提出了一個分層框架來做跨層雙線性池。
Zheng等人[53]采用群卷積的思想,首先根據信道的語義將信道分成不同的群,然后在每個群內進行雙線性合并,而不改變維數,從而可以直接集成到任何已有的主干中。
Zhuang等人[56]提出構建對比輸入批次并計算它們之間的線索,以迫使特征包含這種區別性信息。然而,這些方法通常是不可解釋的,這樣的方法不知道是什么使得模型區分具有細微差異的子類別。
Transformer
transformer和自我注意模型極大地促進了自然語言處理和機器翻譯的研究[8,9,41,48]。受此啟發,最近的許多研究試圖將transformer應用于計算機視覺領域。最初,transformer用于處理通過CNN主干網絡提取的視頻的連續特征。Girdhar等人[18]利用transformer的一種變體來聚合與視頻中特定人相關的上下文線索。后來,變壓器模型進一步擴展到其他流行的計算機視覺任務,如目標檢測[3],分割[46,4,51],目標跟蹤[36]。最近,純transformer模型越來越受歡迎。ViT [11]是第一個證明(將純transformer直接應用于一系列圖像塊)可以在圖像分類方面產生最先進性能。在此基礎上,鄭等人[55]提出利用ViT作為分割的編碼器。He等人[20]提出了TransReID,它將邊信息與JPM一起嵌入到transformer中,以提高對象重識別的性能。在這項工作中,我們將ViT擴展到細粒度的視覺分類,并展示了它的有效性。
3.方法
3.1作為特征提取的vision transformer
圖像序列化。基于ViT,我們首先將輸入圖像預處理成一系列展開的面片xpx_pxp?。然而,原始的分割方法將圖像分割成不重疊的小塊,這損害了局部鄰近結構,尤其是在分割有區別的區域時的時候。為了緩解這個問題,我們提出用滑動窗口生成重疊的面片。具體來說,我們用分辨率H?WH*WH?W表示輸入圖像,圖像塊的大小為PPP,滑動窗口的步長為SSS。因此,輸入圖像將被分成N個塊,其中N=NH?NW=[H?P+SS]?[W?P+SS](1)N = N_H*N_W=[\frac{H-P+S}{S}]*[\frac{W-P+S}{S}]\quad\quad\quad (1)N=NH??NW?=[SH?P+S?]?[SW?P+S?](1)這樣,兩個相鄰的塊共享一個大小為(P?S)?P(P-S)*P(P?S)?P的重疊區域,這有助于更好地保留局部區域信息。通常來說,步長S越小,性能越好。但是減少S的同時會加大計算成本,所以這里需要做一個權衡。
批量嵌入 我們使用可訓練的線性投影將矢量化的面片xPx_PxP?映射到潛在的三維嵌入空間中。可學習的位置嵌入被添加到補片嵌入中,以保留如下位置信息:
z0=[xp1E,xp2E,...,xpNE]+Epos(2)z_0=[x^1_pE,x^2_pE,...,x^\N_pE]+E_{pos} \quad\quad\quad\quad (2)z0?=[xp1?E,xp2?E,...,xpN?E]+Epos?(2)
其中NNN是圖像批量的數量,E∈R(P2?C)?DE\in R^{(P^2-C)*D}E∈R(P2?C)?D是批量嵌入投影,Epos∈RN+DE_{pos}\in R^{N+D}Epos?∈RN+D代表位置嵌入。
Transformer編碼器包含LLL層多頭自我注意(MSA)和多層感知器(MLP)塊。因此,第lll層的輸出可以寫如下:
其中LN(?)LN(\cdot)LN(?)表示層歸一化操作,zlz_lzl?表示編碼圖像表示。ViTViTViT利用最后一個編碼器層zL0z^0_LzL0?的第一個token作為全局特征的表示,并將其轉發給分類器頭,以獲得最終的分類結果,而不考慮存儲在剩余token中的潛在信息。
3.2. TransFG Architecture
而我們在第4節的實驗表明,純Vision Transformer可以直接應用于細粒度的視覺分類,并取得令人印象深刻的結果。它沒有很好地捕獲FGVCFGVCFGVC所需的位置信,為此,我們提出了區域選擇模塊,并應用對比特征學習來擴大相似子類別之間的表征距離。我們提出的transformer框架如圖2所示:
圖像被分割成小塊(此處顯示了不重疊的分割),并被投影到嵌入空間中。變壓器編碼器的輸入包括批量嵌入和可學習的位置嵌入。在最后一個transformer層之前,區域選擇模塊(PSM)來選擇對應于區別性圖像塊的標記,并且僅使用這些選擇的tokens作為輸入。最終分類標記上的交叉熵損失和對比損失有助于訓練TransFG。
區域選擇模塊
細粒度視覺分類中最重要的問題之一是準確定位區分區域,這些區域解釋了相似區域之間的細微差異。
圖3:CUB-2002011數據集的一對confusing的實例。模型需要具備捕捉細微差異的能力,以便對其進行正確分類。第二列顯示了整體注意力圖和我們的轉換方法的兩個選定標記。最好用彩色觀看。子類。以CUB-200-2011數據集的一對令人困惑的圖像為例,如圖3所示。為了區分這兩種鳥類,模型需要能夠捕捉非常小的差異,即眼睛和喉嚨的顏色。
區域提議網絡和弱監督分割策略被廣泛地引入到傳統的基于聚類的方法中來解決這個問題。vision transformer模型與生俱來的多頭注意力機制非常適合這里。為了充分利用注意力信息,我們將輸入更改到最后一個transformer層。假設模型有KKK個自注意力頭,輸入到最后一層的隱藏特征表示為zL?1=[zL?10;zL?11,zL?12,???,zL?1N]z_{L-1} =[z^0_{ L-1};z^1_{ L-1},z^2_{ L-1},\cdot\cdot\cdot,z^N_{ L-1}]zL?1?=[zL?10?;zL?11?,zL?12?,???,zL?1N?]前面各層的注意力權重可寫如下:
由于嵌入缺乏標記可識別性,原始注意力權重不一定對應于輸入標記的相關重要性,特別是對于模型的更高層。為此,我們建議整合所有先前層的注意力權重。具體來說,我們遞歸地將矩陣乘法應用于所有層中的原始注意力權重,如下所示
由于αfianl\alpha_{fianl}αfianl?最終能捕捉到信息是如何從輸入層傳播到更高層的嵌入層,因此與單層原始注意力權重αL?1\alpha_{L-1}αL?1?.相比,它是選擇區分區域的更好選擇。然后,關于最后的在αL?1\alpha_{L-1}αL?1?中的K個不同注意力頭,我們選擇最大值(A1,A2,???,AkA_1,A_2,\cdot\cdot\cdot,A_kA1?,A2?,???,Ak?)的索引。這些位置被用作我們的模型的索引,以提取zL?1z_{L-1}zL?1?中的相應標記。最后,我們將選擇的標記和分類標記連接起來作為輸入序列,表示為:zlocal=[zL?10;zL?1A1,???,zL?1Ak](8)z_{local}=[z^0_{L-1};z^{A_1}_{L-1},\cdot\cdot\cdot, z^{A_k}_{L-1}]\quad\quad\quad(8)zlocal?=[zL?10?;zL?1A1??,???,zL?1Ak??](8)
通過將原始的整個輸入序列替換為對應于信息區域的標記,并將分類標記作為輸入連接到最后一個transformer層,我們不僅保留了全局信息,還強制最后一個transformer層去關注不同子類別之間的細微差異,同時在一個超類中放棄了像back ground or common features之類的區分度較低的區域。
3.2.2 對比特征學習
在ViT之后,我們仍然采用PSM模塊的第一個token ziz_izi?進行分類。簡單的交叉熵損失不足以完全監督特征的學習,因為子類別之間的差異可能非常小。為此,我們采用了對比損失LconL_{con}Lcon?,它使對應于不同標簽的分類標記的相似性最小化,并使具有相同標簽yyy的樣本的分類標記的相似性最大化。為了防止損失被easy negatives所支配(具有很小的相似性不同類別的樣本),引入了恒定的裕度α,使得只有相似性大于α的否定對才有助于損失LconL_{con}Lcon?。
形式上,一批大小為N的對比損失表示為:
其中ziz_izi?和zjz_jzj?經過l2l_2l2?一化預處理,Sim(zi,zj)Sim(zi,zj)Sim(zi,zj)為ziz_izi?和zjz_jzj?的余弦相似度。
總之,我們的模型是用交叉熵損失LcrossL_{cross}Lcross?對比損失LconL_{con}Lcon?之和來訓練的,它可以表示為:
其中Lcross(y,y’)L_{cross(y,y^’)}Lcross(y,y’)?是預測標簽y‘y^‘y‘和真實標簽y之間的交叉熵損失。
4.實驗
實驗設置
4.1 實驗設計
數據集 我們基于五個廣泛使用的細粒度基準來評估我們提出的TransFG,即CUB-200-2011 [42]、斯坦福汽車[27]、斯坦福狗[25]、NABirds [40]和iNat 2017[22]。類別號和數據拆分等詳細信息總結如下:
實施細節.
304,以進行公平比較(隨機裁剪用于訓練,中心裁剪用于測試)。
等式9中
中的裕量α被設置為0.4。
4.2 定量分析
我們將我們提出的方法與上述細粒度數據集上最先進的工作進行了比較。CUB-200-2011和斯坦福汽車的實驗結果如表2所示。從結果來看,我們發現我們的方法在CUB數據集上優于以前的所有方法,并在斯坦福汽車上取得了競爭性能。
具體來說,表2的第三列顯示了CUB-200-2011的比較結果。與迄今為止的最佳結果StackedLSTM [17]相比,我們的TransFG在Top-1指標上提高了1.3%; 與基礎框架ViT相比提高了1.4%。
NTS-Net網[49]利用秩損失(ranking loss)來保持的學習區域特征的一致性。在[10]中采用多個ResNet-50作為多個分支,這大大增加了復雜性。還值得注意的是,Stack LSTM是一個非常混亂的多階段培訓模型,這阻礙了實際應用的可用性,而我們的TransFG保持了框架和培訓策略的簡單性。
表2的第四列顯示了斯坦福汽車的結果。我們的方法優于大多數現有的方法,但比PMG [12]和API-Net [56]的性能差,它們誤差小。我們認為,原因可能是斯坦福汽車數據集的圖像比其他數據集具有更簡單和更清晰的背景,因此它需要更少的工作來定位用于分類子類別的區分區域。我們可以觀察到,最近的方法在這個數據集上獲得了非常相似的結果。然而,即使具有這一特性,我們的Transformer始終比標準的ViT車型提高1.1%。
表3斯坦福狗的實驗結果。與斯坦福汽車相比,斯坦福狗是一個更具挑戰性的數據集,因為它的某些物種之間存在更細微的差異,同一類別的樣本差異也很大。只有少數方法在這個數據集上進行了測試,我們的TransFG優于所有方法。API-Net [56]通過精心構建批量數據并學習它們的相互特征向量和殘差,學會捕捉細微差異。盡管ViT [11]在很大程度上優于其他方法,但是我們的TransFG實現了92.3%的準確率,比SOTA的準確率高2.0%。
表4 NABirds是一個大得多的鳥類數據集,圖像數量巨大,而且還有355個以上的類別,這使得細粒度的視覺分類任務更具挑戰性。我們在表4中顯示了我們的結果。我們觀察到,大多數方法(要么通過為不同的分支開發多個主干),要么采用相當深的CNN結構來提取更好的特征,從而獲得良好的結果。雖然純ViT [11]可以直接達到89.9%的精度,但與ViT相比,我們的TransFG不斷獲得0.9%的性能增益,達到90.8%的精度,比SOTA高出1.6%。
表5 iNat2017是一個用于細粒度物種識別的大規模數據集。由于多作物、多尺度和多階段優化的計算復雜性,大多數以前的方法沒有報告2017年的結果。憑借我們模型管道 的簡單性,我們能夠擴展Transformer大數據集,并評估性能,如表5所示。該數據集對于挖掘有意義的對象部分是非常具有挑戰性的,并且背景也非常復雜。我們發現,在這些具有挑戰性的大型數據集上,Vision transformer結構的性能遠遠優于ResNet結構。ViT比ResNet152高出近10%,在2018年和2019年也可以觀察到類似的現象。我們的TransFG是唯一一種在輸入大小為304的情況下達到70%以上精度的方法,并且以3.5%的大幅度優于SOTA。
4.3.消融實驗
我們對我們的TransFG pipeline進行消融研究,以分析其變體如何影響細粒度的視覺分類結果。所有消融研究都是在CUB-2002011數據集上進行的,而同樣的現象也可以在其他數據集上觀察到。我們評估了以下設計的影響:重疊貼片、區域選擇模塊、對比速度和結果分析。
圖像塊分割方法的影響。我們通過標準的非重疊面片分割實驗來研究重疊面片分割方法的影響。如表6所示,在純vision transformer和改進的轉換框架上,重疊分割方法帶來了一致的改進,即兩個框架都有0.2%的改進。由此帶來的額外計算成本也是可以承受的,如第四列所示。
區域選擇模塊的影響。如表7所示,通過**選擇模塊(PSM)**選擇有區別的區域標記作為最后一個transformer層的輸入,模型的性能從90.3%提高到91.0%。我們認為,這是因為通過這種方式,我們將最具區別性的tokens作為輸入進行采樣,這明確地丟棄了一些無用的tokens,并迫使網絡從重要的部分學習。
對比損失的影響。ViT和TransFG框架分別在有無對比損失時的性能比較,以驗證其有效性。我們觀察到,在有對比損失的情況下,模型獲得了很大的性能增益。定量地說,它將ViT的準確率從90.3%提高到90.7%,將TransFG的準確率從91.0%提高到91.5%。我們認為,這是因為對比損失可以有效地擴大相似子類別之間的表征距離,減少相同類別之間的表征距離,這可以從圖4中混淆矩陣的比較中清楚地看到。
余量α的影響。等式9中裕度α的不同設置結果如表9所示。我們發現,較小的α值會導致訓練信號以easy negative為主,從而降低性能,而較大的α值會阻礙模型學習足夠的信息來增加hard negative的距離。根據經驗,我們在實驗中發現0.4是α的最佳值。
4.4.定性分析
我們在圖5的四個基準上顯示了Transformer的可視化結果。我們從每個數據集中隨機抽取三幅圖像。呈現了兩種可視化。圖5的第一行和第三行示出了選定的tokens位置。為了獲得更好的可視化結果,我們只繪制Top-4圖像塊(按激活值排序),并將塊的面積放大兩倍,同時保持中心位置不變。
第二行和第四行顯示了整個圖像的整體注意力圖,我們對所有注意力頭的權重進行平均,以獲得單個注意力圖。區域越輕越重要。從圖中,我們可以清楚地看到,我們的TransFG成功地捕捉到了一個對象的最重要的區域,即鳥的頭部、翅膀和尾巴;狗的耳朵、眼睛、腿;燈,車門。同時,即使在復雜的背景下,我們的整體注意力圖也能精確地映射出整個物體。參見NABirds數據集中鳥類坐在樹枝上的例子。鳥的部分被點燃,而封堵器的細枝被忽略。
5.結論
在這項工作中,我們提出了一個新的細粒度視覺分類框架,并在四個常見的細粒度基準上取得了最新的結果。我們利用自我注意機制來捕捉最具辨別力的區域。與其他方法生成的邊界框相比,我們選擇的圖像塊要小得多,因此通過顯示哪些區域真正有助于細粒度分類變得更有意義。這種小圖像塊的有效性也來自于transformer處理這些區域之間的內部關系,而不是依賴于它們中的每一個來分別產生結果。引入對比特征學習來提高分類標記的區分能力。定性可視化進一步證明了我們方法的有效性和可解釋性。
由于TransFG取得了令人鼓舞的結果,我們相信基于transformer的模型在細粒度任務上有很大的潛力,我們的TransFG可以作為未來工作的起點。
五個數據集上的比較
總結
以上是生活随笔為你收集整理的Transformer在细粒度分类上的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Bug解决】 -1073740791
- 下一篇: 163邮箱发送不出去服务器,我是网易16