韓成春,崔慶玉
(1.徐州工程學院電氣與控制工程學院,江蘇 徐州 221018;2.徐州工程學院外國語學院,江蘇 徐州 221018)
細粒度圖像分類技術的進步,使其在工業(yè)應用中發(fā)揮了越來越重要的作用。目前,細粒度圖像分類技術已經成為圖像分析的重要部分。細粒度分類對于當前人們的生產與生活過程也具有主要的現實意義[1-3]。相同種類的各個亞種間存在局部差異,各子類取決于差異部分。以汽車不同位置的車燈數據集為例,該數據集在細粒度分類的過程中存在某些特定圖像難以準確標注的問題[4-7]。對于計算機視覺領域而言,相比于手工制作特性,采用細粒度分類方法能夠獲得更優(yōu)的綜合性能。
卷積神經網絡(convolutional neural network,CNN)是實現深度學習的基礎,能夠實現對數據固有屬性的挖掘,通過學習深度卷積特征來實現準確分類的功能[8]。Simonyan[9]被廣泛應用于大規(guī)模計算機視覺分析領域,包括目標分辨、目標追蹤、圖像檢測、精確定位、影像歸類、人體姿勢判斷等。Szegedy[10]利用堆疊3×3卷積核以及2×2池化層的方式,獲得更高的網絡結構,構筑得到深度為16~19層的CNN。通過持續(xù)加深網絡結構的方式,可實現模型綜合性能的提升。文獻[11]所述的傳統(tǒng)CNN方法是利用新增卷積層與池化層方式實現的,會引起信息損耗的問題。根據經典CNN模型進行圖像網絡大規(guī)模視覺識別挑戰(zhàn)(imageNet large scale visual recognition challenge,ILSVRC)比賽獲得的結果可知,分類誤差率從16.2%減小至5%,已經超過人工分類的性能。
雙線性卷積神經網絡(bilinear convolutional neural network,B-CNN)首先利用2個卷積神經網絡從圖像中提取得到特征參數,并構建相應的深度卷積特征;然后利用雙線性層完成外積操作,針對各通道構建了相應的特征圖關系;最后通過池化層跟恒定長度神經元相連形成輸出[12]。
通過加和池化的方法獲得各位置特征組成的矩陣,將矩陣表示為向量x,實施元素級帶符號正則化處理y以及歸一化z,根據融合特征進行細粒度分類。以下為具體計算式:
(1)
式中:fA和fB分別為第一路和第二路卷積神經網絡的特征提取函數;p為池化層;c為分類層;I為圖像信號矩陣;l為對應區(qū)域;b(l,I,fA,fB)為雙線性函數;ζ(I)為池化函數;x為矩陣張成向量;y為方根正則化操作;z為歸一化操作。
對于雙線性池化層反向傳播過程,利用鏈式法則計算得到梯度,如下所示:
(2)
式中:L為損失函數。
利用空間金字塔池化層進行二階特征處理時,可以消除剪切特征圖操作并降低計算量。以下為協方差池化計算式:
(3)
式中:H為提取得到的特征圖像素;μ為憑據誤差。
網絡A與網絡B既可以屬于對稱網絡,又可以屬于非對稱網絡。依次選擇深度網絡M-net與D-net進行測試。以上2個網絡屬于VGG深度網絡對應的2類結構。
采用ImageNet數據集預訓練獲得M-net與D-net權重系數,依次從M-net與D-net中提取獲得卷積層加載參數并完成初始化,利用測試數據集完成網絡微調。通過對比法可知:深層網絡相比淺層網絡更優(yōu);雙線性相比單路網絡更優(yōu);非對稱相比對稱網絡更優(yōu)。
兩路卷積神經網絡同時運行時,可以獲得重復的相近特征。利用卷積神經網絡可獲得更多特征。而在特征融合之前,應對特征圖實施裁剪,從而便于完成外積操作。隨著模型參數的增加以及復雜度的提高,需要滿足更大的顯存需求。本文應用歸一化處理,通過減少批次數的方式降低誤差值受到的影響。
隨著數據維度的提高,計算量也明顯增加。因此,進行特征選擇時,需要確定由最多有效信息構成的最小特征子集。由于圖像包含了多個維度,而圖形處理器(graphic processing unit,GPU)顯存存在一個上限,各批次只對少量數據進行訓練,設定的批量數也較小。進行批歸一化(batch normalization,BN)處理時,對于較小的批量數會引起較高錯誤率。訓練時,以批量數據作為BN均值與方差的計算數據,通過直接調用的方式進行測試。組歸一化(group normalization,GN)可以實現上述情況的優(yōu)化。BN與GN誤差率對比結果由圖1所示。由圖1可知,當批量數減小后,BN誤差率發(fā)生了明顯增大。
圖1 BN與GN誤差率對比結果Fig.1 BN VS.GN error rate comparison results
首先,采用B-CNN模型獲得二個卷積神經網絡特征X1與X2;然后,利用外積方式,處理得到二階雙線性特征;最后,把二層網絡加深至四層網絡,從而得到更多有用特征。這可以顯著改善分類性能。
(4)
根據以上測試結果可知,其結果未獲得優(yōu)化。對其進行分析可知:雖然B-CNN模型是把2個一維特征轉變?yōu)槎S特征,提升了特征的豐富性,但采用本文設計的4層網絡獲得的特征還是屬于二維特征,所以以這種方式分類并不能實現理想分類效果。
本文選擇StanfordCars汽車數據集開展測試。其中,StanfordCars屬于一種汽車數據庫,總共含有各個年份、車型、制造商的車輛圖像共16 186張,可分成196種子類,共8 145張訓練集圖像以及8 041張測試集圖像。汽車類型是根據品牌、模型、年份的方式完成細粒度的分類過程。
①圖像信息預處理和參數增強。進行圖像分類時,需先對圖像數據開展分析并完成預處理。以隨機方式從原始圖像內截取224×224的范圍,根據中心化剪切方式接近。然后,在進行網絡輸入前,以隨機方式完成圖片的不同方向翻轉。圖片發(fā)生隨機變形后,先對圖片作小幅拉伸,再將其裁剪為同樣的尺寸,最后將其輸入網絡中。
②下載ImageNet數據集并對VGG16[13]與ResNet50卷積神經網絡權重參數進行預訓練。將池化與全連接層去除后,只保留卷積層。以預訓練獲得的權重構成網絡參數。
③構建模型。對2路VGG16網絡融合進行分析。首先,通過縮放處理,控制各組圖片為448×448×3,再利用VGG16將其轉變?yōu)?8×28×512,共包含512個通道,通道尺寸28×28。然后,復制一份輸出結果,按照兩兩組合方式對輸出通道相乘,再計算相乘結果的均值并開方,獲得維數為512×512的向量。最后,在完成向量歸一化之后,經一層全連接層輸出200維向量,共包含200類結果,選擇其中最高數值的一維組成最后一類。
④訓練與優(yōu)化。首先,合理選擇學習率,進行迭代訓練。然后,將模型起始的BN改寫為GN,加入dropout層,在訓練過程中隨機屏蔽一部分全連接層的參數,并進行微調。
針對CUB-200和StanfordCars這2個數據庫,分別以B-CNN目標識別算法與優(yōu)化后的B-CNN完成數據集分類。判別性部件識別結果如圖2所示。
圖2 判別性部件識別結果Fig.2 Discriminative part identification results
進行網絡訓練時,合理控制學習率能夠達到更快的訓練速度。隨著損失函數幅度降低至某一范圍,可以利用降低學習率的方式來達到跳出局部最優(yōu)解的效果,并由此獲得全局最優(yōu)解,從而有效防止死循環(huán)的問題。學習率尋找過程結果如圖3所示。
圖3 學習率尋找過程結果Fig.3 Learning rate search process results
表1為準確率比較結果。
表1 準確率比較結果Tab.1 Accuracy comparison results
B-CNN-1與 B-CNN-2輸入圖像尺寸分別為(224,224)、(448,448)。從表1縱向層面進行分析可知,B-CNN相對單路神經網絡發(fā)生了增大,當輸入(224,224)的圖像時,以汽車數據集進行測試時,準確率提升了16%。輸入圖像發(fā)生了少量裁剪,在(448,448)尺寸下,汽車數據集發(fā)生顯存溢出。以B-CNN測試汽車數據集的準確率為91.2%,經過提升處理準確率達到了93.1%。
本文對雙線性卷積神經網絡進行闡述,首先應用了GN、dropout方法,調整可訓練參數,然后在汽車數據集上試驗,最后比較了經典卷積神經網絡和雙線性卷積神經網絡。對比結果顯示,雙線性卷積神經網絡對于一些細粒度圖像分類任務適用,能提升分類準確率。