張玉國 申智輝 韋剛 關(guān)宇晟 廣西慧云信息技術(shù)有限公司
中國是全球第一柑橘生產(chǎn)大國,約占全球產(chǎn)量和消費量近七成和近四分之一的出口量。柑橘行業(yè)正在快速發(fā)展,柑橘種植戶也越來越多,產(chǎn)地也越來越大。但是行業(yè)的一些問題比較明顯:1、柑橘病害專家少,無法能實際到各個農(nóng)戶的果園進行考察病害診斷,導致柑橘出現(xiàn)病害不能及時確診用藥,造成農(nóng)戶損失。2、柑橘進入關(guān)鍵物候期花期,無法進行有效的施肥施藥,導致柑橘的關(guān)鍵物候期花期生長情況出現(xiàn)問題產(chǎn)量下降甚至出現(xiàn)病蟲害等。本文主要講解如何通過AI 進行圖片識別,解決柑橘的病蟲害診斷,以及柑橘關(guān)鍵物候期花期判斷的方法。
目前大部分柑橘農(nóng)戶的果園出現(xiàn)病蟲害,農(nóng)戶要不就是自己觀察病害確診,要不就是請專家進行確診,然而專家數(shù)量少,預約專家到果園問診耗費時間長,而且到達果園往往路途遙遠,柑橘病蟲害無法高效快速的確認。本文提供的柑橘病蟲害圖片識別方式,只需要用戶使用【耘眼】微信小程序或者App 的病蟲害識別功能點擊拍照對柑橘葉片的病害部位進行拍照,確認識別,不到一秒鐘之后,程序便會返回識別結(jié)果,當前葉片出現(xiàn)的是什么病害,可信度達到的百分比,同時提供此病害病害描述,農(nóng)事防治方案,化學用藥防治方案等。農(nóng)戶可快速對病蟲害進行判斷確認,從而及時用藥進行診治。通過柑橘病蟲害的圖片識別功能,柑橘種植戶不僅可快速的拍照片便可確診柑橘的病蟲害情況,又可獲取有效的防治方案,在效率上比傳統(tǒng)的需要聯(lián)系專家進行考察確診快速了很多。同時如果柑橘種植戶對圖片識別的診斷結(jié)果有疑問也可以通過問答對【耘眼】進行提問,【耘眼】有相關(guān)專家進行詳細解答,進一步有效的解決柑橘種植戶的柑橘病害診斷的問題。
柑橘農(nóng)戶種植過程中除了病蟲害是一大問題,如何確認種植的柑橘進入了哪一個物候期花期也是至關(guān)重要的一環(huán)。比如柑橘進入現(xiàn)蕾期,此時期柑橘開始萌芽,類似蚜蟲、木虱、紅蜘蛛、瘡痂病、炭疽病、疫病等容易出現(xiàn),如果無法確認物候期花期則在對即將可能發(fā)生的病蟲害無法提前進行有效的農(nóng)事任務進行預防,則可能導致柑橘出現(xiàn)病害,損害農(nóng)戶利益,同時柑橘開花需要大量的營養(yǎng),如沒有專業(yè)指導可能導致營養(yǎng)不足,花的質(zhì)量差,花期短暫,就會嚴重影響柑橘的坐果率。為此【耘眼】微信小程序的柑橘物候期花期的識別功能就可快速高效的解決這個問題,同樣的【耘眼】微信小程序或者APP 提供柑橘物候期花期的圖片識別功能,種植戶只需要簡單的打開微信小程序,對柑橘進行拍照,不到一秒鐘,程序便會返回判斷結(jié)果,當前拍攝的照片處于哪一個物候期花期,并且顯示此物候期花期下重點防治病害,需要補充何種營養(yǎng),應注意什么農(nóng)事等等。程序判斷依據(jù)的根據(jù)識別出來的各個時期的識別結(jié)果進行制定的綜合規(guī)則匹配判斷進行得出的結(jié)果,簡單舉例就是如果識別出來露白期花有9 朵,綻蕾期的有2朵則匹配出來的結(jié)果顯示認為此照片處于露白期,并且告知露白期下須注意預防病害蟲害,露白期下是否需要重點補充營養(yǎng),補充何種營養(yǎng),是否需要進行何種農(nóng)事任務。
柑橘病蟲害以及柑橘物候期花期的模型訓練步驟如下:
柑橘識別的模型通過采集多張柑橘的圖片,對柑橘圖片中的病蟲害和物候期花期特征進行標識。
具體的,采集柑橘的各種病蟲害和物候期花期特征的照片作為樣本庫,每種病蟲害和物候期花期特征的圖片數(shù)量不少于1000張;利用labelme 標注工具對圖片中的柑橘病蟲害和物候期花期特征進行標注,框出圖片中的病蟲害和物候期花期特征。
A1,對已框出特征的圖片進行增強處理,對圖片進行旋轉(zhuǎn)、圖片亮度、暗度進行處理,實現(xiàn)數(shù)據(jù)增強;使用caffe 的Scale layer 和BatchNorm layer 實現(xiàn)數(shù)據(jù)歸一化處理;增加樣本數(shù)量,以提高算法魯棒性。
A2,將增強后的柑橘病蟲害和物候期花期特征圖片按照80%為訓練集,20%為測試集的比率進行分配。
A3,將訓練集輸入fasterrcnn 深度神經(jīng)網(wǎng)絡訓練以提取柑橘病蟲害和物候期花期特征信息,病蟲害特征信息,根據(jù)柑橘的病蟲害和物候期花期特征信息獲取柑橘病蟲害和物候期花期的位置,經(jīng)30 萬次迭代后生成fasterrcnn 深度神經(jīng)網(wǎng)絡的網(wǎng)絡參數(shù)。
A4,利用測試集對訓練出來的模型網(wǎng)絡參數(shù)進行測試,通過訓練出來的模型進行識別的到的識別結(jié)果的位置以及識別信息與測試圖片在A1 框選出來的柑橘病蟲害和物候期花期信息進行比較,最終通過平均精度map 和召回率recall 進行評估,召回率recall 為將正類預測為正類數(shù)占將正類預測為正類數(shù)加將正類預測為負類數(shù)的比例,重復步驟A3 和A4 平均精度map 和召回率recall 達到需求,從而獲取最優(yōu)網(wǎng)絡參數(shù)的所述fasterrcnn 深度神經(jīng)網(wǎng)絡,利用該最優(yōu)的fasterrcnn 深度神經(jīng)網(wǎng)絡根據(jù)該位置的柑橘病蟲害的特征信息識別病蟲害。
A5,基于A4 便可識別出圖片里病蟲害和物候期花期特征,并將特征在圖片的位置坐標框選出來。病蟲害的識別于此便可展示結(jié)果。柑橘物候期花期則需要再進行規(guī)則判斷物候期花期,判斷方式如下:
假設單張圖片里包含現(xiàn)蕾期的識別結(jié)果為X1 個,露白期的識別結(jié)果為X2 個,綻蕾期的識別結(jié)果為X3 個,謝花期的識別結(jié)果為X4 個??傋R別數(shù)量為T=(X1+X2+X3+X4),則現(xiàn)蕾期占比為rate_x=X1/T,露白期占比為rate_l=X2/T,綻蕾期占比為rate_z=X3/T,謝花期占比為rate_xh=X4/T。根據(jù)各個時期占圖片總占比來判斷柑橘花期。
項目基于C#做應用層開發(fā),微軟.net Core 架構(gòu)API 接口,項目客戶端為IOS,安卓以及微信小程序?qū)咏涌?。其中微信小程序使用React 框架進行功能實現(xiàn)。項目后臺維護頁面則使用html,javascript 等進行實現(xiàn)。識別服務使用Python 進行實現(xiàn)。數(shù)據(jù)庫使用sqlserver2012R2 進行數(shù)據(jù)存儲,使用redis 進行數(shù)據(jù)內(nèi)存管理。
項目架構(gòu)框架為客戶端,應用服務,識別服務。項目架構(gòu)流程客戶端通過http 方式進行請求識別,API 接口接收到http 請求對請求進行安全令牌校驗,業(yè)務驗證,然后進行請求識別,識別服務接收到識別請求對請求的圖片進行圖片加載然后進行圖片識別,返回識別結(jié)果到應用層,應用層將識別服務返回的識別結(jié)果進行解析處理,解析處理包含規(guī)則判斷,可信度判斷,以及整合相關(guān)屬性信息等。最后應用層將結(jié)果數(shù)據(jù)返回到客戶端,客戶端對結(jié)果數(shù)據(jù)進行解析處理展示到頁面上。
項目部署于阿里云上,使用一臺Windows server 2012 服務器進行應用服務部署,一臺windows server 2012 服務器進行部署數(shù)據(jù)庫Sqlserver 2012R2,一臺Linux 帶GPU 的服務器進行部署識別服務部署。
人工智能是當今科技的發(fā)展潮流,目前人工智能已經(jīng)逐步走入了老百姓的日常生活中,基于柑橘的AI 圖片識別微信小程序【耘眼】也已經(jīng)正式面向了全國的柑橘種植戶,免費供用戶使用。同時【耘眼】還提供“農(nóng)藥復配”,“咨詢問答”,用戶使用【耘眼】還可獲得積分,紅包等活動。目前【耘眼】在全國服務的用戶已達15 萬之多。真正的做到了柑橘種植農(nóng)戶解決根本問題,為柑橘種植農(nóng)戶提供幫助。也獲得了老百姓的普遍贊美和一致好評。目前“耘眼”也是不斷的更新迭代,增加商城,天氣預警等在農(nóng)戶所關(guān)心的難點和痛點上下手,專門為農(nóng)戶解決問題。當前【耘眼】也是不斷的進行推廣宣傳,讓更多的農(nóng)戶認識【耘眼】,讓【耘眼】為更多的用戶服務,給予他們幫助。目前【耘眼】是作用在手機上主要是靠手機拍照進行對柑橘園區(qū)病沖害和物候期花期進行判斷。需要農(nóng)戶主動的去發(fā)起這個事件。未來我們可以將功能集成到相機,攝像頭,專門在柑橘園區(qū)安裝攝像頭設備,即可實時進行無人監(jiān)測,即使沒有農(nóng)戶在園區(qū),攝像頭也可每天對柑橘的生長狀態(tài)進行全方面監(jiān)控,對病蟲害和物候期進行實時預警,將預警發(fā)送到種植戶手中,真正實現(xiàn)人工智能,未來可期。