賈配洋,彭曉東,沈菲菲,高 辰,周武根
(1.中國科學(xué)院國家空間科學(xué)中心 北京 100190;2.中國科學(xué)院大學(xué) 計算機(jī)與控制學(xué)院,北京 100190)
基于Apriltags改進(jìn)算法的無人機(jī)移動目標(biāo)識別與跟蹤
賈配洋1,2,彭曉東1,沈菲菲1,2,高 辰1,2,周武根1,2
(1.中國科學(xué)院國家空間科學(xué)中心 北京 100190;2.中國科學(xué)院大學(xué) 計算機(jī)與控制學(xué)院,北京 100190)
移動目標(biāo)識別與跟蹤,在視頻監(jiān)控、人機(jī)交互、智能交通、軍事應(yīng)用等領(lǐng)域具有重大應(yīng)用價值。本文針對當(dāng)前目標(biāo)識別與跟蹤領(lǐng)域普遍存在的處理速度較慢、實(shí)時性不足等問題,提出了一種基于Apriltags識別的改進(jìn)算法,對移動目標(biāo)進(jìn)行局部搜索,并結(jié)合Kalman濾波器實(shí)時估計目標(biāo)下一時刻在圖像中的位置,大幅提升了算法處理速度和跟蹤性能。本算法在大疆M100四旋翼無人機(jī)平臺上,搭載Manifold機(jī)載計算機(jī)完成了實(shí)驗(yàn)測試。實(shí)驗(yàn)證明,算法魯棒性強(qiáng)、穩(wěn)定性好,成功實(shí)現(xiàn)了無人機(jī)對快速移動目標(biāo)的識別與穩(wěn)定跟蹤。
機(jī)器視覺;Apriltags識別;無人機(jī);Kalman濾波;目標(biāo)識別與跟蹤TN96
近年來,機(jī)器視覺發(fā)展方興未艾,其中目標(biāo)識別與跟蹤已經(jīng)成為當(dāng)前研究熱點(diǎn)之一,其研究成果在視頻監(jiān)控、智能交通、災(zāi)后搜救、人機(jī)交互、軍事應(yīng)用等領(lǐng)域都具有巨大的應(yīng)用前景[1]。利用無人機(jī)平臺,實(shí)現(xiàn)移動目標(biāo)的識別與跟蹤,將具有重要的應(yīng)用價值。
目前移動目標(biāo)識別方法,主要有以下幾種:幀差法、均值漂移算法(Meanshift)、連續(xù)自適應(yīng)MeanShift算法(CamShift)、光流法、TLD(Tracking-Learning-Detection)等[2-7]。 幀差法,計算量小,速度快[2],通常應(yīng)用在攝像機(jī)標(biāo)定的場合。MeanShift[3-4]計算簡單、易于實(shí)現(xiàn),但難以快速移動目標(biāo)實(shí)現(xiàn)跟蹤。CamShift是對MeanShift算法的改進(jìn)[5],對于純色目標(biāo)在黑白背景下的跟蹤較好,分度較低時容易丟失目標(biāo)。光流法攜帶了豐富的運(yùn)動信息、三維信息[6],計算量巨大,不能滿足實(shí)時性需求。TLD算法[7]實(shí)現(xiàn)了對單目標(biāo)的長時間跟蹤,解決了目標(biāo)形變、部分遮擋等引起的目標(biāo)丟失,但實(shí)時性略有欠缺。Apriltags識別算法,可以實(shí)時計算出目標(biāo)相對于相機(jī)的距離及姿態(tài)[8-9],但算法對高精度視頻流的處理速度有限。
綜上所述,當(dāng)前移動目標(biāo)識別與跟蹤,主要存在處理速度偏慢、難以實(shí)時性需求、目標(biāo)容易丟失等問題。無人機(jī)領(lǐng)域近些年發(fā)展迅猛[10],美國賓夕法尼亞大學(xué)、中國大疆科技(DJI)等高校和公司,加速了計算機(jī)視覺與無人機(jī)應(yīng)用相結(jié)合的進(jìn)程。通過智能控制算法實(shí)時決策,自主控制無人機(jī)完成各項(xiàng)工作[11]。無人機(jī)跟蹤移動目標(biāo),對識別跟蹤算法的速度和穩(wěn)定性提出了較高要求。精確控制無人機(jī)跟蹤飛行,需要實(shí)時獲取移動目標(biāo)相對于無人機(jī)的三維位置及姿態(tài)信息。因此,直接運(yùn)用上述方法,難以滿足對快速移動目標(biāo)的識別與跟蹤需求。
文中提出了一種基于Apriltags的改進(jìn)算法,很好地解決了上述問題。首先,運(yùn)用OpenCV函數(shù)庫進(jìn)行區(qū)域搜索,減少搜索空間,使得算法處理速度大幅提升,成功解決了跟蹤實(shí)時性問題。其次,使用Kalman濾波器預(yù)估移動目標(biāo)在相機(jī)視場中的位置,使識別跟蹤效果更加穩(wěn)定。最后,使用Apriltags識別算法得到的距離及姿態(tài)數(shù)據(jù),自主智能控制無人機(jī)跟蹤飛行,實(shí)現(xiàn)無人機(jī)對移動目標(biāo)的識別與穩(wěn)定跟蹤。
移動目標(biāo)識別與跟蹤,其核心問題在于效率。Olson教授提出的Apriltags識別算法,在整副圖像中識別目標(biāo),處理速度難以滿足實(shí)時需求。本文提出的改進(jìn)算法,在原有算法基礎(chǔ)上,做了相應(yīng)改進(jìn)和功能整合,主要存在3個方面的創(chuàng)新:1)采用局部圖像搜索策略;2)采用Kalman濾波預(yù)估目標(biāo)位置,作為下一時刻目標(biāo)識別局部搜索的先驗(yàn)知識;3)新增無人機(jī)飛行跟蹤策略,通過識別算法獲取目標(biāo)三維位姿信息,控制無人機(jī)跟蹤飛行。
圖1 Apriltags識別圖
AprilTags是一種二維餅狀圖,編碼數(shù)據(jù)量小(4~12 bits),易于獲取,具有高精度局部準(zhǔn)確性。AprilTags容易識別和探測,可以計算目標(biāo)相對于相機(jī)的位置、方向及姿態(tài),是一個視覺基準(zhǔn)系統(tǒng)[8,9],廣泛應(yīng)用在機(jī)器人學(xué)、相機(jī)校準(zhǔn)等大量任務(wù)中。目標(biāo)識別,是實(shí)現(xiàn)目標(biāo)跟蹤、以及更多自主智能任務(wù)的前提。為更好的識別和跟蹤目標(biāo),在目標(biāo)對象上張貼已知尺寸大小的Apriltags。當(dāng)已知相機(jī)分辨率、焦距、Apriltags尺寸時,且滿足識別距離、角度、光線等約束,識別算法可準(zhǔn)確識別Apriltags的類型、ID,并實(shí)時計算出目標(biāo)相對于相機(jī)坐標(biāo)系3個緯度方向上的距離(x,y,z)及3個姿態(tài)角信息(俯仰、翻滾、偏航)。
運(yùn)用無人機(jī)云臺相機(jī)與目標(biāo)之間的位置及姿態(tài)信息,調(diào)整無人機(jī)飛行狀態(tài)。當(dāng)找到目標(biāo)后,調(diào)整云臺及相機(jī)姿態(tài),使目標(biāo)盡可能處于相機(jī)視野中央,保證跟蹤效果。Apriltag算法,主要步驟如圖2所示:彩色圖轉(zhuǎn)灰度圖→高斯濾波→hough變換→線條提取→識別計算→顯示id及位置信息。通過上述步驟,最終得到目標(biāo)類型、id、距離、姿態(tài)等信息。
圖2 Apriltags識別簡化流程
卡爾曼(R.E.Kalman)等發(fā)表了《線性濾波和預(yù)測理論的新成果》[12],提出了卡爾曼濾波與預(yù)測理論,用于還原真實(shí)信息或預(yù)估下一時刻狀態(tài)??柭鼮V波利用線性系統(tǒng)狀態(tài)方程,通過系統(tǒng)觀測數(shù)據(jù),對系統(tǒng)狀態(tài)進(jìn)行最優(yōu)估計[13]。卡爾曼濾波便于編程實(shí)現(xiàn),實(shí)時性好,廣泛應(yīng)用在通信、制導(dǎo)、路徑預(yù)測等領(lǐng)域[11]。
識別目標(biāo)在圖像中的位置,可以抽象成一個離散控制過程系統(tǒng)[14]。其狀態(tài)方程用隨機(jī)線性方程表示為:
系統(tǒng)量測方程為:
(1)、(2)兩式中,X(k)是 k 時刻系統(tǒng)狀態(tài),U(k)是k時刻對系統(tǒng)的控制量。A和B是系統(tǒng)參數(shù),Z(k)是k時刻的測量值,H是測量系統(tǒng)參數(shù)。W(k)和V(k)分別表示過程噪聲和測量噪聲,假設(shè)均為高斯白噪聲,其協(xié)方差分別是Q、R,且不隨系統(tǒng)狀態(tài)改變。
X(k)表示的系統(tǒng)滿足上述條件,可用卡爾曼濾波器結(jié)合協(xié)方差矩陣,來估算系統(tǒng)的最優(yōu)位置,也即是下一時刻目標(biāo)將處于圖像中的位置信息。
卡爾曼濾波包含5個關(guān)鍵步驟:
1)基于狀態(tài)方程,通過上一時刻狀態(tài)預(yù)測下一時刻系統(tǒng)狀態(tài)。假定現(xiàn)在的系統(tǒng)狀態(tài)是k,根據(jù)系統(tǒng)的模型,可以基于系統(tǒng)上一時刻狀態(tài)預(yù)測出當(dāng)前狀態(tài):
X(k|k-1)是利用上一狀態(tài)預(yù)測的結(jié)果,X(k-1|k-1)是上一時刻狀態(tài)最優(yōu)結(jié)果,U(k)為現(xiàn)在狀態(tài)的控制量,此模型中 U(k)為 0。
2)系統(tǒng)結(jié)果更新后,更新對應(yīng)于X(k|k-1)的協(xié)方差矩陣P:
P(k|k-1)是 X(k|k-1)對應(yīng)的協(xié)方差矩陣,P(k-1|k-1)是 X(k-1|k-1)對應(yīng)的協(xié)方差矩陣,A’表示 A的轉(zhuǎn)置矩陣,Q是系統(tǒng)過程的協(xié)方差矩陣。
3)獲得當(dāng)前狀態(tài)的預(yù)測結(jié)果,然后收集當(dāng)前狀態(tài)測量值。融合預(yù)測值和測量值,當(dāng)前狀態(tài)(k)的最優(yōu)化估算值X(k|k):
4)更新卡爾曼增益(Kalman Gain,Kg):
5)為了保證卡爾曼濾波器不斷迭代,還要更新k狀態(tài)下X(k|k)的協(xié)方差矩陣:
算法對圖像的局部區(qū)域進(jìn)行Apriltags識別,故需對目標(biāo)在圖像中的位置進(jìn)行估計[14-15]。本文采用Kalman濾波器,采用上一時刻目標(biāo)在圖片中的位置v=(i,j)作為觀測值,實(shí)時預(yù)估目標(biāo)下一時刻在圖像中的位置Vp=(ip,jp)。以預(yù)估位置Vp作為先驗(yàn)知識,以其為算法局部搜索的ROI區(qū)域中心,使得識別范圍縮小,進(jìn)而提升算法時間性能。
要實(shí)現(xiàn)無人機(jī)對移動目標(biāo)的識別與跟蹤,需要構(gòu)建一套坐標(biāo)系。通過坐標(biāo)轉(zhuǎn)換,獲得目標(biāo)相對于無人機(jī)的精確位姿,從而實(shí)現(xiàn)對無人機(jī)智能控制。各坐標(biāo)系間關(guān)系如圖3所示。
圖3 坐標(biāo)系示意圖
圖像坐標(biāo)系I:相機(jī)平面為原點(diǎn),垂直鏡面往外為X軸正向,平行鏡面向上為Z軸正向,遵循右手系建立Y軸。相機(jī)坐標(biāo)系C:該坐標(biāo)系以相機(jī)原點(diǎn),相機(jī)方向?yàn)閄軸正向,相機(jī)平面前方往右為Y軸正向,遵循右手系建立Z軸。無人機(jī)坐標(biāo)系U:取無人機(jī)幾何中心位置為坐標(biāo)原點(diǎn),無人機(jī)的前方為X軸正向,垂直向下為Z軸正向,遵循右手系建立Y軸。北東坐標(biāo)系O:北為X軸正向,東為Y軸正向,從地面往上為Z軸正向。
通過機(jī)載計算機(jī)實(shí)現(xiàn)開機(jī)自啟動,當(dāng)計算機(jī)啟動后運(yùn)行程序,實(shí)現(xiàn)無人機(jī)目標(biāo)識別與跟蹤。整個識別與跟蹤算法系統(tǒng)流程圖如圖4所示。整個流程主要包含以下環(huán)節(jié):跟蹤飛行。
圖4 識別與跟蹤系統(tǒng)流程圖
Olson教授提出的Apriltag算法[8],對于分辨率為1 280*720的視頻流,在大疆Manifold計算機(jī)上,處理速度為5幀/秒,難以實(shí)時跟蹤的需求。當(dāng)視頻流分辨率變?yōu)? K時,速度降低到0.15幀/秒。因此,需提升算法處理速度,方可對快速移動目標(biāo)進(jìn)行準(zhǔn)確識別和跟蹤。
文中提出的改進(jìn)Apriltags識別算法,通過Kalman濾波器實(shí)時預(yù)估目標(biāo)位置,進(jìn)行局部搜索提升處理速度。相同條件下,由于減少搜索空間,算法處理速度可達(dá)50幀/秒以上。當(dāng)識別算法只采用局部搜索方式,不包含Kalman目標(biāo)位置預(yù)估,也做了相關(guān)識別與跟蹤實(shí)驗(yàn)。算法處理速度及跟蹤效果詳情如表1所示。
表1 實(shí)驗(yàn)效率對比分析
以大疆Matrice 100無人機(jī)為平臺,在大疆Onboard SDK上開發(fā)程序。基于Arm架構(gòu)的機(jī)載計算機(jī)Manifold,搭載NVIDIA Tegra K1處理器,主存2 G,最高主頻 2.2 GHz,操作系統(tǒng)為 Ubuntu14.10,OpenCV 版本為 2.4.11。云臺相機(jī)為大疆 Zenmuse X3相機(jī),視頻格式為NV12,視頻流分辨率采用1280×720。
帶39 cm×39 cm的36h11Apriltags的運(yùn)動汽車,以直線行駛。實(shí)驗(yàn)證明,可以實(shí)現(xiàn)對時速30 km/h的汽車實(shí)現(xiàn)穩(wěn)定識別和跟蹤。
帶39 cm×39 cm的36h11Apriltags的汽車,以S彎行駛,經(jīng)實(shí)驗(yàn)證明,可以實(shí)現(xiàn)對移動目標(biāo)的穩(wěn)定識別與跟蹤。
圖5 跟蹤實(shí)驗(yàn)效果截圖
帶 39Ccm×39×cm 的 36h11Apriltags的汽車,進(jìn)行直角轉(zhuǎn)彎行駛,經(jīng)實(shí)驗(yàn)證明,可以實(shí)現(xiàn)對移動目標(biāo)的穩(wěn)定識別與跟蹤。
對于帶6 cm×6 cm的25h9 Apriltags目標(biāo),在直線運(yùn)動速度4 m/s時,無人機(jī)在距離目標(biāo)0.5 m高度時,經(jīng)驗(yàn)證可以進(jìn)行穩(wěn)定識別與跟蹤。在不存在加速度過大情況下,對于曲線運(yùn)動、轉(zhuǎn)彎等場景均能實(shí)現(xiàn)穩(wěn)定跟蹤。
通過上述實(shí)驗(yàn)證明,本文研究搭建的識別跟蹤系統(tǒng),可以實(shí)時跟蹤多種情況下的運(yùn)動目標(biāo),算法識別準(zhǔn)確率高、處理速度快、跟蹤效果良好。
文中針對當(dāng)前識別跟蹤算法[16-17]效率低下、實(shí)時性差等問題,提出了一種基于Apriltags識別的改進(jìn)算法,運(yùn)用Kalman濾波大幅提升了算法效率,實(shí)現(xiàn)了快速移動目標(biāo)的識別與跟蹤。經(jīng)驗(yàn)證,本文提出的方法可靠性強(qiáng),穩(wěn)定性較好,可以跟蹤30 km/h快速行駛的汽車。下一步,將結(jié)合TLD算法,對目標(biāo)存在遮擋等情況進(jìn)行處理,實(shí)現(xiàn)無人機(jī)在高速移動平臺降落。
[1]呂澤華,梁虎,唐赫,等.目標(biāo)跟蹤研究綜述[J].計算機(jī)工程與科學(xué),2012,34(10):92-97.
[2]許倫輝,卜文萍,陳衍平,等.基于幀差法和背景差法融合的車流量檢測方法 [J].計算機(jī)仿真,2012,29(2):353-357.
[3]胡威.一種新的Meanshift快速運(yùn)動目標(biāo)魯棒跟蹤方法[J].計算機(jī)應(yīng)用與軟件,2014(1):140-143.
[4]原銀忠,肖宏,鄭耀鋒,等.基于Meanshift算法的實(shí)時目標(biāo)跟蹤系統(tǒng) [J].電子技術(shù)與軟件工程,2014(12):166-168.
[5]Zhou Z,Wu D,Peng X,et al.Object Tracking Based on Camshift with Multi-feature Fusion[J].Journal of Software,2014,9(1).
[6]Sharvit A,Gutman D,Laufer D,et al.Optimalflow minimum-cost correspondence assignment in particle flow tracking[J].Computer Vision&Image Understanding,2011,115(4):531-540.
[7]Kalal Z,Mikolajczyk K,Matas J.Tracking-Learning-Detection [J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2011,34(7):1409-22.
[8]Olson E.AprilTag:A robust and flexible visual fiducial system[C]//IEEE International Conference on Robotics&Automation.IEEE,2011:3400-3407.
[9]Richardson A, Strom J, Olson E.AprilCal:Assisted and repeatable camera calibration[J].2013,8215(2):1814-1821.
[10]陶于金,李沛峰.無人機(jī)系統(tǒng)發(fā)展與關(guān)鍵技術(shù)綜述[J].航空制造技術(shù),2014(20):34-39.
[11]Saifuddin Saif A F M,Satria Prabuwono A,Rasyid Mahayuddin Z,et al.A Review of Machine Vision based on Moving Objects:Object Detection from UAV Aerial Images[J].International Journal of Advancements in Computing Technology,2013.[12]Kalman R E.A New Approach to Linear Filtering and Prediction Problems[J].J.basic Eng.trans.asme,2015,82D(1):35-45.
[13]桑海峰,吳丹陽,王會.視頻監(jiān)控下的人臉跟蹤與識別系統(tǒng)[J].計算機(jī)工程與應(yīng)用,2014,50(12):175-179.
[14]陳金令,苗東,康博,等.基于Kalman濾波和模板匹配的目標(biāo)跟蹤技術(shù)研究 [J].光學(xué)與光電技術(shù),2014,12(6):9-12
[15]韓濤,吳衡,張虎龍,等.Kalman濾波融合優(yōu)化Mean Shift的目標(biāo)跟蹤算法 [J].光電工程,2014(6):56-62.
[16]王闖,盧健,黃杰.AUV同時定位與跟蹤算法研究[J].西安工程大學(xué)學(xué)報,2014,28(5):556-562.
[17]谷文華,蔣念平,李振興.基于粒子濾波的TLD目標(biāo)跟蹤算法[J].電子科技,2015(12):45-47.
UAV's moving target recognition and tracking based on improved Apriltags algorithm
JIA Pei-yang1,2,PENG Xiao-dong1,SHEN Fei-fei1,2,GAO Chen1,2,ZHOU Wu-gen1,2
(1.National Space Science Center,Chinese Academy of Science,Beijing 100190,China;2.College of Computer and Control,University of Chinese Academy of Science,Beijing 100190,China)
Moving target recognition and trackinghas a significant application value,in the field of video surveillance,human-computer interaction,intelligent transportationandmilitary applications.In order to solve with the problem of lowrecognition speedin the target recognition and tracking field,this paper presents an improved algorithm based on Apriltags recognition.It detects moving targetlocally with Kalman filter's real-time estimation of the target's 2D position in the image.It dramatically improves the algorithm processing speed and tracking performance.The algorithm is tested in the M100 UAV platform,which is equipped with Manifold.Experiments show that the algorithm has good robustness and good stability,and it successfully realizes the recognition and stable tracking of UAV for fast moving target.
machine vision;Apriltags detection;UAV;Kalman filter;target recognition and tracking
TN0
A
1674-6236(2017)17-0031-05
2016-07-15稿件編號:201607113
賈配洋(1992—),男,四川達(dá)州人,碩士研究生。研究方向:計算機(jī)視覺、無人機(jī)應(yīng)用。