張興旺,劉小雄,林傳健,梁 晨
(西北工業(yè)大學(xué) 自動化學(xué)院, 西安 710072)
隨著計算機視覺技術(shù)的發(fā)展,目標對象跟蹤越來越成為計算機視覺領(lǐng)域的熱門研究方向[1-2]。近年來無人機領(lǐng)域的技術(shù)愈發(fā)成熟,這使得基于無人機的目標跟蹤系統(tǒng)的實現(xiàn)變得相對容易,而在工業(yè)、軍事等領(lǐng)域的應(yīng)用需求也使得無人機跟蹤系統(tǒng)的實現(xiàn)變得迫切。因此目前涌現(xiàn)了一大批國內(nèi)外學(xué)者對無人機目標跟蹤領(lǐng)域進行了深入研究。R.Gonzalo[3]等人提出了一種利用單攝像機實時檢測和跟蹤無人機運動目標的方法,該方法主要是通過比較人工建立的光流場和真實光流場得到一個動態(tài)像素列表,然后分組為動態(tài)對象,在時間和空間中對動態(tài)對象進行跟蹤。JeongWoon等人利用目標的顏色特征對目標進行識別,并利用AR.Drone 2.0無人機實現(xiàn)了對一個紅色橢圓圖案的跟蹤[4]。東南大學(xué)針對四旋翼無人機跟蹤地面目標過程中出現(xiàn)的目標遮擋問題,設(shè)計了基于粒子濾波結(jié)合P-N在線學(xué)習(xí)的目標跟蹤算法[5]。
目前關(guān)注度較高的目標跟蹤算法分為兩類:相關(guān)濾波和深度學(xué)習(xí)。而相關(guān)濾波選用的特征大都基于手工設(shè)計的特征,如方向梯度直方圖(HOG)[6]、局部二分模式特征(LBP)[7]等。相比較大量訓(xùn)練數(shù)據(jù)樣本學(xué)習(xí)出來的深度特征,手工設(shè)計的特征在檢測的準確性上相比較深度特征差了很多[8-9]。YOLOV3[10]作為一種目標檢測算法,使用卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練目標深度特征,最終得到目標的類別和位置,可以在兼顧速度和準確率的前提下實現(xiàn)單一目標的跟蹤,是一種性能優(yōu)良的算法。
由于目標檢測算法不可避免地存在漏檢問題,目標物體的丟失將會導(dǎo)致跟蹤失敗。而卡爾曼濾波(KF)作為一種順序最小二乘逼近算法,可以從包含噪聲的有限信號中預(yù)測出目標的真實值[11]。它的基本思想是:根據(jù)目標的狀態(tài)方程和量測方程,建立卡爾曼濾波方程。在給定狀態(tài)初值的基礎(chǔ)上,利用目標的動態(tài)信息,采用遞推方法去掉噪聲的影響,從而得到目標的最優(yōu)估計量。因此它可以針對目標跟蹤算法某一時刻檢測不到物體時對該時刻的目標軌跡進行預(yù)測,同時濾除整個目標運動過程中的噪聲干擾[12-13]。
基于以上研究成果,考慮到旋翼無人機機載處理器的處理性能有限,本文采用Tiny-YOLOV3作為目標跟蹤算法,通過與無人機數(shù)據(jù)的融合建立了目標跟蹤模型,并結(jié)合卡爾曼濾波器進行目標軌跡預(yù)測,然后設(shè)計基于PID的旋翼無人機控制律以實現(xiàn)無人機對目標的有效跟蹤,仿真結(jié)果表明了本文提出的算法的有效性[14]。
YOLO[15-16]全名You Only Look Once,歷經(jīng)三次演變?yōu)楝F(xiàn)在的YOLOV3。Tiny-YOLOV3作為YOLOV3的簡化版本,其算法的基本原理是:首先輸入大小為416×416的RGB圖像,通過特征提取網(wǎng)絡(luò)后獲得兩個不同尺度大小的特征圖,分別為13×13和26×26;然后將輸入圖像劃分成和特征圖大小相同的網(wǎng)格單元,圖像中每個物體的中心部分所在的網(wǎng)格負責(zé)該物體的檢測,即標注數(shù)據(jù)(ground truth)中某個物體的中心坐標落在哪個網(wǎng)格中,就由該網(wǎng)格預(yù)測該物體接著每個單元網(wǎng)格預(yù)測3個邊界框(bounding box);最終輸出的預(yù)測圖具有兩個維度,即特征提取的維度,如13×13的特征圖;另外的維度是深度,對于COCO數(shù)據(jù)集來說,深度為3×(80+5)。因此最終輸出的特征圖大小為13×13×255和26×26×255。
最終預(yù)測輸出中,每個邊界框需要給出一個置信度。這個置信度包含兩個方面的信息,即反映網(wǎng)格中是否有物體以及對網(wǎng)格中物體的預(yù)測是否準確。因此置信度的定義如下:
(1)
(2)
此外,每個邊界框除了給出置信度的信息之外,還需要預(yù)測出檢測框的中心坐標(x,y),檢測框的寬度和高度(w,h)。檢測框的中心坐標是相對于其所在小方格的偏移量,并以小方格的邊長為基準歸一化到[0,1]之間;而檢測框的寬度和高度則是以輸入圖像的寬度和高度歸一化到[0,1]之間。除了以上5個參數(shù),對于每個邊界框,還需要預(yù)測80個類別的概率。每個邊界框預(yù)測的類別置信度可以由以下公式表示:
(3)
可以看出,最終預(yù)測的物體的置信度由方格內(nèi)邊界框的置信度乘以該方格預(yù)測出來的每個類別物體的條件概率得到。既反映了檢測框包含某種待檢測物體的概率,也反映了檢測框定位該物體的效果。
Tiny-YOLOV3模型進行目標預(yù)測的具體過程包括以下4個階段:首先對標注的真實邊界框進行K-Means聚類[17],自動提取具有代表性的錨框(anchor box),與標注框交并比(IOU)最大的錨框作為訓(xùn)練時錨框的標簽;之后對訓(xùn)練時輸入的圖像數(shù)據(jù)進行尺度縮放,即大小為416×416的圖像數(shù)據(jù);接著對輸入數(shù)據(jù)進行卷積神經(jīng)網(wǎng)絡(luò)[18]的前向傳播過程,生成2個不同尺度大小的特征圖,針對每個特征圖求取不同類別的概率以及檢測框的位置,根據(jù)一個概率值來篩選概率低于閾值的檢測框;最后根據(jù)非極大值抑制(NMS)算法篩選出多余的檢測框,得到最終的物體檢測框及置信度得分。
非極大值抑制算法就是一種逐步迭代獲取局部極大值的一種方法,在目標檢測中主要是為了消除多余的預(yù)測框,得到待檢測目標的最佳位置。它的主要思想是:在圖像上首先對所有的預(yù)測框的置信度進行排名,選取置信度最高的預(yù)測框作為基準;然后計算剩余預(yù)測框與基準預(yù)測框之間的交并比,如果大于設(shè)定的閾值,就刪除該邊界框;再從剩下的邊界框中選取置信度最高的作為基準,重復(fù)以上過程,最終得到滿足標準的最佳預(yù)測框。
Tiny-YOlOV3網(wǎng)絡(luò)是YOLOV3網(wǎng)絡(luò)的簡化版本,網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。與YOLOV3類似,網(wǎng)絡(luò)中使用3×3和1×1兩種大小的卷積核,3×3的卷積核主要用來提取圖片的特征信息,1×1的卷積核可以在保持特征圖尺寸不變的前提下增加非線性特征,減少網(wǎng)絡(luò)訓(xùn)練的參數(shù)。卷積層包含卷積操作、批歸一化處理和Leaky Relu三種基本操作。卷積操作是為了提取圖片的特征;批歸一化處理是通過一定的規(guī)范化方法,提高網(wǎng)絡(luò)的訓(xùn)練速度,使網(wǎng)絡(luò)的收斂過程大大加快,防止網(wǎng)絡(luò)出現(xiàn)過擬合;Leaky Relu則是網(wǎng)絡(luò)使用的非線性激活函數(shù)。Tiny-YOLOV3主干網(wǎng)絡(luò)主要有7個3×3的卷積層及6個最大池化層,前5個最大池化層的步長為2,最后一個步長為1。當輸入大小為416×416的圖像時,整體網(wǎng)絡(luò)的輸出為13×13的特征圖,經(jīng)過上采樣之后與第5個卷積層的輸出進行張量拼接,再進行卷積運算得到26×26大小的特征圖,最終網(wǎng)絡(luò)輸出兩個不同尺度的特征圖。小尺度特征圖具有較大的感受野,適合檢測大目標物體;大尺度特征圖具有較小的感受野,適合檢測小目標物體。
圖1 Tiny-YOLOV3網(wǎng)絡(luò)結(jié)構(gòu)
相比較YOLOV3網(wǎng)絡(luò),Tiny-YOlOV3網(wǎng)絡(luò)結(jié)構(gòu)更加簡單,網(wǎng)絡(luò)層數(shù)大大減少,需要訓(xùn)練的參數(shù)大大減少,特別適合于工程實現(xiàn)。尤其在旋翼無人機進行目標跟蹤時,由于機載處理器算力不足,無法運行深層的卷積神經(jīng)網(wǎng)絡(luò)模型,而針對無人機的目標跟蹤又需要兼顧準確率和實時性的要求,那么Tiny-YOlOV3網(wǎng)絡(luò)便成了首要選擇。
由于Tiny-YOLOV3目標檢測算法最終輸出的是目標物體在像素坐標系下的像素坐標,因此要想計算目標在導(dǎo)航坐標系下的具體位置,需要先建立一個目標圖像的跟蹤模型,建立的模型如圖2所示。
圖2 四旋翼目標跟蹤模型
根據(jù)幾何關(guān)系,可以將目標位置P4=[xcn,ycn,zcn]由以下關(guān)系式表示:
P4=P1+P2+P3
(4)
P2=CbnbP2
(5)
P3=CbnCcbcP3
(6)
P4=P1+CbnbP2+CbnCcbcP3
(7)
最終可以得出:
(8)
假設(shè)實際中目標所處位置處地形變化不大,因此可以確定地面的海拔高度為目標的位置zcn,令CbnCcbM1-1=C,則以下關(guān)系式成立,即:
(9)
從而圖像深度信息計算如下:
(10)
最終計算出目標在導(dǎo)航坐標系下的位置為:
(11)
由于機載處理器目標檢測和識別的速度大概在13~14 FPS,也就是目標位置的更新頻率在13~14 Hz ,而在無人機控制中,位置環(huán)的控制頻率為20 Hz,同時考慮到目標檢測算法有時會檢測不到目標物體,導(dǎo)致目標跟蹤效果較差。此外,考慮到檢測結(jié)果的信號傳輸可能會受到設(shè)備本身和外界的干擾,因此需要建立目標的運動學(xué)模型,使用卡爾曼濾波器對目標位置進行濾波的同時預(yù)測目標物體的運動軌跡,保證目標位置更新頻率與位置控制器更新頻率一致,以實現(xiàn)四旋翼無人機對目標的穩(wěn)定跟蹤。
卡爾曼濾波器作為一種順序最小二乘逼近,可以利用目標的動態(tài)信息,通過遞推方法得到目標的最優(yōu)估計。這個估計可以是對當前的估計,也可以是對過去的估計。對于卡爾曼濾波來說,只需要獲得上一時刻的狀態(tài)估計值以及當前時刻的量測信息就可以對當前時刻的估計值進行計算,因此它是一種遞歸估計??柭鼮V波器分為兩個過程:時間更新和量測更新。時間更新是狀態(tài)的預(yù)估過程,即通過一步預(yù)測方程建立對當前狀態(tài)的先驗估計,同時計算狀態(tài)誤差協(xié)方差估計值,以便為狀態(tài)估計方程的計算做準備;量測更新即狀態(tài)的校正過程,利用量測更新方程在時間更新過程中的先驗估計值及當前量測值的基礎(chǔ)上計算當前狀態(tài)的后驗估計。
(12)
式中,Δt為更新周期。
(13)
式中,v(t)為量測噪聲,可以考慮為高斯噪聲。
對上面的運動學(xué)方程離散化可得狀態(tài)轉(zhuǎn)移矩陣、過程噪聲成型矩陣和量測矩陣為:
(14)
式中,I為4×4的單位矩陣,Ts為相鄰兩幀圖像之間的采樣間隔,即目標檢測算法識別目標的時間。
基于目標運動方程建立卡爾曼濾波方程,選取狀態(tài)初值xcn0=ycn0=0,Vx0=Vy0=0.8 m/s,加速度噪聲方差強度為Qax=Qay=0.000 9 m2/s4,量測噪聲方差強度為Rvx=Rvy=0.001 6 m2。仿真結(jié)果如圖3和圖4所示。
圖3 濾波前后目標位置對比
圖4 濾波誤差
從仿真結(jié)果可以看出,采用卡爾曼濾波后,目標在x方向誤差最大不超過0.06 m,在y方向誤差最大不超過0.06 m,濾波前后運動軌跡基本一致,說明采用卡爾曼濾波對目標軌跡的預(yù)測效果很好。
對于四旋翼無人機來說,良好的控制律設(shè)計是無人機實現(xiàn)穩(wěn)定飛行的前提。對四旋翼無人機來說,高度控制獨立于姿態(tài)控制,位置控制則是基于無人機姿態(tài)的改變來進行控制的。因此為了保證無人機在目標跟蹤過程中的穩(wěn)定飛行,本節(jié)通過對實驗室四旋翼無人機建立模型,分析設(shè)計后采用PID控制的方式,得到四旋翼無人機的控制律如下:
1)姿態(tài)控制律:
(15)
2)高度控制律:
(16)
式中,UT為高度控制量,m為旋翼無人機總質(zhì)量,hg為無人機期望高度,h為無人機當前高度。
3)水平位置控制律:
(17)
其中:xg和yg為無人機水平期望位置,vxg和vyg為無人機水平期望速度,x和y是無人機當前水平位置,vx和vy為無人機當前水平速度,ux和uy是水平方向上等效控制量。
由于水平位置控制的最終目的是俯仰角和滾轉(zhuǎn)角的控制,因此姿態(tài)控制器目標姿態(tài)角的輸入為:
(18)
式中,φd和θd為姿態(tài)控制器滾轉(zhuǎn)角和俯仰角的期望輸入量。
基于第4節(jié)設(shè)計的控制器,通過Matlab/Simulink搭建仿真模型,將經(jīng)過卡爾曼濾波后的目標運動軌跡輸入到位置控制器中,將目標的運動方向角作為四旋翼無人機偏航角的期望輸入,得到最終的仿真結(jié)果。
圖5和圖6為40 s內(nèi)目標運動軌跡和四旋翼無人機運動軌跡,可以看出由于位置控制器存在調(diào)節(jié)時間,無人機運動相較于目標的運動存在一定的滯后,穩(wěn)態(tài)誤差維持在0.5 m以內(nèi),基本不影響跟蹤的結(jié)果。最終目標水平位置為(39.56 m,29.88 m),無人機水平位置為(39.18 m,29.64 m),整體上兩者運動軌跡基本一致。圖7為三維空間下兩者運動軌跡對比,無人機先飛行到6 m的高度,然后進行目標軌跡的跟蹤,仿真結(jié)果表明雖然無人機與目標之間的運動軌跡存在一定的偏差,但不影響最終的跟蹤效果。
圖5 無人機位置控制結(jié)果
圖6 二維空間下運動軌跡對比
圖7 三維空間下運動軌跡對比
圖8為旋翼無人機的速度與目標運動的速度對比,初始時刻由于噪聲的影響,目標速度存在跳變,無人機速度經(jīng)過一定的調(diào)節(jié)時間慢慢跟蹤上目標運動速度,雖然無人機速度有些滯后于目標速度,但整體偏差不超過0.2 m/s,速度運動曲線基本一致,說明旋翼無人機能夠很好地保持與目標之間的相對靜止。
圖8 運動速度對比
圖9為目標與無人機運動方向?qū)Ρ?,初始時刻由于噪聲的影響,目標方向產(chǎn)生了突變,導(dǎo)致無人機與目標存在10°左右的夾角,經(jīng)過一定的調(diào)節(jié)時間,無人機與目標的運動方向基本一致,穩(wěn)態(tài)偏差在3°以內(nèi),航向控制效果良好。
圖9 運動方向?qū)Ρ?/p>
綜上所述,四旋翼無人機跟蹤地面目標的過程中,在軌跡跟蹤的同時控制無人機的速度和方向,使無人機始終沿著目標的運動軌跡飛行。仿真結(jié)果表明無人機位置跟蹤的精度在0.5 m以內(nèi),跟蹤過程中與目標的速度偏差不超過0.2 m/s,同時在航向控制上基本與目標運動方向一致,跟蹤效果良好。
本文針對Tiny-YOLOV3目標檢測算法存在目標漏檢的問題,同時考慮到實際中的噪聲干擾和無人機控制器的更新頻率,提出了一種聯(lián)合Tiny-YOLOV3和KF的四旋翼無人機目標跟蹤算法。通過建立目標跟蹤模型并設(shè)計四旋翼無人機控制律,最終通過仿真驗證了所提出算法的穩(wěn)定可靠性。所提出的算法可以實現(xiàn)對單一目標的穩(wěn)定跟蹤,但針對多個同類目標,還需對算法進行深入研究。