,,,,,
(山東理工大學 理學院,淄博 255049)
以人工標志物為基準的無人機定位系統(tǒng)*
李季遠,修俊山,林杉,郭照師,李宗文,王超凡
(山東理工大學 理學院,淄博 255049)
設計了一種以STM32單片機為控制核心的短距離高精度定位系統(tǒng)。系統(tǒng)通過識別定點位置的單一顏色塊作為標識物來控制無人機不斷飛到標識物上空,從而實現(xiàn)精準定位。本系統(tǒng)基于OV7670+STM32的結構開發(fā),通過OV7670采集圖像存儲在FIFO中;STM32通過讀取FIFO中的數(shù)據(jù)進行顏色識別與跟蹤。實驗結果表明,本系統(tǒng)識別準確率較高,定位精度較GPS定位提高了一個量級。
顏色識別及跟蹤;加權快速中值濾波;RGB-HLS轉換;STM32F103
由于多旋翼無人機具有垂直起飛降落、懸停、橫飛、倒飛、慢速巡航以及超低空飛行等多種飛行方式[1]的優(yōu)勢,多旋翼無人機成為研究熱點。除了在軍事偵察、作戰(zhàn)等方面的應用,無人機在危險環(huán)境(如火災或地震災害現(xiàn)場)中的搜查和救援等領域也得到了廣泛的應用和發(fā)展[2]。在無人機配送方面國內外更是積極布局,各大公司紛紛研發(fā)專用配送無人機。其中大多數(shù)的無人機用GPS作為導航系統(tǒng)[3],但 GPS的定位精度通常在10 m左右,而高精度GPS的成本較高,因此視覺輔助導航由于其低成本和高可靠性受到研究者的關注[4]。
基于計算機視覺的無人機導航技術[5]通過從圖像中獲取用于導航的有效信息進行無人機的定位,具有精度高、抗干擾能力強的優(yōu)點。采用人工標識物來進行無人機的導航,具有精度高、魯棒性好、易實現(xiàn)、價格低廉的優(yōu)點,在某些場合(如輸電鐵塔的絕緣子檢測、從建筑外部對指定房間的監(jiān)視、化工桿塔類設備指定部件的檢查等)能夠取得較好的效果[6]。
為此本文提出了一種基于顏色識別跟蹤的無人機視覺導航系統(tǒng)。本系統(tǒng)首先通過設定人工標識物,利用機載CMOS圖像傳感器采集圖像,完成后存儲至AL422B中,機載系統(tǒng)讀取AL422B中的圖像數(shù)據(jù)并進行濾波、RGB-HLS格式轉換預處理。處理完成后進行顏色識別并追蹤,系統(tǒng)根據(jù)識別到的標識物中心點位置判斷無人機與標識物的相對位置,控制無人機不斷向上空飛行,從而達到精準定位的目的。
系統(tǒng)以STM32單片機為控制核心,通過CMOS圖像傳感器OV7670配合AL422B數(shù)據(jù)存儲器來實現(xiàn)圖像的采集工作,系統(tǒng)具體結構如圖1所示。在圖像數(shù)據(jù)預處理過程中采用了加權快速中值濾波和RGB-HLS格式轉換處理,濾波是為了降低圖像產(chǎn)生和傳輸過程中產(chǎn)生的高斯噪聲和椒鹽噪聲干擾;RGB-HLS格式轉換可以消除亮度對識別準確率的干擾,增強系統(tǒng)的魯棒性。預處理完成后開始識別跟蹤工作,每一幀圖像識別完成后會返回識別標識物的中心點的寬度與高度。系統(tǒng)會對識別物體的寬度高度信息進行分辨,看是否符合設定的閾值,在一定程度上減少了環(huán)境的干擾。當系統(tǒng)確定識別到的物體就是標識物后,根據(jù)中心點坐標來判斷無人機與標識物對象的位置,控制無人機不斷向標識物上空飛行。
圖1 系統(tǒng)結構圖
系統(tǒng)在控制無人機過程中參考遙控器接收機控制飛控過程,模擬接收機輸出PWM波,通過調節(jié)PWM占空比來控制無人機的飛行姿態(tài)和油門大小。考慮到本系統(tǒng)的精確定位作用,只需模擬接收機的前后、左右、油門三個通道的PWM波形,即可實現(xiàn)無人機精準定位。
2.1 降噪處理
圖像在形成過程中由于各種各樣的因素會產(chǎn)生各種噪聲污染(如椒鹽噪聲、高斯噪聲、白噪聲等),噪聲的存在嚴重干擾了后續(xù)的圖像處理工作。迄今為止, 在圖像去噪方面主要有兩大類方法:頻域濾波和空域濾波[7]。傳統(tǒng)的濾波算法有高斯濾波、中值濾波(MF)、均值濾波等[8]。
經(jīng)過多次試驗發(fā)現(xiàn),本系統(tǒng)所產(chǎn)生的的噪聲多為高斯噪聲和椒鹽噪聲。高斯噪聲是一種隨機噪聲,其概率密度函數(shù)為:
其中,z表示灰度值,μ表示平均值或期望值,σ表示z的標準差。標準差的平方σ2稱為z的方差。當服從上式分布時,其值有70%落在[(μ-2σ),(μ+2σ)]范圍內,且有95%落在[(μ-2σ),(μ+2σ)]范圍內。高斯函數(shù)曲線如圖2所示。
圖2 高斯噪聲分布曲線[9]
若某點噪聲點最多,離此點越遠噪聲點越少,它是一種加性噪聲,所以一般情況下均采用線性處理辦法。但是椒鹽噪聲恰恰相反,黑色或白色的亮暗噪點呈現(xiàn)隨機分布且噪點深度基本固定,是一種非線性噪聲,所以采用非線性處理辦法效果最佳。
考慮到本系統(tǒng)需要識別顏色并跟蹤,且識別辦法為像素點的抽樣檢測,椒鹽噪聲的亮暗噪點會嚴重干擾檢測結果,與之相比,高斯噪聲沒有那么嚴重的顏色變化且呈現(xiàn)正態(tài)分布,對結果的影響相對于椒鹽噪聲較小。同時考慮到STM32單片機處理速度有限,所以不宜采用較為復雜的濾波算法。
中值濾波算法是一種較為簡單的方法,對于椒鹽噪聲處理效果較好,同時對于高斯噪聲也有一定的處理能力。中值濾波主要依賴于排序算法,是一種具有較少模糊邊緣的非線性濾波方法。傳統(tǒng)的中值濾波采用像素滑板(格式可以為3×3或5×5)。以3×3的像素滑板為例,最中間的像素點就是需要濾波的像素點,濾波之前需要將這9個像素點通過冒泡法排序,排完后處于第5位的像素值就是需要濾波的像素點的像素值。該點濾波完成后滑動一個像素點繼續(xù)進行中值濾波,直至完成。
為了盡可能提高降噪速度,采用了一種新型的中值濾波方法——加權快速中值濾波法[6]。相較于標準的中值濾波,加權快速中值濾波在每移動一個像素單位后對移動進來的三個像素點X、Y、Z和移出去的三個像素點s、y、z進行比較。如果它們兩兩相等,則輸出原來的中值;如果不相等,則用不相等的數(shù)代替原來的值并求出板內像素點的均值,同時冒泡法排序產(chǎn)生新的中值,并對均值和中值進行加權(均值占0.3,中值占0.7)并賦值中心點,繼續(xù)移動像素滑板,進行下一輪比較,直至降噪工作完成。具體降噪效果如圖3所示。在經(jīng)過對比試驗后發(fā)現(xiàn),降噪完成后較未處理圖像識別準確率大為提高。
圖3 降噪前后對比圖
2.2 顏色格式轉換
在識別過程中對于RGB格式的數(shù)據(jù)流來說,R、B、G中的每個值都會隨外界環(huán)境的亮度變化產(chǎn)生線性變化,與之相比,HLS格式的數(shù)據(jù)流對亮度變化的反應是在亮度L、色度H和飽和度S上均不會產(chǎn)生較大幅度的變化。比較二者,HLS格式的數(shù)據(jù)流相對較為穩(wěn)定,應用到系統(tǒng)中增強了系統(tǒng)的穩(wěn)定性和抗干擾能力。
在RGB轉換到HLS的過程中,亮度是隨著R、G、B的變化而發(fā)生非線性變化,但是亮度的取值依賴于R、G、B中的最大值和最小值。設X、Y、Z是R、G、B中的最大值、最小值和最大值與最小值的差。如果X=0,即R、G、B均為0時,L=0;否則,L取值為
L=(F(X)+F(Y))/2
式中F(f)=f-(f+8)/17(當f≠0時)。
對于H、S來說,如果R=G=B,則H=0,S=0。如果R、G、B三值不相等,對于色調H來說,可分為如下幾種情況:
① 當最大值為R,且G大于B時,H的計算公式為
H=40×(G-B)/Z
否則H的計算公式更改為
H=40×(G-B)/Z+240
② 當最大值為G時,H的計算公式為
H=40×(B-R)/Z+80
③ 當最大值為B時
H=40×(R-B)/Z+160
飽和度的計算和亮度L的大小有關,即如果亮度為0,則S=0;如果亮度不為0且小于等于120時,飽和度計算公式為
S=Z×240/(X+Y)
如果亮度大于120,有
S=Z×240/(511-(X+Y))
格式轉換完成后,降低了算法復雜度,同時還降低了系統(tǒng)的運算量,在同等變化環(huán)境下,HLS格式相較于RGB格式,數(shù)據(jù)變化幅度較小同時H、S基本不變,一定程度上提高了系統(tǒng)的魯棒性。
2.3 顏色識別
在識別之前需要通過設定H、L、S的閾值來確定腐蝕中心的范圍值。如果某一像素點的H、L、S均滿足設定條件,即可認為該點為顏色識別的腐蝕中心。以該點為中心向外腐蝕直至識別完成。
在搜尋腐蝕中心的過程中,以目標最小面積為單位對每個單位進行抽樣比對來尋找腐蝕中心。對于每個單位的抽樣對比,根據(jù)模擬實驗發(fā)現(xiàn)橫(縱)坐標每次移動1/3個最小寬度(高度),既能保證識別的準確率還能降低MCU的運算量,從而提高識別效率。
在對比過程中首先確定一個Y軸,即1/6目標最小高度,X軸每次移動一個像素點,直至對比完X軸。X軸對比完成后開始對比Y軸,此時確定一個X軸,1/6最小寬度,Y軸每次移動一個像素點,直至對比完Y軸。以上是理論上的抽樣檢測,在實際實驗過程中,為了能夠更好、更快地完成識別任務,設置了容錯率,容錯率越大識別過程越快,但準確度會逐漸降低。在設置完容錯率后對每個單位的抽樣對比,如果對比的像素點和設定的H、L、S的閾值不相符的次數(shù)大于容錯率設定的次數(shù),即默認這個單位的所有像素點沒有腐蝕中心,跳出對此單位對比檢測循環(huán),進行下一個單位的對比檢測。如果在某一個單位中抽樣對比發(fā)現(xiàn)所對比的像素點均處在設定的H、L、S的閾值范圍內,或者處在閾值之外的像素點出現(xiàn)的概率小于容錯率,則認為此單位含有腐蝕中心并且腐蝕中心處于此單位的中心位置。
當對比檢測到腐蝕中心后,以腐蝕中心為中心開始向外腐蝕,首先腐蝕橫坐標、縱坐標不變。從腐蝕中心開始向左依次對比檢測,同樣在此設置容錯率,如果與H、L、S的閾值不相符的像素點個數(shù)大于容錯率,則默認左邊已經(jīng)沒有相同顏色的像素點,即已經(jīng)找到顏色塊的左邊。右邊、上邊、下邊同理。當所有邊界均識別完成后,根據(jù)已識別的左右(上下)邊界的X(Y)坐標求平均來確定顏色塊最終中心點位置。對于已識別顏色塊的寬度和高度的求取,根據(jù)左右(上下)邊界的X(Y)值相減就能粗略得到顏色塊大體的寬度和高度。
對于已識別物體的寬度和高度信息需要對其進行篩選,看是否符合設定的目標寬度、高度,如果符合則認為識別到的物體就是標識物,返回標識物的中心點坐標供單片機判斷位置。在調試過程中,目標大體輪廓和中心點位置會通過紅色方框描繪出來,方便調試。
2.4 程序實現(xiàn)流程
程序具體實現(xiàn)流程如圖4所示。讀取圖像數(shù)據(jù)前需先使能端口并進行相關配置。配置完成后初始化SCCB通信協(xié)議,并通過SCCB協(xié)議進行OV7670檢測,如果檢測沒問題開始讀取AL422B中緩存的圖像數(shù)據(jù)。在讀取過程中需要禁止AL422B,以防數(shù)據(jù)覆蓋造成亂碼現(xiàn)象,讀取完成后寫指針復位,避免重復讀取同時使能數(shù)據(jù)寫入。讀取完一幀圖像對此圖像進行加權快速中值濾波處理,然后進行格式轉換,以上為圖像預處理階段。
預處理完成后,開始根據(jù)已設定的H、L、S的閾值搜尋腐蝕中心,找到腐蝕中心后開始向外腐蝕,不斷迭代計算直至檢測到標識物的邊緣,標識物檢測完成后返回標識物中心點坐標和寬度、高度信息。單片機根據(jù)返回的標識物中心點坐標在圖像中所處的位置如圖5所示,中間區(qū)域為設定中心點閾值,如中心點坐標處在中心點閾值內,則默認無人機處在標識物上空,即已完成定位;如果不在中心區(qū)域內,則根據(jù)所處的相對位置控制無人機向目標上空移動直至定位完成。
圖4 程序流程圖
圖5 相對位置判斷模擬圖
在實驗過程中,通過對H、L、S的閾值設定,不僅實現(xiàn)了顏色識別與追蹤,而且對H、L、S的閾值設定大小不同可識別的顏色也不同,圖6顯示了系統(tǒng)對藍色和綠色目標物的識別效果,當識別到標識物時,系統(tǒng)會通過紅框選出標識物的大致范圍,并表示出中心點位置(紅點所處區(qū)域)。
圖6 不同顏色的系統(tǒng)識別效果圖
[1] 辛哲奎.基于視覺的小型無人直升機地面目標跟蹤技術研究[D].天津:南開大學,2010.
[2] SARRISZ.Survey of UAV applications in civil markets[C]//The 9th IEEE Meditenanean Conference on Control and Automation (MED’01),2001:1-11.
[3] KONG W Y,EGAN G K,CORNALIT.Feature based navigation for UAV-s[C]//Intelligent robots and systems,2006.IEEE/RSJ International Conference on IEEE,2006:3539-3543.
[4] 馬園,吳愛國,杜春燕.基于視覺的無人機飛行過程定位算法研究[J].電光與控制,2013,20(11):42-46.
[5] 丁希侖,周樂來,周軍.機器人的空間位姿誤差分析方法[J].北京航空航天大學學報,2009,35(2):241-245.
[6] 楊成順,楊忠,薛八陽.基于人工標志的無人機視覺導航方法[J].應用科技,2015,45(5):34-37.
[7] 彭宏,趙鵬博.邊緣檢測改進型均值濾波算法[J].計算機工程,2014,40(1):1-6.
[8] 張成斌,王開福.脈沖噪聲圖像的中-均值濾波算法[J].激光與紅外,2015,45(7):861-864.
[9] 王曉凱.圖像椒鹽噪聲及高斯噪聲去噪方法研究[D].上海:復旦大學,2010.
李季遠、林杉、郭照師、李宗文、王超凡(本科生),主要研究單片機的原理及應用;修俊山(講師),主要研究方向為光電探測器件的原理及應用。
Automatic Positioning System of UAV Based on Artificial Marker
LiJiyuan,XiuJunshan,LinShan,GuoZhaoshi,LiZongwen,WangChaofan
(School of Sciences,Shandong University of Technology,Zibo 255049,China)
In the paper,a short-range and high-precision positioning system with STM32 microcontroller as the control core is designed.The system controls the unmanned aerial vehicle (UAV) to fly over the marker by identifying a single color block of the fixed position as a marker to achieve precise positioning.The system is based on the structure of OV7670+STM32 development,the OV7670 acquisition images are stored in the FIFO,STM32 can identify and track the color through reading the data in the FIFO.The experiment results show that the accuracy of the system is higher and the positioning accuracy is higher than GPS.
color recognition and tracking;weighted fast median filtering;RGB-HLS conversion;STM32F103
TP27
: A
2017-05-05)
省部級-激光誘導擊穿光譜技術用于金屬氧化物納米薄膜微分析的方法研究(ZR2016AQ22)。