使用级联Softmax和广义大幅度损失训练的改进DCNN进行细粒度图像分类
摘要:
利用一般的深卷積神經網絡(DCNN)設計了一種細粒度的圖像分類器。我們從以下兩個方面提高了DCNN模型的細粒度圖像分類精度。首先,為了更好地建模包含在給定訓練數據集中的細粒度圖像類的h級分層標簽結構,我們引入h完全連接(Fc)層來代替給定DCNN模型的頂層fc層,并用級聯Softmax損失對其進行訓練。
其次,我們提出了一種新的損失函數,即廣義大邊界損失(GLM)損失,使給定的DCNN模型能夠顯式地探索細粒度圖像類的層次標簽結構和相似規律。GLM損失不僅減少了DCNN模型學習特征的類間相似度和類內方差,而且使屬于同一粗類的子類在特征空間中比屬于不同粗類的子類更加相似。此外,所提出的細粒度圖像分類框架是獨立的,適用于任何DCNN結構。利用三個基準數據集(StanfordCar、細粒度視覺分類飛機和CUB-200-2011)對幾種常用的DCNN模型(AlexNet、Google LeNet和VGG)進行了綜合實驗評估,驗證了該方法的有效性。
關鍵詞:級聯Softmax損失,深卷積神經網絡(DCNN),細粒度圖像分類,廣義大邊界(GLM)損失,分層標簽結構。
1.引言:
細粒度圖像分類的目的是識別某些基類的子類,如不同模型的CARS[1]-[5]、鳥類的種類[5]-[9]、飛機的變體[10]、[11]等。它具有廣泛的應用,如視頻監控車輛模型識別、細粒度圖像內容標注、垂直搜索等。細粒度圖像分類面臨的挑戰主要來自兩個方面:類間相似性和類內方差[12]-[16]。
一方面,不同細粒度類之間的視覺差異可能非常小且微妙。另一方面,由于位置、視點、姿勢、照明條件等的不同,屬于同一細粒度類的實例可能具有明顯的不同外觀。例如,圖中所示的“加利福尼亞海鷗”。1(A)在視覺上與圖中的“環嘴鷗”非常相似。1(B),它們之間唯一顯著的區別在于它們喙上的圖案。同時,由于姿態、視點和光照條件的不同,不同圖像中的“加利福尼亞海鷗”(如“環嘴鷗”)呈現出明顯的不同外觀。
對于細粒度的圖像分類任務,文獻[17]-[20]中提出了許多基于部分的分類方法。
這些方法首先檢測目標對象的不同部分,然后對局部部分的外觀進行建模,以增加類間的識別率,同時減小類內的差異。例如,對于細粒度的鳥類分類,張等。[18]建議學習頭部、喙和身體等零件的外觀模型,并強制執行它們之間的幾何約束。然而,基于零件的方法依賴于精確的零件檢測,這是另一個具有挑戰性的問題,在存在遮擋和較大視點/姿態變化的情況下可能會失敗。此外,部件的檢測器通常以有監督的方式進行訓練,這需要足夠多的訓練樣本。顯然,與指定細粒度的圖像標簽相比,標注對象部分更具挑戰性,也更昂貴。
最近的許多研究工作[4],[21]-[25]利用新的損失函數訓練的深度卷積神經網絡(DCNN),如對比損失[26],[27],三重損失[23]等,來學習能夠最小化類內方差,同時最大化類間距離的特征。然而,當構成給定訓練集的樣本對或樣本三胞胎時,對比和三胞胎損失都會受到數據擴展的影響。此外,據報告,構成訓練樣本對或三對樣本的方式會對DCNN模型的性能精度產生幾個百分點的重大影響[23]、[28]。因此,使用這種損失可能會導致模型收斂較慢、計算成本較高、訓練復雜性增加和不確定性。
有研究工作提出了新的損失函數或專門的CNN結構,以利用不同細粒度類別之間的標簽關系[4]、[5]、[28]、[29]或探討輸入圖像不同部分之間的相關性[11]。這些方法在細粒度圖像分類的各種基準數據集上都達到了最新的分類精度。
在本文中,我們開發了一個細粒度的圖像分類器使用一個通用的DCNN。我們試圖從以下兩個方面提高DCNN模型的細粒度圖像分類精度。首先,為了更好地對細粒度圖像類的h級層次標簽結構進行建模,我們將給定的DCNN模型的頂完全連接(FC)層替換為h FC層,每個層對應于分層標簽結構的相應層次。h fc層中的每一層都是到其下層和功能輸出層的fc,并使用來自相應標簽層次結構的標簽的Softmax丟失進行訓練。本文將用于訓練h FC層的h Softmax損耗稱為級聯Softmax損耗。
其次,我們提出了一種新的損失函數,即廣義大邊界損失(GLM),它明確地研究了細粒度圖像類的層次標簽結構和相似規律。更具體地說,對于每個給定的細粒度類c,我們將剩余的細粒度類分為兩個組SP?和nSP?,這兩個組分別由與c共享和不共享相同粗粒度(父)類的細粒度類組成。Glm損失明確地規定:(1)c與sp?中最近的細粒度類之間的距離比c的類內方差大一個預定義的邊界;(2)c與其最近的細粒度類?之間的距離大于c與其最遠細粒度之間的距離(p<0.05);(2)c與其最近的細粒度類?之間的距離大于c?與其最遠細粒度之間的距離。-SP?中的粒度類.
本文的主要貢獻如下。
(1)引入h-fc層來代替給定DCNN模型的頂層fc層,并用級聯的Softmax損失對其進行訓練,以更好地模擬細粒度圖像類的h-Level層次標簽結構。
(2)提出了GLM損失,使給定的DCNN模型能更好地揭示細粒度圖像類的層次標簽結構和相似規律。
(3)針對細粒度圖像分類任務,利用三個基準數據集對幾種通用的DCNN模型進行了綜合實驗評價,驗證了該框架的有效性。
本文的其余部分安排如下。
第二節回顧了相關工作。第三節描述了方法,包括分層標簽結構、DCNN修改和級聯Softmax損失、GLM損失以及我們框架的優化。第四節介紹了實驗評價,第五節是本文的結論。
2.相關的工作
提高細粒度圖像分類精度的方法大致可分為以下三類:1)基于手工特征的方法;2)基于局部特征的方法;3)基于度量學習的方法。本節回顧每個類別的代表性作品。
A 基于手工特征的方法
Krause等人。[1]提出了利用空間金字塔匹配[30]和局部性約束線性編碼[31]相結合的方法來獲得細粒度圖像分類的特征表示。林等人。[11]實現了一種Fisher向量(FV)尺度不變特征變換(SIFT)方法,該方法首先從輸入圖像中提取SIFT特征[32],然后利用SIFT特征學習高斯混合模型得到輸入圖像的FV,最后訓練一對一線性支持向量機對細粒度圖像進行分類。
B Part-Based Methods
細粒度圖像分類的一個關鍵挑戰是識別相似細粒度類的圖像之間的細微外觀差異。許多基于部分的方法已經被提出,通過定位和表示有區別的對象部分來捕捉細微的差異。
在變形零件模型的基礎上,Zhang等人提出了可變形零件模型。[33]提出了一種可變形部件描述符,一種姿態規格化描述符,以便于細粒度圖像分類任務的進行。柴等人。[34]提出了一種共生分割和局部定位模型對具有細微差別的圖像進行分類。Krause等人。[35]提出使用“局部化學習特征集合”來檢測重要的目標部件并表示它們的外觀。Branson等人。[17]提出了一種用于細粒度圖像分類的位姿歸一化DCNN。
張某等人。[18]利用R-CNN框架[36],提出了一種零件識別模型(PR-CNN)。上述方法的主要缺點是在訓練過程中需要零件的注釋,這比圖像標簽的收集成本要高得多。
以一種無監督的方式探索目標零件信息,Lin等人提出了一種新的方法。[11]提出了一種雙線性結構(稱為雙線性-CNN),該結構使用兩個獨立的DCNN特征提取器,其輸出在所產生的特征映射的每個位置利用外積相乘,并匯集在一起以獲得一個圖像描述符。到目前為止,雙線性-CNN已經在幾個用于細粒度圖像分類的基準數據集上達到了最新的分類精度。然而,兩個并行的DCNN的使用顯著增加了記憶假設和該方法的培訓和測試成本。
C 基于度量學習方法
此類別中的方法嘗試學習特征度量,以便將來自同一類的圖像拉近,而將來自不同類的圖像在所學習的特征空間中彼此推開。人們提出了許多損失函數來改進CNN的度量學習性能。為了列舉一些例子,對比損失[26]、[27]要求來自不同類別的兩個圖像樣本之間的距離要比來自同一類別的兩個樣本之間的距離大一個預定義的范圍。三胞胎的損失[23]構成了訓練過程中訓練集中的大量三胞胎。每個三元組包含一個錨點樣本A、一個正樣本P和一個負樣本N,其中A和P來自同一類別,而A和N來自兩個不同的類別。它規定A和N之間的距離必須比A和P之間的距離大一個預定義的邊距。在使用對比損失或三重損失訓練CNN時,它們面臨著數據擴展劇烈、收斂速度慢和不穩定的問題,如第一節所述。
為了解決這些問題,溫等人。[28]提出了中心損失,即同時學習每個類的一個中心,并懲罰學習到的特征向量與其對應的類中心之間的距離。然而,中心損失只考慮了類內緊性,而沒有考慮不同類別之間的可分性。這可能會導致不同的類中心變得更接近,并可能阻礙DCNN模型學習真正的鑒別特征。史等人。[29],[37]提出了最小-最大損失,明確規定了DCNN模型學習的特征向量具有最小類間距離和最大類間距離。
周和林[5]提出通過二部圖標簽(BGL)來挖掘不同細粒度類之間的標簽關系。但是,BGL只能處理兩級層次標簽結構,不能推廣到多級標簽結構。張某等人。[4]提出了分層標簽結構的廣義三重損失(GTL)。然而,GTL損耗仍然存在著上述三重態損耗問題。
本質上,對比損失、三重損失和GTL損失都是點對點度量學習損失,而不考慮訓練集的總體分布。相反,所提出的GLM損失可以看作是一種集對集的度量學習損失。
3.方法論
A 層次標簽結構
在用于細粒度圖像分類的典型基準數據集中,類標簽根據其語義分組為樹結構。圖2。2描述了StanfordCAR數據集[1]的兩級標簽結構,其中葉節點和根節點分別對應于細粒度標簽和粗類標簽。細粒度類別標簽表示某些汽車制造商(例如,Audi S4轎車2012、BMW M5轎車2010、BMW X6 SUV 2012等)的特定型號,這些型號根據其車身類型(例如轎車、SUV等)分組為粗類別標簽。
具有分層標簽結構的圖像數據集可以按如下方式進行數學定義。用T={xi,Ci}ni=1表示訓練樣本集,其中xi表示第i個樣本圖像,n表示訓練樣本總數。每個樣本圖像XI與類標簽的層次結構Ci={cji}hj=1相關聯,其中cji∈{1,2,…,C(J)}是它的第j級類標簽,C(J)是j級中的類的數量,h是層次標簽集中的級別數。
假設細粒度類標簽是第一級類標簽,即c1i是示例XI的細粒度類標簽,C(1)是細粒度類的數量。對于圖像xi,我們用xi表示dcnn倒數第二層的輸出1,并將xi看作網絡提取的xi的特征向量。
提出的細粒度圖像分類框架主要由以下兩個部分組成:1)修改給定DCNN的網絡結構,并用級聯的Softmax損失對其進行訓練;2)擴展GLM損失。
第II-B-II-D節詳細介紹了這兩個組成部分。
B DCNN改進和級聯softmax 損失
對于具有h級類別標簽的細粒度圖像分類問題,我們對給定的DCNN模型進行了改進,將其頂層替換為h fc層,并利用級聯的Softmax損失函數對其進行訓練。為了簡化解釋,并且在不丟失一般性的情況下,我們描述了使用AlexNet[38]對具有兩個級別的類別標簽的圖像數據集進行分類的方法。DCNN對其它細粒度圖像分類問題的修正可以通過類比得到。
最初的AlexNet由五個卷積(Conv)層(Conv)(Conv)和三個FC層(fc6-8)組成,fc7和fc8分別作為特征輸出層和頂層fc層。
對于具有兩個級別類別標簽的圖像,我們將fc8替換為fc8‘和fc9,并將fc9與fc7和fc8’完全連接。我們將從fc7到fc9的連接稱為跳過連接(參見圖7。3)。fc8‘和fc9的神經元數目分別設置為C(1)和C(2)。
給定輸入圖像xi,fc8‘和fc9輸出所有葉細粒度類標簽c1 i∈{1,2,…,C(1)}的概率分數p(c1 i|xi i)和所有粗粒度類標簽c 2 i∈{1,2,2,.,C(2)}分別表示XI.
我們引入跳過連接(fc7→fc9)來提供粗級分類層(Fc9),以訪問所有細粒度類c1 i∈{1,2,…的學習特征(fc7的輸出)和預測的概率分數p(c1 i|xi i)。C(1)}(fc8‘的輸出)用于輸入圖像X i.。
直觀地說,使用這兩類信息進行粗粒度分類將優于僅使用細粒度分類結果,因為前者同時探索了訓練樣本的語義(即學習的特征)和層次標簽結構。另一方面,在迭代訓練過程中,將fc9的預測誤差反推到fc8‘、fc7和網絡的下層,從而逐步提高fc8’的預測精度。
值得注意的是。3只是所提出的框架的一個例子,該框架使用AlexNet作為兩層分層標簽結構。該框架可以推廣到多級遞階標簽結構,并且獨立于任何DCNN結構。圖2。4說明了AlexNet對三級標簽結構的修改。為了簡單起見,我們省略了圖中fc7之前的圖層。4。與最初的AlexNet相比,我們將fc8替換為fc8‘、fc9和fc10。
fc9是fc到fc7和fc8‘,fc10是fc到fc7、fc8’和fc9。fc8‘、fc9和fc10的輸出維數分別等于底層的細粒度類的數量和第2層和第3層的粗粒度類的數量。
C 廣義大幅度損失
D 最優化
4.實驗評估
A 整體設置
為了揭示提出的細粒度圖像分類方法的有效性和通用性,我們使用三種不同網絡復雜性的DCNN對三個具有層次標簽結構的圖像數據集,即StanfordCar[1]、FGVC-Aircraft[10]和CUB-200-2011[6]進行了綜合實驗評價。例如,AlexNet[38]、Google LeNet[41]和VGG[42]。AlexNet包含5個Conv和3個FC層,Google LeNet包含22個conv和1個FC層,而VGG包含16個conv和3個FC層。所有三個DCNN模型都是使用ImageNet數據集[43]進行預訓練的。2所有的實驗都是在Caffe平臺[44]上進行的。對于這些超參數,包括落差比、動量和權重衰減,我們嚴格遵循原始網絡設置。
該方法由兩個新的部分組成:1)利用級聯Softmax損耗訓練跳接連接的DCNN修改;2)GLM損耗。為了揭示每個組件對性能提高的貢獻,我們對每個給定的網絡和數據集實現了以下六種變體。
1)XXX-SM:使用標準Softmax損耗和細粒度類別標簽對原始XXX網絡進行培訓。
2)XXX-SM-GLM:使用標準的Softmax損失與細粒度類標簽和GLM損失對原始XXX網絡進行訓練。
3)XXX-CSM:利用級聯軟最大損耗對無跳接的XXX網絡進行訓練。
4)XXX-CSM-GLM:利用級聯的Softmax損耗和提出的GLM損耗對改進的XXX網絡進行訓練。
5)XXX-SC-CSM:利用級聯軟最大損耗訓練具有跳過連接的改進XXX網絡。
6)XXX-OUR:使用級聯Softmax和GLM損耗訓練具有跳過連接的改進型XXX網絡。
為簡單起見,我們將GLM損失中的所有邊距α1、α2、α3設置為1。為了獲得λ的最優參數值,我們在驗證集上對其進行了調優。具體地說,從StanfordCAR數據集[1]中,我們首先隨機選擇1000個訓練圖像形成驗證集。然后,我們利用剩余的訓練圖像來訓練改進的alexnet(即alexnet-SM-glm),并使用驗證集來調整超參數λ。在驗證集上確定超參數λ之后(λ=0.8),我們修復它并將其用于所有三個DCNN模型(AlexNet、Google LeNet和VGG)和三個圖像數據集(StanfordCar、FGVC-Aircraft和CUB200-2011數據集)。所有三個圖像數據集都包含每個目標對象的地面真實邊界框。為了與以前的研究保持一致,我們還在兩個實驗設置下對所提出的方法進行了評價。在第一個設置中,我們在不使用地面真實邊界框(簡稱BBOX)注釋的情況下對每個未裁剪樣本進行訓練和測試,而在第二個設置中,我們使用從分配給每個樣本的地面真實邊界框中裁剪的圖像塊來訓練和測試該方法。
B 數據集
1)斯坦福大學汽車數據集[1]:它包含196個車輛類別的16185個圖像,并分為8144個訓練圖像和8041個測試圖像,其中每個類大致分為50-50個類別。
數據集由兩層類標簽組成,其中底層包含196個細粒度類,表示特定汽車制造商的特定模型,如奧迪S4轎車2012、寶馬X6 SUV 2012等,而頂層包含9個表示車身類型的粗糙類,如轎車、SUV、Coupe等。此數據集中的一些示例圖像如圖所示。6.。
2)FGVC-飛機數據集[10]:它包含各種飛機的10000幅圖像,分為三層標簽結構。這三個層次從下到上分別由100架飛機變體(如波音737-700、波音737-900)、70個系列(如波音737、波音747)和30個制造商(如波音和空中客車)組成。每個飛行器變體(細粒度圖像類)包含100個圖像。我們采用6667/3333圖像的標準訓練/測試數據分割。來自FGVC-Aircraft數據集的示例圖像如圖所示。7.。
3)CUB-20012011年數據集[6]:該數據集包含11788幅圖像,200種鳥類,分為三級標簽結構,底層有200種,第二層有40個科,第三層有13個目。我們采用5994/5794圖像的標準訓練/測試數據分割。此數據集中的示例圖像如圖所示。8.
表I-III分別顯示了在斯坦福CAR、FGVC-Aircraft和CUB-200-2011測試集上比較的所有方法的最高分類精度。
在表一至表三中,我們列入了第二節所述的有代表性的方法,并使用了與第二節相同的縮略語來報告其實驗結果。
此外,我們還比較了第二節中提到的GLM損耗與對比損耗[27]、三重態損耗[23]、中心損耗[28]和最小-最大損耗[29]。
在表I-III中,“XXX-SM-對比”、“XXX-SM-Triplet”、“XXX-SM-Center Loss”和“XXX-SM-min-max”對應于使用Softmax+對比損耗、Softmax+三態損耗、Softmax+中心損耗進行培訓的XXX網絡,Softmax+min-max損耗。值得注意的是,在有關對比損失、三重損失、中心損失和最小-最大損失的原始文獻中,沒有關于這三個圖像數據集的分類精度的報告。這四種方法的結果都是基于我們自己的實現產生的。
C 實驗評價結果
從表I-III可以看出,“VGG-OUR”方法優于除雙線性-CNN[D,D][11]之外的所有其他方法,而“雙線性-CNN[D,D]-OUR”方法在所有三個基準測試集上都達到了最佳的分類精度。
雙線性CNN[D,D]使用兩個并行的VGG網,而我們的VGG網只使用一個VGG網。雙線性CNN[D,D]采用兩個并行的VGG網,與我們的VGG網相比,記憶假設、訓練和測試次數顯著增加。值得注意的是,我們的方法通過修改最后一個FC層并使用CSM+GLM損失函數來改進給定的DCNN的層次類標簽結構,而雙線性-CNN[D,D][11]使用兩個獨立的VGG特征提取器及其輸出特征的外積來研究輸入圖像不同部分之間的相關性。因此,可以將這兩種方法結合起來,進一步提高性能精度。我們已經將我們提出的方法應用于雙線性CNN[D,D],并將實驗結果分別包含在表I-III中。
在表I-III中,“雙線性-CNN[D,D][11]”是指原始文件[11]中報告的實驗結果,“雙線性-CNN[D,D]”是指我們自己的實驗結果,“雙線性-CNN[D,D]”指的是我們自己的實驗結果。D]-我們的“是指我們的方法與雙線性CNN[D,D]相結合的實驗結果。
可以看出,我們的方法可以進一步提高國家先進的雙線性-CNN[D,D]高達1.4個百分點。
D λ敏感性的研究
我們對超參數λ進行了敏感性研究,以考察網絡性能是否隨著λ的變化而發生很大的變化。為了節省時間和計算資源,我們只使用AlexNet和StanfordCAR數據集進行此研究。具體地說,我們將λ設置為從預定義范圍中選擇的值,使用斯坦福汽車訓練集上的這些參數值對AlexNet進行訓練,然后報告斯坦福汽車測試集上的TOP-1分類精度。
我們在斯坦福大學的汽車數據集上運行alexnet-SM-glm,其λ從0.2到1.4不等,步長為0.2。表四顯示了最高的1級分類精度。從表IV中可以看出,通過改變λ的值,性能并沒有太大的變化。
5 結論
為了提高細粒度圖像的分類精度,提出了一種新的基于DCNN的分類框架。我們從以下兩個方面提高了DCNN模型的細粒度圖像分類精度。首先,我們引入h-fc層來代替給定的DCNN模型的頂層fc層,并用級聯的Softmax損失對其進行訓練,以更好地模擬細粒度圖像類的h-level層次標簽結構。其次,我們提出了GLM損失,使給定的DCNN模型顯式地探索了細粒度圖像類的層次標簽結構和相似規律。提出的細粒度圖像分類框架是獨立于DCNN結構的。針對細粒度圖像分類任務,利用三個基準數據對幾種常用的DCNN模型進行了綜合實驗評價,驗證了該方法的有效性。
總結
以上是生活随笔為你收集整理的使用级联Softmax和广义大幅度损失训练的改进DCNN进行细粒度图像分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我如何选PHP开发工具(PHP IDE)
- 下一篇: 关键信息基础设施定义及步骤