韋 為 ,謝聲揚 ,陸俊帆 ,寧志朋 ,何桂尖 ,隋明君 ,盧羅芳
(1.桂林航天工業(yè)學院,廣西 桂林 541004;2.廣西大學,廣西 南寧 530004)
目前我國在果樹的農藥噴灑領域主要是用人工作業(yè)的方式進行噴灑,該方法不僅耗費大量人力物力,而且效率也極為低下?;诠麡鋱D像識別的無人機農藥噴灑空間定位研究仍然較少[1-2]。農作物的圖像識別方法主要是采用在RGB顏色空間內,目標圖像與背景顏色的區(qū)別,設定一個顏色閾值將農作物所占的顏色像素與背景物的顏色像素相分離,最終達到農作物圖像識別的目的[3]。但針對果樹的圖像識別方法目前還不是特別成熟[4-7]。
果園會根據(jù)果樹的種類不同而采用不同的種植間隔,不同果樹的樹冠直徑也不同,其空間分布的復雜程度將會對無人機進行精確農藥噴灑造成較大影響。本文以芒果樹為研究對象,通過CCD攝像頭拍照,然后應用圖像識別的方法,獲得無人機噴灑農藥的理想空間位置。對提高果樹的農藥噴灑效率有較高的實際應用價值。
圖像識別的基本過程為:將CCD攝像頭安裝在植保無人機下方懸掛點處。開啟圖像識別程序,開啟CCD攝像頭,操控植保無人機飛往芒果樹上方。用LABVIEW軟件編寫上位機軟件平臺開始調用CCD攝像頭拍照的圖像,從高空拍攝若干棵樹的樹冠圖像,并進行圖像預處理,如若圖像的預處理效果不理想,則輸出相應飛行指令,微調無人機飛行方位,直至圖像預處理結果理想為止。
將預處理理想的圖像經(jīng)由圖像識別程序進行處理,提取圖片內若干棵樹的大致輪廓,并通過程序算法去除多余的干擾物,而后標記出每棵樹的質心。選取其中一棵樹的質心點,使其與屏幕中心點基本對齊,從而確定無人機施藥的XY位置。輸入指令,將無人機調至施藥高度,系統(tǒng)通過果樹輪廓的面積與世界坐標的對應比例,判斷出樹頂與植保無人機的大致高度以及樹冠的大致直徑,實現(xiàn)自動控制無人機的路徑規(guī)劃以及施藥高度。具體原理流程如圖1所示。
圖1 定位識別原理流程圖
芒果樹的圖像預處理是圖像識別最重要的一步,主要目的是為了消除照片的雜亂信息。照片屬于彩色照片,芒果樹的樹葉以綠色為主。在實際情況中,種植芒果樹的果園通常會以固定的植株距離去種植芒果樹。但是由于果園的地理環(huán)境、天氣因素等外界因素的不同,通過芒果樹照片其樹葉可能受到陰影的干擾從而導致顏色與預期的綠色有所差異。若果園所確定的種植株距較密,則樹木與樹木之間很可能存在著樹葉的大量交集,并且圖像的背景物顏色也可能與樹葉大致相同。目前的識別方法主要是區(qū)分目標物與背景物的顏色,從而進行目標圖像與背景物圖像的分割。當干擾物的綠色分量與樹葉的綠色分量數(shù)值接近的時候,很可能會產(chǎn)生誤識別,這對圖像預處理有較大影響。對于部分種植株距大,背景物與芒果樹色差相對較大的果園,采用RGB顏色空間進行圖像預處理是可行的,但是對于存在上述干擾情況的芒果園來說,采用RGB空間的圖像預處理方法則是不可行的。
嘗試把圖像預處理的方法從常規(guī)的RGB顏色空間轉換為HSV空間。HSV空間的三個分量H(色調)、S(飽和度)、V(亮度)相對于RGB的三個分量來說,相互關聯(lián)度更小,更有利于芒果樹的圖像預處理。對芒果樹的預處理操作主要包括:圖像二值化處理、圖像膨脹處理、圖像較小面積元刪除處理、圖像連通區(qū)域質心標記處理等。圖像預處理過程如圖2所示,進行小面積元刪除時可能會忽略某些面積相對較大的孔洞區(qū)域,此時可用WHITE循環(huán)檢測連通域的數(shù)量,進而將其刪除。
圖2 圖像預處理過程
在圖像預處理的基礎上,采用質心點與屏幕中心點重合的方法,實現(xiàn)路徑規(guī)劃功能。具體規(guī)劃方法如下:圖像以左下角為原點,建立相對坐標系。將目標圖像質心坐標與屏幕中心坐標提取出來,并利用公式1,將質心坐標與中心坐標的相對距離計算出來。見圖3.
圖3 果樹中心標定與對位流程圖
其中s為兩點之間的距離,x1、y1為中心點的相對坐標,x2、y2為質心點的相對坐標。利用LABVIEW軟件編寫條件語句程序:若x1-x2>0,y1-y2>0,則對無人機輸入向左下方移動的指令;若x1-x2>0,y1-y2<0,則對無人機輸入向左上方移動的指令;若x1-x2<0,y1-y2>0,則對無人機輸入向右下方移動的指令;若 x1-x2< 0,y1-y2< 0,則對無人機輸入向右上方移動的指令。由于攝像機是逐幀拍攝的,則圖片與圖片之間存在時間滯后,因此中心點與質心點無法完全重合。對此,也為了節(jié)省識別時間,可以設定一個距離偏差范圍|δ|,即當中心點與質心點的距離s處于該偏差|δ|的范圍內時,可認為中心點與質心點基本重合。若s滿足條件,則對無人機輸入懸停指令。至此,下調無人機高度,通過調用MATLAB程序判斷連通域的面積,若當面積達到預定值,則再次對無人機輸入懸停指令。此時無人機所在的位置即預想的施藥位置。
由于果樹種植間隙大致相同,因此可以首先人工將無人機懸停至適當位置,隨后通過識別系統(tǒng)進行識別,待識別完成后將無人機往某一方向固定飛行固定距離,此時無人機大致懸停在下一棵樹的上方,對此再利用識別系統(tǒng)進行識別,以此不斷重復即可實現(xiàn)無人機施藥位置的路徑規(guī)劃。
芒果樹的樹冠直徑實際值是通過相機標定的方法獲得的。在實際測量的過程中,由于受到地理條件約束,果園中的芒果樹之間高度是大致相同的,因此只要大致設定無人機與樹冠的高度,就可以不用考慮重新進行相機標定和相機畸變系數(shù)的影響。若想要使得相機標定的精確度越高,則需要處理的圖片數(shù)量就要越多。處理的圖片達到10張以上便可達到預期的效果。
通過圖像預處理所獲得的芒果樹大致圖像,可以利用LABVIEW軟件進行芒果樹實際直徑的大致標定。其中,求取芒果樹實際直徑的方法如下:設芒果樹圖像相對面積為S′,絕對面積為S,無人機絕對高度為H,樹木絕對高度為H′,根據(jù)預先設定的拍攝距離為H和H′相減,通過芒果樹樹冠的絕對面積S與相對面積S′確定比例關系k=S/S′,得到芒果樹絕對面積S=S′×k.由于芒果樹的絕對面積大小大致不變,因此可認為k的值也是大致保持不變。通過試驗去測出k的值,進而確定芒果樹的相對面積閾值范圍,若圖像中連通域的面積達到了該閾值范圍,即可認為無人機達到了預想的施藥高度。
由于客觀因素的限制,本文通過搭建實驗臺的方式進行模擬實驗,如圖4所示,具體實驗方法如下:用樹木模型代替真實樹木,使用相機在適當高度拍攝樹木模型的俯視圖,之后將照片輸入電腦中,利用MATLAB軟件進行仿真模擬。利用IF語句判斷出樹木中心點與照片中心點的相對位置,然后利用While循環(huán),通過坐標點移動代替現(xiàn)實中的無人機移動。本實驗中規(guī)定每次移動的距離為圖像橫坐標最大值的4%.若兩坐標點的相對距離s小于等于某一閾值范圍,則停止循環(huán),并輸出懸停指令。由于每張相片的大小存在差異,其坐標的大小也存在著差異。在實驗中規(guī)定s的閾值范圍。通過記錄循環(huán)次數(shù)N來模擬無人機飛行的次數(shù)。實驗中,可以通過調整室內光線亮度去代替現(xiàn)實中的光照強度、更換樹葉顏色代替不同季節(jié)的樹葉顏色。
圖4 實驗平臺搭建圖
圖像識別結果如圖5所示,其中,加號為屏幕中心點,乘號為無人機農藥彈投放點,黑點為樹冠中心點。
圖5 圖像識別結果圖
通過對70棵樹木模型進行實驗分析,實驗結果如表1所示。
表1 實驗結果
在本次實驗過程中,一共選定了70棵芒果樹模型進行測定,其中拍攝了420張照片,識別成功的照片有358張,正確率達到了85%以上。特別是在大種植間隙的情況下,其識別成功率更是高達97.2%.
從表1可以看出,在進行晴天與陰天環(huán)境模擬時,發(fā)現(xiàn)陰天環(huán)境下的識別率較晴天環(huán)境下的高,其原因是因為陰天環(huán)境下,背景干擾物的顏色較暗,在進行預處理的時候能較好的分割出來。同時,在進行小種植間隙類型果園的識別時,需將H分量的閾值范圍縮小,從而避免圖像在進行預處理時,主樹木與干擾樹木之間形成相同連通域,導致后續(xù)處理時出現(xiàn)誤差。
通過圖像識別方法,本文完成了芒果樹的無人機施藥的空間定位分析:
(1)通過HSV空間進行H值分割,去除了背景物的干擾,綜合運用了多種圖像處理方法,多次運用膨脹、刪除面積元、質心標記等方法實現(xiàn)了較為理想的圖像預處理。
(2)利用中心點重合的方法與相機標定的方法確定了無人機的施藥位置,為實現(xiàn)無人機施藥的自動化路徑規(guī)劃提供了可靠的依據(jù)。