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