彭同宇 劉昌華
(武漢輕工大學數學與計算機學院 武漢 430023)
油菜是我國乃至全世界的主要食用油原料,而油菜在抽薹期以后葉片易受各種害蟲的啃食,這會直接導致油菜減產。常見的油菜病蟲害治理方法是大面積噴灑農藥,這種方式不僅對作物本身造成危害,而且這也是我國大部分農作物產品遭到國外的抵制的主要原因;其次,農藥也會殺死蜜蜂蝴蝶等為油菜傳粉的益蟲,這也會使農作物減產。
近年來,國內外圖像處理技術發展迅猛,適應圖像處理的嵌入式硬件也有了進一步的發展,一些科研人員開始研究基于嵌入式的農業病蟲害識別和診斷技術,并取得一些較好成果。由于研究對象和研究方法不同,研究成果也不盡相同。國內,有分布式移動農業病蟲害圖像采集與診斷系統[1];也有基于顏色特征的油菜害蟲機器視覺診斷研究[2];有的則是研究基于葉片圖像的農作物病害識別方法[3]。為了更好更準確和更及時地獲取作物病蟲害狀況,有的結合無人機進行航拍[4],對獲取的圖像進行處理獲取病蟲害信息;該方法受風力影響,而且無法精確獲取某一葉片的具體信息。有的把網絡攝像頭或采集節點架設在農業現場[5],通過有線或無線傳輸視頻或圖像到后臺服務器;但由于其不可移動性,只能針對某個區域農作物冠層病蟲害進行定位拍攝;同時該方法受通信成本、傳輸速率的影響,圖像的分辨率一般不高。還有利用高光譜成像技術,研究基于深度學習的農作物病害識別技術[6]。國外,Hong,Seung Cheon[7]研究出了通用植物有害生物預報系統的特定地點時間和空間驗證,對果蠅進行觀測;2018年 Mohd Najib Ahmad[8]等通過不同的光譜技術監測蟲害。
為了能便捷地提取出油菜葉片的蟲害情況,本文利用嵌入式和圖像處理等技術,設計并建立了一個手持式[9]移動農業蟲害圖像采集與蟲害特征參數提取儀。該系統包括一個手持式便攜圖像采集終端和一個圖像處理程序;圖像采集終端能利用伸縮桿可便捷地采集到人手或視線較難企及的農業病蟲害圖像,并通過觸摸高清IPS顯示屏來預覽畫面和控制相機拍攝,實現農業病蟲害區域圖像采集的準確定位;并利用OpenCV計算機視覺庫作為圖像處理方案,通過在QT軟件框架下調用OpenCV函數庫[10]對采集的油菜葉片圖像進行相應處理,實現圖像處理的專業性和可視化;能夠實時準確計算出油菜葉片孔洞數量及最大孔洞面積,進而為診斷病蟲害級別提供特征參數。
農業病蟲害圖像采集與蟲害特征參數提取系統由嵌入式硬件[11]和基于QT的應用層組成,通過集線器將U盤和USB攝像頭連接到搭載Qtopia2.2.0系統的嵌入式開發平臺。在該文件系統上搭建OpenCV和QT運行所需要的環境,由運行在嵌入式應用層的應用程序來實現調用底層驅動控制USB攝像頭的打開與關閉,并結合OpenCV庫對圖像進行處理。最終實現在開發板上直接對油菜圖像的采集與蟲害特征參數如蟲洞數量、葉片面積等進行提取。
系統實物如圖1所示,嵌入式硬件層選用的是羅技720P高清USB攝像頭,U盤為閃迪64G高速存儲U盤,讀取速度最高可達100MB/S。圖像處理終端則選用迅為公司研發的iTop-4412嵌入式開發平臺。核心部分采用迅為電子iTop-4412全能板,核心板為Exynos4412,它有兩種封裝形式,其中POP封裝的芯片內含1GB內存,所以不需要外擴DDR,可大大節省PCB面積,功耗控制方面也更好,多用于手持設備當中;SCP封裝優點是內存擴展更靈活,生產工藝相對更容易控制。電源芯片S5M8767的輸入電壓范圍是3.5V~5.5V,但是最佳的輸入電壓是3.7V~4.2V,也就是4V左右,這樣可以使S5M8767芯片處于最佳的工作狀態。基于手頭資源,本文使用的是SCP核心板。

圖1 系統實物圖
本文采用QT5.3(MinGW 4.9版)作為應用程序的設計框架[12],因為QT開發環境具有跨平臺、通用C++編程語言、特有的信號與槽機制等優點,因此在嵌入式開發領域內得到了較為廣泛的應用。本文中,QT程序主要實現以下功能:調用攝像頭接口的內存映射方法,完成內存映射;通過觸控屏對視頻顯示操作的實現(如放大、縮小等);實現對內存文件的讀取與寫入;調用OpenCV庫文件進行圖像處理[13]等。
PC機為安裝Win10操作系統的宏碁Aspire V 15 Nitro筆記本電腦,該筆記本配備了四代酷睿i5雙核處理器,主頻為1.7GHz,睿頻可達2.7GHz。首先在Windows10系統中下載并安裝Ubuntu16.04系統,在Ubuntu系統中下載并配置交叉編譯工具arm-none-linux-gcc,通過交叉編譯工具制作Qtopia2.2.0文件系統。在Ubuntu中搭建QT開發環境,使用影子編輯模式編寫并測試油菜圖像采集與診斷系統的工程,通過交叉編譯器交叉編譯已完成的工程文件,得到可移植的應用程序。
在裝有Ubuntu系統的虛擬機上交叉編譯OpenCv依 賴 庫 libz,libjpeg,libpng,libyasm,libx264,libxvid,ffmpeg,然后安裝cmake用來交叉編譯OpenCV。最后將所得到的依賴庫文件和OpenCV庫文件拷貝到交叉編譯器下庫文件下。
利用platform-tools工具將文件系統燒錄到iTop-4412嵌入式開發平臺上。然后將虛擬機上交叉編譯的OpenCV依賴庫,再把交叉編譯過的庫文件拷貝到ARM開發平臺的/lib文件夾下實現依賴庫的移植。接著將交叉編譯器庫文件下OpenCV庫文件通過u盤拷貝到ARM開發板的庫文件/lib下實現OpenCV的移植。最后,將交叉編譯得到的可移植應用程序拷貝到開發平臺上并運行。
如圖2所示,視頻的顯示[14]是以圖片的形式顯示在LCD界面上的,通過不停地刷新來形成視頻效果。通過指針所指向的內存作為圖像幀,首先要建立一個QImage類,這個類是QT中專門用于內存轉換為圖像幀類。在這里我們使用的是QT作為圖形界面的框架來顯示攝像頭采集的圖像。主要利用OpenCV讀取USB攝像頭中獲取的每一幀圖像。由于QT中圖像存儲數據類型QImage和OpenCV中圖像保存數據類型mat不一致,需要運用到圖像存儲數據類型的轉化。需要將mat類型轉換為能在QT控件中正常顯示的數據類型。

圖2 圖像刷新原理圖
系統采用QT5.3設計,并利用OpenCV計算機視覺庫作為圖像處理方案。通過在QT軟件框架下調用OpenCV函數庫,實現嵌入式端[15]圖像邊緣檢測。本系統通過使用OpenCV2.4.13“內核”與“插件”相結合的架構形式,大大提高了軟件系統的穩定性。系統中設計的圖像檢測算法涉及邊緣檢測、尋找輪廓和圖像的矩等內容。采用hsv空間的閾值和grab cut方法實現背景分離提取油菜葉片圖像。輪廓查找之前需要先進行邊緣檢測,系統中選用Canny邊緣檢測算法,Canny邊緣檢測算子是一種最優的邊緣檢測算法,在實際編程中直接調用Canny函數。最后使用OpenCV庫提供的findContours函數在二值圖像中尋找輪廓。
本文成功地在iTop-4412上利用OpenCV打開攝像頭,并結合QT框架顯示在10英寸的顯示屏上。如圖3所示,圖像顯示并無失真,并能實時刷新,以及進行圖像拍攝。也可以從U盤或內存中直接打開已經拍攝好的油菜圖像進行實驗,本實驗中直接使用中國農業科學院油料作物研究所種質資源研究室提供的油菜圖像,真實可靠。該系統具有結構簡單,功能針對性較強,成本較低的特點。

圖3 開發板上圖像采集與顯示圖
如圖4所示,首先需要對采集的圖像進行簡單的切割,盡可能的去除無關雜物,接著,要對圖像進行二值化,然后進行濾波降噪,再進行背景分離,采用grab cut方法對圖像進行背景分離時隨迭代次數增加,分離效果較簡單的閾值效果更佳,但運行時間也會隨之增加。針對不同硬件與不同葉片圖像迭代次數也可以在顯示屏上的QT控件上進行調整,本實驗統一迭代四次,分離效果與運行時間都比較合適。最后再進行特征參數的提取。

圖4 預處理結果

圖5 實驗結果
如圖5所示,左側圖為原始圖像,右側圖為經過圖像處理之后的圖像。針對不同的油菜圖像我們可以選擇合適的去除背景的方法,然后對去除背景的油菜圖像運用輪廓查找算法查找圖片中的連通區域,再運用主成分分析法選出可能感興趣的區域,結合面積閾值篩選出可能是蟲洞的區域。最后,將每個蟲洞通過draw counters函數對其輪廓邊界進行繪制,將處理后的結果輸出。同時將統計的孔洞數量、最大孔洞的像素點數、孔洞像素點累計之和葉片像素點數并顯示在QT控件中。
由此,根據試驗和參考標準[16]對蟲害進行分級,將實驗結果記錄,如表1所示。
實驗結果表明,基于iTop-4412開發平臺構建的油菜葉片圖像采集與蟲害特征參數提取系統,能夠實現油菜葉片圖像的采集并能對獲取的圖像進行相應處理并提取葉片蟲害參數。圖像采集像素取決于USB攝像頭,能夠隨意調整以適應不同需求;處理結果即統計葉片孔洞數量、計算葉片面積和計算最大孔洞面積均能在該ARM開發平臺上實現。但葉片局部存在些許誤選區,可能因素是該葉片表面生長出夾層葉片,可經過hsv空間閾值法或grab cut方法去除葉片背景,進而減小誤差。經反復實驗表明,兩種方式都能較好地去除圖像背景,當采集的圖像只有目標葉片為綠色時可以選擇簡單的閾值法,用時較短;當采集到的圖像包含其它綠色物體比如雜草時,就需要用grab cut方式去除背景。具體方式可根據實際情況在該系統中選用。葉片面積的計算通過與Photoshop統計的結果進行比對,誤差較小。

表1 實驗結果記錄
本文設計與實現了一個基于嵌入式iTop-4412平臺的油菜圖像采集與蟲害特征參數提取儀,可作為農業蟲害診斷的一個工具,結合現代農業自動化的實際需求,將圖像分割技術與嵌入式設備結合,大大降低了農業生產過程中的成本,也能實時地對農業作物蟲害情況進行檢測,及時采取應對措施,減小損失。在未來的農業生產現代化過程中,可采用路由器或網線傳輸的方式,利用嵌入式低成本的優勢搭建物聯網多節點檢測系統,利用主機總控機制,建立一個大型的基于物聯網和圖像檢測技術的農業檢測系統,實現真正的農業生產現代化與自動化。