劉慧力 賈洪雷,2 王 剛, GLATZEL Stephan 袁洪方 黃東巖,2
(1.吉林大學生物與農業工程學院, 長春 130022; 2.吉林大學工程仿生教育部重點實驗室, 長春 130022;3.維也納大學地理與區域研究系, 維也納 1090)
現代農業裝備正朝著智能化的方向發展,機器視覺在智能農業裝備中充當著“眼睛”的角色[1-3]。對于智能植保機械與智能收獲機械,機器視覺技術的重要作用是識別目標作物或者非靶標作物。機器視覺主要依據作物和雜草間的顏色、形態等差異進行識別,并且需要硬件與算法的融合[4],雜草和作物的圖像處理算法是機器視覺領域的研究重點之一[5-8]。根據圖像中的像素信息與像素直方圖信息可以大體上分辨前景物體與背景物體。基于擬識別物體的顏色、外形輪廓或分布特征,對特定區域的像素信息進行膨脹、腐蝕、開閉等操作,可以突顯目標檢測物體。基于邊緣檢測和特征提取操作,可以識別目標物體。在農田圖像識別領域,農田中的作物種植行與土壤背景形成鮮明的對比,通過像素中的顏色信息即可識別出作物種植行[7]。作物和雜草的葉片脈絡不同,通過作物、雜草葉片特征的識別可以為辨別苗、草提供基礎,徐艷蕾等[5]基于模糊順序形態學,利用植物葉片脈絡邊緣及內部區域的差異性,提取了植物葉片脈絡邊緣。BAKHSHIPOUR等[9]研究了甜菜地中的雜草視覺識別系統,基于雜草形狀的傅里葉描述子和不變矩特征,并應用支持向量機與人工神經網絡,使甜菜的識別準確率達到了93%。
傳統機器學習算法通常需要復雜的特征工程,需要進行數據降維,并且分類精度不高,對于復雜背景的圖像識別困難[10]。深度學習不需要人工構造特征,尤其對于高級別的特征而言,傳統的機器學習過程需要耗費大量的數據去描述這些特征,而深度學習則可以直接把指定的特征映射到目標空間[11]。目前,計算機深度學習技術在苗草識別領域取得了突出的成果。譚文學等[12]設計了深度學習神經網絡的果蔬果體病理圖像識別方法,該方法只需要獲得果體病理圖像,即可以實時預警果蔬病害和輔助診斷果蔬疾病,實現無人值守的病蟲害智能監控。深度學習技術通過模擬人腦的學習過程,能夠自動識別訓練圖像集中的特征與對應的標簽,然后對指定的特征進行回歸分析與分類,從而生成各種基于檢測目標的回歸模型與分類器[13-14]。楊洋等[15]針對履帶自走式熱霧機玉米行間對行自主行走的需求,研究了玉米根莖精確識別與定位方法,在預訓練網絡模型VGG-16的基礎上進行遷移學習,建立了玉米根莖檢測網絡,模擬人眼識別功能從復雜田間環境中自動識別和定位玉米根莖。除了已經訓練好的深度學習網絡模型之外,人工神經網絡與卷積神經網絡(CNN)是深度學習領域廣泛應用的基礎網絡,而且是模擬人腦學習過程的核心[16]。深度學習的可解釋性和泛化性較差,在農作物圖像識別領域,識別作物的整體或者果實(例如番茄)可以得到較高的識別準確率[17]。例如巴西研究人員FERREIRA等[18]采集了15 000幅大豆田圖像,圖像中包含土壤、大豆、闊葉煙草和雜草,訓練模型在測試集中對闊葉煙草與雜草的識別準確率超過了98%。但是,目前的深度學習技術在識別作物莖稈方面卻難以得到令人滿意的識別結果,雖然少有文獻報道作物莖稈識別的準確率數據,但是ATHANASIOS等[16]研究顯示,深度學習獲得的農作物識別模型是以識別農作物整體植株為主要應用方式。
由于玉米植株整體的葉片呈發散形態,各株玉米葉片之間會發生搭接的狀況,僅對植株整體進行識別與定位不能達到智能農業機械瞄準玉米莖稈或者躲避玉米莖稈的目的。因此,本文以識別玉米秧苗莖稈為目標,基于深度學習方法識別玉米植株整體,采用圖像處理方法進一步識別玉米秧苗莖稈。
圖像采集設備為工業電荷耦合器件(CCD)相機(陜西維視智造科技股份有限公司,MV-EM200型),2/3″定焦鏡頭(陜西維視智造科技股份有限公司,AFT-2514MP型),圖像尺寸1 280像素×800像素,圖像格式為.jpg。采用深度學習訓練框架TensorFlow(谷歌大腦開發,1.11.0版本)對玉米莖稈識別模型進行訓練,訓練采用的軟、硬件配置為:Windows 10系統,計算機運行內存為16 GB,搭載Intel Core i7-7 700 K CPU, 4.00 GHz主頻,x8處理器,圖形處理單元(GPU)使用英偉達GTX 2080Ti。選用Python 3.6.5編程語言,圖像形態學處理采用OpenCV 3.4.2計算機視覺庫。為防止圖像采集時相機位姿的變動與抖動,將相機搭載在相機云臺(深圳市大疆科技創新有限公司,Ronin-MX型)上,從而得到高質量的圖像,圖像采集裝置如圖1所示。
本研究于2018年6月18日在吉林省梨樹縣郭家店鄉化石山村的農田中采集玉米秧苗圖像,玉米品種為吉單209,葉齡指數50左右,圖像采集時,鏡頭的主光軸位于玉米秧苗的第4與第5片葉子中間,采集時間段分別為 07:00—08:30、10:00—11:30、12:00—13:30、15:00—16:30、18:00—19:30,在上述5個時間段各采集250幅圖像(共1 250幅圖像樣本),采用LabelImage插件(谷歌大腦開發,v1.7版本)進行圖像標記,在標記過程中可以同時生成與該圖像對應的標簽,圖2中淡藍色方框所標記的物體即是深度學習模型中要識別的物體。然后將標記過的圖像數量按照9:1的比例隨機分為訓練集與測試集。

圖2 圖像標簽制作Fig.2 Making image labels
為了增強目標圖像的細節,本研究對每幅圖像進行快速局部拉普拉斯濾波,構造輸入圖像的多尺度高斯金字塔,本文設定每層圖像的面積為上層圖像的1/4,圖像分辨率縮小為上層圖像的1/2,以達到增強目標圖像細節的目的[19]。以本研究中所拍攝的一幅玉米秧苗圖像為例,多尺度高斯金字塔示意圖如圖3所示。圖中J1、J2、J3分別為第1層到第3層圖像。

圖3 多尺度金字塔圖像示意圖Fig.3 Sketch map of multiscale pyramid
多尺度金字塔的構造成倍地擴增了本研究中輸入圖像的數量,多尺度金字塔的層數即是卷積神經網絡(CNN)模型的個數,為了使所有的CNN模型跨尺度共享參數,基于圖像正則化的變換思想[20],將上述多尺度金字塔中的圖像均變換為具有局部領域0均值和單位標準差的圖像,假設CNN模型為ls,設其內部參數為βs,即
βs=β0(s=1,2,…,N)
(1)
式中β0——CNN模型的初始內部參數
s——維度
在維度s下,對于具有N層的多尺度卷積神經網絡ls存在
ls(Js;βs)=WNON-1
(2)
式中WN——第N層網絡的權值矩陣
ON-1——第N-1層網絡的輸出,且有O0=Js
Js——多尺度金字塔中的具體圖像
中間隱藏層y在CNN模型中的輸出可以表示為
Oy=conv(tanh(WNON-1+bN))
(y=1,2,…,N-1)
(3)
式中 conv——卷積操作,激活函數采用雙曲正切函數
bN——CNN模型中第N層網絡的偏置參數矩陣
對于每一層的高斯金字塔圖像而言,使用CNN模型首先需要對圖像進行卷積操作,提取圖像特征,然后對圖像進行池化操作,降低圖像尺寸,并增大感受野。由于CNN模型中需要包含多個卷積層與池化層,每次的池化操作都將降低圖像的尺寸,為了保持圖像尺寸不變,需要在每次池化操作之后進行上采樣操作,從而將縮小的圖像恢復到原來尺寸。但是在不斷減小與增大的過程中,導致圖像損失了部分信息,為克服這一缺點,在卷積核的元素之間插入權值為0的元素,即將卷積核進行膨脹操作,而放棄池化操作,同樣可以達到增大感受野的效果,這即是膨脹卷積操作[21]。以3×3的單位卷積核(圖4a)為例,分別進行2倍膨脹和4倍膨脹,結果如圖4b、4c所示。

圖4 膨脹卷積核示意圖Fig.4 Schematics of expanded convolution cores
按照CNN模型的做法,在膨脹卷積操作后進行全連接操作,生成深度學習的訓練模型。多尺度金字塔的層數將決定產生CNN模型的數量。提取所有CNN模型產生的特征圖,并對全部特征圖進行分尺度上采樣,以達到統一尺寸的目的,最終將全部特征圖組合在一起,生成多尺度分層特征。本文中高斯金字塔的層數為3,多尺度分層特征的網絡結構如圖5所示。

圖5 多尺度分層特征的網絡結構示意圖Fig.5 Network structural diagram of multiscale hierarchical features
本研究采用TensorFlow 1.11.0搭建訓練模型的架構,由于本文高斯金字塔的層數為3,所以并行構建3套相同的CNN模型,每套CNN模型采用11層卷積網絡,模型中的權值、偏置、激活函數與卷積核等如本節所述。為了使OpneCV能夠調用本研究中的深度學習模型、不依賴較高的計算機硬件配置,本研究在模型訓練結束之后,將TensorFlow生成的cpkt模型轉換為pb模型和對應的pbtxt文件,再使用OpenCV 3.4.2調用pb模型和pbtxt文件,對訓練模型進行測試。
對于作物莖稈而言,深度學習獲得的識別模型的識別準確率往往較低,因此,在確定圖像中包含玉米秧苗后,還要對玉米秧苗的莖稈位置進行進一步標記。本文結合深度學習與圖像形態學處理技術,首先識別玉米秧苗,然后在圖像中進行莖稈識別。由于CCD相機采集到的玉米秧苗圖像為彩色數字圖像,而灰度化之后的圖像更利于后期處理,所以首先將圖像進行灰度變換。基于OpenCV中的“cv2.cvtColor(img,cv2. COLOR_BGR2GRAY)”語句對圖像進行灰度變換,原始圖像與灰度化后的圖像如圖6所示。

圖6 原始圖像與灰度化后的圖像Fig.6 Original picture and gray picture
為了進一步降低數據的計算量,將灰度圖像進行二值化處理。選取合適的閾值是圖像二值化處理中的重要步驟,灰度變換后的圖像灰度級為256,總的像素數用n表示,其中n=n0+n1+…+n255;用pi表示灰度圖像中灰度為i的像素點出現的概率。
(4)
其中
式中ni——灰度為i的像素點數量
灰度小于等于某一定值L的圖像像素分布概率ω為
(5)
則灰度圖像的像素均值μ和方差σ2可以表示為
(6)
(7)
(8)
將得分最高的子塊分解為4個更小的子塊,并重復上述步驟,直到滿足迭代停止的條件為止。由于本研究基于高斯擬合法[22]優化選取圖像子塊的閾值,故迭代停止條件為子塊區域的像素直方圖呈雙峰或者不明顯雙峰分布[23]。基于4個子塊中得分最高的子塊的劃分數目,將圖像的其余3個子塊也進行相同數目的分塊,細分之后的最小單元被命名為FB,為尋求各個FB的初始閾值t,定義目標函數為
1.2.6 第二章細胞的基本功能-跨細胞膜的物質轉運 跨細胞膜的物質轉運歸納了大小分子、脂溶性水溶性小分子物質、離子和葡萄糖等非離子小分子水溶性物質進行跨膜物質轉運的轉運方式。學生在學時感覺死記硬背成分較多,但在結合第六章消化吸收功能時,告訴學生每天吃進去的食物消化成小分子物質后的吸收入血過程其實就是各種小分子物質跨兩層細胞膜進行物質轉運的過程。以及結合演繹第八章尿的生成過程中的重吸收和分泌小分子物質的本質其實也是小分子物質的跨腎小管上皮細胞兩層細胞膜的物質轉運過程。這樣將歸納與演繹綜合一起學生就會豁然開朗,理解記憶。
(9)

(10)
式中ω(t)——初始像素閾值t的分布概率

獲得各FB最佳閾值的步驟為:①采用初始閾值t對FB進行初步二值化處理,然后將直方圖劃分為C0和C1兩部分。②分別計算C0和C1兩部分的像素均值μ0和μ1,以及標準差σ0和σ1
(11)
式中x——FB的像素值

通過上述步驟,將灰度圖像進行二值化處理,如圖7所示。

圖7 二值化圖像Fig.7 Binary picture

圖8 形態學處理后的圖像Fig.8 Morphology picture
對圖像進行形態學操作之后,需要找到圖像的輪廓,OpenCV自帶多種尋找圖像輪廓的API(Application programming interface),其中較為常用的為“樹形”與“外部”,其中“樹形”可以將圖像中所有的輪廓找到,包括物體內部的孔洞。本研究選用外部輪廓API,將圖像中可能是玉米秧苗莖稈的大型物體顯示出來。圖8中的藍色標記為本文方法在圖中找到的物體輪廓,為了使顯示更加清晰,本文將輪廓標記疊加在原始圖像上,結果如圖9所示。
如圖9所示,圖像中的玉米秧苗莖稈輪廓為類矩形,直觀可見玉米秧苗莖稈的輪廓與其余的物體具有極大的差別。本研究通過求取圖像中各個物體輪廓的外接矩形的寬高比來識別玉米秧苗莖稈。在本研究所選用的示例圖像中,應用OpenCV將外接矩形寬高比最小的輪廓填充為紅色,作為識別出的玉米秧苗莖稈,如圖10所示。

圖9 識別到的物體輪廓Fig.9 Contour identification

圖10 被標記的玉米秧苗莖稈Fig.10 Labelled maize stem
試驗于2018年6月20—22日在吉林省梨樹縣郭家店鄉化石山村的農田中進行,試驗所用的玉米品種為吉單209,玉米秧苗處于小喇叭口期與大喇叭口期之間,葉齡指數為50左右。為在不同光照條件下進行試驗,選擇試驗時間段為07:00—08:30(早晨)、10:00—11:30(上午)、12:00—13:30(正午)、15:00—16:30(下午)和18:00—19:30(傍晚),具體光照情況如表1所示。

表1 3個試驗日的平均光照情況Tab.1 Average solar radiation conditions during three experimental days (°)
玉米的種植株距約為25 cm,種植行為南北方向,早晨、上午和正午拍攝時,CCD相機的鏡頭向西,下午和傍晚拍攝時,CCD相機的鏡頭向東。CCD相機的鏡頭與玉米行中心的垂直距離為(60±5) cm,鏡頭的主光軸位于玉米秧苗的第4片與第5片葉子中間,試驗時,由同一位操作者手持相機云臺在玉米行間行走,操作者的行走速度大約為0.5 m/s,相機設置為自動曝光模式,曝光時間設置為0.01 s,曝光頻率設置為3 Hz。試驗選擇6種雜草密度不同的地塊,其中雜草密度最高地塊(地塊1)的雜草密度約為50株/m2,其余4個地塊的雜草密度按10株/m2的幅度遞減,上述5個地塊中的蒿草類占30%左右,水稗草占30%左右,其余種類雜草占7%以下;第6個地塊進行人工拔草,雜草密度為0。試驗指標為玉米秧苗莖稈的識別準確率,其計算公式為
(12)
式中α——識別準確率
γ——每組試驗中識別為玉米秧苗莖稈的數量(包括正確識別和非正確識別)
?——錯誤識別為玉米莖稈的數量
φ——每組試驗中總的玉米秧苗數量
處理試驗結果時,通過人工比對圖像中標記為紅色的玉米莖稈數量、將其余物體識別為玉米莖稈的數量與實際的玉米莖稈數量,從而獲得γ、φ、?的實際值。在每種雜草密度的地塊中拍攝2 min,根據相機的曝光頻率和拍攝者的行進速度可知,每次試驗在每種雜草密度的地塊可以拍攝約360幅圖像,行進約60 m。每天早晨、上午、正午、下午和傍晚分別進行2次重復試驗,在持續3 d的試驗中,每個時間段可以完成6次重復試驗,共進行30次試驗,共拍攝約10 800幅圖像。
深度學習模型具有兩個主要特征,分別為多尺度分層特征提取與4倍膨脹卷積核,訓練過程中玉米秧苗識別模型的識別準確率變化如圖11所示。由圖11可知,當訓練進行到第45個周期時,圖像識別模型的準確率基本維持在某一恒定值,當完成51個周期的訓練后,圖像識別模型的準確率為99.65%。本研究中還將模型的訓練周期設定為101、151,但最終圖像識別模型的準確率均低于99.65%。GRINBLAT等[24]同樣采用CNN模型識別作物,在沒有采用多尺度分層特征提取與膨脹卷積核的條件下,最高識別準確率僅為96.9%。除了本研究在測試集中得出的玉米秧苗識別準確率外,本研究從采集的10 800幅圖像中隨機選取了5 000幅對pb模型進行檢測,檢測結果顯示,OpenCV調用pb模型和pbtxt文件而得到的玉米秧苗識別準確率為99.22%。

圖11 玉米秧苗識別準確率曲線Fig.11 Curves of recognition accuracy for maize seedlings
若將玉米秧苗莖稈作為標記對象,按照本文所設定的步驟進行深度學習,所得到的識別準確率如圖12所示。圖12顯示將玉米秧苗莖稈部位直接作為識別對象,所得到的識別準確率曲線會產生較大的震蕩,且完成51個周期訓練后,其識別準確率為94%。由于深度學習技術在圖像識別領域的可解釋性有較大的提升空間,且對于農業作物圖像識別的泛化性較差,因此,不宜在目前的技術水平下直接對玉米秧苗莖稈進行識別,而本文能準確識別99.65%的玉米秧苗,在包含玉米秧苗圖像中識別玉米莖稈,將大大提升識別結果的準確率與穩定性。

圖12 玉米秧苗莖稈識別準確率曲線Fig.12 Curves of recognition accuracy for maize seedling stems
田間試驗均為晴天,玉米秧苗莖稈識別準確率的統計結果如表2所示,5個時間段與6種雜草密度下的玉米秧苗莖稈平均識別準確率為98.93%。

表2 玉米種苗莖稈平均識別準確率Tab.2 Average recognition accuracy for maize seedling stems %
注:*表示在顯著性水平為0.05下,差異顯著。
由表2可知,不同雜草密度與不同拍攝時間下,玉米秧苗莖稈平均識別準確率均大于98%,雖然在拍攝時間段為07:00—08:30、雜草密度為40株/m2和拍攝時間段為10:00—11:30、雜草密度為50、20株/m2組合下,玉米秧苗莖稈的平均識別準確率要顯著小于其他組合,但是進一步的統計分析(顯著性t檢驗)顯示,拍攝時間對玉米秧苗莖稈的識別準確率沒有顯著影響(P>0.05),可見,本文在確定了拍攝角度與拍攝距離的前提下,受光照條件的影響不大。同樣應用t檢驗考察田間雜草的密度對于識別準確率的影響,檢驗結果表明田間雜草密度對于識別準確率也不具有顯著的影響(P>0.05)。因此,上述3種組合下的玉米秧苗莖稈識別準確率偏低應該是偶然因素所致。從圖像識別結果分析,雖然田間蒿草類雜草植株較高、且較粗壯,但當這類雜草出現在玉米種植行中時,并沒有降低識別準確率,如圖13所示。

圖13 蒿草對于莖稈識別結果的影響Fig.13 Influence of wormwoods on recognition results

圖14 不同方法獲得的二值化圖像Fig.14 Binary pictures obtained from different binary methods
圖像的二值化處理是圖像識別階段的重要步驟,其中閾值選取又是二值化處理的重要步驟,常用的閾值選取方法有最大類間方差(Otsu)[25]、最大熵[26]和最小誤差法[27](圖14),使用這3種方法獲得的二值圖像均丟失了部分重要信息,若對基于上述方法獲得的二值圖像進行圖像形態學操作,很難識別玉米莖稈,且只能獲得較低的準確率,因此不具有實際應用價值。本文提出的二值化算法基于高斯擬合法[22]優化選取圖像子塊的閾值,在本應用中圖像分割較準確。
由于本研究采用LabelImage進行玉米秧苗標記,人工標記時自動忽略離前景圖像較遠的背景玉米秧苗,故本文識別模型在識別玉米秧苗時,能夠避免背景玉米秧苗圖像的干擾,而只識別前景玉米秧苗圖像。又由于圖像形態學處理是基于圖像識別模型的識別結果,因此圖像識別結果的準確率將直接決定最終玉米秧苗莖稈識別的準確率。田間雜草的存在并沒有影響本文方法的識別準確率,實際上,本文方法的玉米秧苗識別準確率達99.65%,本研究避免了絕大多數田間雜草的干擾。但是由于玉米秧苗葉片的遮擋,部分下垂的葉片經過形態學處理后,其外接矩形的寬高比處于程序的選擇范圍之內,導致將部分玉米秧苗的葉片誤判為玉米秧苗莖稈,造成錯誤識別。若將本文方法應用于更早期的玉米田,即玉米葉片還沒有繁茂時,識別效果會更好。
本研究還在檢測玉米莖稈識別準確率的代碼中引入了“time”庫,從而計算本研究從開始識別玉米秧苗到檢測出玉米秧苗莖稈的時間,結果顯示本文算法的平均執行時間為0.34 s。根據玉米種植的農藝要求[28],玉米的平均株距為25 cm,行距為65 cm,根據相機鏡頭的視角與拍攝距離可以得出,單幅圖像中一般包括2株玉米秧苗,若將本文方法應用于玉米田間的除草機械,按照單幅圖像識別時間0.34 s,可得該除草機械的作業速度的上限為1.47 m/s,即5.29 km/h,則本文方法可以滿足目前中耕除草機械的平均作業效率要求[29]。
(1)采用相機云臺搭載CCD相機采集玉米秧苗圖像,利用采集到的圖像進行深度學習,獲得玉米秧苗識別模型,通過圖像形態學處理識別玉米秧苗莖稈。
(2)采用多尺度分層特征提取與膨脹卷積,使玉米秧苗識別準確率達到了99.65%,在此基礎上,選取6種雜草密度在5個拍攝時間段進行了3 d的田間試驗,試驗過程中共采集了10 800幅圖像,試驗結果表明,對玉米秧苗莖稈的平均識別準確率為98.93%,且光照條件與田間雜草密度對識別結果沒有顯著影響(P>0.05)。