李大維,莫 波,高 可,王新春
(1.北京理工大學宇航學院,北京 100081;2.北京信息科技大學自動化學院,北京 100192)
在各種精確制導體系中,紅外成像制導除了制導精度高,抗干擾能力強,效費比高等優點,還擁有其獨特的優點,能在惡劣的觀測條件和黑夜中探測到目標的特征。隨著紅外成像技術和彈載計算機性能的發展,具備自主識別目標能力的紅外成像制導技術開始發展。
在紅外成像制導中,當彈目距離較大時,目標在視場中占的像素很少,根據國際光學工程學會(SPIE)對紅外弱小目標的定義,對于大小為256×256像素的圖像,成像尺寸小于總像素數的0.12%(即小于9×9像素)的目標為紅外弱小目標[1]。據此,定義大小在10×10~30×30像素范圍的目標為紅外小目標。雖然目前對于紅外弱小目標的研究文獻很多[2-8],但是由于紅外弱小目標太小,在圖像中僅為一個亮點,基本沒有目標的紋理信息,因此不適合自主識別。對于邊長在10~30像素的紅外小目標,目前的研究比較空白,但是紅外小目標包含目標的紋理信息,具有一定的辨識度,是本文研究的重點。
由于紅外小目標較小,只有少量的目標紋理信息,容易受到快速運動、背景、噪聲、拖尾等因素的干擾,對檢測與跟蹤算法的精度與魯棒性要求很高。除此之外,由于彈載平臺的特殊性,導彈搭載的計算機平臺受空間、供電、散熱等限制,只能使用體積小、功耗低、發熱小的計算性能有限的嵌入式平臺,因此算法的計算速度至關重要。
調研目標檢測與跟蹤領域,目前的一些目標檢測主流算法,如使用深度卷積神經網絡的SSD[9]以及yolov3[10],對于紅外小目標的檢測效果不理想,漏檢率較高,主要是因為這兩種算法是針對Pascal VOC[11]等通用測試集設計的,并未重點強調對于小目標的檢測效果。目前一些主流的目標跟蹤算法,例如使用深度CNN特征的MDNet[12]和ECO[13],這類算法的精度高,但是算法速度較慢。還有基于相關濾波方法的KCF[14]與DSST[15],算法速度較快,但是由于搜索框和邊界效應的缺陷,對快速運動、干擾較大的紅外小目標的跟蹤效果不好,容易出現漂移和跟蹤失敗的情況。由于沒有跟蹤失敗監測機制,這兩類方法無法處理遮擋和短暫出視場的情況。針對長時跟蹤的TLD[16]算法,使用跟蹤、學習、檢測的組合機制,可以根據跟蹤結果在線學習檢測器,跟蹤失敗時可以重檢測找回目標,但是由于TLD的跟蹤模塊使用光流法,快速運動、光照變化時容易漂移導致跟蹤失敗,而且檢測模塊的訓練樣本是實時獲取的,如果跟蹤模塊效果不好,會導致檢測器模型無法獲得好的訓練,進而造成重檢測精度變差,且該算法復雜度高,不適合移植到彈載平臺上。
本文針對彈載平臺上紅外小目標的特性,提出了一種單目標檢測與跟蹤算法,該算法能從畫面中自動檢測出指定類型的目標,并進行跟蹤。檢測部分,使用多塊LBP特征級聯檢測器(MB_LBP+AdaBoost)進行粗檢測,引入置信度和管道濾波器對檢測結果進行篩除,如果連續幾幀內檢測結果可靠且穩定,則認為檢測到了目標,然后使用檢測結果初始化目標跟蹤模塊。對于目標跟蹤,采用基于在線更新模型策略和模板匹配的目標跟蹤算法,使用了余弦懲罰系數穩定跟蹤結果,引入多尺度搜索解決尺度變化,以及失敗監測機制,可以監測跟蹤狀態并控制模型的更新策略,如果檢測到失敗,可以重新調用目標檢測算法找回目標。通過在彈載平臺上的測試與分析,設計的算法在離線訓練之后,對指定類型紅外小目標的檢測和跟蹤效果較好,計算速度快,證明了算法的有效性,為彈載平臺上紅外小目標的檢測與跟蹤提供了更簡潔的解決思路。
本文算法目標檢測部分的流程框架如圖1所示。紅外圖像首先經過MB_LBP+AdaBoost級聯檢測器進行粗檢測,得到多個候選框,然后計算每個候選框與目標模型的相似度,然后選擇最高相似度分數和對應的候選框作為當前幀的置信度和檢測結果,最后使用管道濾波器判斷最近幾幀內的檢測結果是否穩定可靠,如果穩定可靠則轉入目標跟蹤。

圖1 目標檢測流程圖
MB_LBP全稱是多塊LBP特征,它具有旋轉和灰度不變形及計算簡單的優點,該特征在視覺檢測和分類上使用廣泛。AdaBoost[17]迭代算法,其核心思想是針對一個數據集訓練多個弱分類器,然后集合成強分類器。MB_LBP+AdaBoost全稱是多塊LBP特征級聯檢測器,該算法被廣泛被應用于人臉識別等應用[18-19],具有檢測速度快、訓練簡單、模型小的特點,適合計算性能有限的彈載平臺。
算法使用包含目標正負樣本的數據集進行訓練,使用MB_LBP特征和Adaboost算法挑選多種MB_LBP特征構建數個弱分類器,再由多個弱分類器組合成為多層強分類器,多層強分類器組成一個級聯檢測器,具體檢測流程如圖2所示。

圖2 級聯檢測器檢測流程圖
對于級聯檢測器的訓練,使用紅外相機采集的數千張11×11像素分辨率的“十字”紅外模擬靶標的圖片構成正樣本庫,數千張不包含目標且尺寸不小于11×11像素分辨率的圖片構成負樣本庫,并且加入了隨機翻轉與旋轉,隨機gamma調節等數據增強,以增加模型對旋轉和光照變化的泛化能力。使用opencv計算機視覺庫中的opencv_traincascade函數,選用MB_LBP特征進行了訓練,訓練出的模型由9層強分類器級聯而成,可以粗略檢測圖像中的目標,最小能檢測出11×11像素大小的目標。
紅外圖像經過訓練好的MB_LBP+AdaBoost級聯檢測器模型檢測之后,一般會產生10~20個檢測框,其中包含大量的誤檢和重疊的框,因此提出一種過濾機制,對每個候選框與圖3所示的“十字”目標模板進行對比,計算得到相似度分數,然后挑選最高分篩選目標檢測框。

圖3 “十字”目標模板
對于第i個候選框,其包含的圖塊是Ii,先把模板圖縮放到與待檢圖塊Ii同樣的大小得到圖塊T,然后使用歸一化相關性系數方法計算Ii和T的相似度分數Fi,計算公式:
(1)
式中:(x,y)和(x′,y′)是坐標,T(x,y)和Ii(x,y)是模板圖T與待檢圖塊Ii在點(x,y)處的像素值,w和h是圖像的像素寬度和高度。當前幀的檢測置信度分數Sk取相似度分數Fi的最大值,然后根據最大相似度分數從候選框中選出最優檢測框。
管道濾波器分為三步:
步驟1:判斷當前幀的檢測結果是否可靠,如果置信度分數Sk大于等于閾值(設定為0.6),則可靠,小于則不可靠。
步驟2:判斷當前幀的檢測結果是否穩定,計算當前幀目標定位框的中心坐標(Xk,Yk)和上一幀中心坐標(Xk-1,Yk-1)的距離dk,如果距離dk小于閾值(設定為當前幀目標定位框的邊長的4倍),則認為穩定,如果距離大于等于閾值則不穩定。
步驟3:判斷最近5幀內的檢測結果是否有3次以上穩定且可靠,如果有,則認為當前幀的檢測結果極大可能為正確的目標,然后用該檢測框初始化目標跟蹤模型,算法轉入目標跟蹤。
目標跟蹤算法的主要流程如圖4所示,算法根據在線學習的目標模型,在上一幀目標中心位置的領域內,從三個尺度分別進行搜索,根據其響應圖得到的置信度分數,挑選出最優的尺度,然后進入跟蹤失敗監測環節,根據監測結果控制后續操作。

圖4 目標跟蹤流程圖
目標跟蹤置信度的產生基于模板匹配算法,在上一幀目標中心的鄰域內進行滑窗,搜索框的邊長設為上一幀目標框邊長的4.5倍,對于每個位置的窗口計算其中包含的圖塊與目標模型的相似度,如圖5所示,遍歷搜索區域生成響應圖,圖中最大值的坐標,就是目標相對于上一幀的位移,從而實現目標的定位。響應圖中的最大響應值就是當前幀的跟蹤置信度Pk。

圖5 響應圖計算示意圖
響應圖的計算使用余弦懲罰系數加權的歸一化相關性系數計算得到,即:
(2)
(3)
式中:wR和hR是響應圖的像素寬度和高度,(x,y)和(x′,y′)是坐標,R(x,y)是響應圖在點(x,y)處的響應值,d(x,y)是點(x,y)到搜索區域中心的距離,C(x,y)是點(x,y)處的余弦懲罰系數,M(x,y)和I(x,y)是目標模型與搜索區域的圖像在點(x,y)處的像素值,w和h是目標模型的像素寬度和高度。
基于下一幀目標運動到離中心較遠的邊界處可能性較小的假設,使用余弦懲罰系數來懲罰遠離搜索區域中心處的窗口的響應值,余弦懲罰系數的范圍為0.85~1,在距離中心最遠的邊界處懲罰系數為0.85,中心處懲罰系數為1。該策略可有效防止跟蹤框的抖動,消除邊界處的誤檢,抑制長時跟蹤下的漂移現象,能增加跟蹤算法的穩定性。
為了增加跟蹤器對目標尺度變化的適應能力,增加了多尺度搜索策略,把模型M縮小1.05倍作為小尺度搜索得到置信度P1,保持模型大小不變,作為原尺度搜索得到置信度P2,把模型M擴大1.05倍作為大尺度搜索得到置信度P3,然后經過式(4),使用尺度懲罰系數γ=0.95對非原尺度置信度進行懲罰,得到最終置信度P,并挑選最優尺度。
(4)
為了解決跟蹤算法面對目標被遮擋,漂移,丟失的情況,引入了根據跟蹤置信度的跟蹤失敗監測機制,如式(5)所示,使用跟蹤置信度P控制在線模型的更新以及監測跟蹤狀態,如果跟蹤置信度過低(P<0.65),則不更新模型,防止模型被不好的檢測結果所污染,如果檢測到模型已經連續數幀(設定為連續10幀)沒有更新,則認為目標跟蹤已經失敗,會重新調用目標檢測找回目標。
(5)
式中:Mnew是更新后的模型圖,Mcur是當前幀的目標圖,Mold是前一幀的模型圖,通過縮放與目標圖Mcur保持同樣尺寸,模型的學習率λ設為0.05。
仿真校驗主要分為三部分,分別對目標檢測部分、目標跟蹤部分、算法運行速度進行了測試。測試中使用的視頻序列是使用分辨率為640×512像素,采樣頻率為50 Hz的非制冷紅外相機采集,拍攝了不同場景下“十字”紅外模擬靶標的多個序列。
為了評估算法的性能,提出了兩個評價指標,中心位置誤差Derror和重合率Orate,計算公式如下:
(6)

為了測試檢測性能,采集了一段長度為200幀的序列Detect1,序列中的“十字”紅外模擬靶標的大小約為32×32像素。為了得到目標檢測算法對于不同像素大小的目標的檢測能力,使用0.25~1的縮放系數,把原本32×32像素大小目標的序列Detect1中分別縮放到了25個不同的尺度,得到了25個目標尺寸從8×8像素遞增到32×32像素的子序列。
目標檢測算法部分在測試時,只進行檢測不轉入跟蹤,得到目標的定位框之后,然后統計算法在各個尺度下對于不同像素大小的目標的檢測結果,通過與視頻序列中目標真實位置的標注信息進行對比,得到每一幀的中心位置誤差和重合率,基于這兩個數據,提出兩個評價目標檢測精度的指標:中心位置誤差精度指標和重合率精度指標。
中心位置誤差精度指標計算算法得到的目標定位框與目標真實定位框的中心位置誤差Derror,然后統計序列中所有中心位置誤差小于閾值(設定為當前幀中真實目標最大邊長的1/2)幀序列的百分比,定義為檢測算法對當前序列的中心位置誤差精度。
重合率精度指標計算算法得到的目標定位框和目標真實定位框的重合率Orate,然后統計序列中所有重合率大于給定閾值(設定為0.6,即與真實定位框重合度大于60%)的幀序列的百分比,定義為檢測算法對當前序列的重合率精度。
通過在AM5728嵌入式彈載平臺上運行本文的目標檢測算法,對視頻序列Detect1的25個子序列分別進行目標檢測,使用中心位置誤差精度指標和重合率精度指標統計檢測結果,得到了圖6所示的檢測精度圖,圖7為在11像素、24像素、32像素邊長下的部分檢測結果圖。

圖6 目標檢測精度圖

圖7 檢測結果圖
從圖6可以看出,本文算法中的目標檢測部分對于不同像素大小的目標的檢測精度,算法的檢測精度在8~11像素大小區間快速上升,在11像素處達到0.7的精度,說明算法的最小有效檢測目標大小是11×11像素,這與MB_LBP+AdaBoost級聯檢測器使用的11×11大小的訓練模型直接相關。在12~26像素大小區間,算法的檢測精度緩慢上升之后保持在較高的精度,在27~32像素區間,算法的精度開始緩慢下降,但是仍然保持在可接受范圍內。總體來看,若取檢測精度閾值為0.7,本文的檢測算法對于邊長11~31像素大小的指定類型的目標有較好的檢測效果。除此之外,如圖8所示,在其他多個場景下也進行了測試,算法的檢測效果穩定。綜上所述,本文檢測算法能滿足對于紅外小目標(10~30像素)的檢測性能的需求。

圖8 其他場景檢測結果圖
對于目標跟蹤,主要有以下難點:尺度變化、快速運動、形變、旋轉、遮擋、丟失、運動模糊、噪聲干擾等。這些因素會對跟蹤算法的性能造成不同的影響,為了檢驗本文算法的跟蹤性能,采集了兩組序列Scale與Occlusion。
Scale序列長728幀,隨著目標由近到遠,尺度由大變小,在480~490幀和590~600幀有較大幅度的快速移動,期間出現了運動模糊與拖尾。
Occlusion序列長489幀,場景較復雜,43~73幀包含一次大角度的旋轉,本序列還包含3次不同程度上的遮擋,170~195幀有一次中等長度的部分遮擋,238~246幀有一次短暫的完全遮擋,318~390幀有一次長時間的完全遮擋。
選擇了目標跟蹤領域兩個主流算法KCF和ECO與其進行對比。KCF是相關濾波算法的主要代表,使用循環矩陣和核方法加速了計算,兼顧跟蹤精度與速度,ECO算法使用深度CNN特征,性能優異,在VOT2017[20]中取得了冠軍。對于算法的初始化,首先使用本文算法進行檢測,得到第一幀的目標定位框,然后使用該定位框初始化本文算法的跟蹤器和KCF與ECO。基于中心位置誤差Derror和重合率Orate,提出了中心位置誤差閾值精度和重合率閾值成功率兩個指標評估跟蹤性能。
中心位置誤差閾值精度指標計算算法估計的目標定位框與人工標注的目標定位框的中心位置誤差,然后分別統計中心位置誤差小于給定的不同閾值的視頻幀的百分比,定義為對應閾值下算法的中心位置誤差閾值精度,可衡量算法的定位精度。
重合率閾值成功率指標計算算法估計的目標定位框與人工標記目標定位框的重合率,然后分別統計重合率大于給定的不同的閾值的視頻幀的百分比,定義為對應閾值下的算法的重合率成功率,可衡量算法的目標定位框的精確度。
1)序列Scale的跟蹤結果
序列Scale中的部分跟蹤結果如圖9所示,圖10是序列中的跟蹤結果統計圖。

圖9 序列Scale的跟蹤結果圖
從中心位置誤差圖可以看出,本文算法和KCF及ECO算法在前480幀對于目標的跟蹤定位精度都很高,但是480~490幀出現快速運動之后,KCF算法出現短暫的跟蹤失敗,本文方法與ECO未受影響。在590~600幀出現大幅度快速運動時,KCF和ECO算法都跟蹤失敗了,并且未能重新找回。跟蹤失敗的原因是圖像出現了很大程度的運動模糊和拖尾現象,如圖9中的 593幀,目標的外形變化較大,從而導致KCF和ECO算法的模型受到了污染,以及目標運動幅度過大,而KCF和ECO的搜索區域有限,最終導致跟蹤失敗。本文方法在短暫丟失幾幀之后重新找回了目標(未調用重檢測),這是因為本文方法有跟蹤置信度機制,在出現目標外形被污染的情況下,跟蹤置信度較低時控制模型不更新,這阻止了模型被污染,當恢復正常時就能重新鎖定目標。從重合率圖和圖9中的379幀可以看出ECO算法的定位框與真實框的重合率略高于本文方法,大于KCF算法。這是因為KCF算法是固定尺度,目標框的大小在跟蹤過程中不會發生變化,這導致KCF的重合率隨著目標變小而降低,而本文方法相對于ECO算法,搜索的尺度較少,僅3個尺度,所以本文方法的重合率略低于ECO算法。從精度圖和成功率圖可以看出,在Scale序列上,如果選擇比較嚴苛的中心位置誤差閾值和重合率閾值,本文方法的定位精度和目標框的精準度略低于ECO算法,但是綜合性能優于ECO算法,KCF的性能表現較差。
綜上所述,在尺度變化、快速運動、運動模糊、拖尾等因素干擾下,本文算法的跟蹤性能良好。
2)序列Occlusion的跟蹤結果
序列Occlusion中的部分跟蹤結果如圖11所示,圖12是序列的跟蹤結果統計圖。

圖11 序列Occlusion的跟蹤結果圖
從圖11中的第60幀圖可以看出,目標的旋轉對本文算法與對比算法都沒有造成影響,跟蹤情況都不錯,這說明本文算法能應對一定程度上的目標旋轉。從圖12中的重合率圖可以看出,主要有三段較大的波動,這三次波動對應三次目標遮擋,第一次遮擋發生在 170~195幀,如圖11中的第183幀圖所示,目標被部分遮擋,遮擋過程中只有ECO的跟蹤情況較好。KCF的模型被污染了,完全跟蹤失敗。而本文方法在遮擋過程中暫時跟蹤失敗,如圖11中的第203幀所示,算法很快重新找回了目標。第二次遮擋發生在238~246幀,比較短暫,ECO算法和本文算法未受到太大影響。第三次遮擋發生在318~390幀,這次遮擋較長,目標被完全遮擋。遮擋過程中ECO和本文算法均跟蹤失敗了,但短時間后,本文算法檢測到跟蹤失敗,重新調用了目標檢測,如圖11中的367和388幀圖,圖中的黑色虛線框即為目標檢測的結果,在388幀時,目標剛剛從遮擋中恢復,本文的目標檢測算法就成功檢測到了目標,隨后在第393幀成功鎖定目標并轉回跟蹤狀態。從圖12中的精度圖和成功率圖可以看出,在序列Occlusion上,本文算法的精度和成功率優于ECO算法,KCF的效果較差。

圖12 序列Occlusion的跟蹤結果統計圖
綜上所述,本文算法能應對一定程度的目標旋轉,對于不同程度的遮擋有魯棒性,即使在長時間全遮擋的情況下,算法也能調用重檢測找回目標。
速度測試使用的平臺是搭載在紅外導引頭上的AM5728平臺,核心配置CPU:Arm Cortex A15 1.5 GHz雙核、RAM:4G,及一臺配置CPU:i7-8700k、GPU:GTX-1070、RAM:16GB的臺式機。
本文的檢測算法部分在AM5728平臺上速度為12幀/s,臺式機為60幀/s。因為檢測算法僅用于跟蹤的初始化,對于運行速度的要求不高,12幀/s可以滿足檢測速度的需求。本文的跟蹤算法部分在AM5728平臺上速度為50幀/s,與紅外攝像頭的采樣頻率50 Hz保持一致,在臺式機平臺平均480幀/s。
對比算法KCF移植到AM5728彈載平臺上,速度15幀/s,臺式機上180幀/s。ECO算法使用MATLAB R2017b運行在臺式機上,速度為8幀/s。
綜上所述,本文算法在運行速度上比KCF與ECO算法快很多,能在彈載平臺上實時運行。
本文針對彈載平臺上紅外小目標的圖像檢測與跟蹤,提出了一種單目標檢測與跟蹤算法,檢測模塊在MB_LBP+AdaBoost級聯檢測器的基礎上加入了置信度和管道濾波器,可實現對指定類型紅外小目標的檢測,并在穩定檢測到目標后轉入跟蹤。跟蹤模塊基于模板匹配算法,使用余弦懲罰系數優化跟蹤效果,加入多尺度搜索適應目標的尺度變化,引入了跟蹤失敗監測機制,監測跟蹤狀態以及控制模型的更新,可在跟蹤失敗后重新調用檢測找回目標。通過仿真驗證,與主流算法進行對比,本文方法在離線訓練之后,對于邊長11~31像素大小的指定類型的紅外小目標有較好的檢測效果,在采集的多個視頻序列上,跟蹤精度、成功率和速度優于主流算法KCF和ECO,并且能實時運行在AM5728彈載平臺上,同時滿足了精度和速度的需求。