關(guān) 威,楊紫嫣
(沈陽航空航天大學(xué) 自動化學(xué)院,沈陽 110136)
目前,無人機在農(nóng)業(yè)植保、森林消防、遙感測繪、軍事巡航等領(lǐng)域中擔(dān)任著重要角色[1]。在無人機的使用中,導(dǎo)航系統(tǒng)是不可缺少的重要組成部分。
無人機定位技術(shù)主要依賴于GPS和慣性導(dǎo)航系統(tǒng)。但GPS定位會受到地形、人造建筑物等因素限制,易使系統(tǒng)信號被干擾中斷[2-3]。慣性導(dǎo)航系統(tǒng)不依賴于外部信息,但定位誤差隨時間增大,每次使用之前都需要校準(zhǔn)時間。因此,本文研究出一種更加穩(wěn)定的定位技術(shù),使無人機在外界干擾較強的環(huán)境下也能順利完成任務(wù),為無人機提供所需的位置信息[4-5]。視覺導(dǎo)航定位技術(shù)是通過景象匹配算法結(jié)合含有地理位置信息的衛(wèi)星遙感圖像實現(xiàn)的。與無人機通過衛(wèi)星定位相比,具有不受外界電磁干擾、更加穩(wěn)定等優(yōu)點。但衛(wèi)星遙感圖像經(jīng)過處理后具有數(shù)據(jù)量大和數(shù)據(jù)類型復(fù)雜多樣的特點,為了降低工作量,本文在景象匹配的算法基礎(chǔ)上,利用神經(jīng)網(wǎng)絡(luò)算法對衛(wèi)星地圖識別并分類[6-7]。
目前有許多種景象匹配的算法,如Harris、SIFT、SURF等[8]。SURF算法進行圖像匹配時,即使圖像間存在平移、旋轉(zhuǎn)等變換都能取得精確的匹配效果。所以本文在利用SURF算法[9]的基礎(chǔ)上,結(jié)合BP神經(jīng)網(wǎng)絡(luò)實現(xiàn)無人機的定位[10-11]。首先建立數(shù)據(jù)集,利用SURF算法獲取無人機圖形與瓦片的相似度參數(shù),表示兩幅圖像相似程度的量化標(biāo)準(zhǔn)。提取無人機拍攝的圖片與瓦片的不變矩,分別作為神經(jīng)網(wǎng)絡(luò)的輸出與輸入,建立神經(jīng)網(wǎng)絡(luò)模型并進行訓(xùn)練。最后,對本文研究方案進行性能測試,利用測試集進行測試,進入網(wǎng)絡(luò)中進行粗匹配,再進入SURF算法中精匹配,最后得到無人機具體的經(jīng)緯度。
SURF算法是圖像特征匹配常用的一種方法,具有尺度不變性,對于旋轉(zhuǎn)、亮度、噪聲等有很高的穩(wěn)定性[12]。在利用SURF算法進行圖像匹配時,首先建立圖像尺度空間,再在圖像尺度空間中尋找極值點,然后構(gòu)造特征描述向量,最后將求得的特征向量間的距離作為圖像相似度的判定依據(jù)。在建立數(shù)據(jù)集時,數(shù)據(jù)集的輸出即為圖像經(jīng)過SURF算法匹配后得到相似度參數(shù),具體步驟如下。
(1)構(gòu)造金字塔:采用變化的模板盒子尺寸對原圖像進行濾波,構(gòu)造出尺度空間。盒子尺寸濾波模板逐漸增大,并與積分圖像卷積,從而產(chǎn)生Hessian矩陣行列式的響應(yīng)圖像,最終構(gòu)造出金字塔。Hessian矩陣為
其中,Lxx、Lxy、Lyy為高斯濾波后圖像g(σ)在各個方向的二階導(dǎo)數(shù)。二階導(dǎo)數(shù)計算方法為:

=-2L(x)+L(x+1)+L(x-1)
L(x)=g(h(x))
其中h(x)為原始圖像的灰度值,L(x)是將h(x)高斯濾波處理后的圖像。
檢測關(guān)鍵點:對原圖進行變換,在原圖中求取每個像素的Hessian矩陣行列式,在變換的圖中找到極大值點,即圖像中的特征點。Hessian矩陣行列式為:
det(Happrox)=LxxLyy-(0.9Lxy)2。
(2)確定特征點主方向:以特征點為中心,在一定鄰域內(nèi),統(tǒng)計60度扇形內(nèi)所有點在水平和垂直方向的Haar小波響應(yīng)總和,其最大值為該特征點的主方向。
(3)構(gòu)造特征點描述子:以特征點為中心,將坐標(biāo)軸旋轉(zhuǎn)到主方向,按照主方向選取邊長為20 s(s是所檢測到該特征點所在的尺度)的正方形區(qū)域。分為16個子區(qū)域,在每個子區(qū)域統(tǒng)計25個像素相對于主方向的水平方向之和、垂直方向之和、水平方向絕對值之和、垂直方向絕對值之和的Haar小波特征,每一特征點形成64維的描述向量,然后歸一化。
當(dāng)無人機圖像與瓦片地圖兩幅圖像的SURF特征向量生成后,采用關(guān)鍵點特征向量的距離作為兩幅圖像中關(guān)鍵點的相似性度量,即相似度參數(shù)。相似度參數(shù)代表兩幅圖的相似程度,值越小代表兩幅圖匹配程度越高,兩幅圖的相似度參數(shù)作為BP神經(jīng)網(wǎng)絡(luò)的輸出。
本文提出的無人機定位算法采取粗匹配和精匹配兩步策略。首先,利用神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練無人機圖像與瓦片地圖之間的相似關(guān)系。通過神經(jīng)網(wǎng)絡(luò)對測試數(shù)據(jù)的判別選取出相似度較高的無人機圖像與瓦片;再基于SURF算法對相似度較高的無人機圖像與瓦片地圖進行精匹配;進而選出與無人機圖像匹配最好的瓦片地圖;最后,利用瓦片地圖坐標(biāo)與經(jīng)緯度坐標(biāo)之間的轉(zhuǎn)換公式,得到無人機的經(jīng)緯度信息,從而實現(xiàn)對無人機的定位。下面對算法進行詳細的描述。
(1)網(wǎng)絡(luò)輸入。在圖像處理中,有許多用來描述物體的特征,Hu矩是用來表示物體的一個重要的特征,且計算簡單,具有平移、旋轉(zhuǎn)和尺度不變性,適合于對圖像區(qū)域特征進行描述[13-15]。因此,本文提取無人機圖像與瓦片地圖的不變矩作為BP神經(jīng)網(wǎng)絡(luò)的輸入。因此,可建立樣本集I={I1,I2,…,In}。其中I1={x1,x2,…,x7},xi為無人機圖像與瓦片地圖不變矩之間的相似性,表1給出了部分樣本集。

表1 部分樣本數(shù)據(jù)集
(2)網(wǎng)絡(luò)輸出。網(wǎng)絡(luò)的輸出y為無人機圖像與瓦片地圖上對應(yīng)的SURF算法特征點的特征描述子之間的相似性,定義評價指標(biāo)為:

(3)網(wǎng)絡(luò)模型的建立。建立一個3層的神經(jīng)網(wǎng)絡(luò)模型,如圖1所示。

圖1 訓(xùn)練模型
網(wǎng)絡(luò)參數(shù)設(shè)置如下:
第一步,輸入層神經(jīng)元個數(shù)為7,輸出層神經(jīng)元個數(shù)為1。建立一個單隱函層的3層BP網(wǎng)絡(luò),根據(jù)如下經(jīng)驗公式選擇隱含層節(jié)點數(shù):
式中:n為輸入層節(jié)點個數(shù);m為輸出層節(jié)點個數(shù);a為1~10之間的常數(shù)。所以建立的網(wǎng)絡(luò)隱含層神經(jīng)元個數(shù)可設(shè)為4、6、8、10等。當(dāng)a的值為7,隱含層神經(jīng)元個數(shù)為10時,其均方差為0.089,其值最小。因此,確定網(wǎng)絡(luò)隱含層神經(jīng)元個數(shù)為10。
第二步,創(chuàng)建一個可訓(xùn)練的前饋網(wǎng)絡(luò)。因基于Levenberg-Marquardt算法的Trainlm函數(shù)具有運算速度快,誤差小的優(yōu)點。因此,本文選取Trainlm函數(shù)。輸入層到隱含層的激活函數(shù)為Tansig函數(shù):
隱含層到輸出層的激活函數(shù)為Purelin函數(shù):gx=x。
第三步,設(shè)置BP神經(jīng)網(wǎng)絡(luò)的參數(shù),其中,學(xué)習(xí)率為0.01,訓(xùn)練次數(shù)為1 000次,訓(xùn)練目標(biāo)0.001。
第四步,在建立好的BP網(wǎng)絡(luò)模型基礎(chǔ)上,通過無人機圖像與瓦片地圖不變矩之間的相似性預(yù)測無人機圖像與瓦片地圖的相似度。
本節(jié)利用SURF算法提取神經(jīng)網(wǎng)絡(luò)預(yù)測值較小的無人機圖像和瓦片地圖的特征點。預(yù)測值代表兩幅圖的相似程度,其值越小,兩幅圖匹配程度越高。其中特征點的匹配是通過計算兩組特征點描述子向量的絕對誤差和距離(SAD)實現(xiàn)的。
在神經(jīng)網(wǎng)絡(luò)粗匹配后得到無人機圖像與瓦片的多組數(shù)據(jù),求取一幅無人機圖像中的一個特征向量ri與一幅瓦片地圖中所有的特征向量si進行匹配,找到最小距離d1與第二小距離d2,d1/d2的值越小相似度越高,當(dāng)值小于設(shè)定閾值0.6時,則判定為匹配成功,結(jié)束精匹配過程。
本文的訓(xùn)練數(shù)據(jù)建立方法如圖1所示,共形成637個訓(xùn)練樣本,其中正樣本數(shù)為349,負樣本數(shù)為288。本文將在四幅無人機圖像U1、U2、U3、U4上驗證算法的有效性。無人機圖像的分辨率為4 000×3 000。經(jīng)過5次降采樣后分辨率分別為440×330、460×360、490×390、560×420、600×450。進一步提取無人機圖像Ui(i=1,2,3,4)的5張不同分辨率的圖像與15級谷歌地圖50張瓦片的不變矩,并計算它們之間的相似性(本文選用歐氏距離來計算相似性),最終生成Ui的250個測試數(shù)據(jù)。

圖5 無人機圖像U2地理位置
圖2-圖9給出了與無人機圖像U1、U2、U3、U4匹配最優(yōu)的瓦片及其匹配結(jié)果,并在Google地圖上標(biāo)記了無人機當(dāng)前所在的位置。

圖2 無人機圖像U1與瓦片匹配結(jié)果

圖3 無人機圖像U1地理位置

圖4 無人機圖像U2與瓦片匹配結(jié)果

圖6 無人機圖像U3與瓦片匹配結(jié)果

圖7 無人機圖像U3地理位置

圖8 無人機圖像U4與瓦片匹配結(jié)果

圖9 無人機圖像U4地理位置
從上述實驗結(jié)果可知,無人機拍攝的圖像與瓦片匹配效果較好,通過計算公式(1)、(2)得到無人機的地理位置信息。
(1)
(2)
其中l(wèi)on、lat分別為經(jīng)度與緯度,tileX、tileY為瓦片坐標(biāo),n為瓦片級別。
表2給出了無人機4個飛行區(qū)域所在的經(jīng)緯度。此實驗結(jié)果表明,BP神經(jīng)網(wǎng)絡(luò)的預(yù)測模型具有較高準(zhǔn)確性和可靠性。

表2 無人機的地理位置
從匹配時間上看,粗匹配算法在4幅圖像上的平均運行時間為0.055 7 s。為了得到更準(zhǔn)確的匹配結(jié)果,本文針對一幅無人機圖像構(gòu)造了250對樣本數(shù)據(jù)進行精匹配,平均的運行時間為3.21 s。
目前大部分無人機的導(dǎo)航都基于衛(wèi)星導(dǎo)航系統(tǒng),本文重點針對無人機在無法獲取衛(wèi)星導(dǎo)航信息的情況下,仍能有效導(dǎo)航的問題開展研究。本文基于視覺的無人機定位方法,不依賴于衛(wèi)星導(dǎo)航信息,僅通過機載攝像頭采集地面信息,并通過本文的算法對圖像進行處理,便可完成無人機的定位。實驗結(jié)果表明該算法具有較高的準(zhǔn)確性,具備一定的工程應(yīng)用價值。由于數(shù)據(jù)集較少,可以引入更豐富的數(shù)據(jù)源,從而提升模型的泛化性。此方法所消耗的時間不能夠滿足實時的要求,今后需要進一步探索研究。