朱陽光,劉瑞敏,王 震,王 梟
(昆明理工大學(xué) 信息工程與自動化學(xué)院, 云南 昆明 650500)
近幾年,由于深度學(xué)習(xí)的快速發(fā)展,計算機視覺領(lǐng)域取得了巨大成功,使得圖像識別性能得到了前所未有的改善[1]。然而,相比于以ImageNet為代表的通用圖像分類方法來說,識別汽車類型、動物種類或食物等細粒度類別仍然是一項具有挑戰(zhàn)性的任務(wù)。原因是細粒度類別的外觀可能非常相似,如何識別它們在關(guān)鍵部分上的微妙差異至關(guān)重要[2]。
在深度神經(jīng)網(wǎng)絡(luò)發(fā)展之前,研究人員使用一些比較強大的特征,如Kernel descriptors[3]、Poof[4]和SIFT等,然后使用定位精度比較高的算法,在CUB200-2011[5]鳥類數(shù)據(jù)集上達到了50%~60%的分類精度[6]。隨著深度學(xué)習(xí)的發(fā)展,在細粒度圖像識別方向也取得了突破性進展。如Zhang等[7]提出了Part R-CNN算法,采用R-CNN對圖像進行檢測,在CUB200-2011上取得了73.9%的分類精度。Yang等[8]提出一種名為Navigator-Teacher-Scrutinizer的網(wǎng)絡(luò)結(jié)構(gòu),在僅使用類別標(biāo)簽的條件下,從原始圖像中提取K個信息量最大的區(qū)域,與整體圖像的特征進行整合,最后進行分類,在Stanford Cars[9]數(shù)據(jù)集上實現(xiàn)了93.7%的分類精度??梢钥闯觯蠖鄶?shù)方法都集中在提高分類精度上。例如學(xué)習(xí)可以區(qū)分不同子類圖像間的關(guān)鍵部分[10],或者通過度量學(xué)習(xí)來減緩子類圖像間較大類內(nèi)差異的問題[11]。然而,這些研究很少致力于去學(xué)習(xí)一種可以在不同相關(guān)水平上發(fā)現(xiàn)相似圖像的結(jié)構(gòu)化特征表示。圖1所示為Stanford Cars細粒度數(shù)據(jù)集中一些相似車型。具有相同細粒度標(biāo)簽的車型表示它們是完全相同的品牌、型號和年份。但是,盡管有些汽車具有不同的細粒度標(biāo)簽,仍然具有相似的車型。換句話說,不同的細粒度類別可能仍然共享相同的語義信息。因此,可以利用這種共享信息來學(xué)習(xí)結(jié)構(gòu)化特征。如果能夠在這些細粒度特征表示中探索出相似層結(jié)構(gòu)中的這種共享信息,將會有重大意義。例如,可以應(yīng)用到電子商務(wù)中相關(guān)產(chǎn)品的推薦,產(chǎn)品在語義和視覺上相似,但不屬于同一個細粒度類別。
圖1 Stanford Cars數(shù)據(jù)集中的一些相似車型
為了獲得細粒度特征表示,可以結(jié)合相似性約束來完成。例如,Wang等[12]提出了一種深度排名模型,通過采樣圖像三元組來學(xué)習(xí)相似性度量。但是,這些方法對細粒度數(shù)據(jù)集來說存在一些局限性:
(1)盡管使用Triplet Loss學(xué)到的特征在發(fā)現(xiàn)相似類型時效率很高,但它的分類精度卻不如那些注重分類損失的微調(diào)模型,此外,使用這種方法收斂速度通常很慢;
(2)沒有利用標(biāo)簽結(jié)構(gòu)中的共享信息,這些信息對于定位具有不同級別相關(guān)性的圖像至關(guān)重要。
提出兩種方法來解決這個問題:
(1)首先,設(shè)計了一種多任務(wù)學(xué)習(xí)框架,能夠在有效學(xué)習(xí)細粒度特征的同時還不會降低分類精度。圖2所示為設(shè)計的多任務(wù)學(xué)習(xí)框架。具體來說,我們聯(lián)合優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)中的Softmax Loss和Triplet Loss,它們可以生成分類結(jié)果并辨別特征表示。這兩個約束的結(jié)合不僅能夠提高分類精度,還能夠在細粒度數(shù)據(jù)集上發(fā)現(xiàn)視覺和語義相似的實例。
圖2 多任務(wù)學(xué)習(xí)框架
(2)基于此框架,通過設(shè)計三元組嵌入標(biāo)簽結(jié)構(gòu),例如層次結(jié)構(gòu)(如汽車的車型、年份等)。因此,標(biāo)簽結(jié)構(gòu)中的共享信息可以有效地作為額外的約束和擴充的數(shù)據(jù)。這種嵌入標(biāo)簽結(jié)構(gòu)的方法能夠有效地發(fā)現(xiàn)不同級別中具有相似性的相關(guān)圖像。我們在Stanford Cars公開細粒度數(shù)據(jù)集上進行了實驗,結(jié)果表明,這種特征表示可以精確地區(qū)分細粒度或子類圖像,并且還有效地發(fā)現(xiàn)了不同相關(guān)級別的相似圖像,這兩者都是具有挑戰(zhàn)性的問題。
(1)
其中P(li|ri)表示ri被分類為第li類的后驗概率。
將Triplet Loss與分類目標(biāo)融合作為相似性約束。一個三元組由3個圖像組成,用(ri,pi,ni)表示,ri表示目標(biāo)圖像,pi表示與ri同一類別的圖像,ni表示與ri不同類別的圖像。給定輸入圖像ri,Triplet Network可以生成一個特征向量ft(ri)∈RD,其中超參數(shù)D是嵌入標(biāo)簽之后的特征維度。理想情況下,對于每個ri,期望它與所有不同類別的圖像ni的距離比同一類別的圖像pi的距離大出一定余量m:
d(ri,pi)+m (2) 其中m>0,d(·,·)是Triplet network的兩個標(biāo)準(zhǔn)化向量ft(·)之間歐氏距離的平方。為了在卷積神經(jīng)網(wǎng)絡(luò)中實施上述約束,式(2)可定義為以下Hinge Loss: (3) 在ft(·)定義的特征空間中,通過最小化Et(r,p,n,m)可以將r和p組合在一起,同時遠離n。梯度計算方法如下: 當(dāng)d(ri,ni)-d(ri,pi) (4) 與Contrastive Loss不同,Triplet Loss允許一定程度的類內(nèi)方差。盡管它在學(xué)習(xí)特征表示方面具有優(yōu)點,但對于識別任務(wù)仍有幾個缺點。例如,給定具有N個圖像的數(shù)據(jù)集,所有可能的三元組的數(shù)量是N3,并且與在C類中提供特定標(biāo)簽的分類約束相比,每個三元組包含更少的信息,這可能導(dǎo)致收斂緩慢。此外,如果沒有明確的分類約束,區(qū)分類的準(zhǔn)確性可能不如傳統(tǒng)的使用Softmax Loss的CNN,特別是在細粒度識別問題中,子類圖像間的差異非常微妙。 鑒于僅對Triplet Loss進行訓(xùn)練的局限性,我們提出使用多任務(wù)學(xué)習(xí)方法聯(lián)合優(yōu)化兩種類型的損失。圖2顯示了聯(lián)合學(xué)習(xí)的CNN架構(gòu)。在訓(xùn)練過程中,R、P、N三個網(wǎng)絡(luò)共享相同的參數(shù)。在經(jīng)過L2正則化后,3個網(wǎng)絡(luò)的輸出傳送到Triplet Loss層來計算相似性誤差。與此同時,網(wǎng)絡(luò)R的輸出傳送到Softmax Loss層來計算分類誤差。然后,通過加權(quán)組合將這兩種損失進行整合: E=λsEs(r,l)+(1-λs)Et(r,p,n,m), (5) 其中λs是控制兩種類型損失之間權(quán)衡的權(quán)重。這個由3個網(wǎng)絡(luò)組成的框架不僅可以學(xué)習(xí)判別特征,保留類內(nèi)方差,而且還不會降低分類準(zhǔn)確性。此外,它解決了僅使用Triplet Loss時收斂緩慢的問題。 使用隨機梯度下降優(yōu)化式(5),采樣方法可以使用FaceNet[13]中的方法或者使用Hard mining從訓(xùn)練集中尋找有挑戰(zhàn)性的樣本,這兩種方法在我們的框架中都是可以使用的,因為聯(lián)合優(yōu)化Es(r,l)有助于搜索好的解決方案,為采樣提供一定的靈活性。 在測試階段,該框架將一個圖像作為輸入,并通過Softmax層生成分類結(jié)果,或者在L2正則化之后生成細粒度特征表示。這種判別特征表示可以用于各種任務(wù),例如分類、驗證和檢索,這比單獨優(yōu)化Softmax更有效。 如前所述,有效的特征表示應(yīng)該能夠有效地發(fā)現(xiàn)不同級別中具有相似性的相關(guān)圖像,盡管它們不在同一個細粒度類中。我們的框架可以嵌入標(biāo)簽結(jié)構(gòu),而不降低分類精度。細粒度標(biāo)簽可以基于語義或領(lǐng)域知識自然地分組在樹狀層次結(jié)構(gòu)中。 圖3 細粒度汽車數(shù)據(jù)集中的標(biāo)簽層次結(jié)構(gòu) 為了在粗類和細類標(biāo)簽的層次結(jié)構(gòu)中構(gòu)建這樣的共享信息,我們根據(jù)三元組進行了推廣,4個圖像之間的這種等級關(guān)系可以用兩個不等式來描述: (6) 其中兩個超參數(shù)m1和m2滿足m1>m2>0,負(fù)責(zé)控制兩個級別的距離邊界。如果滿足不等式(6),則d(ri,pi)+m 與三元組相比,這種方法能夠在不同級別(即粗級標(biāo)簽和細粒度標(biāo)簽)之間構(gòu)建更豐富的標(biāo)簽結(jié)構(gòu)。因此,學(xué)習(xí)的特征表示可以發(fā)現(xiàn)適用于特定場景的相關(guān)實例,例如,定位具有特定車型和年份的汽車,或從不同車身類型找到SUV。 (7) 實驗過程中使用的卷積神經(jīng)網(wǎng)絡(luò)都基于GoogLeNet,在細粒度數(shù)據(jù)集上進行微調(diào)以獲得最佳性能。輸入數(shù)據(jù)的形式是(ri,pi,ni,li,m),其中l(wèi)i是圖像ri標(biāo)簽,m是傳統(tǒng)Triplet Loss中可以根據(jù)層次結(jié)構(gòu)調(diào)整的裕度。輸入數(shù)據(jù)被送入R、P、N網(wǎng)絡(luò)中,訓(xùn)練過程中它們共享參數(shù)。與P和N不同,R的最后一個全連接層與兩個模塊相連。一個和標(biāo)簽li計算Softmax Loss,另一個被送入L2正則化層生成ft(ri)來計算Triplet Loss。最后,兩個損失由λs加權(quán)組合進行反向傳播來調(diào)整參數(shù)。 對于超參數(shù),由于將特征尺寸從128至512之間進行過實驗,分類精度變化不明顯,我們將特征尺寸設(shè)為200。將邊緣m和基邊距mb設(shè)置為0.2。Softmax Loss分配更高的權(quán)重有助于提高分類精度(即λs>0.5),當(dāng)λs設(shè)置為0.8時,達到較好性能。 為了評估我們的模型,使用Stanford Cars和CUB200-2011作為細粒度數(shù)據(jù)集。CUB200-2011一共有11 788張鳥類圖像,包含200種不同的類別,其中5994張用于訓(xùn)練,5794張用于測試。Stanford Cars包含196個汽車類別的16 185張圖像(帶邊框),其中8144張用于訓(xùn)練,其余用于測試。品牌、型號和年份作為細粒度標(biāo)簽。與文獻[14]中的方法相同,將每個細粒度標(biāo)簽分配給9種粗級標(biāo)簽(車身類型)中的一種,形成兩級層次結(jié)構(gòu)。 比較了4種能夠生成細粒度特征表示方法的檢索精度(retrieval precision):(1)基于Triplet Loss的深度神經(jīng)網(wǎng)絡(luò)(方法A);(2)在SoftMax之后進行基于Triplet Loss的微調(diào),沒有進行聯(lián)合優(yōu)化(方法B);(3)提出的聯(lián)合優(yōu)化方法,不嵌入標(biāo)簽結(jié)構(gòu)(方法C);(4)嵌入標(biāo)簽結(jié)構(gòu)的聯(lián)合優(yōu)化方法(方法D)。 圖4表示的是在細粒度級別和粗級別使用4種方法的檢索精度。在細粒度級別,提出的多任務(wù)學(xué)習(xí)的結(jié)果優(yōu)于其他方法,在前40個檢索中至少高出13.6%的精度。原因是聯(lián)合優(yōu)化方法通過三元組利用相似性約束增加了訓(xùn)練信息,幫助網(wǎng)絡(luò)實現(xiàn)更好的解決方案。無論在我們的框架中使用傳統(tǒng)的三元組,還是嵌入標(biāo)簽結(jié)構(gòu)后的三元組,精度差異都在0.5%以內(nèi),這可能是由采樣方法造成的。在粗標(biāo)簽級別,沒有嵌入標(biāo)簽結(jié)構(gòu)的方法也無法在前100個檢索中實現(xiàn)高精度,而使用嵌入標(biāo)簽結(jié)構(gòu)后的三元組明顯優(yōu)于其他三元組,證明了嵌入標(biāo)簽方法的有效性。為了便于觀察,使用傳統(tǒng)的方法和加入標(biāo)簽后的三元組從我們的多任務(wù)學(xué)習(xí)框架中提取特征,并在降維后將其可視化(圖5)。隨機選擇6個粗級類,并從每個粗級類中抽取5個精細級類。由于標(biāo)簽結(jié)構(gòu)的嵌入,始終能比傳統(tǒng)三元組的特征更好地分離。 (a) 粗標(biāo)簽級別 (b) 細粒度標(biāo)簽圖4 4種方法在Stanford Cars數(shù)據(jù)集上的檢索精度比較 (a) 沒有嵌入標(biāo)簽 (b) 嵌入標(biāo)簽 圖5 降維后的可視化特征 表1顯示了在Stanford Cars和CUB200-2011數(shù)據(jù)集上幾種方法分類準(zhǔn)確性的比較??梢钥闯觯粋€微調(diào)的GoogleNet達到86.9%的分類準(zhǔn)確性。而通過三元組學(xué)習(xí)深度特征達到78.7%,低于微調(diào)的GoogleNet的準(zhǔn)確性。因為使用Softmax Loss的CNN可以明確地最小化分類錯誤,而三元組試圖通過約束相似性度量來隱式地分離類別。與我們的方法類似,Softmax Loss之后使用Triplet Loss進行微調(diào)也是為了結(jié)合兩種方式進行優(yōu)化。然而,與我們的聯(lián)合優(yōu)化方法不同,它是在學(xué)習(xí)分類器后嵌入Triplet Loss。這可能會對細粒度圖像分類中的分類準(zhǔn)確性產(chǎn)生不利影響,因為Triplet Loss僅隱含地約束分類誤差,可能會影響在微調(diào)期間進一步區(qū)分子類。結(jié)果,它達到了83.0%的分類精度,比經(jīng)過微調(diào)的GoogleNet差。 表1 不同方法在兩種數(shù)據(jù)集上的分類準(zhǔn)確性 我們的多任務(wù)學(xué)習(xí)框架在聯(lián)合優(yōu)化兩種類型的損失時達到了88.4%(嵌入標(biāo)簽結(jié)構(gòu))和88.5%(沒有嵌入標(biāo)簽結(jié)構(gòu)),高于其他學(xué)習(xí)特征表示的方法。值得注意的是,使用或不使用標(biāo)簽結(jié)構(gòu)的方法對于分類結(jié)果具有非常相似的準(zhǔn)確性,因為嵌入標(biāo)簽結(jié)構(gòu)的目的是發(fā)現(xiàn)不同相關(guān)級別的類似實例,不是為了改善細粒度分類。嵌入標(biāo)簽結(jié)構(gòu)的方法并不能很好的提高分類精度,它主要用來將整個圖像作為輸入來學(xué)習(xí)特征表示。它能夠在細粒度特征表示中探索出相似層結(jié)構(gòu)中的共享信息,可以應(yīng)用到電子商務(wù)中相關(guān)產(chǎn)品的推薦。 本文介紹了一個多任務(wù)學(xué)習(xí)框架,通過嵌入標(biāo)簽結(jié)構(gòu)可以有效地生成細粒度的特征表示。在本文的方法中,標(biāo)簽結(jié)構(gòu)通過所提出的廣義三元組無縫地嵌入到卷積神經(jīng)網(wǎng)絡(luò)中,可以在不同的相關(guān)性水平中結(jié)合相似性約束,既能保留具有細微差別的子類圖像的分類準(zhǔn)確性,同時顯著提高了在細粒度數(shù)據(jù)集上不同級別的標(biāo)簽結(jié)構(gòu)的圖像檢索精度,這在電子商務(wù)中相關(guān)產(chǎn)品的推薦方面將有重要意義。但是,對于細粒度圖像分類性能沒有太大的提高,后續(xù)研究會嘗試改變網(wǎng)絡(luò)框架,在提高檢索精度的同時也能提升分類性能。2 嵌入標(biāo)簽結(jié)構(gòu)
3 實 驗
4 結(jié) 論