摘 要: 提出了一種在無(wú)人機(jī)進(jìn)場(chǎng)著陸段中根據(jù)機(jī)器視覺(jué)所得的數(shù)字圖像獲取無(wú)人機(jī)滾轉(zhuǎn)角的方法。首先對(duì)攝像機(jī)所獲得圖像進(jìn)行一系列預(yù)處理(中值濾波,、邊緣檢測(cè)等),,然后利用Hough變換獲取圖像中的直線,并根據(jù)其他的約束條件從這些直線中獲得地平線,最后通過(guò)最小二乘法獲得無(wú)人機(jī)滾轉(zhuǎn)角,。
關(guān)鍵詞: 滾轉(zhuǎn)角,; 邊緣檢測(cè); Hough變換,; 最小二乘法
在無(wú)人機(jī)進(jìn)場(chǎng)著陸段的機(jī)器視覺(jué)導(dǎo)航中,,當(dāng)獲得一幅圖像時(shí),需要對(duì)圖像數(shù)據(jù)進(jìn)行處理,,然后對(duì)圖像的內(nèi)容進(jìn)行分析,、理解并從中抽取對(duì)無(wú)人機(jī)著陸有用的信息。通過(guò)對(duì)某型無(wú)人機(jī)實(shí)際著陸錄像分析,,可以看出地平線在圖像中是一個(gè)很明顯的特征,。根據(jù)地平線在圖像中的位置、角度可以解算出無(wú)人機(jī)的滾轉(zhuǎn)角,,所以,,地平線檢測(cè)是用圖像處理的方法獲取無(wú)人機(jī)滾轉(zhuǎn)角的重要途徑。
地平線的檢測(cè)方法很多,,參考文獻(xiàn)[1]提出了一種基于模式識(shí)別的地平線檢測(cè)算法,,但其處理的圖像是彩色圖像,對(duì)于灰度圖不適用,。參考文獻(xiàn)[2]提出了一種基于圖像紋理的地平線檢測(cè)算法,。本文提出一種基于邊緣檢測(cè)和Hough變換的地平線檢測(cè)算法,并在此算法的基礎(chǔ)上求解出無(wú)人機(jī)滾轉(zhuǎn)角,。
數(shù)字圖像的濾波主要采用兩大類方法:一類方法是在空間域中處理,,即在圖像空間中對(duì)圖像進(jìn)行各種處理,;另一類方法是對(duì)空間圖像進(jìn)行變化(如經(jīng)過(guò)傅里葉變換),使之在頻率域內(nèi)進(jìn)行各種處理,,然后再轉(zhuǎn)換到圖像的空間形成處理后的圖像[3],。第二種方法使用的計(jì)算機(jī)內(nèi)存和計(jì)算時(shí)間的開(kāi)銷很大,不適于實(shí)時(shí)系統(tǒng),,因此,,本文采用空間域中的中值濾波處理方法。
中值濾波是一種非線性信號(hào)處理方法,,它在一定的條件下,,可以克服線性濾波器如最小均方濾波、平均值濾波等帶來(lái)的圖像細(xì)節(jié)模糊,,而且對(duì)濾除脈沖干擾及圖像掃描噪聲最為有效[3],。本文采用3×3的模板窗口,把二維窗口中的數(shù)據(jù)一維化,,并采用冒泡法進(jìn)行排序,。之后計(jì)算M=median{x11,x12,x13,x21,x22,x23,x31,x32,x33,},并賦值給原來(lái)的灰度x22,如圖1所示。
1 圖像的邊緣檢測(cè)
圖2所示為攝像機(jī)獲得的原始圖像,??梢钥闯龅仄骄€是地面與天空的分界線,因此地平線一定是圖像中的一條邊緣線,。在圖像處理中,,邊緣檢測(cè)[4,5]的方法很多,為了消除噪聲信號(hào)對(duì)邊緣檢測(cè)的影響,選用高斯-拉普拉斯邊緣檢測(cè)算子Guass-Laplacian,,獲得了較好的效果,。
本文使用高斯-拉普拉斯算子卷積核,如圖3所示的5×5大小的模板,。
圖2中的圖像經(jīng)過(guò)預(yù)處理,、邊緣算子卷積和二值化處理,,得到如圖4所示的二值圖,。通過(guò)邊緣檢測(cè)可以看到圖像中的主要邊緣(地平線、跑道邊緣)已經(jīng)提取出來(lái),。
2 清除邊線
從圖4可以看到,,圖像的4個(gè)邊上存在4條很明顯的直線,這是邊緣檢測(cè)算子與圖像卷積產(chǎn)生的必然結(jié)果,。如果這些直線不清除,,在Hough變換檢測(cè)直線時(shí)這些直線就一定會(huì)被檢測(cè)出來(lái),而這些直線會(huì)對(duì)下一步工作產(chǎn)生很大干擾,。因此,,這些直線必須被清除,。清除方法很簡(jiǎn)單,可以將圖像的4個(gè)邊上的元素都置為255,。
3 利用Hough變換提取直線
Hough變換是一種在圖像中檢測(cè)直線和曲線的有效方法,,直線方程可寫為:ρ=xcosθ+ysinθ,其中?籽表示原點(diǎn)到直線的垂直距離,,?茲表示該垂線與X軸的夾角,。這樣在X-Y坐標(biāo)系中的一條直線與ρ-θ坐標(biāo)系中的一個(gè)點(diǎn)(ρ,θ)一一對(duì)應(yīng)。而X-Y坐標(biāo)系中的一個(gè)點(diǎn)(x,,y)和?籽-?茲坐標(biāo)系中的一條正弦曲線一一對(duì)應(yīng),。e-θ坐標(biāo)系中的多條正弦曲線的交點(diǎn)(?籽,?茲)在X-Y坐標(biāo)系中是一條直線。下面建立一個(gè)計(jì)數(shù)數(shù)組:
longDist=(long)(sqrt(lWidth*lWidth+lHeight*lHeight));
long* m_Ipline;
m_Ipline=new long [Dist*180];
其中l(wèi)Width,、lHeight分別為圖像的寬度和高度,。
將X-Y坐標(biāo)系中的點(diǎn)映射到ρ-θ坐標(biāo)系中。從圖5可以看到圖像中不僅僅是地平線,,還包括跑道的邊緣線和地面上的一些邊緣線,。因此,如果僅從m_Ipline數(shù)組中找出最大的元素是不可能找出地平線的,。實(shí)驗(yàn)證明,至少?gòu)臄?shù)組中找出10個(gè)最大元素才能保證得到的直線完全包括地平線,如圖6所示,。
4 獲取地平線
從圖6可以看到通過(guò)Hough變換得到的直線包括地平線和主、副跑道的邊緣線等?,F(xiàn)在的問(wèn)題是如何從這些眾多的直線中提取出地平線,。在無(wú)人機(jī)進(jìn)場(chǎng)著陸段,無(wú)人機(jī)的滾轉(zhuǎn)角Φ∈[-10°,10°],,因此可以將上述直線中ρ∈[80°,100°]標(biāo)識(shí)出來(lái),。從圖6可以看到,除了地平線,,ρ∈[80°,100°]的直線還包括其他一些雜亂的點(diǎn)和線,。
為了清除這些雜亂的點(diǎn)和線,根據(jù)圖像在內(nèi)存中的存儲(chǔ)特點(diǎn),,從圖6可以得到:像素?cái)?shù)組每列中最后一行被標(biāo)識(shí)像素一定是地平線上的像素,。算法表示為:
for (i = 0; i < lWidth; i++)
{ for (j = lHeight; j > 0; j--)
{ if(*(lpDIB Bits+j*lLineBytes+3*i)==111)
{ m_temp [j*lLineBytes+i*3]=0;
break;}}}
處理后得到的圖如圖7所示。
對(duì)圖7再次使用Hough變換,,這樣可以完整地檢測(cè)出地平線,,如圖8所示。
5 用最小二乘法獲得地平線參數(shù)
一般來(lái)說(shuō),,認(rèn)為地平線H與圖像坐標(biāo)系中X軸之間的夾角Φ和無(wú)人機(jī)的滾轉(zhuǎn)角Φ是相等的,如圖9所示,,具體的證明過(guò)程請(qǐng)參照參考文獻(xiàn)[2]。利用Hough變換可以直接讀出無(wú)人機(jī)的滾轉(zhuǎn)角,分別為3°、1°和-4°,。但是由于在編寫程序時(shí)為了運(yùn)算的快速性,使用的是長(zhǎng)整型,,因此,所得到的滾轉(zhuǎn)角誤差較大,。所以,,可以使用最小二乘法[6,7]來(lái)擬合地平線方程,擬合后算得無(wú)人機(jī)的滾轉(zhuǎn)角分別為2.645 8°、0.892 4°和-3.254 1°,。
地平線檢測(cè)算法是本文的關(guān)鍵所在,。本文先后兩次運(yùn)用了改進(jìn)Hough變換提取直線,實(shí)驗(yàn)證明在不過(guò)于復(fù)雜的著陸場(chǎng)環(huán)境下,,該算法可以有效地檢測(cè)出地平線,,同時(shí)利用最小二乘法可以得到滿足無(wú)人機(jī)著陸要求的飛機(jī)滾轉(zhuǎn)角。
參考文獻(xiàn)
[1] ETTINGER S M. Towards flight autonomy vision-based horizon detection for micro air vehicles.Proceeding of IEEE International Conference on Robotics and Automation[DB/OL].
Washington, D.C., 2002.
[2] 劉新華.基于視覺(jué)的無(wú)人機(jī)著陸姿態(tài)檢測(cè)和跑道識(shí)別[D].南京:南京航空航天大學(xué),2004.
[3] 王榮本,游峰,崔高健,,等.基于計(jì)算機(jī)視覺(jué)高速智能車輛的道路識(shí)別[J].計(jì)算機(jī)工程與應(yīng)用,2004(26):18-21.
[4] DJEKOUNE A O. Visual guidance control based on the hough transgorm. Proceedings of the IEEE International Vehicles Symposium 2000. Dearborn(MI)[DB/OL]. USA, 2000.
[5] 張會(huì)章,張利霞,郭雷.用霍夫變換來(lái)提取目標(biāo)邊界[J]. 計(jì)算機(jī)應(yīng)用,2003,6(23):117-119.
[6] 郎銳.數(shù)字圖像處理學(xué)Visual C++實(shí)現(xiàn)[M]. 北京:希望電子出版社,2002.
[7] 曾接賢,張桂梅,儲(chǔ)珺,,等.霍夫變換與最小二乘法相結(jié)合的直線擬合[J].南昌航空工業(yè)學(xué)院學(xué)報(bào)(自然科學(xué)版), 2003,17(4):9-12.