鄒承明,羅 瑩,徐曉龍
(1.交通物聯(lián)網(wǎng)技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室(武漢理工大學(xué)),武漢 430070; 2.武漢理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢 430070)(*通信作者電子郵箱luoyingwork@foxmail.com)
一直以來,細(xì)粒度圖像分類都是計(jì)算機(jī)視覺和模式識別等領(lǐng)域的許多研究人員感興趣的課題,但由于細(xì)粒度圖像往往擁有較大的類內(nèi)差異和細(xì)微的類間差異,其分類難度遠(yuǎn)遠(yuǎn)高于普通的圖像分類[1]。
細(xì)粒度圖像的樣本通常屬于同一大類,不同子類間擁有較高的相似性,相互的區(qū)別往往體現(xiàn)在難以察覺的局部細(xì)節(jié)之上,而同一子類下的樣本又會(huì)由于拍攝距離、目標(biāo)姿勢、復(fù)雜背景和遮擋物等因素的干擾產(chǎn)生極大的差異,彼此的共性可能存在旋轉(zhuǎn)、縮放、變形和缺失的情況,因此細(xì)粒度圖像分類問題成為了機(jī)器視覺領(lǐng)域一個(gè)極大的挑戰(zhàn)[2]。
早期的細(xì)粒度分類方法使用簡單的特征提取和編碼方式生成特征表示,這些表示方法相當(dāng)粗糙,采集到的有效信息十分有限。比如Wah等[3]在細(xì)粒度數(shù)據(jù)集CUB- 200- 2011上作基準(zhǔn)測試時(shí),通過對圖像提取RGB顏色直方圖特征和尺度不變特征轉(zhuǎn)換(Scale Invariant Feature Transform, SIFT)[4]特征,運(yùn)用詞袋模型(Bag of Words, BoW)生成特征編碼,最終分類精度最高僅為17.3%。這項(xiàng)工作表明,簡單的特征表示方法描述性較弱,不足以支撐更高的細(xì)粒度圖像分類準(zhǔn)確度。但這并不意味著早期提取的特征是完全無用的,隨著更為強(qiáng)大的編碼方式的出現(xiàn),如Fisher Vector編碼[5]、局部特征聚合描述符(Vector of Locally Aggregated Descriptors, VLAD)[6]等,與之結(jié)合的SIFT特征的分類準(zhǔn)確度也有所提高。
近年來卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[7-10]在一般的圖像分類任務(wù)中取得了令人矚目的成績,證明了卷積特征對圖像的描述能力,這一結(jié)論也為細(xì)粒度圖像分類帶來了新的發(fā)展方向,研究人員開始選擇CNN特征作為圖像表示用于細(xì)粒度圖像分類[11]。Zhang等[12]依次對目標(biāo)整體、頭部和身體區(qū)域訓(xùn)練CNN模型分別用來提取三種卷積特征,最后將三種特征級聯(lián)成一個(gè)向量用于分類;Branson等[13]對目標(biāo)整體和不同部位分別提取不同層的CNN特征,綜合多項(xiàng)卷積特征進(jìn)行分類。上述算法在CUB- 200- 2011數(shù)據(jù)集上都達(dá)到了75%以上的分類準(zhǔn)確度。這些工作證明了卷積特征在細(xì)粒度圖像分類中可以發(fā)揮較好的作用,但是分類準(zhǔn)確度仍然存在上升空間。
從現(xiàn)有研究成果來看,目前細(xì)粒度圖像分類的主流框架大多是基于單一特征,這往往導(dǎo)致一定的片面性。以SIFT和CNN特征為例,前者注重圖像底層信息,針對關(guān)鍵點(diǎn)提取的特征太過細(xì)化且極易被噪聲干擾,自身無法支撐較高的全局分類準(zhǔn)確度;后者擁有強(qiáng)大的抽象能力,能夠捕捉圖像的高層語義,可針對目標(biāo)整體區(qū)域提取的全局特征卻過于泛化,忽視了底層和局部的細(xì)節(jié),不利于區(qū)分細(xì)粒度圖像庫中十分相似的異類樣本。針對這些問題,本文提出的多特征組合方法綜合考慮高層和底層、全局和局部的信息,采用針對目標(biāo)整體、關(guān)鍵部位和關(guān)鍵點(diǎn)層層遞進(jìn)的特征提取方法,將各個(gè)層次的特征組合起來,得到更豐富的特征表示。本文算法在CUB- 200- 2011鳥類數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),結(jié)果表明,本文提出的特征表示方法對于細(xì)粒度圖像分類準(zhǔn)確度的提升有積極作用。
圖像特征提取是解決圖像分類問題的重要步驟,特征提取方法的優(yōu)劣決定了所提取特征的描述能力,從而影響圖像分類性能。細(xì)粒度分類由于其分類目標(biāo)更加細(xì)致,對圖像特征的要求也更加苛刻,往往需要在描述全局特征的同時(shí)不忽視局部特征,因此,一個(gè)綜合考慮全局特征和局部特征的特征提取模型對細(xì)粒度分類尤為重要。
CNN是LeCun等[7,14]提出的一種經(jīng)典的神經(jīng)網(wǎng)絡(luò)特征提取模型,它可以直接處理原始圖像,還能夠根據(jù)不同的分類問題從圖像中提取出相應(yīng)有效的特征,目前在計(jì)算機(jī)視覺領(lǐng)域中應(yīng)用廣泛,其基本的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 CNN基本結(jié)構(gòu)
網(wǎng)絡(luò)整體可分為三個(gè)部分:輸入層、中間層和輸出層[15]。輸入層為原始圖像,輸出層為特征向量,中間層由若干個(gè)卷積層和池化層交替組成,其作用是對輸入層的數(shù)據(jù)進(jìn)行逐層抽象,最終通過全連接得到含有高層語義的輸出向量。對于CNN而言,不同的卷積參數(shù)和池化策略將導(dǎo)致網(wǎng)絡(luò)最終所提取特征的不同意義,而多樣化的特征又伴隨著強(qiáng)大的描述能力和遷移能力,因此,卷積層和池化層是CNN提取更具區(qū)分度的特征的關(guān)鍵所在。
其中,卷積層由大小固定的卷積核對上層的輸出進(jìn)行卷積操作,其核心原理如圖2所示:圖2(a)展示了多種卷積核的卷積操作,每個(gè)卷積核都擁有相同尺寸的局部感受野,感受野內(nèi)部是各自的權(quán)值參數(shù),參數(shù)值的差異決定了卷積核的不同種類,卷積核依次沿著x軸和y軸方向在圖層上進(jìn)行滑動(dòng)和卷積,得到的值組成該卷積核的特征響應(yīng)圖;圖2(b)是卷積的計(jì)算過程,一個(gè)卷積核的內(nèi)部權(quán)值參數(shù)對于它要卷積的對象是共享的,也就是它在滑動(dòng)和卷積過程中不會(huì)發(fā)生權(quán)值的變化,而卷積就是將感受野所覆蓋的圖層數(shù)據(jù)與自身相應(yīng)位置的權(quán)值進(jìn)行加權(quán)求和,所得結(jié)果作為輸出數(shù)值。
圖2 卷積層核心原理
池化層操作原理與卷積層類似,區(qū)別在于池化層的感受野會(huì)根據(jù)不同池化策略來取對應(yīng)位置的最大值或者平均值。
從CNN的基本結(jié)構(gòu)來看,它所提取的特征屬于全局屬性,而通過CNN中卷積和池化的操作過程也不難看出,隨著中間層層數(shù)的增加,CNN將原始圖像的底層信息逐步合并和歸納,進(jìn)而向高層過渡,但一些局部細(xì)節(jié)也隨之逐層丟失,因此CNN雖然在一般的分類任務(wù)中出類拔萃,卻在細(xì)粒度分類中表現(xiàn)欠佳。受這一現(xiàn)象的啟發(fā),本文提出了利用SIFT關(guān)鍵點(diǎn)來增強(qiáng)局部點(diǎn)特征的方法,獲得更強(qiáng)大的特征描述力。
SIFT是一種局部特征描述子,它可以定位和篩選圖像尺度空間中的極值點(diǎn),并用128維的向量描述每個(gè)關(guān)鍵點(diǎn),這種特征具有旋轉(zhuǎn)不變性和尺度不變性,是極為可靠的局部描述符。然而,不同圖像的SIFT關(guān)鍵點(diǎn)數(shù)目往往差異較大,因此SIFT特征不便于直接用于圖像分類,此時(shí)就需要特定的編碼方式在考慮到每張圖像SIFT特征的同時(shí),生成統(tǒng)一維度的特征向量。VLAD就是極為優(yōu)秀的一種特征編碼方式,它相對于BoW編碼而言損失較少的信息,相對于Fisher Vector編碼而言計(jì)算更為簡單,而且在一些分類任務(wù)中它的效果還優(yōu)于前兩者。它保存了每個(gè)SIFT特征點(diǎn)到離它最近的聚類中心的距離,且考慮了特征點(diǎn)每一維的值的影響,對圖像局部內(nèi)容有更細(xì)致的刻畫,因此本文選擇用VLAD模型編碼SIFT特征,獲取的信息用來強(qiáng)化其他全局特征的局部描述性。
綜上,本文所使用的特征提取模型兼顧了CNN和SIFT兩種特征的提取,以CNN提取的高層語義特征把控全局方向,以VLAD算法編碼的SIFT關(guān)鍵點(diǎn)特征補(bǔ)充局部細(xì)節(jié),得到對細(xì)粒度圖像目標(biāo)更具判別力的特征表示。
由第1章CNN的原理介紹可知,CNN特征提取模型針對的是圖像塊,它所輸出的特征是將圖像塊中所有像素以某種方式進(jìn)行融合后的產(chǎn)物。這樣的特征充分反映了該圖像塊的全局屬性,然而圖像塊的尺度是可變的,也就是說同樣大小的圖像塊,它的內(nèi)容可能是整個(gè)目標(biāo),也可能只是目標(biāo)的一部分,例如鳥類的整體和頭部區(qū)域本質(zhì)都是圖像塊,都可以通過CNN模型進(jìn)行特征提取,因此CNN模型本身也可以提取出多種特征,這些特征與VLAD模型提取的SIFT點(diǎn)特征組合在一起可以構(gòu)建出豐富的特征表示,不同成分的組合特征在細(xì)粒度圖像分類中也有著不同的結(jié)果,因此即使已經(jīng)確定了多特征提取的模型,各種特征的選取也至關(guān)重要。
本文結(jié)合人眼分辨細(xì)粒度圖像的經(jīng)驗(yàn),對CNN模型和VLAD模型提取的多種特征的選擇和組合策略進(jìn)行了分析。在面對需要辨別的細(xì)粒度圖像時(shí),人們通常會(huì)先根據(jù)目標(biāo)整體區(qū)域的信息判斷大致類別,這一過程說明了目標(biāo)整體區(qū)域的特征的必要性,這類特征可通過CNN模型提取;接下來就是根據(jù)目標(biāo)關(guān)鍵部位和關(guān)鍵點(diǎn)的細(xì)節(jié)差異來區(qū)分細(xì)粒度類別,這一過程說明了目標(biāo)關(guān)鍵部位區(qū)域和關(guān)鍵點(diǎn)的特征對細(xì)粒度圖像最終辨識結(jié)果的重要性,這兩類特征可分別通過CNN和VLAD模型提取,因此,本文提出的多特征組合方法同時(shí)選取目標(biāo)整體、關(guān)鍵部位和關(guān)鍵點(diǎn)三重特征層層遞進(jìn)組合成對細(xì)粒度圖像具有更高描述性和區(qū)分性的最終特征。
圖3為相應(yīng)的多特征組合結(jié)構(gòu)示意圖:分別用各自的模型提取目標(biāo)整體、關(guān)鍵部位和關(guān)鍵點(diǎn)特征,三者級聯(lián)之后用SVM分類器進(jìn)行分類。其中關(guān)鍵部位取用的是目標(biāo)的頭部區(qū)域,原因有二:其一是頭部區(qū)域往往蘊(yùn)含大量細(xì)粒度圖像分類所需信息;其二是圖像樣本中頭部區(qū)域的完整性最能得到保障。
圖3 多特征組合結(jié)構(gòu)
在實(shí)現(xiàn)本文提出的多特征組合方法時(shí),需要提前對三種特征提取模型進(jìn)行訓(xùn)練,圖4為本文細(xì)粒度圖像分類模型的訓(xùn)練過程示意圖。首先,分別以細(xì)粒度圖像庫訓(xùn)練集中的目標(biāo)整體和頭部區(qū)域訓(xùn)練CNN得到兩個(gè)網(wǎng)絡(luò)模型M1和M2,提取訓(xùn)練集中所有目標(biāo)的整體和頭部CNN特征F1和F2;然后,對訓(xùn)練集中所有目標(biāo)區(qū)域提取SIFT特征,通過K均值聚類生成聚類中心集合作為碼本C,再將每個(gè)目標(biāo)區(qū)域的SIFT特征點(diǎn)通過VLAD參照碼本C編碼為特征F3;最后,組合F1、F2和F3作為最終的特征表示,訓(xùn)練SVM分類器S。
圖4 模型訓(xùn)練過程
模型的測試過程如圖5所示:對測試目標(biāo)整體和頭部分別用M1和M2提取特征F1′和F2′,對測試目標(biāo)整體提取SIFT特征點(diǎn),再參照碼本C進(jìn)行VLAD編碼,得到特征F3′,將F1′、F2′和F3′級聯(lián),輸入到分類器S中得到結(jié)果。
圖5 模型測試過程
本文在細(xì)粒度圖像分類領(lǐng)域中最為經(jīng)典和常用的數(shù)據(jù)集CUB- 200- 2011上進(jìn)行實(shí)驗(yàn),該數(shù)據(jù)集包含200種不同鳥類的類別,共計(jì)11 788張圖像,實(shí)驗(yàn)選取數(shù)據(jù)集中的5 994張作為訓(xùn)練集,其他5 794張作為測試集。實(shí)驗(yàn)主要硬件環(huán)境為Nvidia Tesla P100計(jì)算顯卡,軟件環(huán)境為Linux系統(tǒng)下Caffe和Matlab R2014a。
為了便于目標(biāo)整體和關(guān)鍵部位區(qū)域CNN特征的統(tǒng)一提取,將所有圖像數(shù)據(jù)的尺寸預(yù)處理為227×227。實(shí)驗(yàn)中CNN結(jié)構(gòu)設(shè)置如下:1~5層為卷積層,每層卷積后都有ReLU激活函數(shù)處理和最大值池化操作;6~7層為全連接層,本文算法取用的CNN特征就是第7層的4 096維特征。
為了得出本文算法中VLAD特征編碼時(shí)最適合的k均值聚類中心數(shù),分別在8、16、32、64四種k值下進(jìn)行實(shí)驗(yàn),表1為在細(xì)粒度數(shù)據(jù)集CUB- 200- 2011上使用本文算法時(shí)選用不同k值所對應(yīng)的分類準(zhǔn)確度。
表1 不同聚類數(shù)下的分類準(zhǔn)確度
從表1可以看出,當(dāng)聚類數(shù)等于16時(shí),細(xì)粒度圖像識別準(zhǔn)確度達(dá)到了最高值。分析其原因,當(dāng)聚類數(shù)過小時(shí),聚類中心之間相距較遠(yuǎn),每個(gè)中心輻射的聚類范圍較廣,各個(gè)聚類的關(guān)鍵點(diǎn)分布也較為分散,也就是聚類很可能并沒有達(dá)到較好的收斂狀態(tài),因此憑借這個(gè)聚類中心集合作為碼本提取的信息沒有足夠的可靠性;而聚類數(shù)過大時(shí),聚類中心較為擁擠,每個(gè)中心輻射的聚類范圍重疊,關(guān)鍵點(diǎn)可能同時(shí)歸入多個(gè)聚類,造成某些特征的重復(fù)提取,從而導(dǎo)致過擬合,因此,本文算法提取VLAD特征時(shí)的關(guān)鍵點(diǎn)聚類數(shù)設(shè)置為16,相應(yīng)的特征維度為16×128。
上述兩種特征確定后,將它們進(jìn)行級聯(lián)組合后,選擇一對多方式下的多類SVM分類器對數(shù)據(jù)進(jìn)行訓(xùn)練和測試。
本文算法結(jié)合CNN特征和VLAD編碼的SIFT特征,使用“目標(biāo)整體+關(guān)鍵區(qū)域+關(guān)鍵點(diǎn)”的特征提取和組合方法,最后通過一對多SVM進(jìn)行分類。
為了方便對比分析,在進(jìn)行本文提出的三重特征組合的細(xì)粒度分類實(shí)驗(yàn)的同時(shí),也分別在同樣的數(shù)據(jù)集上進(jìn)行了多種單一CNN特征的分類和多種組合CNN特征的分類。
實(shí)驗(yàn)結(jié)果如表2所示,表中字母的含義如下:Fentirety-cnn、Fhead-cnn和Fbody-cnn分別表示在目標(biāo)整體、頭部和身體區(qū)域提取的CNN特征,F(xiàn)entirety-cnn+Fhead-cnn、Fentirety-cnn+Fbody-cnn和Fhead-cnn+Fbody-cnn分別表示三種CNN特征的兩兩組合,F(xiàn)entirety-cnn+Fhead-cnn+F(16×128)-vlad則表示目標(biāo)整體CNN特征、頭部CNN特征和以16個(gè)聚類中心為碼本編碼的VLAD特征的組合表示。
表2 不同特征的實(shí)驗(yàn)結(jié)果對比
表2中分別記錄了上述特征表示方法所對應(yīng)的細(xì)粒度圖像分類準(zhǔn)確度,分析其中數(shù)據(jù)可以得出以下幾個(gè)結(jié)論:
1)單一的CNN特征本身有較強(qiáng)的描述性,但在細(xì)粒度分類問題中還缺乏足夠的區(qū)分度,因此其分類準(zhǔn)確度只能停留在60%~70%。
2)三種單一CNN特征中,頭部區(qū)域的特征區(qū)分度明顯高于其他兩種,凡是有這一特征參與的特征組合都可以獲得80%以上的分類準(zhǔn)確度,這種結(jié)果可以證明頭部是該數(shù)據(jù)集的關(guān)鍵部位,也可以證明關(guān)鍵部位的特征對細(xì)粒度分類至關(guān)重要。
3)多特征組合表示的分類準(zhǔn)確度大多高于單特征表示,且優(yōu)勢明顯,除了Fentirety-cnn+Fbody-cnn組合這一特例,其他組合方法相比單特征表示都有10%~20%的準(zhǔn)確度提升。而Fentirety-cnn+Fbody-cnn組合的準(zhǔn)確度較低的原因除了目標(biāo)整體區(qū)域和身體區(qū)域的單一CNN特征都不夠強(qiáng)大之外,還存在一些外部因素。結(jié)合實(shí)驗(yàn)所用的圖像數(shù)據(jù)進(jìn)行分析可以發(fā)現(xiàn),CUB數(shù)據(jù)集中存在一定量的樣本完全缺失身體區(qū)域,這種現(xiàn)象更加降低了這類特征組合的有效性,從而導(dǎo)致分類的失敗。
4)結(jié)合目標(biāo)整體、頭部CNN特征和關(guān)鍵點(diǎn)VLAD特征的表示方法取得了最高的細(xì)粒度分類準(zhǔn)確度81.6%,相較于直接將CNN結(jié)構(gòu)套用到細(xì)粒度圖像分類問題上,憑借單一的目標(biāo)整體區(qū)域CNN特征進(jìn)行分類,提高了13.31%的準(zhǔn)確度,證明了本文所提出多特征組合的有效性。
綜上所述,本文提出的綜合考慮目標(biāo)整體、關(guān)鍵部位和關(guān)鍵點(diǎn)的多特征組合方法對細(xì)粒度圖像分類準(zhǔn)確度有著明顯的提升。
此外,本文將所提出的方法和其他已有的細(xì)粒度圖像分類算法在同一個(gè)數(shù)據(jù)集CUB- 200- 2011下進(jìn)行了實(shí)驗(yàn)對比,結(jié)果如表3所示,從分類準(zhǔn)確度對比結(jié)果可以看出本文提出的方法對細(xì)粒度圖像分類的確有較好的效果。
為了解決單一特征表示的局限性會(huì)導(dǎo)致細(xì)粒度圖像分類準(zhǔn)確度不高的問題,本文提出了一種基于CNN和SIFT的多特征組合表示方法。基于單一CNN特征和多特征組合的細(xì)粒度圖像分類對比實(shí)驗(yàn)表明,綜合考慮對目標(biāo)整體、關(guān)鍵部位和關(guān)鍵點(diǎn)的特征提取的多特征組合方法擁有最高的分類準(zhǔn)確度。由于關(guān)鍵點(diǎn)定位和篩選算法的誤差,導(dǎo)致關(guān)鍵點(diǎn)特征對組合特征的提升不是很明顯,在下一步的研究過程中,可以針對這一問題進(jìn)行改進(jìn)。
表3 CUB- 200- 2011下的各方法分類準(zhǔn)確度對比 %