李昊,劉海隆,劉生龍
(1. 電子科技大學資源與環(huán)境學院,成都市,611731;2. 四川煤礦安全監(jiān)察局安全技術中心,成都市,610045)
隨著物聯(lián)網技術的發(fā)展,現(xiàn)已在各個行業(yè)被廣泛應用,其中在現(xiàn)代農業(yè)領域應用農業(yè)物聯(lián)網技術能夠實現(xiàn)農業(yè)精準播種、精準施肥、精準控制病蟲害防治用藥等,逐漸成為研究的熱點。如施盛華等[1]研發(fā)了基于物聯(lián)網與圖像識別的太陽能果園蟲害監(jiān)測系統(tǒng)。以STM32和4G通信技術研發(fā)而成,實現(xiàn)了環(huán)境信息監(jiān)測、蟲害誘殺、蟲害圖像采集和遠程信息傳輸?shù)裙δ堋?/p>
病蟲害防控是保障農產品品質的重要環(huán)節(jié),病蟲害監(jiān)測是物聯(lián)網技術應用的重要內容。如蘇一峰等[2]研發(fā)了小麥病蟲害遠程診斷系統(tǒng),以傳統(tǒng)圖像識別技術為基本原理方法,基于國家小麥物聯(lián)網系統(tǒng)平臺,研發(fā)了集圖像獲取、圖像識別診斷于一體的應用系統(tǒng),實現(xiàn)了對小麥白粉病、銹病、蚜蟲及健康小麥葉片圖像的分類識別。當前的研究主要集中在對作物病蟲害圖像識別和環(huán)境信息采集方面。如趙潔等[3]通過特殊的實驗裝置采集水培黃瓜病圖像,再采用圖像處理技術從復雜環(huán)境中分割葉片病斑圖像,提取最優(yōu)病斑特征參數(shù)組合,自動識別病害黃瓜病斑種類。吳桐等[4]基于物聯(lián)網技術的圖像采集環(huán)境,對玉米病蟲害圖像進行收集,對于采集后的圖像針對玉米葉部病斑的顏色、形狀及紋理特征,利用支持向量機進行特征提取,對實驗數(shù)據進行分類識別。
總體來看,當前研究的圖像采集大多為了保證圖像質量,是在可控的實驗理想條件下進行,而對于大田作物或室外條件則存在設備無法適應自然條件而造成圖像質量無法處理等問題[5]。另一方面,從病蟲害識別方法上來看,當前大多使用傳統(tǒng)的圖像處理方法,提取特征的過程過于繁瑣,效率不高。因此,構建針對農作物病害的智能在線監(jiān)測系統(tǒng),對現(xiàn)代農業(yè)發(fā)展具有現(xiàn)實意義。
本文擬以柑橘病蟲害為研究對象,以物聯(lián)網技術為支撐,基于深度學習算法,研發(fā)一套能夠對自然環(huán)境下柑橘視頻動態(tài)實現(xiàn)實時監(jiān)控,集信息采集、葉片追蹤、病蟲害深度學習快速檢測、結果輸出一體的自動化智能監(jiān)控系統(tǒng)。
根據系統(tǒng)功能要求,將該系統(tǒng)設計為三大層面,分別為信息感知層、信息傳輸層、系統(tǒng)應用層。其中信息感知層主要是基于攝像頭的信息采集,信息傳輸層主要是基于無線網絡的數(shù)據傳輸,系統(tǒng)應用層主要是基于深度學習算法的病蟲害信息處理與自動識別。該系統(tǒng)整體結構如圖1所示。
圖1 系統(tǒng)整體結構圖
信息感知層是整個系統(tǒng)的基礎,為滿足動態(tài)識別的需求,采用??低旸S-2DC4423IW-D型號的球形攝像頭,通過智能控制云臺實現(xiàn)設備的旋轉、移動以及焦距的變化。
信息傳輸層通過WIFI的方式實現(xiàn)數(shù)據傳輸,通過數(shù)據壓縮算法在不丟失有用信息的前提下,減少數(shù)據傳輸或者轉移過程中的數(shù)據量。當客戶端與攝像頭處于同一局域網下,客戶端可以直接通過IP和端口號獲取攝像頭的數(shù)據流。但實際情況下客戶端與攝像頭不處于同一局域網下,系統(tǒng)采用內網穿透技術實現(xiàn)對局域網內攝像頭的數(shù)據流讀取從而實現(xiàn)遠程監(jiān)控功能[8,11-12]。
圖2 內網穿透示意圖
內網穿透即實現(xiàn)外網訪問內網的功能,本系統(tǒng)使用硬件花生棒來實現(xiàn)內網穿透,將內網穿透硬件花生棒接入攝像頭所在的局域網,將攝像頭的IP設置為靜態(tài)IP,在花生棒的管理軟件上配置外網到內網IP的映射。
訪問映射列表中自動為用戶分配的域名及端口號,如圖3所示,則會自動重定向至局域網攝像頭的IP及端口上,這樣通過花生棒便可實現(xiàn)外網訪問攝像頭即遠程監(jiān)控功能。
圖3 花生殼平臺
系統(tǒng)應用層對攝像頭的視頻流進行解碼,獲取視頻流中圖像數(shù)據[6],通過集成深度學習算法實現(xiàn)柑橘的葉片檢測與病害識別,并將檢測的結果保存至數(shù)據庫。根據研究目標,采用模塊化思想[7]把系統(tǒng)功能劃分為7個模塊,分別是實時視頻監(jiān)控模塊、視頻采集模塊、圖像采集模塊、云臺控制模塊、數(shù)據庫模塊、葉片檢測模塊、病害識別模塊,如圖4所示。
圖4 系統(tǒng)功能結構圖
1) 實時視頻監(jiān)控模塊。該模塊提供現(xiàn)場視頻信息,通過輸入IP和端口查看實時現(xiàn)場視頻。
2) 視頻采集模塊。該模塊提供監(jiān)控視頻數(shù)據實時智能采集的功能,并將采集的視頻數(shù)據保存至本地。
3) 圖像采集模塊。該模塊調用??低昐DK解碼器對??档囊曨l流進行解析并生成圖像,并將生成的圖像實時顯示和保存至本地。
4) 云臺控制模塊。該模塊實現(xiàn)鏡頭控制和云臺控制,鏡頭控制有聚焦/散焦、變倍近/遠,云臺控制包括上、下、左、右等4個方向,客戶端發(fā)送控制指令就可以實現(xiàn)攝像頭旋轉和放大縮小,攝像頭關閉、開啟等動作。
5) 數(shù)據庫模塊。該模塊提供系統(tǒng)數(shù)據存儲和管理功能,本系統(tǒng)采用MySQL數(shù)據庫,因為該數(shù)據庫開源、性能卓越、服務穩(wěn)定,并且體積小、易于維護,能夠在達到性能要求的前提下節(jié)約成本。數(shù)據庫包含三張表,User表用于用戶管理,TestResult用于記錄葉片檢測結果,Log表用于記錄用戶的查詢記錄。
6) 葉片檢測模塊。該模塊調用深度學習目標檢測算法對采集的圖像進行葉片檢測,根據檢測的目標框對圖像進行局部切割生成葉片圖像保存至本地用于下一步病害識別。
7) 病害識別模塊。該模塊調用深度學習分類算法對葉片檢測模塊中生成的局部葉片進行病害識別,對識別的結果進行顯示并保存至數(shù)據庫。
本文基于改進的YOLOv4算法實現(xiàn)圖像的葉片檢測,并根據檢測的目標框實現(xiàn)葉片的局部分割,再利用DenseNet算法對分割出來的葉片進行病害檢測[9]。
YOLO網絡是一種基于回歸的目標檢測算法,具有較快的檢測速度,在很多目標檢測任務中取得了很好的效果[10]。YOLOv4引入Mosaic數(shù)據增強方法對現(xiàn)有方法進行改進使其具有更低的訓練門檻,能夠在GPU資源有限的條件下得到更好的結果。Mosaic數(shù)據增強采用了4張圖片隨機縮放、隨機裁剪、隨機排布的方式進行拼接,豐富檢測物體的背景。
YOLOv4采用CSPDarknet53網絡來提取目標特征。在Darknet53的每個大殘差塊上加上CSP,將基礎層的特征映射劃分為兩部分,再通過跨階段層次結構合并,在減少計算量的同時保證準確率。YOLOv4先通過上采樣方式將高層特征的語義信息傳播到低層網絡然后與底層特征的高分辨率信息相融合,提高小目標檢測物的檢測效果。再增加從最底層到最上層的信息傳輸路徑,通過下采樣加強特征金字塔。最后用不同層的特征圖融合來做預測。YOLOv4網絡結構如圖5所示。
圖5 YOLOv4網絡結構
針對柑橘葉片的尺寸特點,本系統(tǒng)對YOLOv4算法進行改進。先驗框的引入將目標檢測問題轉化為目標物的有無以及判斷預測框與真實框的距離問題,而且還摒棄了以往的多尺度滑動窗口遍歷環(huán)節(jié),使得目標檢測的速度和精確度大大提升。為解決YOLOv4中先驗框長寬比例差別較大而影響精度的問題,本文提出了基于K-Means算法用于數(shù)據集標注框聚類,獲取與葉片尺寸及比例相匹配的基準框。K-Means算法通常采用歐氏距離進行聚類,容易造成較大的先驗框聚類誤差,因此本文采用處理后的IOU作為進行聚類。
Distance(i,center)=1-IOU(i,center)
(1)
Distance(i,center)指的是每個聚類中心與其它的框的重合程度,如果單用IOU(i,center)的話,則IOU(i,center)越大重合度越高,只有重合度越高距離越短才可以進行聚類,所以使用IOU(i,center)取負號后加上1。
本文針對葉片檢測任務,對網絡結構進行改進,YOLOv4模型利用三個分支來識別圖像中的大中小三類目標,為了適應葉片的尺寸特點,同時精簡網絡結構,本文減去用來識別大目標的分支,保留剩下兩個分支,在兩個尺度上建立葉片特征檢測層。同時充分利用低層特征圖提取的細節(jié)信息,融合中等特征圖的細節(jié)信息和小特征圖的語義信息,在剩余兩個尺度上訓練出最終的葉片檢測模型。與此同時,由于本文采集到的葉片檢測數(shù)據有限,無法構建大規(guī)模的數(shù)據集,因此引入遷移學習,加速模型收斂,以保證取得更好的訓練效果。
DenseNet的整體結構如圖6所示,包含Dense Blocks和Transition layers[17]。其中Dense Blocks為稠密連接的Highway的模塊,Transition layer為相鄰2個Dense Blocks的中間部分。
LayersOutput SizeDenseNet121DenseNet169DenseNet201DenseNet264Convolution112×1127×7 conv, stride 2Pooling56×563×3 max pool, stride 2Dense Block(1)56×561×1 conv3×3 conv×61×1 conv3×3 conv×61×1 conv3×3 conv×61×1 conv3×3 conv×6Transition Layer(1)56×561×1 conv28×282×2 average pool, stride 2Dense Block(2)28×281×1 conv3×3 conv×121×1 conv3×3 conv×121×1 conv3×3 conv×121×1 conv3×3 conv×12Transition Layer(2)28×281×1 conv14×142×2 average pool, stride 2Dense Block(3)14×141×1 conv3×3 conv×241×1 conv3×3 conv×321×1 conv3×3 conv×481×1 conv3×3 conv×64Transition Layer(3)14×141×1 conv7×72×2 average pool, stride 2Dense Block(4)7×71×1 conv3×3 conv×161×1 conv3×3 conv×321×1 conv3×3 conv×321×1 conv3×3 conv×48ClassificationLayer1×17×7 global average pool1000D fully-connected, softmax
一個Dense Block模塊如圖7所示,其中層數(shù)為5,即具有5個BN+Relu+Conv(3×3)的layer,網絡增長率為4,即每一個layer輸出的feature map維度為4。由于每一個Dense Block模塊都利用到了該模塊中前面所有層的信息,即每一個layer都和前面的layer有highway的稠密連接。假設一個具有L層的網絡,那么highway稠密連接數(shù)目為L×(L+1)/2。
圖7 Dense Block模塊結構
傳統(tǒng)卷積神經網絡的變換方程
Xl=Hl(Xl)
(2)
ResNet的變換方程
Xl=Hl(Xl)+Xl
(3)
DenseNet的變換方程
Xl=Hl([X0,X1,…Xl-1])
(4)
DenseNet解決了深層網絡的梯度消失問題,加強了特征的傳播,鼓勵特征重用,減少了模型參數(shù)。尤其是針對小數(shù)據集,因為小數(shù)據集的時候容易產生過擬合,DenseNet能夠很好的解決過擬合的問題,在小數(shù)據集的情況下DenseNet的效果好于ResNet。
3.1.1 數(shù)據預處理
葉片檢測實驗圖像于示范地拍攝得到,通過攝像頭拍攝和手機拍攝相結合的方式,通過旋轉移動攝像頭得到盡可能的葉片圖像,得到共計392幅葉片圖像,利用翻轉變換、隨機修剪、色彩抖動、平移變換、尺度變換、對比度變換、噪聲擾動和旋轉變換等多種方式對圖像進行增廣最終得到1 960幅圖像,按照6∶2∶2的比例進行訓練集、驗證集和測試集的劃分,利用圖像標注工具Labelme對柑橘葉片圖片進行標注,批量標注完成后產生一系列Json文件,將Json文件進行轉換形成柑橘葉片檢測數(shù)據集。
表1 葉片檢測數(shù)據集Tab. 1 Leaf detection dataset 幅
3.1.2 評價指標
在目標檢測領域,為了準確評估模型檢測效果,需要計算目標的精準率P(Precision)和召回率R(Recall)。
(5)
(6)
式中:TP——預測正確的目標數(shù)量;
FP——誤檢的目標數(shù)量;
FN——漏檢的目標數(shù)量。
P-R曲線是一條分別以Р和R為橫縱坐標的曲線。平均精準度指標AP(Average Precision)反映的是PR曲線下的面積,綜合了精確率和召回率的結果,用于評估模型在單個檢測類別上的表現(xiàn)。葉片檢測實驗以VOC數(shù)據集評價指標為準,即MAP=AP@0.5, 則IOU=0.5就作為True Positive。由于本實驗只有l(wèi)eaf一個類別,因此其AP即作為MAP。
3.1.3 試驗結果分析
完成準備工作后基于YOLOv4網絡模型和本文改進的YOLOv4網絡模型對訓練集進行訓練,得到的模型對測試集進行測試,相比之下本文改進的YOLOv4網絡模型與YOLOv4網絡模型相比,在檢測速度和精度上都有一定的提升。兩種模型檢測的P-R曲線如圖8所示。
圖8 兩種算法檢測P-R曲線對比圖
AP的值是P-R曲線下的面積,分析兩種算法檢測P-R曲線對比圖,本文算法曲線下對應面積明顯大于原算法,說明了本文算法的檢測精度優(yōu)于原算法,兩種算法檢測結果對比如表2所示。
表2 檢測結果對比Tab. 2 Comparison of test results
3.2.1 數(shù)據預處理
病害識別實驗圖像于示范地拍攝得到,由于示范地果園柑橘植株密集,為了防止病害擴散蔓延,果園管理人員對大部分病害及時作出處理,所以能夠采集到的圖像樣本不夠充分,于是通過中國農業(yè)大學網絡數(shù)據庫、農業(yè)交流論壇、農業(yè)技術服務平臺、Bing images等渠道獲得病害圖像樣本以充實實驗樣本集[13-14]。最后獲得病害葉片341幅,正常葉片圖像732幅,同樣使用數(shù)據增廣的方式對數(shù)據集進行擴充,病害葉片使用更多增廣策略以達到病害葉片和正常葉片數(shù)量均衡,最終獲得共計4 245幅圖像,按照6∶2∶2的比例進行訓練集、驗證集和測試集的劃分。
表3 病害檢測數(shù)據集Tab. 3 Disease detection dataset 幅
3.2.2 試驗結果分析
完成準備工作后基于DenseNet網絡模型對訓練集進行訓練,得到的模型對測試集進行測試,采用分類算法常見的準確率ACC作為評價指標,平均檢測精度可以達到95.46%,實驗結果如表4所示。
表4 實驗結果Tab. 4 Resultsof experimental
目前深度學習算法集成大多采用生成dll再進行調用的方式,本系統(tǒng)中算法集成采用Socket通信方式實現(xiàn),將算法調用部分發(fā)布服務以供客戶端調用,本文方法的優(yōu)勢在于算法模塊發(fā)生更新只需要重啟服務即可,相比于dll的重新生成與替換過程更加簡潔,并且用戶系統(tǒng)不必發(fā)生改變,減輕用戶的操作難度。
圖9 算法集成示意圖
客戶端系統(tǒng)圖像采集模塊實現(xiàn)圖像的截取,將截圖圖像利用Socket傳輸至服務端,服務端接受后對圖像進行檢測,將檢測結果保存至數(shù)據庫,客戶端調用數(shù)據庫數(shù)據在界面呈現(xiàn)。
柑橘病蟲害動態(tài)識別系統(tǒng)研發(fā)分為系統(tǒng)服務端研發(fā)和系統(tǒng)客戶端研發(fā)等兩個方面,系統(tǒng)服務端使用python語言實現(xiàn)算法調用服務的搭建,系統(tǒng)客戶端利用C#語言基于海康SDK實現(xiàn)二次開發(fā),以Visual Studio2017為開發(fā)工具,本系統(tǒng)基于MySQL數(shù)據庫,采用Navicat for MySQL作為數(shù)據庫開發(fā)工具。系統(tǒng)開發(fā)環(huán)境由攝像頭、服務端工作站、客戶端PC機組成,攝像頭獲取視頻數(shù)據,客戶端遠程獲取視頻數(shù)據,服務端設備與客戶端設備通過局域網連接,系統(tǒng)設備的具體配置和功能如表5所示。
表5 系統(tǒng)開發(fā)設備配置及功能Tab. 5 System development equipment configuration and function
本文設計并開發(fā)的柑橘病蟲害動態(tài)識別系統(tǒng)主界面如圖10所示。
圖10 系統(tǒng)主界面
通過輸入IP和端口進行登錄點擊預覽即可查看實時現(xiàn)場視頻。截圖和錄像按鈕分別實現(xiàn)圖像和視頻的截取以及保存至本地。選擇某一速度,點擊上、下、左、右、放大、縮小按鈕可以實現(xiàn)攝像頭的旋轉,實現(xiàn)監(jiān)測視場的最大化。將攝像頭旋轉移動至某一位置,選擇某一預置點編號點擊設置按鈕可將該位置設置為預置點,后續(xù)可通過預置點編號點擊調用按鈕使得攝像頭旋轉移動至之前設置的位置,可用于對同一區(qū)域的變化性觀測。
點擊截圖按鈕實現(xiàn)圖像截取,截取后的圖像既會顯示在界面上又會保存至數(shù)據庫。點擊葉片提取按鈕實現(xiàn)調用深度學習目標檢測算法對采集的圖像進行葉片檢測,檢測后的結果會顯示在界面上。點擊病害檢測按鈕實現(xiàn)調用深度學習分類算法對上一步葉片檢測的結果進行病害識別,識別后的結果會顯示在界面上,圖中的方框綠色代表正常葉片,紅色代表檢測出疑似病害葉片,并且識別的結果將會保存至數(shù)據庫,如圖11所示。
(a) 檢測結果無病害葉片
本文將視頻圖像的動態(tài)采集和深度學習算法相結合,基于圖像采集、葉片檢測和病害識別的完整流程,實現(xiàn)了基于深度學習的柑橘病蟲害動態(tài)識別系統(tǒng)。該系統(tǒng)運行良好,視頻遠程傳輸穩(wěn)定,葉片檢測的MAP達到87.72%,滿足了生產實際葉片提取的基本要求,病害識別準確率達到95.46%,為柑橘病害的智能監(jiān)控奠定了基礎。