本發(fā)明屬于圖像處理技術領域,更進一步涉及一種無人機車輛跟蹤方法,可用于城市道路下復雜環(huán)境的車輛跟蹤。
背景技術:
近年來,無人機事業(yè)發(fā)展迅速,由于具有結構簡單,高靈活性、機動性強、成本低廉、便于裝備各類傳感器等優(yōu)點,同時可在復雜環(huán)境中進行懸停和垂直起降,無人機是完成目標檢測、目標跟蹤、監(jiān)控等任務的理想平臺。目前無人機已經應用在諸多目標監(jiān)控與跟蹤領域中。
基于無人機的車輛跟蹤是一個典型應用,可利用無人機的車輛跟蹤進行逃犯追捕、基于車輛跟蹤的航拍跟拍、電影拍攝等,具有重要現實意義。但由于在城市環(huán)境中,因為人行天橋、立交橋等復雜遮擋存在,基于無人機的車輛跟蹤易發(fā)生跟蹤目標丟失,致使跟蹤失敗。所以,利用無人機上搭配的傳感器,結合航拍下車輛跟蹤的特點,是一種有效解決無人機的車輛跟蹤的方案。
成都通甲優(yōu)博科技有限責任公司的專利申請“一種基于無人機動平臺的車輛跟蹤方法”(公開號:CN104881650A,申請?zhí)枺?01510284911.6,J,申請日:2015年5月29日)中公開了一種基于無人機動平臺的車輛跟蹤方法。該方法主要通過目標車輛在當前視頻幀中的位置預測目標車輛接下去的運動軌跡,并根據預測位置調整無人機的運動方向,從而實現車輛的無人機航拍跟蹤。當在跟蹤目標車輛的時候發(fā)生目標丟失的情況,還利用卡爾曼濾波器預測目標車輛在后續(xù)視頻幀中可能出現的區(qū)域,并在后續(xù)視頻中標示該區(qū)域以便操作人員在視頻幀中快速找到目標車輛,進一步增加目標車輛跟蹤的穩(wěn)定性。該方法的不足是整個實現方案無法有效判斷目標車輛是否丟失,同時目標丟失后雖然利用卡爾曼濾波來預測后續(xù)視頻中可能出現的位置,但仍需要操作人員在視頻幀查找目標,無法實現自動化跟蹤。
技術實現要素:
本發(fā)明的目的在針對上述現有技術的不足,提供一種基于嵌入式平臺的無人機車輛跟蹤方法,以有效防止目標被遮擋導致跟蹤目標丟失的情況出現,提高車輛跟蹤的魯棒性,實現自動化跟蹤。
本發(fā)明的技術方案是:通過在無人機上搭載嵌入式平臺對目標車輛使用核相關濾波算法進行目標跟蹤,并將跟蹤結果直接反饋給飛行控制模塊控制無人機的飛行。在跟蹤過程中,當利用車輛分類器判斷出跟蹤目標已丟失時,如果跟蹤目標在飛行區(qū)域標記的地圖的遮擋區(qū)域中,則結合傳感器信息在目標可能出現的區(qū)域進行目標檢測,否則使用卡爾曼濾波器預測被遮擋的目標的位置。其實現步驟包括如下:
(1)訓練一個車輛分類器:利用無人機在城市交通場景中進行航拍,在航拍視頻中提取有車輛的正樣本,無車輛的負樣本,并利用正、負樣本訓練一個車輛分類器;
(2)標記地圖:通過地圖軟件獲取飛行區(qū)域的地面地圖,并標記出立交橋、隧道這些出現車輛遮擋區(qū)域的入口和對應的出口,得到被標記的地圖;
(3)初始化跟蹤目標的位置矩形框:
(3a)通過攝像頭,獲取一幀圖像,通過視頻解碼器解碼后加載到嵌入式平臺的內存中,同時回傳給地面控制人員;
(3b)地面控制人員在獲取的圖像中選取一個將跟蹤目標包含在內的矩形框,將所選的矩形框作為跟蹤目標的位置矩形框;
(3c)用位置矩形框和水平垂直速度初始化卡爾曼濾波器,即將水平垂直速度初始化為0,同時用跟蹤目標的圖像初始化核相關跟蹤器;
(4)通過攝像頭獲取一幀圖像,并由視頻解碼器解碼后加載到嵌入式平臺的內存中;
(5)利用核相關濾波算法計算出跟蹤器與當前幀圖像的特征的響應矩陣,當前幀圖像目標的位置矩形框被識別為響應矩陣最大值的位置;
(6)使用車輛分類器判斷目標是否被遮擋,如果是,則執(zhí)行步驟(7);否則,執(zhí)行步驟(12);
(7)利用傳感器模塊獲得的無人機飛行參數,計算目標在被標記的地圖中的位置,并判斷該位置是否在被標記的地圖的遮擋區(qū)域中,如果是,則執(zhí)行步驟(8);否則,執(zhí)行步驟(11);
(8)利用被標記的地圖得到被遮擋目標對應的出口區(qū)域,將出口區(qū)域轉換到當前幀圖像中,再通過目標檢測算法在當前幀圖像中篩選出目標的候選位置矩形框;
(9)在當前幀圖像中,對每個目標的候選位置矩形框,都利用核相關濾波算法計算出跟蹤器與當前幀圖像的特征的響應矩陣,求出所有響應矩陣最大值的位置,作為當前幀圖像目標的位置矩形框;
(10)嵌入式平臺發(fā)送懸停指令,通過飛行控制模塊令無人機懸停,執(zhí)行步驟(13);
(11)使用卡爾曼濾波器在當前幀圖像中預測出目標的位置矩形框;
(12)利用當前幀圖像中目標的位置矩形框更新卡爾曼濾波器和跟蹤器,并通過飛行控制模塊,嵌入式平臺發(fā)送飛行指令使目標偏移到攝像頭拍攝的中心,執(zhí)行步驟(13);
(13)通信模塊檢測地面控制人員是否發(fā)送停止跟蹤的信號,如果是,則結束目標跟蹤;否則,返回步驟(4)。
與現有技術相比,本發(fā)明具有以下優(yōu)點:
第一,本發(fā)明提出在無人機上搭載嵌入式平臺,并在無人機上進行在線目標跟蹤與檢測,克服了原有技術中需要遠端處理器的缺點,降低了跟蹤過程中通信模塊的傳輸帶寬,減少了傳輸干擾。
第二,本發(fā)明利用無人機上的傳感器模塊,同時結合被標記的地圖信息,對跟蹤目標發(fā)生遮擋時進行預測,解決了現有技術中在復雜交通場景下未能對跟蹤目標發(fā)生遮擋后再重新檢測的問題,大大提高了跟蹤算法抗遮擋的魯棒性,實現目標在復雜場景中的自主跟蹤。
第三,本發(fā)明使用卡爾曼濾波器,在跟蹤目標的直線行駛過程中發(fā)生遮擋時用卡爾曼濾波器的輸出作為跟蹤結果,充分利用了跟蹤目標的運動信息,提高了跟蹤算法抗遮擋的魯棒性。
第四,本發(fā)明使用目標檢測算法,在跟蹤目標發(fā)生丟失需要對指定區(qū)域檢測時,通過篩選減少了候選框的數目,在不降低檢測準確率的同時,保證跟蹤處理的實時性。
附圖說明
圖1是本發(fā)明的實現流程圖。
圖2是本發(fā)明使用的跟蹤系統(tǒng)的示意圖。
具體實施方式
以下結合附圖對本發(fā)明作進一步詳細描述。
參照圖2,本發(fā)明使用的跟蹤系統(tǒng)包括嵌入式平臺、攝像頭、視頻解碼模塊、傳感器模塊、存儲器模塊、飛行控制模塊和通信模塊。其中,嵌入式平臺負責與其他模塊通信并完成目標自主跟蹤的處理;傳感器模塊配有氣壓計和全球定位系統(tǒng)模塊,用于獲取無人機的飛行高度與全球定位系統(tǒng)GPS信息;攝像頭模塊用于采集圖像幀并將圖像發(fā)送給視頻解碼模塊進行解碼;視頻解碼模塊完成碼流的解碼并將解碼后得到的視頻幀傳輸給嵌入式平臺;通信模塊與地面控制人員進行通信,用于傳送視頻幀圖像和接受地面控制人員的控制信號;飛行控制模塊根據飛行控制信號控制無人機的飛行。
參照圖1,對本發(fā)明基于圖2系統(tǒng)進行無人機車輛跟蹤的方法,其實現步驟如下。
步驟1,訓練一個車輛分類器。
現有的車輛分類器有多種,包括級聯分類器、隨機森林、支持向量機SVM等,采樣不同的分類器有不同的訓練方式。本發(fā)明采用但不限于支持向量機SVM車輛分類器,其訓步驟如下:
(1a)在航拍視頻中手工提取有車輛的正負樣本,正負樣本都通過開源計算機視覺庫OpenCV中的圖像縮放函數resize將圖像統(tǒng)一縮放到64×64大小,得到正樣本的訓練數據posData和負樣本的訓練數據negData;
(1b)調用開源計算機視覺庫OpenCV中的支持向量機類CvSVM的成員函數train,利用正樣本訓練數據posData和負樣本訓練數據negData生成車輛分類器svm.xml。
步驟2,標記地圖。
通過全能電子地圖下載器下載飛行區(qū)域的地圖,找到立交橋、隧道這些出現車輛遮擋區(qū)域的入口,分別用不同的正整數標記,并且將入口到對應的多個出口的全球定位系統(tǒng)偏移記錄下來,沒有遮擋的區(qū)域則用0標記。
步驟3,初始化跟蹤目標的位置矩形框。
(3a)通過攝像頭,獲取一幀圖像,通過視頻解碼器解碼后加載到嵌入式平臺的內存中,同時回傳給地面控制人員,嵌入式平臺是指NVIDIA嵌入平臺Jetson TX1;
(3b)地面控制人員在獲取的圖像中選取一個將跟蹤目標包含在內的矩形框,將所選的矩形框作為跟蹤目標的位置矩形框;
(3c)用位置矩形框和水平垂直速度初始化卡爾曼濾波器,具體步驟如下:
(3c1)調用開源計算機視覺庫OpenCV中的卡爾曼濾波器分配函數cvCreateKalman創(chuàng)建一個觀測向量為4維和狀態(tài)向量為4維的卡爾曼濾波器KF,其中狀態(tài)向量的前兩維是位置矩形框的坐標,后兩維是跟蹤目標的水平和垂直速度并初始化為0;
(3c2)調用C語言的內存拷貝函數memcpy將轉移矩陣T拷貝到卡爾曼濾波器KF的轉移矩陣參數中,轉移矩陣T的定義如下:
(3d)用跟蹤目標的圖像初始化核相關跟蹤器,得到跟蹤器的模型參數和系數α,具體步驟如下:
(3d1)利用前一幀獲得的目標的位置矩形框取出當前幀中對應的圖像,作為目標圖像I;
(3d2)對目標圖像I中每個像素點的下標(i,j)都用下列公式計算出高斯標簽矩陣的元素Y(i,j),
其中,i=0,1,...,m-1;j=0,1,...,n-1;m表示目標圖像I的高度;n表示目標圖像I的寬度;exp(·)表示以自然常數e為底的指數操作;σ表示高斯函數的標準差;cx表示目標圖像I中心的列坐標;cy表示目標圖像I中心的行坐標;
(3d3)用所有計算出的高斯標簽矩陣元素Y(i,j)組成高斯標簽矩陣Y;
(3d4)通過hog特征提取算法或者顏色特征提取算法或灰度特征提取算法得到目標圖像I的特征X,用二維離散傅里葉變換把X變換到頻域,得到頻域特征并將作為跟蹤器的模型參數
(3d5)按照下列公式計算出核相關矩陣K:
其中,exp(·)表示以自然常數e為底的指數操作;σ表示高斯核函數的標準差;i表示特征的維度;N表示特征的個數;||·||2表示向量的二范數;表示二維離散傅里葉逆變換;表示特征的第i維;·表示矩陣的對應元素相乘操作;(·)*表示取共軛操作;
(3d6)利用上述(3d3)計算出的核相關矩陣K和上述(3d5)計算出的高斯標簽矩陣Y,按照下列公式計算出跟蹤器的系數α:
其中,λ是跟蹤器的模型泛化因子,取值為1x10-4;表示二維離散傅里葉逆變換;表示高斯標簽矩陣Y的二維離散傅里葉變換;表示高斯標簽矩陣Y的二維離散傅里葉變換。
步驟4,獲取一幀圖像并存儲。
將攝像頭的拍攝視角垂直向下,調用開源計算機視覺庫OpenCV中的視頻類VideoCapture的視頻幀讀取函數read,由攝像頭拍攝獲取一幀交通場景的圖像,并通過視頻解碼器解碼后加載到跟蹤系統(tǒng)的嵌入式平臺內存中。
步驟5,使用核相關算法跟蹤目標。
利用核相關濾波算法計算出跟蹤器與當前幀圖像特征的響應矩陣,將當前幀圖像目標的位置矩形框確定為響應矩陣最大值的位置,其中,核相關濾波算法的具體實現步驟如下:
(5a)利用前一幀獲得的目標位置矩形框取出當前幀中對應的圖像,作為目標圖像I;
(5b)通過hog特征提取算法或者顏色特征提取算法或灰度特征提取算法得到目標圖像I的特征X,并用二維離散傅里葉變換把X變換到頻域得到頻域特征
(5c)按照下列公式計算出跟蹤器的樣本模型與目標圖像I的頻域特征的核相關矩陣K:
其中,exp(·)表示以自然常數e為底的指數操作;σ表示高斯核函數的標準差;i表示特征的維度;N表示特征的個數;||·||2表示向量的二范數;表示二維離散傅里葉逆變換;表示頻域特征的第i維;表示跟蹤器的樣本模型第i維參數;·表示矩陣的對應元素相乘操作;(·)*表示取共軛操作;
(5d)按照下列公式計算出跟蹤器系數α和核相關矩陣K的響應矩陣R:
其中,real(·)表示取實部操作;表示二維離散傅里葉逆變換;表示系數α的二維離散傅里葉變換;表示核相關矩陣K的二維離散傅里葉變換;·表示矩陣的對應元素相乘操作。
步驟6,使用車輛分類器判斷目標是否被遮擋。
將車輛分類器svm.xml加載到嵌入式平臺的內存中,將上述(5a)中的目標圖像I縮放到64×64大小后得到縮放后的目標圖像I′,再調用開源計算機視覺庫OpenCV中的支持向量機類CvSVM的成員預測函數predict對目標圖像I′進行分類,如果分類結果為負樣本,則判斷目標被遮擋,執(zhí)行步驟11,否則,判斷目標為沒有被遮擋,執(zhí)行步驟7。
步驟7,利用標記地圖判斷目標是否在標記地圖的遮擋區(qū)域。
通過無人機上的傳感器模塊獲取無人機飛度高度和GPS信息,利用標記地圖判斷目標是否在地圖標記的遮擋區(qū)域,如果是,則執(zhí)行步驟10,否則,執(zhí)行步驟8。
所述判斷目標是否在地圖標記的遮擋區(qū)域的具體步驟如下:
(7a)在圖像中獲取跟蹤目標到圖像中心點的像素水平偏移ox和像素垂直偏移oy,分別按照下列公式計算出跟蹤目標相對視頻中心點的全球定位系統(tǒng)GPS水平偏移gx和垂直偏移gy:
gx=ox×h/f/c/cos(θ) <7>
gy=oy×h/f/c <8>
其中,h表示由傳感器模塊得到的無人機飛行高度;θ表示由傳感器模塊得到的無人機飛行緯度;f表示攝像頭的景深;c表示像素偏移到全球定位系統(tǒng)GPS偏移的常數,取值為2.38363x10-6;
(7b)對水平偏移gx和垂直偏移gy分別加上傳感器模塊得到的無人機全球定位系統(tǒng)GPS坐標值,得到跟蹤目標的全球定位系統(tǒng)GPS坐標值;
(7c)由跟蹤目標的全球定位系統(tǒng)GPS坐標值,由地圖軟件轉換到被標記的地圖中,得到目標在被標記的地圖中的位置;
(7d)由目標在被標記的地圖中的位置,得到目標是否在被遮擋區(qū)域中的非負整數值,如果非負整數值大于0,則表示目標在遮擋區(qū)域中,否則,表示無人機不在被遮擋標記區(qū)域。
步驟8,篩選出可能包含目標的位置矩形框。
通過目標檢測算法,在標記的出口區(qū)域中篩選出可能包含目標的位置矩形框,具體步驟如下:
(8a)利用上述(7d)目標在被遮擋區(qū)域中的非負整數值,在被標記的地圖中,取得對應出口的全球定位系統(tǒng)的水平偏移gx和垂直偏移gy,按照下列公式計算出像素水平偏移ox和垂直偏移oy:
ox=gx×cos(θ)×f×c/h <9>
oy=gy×f×c/h <10>
其中,h表示由傳感器模塊得到的無人機飛行高度;θ表示由傳感器模塊得到的無人機飛行緯度;f表示攝像頭的景深;c表示像素偏移到全球定位系統(tǒng)GPS偏移的常數,取值為2.38363x10-6;
(8b)對像素水平偏移ox和垂直偏移oy分別加上跟蹤目標的位置,得到圖像幀中目標候選位置矩形框的位置;
(8c)由現有的目標檢測算法得到一系列的候選位置矩形框:
現有的目標檢測算法有多種,包括基于Adaboost的級聯分類器、BING目標檢測算法、Selective Search方法等。本發(fā)明采用但不限于BING目標檢測算法得到一系列的候選位置矩形框;
(8d)去掉每個候選位置矩形框中與被遮擋的目標尺寸不相匹配的候選位置矩形框,對保留下的候選位置矩形框,根據檢測出的閾值進行降序排序,并選擇排序后互不重疊的前若干個候選位置矩形框。
步驟9,使用核相關算法在可能區(qū)域跟蹤目標。
在當前幀圖像中,對每個目標的候選位置矩形框均取出當前幀中的對應圖像,作為對應的候選目標圖像H,再對候選目標圖像H執(zhí)行核相關濾波算法,得到對應的響應矩陣R,其具體步驟如下:
(9a)通過hog特征提取算法或者顏色特征提取算法或灰度特征提取算法得到候選目標圖像H的特征X,并用二維離散傅里葉變換把X變換到頻域,得到頻域特征
(9b)按照下列公式計算出跟蹤器的樣本模型與候選目標圖像H的頻域特征的核相關矩陣K:
其中,exp(·)表示以自然常數e為底的指數操作;σ表示高斯核函數的標準差;i表示特征的維度;N表示特征的個數;||·||2表示向量的二范數;表示二維離散傅里葉逆變換;表示特征X的第i維特征;表示跟蹤器的樣本模型第i維參數;·表示矩陣的對應元素相乘操作;(·)*表示取共軛操作;
(9c)按照下列公式計算出跟蹤器的系數α和核相關矩陣K的響應矩陣R:
其中,real(·)表示取實部操作;表示二維離散傅里葉逆變換;表示系數α的二維離散傅里葉變換;表示核相關矩陣K的二維離散傅里葉變換;·表示矩陣的對應元素相乘操作。
步驟10,控制無人機懸停。
嵌入式平臺發(fā)送無人機的懸停指令到飛行控制模塊,飛行控制模塊在接受到懸停指令后停止無人機的水平移動和垂直移動,使得無人機在空中盤旋,執(zhí)行步驟13。
步驟11,使用卡爾曼濾波器跟蹤目標的位置。
調用開源計算機視覺庫OpenCV中的卡爾曼預測函數cvKalmanPredict,計算出卡爾曼濾波器KF的預測向量,將預測向量的前兩維數值作為預測出的跟蹤目標的水平坐標x和垂直坐標y,并將x和y作為當前幀圖像中目標位置矩形框的位置。
步驟12,利用當前幀圖像中目標的位置矩形框更新卡爾曼濾波器和跟蹤器,并通過飛行控制模塊,嵌入式平臺發(fā)送飛行指令使目標偏移到攝像頭拍攝的中心。
(12a)將當前幀圖像中目標的位置矩形框作為測量向量的前兩維,將前一幀和當前幀目標的位置矩形框的差值作為觀測向量的后兩維,調用開源計算機視覺庫OpenCV中的卡爾曼校正函數cvKalmanCorrect利用測量向量更新卡爾曼濾波器KF;
(12b)用幀圖像中的目標更新跟蹤器,具體步驟如下:
(12b1)利用當前幀目標的位置矩形框取出當前幀中對應的圖像,作為目標圖像I;
(12b2)通過hog特征提取算法或者顏色特征提取算法或灰度特征提取算法得到目標圖像I的特征X,用二維離散傅里葉變換把X變換到頻域,得到頻域特征并作為當前幀的模型參數
(12b3)對目標圖像I中每個像素點的下標(i,j)都用下列公式計算出高斯標簽矩陣的元素Y(i,j),
其中,i=0,1,...,m-1;j=0,1,...,n-1;m表示目標圖像I的高度;n表示目標圖像I的寬度;exp(·)表示以自然常數e為底的指數操作;σ表示高斯函數的標準差;cx表示目標圖像I中心的列坐標;cy表示目標圖像I中心的行坐標;
(12b4)用所有計算出的高斯標簽矩陣元素Y(i,j)組成高斯標簽矩陣Y;
(12b5)按照下列公式計算出跟蹤器的核相關矩陣K:
其中,exp(·)表示以自然常數e為底的指數操作;σ表示高斯核函數的標準差;i表示特征的維度;N表示特征的個數;||·||2表示向量的二范數;表示二維離散傅里葉逆變換;Xi表示特征X的第i維;·表示矩陣的對應元素相乘操作;(·)*表示取共軛操作;
(12b6)利用上述計算出的核相關矩陣K和高斯標簽矩陣Y,按照下列公式計算出跟蹤器的系數α:
其中,λ是跟蹤器的模型泛化因子;表示二維離散傅里葉逆變換;表示二維離散傅里葉變換;
(12b6)按照如下公式更新跟蹤器的系數α和樣本模型
α:=pα+(1-p)α′ <16>
其中,:=表示賦值操作;p是跟蹤器模型的更新因子,取值為0.05;α′表示前一幀的跟蹤器系數;表示前一幀的樣本模型;
(12c)在當前視頻幀中,根據目標視頻幀中心的偏移方向,嵌入式平臺發(fā)送與偏移方向相反的飛行控制指令,控制無人機飛行,使得目標偏移到攝像頭拍攝的中心。
步驟13,通信模塊檢測地面控制人員是否發(fā)送停止跟蹤的信號。
通信模塊檢測地面控制人員是否發(fā)送停止跟蹤的信號,如果檢測到停止跟蹤的信號,則無人機系統(tǒng)結束目標跟蹤,嵌入式平臺退出目標跟蹤的處理,否則,嵌入式平臺等待讀入下一幀圖像并繼續(xù)跟蹤目標,返回步驟4。
以上描述僅是本發(fā)明的一個具體實施,不構成對本發(fā)明的任何限制,顯然對于本領域的專業(yè)人員來說,在了解了本發(fā)明內容和原理后,都可能在不背離本發(fā)明原理、結構的情況下,進行形式和細節(jié)上的各種修正和改變,但是這些基于本發(fā)明思想的修正和改變仍在本發(fā)明的權利要求保護范圍之內。