劉小紅
(湖南信息學(xué)院電子信息學(xué)院,湖南長沙 410151)
水稻病蟲害對糧食生產(chǎn)造成極大威脅,對病蟲害的準(zhǔn)確識別和診斷已成為近年來農(nóng)業(yè)病蟲害研究的熱點(diǎn)之一。隨著手機(jī)應(yīng)用的普及,已有國內(nèi)外學(xué)者利用手機(jī)在病蟲害診斷方面進(jìn)行了深入研究。張谷豐等[1]綜合害蟲體型和危害部位及其特征在手機(jī)端進(jìn)行歸類處理,再參照相關(guān)蟲體圖片和文字描述等進(jìn)行診斷,開發(fā)了基于Android的水稻害蟲診斷系統(tǒng)。鄭姣等[2]在手機(jī)端調(diào)用OpenCV直接對病害圖像進(jìn)行采集、分割、識別等處理,實現(xiàn)水稻病害圖像的識別。由于手機(jī)拍攝的圖片數(shù)據(jù)容量大,加大數(shù)據(jù)處理難度,加上手機(jī)端硬件配置及性能問題使得圖像處理能力有限,從而影響圖像識別的實時性,再加上SQLite數(shù)據(jù)庫不適合大量圖像檢索計算,因此在手機(jī)端上實現(xiàn)圖像的準(zhǔn)確識別仍然十分困難。針對以上問題,筆者利用手機(jī)端圖像壓縮技術(shù)和PC端圖像處理優(yōu)勢,提出以手機(jī)端對病害圖像采集、壓縮處理并上傳,服務(wù)端接收處理、分割、識別圖像,并返回結(jié)果的方法,并基于Android平臺開發(fā)了水稻病害智能診斷系統(tǒng)。
根據(jù)系統(tǒng)功能需求,具體劃分為客戶層、通信層、服務(wù)層3層。其中,客戶層選擇JDK+ Eclipse+ Android SDK+ADT 插件等應(yīng)用技術(shù)進(jìn)行開發(fā);服務(wù)層的系統(tǒng)管理平臺選擇JavaEE應(yīng)用技術(shù)進(jìn)行開發(fā),并配置Tomcat服務(wù)器,利用Servlet技術(shù)響應(yīng)不同客戶端發(fā)來的HTTP請求;同時,采用MySQL數(shù)據(jù)庫來滿足診斷平臺對數(shù)據(jù)庫的要求[3]。
2.1手機(jī)客戶端主要分為3個模塊:用戶信息管理模塊為農(nóng)業(yè)種植人員或技術(shù)人員提供用戶信息注冊、登錄等操作;病害圖像診斷模塊支持圖像采集、圖像壓縮并上傳、接收識別結(jié)果等功能;病害數(shù)據(jù)查詢模塊提供查詢相關(guān)病害數(shù)據(jù)、防治措施、服務(wù)端發(fā)布的指導(dǎo)信息等功能。
2.2服務(wù)端服務(wù)端包括用戶信息管理模塊、特征數(shù)據(jù)模塊和病害數(shù)據(jù)模塊、圖像處理模塊。①用戶信息管理模塊為農(nóng)業(yè)專家或系統(tǒng)管理員提供用戶信息注冊、登錄及帳號管理等操作。②特征數(shù)據(jù)模塊為植保人員提供病害圖像特征存儲、更新等操作,植保人員將添加的標(biāo)準(zhǔn)圖片進(jìn)行圖像去噪與歸一化、分割處理后,提取圖像特征值,再將其存入特征數(shù)據(jù)庫。③病害數(shù)據(jù)模塊對病害基本信息、防治方法等信息進(jìn)行更新和維護(hù)。④圖像處理模塊將接收的圖片進(jìn)行預(yù)處理、分割、特征提取和特征匹配,最后將匹配的結(jié)果以文字和圖像的形式返回到手機(jī)客戶端。
根據(jù)實際需要,智能診斷平臺要滿足準(zhǔn)確性和實時性的性能需求,系統(tǒng)開發(fā)過程中使用了圖像壓縮技術(shù)和圖像處理等關(guān)鍵技術(shù)。
3.1圖像壓縮關(guān)鍵技術(shù)隨著人們對拍照質(zhì)量要求的提高,手機(jī)攝像頭像素也不斷提高,手機(jī)拍攝圖片占據(jù)大量的數(shù)據(jù)存儲空間,如果直接上傳至遠(yuǎn)程服務(wù)器中,會導(dǎo)致上傳速度緩慢、消耗流量等問題。解決該問題雖有多種方法,但對農(nóng)戶而言,最好的辦法是在保證清晰度的前提下壓縮圖像,以減少圖片容量、降低上傳數(shù)據(jù)流量,加快上傳速度。由于拍攝光感和像素等原因使水稻病害圖像多樣化、復(fù)雜化,采用改進(jìn)的JPEG圖像壓縮算法來操作,可獲得更好的壓縮效果。JPEG壓縮要經(jīng)歷顏色模式轉(zhuǎn)換及采樣、離散余弦變換(DCT變換)、量化、哈夫曼編碼等步驟[4]。JPEG算法壓縮圖像過程如圖1所示。

圖1 JPEG算法壓縮圖像過程Fig.1 The image compression process based on JPEG algorithm
因為手機(jī)收集的實時圖像是RGB色彩空間,進(jìn)行JPEG圖像壓縮前,要將其轉(zhuǎn)換為Y(亮度)、Cr(色度)、Cb(飽和度)色彩空間。采樣時以1∶1∶1的模式進(jìn)行。轉(zhuǎn)換公式化為:
Y=0.299R+0.587G+0.114B
(1)
Cb=-0.168 7R-0.331 3G+0.5B+128
(2)
Cr=0.5R-0.418G-0.081 3B+128
(3)
顏色模式變換后,產(chǎn)生亮度、色度、飽和度3個分量塊,將每分量塊分割成8×8的像素塊,再對像素塊進(jìn)行DCT計算。同時采用Loeffler算法以減少DCT的運(yùn)算量,方法如下:先對8×8像素塊按行進(jìn)行DCT變換,再對變換得到的中間矩陣按列進(jìn)行DCT變換,這樣將8×8二維變換變成2次一維的復(fù)合DCT運(yùn)算[4-6]。
DCT變換后,還需進(jìn)行量化處理。量化的過程是對DCT變換后的數(shù)據(jù),利用色度量化表和亮度量化表分別進(jìn)行量化,對于DCT矩陣中的數(shù)據(jù)在量化時,采用量化公式如下:
量化值(i,j)=[f(i,j)Π量化矩陣(i,j)]
(4)
數(shù)據(jù)量化處理后,還需對其進(jìn)行“Z型”掃描,形成一維數(shù)列后便可進(jìn)行編碼處理。為達(dá)到圖片診斷時的清晰度要求,在圖片壓縮時采用哈夫曼編碼方式進(jìn)行無損耗數(shù)據(jù)壓縮[4-5]。
3.2圖像識別處理關(guān)鍵技術(shù)圖像處理具有數(shù)據(jù)量大和處理費(fèi)時的特點(diǎn),該系統(tǒng)利用服務(wù)端硬件對圖像處理的性能優(yōu)勢,選擇OpenCV作為圖像處理手段,對客戶端發(fā)來的病蟲害圖片進(jìn)行及時處理,可以解決移動端圖像處理能力有限、SQLite數(shù)據(jù)庫檢索難度大等問題,提高系統(tǒng)識別實時性。
OpenCV由一系列C函數(shù)和C++類構(gòu)成,并提供良好的接口,具有跨平臺性,是目前主要的圖像識別開發(fā)平臺[7]。其中,CV核心模塊可實現(xiàn)圖像處理、模式識別、對運(yùn)動物體進(jìn)行描述和跟蹤等功能。由于網(wǎng)絡(luò)傳輸會對手機(jī)端傳送的病害圖像造成一定網(wǎng)絡(luò)噪聲,該系統(tǒng)中在圖像預(yù)處理階段利用濾波算法進(jìn)行去噪處理;針對拍攝背景、光線及病害特征的不明顯性,需利用邊緣分割和閾值分割進(jìn)行分割處理,去除不明顯部位,提取圖片中感興趣部分;由于為害部位與周邊環(huán)境存在顏色上的差異及為害部位發(fā)生范圍的不規(guī)則性,需利用顏色矩和幾何參數(shù)方法分別提取顏色特征和形狀特征;在圖像識別階段為提高圖像識別精準(zhǔn)度,采用支持向量機(jī)的分類器來對提取的特征進(jìn)行識別[8-9]。OpenCV圖像處理過程如圖2所示。

圖2 OpenCV圖像處理過程 Fig.2 OpenCV image processing procedure
4.1手機(jī)客戶端系統(tǒng)實現(xiàn)用戶可利用友好、簡單的人機(jī)交互界面,在田間實地圖片采集、壓縮并上傳,進(jìn)行無采摘式、實時的病害診斷;還可以通過“信息查詢”功能,實現(xiàn)在線查詢各種病害信息和防治技術(shù)等,解決農(nóng)民在種植過程中遇到的各種問題。該系統(tǒng)充分利用Android SDK中的LinearLayout類、GridView類、ListView類及TabHost組件等優(yōu)勢設(shè)計個性化的友好的人機(jī)交互界面。手機(jī)端系統(tǒng)實現(xiàn)的部分界面如圖3所示。

圖3 系統(tǒng)界面Fig.3 The interface of the system
4.2系統(tǒng)測試將開發(fā)好的系統(tǒng)文件生成apk應(yīng)用,運(yùn)行在安裝應(yīng)用系統(tǒng)Android 4.4以上版本的手機(jī)上,以常見的稻瘟病、稻曲病、紋枯病為例,進(jìn)行了初步應(yīng)用。利用實時拍下有明顯特征的100多張圖片來測試系統(tǒng)的準(zhǔn)確性,并對診斷結(jié)果進(jìn)行統(tǒng)計和分析。結(jié)果表明,稻曲病診斷準(zhǔn)確率在85%以上,稻瘟病準(zhǔn)確率略低,但也在73%以上,紋枯病的診斷準(zhǔn)確率次之。由于在客戶端采用圖像壓縮技術(shù),降低了數(shù)據(jù)的冗余度,上傳速度加快,提高了病害圖像診斷的效率。
在手機(jī)端利用圖像壓縮技術(shù),結(jié)合服務(wù)端的圖像識別處理技術(shù),研發(fā)了基于Android平臺的水稻病害智能診斷系統(tǒng)。該系統(tǒng)實現(xiàn)了手機(jī)端可隨時隨地采集、壓縮、上傳病害圖像,進(jìn)行遠(yuǎn)程病害智能診斷,可為種植人員或技術(shù)人員在不受時域、空間等限制情況下提供準(zhǔn)確、及時的病害診斷信息和相應(yīng)的防治方法,有助于合理用藥,提高糧食產(chǎn)量和經(jīng)濟(jì)收入。由于該系統(tǒng)尚處于應(yīng)用初級階段,對于部分問題(如對復(fù)雜背景的圖像準(zhǔn)確診斷率不高、圖像壓縮效果不理想等)在后續(xù)的研究中還需進(jìn)一步完善和提高。
[1] 張谷豐,羅崗,孫雪梅,等.基于Android的水稻害蟲診斷系統(tǒng)[J].應(yīng)用昆蟲學(xué)報,2015,52(4):837-843.
[2] 鄭姣,劉立波.基于Android的水稻病害圖像識別系統(tǒng)設(shè)計與應(yīng)用[J].計算機(jī)工程與科學(xué),2015,37(7):1366-1371.
[3] 李曉靜,魏振鋼.基于Spring與Hibernate的Web應(yīng)用開發(fā)研究[J].軟件導(dǎo)刊,2017,16(5):69-71.
[4] 徐唐,王錦,楊丹.基于JPEG算法的Android圖像壓縮技術(shù)研究[J].電腦知識與技術(shù),2016,12(22):176-178.
[5] ZHOU S W,LIU Y H,ZHANG W.Compressed sensing of image signals with threshold processing[J].Optik-international journal for light and electron optics,2017,131:671-677.
[6] 錢鵬鶴.基于JPEG壓縮技術(shù)在移動終端上手寫信息的設(shè)計和實現(xiàn)[D].上海:上海交通大學(xué),2007.
[7] 張建華,冀榮華,袁雪,等.基于徑向基支持向量機(jī)的棉花蟲害識別[J].農(nóng)業(yè)機(jī)械學(xué)報,2011,42(8):178-183.
[8] 林玲,伊力亞爾.自組織映射神經(jīng)網(wǎng)絡(luò)(SOM)在圖像分類中的應(yīng)用[J].伊犁師范學(xué)院學(xué)報(自然科學(xué)版),2010(1):46-48.
[9] 徐義鑫,李鳳菊,王建春,等.基于OpenCV的Android手機(jī)植物葉片幾何參數(shù)測量系統(tǒng)[J].中國農(nóng)學(xué)通報,2015,31(35):236-244.