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