劉小紅
(湖南信息學(xué)院電子信息學(xué)院,湖南長(zhǎng)沙 410151)
水稻病蟲害對(duì)糧食生產(chǎn)造成極大威脅,對(duì)病蟲害的準(zhǔn)確識(shí)別和診斷已成為近年來(lái)農(nóng)業(yè)病蟲害研究的熱點(diǎn)之一。隨著手機(jī)應(yīng)用的普及,已有國(guó)內(nèi)外學(xué)者利用手機(jī)在病蟲害診斷方面進(jìn)行了深入研究。張谷豐等[1]綜合害蟲體型和危害部位及其特征在手機(jī)端進(jìn)行歸類處理,再參照相關(guān)蟲體圖片和文字描述等進(jìn)行診斷,開發(fā)了基于Android的水稻害蟲診斷系統(tǒng)。鄭姣等[2]在手機(jī)端調(diào)用OpenCV直接對(duì)病害圖像進(jìn)行采集、分割、識(shí)別等處理,實(shí)現(xiàn)水稻病害圖像的識(shí)別。由于手機(jī)拍攝的圖片數(shù)據(jù)容量大,加大數(shù)據(jù)處理難度,加上手機(jī)端硬件配置及性能問題使得圖像處理能力有限,從而影響圖像識(shí)別的實(shí)時(shí)性,再加上SQLite數(shù)據(jù)庫(kù)不適合大量圖像檢索計(jì)算,因此在手機(jī)端上實(shí)現(xiàn)圖像的準(zhǔn)確識(shí)別仍然十分困難。針對(duì)以上問題,筆者利用手機(jī)端圖像壓縮技術(shù)和PC端圖像處理優(yōu)勢(shì),提出以手機(jī)端對(duì)病害圖像采集、壓縮處理并上傳,服務(wù)端接收處理、分割、識(shí)別圖像,并返回結(jié)果的方法,并基于Android平臺(tái)開發(fā)了水稻病害智能診斷系統(tǒng)。
根據(jù)系統(tǒng)功能需求,具體劃分為客戶層、通信層、服務(wù)層3層。其中,客戶層選擇JDK+ Eclipse+ Android SDK+ADT 插件等應(yīng)用技術(shù)進(jìn)行開發(fā);服務(wù)層的系統(tǒng)管理平臺(tái)選擇JavaEE應(yīng)用技術(shù)進(jìn)行開發(fā),并配置Tomcat服務(wù)器,利用Servlet技術(shù)響應(yīng)不同客戶端發(fā)來(lái)的HTTP請(qǐng)求;同時(shí),采用MySQL數(shù)據(jù)庫(kù)來(lái)滿足診斷平臺(tái)對(duì)數(shù)據(jù)庫(kù)的要求[3]。
2.1手機(jī)客戶端主要分為3個(gè)模塊:用戶信息管理模塊為農(nóng)業(yè)種植人員或技術(shù)人員提供用戶信息注冊(cè)、登錄等操作;病害圖像診斷模塊支持圖像采集、圖像壓縮并上傳、接收識(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)管理員提供用戶信息注冊(cè)、登錄及帳號(hào)管理等操作。②特征數(shù)據(jù)模塊為植保人員提供病害圖像特征存儲(chǔ)、更新等操作,植保人員將添加的標(biāo)準(zhǔn)圖片進(jìn)行圖像去噪與歸一化、分割處理后,提取圖像特征值,再將其存入特征數(shù)據(jù)庫(kù)。③病害數(shù)據(jù)模塊對(duì)病害基本信息、防治方法等信息進(jìn)行更新和維護(hù)。④圖像處理模塊將接收的圖片進(jìn)行預(yù)處理、分割、特征提取和特征匹配,最后將匹配的結(jié)果以文字和圖像的形式返回到手機(jī)客戶端。
根據(jù)實(shí)際需要,智能診斷平臺(tái)要滿足準(zhǔn)確性和實(shí)時(shí)性的性能需求,系統(tǒng)開發(fā)過程中使用了圖像壓縮技術(shù)和圖像處理等關(guān)鍵技術(shù)。
3.1圖像壓縮關(guān)鍵技術(shù)隨著人們對(duì)拍照質(zhì)量要求的提高,手機(jī)攝像頭像素也不斷提高,手機(jī)拍攝圖片占據(jù)大量的數(shù)據(jù)存儲(chǔ)空間,如果直接上傳至遠(yuǎn)程服務(wù)器中,會(huì)導(dǎo)致上傳速度緩慢、消耗流量等問題。解決該問題雖有多種方法,但對(duì)農(nóng)戶而言,最好的辦法是在保證清晰度的前提下壓縮圖像,以減少圖片容量、降低上傳數(shù)據(jù)流量,加快上傳速度。由于拍攝光感和像素等原因使水稻病害圖像多樣化、復(fù)雜化,采用改進(jìn)的JPEG圖像壓縮算法來(lái)操作,可獲得更好的壓縮效果。JPEG壓縮要經(jīng)歷顏色模式轉(zhuǎn)換及采樣、離散余弦變換(DCT變換)、量化、哈夫曼編碼等步驟[4]。JPEG算法壓縮圖像過程如圖1所示。
圖1 JPEG算法壓縮圖像過程Fig.1 The image compression process based on JPEG algorithm
因?yàn)槭謾C(jī)收集的實(shí)時(shí)圖像是RGB色彩空間,進(jìn)行JPEG圖像壓縮前,要將其轉(zhuǎn)換為Y(亮度)、Cr(色度)、Cb(飽和度)色彩空間。采樣時(shí)以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個(gè)分量塊,將每分量塊分割成8×8的像素塊,再對(duì)像素塊進(jìn)行DCT計(jì)算。同時(shí)采用Loeffler算法以減少DCT的運(yùn)算量,方法如下:先對(duì)8×8像素塊按行進(jìn)行DCT變換,再對(duì)變換得到的中間矩陣按列進(jìn)行DCT變換,這樣將8×8二維變換變成2次一維的復(fù)合DCT運(yùn)算[4-6]。
DCT變換后,還需進(jìn)行量化處理。量化的過程是對(duì)DCT變換后的數(shù)據(jù),利用色度量化表和亮度量化表分別進(jìn)行量化,對(duì)于DCT矩陣中的數(shù)據(jù)在量化時(shí),采用量化公式如下:
量化值(i,j)=[f(i,j)Π量化矩陣(i,j)]
(4)
數(shù)據(jù)量化處理后,還需對(duì)其進(jìn)行“Z型”掃描,形成一維數(shù)列后便可進(jìn)行編碼處理。為達(dá)到圖片診斷時(shí)的清晰度要求,在圖片壓縮時(shí)采用哈夫曼編碼方式進(jìn)行無(wú)損耗數(shù)據(jù)壓縮[4-5]。
3.2圖像識(shí)別處理關(guān)鍵技術(shù)圖像處理具有數(shù)據(jù)量大和處理費(fèi)時(shí)的特點(diǎn),該系統(tǒng)利用服務(wù)端硬件對(duì)圖像處理的性能優(yōu)勢(shì),選擇OpenCV作為圖像處理手段,對(duì)客戶端發(fā)來(lái)的病蟲害圖片進(jìn)行及時(shí)處理,可以解決移動(dòng)端圖像處理能力有限、SQLite數(shù)據(jù)庫(kù)檢索難度大等問題,提高系統(tǒng)識(shí)別實(shí)時(shí)性。
OpenCV由一系列C函數(shù)和C++類構(gòu)成,并提供良好的接口,具有跨平臺(tái)性,是目前主要的圖像識(shí)別開發(fā)平臺(tái)[7]。其中,CV核心模塊可實(shí)現(xiàn)圖像處理、模式識(shí)別、對(duì)運(yùn)動(dòng)物體進(jìn)行描述和跟蹤等功能。由于網(wǎng)絡(luò)傳輸會(huì)對(duì)手機(jī)端傳送的病害圖像造成一定網(wǎng)絡(luò)噪聲,該系統(tǒng)中在圖像預(yù)處理階段利用濾波算法進(jìn)行去噪處理;針對(duì)拍攝背景、光線及病害特征的不明顯性,需利用邊緣分割和閾值分割進(jìn)行分割處理,去除不明顯部位,提取圖片中感興趣部分;由于為害部位與周邊環(huán)境存在顏色上的差異及為害部位發(fā)生范圍的不規(guī)則性,需利用顏色矩和幾何參數(shù)方法分別提取顏色特征和形狀特征;在圖像識(shí)別階段為提高圖像識(shí)別精準(zhǔn)度,采用支持向量機(jī)的分類器來(lái)對(duì)提取的特征進(jìn)行識(shí)別[8-9]。OpenCV圖像處理過程如圖2所示。
圖2 OpenCV圖像處理過程 Fig.2 OpenCV image processing procedure
4.1手機(jī)客戶端系統(tǒng)實(shí)現(xiàn)用戶可利用友好、簡(jiǎn)單的人機(jī)交互界面,在田間實(shí)地圖片采集、壓縮并上傳,進(jìn)行無(wú)采摘式、實(shí)時(shí)的病害診斷;還可以通過“信息查詢”功能,實(shí)現(xiàn)在線查詢各種病害信息和防治技術(shù)等,解決農(nóng)民在種植過程中遇到的各種問題。該系統(tǒng)充分利用Android SDK中的LinearLayout類、GridView類、ListView類及TabHost組件等優(yōu)勢(shì)設(shè)計(jì)個(gè)性化的友好的人機(jī)交互界面。手機(jī)端系統(tǒng)實(shí)現(xiàn)的部分界面如圖3所示。
圖3 系統(tǒng)界面Fig.3 The interface of the system
4.2系統(tǒng)測(cè)試將開發(fā)好的系統(tǒng)文件生成apk應(yīng)用,運(yùn)行在安裝應(yīng)用系統(tǒng)Android 4.4以上版本的手機(jī)上,以常見的稻瘟病、稻曲病、紋枯病為例,進(jìn)行了初步應(yīng)用。利用實(shí)時(shí)拍下有明顯特征的100多張圖片來(lái)測(cè)試系統(tǒng)的準(zhǔn)確性,并對(duì)診斷結(jié)果進(jìn)行統(tǒng)計(jì)和分析。結(jié)果表明,稻曲病診斷準(zhǔn)確率在85%以上,稻瘟病準(zhǔn)確率略低,但也在73%以上,紋枯病的診斷準(zhǔn)確率次之。由于在客戶端采用圖像壓縮技術(shù),降低了數(shù)據(jù)的冗余度,上傳速度加快,提高了病害圖像診斷的效率。
在手機(jī)端利用圖像壓縮技術(shù),結(jié)合服務(wù)端的圖像識(shí)別處理技術(shù),研發(fā)了基于Android平臺(tái)的水稻病害智能診斷系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了手機(jī)端可隨時(shí)隨地采集、壓縮、上傳病害圖像,進(jìn)行遠(yuǎn)程病害智能診斷,可為種植人員或技術(shù)人員在不受時(shí)域、空間等限制情況下提供準(zhǔn)確、及時(shí)的病害診斷信息和相應(yīng)的防治方法,有助于合理用藥,提高糧食產(chǎn)量和經(jīng)濟(jì)收入。由于該系統(tǒng)尚處于應(yīng)用初級(jí)階段,對(duì)于部分問題(如對(duì)復(fù)雜背景的圖像準(zhǔn)確診斷率不高、圖像壓縮效果不理想等)在后續(xù)的研究中還需進(jìn)一步完善和提高。
[1] 張谷豐,羅崗,孫雪梅,等.基于Android的水稻害蟲診斷系統(tǒng)[J].應(yīng)用昆蟲學(xué)報(bào),2015,52(4):837-843.
[2] 鄭姣,劉立波.基于Android的水稻病害圖像識(shí)別系統(tǒng)設(shè)計(jì)與應(yīng)用[J].計(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í)與技術(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ù)在移動(dòng)終端上手寫信息的設(shè)計(jì)和實(shí)現(xiàn)[D].上海:上海交通大學(xué),2007.
[7] 張建華,冀榮華,袁雪,等.基于徑向基支持向量機(jī)的棉花蟲害識(shí)別[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2011,42(8):178-183.
[8] 林玲,伊力亞爾.自組織映射神經(jīng)網(wǎng)絡(luò)(SOM)在圖像分類中的應(yīng)用[J].伊犁師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2010(1):46-48.
[9] 徐義鑫,李鳳菊,王建春,等.基于OpenCV的Android手機(jī)植物葉片幾何參數(shù)測(cè)量系統(tǒng)[J].中國(guó)農(nóng)學(xué)通報(bào),2015,31(35):236-244.