柏元利,董文嫘,侯益明,趙家寶,許雷鋒,秦 瑞
(山西農業大學 信息科學與工程學院,山西 晉中 030801)
水稻是我國主要的農作物,我國水稻種植方式多以傳統人工作業為主,并結合有半機械化生產勞作[1-2]。由于水稻田地情況復雜,除蟲除草所消耗的人力物力資源成為水稻種植成本的主要部分[3-4]。農業機器人的應用可降低生產成本,減少水田除蟲除草對人力物力資源的消耗。人工智能快速發展和廣泛應用為農業機器人的大面積應用提供了良好的解決方案[5-6]。早在2012年徐美清等人提出了路徑規劃[7]這一概念,而在農業機器人中研究的重要領域便是路徑規劃和自動化行駛。
我國現階段農作物作業路徑規劃上使用的主要技術有:無線網絡技術設計自動避障系統[8],其優點在于可實時監控,其缺點是需要對數據進行實時加密,以防止黑客攻擊;大數據進行分析和規劃的路徑尋優系統[9],其優點是設計了用大數據進行最優尋位的最優路徑誘導系統,其缺點在于成本太高;采用遺傳等算法進行路徑規劃的方案[10],其優點是能在復雜路障情況下尋找到路徑最短,耗時最少,其缺點在于算法過于復雜,并未依據農作物的種植規律進行算法的設計,不易改進與實際的實時調試。針對以上算法的不足,本文提出了一種尋徑算法,為農業智能車的自動循跡提供了安全、低成本、更易于改進的方案。
本文設計的智能車與傳統的GPS定位規劃路徑和遙控控制智能車進行農業耕作不同[11]:本設計在智能車的攝像模塊中采用一種便捷有效的分割圖像的方法,算法部分由攝像模塊中嵌入的代碼實現,微控制器通過反饋信息對智能車進行控制,算法的反饋信息使智能車自動行駛,完成除草除蟲任務。
系統總體設計包括系統硬件與軟件兩部分:系統硬件部分主要完成系統主要硬件相關模塊的連接、組合;系統軟件部分主要完成系統智能尋徑等算法的實現。
智能車系統硬件架構如圖1所示。

圖1 硬件整體架構圖
系統整體主要包含電源裝置、攝像模塊、承載車架模塊、核心模塊、驅動模塊、噴灑裝置、傳感器輔助模塊。電源裝置為智能農業車各個模塊提供能量。電源直接連接系統的主要模塊,如電源與核心模塊、攝像模塊等的連接。攝像模塊通過抓拍水稻幼苗圖片,轉化并處理后將相關的數據輸入至核心模塊完成系統路徑的分析與識別,該模塊可通過USB連線與計算機通信,實現實時調試與控制。承載車架為各個模塊分配位置,車架可承載一定重量的除蟲除草農藥。核心控制模塊由高性能單片機為系統提供控制功能,圖1中核心控制模塊接受傳感器輔助模塊與攝像模塊信號,弱電壓輸出控制驅動模塊和噴灑裝置的控制信號。驅動模塊與核心控制模塊直接連接,接受核心控制模塊的控制信號并負責智能車的行駛。噴灑裝置接受核心控制模塊的控制信息,負責噴灑農藥功能的實現。傳感器輔助模塊接受物理信息,與核心控制模塊直接連接,反饋弱電壓信息給核心模塊。
系統為保證數據實時處理多個模塊協同工作,需要運算速度高、可完成多任務操作的高性能處理器,因此,系統的核心控制模塊采用ARM系列的STM32F103ZET6。STM32F103ZET6的最高工作頻率為72 MHz,有11個定時器和13個通信接口,結合外圍電路,該芯片可提供112個快速I/O端口。該芯片的開發環境為Keil 5軟件,支持C語言編譯燒錄代碼。
系統為了完成自動尋徑,需要利用機器視覺對環境信息進行采集并分析提取路徑相關的數據信息,故系統攝像頭選擇OpenMV3,這是一款小巧、低功耗、低成本的嵌入式的高集成光學傳感器模塊,內部集成了處理相關圖像信息的芯片,如主要采用STM32F765VI ARM Cortex系列處理器處理圖像數據,其擁有豐富擴展板塊,以及GPIO等,該攝像頭模塊可以通過USB接口連接電腦上的集成開發環境OpenMV IDE進行編程開發,并提供Python語言接口,協助完成編程、調試。本系統通過該集成開發環境設計算法,并通過USB接口燒錄代碼。
系統運行過程如圖2所示。

圖2 系統功能示意
圖2提供了各個模塊的功能說明,供電系統的硬件由電源裝置組成,為整個系統提供電壓,如圖2中由電源裝置引出的實線部分,供電系統給雙橋驅動模塊和噴灑裝置直接提供12.0 V驅動電壓,并可以利用穩壓模塊降壓并提供給核心模塊、傳感器模塊,攝像模塊等;攝像模塊采集圖像并分析圖像,圖像分析算法由Python開發實現,分析產生的路徑信息發送給核心控制模塊;核心控制模塊在接收到路徑等信息后,處理后對系統中的驅動模塊發出控制行駛命令,控制模塊和驅動模塊驅動電機,實現電機差速,可以實現了路徑行駛調整,完成自動行駛功能;傳感器輔助模塊用以檢測障礙,遇到障礙時向核心控制模塊發出中斷信息,核心控制模塊執行中斷行駛命令,完成控制驅動模塊電路做出轉彎、停車等行駛動作;噴灑裝置在車的行駛過程中保持執行噴灑操作,噴灑藥物指令來自核心控制模塊,核心控制模塊依據上述行駛相關信息提供噴灑方案。
系統的電源除了要確保系統電壓穩定,并且需要持久的續航能力,因此本系統采用AGM強效電池,電池連接上降壓穩壓電路,可以為核心控制模塊相關的芯片提供3.3 V電壓,同時為雙橋驅動模塊和噴灑裝置提供12.0 V驅動電壓。
智能車在路徑行駛中,需要分析周圍環境,實時計算分析圖像,形成路徑相關的信息反饋信息給核心控制器,所以系統選用OpenMV3攝像頭作為系統的攝像模塊。該攝像頭屬于嵌入式模塊,可完成機器視覺的應用,除了具有高速的圖像處理芯片的支持外還自帶ESP8266WIFI模塊,使其可通過局域網實現圖片傳輸。該攝像頭模塊還具有可編程功能,可運行自主設計的算法,在算法下載到攝像頭模塊內部后,可避免了傳統GPS定位產生的數據泄露。攝像頭自帶內存卡槽,可用于存放采集到的相關圖片,便于后期分析、調試。
除草車為了提供除草功能,所以車架應該具有一定的承載能力,并要合理組織布局,完成其他功能模塊的定位,故車架的設計如圖3所示。承載車架采用3D打印成型,承載所有硬件模塊采用插槽式設計,可以保證車在行駛中硬件模塊的穩定。車架有4個支撐軸用以固定電機與輪胎,中間預留位置存放藥箱,預留的位置還可以分別固其他配置裝置。該車架,堅固輕巧,足夠承受一定的重量。

圖3 承載車架模塊圖
核心控制模塊主要完成系統的總體控制功能,本系統選擇STM32F103ZET6微控制器。STM32F103ZET6的優點是耗能低,外設引腳多,供電方式多樣,如3.3 V和5.0 V均可給其供電,易于實現上位機通信。本系統應用的核心控制模塊可直接連接攝像頭,能對攝像頭反饋的信息加以分析,并發出命令控制驅動模塊和噴灑模塊的功能。該模塊支持多種代碼燒錄模式,易于編程調試。
智能車通過搭建的雙橋式電路共同控制驅動。電機驅動模塊選用兩個L298,其中XD-WS37GB3650電機有外圍保護電路,可防止電流過大燒壞電機。系統運行過程中,通過單片機控制L298N調速。智能車設計有四輪驅動模塊,除草除蟲時采用四驅方式,通過中大功率的直流無衰減速電機驅動;兩個L298N驅動模塊驅動電機,實現差速轉彎,直走等各種動作。
噴灑裝置模塊用于噴灑霧化農藥,其核心部件為電動水泵,由電源模塊獨立供電。電動水泵提供的壓力為6.8 bar,出水量為4 L/min,通過大功率的雙橋電路對其進行控制,兩個電動水泵,分別通過導水管與藥箱封閉連接。
系統的控制流程如下:
(1)攝像模塊采集水稻莖稈信息;
(2)處理攝像模塊采集的信息,在此基礎上根據攝像頭芯片中的尋徑算法辨析兩株水稻在同一個攝像頭的分布距離,得出路徑信息;
(3)將路徑信息反饋給控制模塊,由核心控制模塊控制電機和直流驅動,從而控制每個時間段小車的運行狀況,使智能車按照一行或一列依次前進;
(4)當智能車沿著一列水稻行駛到盡頭,通過攝像頭再輔助以傳感器判斷,首尾倒置,轉彎換行繼續循跡下一列水稻,轉步驟(1)。
系統攝像模塊中的尋徑算法是智能車設計中的關鍵部分。攝像模塊采用OpenMV3攝像頭,其函數庫底層設計由C語言編寫,能夠滿足計算效率要求,上層算法接口采用Python語言實現,易于編程。系統實現時可直接通過官方庫提供的庫函數讀取所有的像素值,截取的圖片能夠進行處理后進行壓縮傳輸,利用以上處理結果,采用Python編寫的尋徑算法分析每幀圖片信息,做出運算,完成自動尋徑,最后將計算結果轉換成控制信號,發送電壓信息給核心控制中的單片機,實現系統控制。
算法的運行步驟如下。
(1)攝像頭采集圖片。采集方式為依據系統設計的時間間隔,等時間間隔對圖像進行采集。
(2)圖像進行區域劃分。對采集的每一幀圖像進行處理,在圖像上形成分區,并將區域細化為子區域。
(3)以像素為單位進行統計計算。由子區域計算均值、標準差,計算結果的標準差越小,表明子區域像素值越接近。
(4)水稻莖稈的判別。提前實際測定并找到均值和標準差的比較值,該比較值作為閾值標準,以此統計和篩選出符合閾值的子區域,即可判斷子區域是否為水稻莖稈細節部分。
(5)代表點坐標的確定。在子區域中確定本區域的代表點坐標。
(6)形成控制信息。根據兩個坐標點求出直線,將兩組直線的中點到圖像左邊界的距離進行比較分析,得到第一株水稻莖稈豎直部分投影在攝像頭距離左邊界的平均值,根據分析結果,賦予變量二進制數值。
算法執行完成后代碼依據數值使攝像模塊發出電壓信息,信息反饋給核心控制模塊。為了獲得水稻的圖像信息,攝像模塊通過A/D轉換器將光電信號轉換成數字信號傳入到STM32F765VI ARM Cortex芯片中,攝像頭OpenMV3具有圖像傳感器,其上的彩色濾光片可區分色彩,采集到的一張圖片的分辨率最終為320×240 PPI。
尋徑算法的主要任務有:圖像區域劃分、算法尋徑分析、路徑判斷并生成控制信息。
(1)圖像區域劃分
系統的一幀圖片的分辨率320×240 PPI,這幀圖像以像素點左上角第一個為坐標原點進行劃分,以一幀圖像的左邊界和上邊界建立坐標軸,縱軸為x,橫軸為y。在此坐標圖中劃分平面區域,所劃區域如圖4所示。再將每個區域劃分成多個8×8的子區域,每個子區域總計64個像素值,從圖中可見區域①與區域②,區域⑦與區域⑧關于x=120對稱。

圖4 圖片區域劃分圖
(2)算法尋徑過程
按照圖像區域劃分步驟,劃分完畢,即可進行運算。首先計算一個區域中的所有8×8的子區域,然后進行閾值篩選。閾值范圍為:

若滿足閾值范圍,則標記子區域中心坐標。需要注意的是:其中m1,m2表示提前測試得到的標準差的上下限,z表示子區域的標準差;一幀圖像由RGB三原色構成,每個像素點均有R,G,B的三種數值。計算標準差是處理一幀圖像的G值。此外還需要通過R和B值篩選圖像,以此保證計算G值的標準差z屬于綠色植被的值,篩選方式如下:

式中:m3,m4表示R的子區域的均值z2的上下限閾值;m5,m6表示B的子區域的均值z3的上下限閾值。
經過以上篩選,求出一個區域中標記的所有子區域中心坐標的平均坐標,得出的結果構成代表點坐標(x',y'),如下:

式中:s表示符合以上閾值判定的字區域總數目;x表示子區域中心縱坐標;y表示子區域中心橫坐標。
一幀圖像中,區域①和區域②對稱。按照上述步驟分別計算區域①和區域②,得到兩個代表點,然后計算出由對稱區域的代表點坐標所構成的直線,直線方程為:

式中,y的取值范圍是(80,160)。

接著便可求出每組直線中點到左邊界距離:

同上述方式,計算配對區域⑦與區域⑧得到x2",需要注意的是區域④~區域⑥一直作為參考區域使用,便于實際測試觀察。
(3)生成控制信息
分析算法尋徑過程時所得出的兩個值,當x",x2"中一個為零時,算法控制攝像頭發出兩個高低電平信息給單片機,讓智能車保持直線行駛。由x2"在矩形區域③~區域⑥的值判斷循跡車行駛的狀態;當x",x2"都為零時,循跡車保持直線行駛或者首位掉頭,換行行駛,直到出現其它情況;當x",x2"都不為零時,根據x'''=x2''?x''值進行判斷,做出左、右微調,并保持直線行駛。
實驗場景為水稻生長初期的水稻田,水稻分布趨于點陣排列,行列排列,水稻列間距為40 cm,車寬為25 cm,農業智能車模擬農耕作業的俯視圖如圖5所示。確保一列水稻始終處于智能車的正下方,攝像頭離車頂10 cm,離水稻排列中線10 cm并斜向放置。
本系統算法運行時,需在算法尋徑過程中找到閾值的具體數值,因此本系統通過OpenMV3攝像頭實際測試,采集到如圖6所示的原始數據,計算得出綠色植被圖像的R,B均值的閾值范圍和G的標準差閾值范圍。

圖5 智能車尋徑俯視圖

圖6 像素點紅綠藍通道值數據圖
以上數據是測定水稻莖稈4×8個像素點紅色通道R值,計算得出紅色通道值的均值z2為79.468 75,由此得出紅色閾值m3,m4范圍為79.468 75~256;同理測定水稻莖稈一行相鄰4×8個像素點藍色通道B值,計算得出藍色通道B均值z3為205.093 7,由此得出藍色閾值m5,m6范圍為0~205.093 7。當測得數據同時滿足以上兩種情況時,可以確定其為綠色植被,去掉更多的干擾情況,使得識別更加精準。
測試像素點為4×8矩陣的綠色通道值G的原始數據,如圖6中的數據所示,計算得出綠色通道值G的標準差z為12.765 358,由此得出綠色標準差閾值范圍為0~12.765 358,可確定其為水稻。
利用上面所述的尋徑算法得出兩株水稻在同一個攝像頭的分布距離,通過分析距離得出智能車的軌跡。
智能車行駛時攝像頭運行算法的樣本圖片如圖7所示。在實驗時為了便于觀察,通過編寫代碼讓劃分的區域顯示出來,從圖中可以觀察到區域①,區域②,區域⑦,區域⑧以及兩點確定的直線(白色線段)。
從圖7(a)中可以發現區域①和區域②確定了直線x",而區域⑦和區域⑧不能確定直線x2",x2"=0(圖像靠近左邊界只有一根白線);這時智能車保持著向左輕微轉向的姿態。從圖7(b)中可以發現區域1和區域2確定了直線x",而區域⑦和區域⑧確定了直線x2"(圖像中有兩根白線);這時智能車是保持直線姿態行駛的;從圖7(c)中可以發現區域1沒有確定直線x",x"=0,區域⑦和區域⑧確定了直線x2"(對比圖7(b),左邊直線消失);智能車改變原始姿態,保持向右輕微轉向的姿態。

圖7 攝像頭采集的圖片
實驗圖像及分析結果充分證實了該除草農業智能車設計方案具有可實現性,能夠實現自主尋徑功能。
本系統利用OpenMV3攝像頭采集高清圖像數據傳回計算機分析,可以準確識別水稻,并自動規劃路徑噴灑農藥。采用一個攝像頭完成了自動尋徑及農藥噴灑,具有設備成本低的優點;直接在攝像頭模塊輸入算法,不用遠端調控,算法非常簡單,容易改進并實時調度;操作簡單,易于上手;相比傳統的GPS定位規劃路徑,需要進行實時數據加密,本系統未聯網,不怕數據泄露。本系統實現高度智能化農業生產,對水稻種植生產起到促進作用,使得農業作業更加方便快捷,具有很高的經濟效益。