石勝斌,王曙光,劉 楨,楊傳棟
(陸軍炮兵防空兵學(xué)院,安徽 合肥 230031)
中國(guó)的領(lǐng)海面積十分廣闊,海洋資源豐富;與此同時(shí),海洋周邊環(huán)境復(fù)雜,存在一定的安全隱患,為了維護(hù)海洋安全穩(wěn)定、準(zhǔn)確鎖定及跟蹤可疑海上目標(biāo),艦船目標(biāo)跟蹤系統(tǒng)的搭載勢(shì)在必行,因此對(duì)于海上目標(biāo)的跟蹤技術(shù)的研究具有一定的現(xiàn)實(shí)意義[1]。
目標(biāo)跟蹤在計(jì)算機(jī)視覺領(lǐng)域仍然是極富挑戰(zhàn)性的一個(gè)子領(lǐng)域。很多國(guó)家都投入了大量的人力、物力和財(cái)力進(jìn)行該項(xiàng)研究。當(dāng)前,基于計(jì)算機(jī)視覺的跟蹤具有非常廣泛的應(yīng)用價(jià)值,國(guó)內(nèi)外學(xué)者已提出了很多運(yùn)動(dòng)目標(biāo)跟蹤的方法,并在不同的應(yīng)用領(lǐng)域取得了一定的效果。在交通應(yīng)用領(lǐng)域,主要有交通流量控制,車輛、船舶的異常檢測(cè),利用智能交通監(jiān)控系統(tǒng)提高交通的管控系統(tǒng)效率[2-3]。在精確制導(dǎo)領(lǐng)域,隨著目標(biāo)跟蹤技術(shù)的不斷發(fā)展,制導(dǎo)精度也大幅提升。以往的跟蹤算法通常只能用簡(jiǎn)單的軸對(duì)齊的邊界框來表示目標(biāo),這種方法固然存在一定的弊端,如目標(biāo)發(fā)生外觀及形態(tài)變化時(shí),傳統(tǒng)軸對(duì)齊的跟蹤框中勢(shì)必會(huì)引入大量背景信息,例如在導(dǎo)彈打擊目標(biāo)時(shí)極有可能造成任務(wù)失敗。文中基于全卷積孿生網(wǎng)絡(luò)(Siamese)框架[4]并結(jié)合目標(biāo)分割策略,使得跟蹤器能夠在目標(biāo)發(fā)生變化時(shí),自適應(yīng)地調(diào)整跟蹤框的形狀,該方法能夠有效減小跟蹤器的跟蹤誤差。
孿生神經(jīng)網(wǎng)絡(luò)(SiameseNet:Siamese neural network)最早是由Bromley和LeCun[5]提出用來處理簽名驗(yàn)證的問題,該網(wǎng)絡(luò)主要包含兩個(gè)或多個(gè)具有相同結(jié)構(gòu)且共享網(wǎng)絡(luò)參數(shù)的網(wǎng)絡(luò)模型,并經(jīng)過不斷的發(fā)展,逐漸被應(yīng)用到圖像匹配、分類等領(lǐng)域。孿生神經(jīng)網(wǎng)絡(luò)的目標(biāo)是尋找兩個(gè)可比較對(duì)象的相似程度(例如,簽名驗(yàn)證、人臉和指紋識(shí)別等)。
在目標(biāo)跟蹤中,該網(wǎng)絡(luò)有兩個(gè)相同的子網(wǎng)絡(luò),并且這兩個(gè)子網(wǎng)絡(luò)有相同的參數(shù)和權(quán)重[6]。孿生網(wǎng)絡(luò)中間隱含層為傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò),不同的是一個(gè)孿生網(wǎng)絡(luò)通常包含兩個(gè)甚至多個(gè)輸入,每個(gè)網(wǎng)絡(luò)分支的參數(shù)共享,通過對(duì)輸出相似度對(duì)比函數(shù)的學(xué)習(xí),進(jìn)而比較各分支輸入樣本的相似度,最終得到的是一個(gè)得分圖,進(jìn)而確定目標(biāo)位置。其跟蹤框架如圖1所示。相比于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的單輸入特性,多輸入的孿生網(wǎng)絡(luò)能代入一定的先驗(yàn)信息,即能夠?qū)⒏嗟奶卣餍畔⒋敫櫰?,使得?xùn)練模型的小型化得以實(shí)現(xiàn)。
圖1 基于孿生網(wǎng)絡(luò)目標(biāo)跟蹤框架
圖中*代表相關(guān)性計(jì)算,φ代表簡(jiǎn)化的卷積神經(jīng)網(wǎng)絡(luò),結(jié)構(gòu)與AlexNet類似[7],不過只有卷積層與池化層,沒有最后的全連接層,其結(jié)構(gòu)如表1所示。
表1 網(wǎng)絡(luò)結(jié)構(gòu)
其中池化層采用max-pooling的方法,除第五層外,每個(gè)卷積層后都連有非線性激活層,同時(shí)在訓(xùn)練時(shí)對(duì)每個(gè)激活層進(jìn)行批標(biāo)準(zhǔn)化,以降低訓(xùn)練過程中的過擬合[8-9]。該算法雖能較為準(zhǔn)確地確定目標(biāo)位置,但由于采用的是軸對(duì)齊跟蹤框,在目標(biāo)視角發(fā)生變化則會(huì)引入一定的背景信息。
文中采用實(shí)時(shí)在線目標(biāo)分割與目標(biāo)跟蹤統(tǒng)一架構(gòu)(SiamMask)[10]來解決因目標(biāo)旋轉(zhuǎn)變化所帶來的跟蹤精度下降的問題。SiamMask算法基于全卷積孿生網(wǎng)絡(luò)架構(gòu),通過在原有損失函數(shù)的基礎(chǔ)上增加對(duì)目標(biāo)分割損失的計(jì)算,即對(duì)傳統(tǒng)孿生網(wǎng)絡(luò)的離線訓(xùn)練過程進(jìn)行改進(jìn)。該算法的基本框架[11]如圖2所示。
與傳統(tǒng)孿生網(wǎng)絡(luò)不同的是,該算法中*d是對(duì)圖像經(jīng)神經(jīng)網(wǎng)絡(luò)得到的特征進(jìn)行逐通道的相關(guān)性計(jì)算,所以保證了響應(yīng)的通道數(shù)不變[12],得到的響應(yīng)值稱為RoW(response of candidate window),然后在該響應(yīng)的基礎(chǔ)上得到了分割mask和分類score兩個(gè)分支。
圖2 SiamMask算法目標(biāo)跟蹤框架
由于每個(gè)Row最終生成的mask是一個(gè)63*63的向量,因此最終得到的分割結(jié)果的圖像較原圖的尺寸會(huì)小很多,因此該算法在輸出結(jié)果的基礎(chǔ)上加入了如圖3所示的上采樣過程,最終得到了127*127的mask圖像,進(jìn)而取得了更加精細(xì)的分割結(jié)果。
圖3 mask圖像上采樣
該方法使用具有可學(xué)習(xí)參數(shù)φ的簡(jiǎn)單的兩層神經(jīng)網(wǎng)絡(luò)hφ對(duì)每個(gè)RoW預(yù)測(cè)w×h二元掩模(Mask)[13]。令mn表示對(duì)應(yīng)于第n個(gè)RoW的預(yù)測(cè)mask,則可表示為:
(1)
gθ(z,x)=fθ(z)*fθ(x)
(2)
其中,x和z分別表示待搜索區(qū)域以及目標(biāo)模板,gθ(z,x)為響應(yīng)值,經(jīng)計(jì)算響應(yīng)值最大的部分即為預(yù)測(cè)的目標(biāo)位置。
由上式可知,最后生成的mask是待分割圖像x和目標(biāo)圖像z的一個(gè)函數(shù),因此可以看成是用z去指導(dǎo)完成x上的分割。而最終跟蹤結(jié)果的邊界框則根據(jù)分割所得結(jié)果的最小外接矩形繪制,故可以根據(jù)目標(biāo)的外觀做出最佳預(yù)測(cè)。
對(duì)于模型的訓(xùn)練采取端到端的方式,兩個(gè)分支同時(shí)進(jìn)行訓(xùn)練,即根據(jù)每一對(duì)訓(xùn)練樣本都應(yīng)給出每個(gè)分支的標(biāo)簽,分割對(duì)應(yīng)的損失函數(shù)[14]為:
(3)
分類分支對(duì)應(yīng)損失函數(shù)為:
lscore=log(1+exp(-ynv))
(4)
即采用邏輯損失函數(shù)的方式,v為圖1中最終輸出得分圖中每點(diǎn)的真實(shí)值,yn=±1為該點(diǎn)對(duì)應(yīng)標(biāo)簽。而得分圖中整體損失函數(shù)為所有點(diǎn)損失函數(shù)的均值:
(5)
其中,u∈D表示該點(diǎn)在score map中的位置,最終可以得到該模型整體的損失函數(shù):
L2B=λ1·Lmask+λ2·Lscore
(6)
其中,L2B表示模型整體的損失函數(shù),Lscore為分類的損失函數(shù)。該算法令λ1=32,λ2=1,如果預(yù)測(cè)與真實(shí)的回歸框有至少0.6IOU(intersection-over-union,交并比)則是正例,否則是負(fù)例[15]。
網(wǎng)絡(luò)訓(xùn)練所用數(shù)據(jù)集來自ILSVRC(ImageNet large scale visual recognition challenge)競(jìng)賽中用于視頻目標(biāo)檢測(cè)的ImageNet視頻集[16],這個(gè)數(shù)據(jù)集共有4 500個(gè)視頻,其中也包含大量的艦船目標(biāo)的視頻,通過對(duì)這些視頻的訓(xùn)練能夠有效提升跟蹤器中孿生網(wǎng)絡(luò)的判別能力。
實(shí)驗(yàn)環(huán)境如表2所示。
表2 實(shí)驗(yàn)環(huán)境
分別采用傳統(tǒng)基于孿生網(wǎng)絡(luò)(SiameseNet)跟蹤算法[17]以及文中的結(jié)合分割策略的(SiamMask)跟蹤算法在同一圖像測(cè)試集上進(jìn)行實(shí)驗(yàn),以艦船模型為跟蹤目標(biāo)進(jìn)行跟蹤效果對(duì)比,結(jié)果如圖4所示。
可以看出傳統(tǒng)跟蹤算法的跟蹤框(圖中正矩形)在包含目標(biāo)的同時(shí)不可避免地引入了大量背景信息,而文中算法能夠根據(jù)分割結(jié)果自適應(yīng)地調(diào)整跟蹤框(圖中斜矩形)的角度與位置,充分減少了背景信息的干擾。
圖4 艦船模型跟蹤效果對(duì)比
為定量分析算法的實(shí)驗(yàn)效果,傳統(tǒng)評(píng)估跟蹤效果方法計(jì)算預(yù)測(cè)框與標(biāo)準(zhǔn)框的重疊率,但由于文中算法與傳統(tǒng)算法的標(biāo)注方式不同,即采用非軸對(duì)稱框的標(biāo)注方式,使得算法的重疊率指標(biāo)不具有可比性。因此通過計(jì)算對(duì)比SiamMask算法、SiameseNet算法以及經(jīng)典檢測(cè)跟蹤算法KCF[18]的中心誤差,并繪制中心誤差曲線[19]來反映算法的跟蹤精度。
所謂中心誤差即算法對(duì)于目標(biāo)中心像素的預(yù)測(cè)值與標(biāo)準(zhǔn)值的偏差。對(duì)采集的十組包含艦船模型的視頻進(jìn)行逐幀標(biāo)注,將各算法在這十個(gè)序列的測(cè)試所得中心誤差的平均值繪制成曲線,如圖5所示,曲線上的點(diǎn)代表跟蹤預(yù)測(cè)結(jié)果小于誤差閾值的幀數(shù)占視頻總幀數(shù)的百分比。
圖5 平均中心誤差
由實(shí)驗(yàn)結(jié)果可知,SiamMask算法的跟蹤效果更好,其平均跟蹤成功率較SiameseNet以及KCF算法分別提升了19.5%和24.5%。選擇了其中艦船目標(biāo)旋轉(zhuǎn)變化較明顯的一個(gè)視頻序列,對(duì)每一幀的中心誤差分析,如圖6所示。
(a)中心誤差
(b)成功率
可以看出,當(dāng)目標(biāo)視角發(fā)生變化時(shí),文中算法較其他算法的中心誤差增量更小,跟蹤成功率更高。與此同時(shí),算法在GPU加速的情況下其運(yùn)行速度可達(dá)30 fps,可以較好地滿足實(shí)時(shí)性要求。
傳統(tǒng)跟蹤方法在目標(biāo)發(fā)生外觀變化,尤其是旋轉(zhuǎn)變化時(shí),其跟蹤精度明顯下降。而SiamMask算法從目標(biāo)的Mask獲得旋轉(zhuǎn)邊界框的策略比簡(jiǎn)單地提供軸對(duì)齊邊界框有顯著的優(yōu)勢(shì)。通過對(duì)比SiamMask算法、SiameseNet以及KCF算法在標(biāo)注好的包含艦船目標(biāo)的圖像序列上的測(cè)試結(jié)果,進(jìn)一步驗(yàn)證了該算法的突出性能,能夠較好地滿足艦船目標(biāo)跟蹤的準(zhǔn)確性和實(shí)時(shí)性,具有較高的應(yīng)用價(jià)值。