姚 藝,黃衛(wèi)華,章 政,陳 陽,張子然
(武漢科技大學(xué)信息科學(xué)與工程學(xué)院,武漢 430081)
相比于基于GPS或慣導(dǎo)的無人機導(dǎo)航系統(tǒng),機器視覺導(dǎo)航方式具有成本低、適應(yīng)環(huán)境能力強、實時獲取場景信息以及同時定位和建圖等特點,基于機器視覺系統(tǒng)的目標(biāo)檢測和定位已經(jīng)成為微型旋翼無人機自主導(dǎo)航的關(guān)鍵技術(shù)之一[1]。
機器視覺分為單目視覺和多目視覺,其中雙目視覺是多目視覺的一種重要形式,它能夠直接提供目標(biāo)的三個維度信息,具有定位精度高、信息完整、成本低等優(yōu)勢。基于雙目視覺的導(dǎo)航技術(shù)在無人機系統(tǒng)中得到了良好應(yīng)用。侯永宏等[2]利用雙目視覺實現(xiàn)無人機自主未知室外環(huán)境感知,采用ORB算法獲取無人機位姿信息并采用SAD算法獲取環(huán)境和障礙物的三維坐標(biāo),由此實現(xiàn)了無人機的自主導(dǎo)航;張博翰等[3]針對無人機安全飛行問題,利用雙目視覺恢復(fù)周圍環(huán)境特征點的三維坐標(biāo),采用角點匹配方法計算視差圖,并通過視差圖檢測出障礙物并獲得目標(biāo)三維坐標(biāo);鮑繼宇等[4]利用雙目視覺獲取硬管式無人加油機的三維坐標(biāo),采用Harris算法進行特征提取與匹配,采用Sampson進行三維重構(gòu),獲得目標(biāo)三維坐標(biāo),有效解決了自主空中加油近距編隊階段的相對位姿問題。
基于此,以基于雙目視覺的四旋翼無人機為研究平臺,針對其自主著陸系統(tǒng)中地標(biāo)圖像存在模糊噪聲以及大量背景干擾問題,提出一種基于改進SIFT算法的無人機雙目視覺目標(biāo)識別與定位方法。利用圖像預(yù)處理操作將目標(biāo)物體準(zhǔn)確識別,并利用改進的SIFT算法提取目標(biāo)特征點,并采用局部敏感哈希算法進行特征匹配,提高特征匹配的效率和匹配精度,從而實現(xiàn)目標(biāo)精確識別并定位,以此提高雙目視覺系統(tǒng)的測量精度。最后,實驗結(jié)果證明了所設(shè)計算法的可行性和有效性。
無人機雙目視覺目標(biāo)識別與定位算法結(jié)構(gòu)如圖1所示,主要包括兩部分功能,地標(biāo)圖像預(yù)處理模塊和地標(biāo)特征提取與匹配模塊。
圖1 改進SIFT特征匹配算法
地標(biāo)圖像預(yù)處理模塊:由于圖像中存在模糊背景噪聲以及大量背景干擾,且獲取的地標(biāo)圖像中在HSV(hue saturation value)顏色空間中存在大量黃色和綠色,因此為了更利于地標(biāo)特征的提取,采用HSV顏色空間獲取彩色閾值,識別出地標(biāo),然后利用OTSU算法去除無人機運動產(chǎn)生的背景噪聲,從而分割出邊緣清晰的地標(biāo)。
地標(biāo)特征提取與匹配模塊:將SIFT算子與BRIEF描述符相結(jié)合,生成二進制特征描述符,減少特征的內(nèi)存占用,并采用局部敏感哈希LSH(locality-sensitive hashing)為匹配策略,提高特征匹配效率和精度,最后采用PROSAC(progressive sample consensus)漸進一致采樣算法剔除誤匹配特征點,提高地標(biāo)特征點匹配的精確性。
在基于雙目視覺的無人機自主導(dǎo)航系統(tǒng)中,采用如圖2所示的“H”型著陸地標(biāo),并基于HSV色彩空間的ROI算法對地標(biāo)圖像進行識別與分割??紤]到無人機在自主著陸過程中雙目視覺采集的地標(biāo)圖像易出現(xiàn)模糊背景噪聲的問題,采用OTSU算法獲得地標(biāo)的色彩閾值,從而對分割出的地標(biāo)邊界進行有效處理。
圖2 “H”型地標(biāo)
HSV顏色空間不易受光照的影響,并且更接近與人眼觀察事物的空間表示,因此采用基于HSV色彩空間的ROI算法識別地標(biāo)區(qū)域。HSV顏色空間模型中包含色度H、亮度V和飽和度S。經(jīng)過HSV轉(zhuǎn)換后的地標(biāo)圖像如圖3所示。
圖3 地標(biāo)的HSV顏色空間
首先,通過HSV顏色空間轉(zhuǎn)換公式[5]將地標(biāo)圖像中紅、藍(lán)的RGB顏色值轉(zhuǎn)化為黃、綠的HSV顏色值;然后,再將圖像中的每一個像素點與預(yù)先設(shè)定的HSV閾值進行判斷:對于符合分割閾值范圍的區(qū)域進行保留,不滿足分割閾值范圍的區(qū)域設(shè)為白色;最后,將HSV顏色轉(zhuǎn)換成RGB顏色合成像素后,顯示分割后的地標(biāo)。
采用OTSU算法[6]計算圖像中的灰度閾值,并利用該閾值去除模糊背景噪聲。通過計算方差尋找一個合適的灰度級,把圖像灰度分成兩部分,使得它們之間的灰度值差異最大。
(1)
結(jié)合地標(biāo)圖像的灰度信息,由式(1)獲取地標(biāo)圖像閾值,將背景噪聲與地標(biāo)進行分離,從而精確地識別彩色地標(biāo)區(qū)域。
尺度不變特征轉(zhuǎn)換(scale invariant feature transform,SIFT)算法[7]是一種用來提取圖像局部特征點的算法。傳統(tǒng)的SIFT算法在生成描述符的過程中存在計算復(fù)雜且描述符維數(shù)大等問題[8],鑒于BRIEF特征描述符[9]是一種通過計算二進制測試值來直接計算二進制字符串的特征描述方法,將BRIEF二進制描述符引入SIFT算法中替代浮點型SIFT描述符,設(shè)計了一種基于BRIEF算法的改進SIFT算法,解決傳統(tǒng)SIFT算法建立特征描述符效率低及占用內(nèi)存的問題,提高地標(biāo)特征點的提取效率。在此基礎(chǔ)上,采用局部敏感哈希[10]算法實現(xiàn)稀疏匹配搜索,由此提高地標(biāo)圖像的特征匹配效率。
(1)基于SIFT算法的關(guān)鍵點確定。采用SIFT算法對已識別的地標(biāo)圖像進行關(guān)鍵點提取,通過不同尺度下高斯差分核與圖像卷積生成的圖像DOG(different of gaussian)金字塔模型。
設(shè)地標(biāo)圖像的像素點(x,y)的二維高斯函數(shù)為:
(2)
式中,σ為標(biāo)準(zhǔn)偏差。
由此定義DOG函數(shù)為:
D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))?I(x,y)=
L(x,y,Kσ)-L(x,y,σ)
(3)
式中,?為卷積算子;I為卷積核;L=G?I。
將差分金子塔上的每一個像素點,與其上層、下層以及鄰域的26個像素點進行灰度比較,由此獲得極值點并將其作為候選特征點。在獲取圖像候選特征點后,對式(3)所示的DOG函數(shù)進行泰勒展開后獲取特征點X的位置信息D(X),即:
(4)
(5)
(2)基于BRIEF算法的特征點描述。由于傳統(tǒng)SIFT算法采用三線性插值的方法計算生成128維的特征描述符,使得SIFT特征提取計算量大的問題。將BRIEF算法引入SIFT算法中,利用BRIEF算法生成的特征描述符具有描述簡單、計算量小等特點,提高SIFT算法特征匹配效率??紤]到基于雙目視覺的無人機系統(tǒng)所獲取的地標(biāo)圖像易存在光照、視角等變化,會使得特征點發(fā)生變化,而BRIEF算法不具有旋轉(zhuǎn)不變性。因此,為了使BRIEF特征描述符具有旋轉(zhuǎn)不變性,將方向信息寫入到BRIEF特征描述符中,并將具有方向信息的二進制特征描述符引入到SIFT算法中代替SIFT特征描述符,從而生成具有方向、尺度及位置的二進制特征描述符。
BRIEF描述符屬于二進制描述符算法,即用0和1描述,二值化分段函數(shù)τ定義為:
(6)
式中,I(p)和I(q)分別是圖像I中像素點p和q的像素灰度值。則n維二進制特征向量可定義為:
(7)
在特征點4×4領(lǐng)域內(nèi)選取256對像素點(pi,qi),(其中i=1,...,256),將所有特征點對構(gòu)建成一個2×256的矩陣S:
(8)
為了使BRIEF特征描述符具有方向性,即對旋轉(zhuǎn)具有一定的魯棒性。利用特征點鄰域像素計算特征點(x,y)的梯度幅值m和梯度方向θ′分別為:
(9)
(10)
獲取特征點(x,y)鄰域像素的梯度后,使用直方圖統(tǒng)計特征區(qū)域的梯度幅值m和梯度方向θ′。直方圖的峰值代表了該特征點領(lǐng)域內(nèi)梯度的主方向θ,即該特征點的主方向。
然后,根據(jù)構(gòu)建成的矩陣S,以及根據(jù)特征點主方向θ已經(jīng)構(gòu)建好的BRIEF模式查找表,查找對應(yīng)主方向的旋轉(zhuǎn)陣Rθ,并以此得到具有方向信息的特征點對矩陣Sr。
Sr=RθS
(11)
按照式(6)、式(7)計算由式(11)獲得的具有方向信息的特征點的二進制特征向量,由此可得具有方向、尺度及位置的SIFT特征的二進制特征描述符。
(3)基于局部敏感哈希算法的特征點匹配。對雙目圖像進行特征匹配時,需要計算左圖與右圖中每個特征點之間的相似距離,從而易導(dǎo)致計算復(fù)雜及效率低等問題。局部敏感哈希算法能縮小特征點的搜索范圍,因此,采用局部敏感哈希算法進行特征匹配,將圖像中近鄰的特征點映射到同一哈希桶內(nèi),提高特征匹配效率。此外,由于存在誤匹配的問題,PROSAC[11]算法對采集到的特征點進行排序而非隨機采樣,大大減少隨機采樣尋找最優(yōu)特征匹配點對的迭代時間,因此采用PROSAC算法進一步剔除初匹配過程中的誤匹配點,從而獲得精確的特征匹配點對。
步驟1:將無人機雙目圖像轉(zhuǎn)化為HSV顏色空間,并用文獻[5]中HSV顏色轉(zhuǎn)換模型公式計算出地標(biāo)圖像中V通道、H通道以及S通道的值,獲得HSV顏色空間的地標(biāo)圖像,再通過式(1)計算得到OTSU最大類間方差,獲得灰度閾值,去除由于無人機震動、光照等原因產(chǎn)生的背景噪聲,精確地識別并分割出地標(biāo);
步驟2:對已識別的地標(biāo)構(gòu)建差分金子塔,由式(4)計算關(guān)鍵點的位置,式(9)和式(10)計算關(guān)鍵點的尺度和方向,最終通過直方圖統(tǒng)計鄰域內(nèi)像素的尺度和方向獲得特征區(qū)域主方向θ,再根據(jù)式(11)和特征區(qū)域主方向θ,將方向信息寫入BRIEF描述符中,并通過式(7)計算旋轉(zhuǎn)后特征點的二進描述符,獲得具有方向、尺度及位置的二進制描述符的SIFT特征;
步驟3:采用局部敏感哈希算法將左右圖像中的二進制描述符映射變換到哈希桶中,并將左圖像中或右圖像中相鄰的特征點映射到同一個桶中。以此方式進行搜索,獲得特征點之間的匹配關(guān)系;
步驟4:利用PROSAC算法對步驟3中的特征匹配對進行誤匹配剔除,獲取精確的特征匹配對;
步驟5:利用三角形相似原理計算特征點的三維坐標(biāo),實現(xiàn)對目標(biāo)特征的準(zhǔn)確識別和定位。
搭建的雙目視覺無人機實驗平臺由基于32位ARM-CortexM3內(nèi)核的STM32F103RCT6單片機作為四旋翼無人機的飛控模塊、雙目圖像采集模塊、通信模塊、顯示模塊及驅(qū)動模塊等組成,其中雙目相機由兩個置于同一水平線上的CCD感光元件組成,且以下視方式安裝在無人機上。雙目相機最大分辨率為2560×960,幀率為60 fps,最小分辨率為640×240,幀率為60 fps。選取無人機在室內(nèi)自然場景下采集的地標(biāo)圖像數(shù)據(jù)進行實驗。
無人機雙目視覺采集的地標(biāo)圖像如圖4所示。地標(biāo)圖像的左、右目圖像存在無關(guān)背景信息、運動模糊以及背景光照不均等問題,且兩幅圖像中的“H型”地標(biāo)未處于同一水平線上。
(a) 左目圖像 (b) 右目圖像
(1) 背景去噪
針對無人機飛行過程中高度越高,背景噪聲越多,從而導(dǎo)致目標(biāo)邊界處理效果不佳的問題,選取無人機在不同高度處采集的圖像進行處理。以右目圖像的預(yù)處理過程為例,分別采用基于HSV的ROI算法和基于OTSU與HSV的ROI算法對雙目無人機在370 mm和970 mm飛行高度所獲取的右目圖像進行圖像預(yù)處理。首先,采用基于HSV色彩分量的ROI算法對地標(biāo)進行識別處理,其處理的彩色閾值分別為(2,76,77)和(255,255,255);然后,采用OTSU算法計算識別地標(biāo)后的灰度閾值(閾值T=147),利用該閾值將背景噪聲與地標(biāo)進行分離,從而去除無人機抖動產(chǎn)生的背景噪聲。實驗結(jié)果如表1所示。相較于基于HSV的ROI算法來講,基于OTSU與HSV的ROI算法能得到邊界清晰的地標(biāo),較好地去除地標(biāo)邊界噪聲。由此說明,目標(biāo)識別預(yù)處理算法能較好的識別地標(biāo)并對分割出的地標(biāo)邊界進行有效處理。
表1 目標(biāo)識別與分割算法
(2)非同一水平極線的處理
針對無人機處于飛行狀態(tài)導(dǎo)致采集到的地標(biāo)圖像極線不在同一水平線上的問題,采用極線校正的方式對經(jīng)目標(biāo)識別處理后的地標(biāo)進行處理,則圖4經(jīng)過目標(biāo)識別與校正預(yù)處理后的結(jié)果如圖5所示。
圖5 目標(biāo)識別與校正預(yù)處理
為了準(zhǔn)確提取地標(biāo)上的特征,采用傳統(tǒng)的SIFT算法對原始雙目地標(biāo)圖像進行特征匹配操作。對圖4所示的原始雙目圖像進行極線校正,在此基礎(chǔ)上未采用目標(biāo)識別預(yù)處理操作和采用目標(biāo)識別預(yù)處理操作的特征匹配結(jié)果分別如圖6和圖7所示。
圖6 未采用目標(biāo)識別的特征匹配結(jié)果
圖7 采用目標(biāo)識別的特征匹配結(jié)果
將圖6和圖7所示的特征匹配結(jié)果進行對比。結(jié)果表明,未經(jīng)目標(biāo)識別的雙目圖像對地標(biāo)特征提取的特征點少,且地標(biāo)特征提取準(zhǔn)確率低;而經(jīng)目標(biāo)識別的雙目圖像對地標(biāo)提取的特征點多。由此說明基于OTSU與HSV的ROI算法能有效的識別并分割出地標(biāo),從而提高地標(biāo)特征提取正確率。
為了提高特征匹配效率及準(zhǔn)確率,將BRIEF描述符引入SIFT算法中代替SIFT特征描述符,采用所設(shè)計的改進SIFT算法對圖4所示的雙目地標(biāo)圖像進行處理,基于改進SIFT算法的特征匹配結(jié)果如圖8所示。
圖8 改進SIFT算法的特征匹配結(jié)果
在特征點相關(guān)鄰域內(nèi)選取n=256對(x,y)構(gòu)造256 Bit的BRIEF特征向量。特征向量所需字節(jié)為:
Bit=n/8
(12)
則BRIEF特征描述符所需存儲空間為32字節(jié),對比具有128維的浮點型SIFT特征描述符,占用的512字節(jié)的存儲空間,BRIEF特征描述符所占用的內(nèi)存減少94%。
統(tǒng)計并對比圖7和圖8的處理時間、特征匹配正確數(shù)量以及雙目圖像的特征像素坐標(biāo),其中像素坐標(biāo)選取位于“H”型地標(biāo)中心周圍處的特征。對比結(jié)果如表2和表3所示。結(jié)果表明:在目標(biāo)特征像素坐標(biāo)相差不大的情況下,改進SIFT算法的處理時間、正確匹配數(shù)量分別是傳統(tǒng)SIFT算法的1/2倍、2倍,改進SIFT算法能提高目標(biāo)的匹配正確率,同時降低匹配時間,且能獲得準(zhǔn)確的特征匹配點對的像素坐標(biāo)。
表2 特征匹配時間和正確數(shù)量對比
表3 左右特征像素坐標(biāo)匹配對比
為了獲得無人機與地標(biāo)之間的相對位置關(guān)系,分別選取圖7和圖8所示匹配點對計算每個特征點的三維距離,并將平均三維距離結(jié)果與測距儀對地標(biāo)中心與雙目視覺光心的實際距離進行對比。雙目視覺的光心與地標(biāo)中心的實際距離為970 mm。傳統(tǒng)SIFT算法與改進SIFT算法所獲得的測距結(jié)果如表4所示。結(jié)果表明,改進SIFT算法的測距誤差百分比低于傳統(tǒng)SIFT算法的測距誤差百分比的5倍,能精確的實現(xiàn)基于雙目視覺的無人機目標(biāo)位置定位。
表4 距離測量結(jié)果對比
針對雙目無人機自主著陸系統(tǒng)的圖像目標(biāo)識別問題,提出一種基于改進SIFT算法的無人機雙目視覺目標(biāo)識別與定位方法。采用基于OTSU與HSV的ROI算法對目標(biāo)物體準(zhǔn)確識別,并利用改進的SIFT算法提取目標(biāo)特征點,再采用局部敏感哈希算法進行特征匹配,提高特征匹配的效率和匹配精度,從而提取完整的地標(biāo)信息并進行定位,以此提高雙目視覺系統(tǒng)的測量精度。實驗結(jié)果證明,相比于傳統(tǒng)的目標(biāo)識別算法,本文算法可有效滿足于雙目無人機自主著陸系統(tǒng)對目標(biāo)特征提取的正確性及效率要求,以及較好的特征匹配精度,有效的保證無人機自主著陸對目標(biāo)的精確定位。