劉佳輝,劉 強(qiáng),李彤召
(北京科技大學(xué)天津?qū)W院,天津 301830)
近年來,物聯(lián)網(wǎng)技術(shù)的大力發(fā)展極大便利了我們的生活[1]。對(duì)于農(nóng)業(yè)而言,智慧農(nóng)業(yè)也是當(dāng)下物聯(lián)網(wǎng)發(fā)展的熱門方向,很多地方已經(jīng)建立了智慧農(nóng)業(yè)的規(guī)模化產(chǎn)業(yè)園。隨著人們對(duì)農(nóng)副產(chǎn)品質(zhì)量要求的不斷提高,以及產(chǎn)品質(zhì)量檢測(cè)技術(shù)的不斷完善,規(guī)模化設(shè)施農(nóng)業(yè)病蟲害的防治已經(jīng)成為一大問題,對(duì)防止病蟲害提前采樣預(yù)警相關(guān)技術(shù)的應(yīng)用和發(fā)展也提出了更高、更新的要求。目前,國(guó)內(nèi)絕大多數(shù)地區(qū)對(duì)于農(nóng)業(yè)病蟲害的防治大多在病蟲害發(fā)生之后進(jìn)行農(nóng)藥殺蟲[2]。此法已經(jīng)不適應(yīng)當(dāng)今形勢(shì)的發(fā)展[3]。本文介紹了一款芯片國(guó)產(chǎn)化,可以實(shí)時(shí)檢測(cè)農(nóng)業(yè)病蟲害是否發(fā)生,并將識(shí)別結(jié)果上傳到服務(wù)器的物聯(lián)網(wǎng)設(shè)備,以供用戶通過采樣分析等方式提前做出病蟲害防治的相應(yīng)決策[4]。
系統(tǒng)主要分為模型訓(xùn)練和物聯(lián)網(wǎng)平臺(tái)搭建兩部分,模型訓(xùn)練使用基于YOLOv3的視覺識(shí)別算法,物聯(lián)網(wǎng)平臺(tái)主要包括堪智K210主控板,ESP8285 WiFi模塊,OV2650攝像頭模塊,LCD顯示屏等硬件模塊,以及視覺識(shí)別實(shí)現(xiàn)和基于MQTT通信協(xié)議的數(shù)據(jù)傳輸[5]。系統(tǒng)框圖如圖1所示。

圖1 系統(tǒng)框圖
基于國(guó)產(chǎn)芯片和RTOS的農(nóng)業(yè)病蟲害檢測(cè)系統(tǒng)的硬件選用國(guó)產(chǎn)堪智K210開發(fā)板,其采用了RISC-V處理器架構(gòu),可編程能力強(qiáng),搭配國(guó)產(chǎn)的RT-Thread實(shí)時(shí)操作系統(tǒng)。RTThread實(shí)時(shí)操作系統(tǒng)秉承著小而美的設(shè)計(jì)理念,進(jìn)行了設(shè)備端和云端的一體化設(shè)計(jì),便于接入各類主流的物聯(lián)網(wǎng)設(shè)備云平臺(tái)[6]。
感知識(shí)別層選擇使用OV5040傳感器,其支持輸出最大為500萬像素的圖像,并且支持直接輸出jpeg格式的圖像,在進(jìn)行圖像傳輸時(shí)可以大大減小數(shù)據(jù)量,方便進(jìn)行網(wǎng)絡(luò)傳輸,還可以對(duì)圖像進(jìn)行補(bǔ)償以傳輸更加清晰的圖像[7]。
網(wǎng)絡(luò)構(gòu)建層在物聯(lián)網(wǎng)架構(gòu)上承擔(dān)著承上啟下的作用,在本項(xiàng)目中將搭建基于MQTT協(xié)議的網(wǎng)絡(luò)傳輸鏈路,硬件部分使用ESP8285 WiFi模塊,此通信協(xié)議具有帶寬占用小、傳輸速度快、丟包率低等特點(diǎn)[8]。
平臺(tái)管理層依托國(guó)產(chǎn)的RT-Thread實(shí)時(shí)操作系統(tǒng),通過部署到開發(fā)板上的農(nóng)業(yè)病蟲害識(shí)別模型實(shí)時(shí)識(shí)別結(jié)果,然后通過MQTT通信協(xié)議將識(shí)別結(jié)果上傳到遠(yuǎn)程服務(wù)器,以實(shí)現(xiàn)客戶端與設(shè)備端的無線連接。
綜合應(yīng)用層作為物聯(lián)網(wǎng)工程的最頂層,在本項(xiàng)目中,其將攝像頭捕捉的信息分析結(jié)果在云端平臺(tái)進(jìn)行處理,得出相應(yīng)的農(nóng)業(yè)病蟲害是否發(fā)生的結(jié)論,以及發(fā)生病蟲害的概率,用戶就可以根據(jù)病蟲害發(fā)生的概率進(jìn)行決策。
垃圾桶的軟硬件設(shè)計(jì)整體依托國(guó)產(chǎn)芯片以及國(guó)產(chǎn)實(shí)時(shí)操作系統(tǒng),為提高圖像的檢測(cè)效率,提高檢測(cè)精準(zhǔn)度,本項(xiàng)目采用堪智K210系列芯片,且其板載通用神經(jīng)網(wǎng)絡(luò)加速器(KPU),可以實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算,時(shí)時(shí)獲取被檢測(cè)目標(biāo)的大小、坐標(biāo)和種類[9]。
嵌入式軟件部分采用RT-Thread實(shí)時(shí)操作系統(tǒng),其占用資源極少,使物聯(lián)網(wǎng)開發(fā)變得簡(jiǎn)單、高效。
視覺識(shí)別的基礎(chǔ)在于模型的搭建,本項(xiàng)目將模型訓(xùn)練任務(wù)搭建在了百度飛槳深度學(xué)習(xí)平臺(tái),因?yàn)閅OLOv3具有模型小、速度快等特點(diǎn),非常適合在單片機(jī)上運(yùn)行,故選擇YOLOv3算法。
將事先準(zhǔn)備好的模型導(dǎo)入百度飛漿平臺(tái),數(shù)據(jù)包含訓(xùn)練集所需圖片(對(duì)圖片標(biāo)注文件)。標(biāo)注可以借助labelImg工具等,這里不再贅述。標(biāo)注文件是對(duì)圖片的說明,包含圖片尺寸,昆蟲名稱以及在圖上出現(xiàn)的位置等信息[10]。
從數(shù)據(jù)集中讀取xml文件,將每張圖片的標(biāo)注信息讀取出來。在讀取具體的標(biāo)注文件之前,需要將昆蟲的類別名字(字符串)轉(zhuǎn)化成數(shù)字表示的類別。因?yàn)樯窠?jīng)網(wǎng)絡(luò)計(jì)算時(shí)需要的輸入類型是數(shù)值型,所以需要將字符串表示的類別轉(zhuǎn)化成具體的數(shù)字。例如昆蟲類別名稱的列表是:[‘a(chǎn)nt’, ‘bee’,‘fly’, ‘a(chǎn)phid’, ‘a(chǎn)rmandi’, ‘cabbage caterpillar’],這里我們約定此列表中:‘a(chǎn)nt’對(duì)應(yīng)類別0,‘bee’對(duì)應(yīng)類別1,…,‘cabbage caterpillar’對(duì)應(yīng)類別5。
數(shù)據(jù)準(zhǔn)備好后要進(jìn)行數(shù)據(jù)的讀取和預(yù)處理,這對(duì)于訓(xùn)練神經(jīng)網(wǎng)絡(luò)而言非常重要。數(shù)據(jù)預(yù)處理是將圖片進(jìn)行一些隨機(jī)變化,比如變亮、變暗或者建材填充等,以產(chǎn)生更多相似樣本,達(dá)到擴(kuò)大數(shù)據(jù)集、抑制過擬合、提升模型泛化能力的目的。
等所有數(shù)據(jù)集準(zhǔn)備完成后就可以進(jìn)行模型搭建了,本項(xiàng)目使用YOLOv3進(jìn)行模型設(shè)計(jì),該算法包含兩部分,第一部分是按照一定規(guī)則產(chǎn)生候選區(qū)域,根據(jù)產(chǎn)生的候選區(qū)域與圖片上物體真實(shí)框之間的位置關(guān)系對(duì)候選區(qū)域進(jìn)行標(biāo)注。第二部分是根據(jù)候選區(qū)域使用卷積神經(jīng)網(wǎng)絡(luò)提取圖片特征,并對(duì)候選區(qū)域位置和類別進(jìn)行預(yù)測(cè)。YOLOv3的算法流程如圖2所示,預(yù)測(cè)流程如圖3所示。

圖2 YOLOv3算法訓(xùn)練流程

圖3 預(yù)測(cè)流程
由于得到的基于YOLOv3訓(xùn)練的模型在K210單片機(jī)上并不能識(shí)別,所以在部署之前需要使用NNCase工具將tflite模型轉(zhuǎn)換成kmodel模型,然后使用K210官方提供的kflash_gui工具將kmodel模型下載到K210的FLASH中。圖4、圖5為模型部署完之后的測(cè)試結(jié)果。

圖4 發(fā)生病蟲害的葉片

圖5 未發(fā)生病蟲害的葉片
使用MQTT協(xié)議實(shí)現(xiàn)遠(yuǎn)程監(jiān)控功能。MQTT是基于發(fā)布/訂閱模式的輕量級(jí)通信協(xié)議,其具有低開銷/低寬帶等特點(diǎn),適合部署在大片農(nóng)田進(jìn)行多點(diǎn)數(shù)據(jù)傳輸。使用K210開發(fā)板自帶的ESP8285透?jìng)髂J綄⒆R(shí)別結(jié)果實(shí)時(shí)上傳至服務(wù)器供客戶端訂閱,測(cè)試結(jié)果如圖6、圖7所示。

圖6 無病蟲害

圖7 有病蟲害
本文設(shè)計(jì)的基于國(guó)產(chǎn)芯片和操作系統(tǒng)的農(nóng)業(yè)病蟲害實(shí)時(shí)檢測(cè)系統(tǒng),將視覺識(shí)別技術(shù)與單片機(jī)技術(shù)相結(jié)合,實(shí)現(xiàn)了自動(dòng)化農(nóng)業(yè)病蟲害檢測(cè)功能,為開發(fā)者提供了新的問題解決方案。