黃麗韶
(湖南科技學(xué)院,湖南 永州 425199)
永州之野、橘香世界。近年來,永州市柑橘掛果面積為115.04萬畝(約766.93 km2),年產(chǎn)量82.05萬t[1]。柑橘業(yè)在永州農(nóng)村產(chǎn)業(yè)結(jié)構(gòu)調(diào)整、農(nóng)民脫貧致富、城鄉(xiāng)人民就業(yè)和生態(tài)環(huán)境改善中發(fā)揮了重要作用。潰瘍病是柑橘的主要細(xì)菌性病害,類似于非典,是一種能隨空氣和水傳播的毀滅性病害。有關(guān)學(xué)者認(rèn)為,潰瘍病對(duì)柑橘產(chǎn)業(yè)的影響已達(dá)到基本等同于“致死性”和“毀滅性”的程度[2]。利用計(jì)算機(jī)自動(dòng)識(shí)別病害是全世界都在研究的問題,可以顯著節(jié)省成本,并可以防止由于人類自身的生物機(jī)能限制而產(chǎn)生的判斷錯(cuò)誤。
圖像識(shí)別是用計(jì)算機(jī)來模擬生物宏觀視覺功能的科學(xué)與技術(shù)。從20世紀(jì)70年代開始,美國研發(fā)了大豆病害診斷助手、果園管理及害蟲防治系統(tǒng)、棉花管理專家系統(tǒng),日本千葉大學(xué)開發(fā)了番茄病害診斷專家系統(tǒng)[3]。我國在國家自然科學(xué)基金、國家科技攻關(guān)的資助和許多部門的支持下,研發(fā)了柑橘園藝專家系統(tǒng)及玉米低溫冷害專家系統(tǒng)等。美國佛羅里達(dá)大學(xué)有學(xué)者利用柑橘葉片圖像開展病害自動(dòng)識(shí)別相關(guān)研究工作。我國有學(xué)者在作物病蟲圖像特征提取、測(cè)量及種類自動(dòng)識(shí)別研究中,對(duì)昆蟲圖像的分割和邊緣檢測(cè)算法進(jìn)行研究。也有學(xué)者根據(jù)棉葉的孔洞及葉片邊緣殘缺來測(cè)定棉花受蟲害程度。還有學(xué)者針對(duì)植物病害彩色紋理圖像的特點(diǎn),提出利用色度矩提取特征向量等進(jìn)行病害識(shí)別的方法。
本設(shè)計(jì)主要分為文件系統(tǒng)與代碼兩部分。文件系統(tǒng)主要由圖像與模型兩大文件組成。圖像文件,顧名思義就是存放圖像的文件:由原始圖像(即還沒有處理的、初始的圖像)、處理后圖像(即經(jīng)過一系列操作處理后的圖像)、測(cè)試集圖像(由原始圖像組成,都未經(jīng)預(yù)處理)。代碼部分主要由預(yù)處理代碼、卷積神經(jīng)網(wǎng)絡(luò)代碼、測(cè)試代碼3個(gè)部分組成。
圖像標(biāo)準(zhǔn)化功能是對(duì)原始數(shù)據(jù)的格式化處理,主要考慮圖像的像素大小、圖像的清晰度等以及圖像中的柑橘是否有潰瘍病的病癥,以避免開始就對(duì)結(jié)果造成影響。此外,還應(yīng)考慮數(shù)據(jù)是否完整。所以在保證圖像高度為208的情況下,圖像比例縮減。
本功能主要采用Python中Os模塊、PIL模塊以及Opcv2模塊進(jìn)行實(shí)驗(yàn)。
首先獲取原始圖像集,對(duì)原始圖像進(jìn)行確認(rèn)并分類(即柑橘是否有潰瘍病的病癥);分類圖像后,定義標(biāo)準(zhǔn)像素,再將有潰瘍病病癥的柑橘進(jìn)行標(biāo)準(zhǔn)化處理;利用Os模塊創(chuàng)建新文件夾,將處理后的圖像另存于新文件夾中,以便后續(xù)處理。
預(yù)處理功能主要是對(duì)圖像進(jìn)行預(yù)處理,主要采用Python中的Opcv2模塊、Numpy模塊、Matplotlib模塊、PIL模塊進(jìn)行處理。
3.3.1 灰度化處理功能
首先,獲得圖像每個(gè)點(diǎn)的像素值;其次,采用灰度加權(quán)平均算法(按0.3R+0.59G+0.11B的比例)進(jìn)行計(jì)算;最后,將灰度加權(quán)平均算法所算得的值賦予圖像每個(gè)像素點(diǎn)。
3.3.2 二值化處理
首先調(diào)用灰度化后的圖像,其次采用最小誤差的全局閾值法進(jìn)行二值化,在多次實(shí)驗(yàn)中(使用BINARY、BINARY_INV、TRUNC、TOZERO、TOZERO_INV)等方法,發(fā)現(xiàn)采用THRESH_TOZERO_INV方法最好。
ret,thresh=cv2.threshold(GrayImage,127,255,cv2.THRESH_TOZERO_INV)
3.3.3 高斯濾波法去噪處理
高斯濾波就是對(duì)整幅圖像進(jìn)行加權(quán)平均的過程,每一個(gè)像素點(diǎn)的值,都由其本身和鄰域內(nèi)的其他像素值經(jīng)過加權(quán)平均后得到。高斯濾波的具體操作:用一個(gè)模板(或稱卷積、掩模)掃描圖像中的每一個(gè)像素,用模板確定的鄰域內(nèi)像素的加權(quán)平均灰度值替代模板中心像素點(diǎn)的值用。高斯平滑濾波器對(duì)于抑制服從正態(tài)分布的噪聲非常有效。先求卷積核,再進(jìn)行高斯濾波即可。
3.3.4 Tensorflow卷積神經(jīng)網(wǎng)絡(luò)構(gòu)造模型
本設(shè)計(jì)中的Tensorflow卷積神經(jīng)網(wǎng)絡(luò)一共由5層組成,前兩層由卷積層與池化層構(gòu)成。
中間兩層是連接層,最后一層為輸出層。卷積核定義為3×3,共16個(gè)。每隔5 000步取一次模型。
在卷積層中,首先定義了16個(gè)3×3的卷積核。首先進(jìn)行計(jì)算標(biāo)準(zhǔn)差,其次通過tf.get_variable函數(shù)創(chuàng)建出新的Tensorflow變量,再次進(jìn)行偏差計(jì)算,最后加上激活函數(shù)進(jìn)行非線性化處理。當(dāng)然,這些操作都在定義的conv1的命名空間內(nèi)執(zhí)行。
在池化層中,首先需要定義的是池化窗口,其中,height=weight=池化窗口的步長(zhǎng)=卷積核移動(dòng)距離+1。最重要的是,需先規(guī)范化、再池化。規(guī)范化也就是特征縮放,局部需要響應(yīng)歸一化。
在連接層中,首先把卷積過的多維tensor拉平成二維的張量(就是矩陣)。其次連接神經(jīng)元,計(jì)算標(biāo)準(zhǔn)差。最后矩陣相乘再加上標(biāo)準(zhǔn)差。
在整個(gè)訓(xùn)練過程中,因?yàn)椴捎胋atch訓(xùn)練法,所以需要先定義隊(duì)列來存放。
測(cè)試功能也是本設(shè)計(jì)最后的功能,是對(duì)前面操作的檢驗(yàn),雖然不難,但結(jié)果的好壞直接影響整個(gè)設(shè)計(jì)的好壞。在整個(gè)測(cè)試功能的實(shí)現(xiàn)過程中,因?yàn)橹豢紤]圖像中的柑橘等是否有被潰瘍病傷害過的痕跡,所以只考慮兩種結(jié)果,有或者無。提前定義了一個(gè)類,將測(cè)試集中的圖像在進(jìn)行測(cè)試前,先進(jìn)行標(biāo)準(zhǔn)化處理,依然是208×208的像素。
標(biāo)準(zhǔn)化模塊主要定義圖像的模式與大小,即所有圖像為RGB(Red、Green、Blue)模式,大小可自定義,主要是為了后續(xù)操作。
原先每張圖的像素各不相同,本研究將標(biāo)準(zhǔn)像素定義為853×640,所以每張圖經(jīng)過此模塊后,像素改變?yōu)?53×640,當(dāng)然,一些圖像的模式也改變成了RGB模式。在此設(shè)計(jì)中,并沒有考慮水平、垂直分辨率等因素對(duì)后續(xù)實(shí)驗(yàn)的影響。所以,并沒有改變圖像水平、垂直分辨率等。
預(yù)處理主要由3個(gè)部分組成:灰度化、二值化、濾波(其中還包含歸一化等操作)?;叶然僮鲝娜庋劭梢钥闯鲈瓐D像變灰,相對(duì)來說,還是比較亮的。因?yàn)樵瓐D像綠色部分相對(duì)來說較多,而顏色對(duì)本設(shè)計(jì)來說比較重要,是重要的識(shí)別依據(jù)。所以使用了灰度加權(quán)平均算法,使用了0.59的Green,因此灰度化后的圖像,會(huì)比選用平均算法等算法處理的圖像,亮一些??傮w來說還是可以的。
二值化操作,來源于本研究在灰度化后的圖像。在作二值化處理時(shí),前期并不知道何種參數(shù)對(duì)后面操作更好,所以做了最小誤差全局閾值的所有參數(shù)處理,在后續(xù)的操作中,發(fā)現(xiàn)最后一種(即TOZERO_INV)參數(shù)作處理,對(duì)本設(shè)計(jì)后面的操作更有利。
另外,可以聽出一部分椒鹽噪音,因此,在后面的濾波操作中選取了高斯濾波方式。
高斯濾波,有一部分為原圖像(即二值化之后的圖像),有一部分為使用高斯濾波之后的圖像。因此可以看出,圖像中的椒鹽噪音減少了。之所以選取高斯濾波方法,是因?yàn)槎祷蟮膱D像出現(xiàn)了大量椒鹽噪音,而本操作就是為了減少這些噪音對(duì)后續(xù)操作的影響,提高本設(shè)計(jì)的準(zhǔn)確率。
建模模塊也是本設(shè)計(jì)最重要的模塊之一。模型的好壞直接決定了本設(shè)計(jì)的成功與否。因本設(shè)計(jì)采取每5 000步取一次模型,所以本設(shè)計(jì)一共得到3個(gè)模型。這3個(gè)模型也是前面所有操作得到的最終結(jié)果。
測(cè)試模塊的作用就是將訓(xùn)練集與測(cè)試集導(dǎo)入模型中,驗(yàn)證此模型是否可用(即驗(yàn)證此設(shè)計(jì)是否符合預(yù)期)。此模塊的結(jié)果在下面作出詳細(xì)解釋。
本設(shè)計(jì)采用訓(xùn)練集與測(cè)試集分開測(cè)試。
實(shí)驗(yàn)來源于測(cè)試集,之所以選取,是因?yàn)樵搶?shí)驗(yàn)對(duì)模型的要求極高,因影響因素過多,很影響準(zhǔn)確率。但識(shí)別該實(shí)驗(yàn)沒有柑橘潰瘍病病癥的可能性依然超過72.00%。
實(shí)驗(yàn)依然來自于測(cè)試集,并沒有柑橘潰瘍病的病癥,可能性在99.96%以上,效果是比較好的。
實(shí)驗(yàn)來源于訓(xùn)練集,模型認(rèn)為該實(shí)驗(yàn)沒有柑橘潰瘍病的病癥的可能性為99.99%。相對(duì)來說,準(zhǔn)確率已經(jīng)很高了。
根據(jù)最終結(jié)果的測(cè)試,發(fā)現(xiàn)最低的可能性為76.00%,最高的可能性高達(dá)99.99%。所以,本設(shè)計(jì)也符合最開始的預(yù)期。本設(shè)計(jì)的可改進(jìn)之處有:(1)開發(fā)可視化界面,讓用戶用起來更加方便。(2)開發(fā)成App軟件,通過讀取相冊(cè)內(nèi)數(shù)據(jù),對(duì)圖像進(jìn)行識(shí)別。(3)也可開發(fā)成電腦軟件,通過與攝像頭的合作,將柑橘園的柑橘樹進(jìn)行實(shí)時(shí)監(jiān)控,以進(jìn)行實(shí)時(shí)提醒。(4)添加網(wǎng)絡(luò)功能,增加網(wǎng)上識(shí)別功能,如有需要,可直接在網(wǎng)頁上進(jìn)行識(shí)別。