李 曼,李 永
(武警工程大學(xué)信息工程學(xué)院,陜西 西安 710086)
在計算機視覺領(lǐng)域內(nèi),目標(biāo)識別為當(dāng)前的熱議話題之一,目標(biāo)識別可輔助圖像有價值目標(biāo)信息的快速提取,并且通過不斷判斷每個目標(biāo)的類型、價值,可對每個目標(biāo)完成邊界框定。近幾年,目標(biāo)識別逐漸進入大眾視野,在軍事體能訓(xùn)練、無人機駕駛等多個領(lǐng)域均取得了重要突破。但是,圖像中的光線遮擋以及障礙物的影響,使得目標(biāo)識別成為了一項難度較高的技術(shù)。
在此背景下,相關(guān)領(lǐng)域?qū)<乙呀?jīng)得到了一些較好的研究成果。文獻[1]在功能保持的基礎(chǔ)上,利用特征金字塔實現(xiàn)了對目標(biāo)的檢測識別。在原始圖像中構(gòu)建不同尺度特征圖下的特征金字塔,并利用功能保持中的融合模塊,在特征融合階段盡可能的降低損失;在主網(wǎng)絡(luò)中選擇兩個不同階段下的特征進行目標(biāo)的描述,以此來提高檢測的精度;利用上下文信息對目標(biāo)的判別能力以及檢測能力做進一步增強,以此完成對多目標(biāo)的檢測。該方法對于遮擋較嚴重的圖像具有理想的檢測效果,但是檢測的精度有待提高;文獻[2]將軌跡跟蹤預(yù)測法與模糊理論結(jié)合在一起,得到了一種小目標(biāo)跟蹤識別算法。首先,任意選取一個原始圖像,利用高通濾波技術(shù)對其進行預(yù)處理,將背景與目標(biāo)分離開來;利用軌跡跟蹤預(yù)測法對目標(biāo)可能存在的位置進行預(yù)測,并在動態(tài)范圍內(nèi)進行圖像序列的分析,此時引入模糊理論更新記憶,以此實現(xiàn)目標(biāo)預(yù)測位置的高精準度;憑借多幀圖像的軌跡跟蹤技術(shù)實現(xiàn)對目標(biāo)的跟蹤與識別。該方法可以實現(xiàn)在低信噪比環(huán)境下的有效識別,但是當(dāng)原始圖像背景過于復(fù)雜時,該方法識別結(jié)果并不理想,出現(xiàn)的誤差較大。
由于以上兩種傳統(tǒng)方法在應(yīng)用時,當(dāng)有新的數(shù)據(jù)增加到數(shù)據(jù)集合時,數(shù)據(jù)目標(biāo)識別效率和精度均偏低,無法滿足實際的需求。針對該問題,本研究針對增量式數(shù)據(jù),引入了深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò),并選取了其中最具代表性的LeNet-5,對軍事體能訓(xùn)練產(chǎn)生的增量式數(shù)據(jù)展開了目標(biāo)模糊識別的研究。利用LeNet-5對原始圖像進行特征提取與特征分類,為后續(xù)的目標(biāo)識別做好基礎(chǔ)工作;采用遷移學(xué)習(xí)技術(shù)對增量式數(shù)據(jù)進行參數(shù)的調(diào)整,使其成為便于識別的形式;最后,在區(qū)域建議網(wǎng)絡(luò)內(nèi)完成目標(biāo)的模糊識別。通過對本文方法在目標(biāo)識別速度和效果方面進行仿真,結(jié)果驗證了本文方法的可行性。
卷積神經(jīng)網(wǎng)絡(luò)由5個層次構(gòu)成:輸入/出層、卷積層、池化層以及全連接層。卷積神經(jīng)網(wǎng)絡(luò)對于圖像數(shù)據(jù)具有非常優(yōu)秀的識別效果。當(dāng)待識別的數(shù)據(jù)為圖像時,經(jīng)過卷積和池化的雙重作用,圖像特征信息逐漸凸顯出來,并改變了之前的低層特征[3],逐漸形成了高層特征;當(dāng)高層特征經(jīng)過全連接層的作用后,又轉(zhuǎn)換形成了一維向量的形式;最后經(jīng)由輸出層輸出。因此,可將卷積神經(jīng)網(wǎng)絡(luò)的層次劃分為兩個部分,一個是提取圖像特征的特征提取模塊,另一個為劃分特征類別的特征分類模塊。本文對此作了詳細介紹,如圖1所示。
1)輸入層
2)卷積層
(1)
通過對式(1)進行計算可知,卷積層特征圖的構(gòu)成主要通過以下三步來實現(xiàn):
步驟一:在卷積層選取大小各不相同的卷積核,對其不斷重復(fù)卷積操作,得到特征圖像;
步驟二:將有關(guān)聯(lián)的卷積結(jié)果與偏移量進行統(tǒng)計整理;
步驟三:利用f(x)對統(tǒng)計結(jié)果進行累加計算,即可得到單個卷積層的特征圖。
3)池化層
(2)
式中,p(x)表示池化處理過程。
池化層還有一項特殊功能,那就是可以對圖像進行特征選擇。根據(jù)相應(yīng)規(guī)則,對卷積層特征圖的某個部位進行重要特征值的計算。在實際運用中,池化層通常會無限制地掃描圖像中的某個部位。所以,經(jīng)過池化作用后,圖像的特征維度[6]都得到了有效降低,并且保持特征在任何情況下不變形,提高了識別精度。通過式(2)可以看出,池化層與卷積層內(nèi)的特征圖在數(shù)量上存在著某種聯(lián)系,繼續(xù)計算可以發(fā)現(xiàn),二者之間存在的特征圖數(shù)量相等,即Nl+1=Nl。
4)全連接層
圖像經(jīng)過池化作用,降低了特征維度后,接下來進入到全連接層進行特征分類。全連接層進行每一步的操作都要服從輸出層的命令。當(dāng)?shù)趌層、第l-1層均為全連接層時,特征向量xl的結(jié)果可通過計算式(3)得到
xl=f(wlxl-1+bl)
(3)
式中,bl表示全連接層的偏移量[7],wl表示全連接層的權(quán)重值大小。
當(dāng)?shù)趌層為全連接層、第l-1層為其它層時,xl的計算方式也會相應(yīng)發(fā)生改變,通常情況下有兩種:一種是將其它層內(nèi)的特征圖轉(zhuǎn)換為特征向量的形式,然后再通過式(3)的計算得到xl的值;另一種是將全連接層設(shè)置為1×1的矩陣,矩陣的數(shù)量與特征圖的數(shù)量相等,然后就可以通過式(4)計算xl的值
(4)
5)輸出層
完成以上操作后,圖像經(jīng)由輸出層輸出,至此,卷積神經(jīng)網(wǎng)絡(luò)完成了所有的訓(xùn)練步驟。輸出層與全連接層共同作用,對完成特征提取的圖像進行分類處理。但是二者之間不同之處在于,輸出層的作用更傾向于Softmax分類器。假設(shè)圖像的類別預(yù)測向量為Y=(y1,…,yM),M代表的是圖像劃分類別數(shù)量[8]。其中,yM的計算公式為
(5)
卷積神經(jīng)網(wǎng)絡(luò)中LeNet-5的結(jié)構(gòu)如圖2所示。在進行目標(biāo)識別之前,圖像需要進行歸一化處理,通過增加權(quán)值系數(shù)使得目標(biāo)特征轉(zhuǎn)換為高層次特征,便于接下來的目標(biāo)識別。
圖2 LeNet-5結(jié)構(gòu)圖
從圖2中可以看出,LeNet-5共有7個層次組成,每個層次中都包含了若干個可供訓(xùn)練使用的參數(shù)。本文設(shè)定的卷積神經(jīng)網(wǎng)絡(luò)大小為32×32,其中,C層表示由特征提取模塊組成的網(wǎng)絡(luò)層,S層表示由特征分類模塊組成的網(wǎng)絡(luò)層。
由6個大小為28×28的特征圖組合在一起形成C1層。S2層中的特征圖數(shù)量與C1層相同,但是大小卻僅為C1層中特征圖的一半,為14×14。C1層與S2層實現(xiàn)連接依靠的是大小為2×2的矩陣。到了C3層,特征圖數(shù)量增多,為16個,大小為10×10。C3層與S2層實現(xiàn)連接依靠的是大小為5×5的矩陣。
本文列舉了S2層與C3層之間的連接方法,如表1所示。
表1 S2層與C3層的連接方法
S4層也是由16個特征圖組合形成,但是大小要略小于C3,為5×5,與C3層形成連接的矩陣大小為2×2。到了C5層以后,特征圖的數(shù)量明顯增多,為120個,與S4層之間的連接矩陣大小為5×5。F6層之后均是由神經(jīng)元構(gòu)成,輸出層內(nèi)的神經(jīng)元數(shù)量為10,C5層、F6層以及輸出層,三者之間全方面連接。神經(jīng)元是通過徑向基函數(shù)構(gòu)成,計算方式如式(6)
(6)
由于訓(xùn)練圖像的不斷增多,逐漸形成增量式數(shù)據(jù),利用卷積神經(jīng)網(wǎng)絡(luò)對其訓(xùn)練時,可以采用遷移學(xué)習(xí)算法,在一個事先訓(xùn)練好的模型上進行新問題的訓(xùn)練。
選取一個已經(jīng)訓(xùn)練好的模型Inception-v3[9],經(jīng)過特征提取的作用后,得到圖像的目標(biāo)特征,通過接下來的全連接層,實現(xiàn)特征信息的分類。并且,Inception-v3模型的輸出層可以輸出魯棒性強、表現(xiàn)能力強的特征向量。
在Inception-v3模型中,使已經(jīng)完成訓(xùn)練的參數(shù)保持不變,利用當(dāng)前模型中的數(shù)據(jù)對卷積神經(jīng)網(wǎng)絡(luò)中的卷積層和全連接層進行微調(diào),以此獲得理想的遷移結(jié)果。在實際的目標(biāo)模糊識別中,只要可用于訓(xùn)練的圖像數(shù)據(jù)足夠多,需要凍結(jié)的卷積層就越少,訓(xùn)練的結(jié)果也就越精準。
同時由于在軍事訓(xùn)練圖像中,往往需要識別的目標(biāo)不止一個,如果將整幅圖像劃分為若干個單獨的個體然后再進行識別,那么結(jié)果必然是不準確的。不僅如此,想要實現(xiàn)精準的目標(biāo)識別,還需要對目標(biāo)在圖像中的位置進一步確定。對于候選區(qū)域[10]的選取,本文通過對比選擇的是R-CNN序列檢測算法。
首先,在原始圖像內(nèi)部選取可能包含目標(biāo)在內(nèi)的1900個候選區(qū)域,利用已經(jīng)訓(xùn)練完畢的卷積神經(jīng)網(wǎng)絡(luò),對選取的1900個候選區(qū)域進行特征的提取和分類;然后,對分好類的特征圖像進行邊框回歸處理。該算法直接利用特征圖取代了對原始圖像進行目標(biāo)識別的過程,很大程度上控制了運算成本,并且在經(jīng)過最后一層卷積層時,加入了區(qū)域建議網(wǎng)絡(luò),使得生成候選區(qū)域的速度大大提高,并實現(xiàn)了對候選區(qū)域是否存在目標(biāo)的準確判斷。完成以上步驟后,通過回歸器深入調(diào)整,實現(xiàn)目標(biāo)的有效識別。
為了驗證本文所提的目標(biāo)模糊識別方法是否合理有效,與文獻中的功能保持和小目標(biāo)跟蹤識別兩種方法展開了對比仿真。仿真中的文字數(shù)據(jù)集和圖像數(shù)據(jù)集均來自于Image Net數(shù)據(jù)集,并按照訓(xùn)練集和測試集分好類。測試集選取了其中的五類軍事體能訓(xùn)練數(shù)據(jù):跑步、蛙跳、俯臥撐、單雙杠和單腿伸登。樣本數(shù)據(jù)的迭代次數(shù)設(shè)定為45次。
在目標(biāo)識別速度測試階段,本文選擇常用幀率(單位為frame/s)來表示目標(biāo)識別的速度,換句話說,也就是在一定時間內(nèi)所識別到的目標(biāo)圖像數(shù)量。數(shù)量越多,說明算法的識別速度越快;反之,則說明算法的識別速度較慢。
將本文方法與功能保持算法和小目標(biāo)跟蹤識別算法展開對比實驗驗證,并在測試數(shù)據(jù)集上進行識別精度的驗證,以此來驗證三種方法所得的目標(biāo)識別精度、平均精度以及目標(biāo)識別速度。三種方法目標(biāo)識別結(jié)果如表2所示。
表2 三種方法對于不同測試集的目標(biāo)識別結(jié)果
通過觀察表2可知,本文方法對于不同類型的增量式數(shù)據(jù),平均識別精度可以高達88.33%,較其它兩種方法相比具有顯著的優(yōu)勢。尤其是對于俯臥撐、單雙杠和單腿伸登這三類訓(xùn)練項目的目標(biāo)識別,本文方法的識別精度更是高達89.90%、91.36%、95.32%。再對三種方法的識別速度進行觀察,可以看出,本文方法的識別速度高達43.6frame/s,與其它兩種算法相比具有顯著的優(yōu)勢。這是由于本文方法中引入了小樣本條件下的遷移學(xué)習(xí)技術(shù),在確保算法具有高識別精度的前提下實現(xiàn)了高效率的目標(biāo)識別。
接下來對本文方法的目標(biāo)識別效果進行實驗測試。實驗初期,考慮到如果直接將原始圖像代入到本文算法中,原始圖像的成像通道與卷積神經(jīng)網(wǎng)絡(luò)之間可能存在一定的差異性,所以實驗中將卷積神經(jīng)網(wǎng)絡(luò)的大小設(shè)定為一個3×32×32的矩陣,將待識別的目標(biāo)圖像用2表示,背景圖像用1表示,并作為直接輸入卷積神經(jīng)網(wǎng)絡(luò)的內(nèi)容符號。目標(biāo)圖像與背景圖像如圖3所示。
圖3 目標(biāo)圖像與背景圖像
由于原始體能訓(xùn)練圖像變形、扭轉(zhuǎn)的可能性較小,因此實驗中適當(dāng)?shù)南鳒p了LeNet-5網(wǎng)絡(luò)卷積層中特征圖的個數(shù)。
最終設(shè)定的特征圖大小為5×5,卷積層C1、C3、C5的特征圖數(shù)量分別為6個、16個和120個。本文方法目標(biāo)識別效果如圖4所示。
圖4 本文方法目標(biāo)識別結(jié)果
從圖4中可以看出,運用本文方法,經(jīng)過一系列的學(xué)習(xí)運算后,輸出的結(jié)果為2,說明識別到的結(jié)果為目標(biāo)圖像。
然后再利用本文方法,按照實驗中選取的訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集進行訓(xùn)練,實驗結(jié)果如圖5所示。
圖5 訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集誤差曲線變化
從圖5中可以看出,即使在迭代次數(shù)不斷增加的情況下,本文方法訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集的誤差出現(xiàn)次數(shù)都在逐漸降低。當(dāng)?shù)螖?shù)為29次時,本文方法對于訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集的目標(biāo)識別誤差次數(shù)無限趨近于0,并且一直保持到最后,說明本文方法目標(biāo)識別效果較優(yōu)。
針對軍事體能訓(xùn)練的目標(biāo)識別需求,本文提出可以基于深度學(xué)習(xí)的增量式數(shù)據(jù)目標(biāo)模糊識別方法。利用卷積神經(jīng)網(wǎng)絡(luò)中的LeNet對參數(shù)進行優(yōu)化和微調(diào),使算法整體具有良好的遷移效果,從而提高目標(biāo)識別的精度。在識別速度與識別效果兩方面展開仿真,結(jié)果驗證了本文方法可以在具有理想識別速度的前提下實現(xiàn)高精準度的目標(biāo)識別,可以在很大程度上滿足在實際中的應(yīng)用需求。