鐘立軍,于起峰,周頡鑫,郭鵬宇,黃 維
(1. 國防科技大學 空天科學學院, 湖南 長沙 410073;2. 軍事科學院 國防科技創(chuàng)新研究院, 北京 100071; 3.中國人民解放軍95975部隊, 甘肅 酒泉 732750)
目前靶場測量方式主要以光學測量為主,基本實現(xiàn)數(shù)字圖像實時采集和存儲,且已具備實時輸出圖像和視頻的能力[1]。但對光測圖像的利用主要為景象監(jiān)視和事后判讀處理,未能充分利用圖像豐富的信息。而實現(xiàn)圖像判讀及交會處理的實時化,滿足實時控制的需求,對充分利用光測圖像非接觸、目標信息豐富的特點,提高光學測量在靶場測控的地位有重要在意義,必將成為靶場光測發(fā)展的關(guān)鍵方向之一。與事后處理相比,實時處理具有以下優(yōu)點[2]:①指控人員可根據(jù)實測結(jié)果實時調(diào)整試驗方案,使試驗任務(wù)更加靈活;②實時獲取的數(shù)據(jù)為安控系統(tǒng)提供預警信息,便于突發(fā)情況的及時處理;③大幅提高工作效率,使試驗與分析同步進行,無須事后集中處理數(shù)據(jù)。
因為需要進行交會解算或單目多點解算,靶場判讀與通常所說的目標跟蹤不同,不要求準確給出目標框的位置以及適用目標的大小、姿態(tài)變化,而需要準確給出目標同名點位置。其一般過程是由用戶手動選擇判讀點,然后由算法以該點作為跟蹤目標,在后續(xù)幀上精確定位該點,一般為飛機頭部、導彈尾部或者其他同名點等。其難點問題主要有以下幾個方面:一是目標情況復雜多變,比如對于導彈而言,存在有火焰和無火焰兩種情況,且形狀變化大;二是由目標位姿及觀測視角變化引起的目標可見部分不一致;三是跟蹤過程中目標高速運動會導致圖像模糊;四是經(jīng)緯儀跟蹤時會出現(xiàn)隨機抖動,導致目標在圖像上產(chǎn)生無規(guī)律的較大位移甚至跳出視場范圍。因此,目前在靶場很難實現(xiàn)自動跟蹤,需要大量的人工干預,一般以0.1 s的間隔來進行判讀及數(shù)據(jù)處理,使光測信息不能得到有效利用。
當前比較流行的跟蹤方法有Struck、跟蹤學習檢測算法(Tracking-Learning-Detection, TLD)、 DSST、C-COT、ECO、CREST[3-8]等,都以準確地給出目標的區(qū)域作為評價準則,同時盡可能適用目標的縮放、旋轉(zhuǎn)變化。但這類方法無法準確定位用戶指定的特征點,且算法復雜,跟蹤速度較慢,不適用于靶場目標實時判讀。
基于光流的方法[9]能夠通過同名點匹配進行定位,但是靶場圖像大多數(shù)為天空背景,紋理弱,使得光流特性不明顯,且原始的光流類方法無法適用目標幀間的大幅度運動;而基于金字塔光流的方法運算量大,無法滿足實時性要求。
核相關(guān)濾波算法(Kernelation Correlation Filter, KCF)[10]是一種判別式的跟蹤方法,利用目標周圍區(qū)域的循環(huán)矩陣采集正負樣本,使用脊回歸訓練目標檢測器,運算速度快,能滿足實時性要求。但在無法預測下幀目標位置時只能基于當前位置進行搜索,在目標大幅度的運動下將會丟失目標。
基于模板相關(guān)的方法是比較常用的用于特征點跟蹤的方法,以特征點為中心生成模板,在后續(xù)圖像上逐像素進行匹配,找到相似性最大的區(qū)域作為跟蹤結(jié)果。其存在搜索范圍與時間性能之間的矛盾:搜索范圍越大,耗時越長,且對于弱紋理目標,容易產(chǎn)生匹配錯誤;而搜索范圍較小時,無法應(yīng)對目標大幅度運動的情況。
由此可知,經(jīng)緯儀抖動引起的大幅度位移,會額外增加算法的運算開銷,甚至導致跟蹤失敗,因此,研究如何高效地應(yīng)對由經(jīng)緯儀抖動引起的跟蹤困難具有重要的意義。本文在分析經(jīng)緯儀綜合角度規(guī)律的基礎(chǔ)上,給出一種結(jié)合位置預測和KCF的改進TLD跟蹤框架。由位置預測準確給出KCF的跟蹤區(qū)域,在此區(qū)域內(nèi)進行跟蹤。在目標運動速度不發(fā)生突變的情況下,可以準確預測目標位置以及目標是否在視場內(nèi),使KCF能夠快速準確地跟蹤目標。在跟蹤失敗時,采用TLD框架中的檢測算法進行檢測,同時完成目標特征學習。
1.1.1 TLD框架
1.1.2 TLD用于實時判讀存在的問題
TLD框架在事后長時跟蹤上取得了不錯的效果,但將其用于實時跟蹤時存在以下問題:
1)跟蹤采用的金字塔光流法運算量比較大,而檢測采用全場逐像素檢測的方式同樣比較耗時,無法滿足實時性的要求;
2)由于目標及背景紋理都比較弱,基于光流的方法跟蹤效果不太好;
3)基于全圖逐區(qū)域檢測的方法比較耗時,尤其在目標在圖像中占比比較小時,比較浪費計算資源;
4)原始的TLD算法同時進行跟蹤和檢測,其跟蹤結(jié)果可信度高,全場檢測的意義不大,同樣會造成資源浪費。
1.1.3 改進的框架
圖1 TLD在線跟蹤流程圖Fig.1 Flow chart of TLD online tracking
圖2 改進后的TLD在線跟蹤流程圖Fig.2 Flow chart of improved TLD online tracking
1.2.1 觀測模型
靶場經(jīng)緯儀在跟蹤時會記錄相機光軸的角度信息(即原始角度),包括方位角和高低角。本文所說的抖動指的就是原始角度的突變。而基于相機內(nèi)參數(shù)、目標在圖像上的偏移及原始角度,可以得到光心到目標的指向角,即綜合角度。如圖3所示,O同時表示坐標系原點和經(jīng)緯儀的光心,T為目標,OA為光軸,∠xOC為原始方位角,∠AOC為原始高低角,∠xOD為綜合方位角,∠TOD為綜合高低角。綜合方位角和綜合高低角統(tǒng)稱為綜合角度。由于目標運動規(guī)律不可能在短時間內(nèi)產(chǎn)生突變,因此綜合角度同樣不會產(chǎn)生突變,這也是本文預測算法的基礎(chǔ)。
圖3 靶場坐標系及角度示意圖Fig.3 Coordinate System and attitude angle definition schematic
以單相機觀測為例說明本文預測算法的應(yīng)用場景,如圖4所示,由于導彈等目標一般會有預定軌道,可以認為目標短時間內(nèi)在一個平面內(nèi)沿某曲線S運動,直線L為目標運動軌跡在地面上的投影,S和L共面。相機部署在目標運動軌跡的一側(cè),T為目標,C表示經(jīng)緯儀光心,E為T在L上的垂直投影,E為垂足,CE(即d)表示C到L的垂直距離,h為目標垂直高度,ED(即l)表示目標投影到E的距離。
圖4 單相機觀測示意圖Fig.4 Single camera observation schematic
1.2.2 預測模型
定義角度α和β分別為
α=arctan(l/d)
(1)
(2)
由上述定義可知α和綜合方位角∠xOD只存在一個固定差值,而β=∠TOD,因此兩者變化規(guī)律一致,可以由綜合角度的規(guī)律分析α和β的變化規(guī)律。若h、l、d已知或者有較精確值,也可以由α和β來準確分析綜合角度的變化規(guī)律。對式(1)求導得
(3)
式中Δl=vt為兩幀之間目標水平方向位移量,t為兩幀之間的時間間隔,可以由設(shè)定速度與拍攝頻率得到初始值。以目標速度300 m/s、拍攝幀率25幀/s、d為10 km計算,Δl為12 m,α每幀的變化量約為1 mrad。
由式(2)可得
(4)
由上述分析可得,在目標方向不發(fā)生大于90°變化的情況下,Δl的符號保持不變,d為常數(shù),因此方位角呈單調(diào)變化趨勢。在Δl不變的情況下,當目標位于經(jīng)緯儀與軌跡的垂足處(即l=0)時,方位角角度變化最快,越遠離垂足處則越慢,且關(guān)于垂足對稱。在目標高度一致的情況下,高低角在垂足處取得最大值,其角度變化曲線類似于拋物線,關(guān)于垂足對稱。為了更直觀地分析其變化規(guī)律,通過仿真獲得角度變化曲線。具體仿真條件為目標做拋物線運動,速度為250 m/s,經(jīng)緯儀距離目標軌跡的垂直距離為10 km,拍攝頻率為25幀/s,得到綜合角度的曲線及其一次差曲線如圖5所示。
(a) 角度曲線(a) Angular curve
(b) 角度變化曲線(b) Curve of angular change圖5 綜合角度及其變化率曲線示意圖Fig.5 Diagram of integrated angle and its rate of change curve
由仿真結(jié)果可知,在勻速直線運動的前提條件下,綜合角度均呈連續(xù)光滑變化趨勢,可以進行曲線擬合。而在一定時間范圍內(nèi),可以認為目標滿足勻速直線運動要求,因此采用曲線擬合預測下一幀的方位角高低角。
由于在實際場景中,l未知,且考慮到經(jīng)緯儀給出的角度中必定包含一定的白噪聲,因此對綜合角度序列采用正交多項式最優(yōu)線性濾波器進行外推[11],預測下一幀的方位角和高低角,具體外推公式為
(5)
式中,N為濾波窗口,a<0時該公式為內(nèi)插公式,a>0時該公式為外推公式。當數(shù)據(jù)量為2時,直接采用等間距外推;當數(shù)據(jù)量小于N且大于2時,把當前數(shù)據(jù)量作為濾波窗口進行外推;當數(shù)據(jù)量大于等于N時,采用最新的N個數(shù)據(jù)進行外推。本文中N取31。
由上述分析可知,只需初始給出兩幀圖像的綜合角度,本文的預測算法就可以基于前兩幀進行預測。
1.2.3 預測位置解算
(6)
可求得目標在圖像上的預測位置為
(7)
上式中得到的點(x,y)即為在t+1時刻的預測位置。由上述關(guān)系式可知:預測角度和原始角度差別越大,則點越偏離圖像中心。若點(x,y)位于圖像內(nèi),則在以該點為中心的圖像區(qū)域利用KCF進行跟蹤;若點位于圖像外,則跳過該幀以免跟蹤器進行錯誤的更新。
通過仿真靶場經(jīng)緯儀跟蹤場景對本文提出的預測算法進行測試,檢驗本文預測和跟蹤算法的性能。 仿真軟件環(huán)境為:Windows 7 64位專業(yè)版,Microsoft Visual Studio 2008;硬件環(huán)境為 HP ZBook 17 G3,CPU型號為Intel(R) CoreTMi7-6820HQ 2.7GHz。
2.1.1 仿真條件說明
本文按照實際任務(wù)情況下設(shè)備的精度及類似運動軌跡,仿真一組相機參數(shù)及目標軌跡,用于驗證本文給出的位置預測算法以及跟蹤框架,具體參數(shù)如下:經(jīng)緯儀坐標為(1000,2000,3000),等效焦距為62 500,圖像分辨率為720像素×576像素,目標從(-1500,8237.5,3500)到(4992,8240,18 494)做拋物線運動,最高點坐標為(-5000,9800,11 000),拍攝幀率為25幀/s,軌跡長度為100 s(即總共2500幀/s),仿真過程中不考慮目標的位姿變化。
仿真中主要考慮兩種情況:角度誤差和偏移量變化。角度誤差主要是針對經(jīng)緯儀給出的實時角度,在實時測量中靶場經(jīng)緯儀跟蹤的精度一般為5~10 s,因此我們給原始角度增加均值為0的隨機高斯誤差,方差從1~30 s,以驗證算法對于角度誤差的適用性。偏移量變化主要是針對目標在圖像上的抖動量,以模擬經(jīng)緯儀的跟蹤和抖動。實際跟蹤中,為了保持穩(wěn)定跟蹤,一般盡可能保證目標在圖像中心,因此仿真的目標位置由在圖像中心位置上疊加隨機運動得到。本次仿真中給目標位置疊加均值為0像素、均方差為2~60像素的隨機運動。每隔100幀,選擇一幀增加均值為0像素的隨機運動,均方差為正常幀的15倍,模擬經(jīng)緯儀跟蹤時的瞬間抖動,大的偏移會直接使目標跳出視場,將目標位置偏移引起的角度變化疊加到原始角度中,仿真圖像如圖6所示。
(a) 第1幀 (b) 第200幀(a) The 1st frame (b) The 200th frame圖6 仿真圖Fig.6 Simulated image
仿真的相鄰幀目標運動幅度如圖7所示(以均方差分別為6像素和90像素為例)。從圖中可以看出,目標相鄰兩幀跳動主要集中在20個像素以內(nèi),符合靶場目標運動規(guī)律,偶爾的大跳動為模擬實際場景中跟蹤過程中相機抖動的效果。
(a) x變化量(a) Variation of x
(b) y變化量(b) Variation of y圖7 目標位置變化量示意圖Fig.7 Schematic diagram of target position change
2.1.2 算法參數(shù)說明
采用KCF、TLD、OpenCV中的模板相關(guān)方法(TM)及本文方法進行跟蹤,跟蹤點為彈尾點,初始模板均為以待跟蹤點為中心、半徑為40像素×40像素的區(qū)域。由于仿真過程中未考慮目標的位姿變化,算法均設(shè)置為不更新模板。
下面對各算法設(shè)置情況進行說明:
1)KCF用灰度梯度作為目標的特征,擴展區(qū)域比例為1.0,即為目標區(qū)域的4倍,采用高斯模板,方差σ2為0.25。
2)TLD不考慮尺度變化,即不使用光流金字塔進行跟蹤,主要是仿真時未考慮目標的位姿變化,且進行特征點跟蹤時不需要考慮目標的整體變化。
3)TM采用全圖匹配的方式,匹配方法為歸一化平方差匹配法。
4)本文方法中KCF同樣用灰度梯度作為目標特征,擴展區(qū)域比例為0.5,即為目標區(qū)域的2.25倍,同樣采用高斯模板,方差σ2為0.25,跟蹤失敗的比例閾值為3。
2.2.1 預測性能
仿真時,根據(jù)經(jīng)緯儀參數(shù)和目標在世界坐標系下的位置,給出目標相對于經(jīng)緯儀的綜合角度。預測算法利用前序幀的綜合角度及當前幀的光軸角度預測目標可能出現(xiàn)的位置,由于基于窗口的算法無法直接應(yīng)對相機抖動帶來大幅度的位移,因此預測算法的準確性就是基于窗口跟蹤算法能否成功跟蹤的關(guān)鍵。本文以預測位置與仿真目標實際位置的偏差作為預測算法的評估標準。靶場經(jīng)緯儀的相機內(nèi)參數(shù)一般需要經(jīng)過精密標定,誤差不大,且由于焦距較長,同樣不考慮畸變,因此本文不考慮內(nèi)參數(shù)誤差,僅考慮角度誤差和目標位置抖動量對位置預測精度的影響。對于每個角度誤差和位置跳動量,由于需從第3幀才能進行預測,因此均只計算總共2498幀的預測偏移的均值,同時對預測位置和真值的偏差進行統(tǒng)計,偏差大于60個像素則認為預測失敗。經(jīng)統(tǒng)計預測失敗次數(shù)為0。預測結(jié)果如圖8所示。
(a) 預測誤差與角度誤差的關(guān)系(a) Relationship between prediction error and angular error
(b) 預測誤差與位置偏移的關(guān)系(b) Relationship between prediction error and offset error圖8 位置預測算法結(jié)果Fig.8 Results of the position prediction algorithm
從圖中不難看出,位置預測誤差隨著角度誤差的增大而增大,而與目標偏移無明顯關(guān)系。這主要是因為角度的偶然誤差會直接影響目標位置的解算,但由于采取了濾波算法來抑制角度的隨機誤差,因此預測誤差并沒有與角度誤差成正比。而目標位置的變化會準確疊加到綜合角度中,因此不會引起預測位置的偏差。由此可以證明本文預測算法的有效性。
2.2.2 跟蹤性能
圖9 跟蹤誤差與抖動量的關(guān)系Fig.9 Relationship between the tracking error and the jitter range
在角度誤差和抖動量變化情況下分別用KCF、TLD、TM及本文方法進行跟蹤,跟蹤結(jié)果如圖9和圖10所示。TLD在目標幀間位移較大時無法給出符合前后幀光流一致性的目標區(qū)域,導致跟蹤失敗,其失敗次數(shù)隨著抖動量增大而增大,而與角度誤差無關(guān),圖中只給出了跟蹤成功時的精度。KCF目標幀間位移比較小時能穩(wěn)定跟蹤目標,但目標幀間位移比較大時就會丟失目標,但在不更新模板的情況下能重現(xiàn)捕獲目標。
由圖9可以看出,KCF的跟蹤誤差隨著抖動量的增大而加大,而本文方法與全圖匹配的模板匹配且與TLD相當,誤差平均值在1像素左右,由此可以證明本文方法應(yīng)對相機抖動的有效性。
圖10 跟蹤誤差與角度誤差的關(guān)系Fig.10 Relationship between the tracking error and the angle error
由圖10可以看出,本文方法在綜合角度從1″到30″時,仍然保持與全圖匹配和與TLD相當?shù)木?,且?yōu)于KCF,能滿足靶場實際使用的需求。
2.2.3 時間性能
統(tǒng)計跟蹤算法平均每幀耗時,統(tǒng)計結(jié)果如表1所示。
表1 跟蹤算法耗時Tab.1 Time cost of track algorithm
從表1不難看出,本文方法比KCF和TLD耗費的時間少。與KCF相比,本文算法給出了預測位置,在提高了成功率的同時縮小了匹配的區(qū)域范圍,因此其耗時相比KCF更少;相比于TLD,本文使用的KCF比金字塔光流法更快,因此在耗時方面遠優(yōu)于TLD;基于全圖搜索的模板相關(guān)方法耗時最多。
本文算法已在多個靶場用于實際判讀任務(wù),同時也與其他算法結(jié)合使用。實際使用情況證明,本文給出的算法在經(jīng)緯儀抖動時能較準確地預測目標位置,能有效應(yīng)對經(jīng)緯儀抖動的情況,減少了抖動時的人工干預,同時能提供目標是否在圖像內(nèi)的信息給其他跟蹤算法,從而有效避免跟蹤器的錯誤更新,提高了跟蹤算法的魯棒性。
針對經(jīng)緯儀隨機抖動引起的跟蹤困難,提出一種融合位置預測、KCF和改進TLD的圖像實時判讀方法。經(jīng)仿真驗證,本文方法能夠根據(jù)綜合角度準確預測目標出現(xiàn)的位置,提高KCF跟蹤的成功率,有效應(yīng)對靶場經(jīng)緯儀抖動的情況,每幀僅耗時1.1 ms。經(jīng)靶場實際使用驗證,本文提出的算法能大幅度提高靶場判讀的自動化程度,減少人工干預的次數(shù),同時能跟其他基于窗口搜索的跟蹤算法有效結(jié)合,提供目標預測位置,提高其他跟蹤算法應(yīng)對目標大幅度位移的能力,提高跟蹤算法的魯棒性。