武 睿,樂麗紅,朱安繁,譚斯坦,黃 明,何小林,謝秋發,易玉根,黃小龍
(1.江西生物科技職業學院,江西 南昌 330200;2.余干縣農業局,江西 余干 335100;3.江西省土壤肥料技術推廣站,江西 南昌 330046;4.南昌市糧油生產管理站,江西 南昌 330009;5.興國縣土壤肥料工作站,江西 興國 342400;6.上海大果信息科技有限公司,上海 200080;7.江西師范大學,江西 南昌 330022;8.豐城市農業技術推廣中心,江西 豐城 331100)
作物生長需要各類礦質營養元素,作物必需營養元素的缺乏,往往引發作物產量和品質的下降。作物營養診斷技術起源于19世紀,隨著社會的發展和科技的進步而不斷豐富和發展。目前,已形成外觀診斷法、化學診斷法、葉綠素儀診斷法、數字圖像診斷法、光譜診斷法等方法[1-7]。化學診斷法、葉綠素儀診斷法和光譜診斷法,需要專業的診斷設備,并要求診斷人員具備較強的專業知識,因此,只有少數專家和學者能夠掌握。數字圖像診斷法,過去由于缺乏優化的算法,診斷效果不夠理想;外觀診斷法,通過觀察作物的癥狀,結合專家經驗,對作物營養狀況進行判斷,由于不同營養元素缺乏表現的癥狀各異或相似,相同的缺素癥狀在不同的作物上表現又有所差異,因此,外觀診斷法仍只有少數經驗豐富的專家學者能夠較為全面地掌握。農業生產點多面廣,作物缺素在時空上極度分散,現有農業專家難以滿足需求,使得很多的作物缺素無法得到及時診斷和有效矯治。為解決農業專家不足的問題,近30年來,我國學者開發了大量的作物營養診斷專家系統[8-14]。這些專家系統,基于“知識+推理”的方法進行設計開發,模擬專家的思維方式進行推理和判斷,使用中要求用戶回答系統提問才能給出診斷結論,用戶仍需具備一定的專業知識,因此多用于輔助基層農技人員開展診斷,仍無法徹底解決專家數量不足的問題。要徹底打通作物營養診斷的“最后一公里”,讓每一位農業生產者都成為“專家”,必須尋求更簡單高效的作物營養診斷方法。近年來,卷積神經網絡模型得到不斷改進,圖像識別準確率已經超越人類的肉眼[15],加上云計算、移動互聯網、智能手機、微信小程序的全面普及,使得廣大農業種植業者在云服務的支持下,通過簡單的手機拍照,零門檻開展作物營養診斷成為可能。
作物營養拍照診斷服務系統,旨在為用戶提供一種簡單高效的作物營養診斷服務。系統主要以“云計算+端智能”為架構,采用基于卷積神經網絡的技術進行診斷服務。用戶首先通過手機安裝的微信小程序拍攝或選擇作物圖片,上傳到云計算服務器;然后,圖片在云計算服務器進行識別后,形成作物營養診斷結果及矯治方案反饋到用戶手機。
系統主要包括2個部分:云計算服務器端和手機客戶端。系統各部分功能模塊如圖1所示。
1.2.1 云計算服務器模塊 該模塊細分為圖片接收、圖片識別和結果反饋3個子模塊,分別負責接收用戶上傳的圖片、對圖片進行識別、將診斷結果和矯治方案反饋到手機客戶端。
1.2.2 手機客戶端模塊 該模塊細分為作物選擇、圖片選擇、圖片上傳和信息接收4個子模塊,圖片選擇又細分為拍攝圖片和本地圖片2個子模塊。通過作物選擇模塊,用戶可以從系統提供的作物列表中選擇一種待診斷的作物。通過圖片選擇模塊,用戶可以用手機拍攝或選擇本地圖片。圖片上傳模塊,可以實現將圖片上傳到云計算服務器的功能。信息接收模塊用于接收云計算服務器反饋的診斷結果和矯治方案。

圖1 作物營養拍照診斷服務系統框架圖
系統依托中國最大的公共云計算平臺——阿里云進行部署,將包含圖像識別等模塊的應用部署到云計算服務器,以基礎設施即服務(IaaS)的形式,使用云平臺海量的數據存儲和強大的計算處理資源,不僅可以對數據實現高效、快速處理與調用,而且還可以根據要求在實踐運用中發揮出彈性處理和及時調配的優勢,能最大程度地滿足數據處理的需求。用戶上傳圖片后,即刻就能收到服務器反饋的診斷結果,具有良好的用戶體驗。
系統的主要目標用戶是我國廣大的農業種植業者和基層農業技術服務人員。為提升用戶體驗,減輕用戶手機資源負擔,客戶端在設計上力求簡單方便,采用微信小程序進行開發。微信小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用,體現了“用完即走”的理念。微信小程序2017年正式上線后,依托近9億的微信用戶數量,得到了快速發展。在農村,微信小程序具有非常堅實的用戶群體基礎。客戶端界面簡潔,人機交互極少,一般用戶都可以無障礙操作。
卷積神經網絡(Convolutional Neural Network,CNN)是一種著名的深度學習模型,其名稱的由來是因為卷積運算被引入到這種模型中。CNN可以歸類為多層前饋神經網絡模型,但與傳統的多層前饋神經網絡不同,CNN的輸入是二維模式(如圖像),其連接權是二維權矩陣(也稱為卷積核),基本操作是二維離散卷積和池化[15]。由于CNN可以直接處理二維模式,所以它在計算機視覺領域得到了非常廣泛的應用,已成功應用于圖像分類、目標檢測和目標跟蹤等許多領域。卷積神經網絡的基本構成要素包括卷基層、池化層(也稱為采樣層)和全連接層。卷基層用于提取不同圖像的特征,池化層用于降維,全連接層一般是一個分類器。
卷積神經網絡來源于多層感知器,同時它解決了多層感知器存在的訓練參數過多等問題,其核心出發點有3個[16-18]。
(1)局部感受野(Receptive Field):采用卷積的目的在于將某些特征從圖像中提取出來。其原理就如在生活中我們觀察某個事物也是事先看到局部,不會一下就觀察到物體的全部內容。做卷積運算時,卷積核與對應的特征圖(圖像)的一個局部區域相連接,這個局部區域就是卷積核的局部感受野,從而大大減少需要訓練的權值參數。
(2)權值共享:可以看成是特征提取的方式。用同一個卷積核去掃描圖像的每個位置,所以權重是相同的,從而大大減少需要訓練的參數。
(3)池化:通過某種池化函數進行降采樣,既降低了圖像的分辨率(從而減少精確的位置信息),又不損失過多的有效信息,極大地提高了其對圖像的幾何變換的無關性。常用的池化操作包括最大池化和平均池化。
自1998年Lecun等[19]提出第1個LeNet卷積神經網絡模型以來,研究人員提出了許多新的卷積神經網絡模型,比較有名的包括:Krizhevsky等[20]提出的AlexNet模型;Simonyan等[21]提出的VGGNet模型;Szegedy等[22]提出的Google Inception Net模型;He等[23]提出的ResNet模型。
本系統采用Google Inception Net結構模型。Inception結構是這種模型的基本構成單元,其基本思想是找出最優的局部稀疏結構。該結構模型是一個模型家族,包括4個模型:Inception V1、Inception V2、Inception V3、Inception V4。2014年,Inception V1獲得當年大規模視覺識別挑戰賽(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)的冠軍,top-5錯誤率為6.67%[15]。Inception V3于2015年被提出,在V1和V2的基礎上進行了再次優化,top-5錯誤率僅為3.5%[24]。該模型最大的特點是在控制計算量和參數的同時,獲得了非常好的性能。Inception V3的網絡結構圖如圖2所示。

圖2 Inception V3網絡結構圖
作物必需的礦資質營養元素包括氮(N)、磷(P)、鉀(K)、鈣(Ca)、鎂(Mg)、硫(S)、鐵(Fe)、錳(Mn)、銅(Cu)、鋅(Zn)、鉬(Mo)、硼(B)、氯(C1)等13種[25]。不同的礦質元素缺乏,可引起不同的缺素癥狀,而且在不同的作物上,表現有所差異。因此,在圖片類型上,包括正常營養圖片在內,每種作物至少有14種營養類型圖片。每種作物每種營養類型采集200張以上典型圖片,其中100張作為訓練圖片,獲取Inception V3模型的權重,其余的圖片用于驗證。
在云計算服務器端構建Inception V3模型,載入訓練好的權重值,編譯模型,使上傳的作物圖像數據流入模型,最后根據上傳作物圖像與權重文件中作物圖像的相識度,反饋相似概率最大的2個結果到手機客戶端,為用戶提供所診斷作物的營養狀況及矯治方案。
通過對驗證圖片進行測試,診斷準確率達到95.3%。
在手機上登陸微信,打開“作物營養拍照診斷”小程序,從候選作物列表中選擇1種待診斷作物,從手機中選擇或者用手機照相機拍攝一張照片,即可獲得云計算服務器端反饋的作物營養診斷結果及矯治方案。系統客戶端界面見圖3。
當前,智能手機和微信基本實現了普及,基于微信小程序開發“作物營養拍照診斷服務系統”的客戶端,使用戶進行作物營養診斷變得非常方便、簡單和高效,降低了對農業專家的依賴,有助于及時對作物營養狀況進行診斷,從而減小了缺素對作物產量和品質的負面影響。由于每種作物每種缺素癥狀不止一種,除典型癥狀外,還可能有多種非典型癥狀。也就是說,每種作物實際上不止14種營養類型圖片。但是,基于圖片收集工作量較大、非典型癥狀不夠明顯、有些癥狀間相似度較高等原因,系統目前按照每種作物一種典型癥狀將作物圖片分為14類,這使得系統當前只能夠對典型癥狀進行診斷,而無法對非典型癥狀進行診斷。下一步,應收集更多的作物圖片進行完善。

圖3 作物營養拍照診斷服務系統客戶端微信小程序界面