戴志鵬
(廣西師范學(xué)院軟件工程系,南寧530000)
細(xì)粒度分類是對大類進(jìn)行類內(nèi)的識別,例如分類不同的鳥類[1]、犬種[2]、花種[3]、飛機(jī)模型[4]等。一般細(xì)粒度識別可以分為兩種,即基于強(qiáng)監(jiān)督信息的方法和僅使用弱監(jiān)督信息的方法。基于強(qiáng)監(jiān)督信息的方法對于訓(xùn)練集的標(biāo)注成本比較高,所以基于弱監(jiān)督信息的方法的研究有很大的意義。在弱監(jiān)督信息的細(xì)粒度分類的過程中最重要的是如何定位有用的主體。有利于細(xì)粒度分類的定位方法分法主要為兩種:一個(gè)是對象整體的定位,一個(gè)是對象重要部分的定位。
在弱監(jiān)督的細(xì)粒度分類中有幾個(gè)比較經(jīng)典的方法:Two Level Attention Model[5]、Constellations[6]、Bilinear CNN[7]等。
Two Level Attention Model:該模型主要分為三個(gè)階段:①預(yù)處理模型:從輸入圖像中產(chǎn)生大量的候選區(qū)域,對這些區(qū)域進(jìn)行過濾,保留包含前景物體的候選區(qū)域;②物體級模型:訓(xùn)練一個(gè)網(wǎng)絡(luò)實(shí)現(xiàn)對對象級圖像進(jìn)行分類;③局部級模型。由于預(yù)處理模型選擇出來的這些候選區(qū)域大小不一,有些可能包含了頭部,有些可能只有腳。為了選出這些局部區(qū)域,首先利用物體級模型訓(xùn)練的網(wǎng)絡(luò)來對每一個(gè)候選區(qū)域提取特征。接下來,對這些特征進(jìn)行譜聚類,得到k 個(gè)不同的聚類簇。如此,則每個(gè)簇可視為代表一類局部信息,如頭部、腳等。這樣,每個(gè)簇都可以被看做一個(gè)區(qū)域檢測器,從而達(dá)到對測試樣本局部區(qū)域檢測的目的。
Constellations:該方案是利用卷積網(wǎng)絡(luò)特征本身產(chǎn)生一些關(guān)鍵點(diǎn),再利用這些關(guān)鍵點(diǎn)來提取局部區(qū)域信息。對卷積特征進(jìn)行可視化分析,發(fā)現(xiàn)一些響應(yīng)比較強(qiáng)烈的區(qū)域恰好對應(yīng)原圖中一些潛在的局部區(qū)域點(diǎn)。因此,卷積特征還可以被視為一種檢測分?jǐn)?shù),響應(yīng)值高的區(qū)域代表著原圖中檢測到的局部區(qū)域。不過,特征輸出的分辨率與原圖相差較大,很難對原圖中的區(qū)域進(jìn)行精確定位。受到前人工作的啟發(fā),作者采用的方法是通過計(jì)算梯度圖來產(chǎn)生區(qū)域位置。卷積層的輸出共有P 維通道,可分別對應(yīng)于P 個(gè)關(guān)鍵點(diǎn)位置。后續(xù)對這些關(guān)鍵點(diǎn)或通過隨機(jī)選擇或通過Ranking 來選擇出重要的M 個(gè)。
Bilinear CNN:將原本分散的處理過程,如特征提取,模型訓(xùn)練等,整合進(jìn)了一個(gè)完整的系統(tǒng),進(jìn)行端到端的整體優(yōu)化訓(xùn)練。Bilinear 模型Β由一個(gè)四元組組成:Β=(fA,fB,Ρ,C)。其中,fA,fB代表特征提取函數(shù),即網(wǎng)絡(luò)A、B;P 是一個(gè)池化函數(shù)(Pooling Function);C 則是分類函數(shù)。特征提取函數(shù)f(?)的作用可以看作一個(gè)函數(shù)映射,f:L×I →RK×D將輸入圖像I 與位置區(qū)域L映射為一個(gè)K×D 維的特征。而兩個(gè)特征提取函數(shù)的輸出,可以通過一個(gè)雙線性操作進(jìn)行匯聚,得到最終的Bilinear 特征。其中池化函數(shù)的作用是將所有位置的Bilinear 特征匯聚成一個(gè)特征。到此Bilinear 向量即可表示該細(xì)粒度圖像,后續(xù)則為經(jīng)典的全連接層進(jìn)行圖像分類。另一種對Bilinear CNN 模型的解釋是,網(wǎng)絡(luò)A的作用是對物體/部件進(jìn)行定位,即完成物體與局部區(qū)域檢測工作,而網(wǎng)絡(luò)B 則是用來對網(wǎng)絡(luò)A 檢測到的物體位置進(jìn)行特征提取。兩個(gè)網(wǎng)絡(luò)相互協(xié)調(diào)作用,完成了細(xì)粒度圖像分類過程中兩個(gè)最重要的任務(wù):物體、局部區(qū)域的檢測與特征提取。Bilinear 模型由于其優(yōu)異的泛化性能,不僅在細(xì)粒度圖像分類上取得了優(yōu)異效果,還被用于其他圖像分類任務(wù),如行人重檢測(Person Re-ID)。
Two Level Attention Model 的方法是先利用大量的候選區(qū)域進(jìn)行二分類,確定候選區(qū)域是否為前景得到object-level;再根據(jù)確定的前景區(qū)域進(jìn)行聚類分到part-level。這個(gè)方法通過兩個(gè)圖像等級的提?。ㄖ黧w與部位),取代了昂貴的人工標(biāo)注,使得圖像分類研究能夠有了脫離昂貴人工標(biāo)記的可能從而提高了算法的處理效率。但是大量候選區(qū)域的判斷運(yùn)算也會使得計(jì)算時(shí)間較長。為了能減少候選區(qū)域的計(jì)算時(shí)間,本文考慮使用一種高效率的object-level 圖像提取方法。通過對FCN(Fully Convolutional Networks)[8]學(xué)習(xí)和理解,將FCN 用于object-level 的提取工作。
Constellations 利用卷積網(wǎng)絡(luò)的特性產(chǎn)生一些關(guān)鍵點(diǎn),再利用這些關(guān)鍵來提取局部信息?;谶@一思路的提示,卷積神經(jīng)網(wǎng)絡(luò)層的每一層輸出都可以認(rèn)為是對所有關(guān)鍵點(diǎn)的突出處理為下一層的處理提供重要信息。所以綜合上述兩個(gè)想法本文提出了一種方法:基于FCN 并結(jié)合卷積網(wǎng)絡(luò)特性提取圖像感興趣區(qū)域作為細(xì)粒度分類的預(yù)處理。
Bilinear CNN 是一種端到端的整體優(yōu)化訓(xùn)練方法,使用A、B 兩個(gè)特征提取網(wǎng)絡(luò)形成雙線性CNN 模型,使得兩個(gè)網(wǎng)絡(luò)得到不同的特征,在進(jìn)行biliner 操作得到biliner vector 使得兩個(gè)不同特征融合有利于圖像的提取。基于這一思想本文使用二級網(wǎng)絡(luò)對圖像進(jìn)行分類:第一個(gè)網(wǎng)絡(luò)進(jìn)行感興趣區(qū)域提取并將感興趣區(qū)域分割提取作為第二個(gè)網(wǎng)絡(luò)的輸入,即將兩個(gè)網(wǎng)絡(luò)串聯(lián)使用。
FCN 作為圖像語義分割的先河,實(shí)現(xiàn)像素級別的分類(即end to end,pixel-wise),為后續(xù)使用CNN 作為基礎(chǔ)的圖像語義分割模型提供重要基礎(chǔ)。CNN 對圖片的conv 計(jì)算過程如圖1 中綠色部分所示主要是由conv、poooling 層構(gòu)成經(jīng)過由conv、pooling 層組成的特征提取訓(xùn)練之后,conv 層和pooling 層的輸出的多維特征圖都可以看成對不同特征的突出表示,因此可以使用特征圖經(jīng)過融合來提取感興趣區(qū)域。
圖1 VGG16簡圖
在融合特征圖為感興趣區(qū)域時(shí)需要融合不同尺寸的特征圖,在FCN(Fully Convolutional Networks for Semantic Segmentation)[8]中能夠很好地完成這個(gè)工作,主要是用到上采樣的過程。反卷積就是一種較好的上采樣,反卷積可以看為卷積的逆過程。卷積的過程如下:
input=4×4,Kernel size=3×3,padding=valid,stride=1,output=2×2。
對于卷積的計(jì)算需要將輸入輸出展開為一維向量下x、y,則卷積的過程為:
C 為與kernel 有關(guān)的稀疏矩陣。
由反卷積為卷積的反操作,使用轉(zhuǎn)置卷積來實(shí)現(xiàn):
在FCN[8]也是用到了標(biāo)注框信息,所以本文提出一種無需標(biāo)注框只需要圖像級別的弱監(jiān)督信息就可以分類圖像的方法。
本文分為兩步:
(1)利用細(xì)粒度數(shù)據(jù)集(鳥、狗、花、車等)對CNN(VGG16)進(jìn)行進(jìn)一步訓(xùn)練,使得CNN 網(wǎng)絡(luò)的卷積層能夠更好地提取關(guān)鍵特征。
(2)對訓(xùn)練好的CNN 網(wǎng)絡(luò)使用FCN 提取感興趣區(qū)域,關(guān)鍵如何確定閾值。
本文主要使用VGG16(ImageNet)進(jìn)行進(jìn)一步訓(xùn)練,VGG16 網(wǎng)絡(luò)已經(jīng)能夠很好地將大類與其他大類很好的分類出來,但是對于類內(nèi)的關(guān)鍵提取比較模糊不能很好的體現(xiàn)出來,所以需要使用細(xì)粒度分類的數(shù)據(jù)集進(jìn)行進(jìn)一步的訓(xùn)練。
本文在使用VGG16 進(jìn)一步訓(xùn)練是基于ImageNet的,將全連接層進(jìn)行修改。修改如下:
(1)將前兩個(gè)全連接層輸出維度由2048 改為1024,降低參數(shù)量有助于提高訓(xùn)練效率。
(3)使用全部數(shù)據(jù)集經(jīng)過圖片預(yù)處理使用實(shí)時(shí)數(shù)據(jù)提升,以20000 張圖片為一個(gè)epoch 分別進(jìn)行不同epochs(5、10 等)的訓(xùn)練。
2.1 小節(jié)中通過對VGG16 模型的進(jìn)一步訓(xùn)練,新的VGG16 模型有70%以上的正確識別率(以CUB200-2011 數(shù)據(jù)集為例),因此新的VGG16 模型對birds 的主體的注意力[5]已經(jīng)能正確的指向識別主體(birds 的整體或者包含整個(gè)頭部),模型的注意力有助于分類的正確率的提高。所以下面將通過FCN 融合的方法來將模型形成的注意力應(yīng)用與圖像感興趣區(qū)域的提取工作。
在文獻(xiàn)[8]中,作者使用單個(gè)pool 層的輸出來做語義分割,在識別物體所占圖片面積不固定時(shí)將會使用同一個(gè)pool 層來做分割可能結(jié)果不是最好,因此,本文使用多個(gè)pool 層來做分割。有助于提高準(zhǔn)確率。FCN的訓(xùn)練需要對原始數(shù)據(jù)集進(jìn)行處理對每個(gè)像素所屬的類進(jìn)行劃分(即是背景還是前景),所以FCN 的標(biāo)注成本也是昂貴的,同時(shí)訓(xùn)練時(shí)間也是比較長的。針對也上問題本文提出了一種針對單個(gè)對象的固定權(quán)值的FCN 特征融合模型,這種模型有以下特性:
(1)反卷積部分的權(quán)值是無需訓(xùn)練,根據(jù)卷積核的尺寸確定,卷積核尺寸需要根據(jù)步長來確定。為了便于融合不同pool 層的特征上采樣設(shè)定步長為2(即deconv 的步長為2),當(dāng)需要提取區(qū)域?yàn)橐粋€(gè)對象時(shí)(本文以鳥類為例),區(qū)域一般為一個(gè)連通的整體。為了盡可能去除噪聲(背景)的影響,本文使用size=4 的卷積核進(jìn)行反卷積,有利于將提取對象相應(yīng)位置像素高亮處理,為下一步多特征進(jìn)一步融合提供基礎(chǔ),F(xiàn)CN 結(jié)構(gòu)如圖2 所示。
圖2 FCN
(2)得到上一步所得的224×224 的多維特征圖需要將多個(gè)特征融合到一個(gè)類似于標(biāo)簽圖的224×224×1灰色圖中,基于上一步得到的時(shí)高亮區(qū)域可以采用像素均值的方法來實(shí)現(xiàn)這一過程:
m[i ,j] 為融合后對應(yīng)位置像素的值,Dinput為(i)中生成的多特征的維度,f[n,i,j]為多特征第n 個(gè)特征圖中位置的像素值。
B.最佳綠葉說的就是你啦!雖然只是配角,但你也是離主角最近的配角。你需要做的是坦白真誠地面對他人,這樣才能贏得觀眾的心。
圖3
圖3(a)為感興趣區(qū)域提取網(wǎng)絡(luò)的輸入(即原圖);圖3(b)為特征融合產(chǎn)生高亮圖;圖3(c)為經(jīng)過二值化處理過的圖3(b)的二值圖并恢復(fù)原有尺寸;圖3(d)為使用圖3(c)切割原圖的效果。
為了將圖3(b)的高亮特征圖轉(zhuǎn)化成圖3(c)的二值圖像,需要選取合適的閾值,如何設(shè)定閾值將在2.3小節(jié)介紹。
在2.2 小節(jié)中特征融合產(chǎn)生的224×224 高亮圖輸出需要二值化成為標(biāo)簽圖,這一過程需要確定閾值。閾值過大或者過小都會導(dǎo)致標(biāo)簽圖的不準(zhǔn)確,會使得重要的特征消失或者有過多的背景加入,這樣提取的區(qū)域就會與預(yù)期相差較大。因此閾值的確定是相當(dāng)?shù)闹匾?,同是為了體現(xiàn)本文的方法的準(zhǔn)確度,需要將本文所獲取的標(biāo)注框與真實(shí)人工標(biāo)注的標(biāo)注框進(jìn)行比較。
(1)判斷標(biāo)準(zhǔn)
為了比較本文標(biāo)注框與真實(shí)人工標(biāo)注框的準(zhǔn)確度,本文使用IOU(Intersection Over Union)[9]。IOU 是一種測量在特定數(shù)據(jù)集中檢測相應(yīng)物體準(zhǔn)確度的一個(gè)標(biāo)準(zhǔn)。IOU 是一個(gè)簡單的測量標(biāo)準(zhǔn),只要是在輸出中得出一個(gè)預(yù)測范圍(bounding boxes)的任務(wù)都可以用IOU來進(jìn)行測量。IOU 分?jǐn)?shù)是對象類別分割問題的標(biāo)準(zhǔn)性能度量[9]。給定一組圖像,IOU 測量給出了在該組圖像中存在的對象的預(yù)測區(qū)域和地面實(shí)況區(qū)域之間的相似性,并且由以下等式定義:
其中TP、FP 和FN 分別表示真陽性,假陽性和假陰性計(jì)數(shù)。本文使用將計(jì)數(shù)用面積代替計(jì)數(shù)。作為對IOU 的補(bǔ)充,本文同時(shí)使用公式(5)、(6)作為性能評價(jià)標(biāo)準(zhǔn):
K1:表示真實(shí)標(biāo)記框有K1 大小的比例屬于預(yù)測標(biāo)記框。K2:表示前景占預(yù)測標(biāo)記框K2 比例。
(2)閾值的選取與調(diào)整
本小節(jié)通過對特征融合產(chǎn)生的高亮進(jìn)行分析來提取標(biāo)簽圖。同過圖3(a)與圖3(b)大體可知:高亮圖的高亮區(qū)域幾乎是鳥的主體為位置。因此需要根據(jù)高亮圖的亮度(即像素值的大?。﹣砼袛嘁粋€(gè)像素是否屬于鳥,一個(gè)像素的像數(shù)值越大(即越亮)屬于鳥的區(qū)域的概率越大,所以概率與像素值成同方向變換關(guān)系。由于原圖的不規(guī)則性:①圖像中鳥整體占圖像的比例不一致,且相差較大;②鳥的形狀的不確定性:有的張開翅膀、有的站著、有的臥著等;③圖像背景的不確定性:有的是海、有的是樹、有的是人等。通過2.1 小節(jié)的訓(xùn)練VGG16 網(wǎng)絡(luò)能夠有效地減少原圖的不規(guī)則性對有效區(qū)域提取的影響。
偏移量M 的確定過程:
步驟1:對特征融合圖生成直方圖p;
步驟2:偏移量M 是針對鳥主體占圖像面積太大或太小提出的。設(shè)iPL為偏移因子通過直方圖p 得到,每一張?zhí)卣魅诤蠄DiPL的計(jì)算算法如下:
已知PL=0.3,p0 為計(jì)數(shù),當(dāng)鳥占面積太大時(shí)直方圖像素值iPL應(yīng)該偏右(即靠近像數(shù)值最大的地方)如圖4;當(dāng)鳥占面積太小時(shí)直方圖像素值iPL應(yīng)該偏左(即靠近像數(shù)值最小的地方)如圖5。
偏移量M 可能偏左也可能偏右,且往左偏需要增大閾值,往右偏需要減小閾值,因此令:
通過選取a 的不同的值進(jìn)行試驗(yàn)比較得到a=3 比較合適。利用閾值對圖像進(jìn)行切割生成新的訓(xùn)練數(shù)據(jù)集,用于網(wǎng)絡(luò)的第二次訓(xùn)練。
圖4
圖5
本文的主要目的是使用FCN 對只有圖像級別標(biāo)簽的數(shù)據(jù)集進(jìn)行感興趣區(qū)域提取,并來提高細(xì)粒度分類的真確率,整個(gè)結(jié)構(gòu)的實(shí)現(xiàn)如圖6 所示。
圖6 本文整體架構(gòu)
使用上述結(jié)構(gòu)和CUB200-2011 數(shù)據(jù)集在第二次訓(xùn)練時(shí)正確率達(dá)到88%,使用裁剪的CUB200-2011 數(shù)據(jù)集不做數(shù)據(jù)提升(只將圖片進(jìn)行90 度旋轉(zhuǎn),不做平移、縮放等)作為測試集正確率達(dá)到90%。使用原數(shù)據(jù)集(未經(jīng)裁剪CUB200-2011 數(shù)據(jù)集)測試正確率為70%,使用裁剪數(shù)據(jù)集(經(jīng)FCN 裁剪的CUB200-2011數(shù)據(jù)集)經(jīng)過旋轉(zhuǎn)測試正確率為83%左右,對比其他方法有一定優(yōu)勢如表1 所示。
表1
本文是利用反卷積與FCN 的特性并在VGG16 的基礎(chǔ)上進(jìn)行圖像感興趣區(qū)域的提取,再將提取的圖像生成新的訓(xùn)練集對VGG16 進(jìn)行再次訓(xùn)練來提高網(wǎng)絡(luò)的分類的正確率。本文對圖像提取的方法存在一定的缺陷:一是本文的提取方法只適合只有一個(gè)分類對象,當(dāng)出現(xiàn)多個(gè)分類對象時(shí),本文方法也只會標(biāo)注成一個(gè)框;二是對感興趣區(qū)域的提取不夠完整,但是足夠用來提高分類的正確率。希望在以后的工作中能改善這兩點(diǎn),并進(jìn)一步提高正確率。