張興旺,劉小雄,林傳健,梁 晨
(西北工業大學 自動化學院, 西安 710072)
隨著計算機視覺技術的發展,目標對象跟蹤越來越成為計算機視覺領域的熱門研究方向[1-2]。近年來無人機領域的技術愈發成熟,這使得基于無人機的目標跟蹤系統的實現變得相對容易,而在工業、軍事等領域的應用需求也使得無人機跟蹤系統的實現變得迫切。因此目前涌現了一大批國內外學者對無人機目標跟蹤領域進行了深入研究。R.Gonzalo[3]等人提出了一種利用單攝像機實時檢測和跟蹤無人機運動目標的方法,該方法主要是通過比較人工建立的光流場和真實光流場得到一個動態像素列表,然后分組為動態對象,在時間和空間中對動態對象進行跟蹤。JeongWoon等人利用目標的顏色特征對目標進行識別,并利用AR.Drone 2.0無人機實現了對一個紅色橢圓圖案的跟蹤[4]。東南大學針對四旋翼無人機跟蹤地面目標過程中出現的目標遮擋問題,設計了基于粒子濾波結合P-N在線學習的目標跟蹤算法[5]。
目前關注度較高的目標跟蹤算法分為兩類:相關濾波和深度學習。而相關濾波選用的特征大都基于手工設計的特征,如方向梯度直方圖(HOG)[6]、局部二分模式特征(LBP)[7]等。相比較大量訓練數據樣本學習出來的深度特征,手工設計的特征在檢測的準確性上相比較深度特征差了很多[8-9]。YOLOV3[10]作為一種目標檢測算法,使用卷積神經網絡訓練目標深度特征,最終得到目標的類別和位置,可以在兼顧速度和準確率的前提下實現單一目標的跟蹤,是一種性能優良的算法。
由于目標檢測算法不可避免地存在漏檢問題,目標物體的丟失將會導致跟蹤失敗。而卡爾曼濾波(KF)作為一種順序最小二乘逼近算法,可以從包含噪聲的有限信號中預測出目標的真實值[11]。它的基本思想是:根據目標的狀態方程和量測方程,建立卡爾曼濾波方程。在給定狀態初值的基礎上,利用目標的動態信息,采用遞推方法去掉噪聲的影響,從而得到目標的最優估計量。因此它可以針對目標跟蹤算法某一時刻檢測不到物體時對該時刻的目標軌跡進行預測,同時濾除整個目標運動過程中的噪聲干擾[12-13]。
基于以上研究成果,考慮到旋翼無人機機載處理器的處理性能有限,本文采用Tiny-YOLOV3作為目標跟蹤算法,通過與無人機數據的融合建立了目標跟蹤模型,并結合卡爾曼濾波器進行目標軌跡預測,然后設計基于PID的旋翼無人機控制律以實現無人機對目標的有效跟蹤,仿真結果表明了本文提出的算法的有效性[14]。
YOLO[15-16]全名You Only Look Once,歷經三次演變為現在的YOLOV3。Tiny-YOLOV3作為YOLOV3的簡化版本,其算法的基本原理是:首先輸入大小為416×416的RGB圖像,通過特征提取網絡后獲得兩個不同尺度大小的特征圖,分別為13×13和26×26;然后將輸入圖像劃分成和特征圖大小相同的網格單元,圖像中每個物體的中心部分所在的網格負責該物體的檢測,即標注數據(ground truth)中某個物體的中心坐標落在哪個網格中,就由該網格預測該物體接著每個單元網格預測3個邊界框(bounding box);最終輸出的預測圖具有兩個維度,即特征提取的維度,如13×13的特征圖;另外的維度是深度,對于COCO數據集來說,深度為3×(80+5)。因此最終輸出的特征圖大小為13×13×255和26×26×255。
最終預測輸出中,每個邊界框需要給出一個置信度。這個置信度包含兩個方面的信息,即反映網格中是否有物體以及對網格中物體的預測是否準確。因此置信度的定義如下:
(1)

(2)
此外,每個邊界框除了給出置信度的信息之外,還需要預測出檢測框的中心坐標(x,y),檢測框的寬度和高度(w,h)。檢測框的中心坐標是相對于其所在小方格的偏移量,并以小方格的邊長為基準歸一化到[0,1]之間;而檢測框的寬度和高度則是以輸入圖像的寬度和高度歸一化到[0,1]之間。除了以上5個參數,對于每個邊界框,還需要預測80個類別的概率。每個邊界框預測的類別置信度可以由以下公式表示:
(3)
可以看出,最終預測的物體的置信度由方格內邊界框的置信度乘以該方格預測出來的每個類別物體的條件概率得到。既反映了檢測框包含某種待檢測物體的概率,也反映了檢測框定位該物體的效果。
Tiny-YOLOV3模型進行目標預測的具體過程包括以下4個階段:首先對標注的真實邊界框進行K-Means聚類[17],自動提取具有代表性的錨框(anchor box),與標注框交并比(IOU)最大的錨框作為訓練時錨框的標簽;之后對訓練時輸入的圖像數據進行尺度縮放,即大小為416×416的圖像數據;接著對輸入數據進行卷積神經網絡[18]的前向傳播過程,生成2個不同尺度大小的特征圖,針對每個特征圖求取不同類別的概率以及檢測框的位置,根據一個概率值來篩選概率低于閾值的檢測框;最后根據非極大值抑制(NMS)算法篩選出多余的檢測框,得到最終的物體檢測框及置信度得分。
非極大值抑制算法就是一種逐步迭代獲取局部極大值的一種方法,在目標檢測中主要是為了消除多余的預測框,得到待檢測目標的最佳位置。它的主要思想是:在圖像上首先對所有的預測框的置信度進行排名,選取置信度最高的預測框作為基準;然后計算剩余預測框與基準預測框之間的交并比,如果大于設定的閾值,就刪除該邊界框;再從剩下的邊界框中選取置信度最高的作為基準,重復以上過程,最終得到滿足標準的最佳預測框。
Tiny-YOlOV3網絡是YOLOV3網絡的簡化版本,網絡結構如圖1所示。與YOLOV3類似,網絡中使用3×3和1×1兩種大小的卷積核,3×3的卷積核主要用來提取圖片的特征信息,1×1的卷積核可以在保持特征圖尺寸不變的前提下增加非線性特征,減少網絡訓練的參數。卷積層包含卷積操作、批歸一化處理和Leaky Relu三種基本操作。卷積操作是為了提取圖片的特征;批歸一化處理是通過一定的規范化方法,提高網絡的訓練速度,使網絡的收斂過程大大加快,防止網絡出現過擬合;Leaky Relu則是網絡使用的非線性激活函數。Tiny-YOLOV3主干網絡主要有7個3×3的卷積層及6個最大池化層,前5個最大池化層的步長為2,最后一個步長為1。當輸入大小為416×416的圖像時,整體網絡的輸出為13×13的特征圖,經過上采樣之后與第5個卷積層的輸出進行張量拼接,再進行卷積運算得到26×26大小的特征圖,最終網絡輸出兩個不同尺度的特征圖。小尺度特征圖具有較大的感受野,適合檢測大目標物體;大尺度特征圖具有較小的感受野,適合檢測小目標物體。

圖1 Tiny-YOLOV3網絡結構
相比較YOLOV3網絡,Tiny-YOlOV3網絡結構更加簡單,網絡層數大大減少,需要訓練的參數大大減少,特別適合于工程實現。尤其在旋翼無人機進行目標跟蹤時,由于機載處理器算力不足,無法運行深層的卷積神經網絡模型,而針對無人機的目標跟蹤又需要兼顧準確率和實時性的要求,那么Tiny-YOlOV3網絡便成了首要選擇。
由于Tiny-YOLOV3目標檢測算法最終輸出的是目標物體在像素坐標系下的像素坐標,因此要想計算目標在導航坐標系下的具體位置,需要先建立一個目標圖像的跟蹤模型,建立的模型如圖2所示。

圖2 四旋翼目標跟蹤模型
根據幾何關系,可以將目標位置P4=[xcn,ycn,zcn]由以下關系式表示:
P4=P1+P2+P3
(4)

P2=CbnbP2
(5)

P3=CbnCcbcP3
(6)

P4=P1+CbnbP2+CbnCcbcP3
(7)
最終可以得出:
(8)

假設實際中目標所處位置處地形變化不大,因此可以確定地面的海拔高度為目標的位置zcn,令CbnCcbM1-1=C,則以下關系式成立,即:
(9)
從而圖像深度信息計算如下:
(10)
最終計算出目標在導航坐標系下的位置為:
(11)

由于機載處理器目標檢測和識別的速度大概在13~14 FPS,也就是目標位置的更新頻率在13~14 Hz ,而在無人機控制中,位置環的控制頻率為20 Hz,同時考慮到目標檢測算法有時會檢測不到目標物體,導致目標跟蹤效果較差。此外,考慮到檢測結果的信號傳輸可能會受到設備本身和外界的干擾,因此需要建立目標的運動學模型,使用卡爾曼濾波器對目標位置進行濾波的同時預測目標物體的運動軌跡,保證目標位置更新頻率與位置控制器更新頻率一致,以實現四旋翼無人機對目標的穩定跟蹤。
卡爾曼濾波器作為一種順序最小二乘逼近,可以利用目標的動態信息,通過遞推方法得到目標的最優估計。這個估計可以是對當前的估計,也可以是對過去的估計。對于卡爾曼濾波來說,只需要獲得上一時刻的狀態估計值以及當前時刻的量測信息就可以對當前時刻的估計值進行計算,因此它是一種遞歸估計。卡爾曼濾波器分為兩個過程:時間更新和量測更新。時間更新是狀態的預估過程,即通過一步預測方程建立對當前狀態的先驗估計,同時計算狀態誤差協方差估計值,以便為狀態估計方程的計算做準備;量測更新即狀態的校正過程,利用量測更新方程在時間更新過程中的先驗估計值及當前量測值的基礎上計算當前狀態的后驗估計。

(12)
式中,Δt為更新周期。
(13)
式中,v(t)為量測噪聲,可以考慮為高斯噪聲。
對上面的運動學方程離散化可得狀態轉移矩陣、過程噪聲成型矩陣和量測矩陣為:

(14)
式中,I為4×4的單位矩陣,Ts為相鄰兩幀圖像之間的采樣間隔,即目標檢測算法識別目標的時間。
基于目標運動方程建立卡爾曼濾波方程,選取狀態初值xcn0=ycn0=0,Vx0=Vy0=0.8 m/s,加速度噪聲方差強度為Qax=Qay=0.000 9 m2/s4,量測噪聲方差強度為Rvx=Rvy=0.001 6 m2。仿真結果如圖3和圖4所示。

圖3 濾波前后目標位置對比

圖4 濾波誤差
從仿真結果可以看出,采用卡爾曼濾波后,目標在x方向誤差最大不超過0.06 m,在y方向誤差最大不超過0.06 m,濾波前后運動軌跡基本一致,說明采用卡爾曼濾波對目標軌跡的預測效果很好。
對于四旋翼無人機來說,良好的控制律設計是無人機實現穩定飛行的前提。對四旋翼無人機來說,高度控制獨立于姿態控制,位置控制則是基于無人機姿態的改變來進行控制的。因此為了保證無人機在目標跟蹤過程中的穩定飛行,本節通過對實驗室四旋翼無人機建立模型,分析設計后采用PID控制的方式,得到四旋翼無人機的控制律如下:
1)姿態控制律:
(15)

2)高度控制律:
(16)
式中,UT為高度控制量,m為旋翼無人機總質量,hg為無人機期望高度,h為無人機當前高度。
3)水平位置控制律:

(17)
其中:xg和yg為無人機水平期望位置,vxg和vyg為無人機水平期望速度,x和y是無人機當前水平位置,vx和vy為無人機當前水平速度,ux和uy是水平方向上等效控制量。
由于水平位置控制的最終目的是俯仰角和滾轉角的控制,因此姿態控制器目標姿態角的輸入為:
(18)
式中,φd和θd為姿態控制器滾轉角和俯仰角的期望輸入量。
基于第4節設計的控制器,通過Matlab/Simulink搭建仿真模型,將經過卡爾曼濾波后的目標運動軌跡輸入到位置控制器中,將目標的運動方向角作為四旋翼無人機偏航角的期望輸入,得到最終的仿真結果。
圖5和圖6為40 s內目標運動軌跡和四旋翼無人機運動軌跡,可以看出由于位置控制器存在調節時間,無人機運動相較于目標的運動存在一定的滯后,穩態誤差維持在0.5 m以內,基本不影響跟蹤的結果。最終目標水平位置為(39.56 m,29.88 m),無人機水平位置為(39.18 m,29.64 m),整體上兩者運動軌跡基本一致。圖7為三維空間下兩者運動軌跡對比,無人機先飛行到6 m的高度,然后進行目標軌跡的跟蹤,仿真結果表明雖然無人機與目標之間的運動軌跡存在一定的偏差,但不影響最終的跟蹤效果。

圖5 無人機位置控制結果

圖6 二維空間下運動軌跡對比

圖7 三維空間下運動軌跡對比
圖8為旋翼無人機的速度與目標運動的速度對比,初始時刻由于噪聲的影響,目標速度存在跳變,無人機速度經過一定的調節時間慢慢跟蹤上目標運動速度,雖然無人機速度有些滯后于目標速度,但整體偏差不超過0.2 m/s,速度運動曲線基本一致,說明旋翼無人機能夠很好地保持與目標之間的相對靜止。

圖8 運動速度對比
圖9為目標與無人機運動方向對比,初始時刻由于噪聲的影響,目標方向產生了突變,導致無人機與目標存在10°左右的夾角,經過一定的調節時間,無人機與目標的運動方向基本一致,穩態偏差在3°以內,航向控制效果良好。

圖9 運動方向對比
綜上所述,四旋翼無人機跟蹤地面目標的過程中,在軌跡跟蹤的同時控制無人機的速度和方向,使無人機始終沿著目標的運動軌跡飛行。仿真結果表明無人機位置跟蹤的精度在0.5 m以內,跟蹤過程中與目標的速度偏差不超過0.2 m/s,同時在航向控制上基本與目標運動方向一致,跟蹤效果良好。
本文針對Tiny-YOLOV3目標檢測算法存在目標漏檢的問題,同時考慮到實際中的噪聲干擾和無人機控制器的更新頻率,提出了一種聯合Tiny-YOLOV3和KF的四旋翼無人機目標跟蹤算法。通過建立目標跟蹤模型并設計四旋翼無人機控制律,最終通過仿真驗證了所提出算法的穩定可靠性。所提出的算法可以實現對單一目標的穩定跟蹤,但針對多個同類目標,還需對算法進行深入研究。