文獻標識碼: A
文章編號: 0258-7998(2015)04-0036-04
0 引言
精準農(nóng)業(yè)(Precision Agriculture)作為當今世界農(nóng)業(yè)發(fā)展的新潮流,通過信息技術(shù)支持,,可以實現(xiàn)定位,、定時、定量的現(xiàn)代化農(nóng)事操作技術(shù)實施與管理,,以最節(jié)省的投入得到更高的收入,,并高效地利用各類農(nóng)業(yè)資源為目的[1]。在這一應(yīng)用背景下,一種可超低空作業(yè),,具有重量輕,、折疊尺寸小、操作距離遠等優(yōu)點的新型多旋翼飛行器——“農(nóng)藥噴霧飛行器”應(yīng)運而生,。它特別適合于山地丘陵,、地塊小、間作套種地塊多的農(nóng)作物病蟲害防治,。但是這種飛行器一般采用人工遙控控制,,這就需要技術(shù)人員時刻觀察并判斷飛行器是否飛出農(nóng)田邊界,,這不僅造成人力資源的浪費,,而且效率相對較低,易出現(xiàn)誤判[2],,尤其當農(nóng)作物過高,,飛行器超低空飛行時,工作人員的視角容易受到限制,,這個問題就表現(xiàn)得更加突出,。
針對上述問題,本文設(shè)計了一個能夠自動檢測農(nóng)藥噴霧飛行器是否越界的智能控制系統(tǒng),。本系統(tǒng)融入了嵌入式技術(shù),、圖像處理技術(shù)和測控等技術(shù),并以Contex-A8為內(nèi)核的S5PV210作為核心平臺,, 在第三方庫OpenCV,、Qt的基礎(chǔ)上通過混合高斯模型、形狀特征提取等算法實現(xiàn)了運動目標的檢測,、識別和定位,,最終實現(xiàn)了農(nóng)藥噴霧飛行器越界檢測,并通過無線模塊控制農(nóng)藥噴霧飛行器智能飛行,,無人操控,。實驗結(jié)果表明,該系統(tǒng)能夠很好地識別到飛行器并準確地控制農(nóng)藥噴霧飛行器飛行,,減輕了工作人員的體力勞動,,同時提高了工作效率。
1 飛行器越界控制系統(tǒng)農(nóng)田作業(yè)分析
假設(shè)矩形ABCD為一塊農(nóng)田的模擬圖,,如圖1所示,,表1為設(shè)置的農(nóng)藥噴霧飛行器飛行參數(shù)。農(nóng)藥噴霧飛行器的運動方向越界判定分析如下:
假設(shè)農(nóng)藥噴霧飛行器的飛行軌跡為從農(nóng)田的BC邊界飛入,,垂直飛到AD邊界再折返,,以此類推。由表1的參數(shù)可知攝像頭標定的邊界應(yīng)在農(nóng)田ABCD的內(nèi)部(至少距邊界1 m內(nèi)),如直線fg和eh所示,。
當農(nóng)藥噴霧飛行器從攝像頭2前飛過,,系統(tǒng)根據(jù)越界檢測算法可以檢測到農(nóng)藥噴霧飛行運動軌跡,并判斷飛行方向為從右向左(如圖2所示),,即進入農(nóng)田,,此時不發(fā)出控制信號;當飛行器飛至攝像頭1前,,即eh線時,,根據(jù)運動軌跡判斷飛行方向向左,即要飛出邊界,,此時發(fā)出控制信號,,使飛行器沿eh向下平移并折返;當飛行器折返后再次飛至線fg時,,運動軌跡判斷飛行方向向右,,即要飛出邊界,此時發(fā)出控制信號,。以此類推,,直至控制農(nóng)藥噴霧飛行器完成整個農(nóng)田噴藥作業(yè)。
2 越界控制系統(tǒng)方案設(shè)計
2.1 總體結(jié)構(gòu)設(shè)計
系統(tǒng)的核心平臺是以Contex-A8為內(nèi)核的S5PV210主板,,利用USB高清攝像頭實時捕獲農(nóng)田邊界的視頻信號,,然后視頻信號經(jīng)Contex-A8分析和處理后實現(xiàn)農(nóng)藥噴霧飛行器這個運動目標的檢測、識別和定位,,進而判斷其是否越過農(nóng)田邊界,,最終系統(tǒng)通過無線模塊nRF24L01實現(xiàn)對農(nóng)藥噴霧飛行器智能控制。系統(tǒng)整體結(jié)構(gòu)圖如圖3所示,。
2.2 USB高清攝像頭
USB高清攝像頭采用的是TTQ甜甜圈的USB2.0高速廣角超高清監(jiān)控攝像頭,,其采用CMOS傳感器,CS標準卡口,,最大分別率為1 024×768,,像素為1 200萬,每秒可以采集30幀圖像,,視頻幀的格式是YUV422或者MJPG,。鏡頭采用的是焦距為2.8~12 mm,通光口徑為1.4 mm,,視場角為25°~103°的廣角攝像頭,,清晰成像距離可達到800 m。
2.3 無線收發(fā)模塊
nRF24L01是一款工作在2.4~2.5 GHz世界通用ISM頻段的單片無線收發(fā)器芯片,,具有125個可選工作頻道,,數(shù)據(jù)傳輸率為1(或2) Mb/s,,SPI接口數(shù)據(jù)速率為0~8 Mb/s,工作電壓為1.9~3.6 V,,擁有自動應(yīng)答及自動重發(fā)功能[3],。
3 越界檢測控制程序設(shè)計
農(nóng)藥噴霧飛行器越界檢測控制程序是基于QT和OpenCV開發(fā),運行環(huán)境為ARM-Linux嵌入式操作系統(tǒng),,核心算法主要包括對圖像的預(yù)處理,、基于混合高斯模型的運動目標檢測、基于形狀特征的目標識別定位,、基于質(zhì)心位置和運動方向的目標越界檢測等,,最終實現(xiàn)對農(nóng)藥噴霧飛行器的越界判斷和通過無線模塊對其的控制。農(nóng)藥噴霧飛行器越界檢測控制程序設(shè)計框圖如圖4所示,。
3.1 第三方計算機視覺庫OpenCV的移植
OpenCV是由Intel公司發(fā)起并參與開發(fā)且在近年來迅速普及的計算機視覺研究工具,,是一個跨平臺的計算機視覺庫[4]。它源代碼開放,,輕量高效,,并提供了非常豐富的幀提取函數(shù)和視覺處理算法,,使開發(fā)者可以在其視頻開發(fā)或圖像處理項目中直接進行算法移植或?qū)⑵涮砑幼约壕帉懙某绦蛑?,達到事半功倍的效果[5]。移植過程為,,首先從官網(wǎng)上下載源碼包,,然后根據(jù)嵌入式ARM系統(tǒng)安裝步驟安裝交叉編譯器、參數(shù)配置和編譯,,經(jīng)測試最終使用的版本為OpenCV2.4.2,。
3.2 圖像預(yù)處理
考慮到圖像處理涉及到大量的矩陣操作和S5PV210的性能以及監(jiān)控區(qū)域的復(fù)雜性,預(yù)處理線程首先采用人工標定的方法對視頻的每一幀進行ROI(感興趣區(qū)域)提取,,然后使用OpenCV的blur()和GaussianBlur()等庫函數(shù)對圖像進行去噪,、消除模糊和增強對比度等處理,最終得到一個有利于后期處理的圖片,。整個過程如圖5所示,,其圖像中的豎直黑線表示界線。
3.3 混合高斯模型[6]目標檢測算法實現(xiàn)
高斯模型是一種用高斯概率密度函數(shù)來量化對象并將其分解為由若干個高斯概率密度函數(shù)所組成的模型,?;诟咚鼓P偷谋尘疤崛〗⒃谙袼丶墸煌趩胃咚鼓P偷氖?,混合高斯模型將圖像的每個像素設(shè)計成由若干個(一般為3~5個)高斯模型根據(jù)各自的權(quán)值加和共同產(chǎn)生的[7],。然后將采集到的圖像像素與這幾個高斯分布分別進行匹配,以確定哪些像素屬于背景,。又因為監(jiān)控區(qū)域時刻都會有變化,,比如風吹樹動,、人員流動或物體的進入等,使最初得到的背景不再具有可信度,,因此還需要不斷地對各個高斯分布的權(quán)值,、均值和方差進行實時更新,這樣處理有助于抗噪,,比如光照變化,、樹葉晃動等,以達到背景模型的更準確表達,。其中混合高斯像素點判為背景的概率計算公式如下:
其中Xt的概率p(Xt)是該像素分別屬于K個高斯分布的概率加權(quán)和,;K為高斯模型的數(shù)量(3~5個);(k,,t)分別表示t時刻第k個高斯模型的權(quán)重,、均值和方差,表示t時刻第k個高斯模型的概率密度函數(shù),。
混合高斯參數(shù)更新函數(shù)為:
其中,,M(k,t)=1,,匹配成功
0,,匹配不成功,a(取值0~1之間)為各個高斯分布權(quán)重的更新率,;?籽為參數(shù)的更新率,,?籽越大,參數(shù)調(diào)整越快,。
混合高斯背景更新函數(shù)為:
其中H表示經(jīng)過以上步驟的調(diào)整得到的K個高斯分布并取前H個高斯分布作為新的背景,;T表示屬于背景高斯分布的權(quán)值和占總權(quán)值的最小比例;b是滿足T的最合適的高斯分布數(shù),。
根據(jù)以上理論,,基于OpenCV實現(xiàn)混合高斯模型目標檢測算法的關(guān)鍵代碼為:
BackgroundSubtractorMOG mog;//定義混合高斯
mog(frame, foreground, 0.02); //更新背景圖片并且輸出前景
threshold(foreground, foreground, 128, 255,
THRESH_BINARY_INV);
3.4 目標的識別定位算法
運動目標識別定位算法如圖6所示,其中形態(tài)學濾波是為消除細小的噪聲干擾又能填充物體內(nèi)細小的空洞,,有利于目標輪廓提取,,質(zhì)心坐標是根據(jù)連通域的幾何距求出。一幅數(shù)字圖像的階2-D距定義為:
其中M和N分別是圖像的高和寬,,p和q是非零正整數(shù),,mpq為(p+q)矩。根據(jù)式(4)的mpq可求出連通域質(zhì)心坐標,,質(zhì)心的計算公式為:
其中x表示質(zhì)心的橫坐標,,y表示質(zhì)心的縱坐標。最后將質(zhì)心(x,,y)坐標輸出,,為目標越界判斷和控制提供依據(jù),。
運動目標識別定位算法的實現(xiàn)代碼如下:
(1)調(diào)用OpenCV的庫函數(shù)dilate()和erode()函數(shù),實現(xiàn)二值形態(tài)學閉運算,。具體實現(xiàn)代碼為:
dilate( foreground, foreground, element);//膨脹
erode( foreground, foreground, element); //腐蝕
其中每一個函數(shù)中第一個foreground表示輸入圖像,,第二個表示經(jīng)函數(shù)處理后輸出圖像,element表示用于腐蝕和膨脹處理的模板,。
(2)調(diào)用函數(shù):find_Contours(foreground, outgroud, con-
tours, point_num, MAX_CON) 提取二值圖像中有效輪廓存于contours中,。其中foreground表示輸入待提取輪廓的圖像;outgroud表示輸出圖像,;contours是一個容器變量,,用以存放輪廓的數(shù)量、長度和每個輪廓的坐標,;point_num和MAX_CON分別表示有效輪廓的下限和上限,,濾除無效輪廓。
(3)調(diào)用函數(shù):get_barycenter(contours,,barycenter)實現(xiàn)從有效輪廓變量contours中計算形狀描述符和識別有效的輪廓,,并將最終質(zhì)心的坐標存儲到barycenter中,其類型是cv::Point,,表示一個坐標為整數(shù)的二維點,。
3.5 目標越界判斷及控制
目標越界判斷的兩個條件是運動目標質(zhì)心位置和運動方向,且運動方向由質(zhì)心的運動軌跡可求出,。因此,,判斷農(nóng)藥噴霧飛行器是否在右邊界越界的條件表達式如下:
其中crossAlarm越界標記,,1為越界,;flag表示運動方向標號,規(guī)定從左向右為0,,從右向左為1,;是質(zhì)心坐標,g(k,,y)表示界線函數(shù)(k為常數(shù)),。通過異或(0^flag,1^flag)可有效地解決雙向越界報警,,實現(xiàn)單方向越界報警,。左邊界越檢測算法和右側(cè)的類似。程序中的主要函數(shù)為judge_barycenter(barycenter,,B_left,,B_right),其中bary-
center為質(zhì)心坐標,,B_left 和B_right分別表示左,、右邊界函數(shù)常數(shù)k,,返回值為0或1,存于crossAlarm,。
當檢測到農(nóng)藥噴霧飛行器越界crossAlarm=1,,程序馬上通過軟中斷控制無線模塊nRF24L01發(fā)送控制命令給農(nóng)藥噴霧飛行器。為了保證控制的正確率,,控制命令采用包含校驗和的數(shù)據(jù)包發(fā)送,,并且農(nóng)藥噴霧飛行器解碼后要做出答復(fù),數(shù)據(jù)包的格式為:包頭+包長度+命令+校驗位,,校驗方式為和校驗,。
4 系統(tǒng)的測試
本文設(shè)計的基于ARM的農(nóng)藥噴霧飛行器越界控制系統(tǒng)主要由Contex-A8圖像檢測控制系統(tǒng)、nRF2401無線控制模塊,、高清攝像頭捕獲終端和三腳架等部分組成,,且最終在農(nóng)田進行測試。首先用三腳架將攝像頭抬升到一定高度使攝像頭前無遮擋物,,然后啟動農(nóng)藥噴霧飛行器飛躍農(nóng)田的邊界,,經(jīng)混合高斯和目標的識別定位算法處理過程產(chǎn)生的效果如圖7~10所示,其中圖7是由圖5(c)經(jīng)混合高斯模型算法處理得到的,。
為了驗證系統(tǒng)的可靠性,,根據(jù)農(nóng)藥噴霧飛行器工作的天氣條件,系統(tǒng)分別在晴朗微風,、晴朗中風,、陰天微風3種條件下進行測試,測試的數(shù)據(jù)如表2所示,。
現(xiàn)場測試的實驗結(jié)果表明,,基于ARM的農(nóng)藥噴霧飛行器越界控制系統(tǒng)能夠正確檢測、識別定位和判斷農(nóng)藥噴霧飛行器是否越界,,并控制其正確飛行完成農(nóng)田作業(yè),。同時分析得:雖然光線的強弱和風速對系統(tǒng)有一定的影響,但在不同的天氣環(huán)境測試該系統(tǒng)時正確率也可達到92.85%,。因此本系統(tǒng)可以滿足客戶需求,,實現(xiàn)對農(nóng)藥噴霧飛行器農(nóng)田作業(yè)的智能控制,在精準,、智能農(nóng)業(yè)中具有一定的推廣價值,。
參考文獻
[1] 胡承鍵.加速寧夏農(nóng)用無人機開發(fā)應(yīng)用促進精準農(nóng)業(yè)發(fā)展[J].寧夏農(nóng)林科技,2014,,55(5):8-10.
[2] 林蔚紅,,孫雪鋼,劉飛,,等.我國農(nóng)用航空植保發(fā)展現(xiàn)狀和趨勢[J].農(nóng)業(yè)裝備技術(shù),,2014,,40(1):6-10.
[3] 樊冬雪,成怡,,海林,,等.四軸飛行器視覺導(dǎo)航系統(tǒng)設(shè)計[J].計算機技術(shù)與應(yīng)用,2014,,40(8):142-146.
[4] 尹俊超,,劉直芳.基于OpenCV的運動目標檢測與跟蹤[J].計算機工程與設(shè)計,2011,,32(8):2817-2820.
[5] 劉瑞幀,,于士琪.OpenCV教程基礎(chǔ)篇[M].北京:北京航空航天大學出版社,2007.
[6] Gan Xinsheng,,Zhao Shubin.Comparison on background subtraction algorithms for moving target detection[J].Command Control & Simulation,,2008,30(3):45-50.
[7] 李娟,,邵春福,,楊勵雅.基于混合高斯模型的行人檢測方法[J].吉林大學學報(工學版),2011,,41(1):41-45.