本發(fā)明涉及紅外艦船識別技術(shù)領(lǐng)域,尤其涉及一種基于cnn深度學(xué)習(xí)的近岸紅外艦船識別方法。
背景技術(shù):
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)研究中的一個新領(lǐng)域,其動機(jī)在于建立模擬人腦進(jìn)行分析和學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),并模擬人腦的機(jī)制來解釋數(shù)據(jù)。其本質(zhì)是一種多層神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)結(jié)構(gòu),通過組合轉(zhuǎn)化低層數(shù)據(jù)特征形成更加抽象的高層的數(shù)據(jù)特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示的一種方法。近年來深度學(xué)習(xí)在人工智能的各領(lǐng)域都取得突破性進(jìn)展,尤其在圖像識別、語音識別領(lǐng)域打破了傳統(tǒng)機(jī)器學(xué)習(xí)方法保持的記錄。另外在自然語言理解的各項任務(wù)中也取得了非??上驳某晒?/p>
cnn(convolutionalneuralnetworks)是一種有監(jiān)督的深層神經(jīng)網(wǎng)絡(luò)模型,被認(rèn)為是第一個真正多層結(jié)構(gòu)的深度學(xué)習(xí)網(wǎng)絡(luò),最初是由學(xué)者lecun于1998年提出,其本質(zhì)是一個多層感知機(jī),目前已被成功應(yīng)用于目標(biāo)檢測、分割、識別以及圖像的各個領(lǐng)域,尤其是在人臉識別領(lǐng)域取得了突破性進(jìn)展。
近年來,cnn在深度學(xué)習(xí)領(lǐng)域展現(xiàn)出了強(qiáng)大威力,在機(jī)器學(xué)習(xí)的各個領(lǐng)域都取得了可喜的成績,尤其在圖像識別領(lǐng)域取得了突破性進(jìn)展,其識別準(zhǔn)確率遠(yuǎn)遠(yuǎn)超越了傳統(tǒng)的識別方法。cnn之所以在圖像識別領(lǐng)域取得巨大成功,主要?dú)w咎于其強(qiáng)大的數(shù)據(jù)表征能力,通過cnn不但可以提取輸入圖像的低層次特征,也可以提取圖像的高層次抽象特征,而這些高層次特征通常具有較強(qiáng)的魯棒性。
紅外目標(biāo)識別在軍事領(lǐng)域有重要的研究價值,國內(nèi)外學(xué)者提出了很多種識別方法,這些方法通常是先提取目標(biāo)的特征,然后再根據(jù)目標(biāo)先驗知識構(gòu)造相應(yīng)的決策模型,通過計算待識別目標(biāo)和目標(biāo)模型的特征匹配度來完成對目標(biāo)的識別。常用的統(tǒng)計特征如灰度均值、方差、對比度和紋理等;常見的形狀特征如長寬比、占空比、緊湊度、輪廓形狀和不變矩等。但在實際中,目標(biāo)的這些特征通常會受環(huán)境和目標(biāo)的平移、旋轉(zhuǎn)、尺度、成像視角變化的影響,導(dǎo)致目標(biāo)特征模型的失效,從而做出錯誤的判定。因此,如何利用cnn深層神經(jīng)網(wǎng)絡(luò)進(jìn)行紅外艦船目標(biāo)的準(zhǔn)確識別成為該領(lǐng)域的一個新的研究方向。
技術(shù)實現(xiàn)要素:
為解決上述問題,本發(fā)明提出了一種基于cnn深度學(xué)習(xí)的近岸紅外艦船識別方法,充分利用cnn網(wǎng)絡(luò)的優(yōu)勢,實現(xiàn)艦船目標(biāo)的準(zhǔn)確識別。
本發(fā)明采用的技術(shù)方案如下:
一種基于cnn深度學(xué)習(xí)的近岸紅外艦船識別方法,包括以下步驟:
步驟1、設(shè)置cnn深層神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù);該cnn網(wǎng)絡(luò)模型包括輸入層、卷積層和下采樣層的組合層兩層、全連接層兩層及輸出層;
步驟2、選取訓(xùn)練樣本數(shù)據(jù),根據(jù)設(shè)置的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)進(jìn)行cnn訓(xùn)練;
步驟3、將測試圖像輸入訓(xùn)練后的cnn網(wǎng)絡(luò),若測試成功率達(dá)98%以上,導(dǎo)出lenet-weights文件,存儲網(wǎng)絡(luò)結(jié)構(gòu)參數(shù);
步驟4、識別時根據(jù)紅外分割與跟蹤程序,將跟蹤窗口中的目標(biāo)轉(zhuǎn)化為向量,輸入cnn網(wǎng)絡(luò)中并進(jìn)行預(yù)測,輸出的score值即為目標(biāo)預(yù)測類型。
優(yōu)選的,步驟1中卷積層的卷積核窗大小為5×5,核窗跨度為1個像素。
步驟1的具體過程如下:圖像在輸入之前先歸一化為32×32大小,c1層卷積層采用6個核窗大小為5×5的卷積核濾波器,得到6個分辨率為28×28的特征圖,再對c1層進(jìn)行2×2下采樣,在s2層下采樣層得到6個分辨率為14×14的特征圖;c3層卷積層采用16個核窗大小為5×5的卷積核濾波器,得到16個分辨率為10×10的特征圖,再對c3層進(jìn)行2×2下采樣,在s4層下采樣層得到16個分辨率為5×5的特征圖;然后經(jīng)過兩個全連接層,最后一層輸出層是softmax回歸分類器,得到4維的輸出向量。
步驟2中cnn訓(xùn)練方法為:
給定樣本(x_i,y_i)_(i=1…n),x_i為樣本數(shù)據(jù),y_i為期望輸出;
第一階段,向前傳播階段:
1)從樣本集中取一個樣本(x_i,y_i),將x_i輸入cnn網(wǎng)絡(luò);
2)計算相應(yīng)的實際輸出o_i;
在此階段,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層;
第二階段,向后傳播階段:
1)計算實際輸出o_i與相應(yīng)的理想輸出y_i的差;
2)按極小化誤差的方法反向傳播調(diào)整權(quán)矩陣;
重復(fù)上述過程,直到誤差小于預(yù)先指定的閾值或達(dá)到預(yù)先設(shè)定的迭代次數(shù)為止。
cnn是一種多層的監(jiān)督學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),隱含層的卷積層和下采樣層是實現(xiàn)cnn網(wǎng)絡(luò)特征提取功能的核心模塊,該網(wǎng)絡(luò)模型通過采用梯度下降法最小化損失函數(shù)對網(wǎng)絡(luò)中的權(quán)重參數(shù)逐層反向調(diào)節(jié),通過頻繁的迭代訓(xùn)練提高網(wǎng)絡(luò)的精度。cnn的低隱層是由卷積層和下采樣層交替組成,高層是全連接層對應(yīng)傳統(tǒng)多層感知器的隱含層和邏輯回歸分類器。第一個全連接層的輸入是由卷積層和下采樣層進(jìn)行特征提取得到的特征圖像。最后一層輸出層是一個分類器,可以采用邏輯回歸、softmax回歸甚至是支持向量機(jī)對輸入圖像進(jìn)行分類。
定義損失函數(shù)為:
其中,xi為訓(xùn)練樣本圖像數(shù)據(jù),yi為樣本類別符號,t是矩陣的轉(zhuǎn)置符號,n為樣本個數(shù),f(xi)為最后一層的輸出向量,λ為大于0的常數(shù),l為cnn網(wǎng)絡(luò)層數(shù),wk為各層神經(jīng)元連接權(quán)值矩陣。
將識別的目標(biāo)限定為四類,即:帆船、貨船、客船和拖船,其類別符號分別用1、2、3、4表示,則yi是1、2、3、4中的其中一個。
對于所定義的損失函數(shù),為提高訓(xùn)練速度,我們采用隨機(jī)梯度迭代算法使其最小化,直到損失函數(shù)的梯度小于某個預(yù)先指定的閾值或達(dá)到預(yù)先指定的迭代次數(shù)為止。訓(xùn)練好的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)經(jīng)測試合格后,以文件的形式存儲到計算機(jī)硬盤中,以便在線跟蹤識別時加載網(wǎng)絡(luò)模型。
本發(fā)明采用cnn網(wǎng)絡(luò)進(jìn)行特征提取,將其用于近岸紅外艦船目標(biāo)識別,相比傳統(tǒng)艦船識別方法,識別速度快,識別精度更高,為近岸艦船的準(zhǔn)確識別提供了有效保障。
附圖說明
圖1是本發(fā)明方法流程示意圖;
圖2是cnn網(wǎng)絡(luò)結(jié)構(gòu)示意圖;
圖3是實施例cnn訓(xùn)練樣本圖;
圖4是實施例cnn測試樣本圖;
圖5是識別結(jié)果截圖一;
圖6是識別結(jié)果截圖二;
圖7是識別結(jié)果截圖三;
圖8是識別結(jié)果截圖四;
圖9是識別結(jié)果截圖五;
圖10是識別結(jié)果截圖六;
圖中,1、輸入層,2、卷積層,3、下采樣層,4、卷積層,5、下采樣層,6、全連接層,7、全連接層,8、輸出層。
具體實施方式
下面結(jié)合附圖對本發(fā)明的具體實施方式進(jìn)行詳細(xì)說明。
一種基于cnn深度學(xué)習(xí)的近岸紅外艦船識別方法,如圖1所示,包括以下步驟:
首先,設(shè)置cnn深層神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)。
如圖2所示,cnn網(wǎng)絡(luò)模型包括輸入層1、卷積層和下采樣層的組合層兩層、全連接層兩層及輸出層8,共有八層。卷積層卷積核窗大小為5×5,核窗跨度(stride)為1個像素。c1層卷積層2采用6個核窗大小為5×5的卷積核濾波器,得到6個分辨率為28×28的特征圖,再對c1層進(jìn)行2×2下采樣,在s2層下采樣層3得到6個分辨率為14×14的特征圖;c3層卷積層4采用16個核窗大小為5×5的卷積核濾波器,得到16個分辨率為10×10的特征圖,再對c3層進(jìn)行2×2下采樣,在s4層下采樣層5得到16個分辨率為5×5的特征圖;然后經(jīng)過兩個全連接層6、7,最后一層輸出層8是softmax回歸分類器,得到4維的輸出向量。
然后,選取訓(xùn)練樣本數(shù)據(jù),根據(jù)設(shè)置的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)進(jìn)行cnn訓(xùn)練。
對采集的紅外視頻圖像截圖,獲取訓(xùn)練樣本。對于標(biāo)定的訓(xùn)練數(shù)據(jù)集
cnn的訓(xùn)練過程與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)類似,也是參照了反向傳播算法。
具體的cnn訓(xùn)練方法為:
給定樣本(x_i,y_i)_(i=1…n),x_i為樣本數(shù)據(jù),y_i為期望輸出;
第一階段,向前傳播階段:
1)從樣本集中取一個樣本(x_i,y_i),將x_i輸入cnn網(wǎng)絡(luò);
2)計算相應(yīng)的實際輸出o_i;
在此階段,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層;這個過程也是網(wǎng)絡(luò)在完成訓(xùn)練后正常運(yùn)行時執(zhí)行的過程。在此過程中,網(wǎng)絡(luò)執(zhí)行以下計算(實際上就是輸入與每層的權(quán)值矩陣相點(diǎn)乘,得到最后的輸出結(jié)果):
o_i=f_n(…f_2(f_1(x_iw_1+b_1)w_2+b_2)…〖)w〗_n+b_n)(5-1)。
第二階段,向后傳播階段:
1)計算實際輸出o_i與相應(yīng)的理想輸出y_i的差;
2)按極小化誤差的方法反向傳播調(diào)整權(quán)矩陣;
重復(fù)上述過程,直到誤差小于預(yù)先指定的閾值或達(dá)到預(yù)先設(shè)定的迭代次數(shù)為止。
定義損失函數(shù)為:
其中,xi為訓(xùn)練樣本圖像數(shù)據(jù),yi為樣本類別符號,t是矩陣的轉(zhuǎn)置符號,n為樣本個數(shù),f(xi)為最后一層的輸出向量,λ為大于0的常數(shù),l為cnn網(wǎng)絡(luò)層數(shù),wk為各層神經(jīng)元連接權(quán)值矩陣。為提高訓(xùn)練速度,采用隨機(jī)梯度迭代算法使損失函數(shù)最小化,直到其梯度小于某個預(yù)先指定的閾值或達(dá)到預(yù)先指定的迭代次數(shù)為止。
然后,將測試圖像樣本輸入訓(xùn)練后的cnn網(wǎng)絡(luò),若測試成功率達(dá)98%以上,導(dǎo)出lenet-weights文件,將訓(xùn)練好的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)存儲到計算機(jī)硬盤中,以便在線跟蹤識別時加載網(wǎng)絡(luò)模型。
最后,識別時根據(jù)紅外分割與跟蹤程序,將跟蹤窗口中的目標(biāo)轉(zhuǎn)化為向量,輸入cnn網(wǎng)絡(luò)中并進(jìn)行預(yù)測,輸出的score值即為目標(biāo)預(yù)測類型。
下面舉例說明本發(fā)明的具體應(yīng)用過程:
為驗證該識別方法的有效性,我們從現(xiàn)有的視頻中提取了帆船、貨船、客船和拖船的樣本數(shù)據(jù)420個,其中350個樣本用來訓(xùn)練cnn模型,訓(xùn)練樣本數(shù)據(jù)如圖3所示(訓(xùn)練數(shù)據(jù)的提取也可以在跟蹤過程中提取樣本數(shù)據(jù))。在樣本數(shù)據(jù)中,帆船和拖船的表觀變化較??;貨船的樣本來自三段不同的視頻數(shù)據(jù),從圖4(b)-(d)中可以看出來自不同視頻的貨船樣本的表觀變化較大??痛瑯颖疽彩莵碜詢啥我曨l,這兩段視頻中客船的表觀變化也較大。在實驗中,測試樣本數(shù)據(jù)70個,類別如圖3所示。
對所示的測試樣本,我們在所開發(fā)的軟件中進(jìn)行了在線跟蹤識別測試,跟蹤識別結(jié)果如圖5-10所示,可以看出圖5-9中的帆船、客船、貨船、拖船都能正確識別,只有圖10識別錯誤,這是因為該貨船裝滿貨物,紅外成像寬度較小,同時海岸背景干擾較為嚴(yán)重,跟蹤出現(xiàn)了較大的偏差,因此出現(xiàn)了識別錯誤。