陳 釗,趙玉清,楊陸強,周 橋,高彥玉,劉存瑞,王子輝,時 玲
(云南農業大學 機電工程學院,昆明 650201)
計算機視覺技術作為一種常用的圖像處理技術,被廣泛地應用于工業、醫療保健、航空航天、軍事等領域。其針對視頻圖像中連續運動物體的分析是最具應用前景的一個發展方向,在機器人導航、智能視覺監控系統、醫學圖像分析、工業檢測、視頻圖像分析及軍事雷達視頻信號的處理上占有舉足輕重的地位[1]。OpenCV作為一種開源的計算機視覺庫,可用于解決包括人機互換、物體識別、圖像分區、人臉識別、動作識別、運動跟蹤及機器人在內等方面的問題[2]。自發布以來,其就被廣泛地應用于諸多領域產品的研究及開發,如衛星地圖和電子地圖的拼接、掃描地圖對齊、醫學圖像去噪、安全和入侵檢測系統、自動監視和安全系統,以及制造業中的產品質量檢測系統、攝像機標定、軍事應用、無人飛行器、無人汽車和無人水下機器人等[3]。依托于自身良好的開源性,近10年來它已成為發展最為迅速的圖像識別技術之一。
近年來,隨著國家對農業的不斷重視,各種應用于農業方面的新科技、新方法層出不窮。在我國,背負式噴霧器噴霧施藥目前依然是藥農實施施藥作業的主要方式。在施藥過程中,藥農常以經驗噴灑農藥,由于不同藥農在田間行走時的步伐大小、行走頻率和噴桿擺動頻率存在一定差異,或者操作三輪(四輪)噴桿式噴霧機的習慣、土地松軟程度的不同等情況常導致施藥不均,進而導致殺蟲滅菌不徹底、控長增產類藥物需重新噴灑、除草類藥物除草不盡等不良結果。這不僅造成了人、財、物的浪費,而且還在一定程度上削減了作物的經濟效益。為此,提出了一種根據植株表面積實施精量噴霧的技術。在實驗室條件下,該技術實現了作物圖像的實時處理,并計算出了圖像區域中的待施藥植株的表面積,能夠為噴霧設備的精量噴霧提供依據。
本系統的主要功能是利用噴霧設備采集植株圖像并對其實時處理,通過串口通信技術的單工方式將處理后的相關數據傳送至末端執行機構。噴霧設備的信息流如圖1所示。
該設計方案以Microsoft Visual Studio 2013為開發工具,實現對原始圖像的灰度化處理、去噪和其他前期操作;使用OpenCV視覺庫完成對植株的邊緣檢測、輪廓繪制、面積及長度的計算;而后,利用Windows API(Windows Application Programming Interface)函數進行編程,并將面積信號發送給單片機。其中,單片機利用接收到的數字來調節PWM的占空比,進而控制噴霧器所噴灑的藥量,最終實現根據圖像中植株表面積的大小進行精量噴霧。圖像識別系統功能模塊如圖2所示。
OpenCV的全稱是Open Source Computer Vision Library,直譯就是“開源計算機視覺庫”,可在Windows、Linux、Mac、OS、Android、iSO、Maemo、FreeBSD、OpenBSD等操作系統上運行[4]。OpenCV由一系列的C函數和C++類構成,具有輕量、高效的特點。強大的OpenCV除了用C/C++語言進行開發和使用外,還支持C#、Ch、Ruby等匯編語言,同時提供了對Python、Ruby、MatLab等語言的接口,搭建了圖像處理和計算機視覺在很多方面的通道[5-6]。常用的OpenCV模塊如表1所示。

圖1 噴霧設備的信息流整體結構圖

圖2 圖像識別系統功能模塊圖

模塊功能描述calib3d相機校準和三維重建等內容core核心功能模塊imgproc圖像處理模塊features2d2D功能框架highguiGUI函數庫ml機器學習模塊objdetect目標檢測模塊stitching圖像拼接模塊
OpenCV的優點主要體現在以下兩個方面:一是執行速度快,能實時應用;采用優化的C/C++代碼編寫,能夠充分利用多核處理器的優勢。二是移植性好,可跨多種平臺運行。OpenCV由一系列的C函數和C++類構成,擁有500多個C函數跨平臺的中高層API[7-9]。
因為本設計使用的上位機為32位操作系統,所以選用Windows API串口通信方式。利用其編程將OpenCV程序計算得到的植株表面積傳送給單片機,該設計的實質是調用計算機操作系統提供的一系列底層例程來完成串口通信。通信的具體步驟可以分為以下幾步:打開串行端口,配置串行端口,讀/寫串行端口,關閉串行端口[10]。其主要通過CreateFile、GetCommState、SetCommState、BuilderCommDCB等函數的使用完成串口通信。
程序開頭部分與單變量定義:
#include
sbit jdq=P1.0; //繼電器1.0
unsigned char b=0;
//函數聲明
void uart_init();
void jdqpwm();
串口初始化函數,單片機接受PC串口發送的數據前需要進行串口學初始化。
void uart_init()//串口初始化
{
TMOD=0x20;//使用定時器1,工作方式2
TL1=0xfd;
TH1=0xfd;
SCON=0x50;//方式1打開,接受允許
ES=EA=1;//打開串口中斷允許和總中斷允許位,
TR1=1;
}
串口中斷入口函數:
串口中斷入口函數。函數將串口中斷標志位清零。并將接受的數據賦值給b。
void uart_inter() interrupt4
{
RI=0;
b =SBUF;
}
本設計以普通USB攝像頭為信息采集設備,像素為1 200萬,最大分辨率為640×480,最大幀率為30幀/s,上位機PC采用Intel Core(處理器i5-3210,主頻2.5GHz,4G內存),系統類型為32位。采用VS2013軟件編程,OpenCV版本為2.47。實驗對象為采集得到的1張銀杏葉,如圖3所示。

圖3 銀杏葉原始圖
圖像采集過程中,光線的角度、噴霧操作導致的植株擺動、信號輸入設備的震動、田地中的其他物質及攝像頭上的灰塵或者雨滴等會致使圖像失真或者腐蝕。所以,必須對圖像進行預處理,主要包括圖像修補、灰度化處理、邊緣檢測和噪聲去除等操作,如圖4所示。

圖4 灰度圖與輪廓圖
3.1.1 圖像修補
常用的圖像修補方法是基于快速行進的修補算法(FMM),由Alexandru Telea[11]在2004年首次提出。核心思想是先處理待修復區域邊緣上的像素點,然后擴大區域進行遍歷,直至修復完所有待修復的圖像像素[12]。采用此法進行圖像修補,結果如圖5所示。

圖5 腐蝕圖與修補后的圖
3.1.2 圖像濾波
圖像濾波主要是指在盡量保持圖像細節特征的條件下對目標圖像的噪聲進行抑制,是圖像預處理中不可或缺的操作。消除圖像中的噪聲或其他成分的操作叫作圖像的平滑處理或濾波操作。通常情況下,信號或者圖像的能量大部分集中在幅度譜的低頻或者中頻段,而在較高頻段有用的信號經常被噪聲淹沒。所以,濾波的一個手段就是降低高頻段幅度[13]。
在不破壞圖像的輪廓或者邊緣等重要信息的情況下,濾波能消除數字化過程中所混入的噪聲,將抽出特征模式轉化為識別特征模式,并使圖像的清晰度及顯示效果變好;而對于濾波器,可以把濾波器看作一個加權系數的薄紗,用濾波器處理圖像時透過薄紗會清楚地看到想看到的圖像特征。常用的濾波器主要有方框濾波、均值濾波、高斯濾波、中值濾波和雙邊濾波等(從左到右依次見圖6)。中值濾波是圖像處理中的常用步驟,它對于斑點噪聲(Speckle Noise)和椒鹽噪聲(Salt-and-Pepper Noise)來說尤其有用[14],而斑點噪聲又比較常見。所以,本設計采用的中值濾波。

圖6 5種濾波圖
3.1.3 噪聲去除
何凱明等在2010年首次提出導向濾波,而在后續研究中又改善了相關算法,使得快速導向濾波得以實現[15-16]。單向濾波不但能夠保證雙邊濾波的邊緣平滑,而且對于邊緣附近的檢測也有很好的效果。導向濾波具體分為以下幾步:①利用boxFilter濾波器完成均值計算,包括導向均值、原始均值、互換相關均值及自相關均值;②根據均值計算出相關的系數參數,包括自相關與互相關方差;③計算窗口線性參數a、b;④根據公式計算參數a、b的均值;⑤利用參數得到導向濾波輸出輸出矩陣;⑥圖像通過輸出的矩陣顯示完成導向濾波。
3.1.4 HSV顏色轉換與提取輪廓
HSV(Hue,Saturation,Value)是根據顏色的直觀特性由A.R.Smith在1978年創建的一種顏色空間,也稱六角錐體模型(Hexcone Model)[17]。HSV色系對用戶來說是一種直觀的顏色模型,如圖7所示。(R,G,B)分別是一個顏色的紅、綠和藍坐標,它們的值在0~1之間構成了立方體。HSV六棱錐模型是從RGB立方體演變過來的,參數H表示色彩信息,也就是所處的光譜顏色的位置,這個參數用角度來表示。紅、綠、藍分別相隔120°,互補的顏色相差180°;純度S為比例值,范圍為0~1,用來表示所選的顏色的純度與該顏色最大純度之間的比率;V表示色彩的明亮程度,范圍為0~1。HSV是一種比較直觀的顏色模型,既然待噴灑的植株是綠色的,又因為RGB不適合顏色的比較,通過查閱資料,得到綠色的H值大概在35~90之間;通過遍歷圖像中所有像素,留下在此區間內飽和度和色調較高的像素,其余的當作噪聲和腐蝕等。提取顏色及閉運算后的輪廓如圖8所示。

圖7 HSV色彩空間


圖8 綠色(HSV)提取以及輪廓
3.1.5 作物面積計算
計算原理:在攝像頭與拍攝物體距離為定長且與被拍攝物體平行的條件下(見圖9),由于兩邊都是相似三角形,所以鏡頭距離物體長度a、定長b、圖片中物體的長度c與物體的實際長度d有以下幾何關系,即
(1)
圖像中物體的面積S1與物體的實際面積S有如下關系,即
(2)
由式(1)和式(2)可得
(3)
所以,在固定鏡頭距離物體的長度a的情況下,物體的實際面積與計算面積存在一定的比例關系。通過 OpenCV中的contourArea()和arcLength()函數計算出輪廓的面積和長度,由此搭建了該精量噴霧系統,如圖10所示,OpenCV的計算結果如圖11所示。

a.鏡頭距離物體長度 b.定長 c.圖片中的長度 d.物體實際長度圖9 原理圖


圖10 系統圖

圖11 面積計算(1)
相對于實際情況,考慮到由于各種誤差的存在,對公式(3)進行修訂,則
(4)
總的來說,在采用固定型號的攝像頭及攝像頭距離物體長度a保持不變的情況下,實際面積與計算面積呈如下比例關系,即
S=KS1
(5)
本設計所采用的攝像頭距離物體的距離a=10cm,通過繪制1cm2的小方格,在同等條件下改變閾值,測算得到4組數據:5 873、5 868.5、5 002、4 995;可得面積為1cm2時,其在系統中被表達為5 434.6;通過求取平均值及等比例關系,計算得銀杏葉的表面積為13.490cm2,如圖12所示。利用細鉛筆將銀杏葉的輪廓描繪在紙上,再數出繪制的1mm2的小網格個數(組數據見表2),得出銀杏葉的表面積為13.444cm2。綜上所述,計算得表面積誤差為3.4%。

圖12 面積計算 (2)

試驗次數測量值/個試驗次數測量值/個1133021345313504134651350613457135381336
該系統采用綠色(HSV)等提取方法,顯著地消除了圖像噪聲。但分析過程中,由于受實驗場景、光線、田地中其他物質等的影響,USB攝像頭采集到的圖像中存在很多雜質,對計算結果產生了一定的影響;同時,繪制實物輪廓時,由于操作誤差的存在,在一定程度上放大了實物的測繪面積,對計算結果的誤差存在一定的影響。若采用分辨率更高的光譜攝像機,將有助于提高圖像的清晰度,優化該系統的處理結果。
本設計通過利用微攝像頭的測距原理,通過contourArea()和arcLength()函數計算出了植株圖像中的輪廓的表面積,與實際測算的結果相比較,雖存在一定的誤差,但為植株精準施藥的前提——待施藥面積計算提供了一種方法。但是,由于像素或者畫面的清晰度等問題,本設計受到了一定的局限;同時,采用的一些圖像處理手段,也會對最終的表面積計算帶來影響。高分辨率的光譜攝像機的使用有助于優化處理結果,但也提高了成本。與此同時,為了統一操作方便,攝像頭要距離植株的要大致相等。在實際田野中,難免會有個別植株特別高大與矮小,而且現實之中植物的葉面也不是理想的處在同一平面下,這也是本設計的不足之處。
參考文獻:
[1] 吳曉陽.基于OpenCV的運動目標檢測與跟蹤[D].杭州:浙江大學,2008.
[2] 矣昕寶,全海燕,許伶俐.一種基于OpenCV的多扇區圓檢測方法[J].科學技術與工程,2011,16(11):3698-3701.
[3] 艾倩.三維模型構建與動態目標識別算法設計與實現[D].沈陽:東北大學,2011.
[4] 辛軍.基于視頻流的人群目標識別和跟蹤的研究[D]. 沈陽:東北大學,2011.
[5] 毛星云.OpenCV3編程入門[M].北京:電子工業出版社,2015.
[6] 胡廣勝,王青,單清群. 紅外與可見光雙攝像機標定方法研究[J]. 科技創新與應用,2017(4):9-11.
[7] 尹俊超,劉直芳.基于OpenCV的運動目標檢測與跟蹤[J]. 計算機工程與設計,2011(8):2817-2820.
[8] 劉立強,蔡曉華,吳澤全.基于OpenCV的除草機器人圖像處理技術[J].農機化研究, 2013,35(12):162-165.
[9] 高素文.基于OpenCV的實時人臉識別系統研究與實現[D].保定:華北電力大學,2015.
[10] 吳芳.基于MATLAB燃料電池半實物仿真系統設計[D].武漢:武漢理工大學,2012.
[11] Alexandru Telea.An Image Inpainting Technique Based on the Fast Marching Method[J].Journal of Graphics Tools, 2004,9(1):23-34.
[12] 李景峰,潘恒,楊麗娜,等.VisualC++串口通信技術詳解[M].北京:機械工業出版社,2013.
[13] 董輝.視頻中運動物體檢測與跟蹤的實現[D].合肥:安徽理工大學,2012.
[14] 詹燈輝,周杰.基于視頻的交通流量的統計方法[J].儀表技術,2011(7):42-44.
[15] K He, J Sun,X Tang.Guided image filtering[J].European Conference on Computer Vision, 2010,35(6):1-14.
[16] K He, J Sun, X Tang.Guided Image Filtering[J].Pattern Analysis & Machine Intelligence IEEE Transaction on, 2013, 35(6):1397-1409.
[17] 景林,林耀海,溫永仙,等.結合色彩特征和空域特征的成捆原木輪廓識別[J].計算機系統應用,2013(7):196-199.
[18] 郭孟杰,陳麗君,楊帆,等. 基于USB攝像頭的田間圖像采集方法研究[J].農機化研究,2015,37(12):240-244.
[19] 劉龍申,沈明霞,孫玉文,等. 基于FPGA的農田圖像采集與3G無線傳輸系統設計[J]. 農業機械學報,2011(12):186-190.
[20] 王偉,張剛,劉九慶,等. 農業信息采集機器人設計及試驗研究[J]. 農機化研究,2016,38(9):206-209.
AbstractID:1003-188X(2018)06-0194-EA
Abstract: In order to achieve the precise spray and spray equipment effectively save pesticide use, this paper proposes a precise spray image processing technology based on open source computer vision technology. Through the extraction, identification of green plants, calculation the area of green areas, and on this basis, carried on the experiment,results show that the system can realize in high-speed processing of plant image, and can calculate the surface area of the image .The precision of system laid the foundation for the spray equipment.
Keywords: spray equipment; image processing technology; openCV; a serial port communication