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