羅哲++朱文球++張長隆
摘要:為了能夠?qū)崟r(shí)獲得無人機(jī)著陸時(shí)所需要的位置信息,文章提出了一種基于視覺的四旋翼無人機(jī)著陸算法。針對(duì)該算法設(shè)計(jì)出一種新的視覺著陸標(biāo)識(shí),然后通過算法中改進(jìn)的自適應(yīng)閾值方法和相對(duì)簡單的著陸標(biāo)識(shí)識(shí)別方法能夠快速實(shí)時(shí)的檢測到視覺著陸標(biāo)識(shí),并能夠從著陸標(biāo)識(shí)中解算出無人機(jī)需要的位置參數(shù)。實(shí)驗(yàn)表明,該算法能夠?qū)崟r(shí)準(zhǔn)確計(jì)算出無人機(jī)著陸時(shí)相對(duì)于視覺著陸標(biāo)識(shí)的位置信息。
關(guān)鍵詞:四旋翼無人機(jī);視覺著陸標(biāo)識(shí);自適應(yīng)閾值;著陸標(biāo)識(shí)識(shí)別
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)25-0122-03
四旋翼無人機(jī)的自主著陸[1]是指僅僅依靠機(jī)載導(dǎo)航設(shè)備來進(jìn)行定位導(dǎo)航,由飛機(jī)控制器控制飛機(jī)在目標(biāo)區(qū)域著陸的過程,傳統(tǒng)的無人機(jī)自主著陸大都主要是通過GPS導(dǎo)航[2]實(shí)現(xiàn)的.但單獨(dú)的GPS并不能為無人機(jī)提供精準(zhǔn)的位置信息,且不能在室內(nèi)和其他一些特定的場景進(jìn)行定位,很難實(shí)現(xiàn)無人機(jī)在著陸平臺(tái)上的精準(zhǔn)著陸。
隨著計(jì)算機(jī)視覺理論體系的建立和發(fā)展,國內(nèi)外的相關(guān)學(xué)者將視覺引導(dǎo)技術(shù)應(yīng)用到無人機(jī)自主著陸中。目前國內(nèi)外在相關(guān)方面取得一定研究成果的有:美國加州大學(xué)伯克利分校的 BEAR研究小組第一個(gè)提出利用視覺測量相對(duì)于著陸平臺(tái)的相對(duì)位置和姿態(tài)[3];瑞典 Link?ping 大學(xué) WITAS 項(xiàng)目提出了有較高可靠性的基于視覺的無人機(jī)著陸控制方案[4];清華大學(xué)的Zeng Fucen,Shi Haiqing等人采用DPS構(gòu)建了小型直升機(jī)的視覺著陸系統(tǒng)[5];南京航空航天大學(xué)的丁萌等對(duì)基于計(jì)算機(jī)視覺的無人機(jī)自主著陸方法做了研究[6],提出了一種基于模板匹配技術(shù)的跑道識(shí)別與跟蹤方法。
在上述研究中,由于圖像處理的復(fù)雜性,視覺著陸算法很難達(dá)到無人機(jī)著陸實(shí)時(shí)性的要求。本文提出的視覺著陸算法的處理速度可以達(dá)到30幀/秒,完全滿足著陸實(shí)時(shí)性的要求,且算法的精度非常高。
1 視覺著陸算法
視覺著陸算法主要是檢測圖像中視覺著陸標(biāo)識(shí),解算出無人機(jī)相對(duì)于視覺著陸標(biāo)識(shí)位置信息,在通過幾何運(yùn)算把圖像中位置信息轉(zhuǎn)化為真實(shí)的位置信息傳送給飛機(jī)控制器進(jìn)行導(dǎo)航。
1.1 視覺目標(biāo)設(shè)計(jì)
根據(jù)文獻(xiàn)[7]可知視覺目標(biāo)的設(shè)計(jì)有以下幾個(gè)基本要求:第一,視覺目標(biāo)要盡可能的簡單,這樣視覺著陸算法能夠更快的處理圖像信息,使著陸算法具有更好的實(shí)時(shí)性。第二,特征圖形要明顯區(qū)別于周圍的物體和環(huán)境,以便能夠快速被識(shí)別。第三,要包含足夠的信息,這樣視覺著陸算法能夠利用這些信息快速的解算出無人機(jī)著陸所需要的參數(shù)。因此,本文根據(jù)以上幾點(diǎn)設(shè)計(jì)了一種新的視覺目標(biāo)圖形,如圖1所示。
表1 視覺目標(biāo)元素尺寸
[位置\&矩形\&外部\& L=W=28cm l=w=24cm\&內(nèi)部\&L=W=2cm l=w=3cm\&]
在圖1中,黑色矩形框主要是用來計(jì)算無人機(jī)相對(duì)于著陸目標(biāo)的位置參數(shù),箭頭是為無人機(jī)提供角度信息。這個(gè)視覺目標(biāo)設(shè)計(jì)的最大的特點(diǎn)當(dāng)無人機(jī)離地較高時(shí),可以利用外面大的標(biāo)志來估算無人機(jī)的位置信息。當(dāng)無人機(jī)離地較近時(shí),外面大的標(biāo)志此時(shí)已經(jīng)不在攝像頭的視野范圍內(nèi),這時(shí)可以根據(jù)內(nèi)部小的標(biāo)志來估算無人機(jī)的位置信息。表1是視覺目標(biāo)元素尺寸信息,其中外部的參數(shù)表示大的矩形框邊長信息,內(nèi)部表示小的矩形框邊長信息。
1.2 視覺著陸算法的流程
圖2為視覺著陸算法整個(gè)流程圖,其中像素偏移量是指在圖像中無人機(jī)和著陸標(biāo)識(shí)相對(duì)位置,世界偏移量是指真實(shí)的相對(duì)位置。輪廓的判定主要是檢查圖像中是否有著陸標(biāo)識(shí),判定成功則說明圖像中有著陸標(biāo)識(shí)且成功檢測出來,判定失敗則說明圖像中沒有著陸標(biāo)識(shí)或者沒有從圖像中檢測到著陸標(biāo)識(shí),這時(shí)立即從第二幅圖像開始檢測,以此循環(huán)。
2 視覺著陸標(biāo)識(shí)檢測
著陸標(biāo)志的檢測[8]是四旋翼無人機(jī)基于計(jì)算機(jī)視覺著陸最重要的一個(gè)環(huán)節(jié),檢測效果的好壞直接關(guān)系到能否從視覺著陸標(biāo)志中解算出無人機(jī)導(dǎo)航所需要的數(shù)據(jù)以及精度。 著陸標(biāo)志檢測有兩種方法,一種是提取圖像的特征點(diǎn)和著陸標(biāo)志進(jìn)行特征匹配。另外一種就是識(shí)別圖像的邊緣線或者是特征線。由于四旋翼無人機(jī)的視覺著陸系統(tǒng)對(duì)算法的實(shí)時(shí)性較高,第一種方法相對(duì)比較耗時(shí),所以本文采用第二種方法對(duì)著陸標(biāo)志進(jìn)行檢測。
2.1 自適應(yīng)閾值化
在本文中采用的自適應(yīng)閾值方法是基于Wellner[6]自適應(yīng)閾值算法改進(jìn)而來的。Wellner算法的基本思想是:對(duì)圖像進(jìn)行逐行掃描,計(jì)算當(dāng)前掃描點(diǎn)的前S個(gè)像素點(diǎn)像素的平均值,若該點(diǎn)的像素值小于前S個(gè)像素點(diǎn)像素平均值的(1-T)倍時(shí),則將該點(diǎn)像素值置為0,否則置為1,其表達(dá)式為:
[g(i,j)0,if(i,j)<(Gs(i,j))(1-T)1,otherwise] (1)
其中0為黑色,1為白色;f(i,j)為當(dāng)前像素點(diǎn)的像素值;Gs(i,j)表示當(dāng)前點(diǎn)前S個(gè)像素點(diǎn)的像素平均值;T為0到1的數(shù)值;據(jù)經(jīng)驗(yàn)值,其中S和T的取值為S=width/8(width表示圖像的寬度),T=0.15時(shí)效果最好。
以上為Wellner自適應(yīng)閾值算法,但其生成的二值圖像并不能達(dá)到著陸算法需要的效果,所以對(duì)上述算法中的公式(1)做了如下改變:
[g(i,j)0,if(i,j)<(Gs(i,j))(1-T)orf(i,j)<(Hb(i,j)(1+T))1,otherwise] (2)
其中Hb(i,j)表示該點(diǎn)前s個(gè)像素點(diǎn)中被判定為黑色像素點(diǎn)像素的均值,b表示個(gè)數(shù);則這時(shí)g(i,j)判定為0(黑色)的條件有兩個(gè),一個(gè)是該點(diǎn)像素小于該點(diǎn)前S個(gè)像素均值的(1-T)倍,另一個(gè)是該點(diǎn)像素小于該點(diǎn)前S個(gè)像素點(diǎn)中被判定為黑色像素點(diǎn)像素均值的(1+T)倍。該方法對(duì)圖像二值化判斷做了更細(xì)化的處理,能夠生成高質(zhì)量的二值圖。圖3表示W(wǎng)ellner算法和改進(jìn)后算法二值圖像的對(duì)比圖。其中在圖3(1)原圖的左下方有陰影遮擋的部分,從對(duì)比圖中不難看出,wellner對(duì)陰影部分的處理效果不是很好,而改進(jìn)后的wellner算法對(duì)陰影部分處理具有很好的效果,能夠生成高質(zhì)量的二值化圖像,這為著陸標(biāo)識(shí)的檢測奠定了好的基礎(chǔ)。
2.2 著陸標(biāo)志檢測
2.2.1 輪廓查找
當(dāng)原始圖像通過自適應(yīng)閾值化處理之后,就變成了一幅二值圖像,二值圖像存在比較明顯的聯(lián)通區(qū)域和相對(duì)應(yīng)的輪廓信息,文獻(xiàn)[]中的方法可以從二值圖像按照樹形層次結(jié)構(gòu)關(guān)系查找出所有輪廓,并將輪廓保存到序列中。這種方法的好處是輪廓不是單獨(dú)存在的,輪廓之間是按照一定關(guān)系連接起來,這為輪廓的排除提供一個(gè)好的條件。
2.2.2 輪廓排除
輪廓的排除是視覺著陸算法中一個(gè)非常重要的步驟,因?yàn)橐环唵蔚膱D像會(huì)有非常多的輪廓。比如圖3(1)原圖產(chǎn)生的輪廓多達(dá)一千多個(gè),如果這些輪廓不進(jìn)行排除,對(duì)每個(gè)輪廓都進(jìn)行檢測,那將耗費(fèi)大量的時(shí)間。輪廓的排除的條件有以下幾點(diǎn):
1)排除輪廓面積較小的輪廓;
2)根據(jù)著陸標(biāo)識(shí)的特點(diǎn),利用輪廓之間的樹形層次結(jié)構(gòu)關(guān)系,排除沒有父輪廓和子輪廓的輪廓。
3)由于需要的輪廓為近似為正方形,所以可以排除不在范圍為的輪廓,其中A表示輪廓的長度,B表示輪廓的面積,o是一個(gè)介于0到1的數(shù)。當(dāng)前輪廓越接近正方形,o的值則越接近1。
通過以上排除條件可以排除大部分和著陸標(biāo)識(shí)輪廓不相近的輪廓,其排除前后對(duì)比圖如圖4(a)和(b)所示。
2.2.3 輪廓檢測(Contours detection)
輪廓檢測是視覺著陸算法中最后一個(gè)環(huán)節(jié)也是關(guān)鍵點(diǎn),它的成功與否直接關(guān)系到無人機(jī)能否從攝像頭的視野范圍內(nèi)找到著陸標(biāo)志。輪廓的檢測步驟是先識(shí)別出所有近似矩形的輪廓,然后再對(duì)輪廓進(jìn)行判定。輪廓識(shí)別的方法是對(duì)排除后所有的輪廓進(jìn)行多邊形逼近,獲得頂點(diǎn)數(shù)更少的輪廓,再從這些輪廓里面找出所有近似矩形的輪廓,其步驟是:
1)找出輪廓的元素總數(shù)為4的輪廓;
2)輪廓的形狀必須為凸;
3)輪廓任意一點(diǎn)與相鄰兩點(diǎn)組成的向量的夾角接近九十度。
通過這3個(gè)步驟可以識(shí)別出近似為矩形的所有輪廓。輪廓的判定是通過圖像中就算內(nèi)外矩形框面積的比值和真實(shí)設(shè)計(jì)矩形面積比值進(jìn)行比較,若在一定范圍內(nèi),則該輪廓為要找的輪廓。經(jīng)過多次測試能夠準(zhǔn)確的檢測到著陸標(biāo)志,其實(shí)驗(yàn)結(jié)果如圖4(c)所示,其中有顏色的表示要找的目標(biāo)。
(a)排除前輪廓圖 (b)排除后輪廓圖 (c)著陸標(biāo)志檢測圖
圖 4 輪廓檢測
2.3 偏移量求取
偏移量是指無人機(jī)中心點(diǎn)和著陸標(biāo)識(shí)中心點(diǎn)的相對(duì)位置,由于飛行控制器對(duì)飛機(jī)的控制參數(shù)是以世界坐標(biāo)系為準(zhǔn)的,所以要將求出的像素偏移量轉(zhuǎn)化為世界偏移量。由于攝像頭是垂直向下的裝在無人機(jī)的正中心,因此可以用攝像頭中心點(diǎn)(光心)的位置代替無人機(jī)中心點(diǎn)的位置。
像素偏移量的求取主要是通過計(jì)算圖像中著陸標(biāo)識(shí)中心點(diǎn)的坐標(biāo)與圖像中心點(diǎn)坐標(biāo)的差值。世界偏移量主要是利用對(duì)攝像頭標(biāo)定獲得參數(shù)將像素偏移量通過相似三角形獲得的,其具體方式如公式(3)
[X=Hxfx+cx;Y=Hyfy+cy] (3)
其中x,y表示像素偏移量,X,Y表示世界偏移量,fx,fy表示在x方向和y方向的焦距,cx,cy表示攝像頭光心和圖像中心點(diǎn)偏移量,H表示高度是通過超聲波獲取的。
3 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)數(shù)據(jù)的獲得是通過視覺著陸算法計(jì)算出視覺標(biāo)識(shí)中心點(diǎn)與攝像頭中心點(diǎn)在x,y方向的差值和實(shí)際用標(biāo)尺測量的值對(duì)比得到的。實(shí)驗(yàn)是在U3開發(fā)板上運(yùn)行的,U3開發(fā)板為1.7GHz的四核處理器和2GByte內(nèi)存,裝載的系統(tǒng)是Linux系統(tǒng)Ubuntu12.04版本,時(shí)間統(tǒng)計(jì)采用C語言的clock計(jì)時(shí)函數(shù),其精度為毫秒。
3.1 實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析
設(shè)置攝像頭與著陸標(biāo)識(shí)在x方向和y方向的偏移量為200mm和150mm,通過調(diào)整攝像頭的離著陸標(biāo)識(shí)的距離來記錄用視覺著陸算法計(jì)算出的x,y方向的偏移量,其實(shí)驗(yàn)結(jié)果如表2:
4 結(jié)論
本文對(duì)四旋翼無人機(jī)著陸的視覺著陸系統(tǒng)進(jìn)行研究,研究的目的利用改進(jìn)的自適應(yīng)閾值算法和特別著陸標(biāo)識(shí)識(shí)別算法快速實(shí)時(shí)的檢測視覺著陸標(biāo)識(shí)和計(jì)算出無人機(jī)相對(duì)于著陸標(biāo)識(shí)的位置信息,從而為無人機(jī)實(shí)時(shí)提供準(zhǔn)確的位置信息,實(shí)驗(yàn)結(jié)果也證明了該系統(tǒng)的有效性。下一步將對(duì)著陸標(biāo)識(shí)進(jìn)行視覺跟蹤算法[9]進(jìn)行研究,為四旋翼無人機(jī)在可移動(dòng)平臺(tái)上著陸的視覺著陸系統(tǒng)奠定基礎(chǔ)。
參考文獻(xiàn):
[1] Yang S, Scherer S A, Schauwecker K, et al. Onboard Monocular Vision for Landing of an MAV on a Landing Site Specified by a Single Reference Image[C]// Unmanned Aircraft Systems (ICUAS), 2013 International Conference on IEEE, 2013:318 - 325.
[2] Baeder A B T, Rhea J L. GPS attitude-determination analysis for UAV[J]. Aerospace/defense Sensing & Controls, 1996, 2738:232-243.
[3] Koo T J, Shim D H, Shakernia O, et al. Hierarchical Hybrid System Design on Berkeley UAV[J]. International Aerial Robotics Competition, 1998.
[4] G Granlund, K Nordberg, J Wilklund, et al. Witas: An intelligent autonomous aircraft using active vision[J]. In Proceedings of the Uav 2000 International Technical Conference\s&\sexhibition, 2000.
[5] Zeng F, Shi H, Wang H. The Object Recognition And Adaptive Threshold Selection In The Vision System For Landing An Unmanned Aerial Vehicle[C]// Information and Automation, 2009. ICIA '09. International Conference on2009:117 - 122.
[6] 萬明.基于視覺導(dǎo)航的無人機(jī)自主著陸飛行參數(shù)估計(jì)方法[D].南京航空航天大學(xué), 2009.
[7] 程麗娟. 基于視覺的無人直升機(jī)著落導(dǎo)航技術(shù)研究[D].南京:南京航空航天大學(xué), 2014.
[8] 劉剛.基于視覺導(dǎo)航小型無人機(jī)自主著陸控制策略研究與應(yīng)用[D].南京:南京航空航天大學(xué), 2014.
[9] Zou J T, Tseng Y C. Visual Track System Applied in Quadrotor Aerial Robot[C]// Digital M anufacturing and Automation (ICDMA), 2012 Third International Conference on IEEE, 2012:1 025-1028.