朱格 徐燕 孫瑩瑩 張磊
(華北水利水電大學(xué),河南 鄭州 450046)
進入新時代,隨著當(dāng)今國際變局加速演進,各種不確定難預(yù)料因素明顯增多,習(xí)近平總書記指出,農(nóng)業(yè)關(guān)系到生命安全、生存安全,是極端重要的國家安全。習(xí)近平總書記2023年3月十四屆全國人大一次會議指出,“農(nóng)業(yè)強國是社會主義現(xiàn)代化強國的根基,推進農(nóng)業(yè)現(xiàn)代化是實現(xiàn)高質(zhì)量發(fā)展的必然要求”。農(nóng)作物病蟲害防治是農(nóng)業(yè)生產(chǎn)中十分重要的工作。近年來,我國建立了較為完善的病蟲害監(jiān)測網(wǎng)絡(luò)體系,病蟲害監(jiān)測和防治能力大幅提高,我國多年來對主要作物病蟲害進行了有效防治,農(nóng)作物病蟲害損失呈下降趨勢[1]。但受耕作制度和全球氣候變化影響,全國主要農(nóng)作物病蟲害持續(xù)發(fā)生。如果監(jiān)測和控制得不到加強或發(fā)生削弱,就可能發(fā)生局部災(zāi)害。隨著城市化進程的加快,全國植保體系整體面臨萎縮、后繼無人的局面,需要利用最新技術(shù)開發(fā)智能化植保信息服務(wù)方式,幫助農(nóng)民提高作物保護決策的能力。在國家大數(shù)據(jù)戰(zhàn)略決策實施的指導(dǎo)下[2-4],大數(shù)據(jù)和深度學(xué)習(xí)技術(shù)的快速發(fā)展為智能植保信息服務(wù)平臺和服務(wù)終端的發(fā)展創(chuàng)造了條件[5-8]。為此,本文利用大數(shù)據(jù)、人工智能和深度學(xué)習(xí)技術(shù)開發(fā)了基于機器學(xué)習(xí)的病害蟲檢測和智能噴灑系統(tǒng)。該系統(tǒng)可安裝在智能手機上,只需用手機拍照,即可實現(xiàn)農(nóng)作物重點病蟲害的識別、分析、決策和建議。精準治理將為病蟲害監(jiān)測與防治提供更加全面的支持,推進技術(shù)進步,為提高我國農(nóng)作物病蟲害監(jiān)測與防治水平創(chuàng)造條件[9,10]。
目前,農(nóng)田管理工作者對于農(nóng)作物的管護,主要包括巡視整個農(nóng)田,確保能夠及時并且無遺漏地發(fā)現(xiàn)病蟲害,識別該病蟲害的種類,并提供精準對癥的藥物治療。該系統(tǒng)致力于解決農(nóng)田病蟲害治理的應(yīng)用需求,以更加科學(xué)的方式防治病蟲害,降低防治病蟲害的學(xué)習(xí)成本,遠程控制農(nóng)藥噴灑,極大地解放勞動力。本系統(tǒng)包含的模塊信息見表1。
表1 系統(tǒng)模塊信息
硬件部分由樹莓派和噴藥系統(tǒng)組成,樹莓派主要負責(zé)信息傳遞及處理,噴藥系統(tǒng)主要負責(zé)農(nóng)藥噴灑。具體流程:用戶在手機上操作軟件,點擊開始檢測按鈕后,樹莓派收到來自服務(wù)器的請求;樹莓派通過攝像模塊拍攝圖片并發(fā)送給服務(wù)器;用戶點擊開始噴藥按鈕時,樹莓派同樣會收到來自服務(wù)器的請求,此時樹莓派會選擇對應(yīng)的水泵,通過控制繼電器的高低電平開關(guān),來控制水泵工作,水泵會從藥桶中抽取藥物并從霧化噴頭噴出。設(shè)備硬件構(gòu)造見圖1。
圖1 硬件構(gòu)造圖
2.2.1 通用輸入/輸出接口GPIO
通過GPIO接口來控制繼電器的高低電平,從而控制每個水泵的抽水功能。
2.2.2 I2C(Inter-Integrated Circuit)
在系統(tǒng)中,使用I2C來控制PCF8591模塊,通過PCF8591模塊從水位傳感器獲取水位信息并傳送給樹莓派。
2.2.3 電源和接地
樹莓派中共提供2個5V引腳、2個3V引腳以及8個接地引腳,用來給繼電器、PCF8591模塊以及水位傳感器供電。
樹莓派和服務(wù)器之間使用基于TCP的WebSocket進行連接,當(dāng)用戶點擊某個操作時,服務(wù)器會主動向樹莓派發(fā)送請求,樹莓派接收到請求后,會做出相應(yīng)的操作。拍攝照片、實時噴藥都通過TCP來完成,拍攝交互和噴藥交互見圖2、圖3。
圖2 拍攝交互示意圖
圖3 噴藥交互示意圖
系統(tǒng)為用戶提供了網(wǎng)頁版登錄/注冊/使用界面,注冊后登錄,綁定設(shè)備,即可檢測農(nóng)田的病蟲害狀況,使用系統(tǒng)進行病蟲害清除。用戶登錄成功后,選擇進行操作的設(shè)備開始檢測,設(shè)備檢測成功后自動停止,為用戶展示檢測的結(jié)果并提出建議,顯示可能存在病蟲害的種類、概率,距上一次噴藥的天數(shù),以及對于噴灑農(nóng)藥的建議。軟件還包含了用戶的注冊,用戶查看歷史檢測信息等功能,流程圖見圖4。
圖4 設(shè)計流程圖
軟件部分使用B/S結(jié)構(gòu),前端通過H5實現(xiàn),后端通過ASP.NET MVC實現(xiàn)。用戶可以在瀏覽器上訪問網(wǎng)站來進行一系列操作。用戶界面設(shè)計見圖5。
圖5 系統(tǒng)設(shè)計頁面
用戶可使用手機進入網(wǎng)站,注冊成功后就可以使用。登錄賬號后,可以添加設(shè)備、查看所有擁有的設(shè)備信息、每個設(shè)備的詳細內(nèi)容、并開始新的檢測活動,具體的頁面設(shè)計和使用操作如下所示,見圖6。
圖6 系統(tǒng)使用說明
3.3.1 登錄與注冊
用戶打開鏈接進入登錄界面。登錄界面提供了登錄注冊功能,用戶名為手機號。登錄失敗會輸出提示,登錄成功則進入主界面。注冊頁面用戶需要輸入用戶名,2次輸入密碼。若用戶再次購買本產(chǎn)品,可在主界面設(shè)置功能中添加設(shè)備信息。
3.3.2 主界面
主界面如圖6b所示,頁面顯示了登錄用戶的所有設(shè)備編號及其防治的農(nóng)作物名稱,用戶選擇需要進行操作設(shè)備,進入開始檢測(設(shè)備信息)頁面,可以修改設(shè)備信息,或者進行檢測操作。
3.3.3 添加設(shè)備
用戶若在主頁面選擇添加設(shè)備,則彈出此頁面。輸入設(shè)備的序列號,希望每個水泵治療的病蟲害名稱,以及每個水泵對應(yīng)存儲器保存的農(nóng)藥。
3.3.4 開始檢測
用戶選擇要進行操作的設(shè)備后,點擊開始檢測按鈕,設(shè)備開始運作并將結(jié)果在檢測結(jié)果頁面顯示,點擊修改信息可以對信息進行修改。
3.3.5 檢測結(jié)果
界面上是拍攝的農(nóng)田病蟲害照片,其下有4個圓形標識,分別表示:可能存在病害蟲的種類,顯示被監(jiān)測到的病蟲害最有可能是什么種類;可能存在病蟲害的概率,點擊后顯示圖標表示含義和實際概率;距上一次噴灑農(nóng)藥的天數(shù),點擊后顯示圖標表示含義和實際天數(shù);是否建議噴灑,點開顯示建議。
4個圈外顯示顏色表示嚴重程度,綠色代表健康,紅色代表很有可能遭受病蟲害。
(1)
簡單求和還需考慮每個損失的貢獻。YOLO設(shè)置coordErr權(quán)重λcoord=5。在計算IOU誤差時,IOU誤差對網(wǎng)絡(luò)損失的貢獻對于有物體的網(wǎng)絡(luò)和沒有物體的網(wǎng)絡(luò)是不同的。如使用相同的權(quán)重,沒有物體的網(wǎng)格的置信度值幾乎為0,在計算網(wǎng)絡(luò)參數(shù)的梯度時掩蓋了有物體的網(wǎng)格的置信度誤差的影響。為了解決這個問題,YOLO將iouErr修改為λnoobj=0.5。這里的“包含”是指存在一個中心坐標在網(wǎng)格上的對象。給定相同的錯誤值,大對象的錯誤對檢測的影響應(yīng)該小于小對象的錯誤。這是因為具有相同位置誤差的物體具有相同小誤差的比例要小得多。YOLO通過對物體大小信息(w和h)取平方根來解決這個問題,但是并不能完美解決這個問題。
YOLO v3的結(jié)構(gòu)見圖7。
圖7 YOLOv3結(jié)構(gòu)圖
DBL:Darknetconv2d_BN_Leaky是代碼中yolo_v3的基礎(chǔ)組件。這就是卷積+BN+Leaky Relu。
Resn:n是一個包含res1,res2,…,res8等的數(shù)字,表示這個res_block中res_units的個數(shù)。
Concat:張量拼接。darknet中間層和后面特定層的上采樣展開拼接。拼接操作與余數(shù)層加法操作的不同之處在于,加法不會改變張量的維數(shù),而拼接會增加張量的維數(shù)。
將所得到的應(yīng)用需求抽象為信息世界的結(jié)構(gòu)(E-R模型),用E-R圖來描述。系統(tǒng)關(guān)系到的實體主要有用戶、設(shè)備、水泵、病蟲害、農(nóng)作物,系統(tǒng)數(shù)據(jù)庫ER圖如圖8所示。
圖8 系統(tǒng)數(shù)據(jù)庫ER圖
將E-R圖向關(guān)系模式轉(zhuǎn)化,也就是將實體、實體的屬性聯(lián)系轉(zhuǎn)化為關(guān)系模式,如表2所示。
表2 系統(tǒng)數(shù)據(jù)庫匯總表及功能說明
實地收集各種農(nóng)作物病蟲害的照片作為訓(xùn)練集,使用Darknet進行訓(xùn)練,反復(fù)對數(shù)據(jù)進行迭代。隨著數(shù)據(jù)的迭代,損失函數(shù)會越來越小,損失函數(shù)越小代表預(yù)測值與真實值的差異越小。如果訓(xùn)練次數(shù)過少,損失函數(shù)沒有達到最小的狀態(tài),就會出現(xiàn)欠擬合的現(xiàn)象;反之,如果訓(xùn)練次數(shù)過多,損失函數(shù)的值會上升,出現(xiàn)過擬合的現(xiàn)象。欠擬合和過擬合都會導(dǎo)致測試結(jié)果出現(xiàn)偏差。因為訓(xùn)練時并不知道第幾次迭代,所以在每迭代一定次數(shù)時就要把訓(xùn)練的模型保存下來,訓(xùn)練完成后對各個模型進行測試,尋找到一個擁有最佳測試結(jié)果的模型作為要使用的檢測模型。
表3展示了不同迭代次數(shù)導(dǎo)致的過擬合和欠擬合現(xiàn)象對識別精度的影響。對4個迭代次數(shù)不同的模型進行測試,在迭代19600次和迭代15000次時的模型都會過擬合,出現(xiàn)識別概率太高或太低的現(xiàn)象;而迭代次數(shù)為7000次的模型因為迭代次數(shù)太少導(dǎo)致欠擬合,會出現(xiàn)識別概率太低的現(xiàn)象;迭代10000次的模型在之中擬合程度最好,且所有圖片均正常識別,平均精度達到了94%,最大精度達到了99%。
表3 不同迭代次數(shù)的模型識別精度
本文設(shè)計了一個智能檢測農(nóng)田病蟲害情況及噴藥系統(tǒng)。利用Darknet深度學(xué)習(xí)框架下的YOLO v3技術(shù),通過攝像模塊拍攝農(nóng)田照片,對采集圖片中的病蟲害進行識別并分類;將病蟲害種類、存在概率等信息展示給用戶,并以此提出合理的建議;用戶登錄管理系統(tǒng),可對所擁有的設(shè)備進行操作,實時檢測農(nóng)作物健康狀況,一鍵噴灑藥物。該系統(tǒng)有助于提高農(nóng)業(yè)生產(chǎn)精準化、智能化水平,推進農(nóng)業(yè)資源利用方式轉(zhuǎn)變,也為加快建設(shè)農(nóng)業(yè)強國,推進農(nóng)業(yè)農(nóng)村現(xiàn)代化提供有力支撐。