湯銀銀 李明月 劉志宏
(安徽農(nóng)業(yè)大學(xué)信息與計(jì)算機(jī)學(xué)院,安徽 合肥 230036)
我國是一個(gè)糧食大國,水稻作為主要的糧食作物,其包含多種品種。目前,水稻品種的檢測主要由化學(xué)方法和人工操作完成,化學(xué)方法成本昂貴,人工操作任務(wù)較為繁重,檢測效率不高,準(zhǔn)確性較差。由于傳統(tǒng)的化學(xué)與人工識別水稻品種的方法費(fèi)時(shí)費(fèi)力,因此發(fā)展一種水稻品種的識別技術(shù)具有重要意義。目前深度學(xué)習(xí)技術(shù)廣泛應(yīng)用于各個(gè)領(lǐng)域,并取得了大量的研究成果。例如沈萍等人 中通過針對ImageNet數(shù)據(jù)庫中的80類花卉圖像做訓(xùn)練和識別,在實(shí)驗(yàn)過程中與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)做比較,表明深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)能夠提升花卉識別10% 以上的識別率。葉浪分析CNN模型能夠快速準(zhǔn)確進(jìn)行人面部表情識別的原理,由于CNN的卷積層和池化層起到了濾波作用,將輸入的圖片進(jìn)行特征提取并進(jìn)行壓縮,提高運(yùn)算速度,實(shí)驗(yàn)證明CNN 模型在進(jìn)行人面部表情識別過程中的準(zhǔn)確度最高、速度最快。
本文擬采集5種水稻品種圖片,先對圖片進(jìn)行預(yù)處理,分為訓(xùn)練集和測試集,再導(dǎo)入已經(jīng)構(gòu)建好的卷積神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練,利用Softmax分類器識別水稻品種,以便能夠自動(dòng)快速的識別水稻品種。
實(shí)驗(yàn)的水稻樣品來自安徽農(nóng)業(yè)大學(xué)農(nóng)學(xué)院作物育種系5種水稻品種‘豐兩優(yōu)9’、‘S13’、‘邵糯9714’、‘皖稻187’、‘皖墾’。每種水稻拍攝200張圖像可使用,按照訓(xùn)練集和測試集4:1的比例,將每種水稻的160張圖像作為訓(xùn)練集,剩下的40張圖像作為測試集,最后形成的訓(xùn)練集數(shù)據(jù)800張,測試集200張。通常情況下,機(jī)器學(xué)習(xí)模型一般需要大小相同的圖像作為輸入,本文的做法是將所有的圖像都剪裁為224*224的大小作為機(jī)器學(xué)習(xí)模型的輸入樣本。
圖1 水稻品種
利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)對水稻品種進(jìn)行識別,對輸入的圖像進(jìn)行參數(shù)的提取,根據(jù)圖像的參數(shù)特征自動(dòng)辨別水稻的品種,并告知用戶該水稻是何品種。為增加CNN模型的魯棒性,需要對圖像進(jìn)行預(yù)處理。利用shuffle,轉(zhuǎn)置、隨機(jī)打亂數(shù)據(jù),同時(shí)為了方便網(wǎng)絡(luò)的訓(xùn)練,對輸入數(shù)據(jù)進(jìn)行batch處理。首先使用tf.image.decode_jpeg()函數(shù)將圖像解碼,從而得到相同類型的圖像。再使用tf.image.resize_image_with_crop_or_pad()函數(shù)對圖像進(jìn)行旋轉(zhuǎn)、縮放、裁剪、歸一化等操作,讓計(jì)算出的模型更健壯。對預(yù)處理的數(shù)據(jù)進(jìn)行可視化,查看預(yù)處理的效果如圖2所示。
圖2 水稻圖像預(yù)處理
2.1.1 輸入層。卷積神經(jīng)網(wǎng)絡(luò)的輸入層可以處理多維數(shù)據(jù),常見地,一維卷積神經(jīng)網(wǎng)絡(luò)的輸入層接收一維或二維數(shù)組,其中一維數(shù)組通常為時(shí)間或頻譜采樣;二維數(shù)組可能包含多個(gè)通道;二維卷積神經(jīng)網(wǎng)絡(luò)的輸入層接收二維或三維數(shù)組;三維卷積神經(jīng)網(wǎng)絡(luò)的輸入層接收四維數(shù)組。與其它神經(jīng)網(wǎng)絡(luò)算法類似,由于使用梯度下降進(jìn)行學(xué)習(xí),卷積神經(jīng)網(wǎng)絡(luò)的輸入特征需要進(jìn)行標(biāo)準(zhǔn)化處理。具體地,在將學(xué)習(xí)數(shù)據(jù)輸入卷積神經(jīng)網(wǎng)絡(luò)前,需在通道或時(shí)間/頻率維對輸入數(shù)據(jù)進(jìn)行歸一化,輸入特征的標(biāo)準(zhǔn)化有利于提升算法的運(yùn)行效率和學(xué)習(xí)表現(xiàn)。
2.1.2 隱含層。卷積神經(jīng)網(wǎng)絡(luò)的隱含層包含卷積層、池化層和全連接層3類常見構(gòu)筑,在一些更為現(xiàn)代的算法中可能有Inception模塊、殘差塊(residual block)等復(fù)雜構(gòu)筑。卷積層中的卷積核包含權(quán)重系數(shù),而池化層不包含權(quán)重系數(shù),因此在文獻(xiàn)中,池化層可能不被認(rèn)為是獨(dú)立的層。
2.1.3 輸出層。卷積神經(jīng)網(wǎng)絡(luò)中輸出層的上游通常是全連接層,因此其結(jié)構(gòu)和工作原理與傳統(tǒng)前饋神經(jīng)網(wǎng)絡(luò)中的輸出層相同。對于圖像分類問題,輸出層使用邏輯函數(shù)或歸一化指數(shù)函數(shù)(softmax function)輸出分類標(biāo)簽。在物體識別(object detection)問題中,輸出層可設(shè)計(jì)為輸出物體的中心坐標(biāo)、大小和分類。在圖像語義分割中,輸出層直接輸出每個(gè)像素的分類結(jié)果。
由于本實(shí)驗(yàn)采集的數(shù)據(jù)集較少,不適用于傳統(tǒng)的GoogLeNet 和 ResNet 模型進(jìn)行訓(xùn)練,通過對參數(shù)的不斷調(diào)整,最終構(gòu)建了一個(gè)9層的卷積神經(jīng)網(wǎng)絡(luò),3層卷積和3層池化,2層全連接層,最后一層Softmax層做全分類,最終分類輸出5類。下圖中,conv是卷積層,每次卷積層都有一個(gè)池化層pool,一共進(jìn)行3次這樣的卷積池化操作后,最終得到了許多小的特征圖。傳入到全連接層layer1之后,將之前poll層的輸出reshape成一行,激活函數(shù)relu( )。到全連接層layer2后,激活函數(shù)relu( ),染后將這些特征圖全部連接在一起,最后輸入到Softmax層進(jìn)行最終的分類操作,計(jì)算每一類的得分,在這里是5類不同品種的水稻,所以這個(gè)層輸出的是5個(gè)得分。具體模型結(jié)構(gòu)如圖3。
圖 3 卷積神經(jīng)網(wǎng)絡(luò)模型
輸入層的輸入圖像統(tǒng)一為224*224大小,卷積結(jié)構(gòu)是9層的卷積神經(jīng)網(wǎng)絡(luò),3層卷積和3層池化,2層全連接層,最后一層Softmax層做全分類。本實(shí)驗(yàn)所采用的卷積層參數(shù)包括卷積核大小均為3*3,步長為2,SAME填充,進(jìn)行足夠的填充來保持輸出和輸入的特征圖尺寸相同。同時(shí)采用最大池化,relu( )激活函數(shù)。相同填充下特征圖的尺寸不會(huì)縮減但輸入像素中靠近邊界的部分相比于中間部分對于特征圖的影響更小。
在選擇學(xué)習(xí)率、迭代次數(shù)這些模型外參數(shù)時(shí),采用多折交叉驗(yàn)證法,將訓(xùn)練集再拆分為實(shí)際訓(xùn)練集與交叉驗(yàn)證集。通過觀察各類參數(shù)的不同效果,經(jīng)過多次嘗試,利用交叉驗(yàn)證,最終確定了0.0001初始學(xué)習(xí)率。初始學(xué)習(xí)率影響的是每一次反向傳播時(shí),對參數(shù)優(yōu)化的調(diào)整幅度,需要根據(jù)特定任務(wù)確定合適的學(xué)習(xí)率,若幅度過大,則有可能矯枉過正;若幅度過小,則可能導(dǎo)致每次進(jìn)步很小,優(yōu)化到最優(yōu)結(jié)果的迭代次數(shù)過大,耗時(shí)過長。
為提高水稻品種訓(xùn)練的準(zhǔn)確率,降低損失值,本實(shí)驗(yàn)將選取80%的圖像用于訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)模型,共進(jìn)行3000步訓(xùn)練,同時(shí)為減少訓(xùn)練時(shí)長,resize圖像為56*56大小,最終發(fā)現(xiàn)實(shí)驗(yàn)步數(shù)達(dá)到2900左右時(shí),訓(xùn)練的準(zhǔn)確率大概穩(wěn)定在100%.
將剩下20%未進(jìn)行訓(xùn)練的圖像用于測試,可得到較為準(zhǔn)確的識別結(jié)果,實(shí)驗(yàn)結(jié)果表明,在不需要過多的照片的預(yù)處理的前提下,使用基于深度卷積神經(jīng)網(wǎng)絡(luò)的圖像識別能夠準(zhǔn)確的識別出水稻品種并且已經(jīng)具有非常高的準(zhǔn)確率,要遠(yuǎn)遠(yuǎn)優(yōu)于傳統(tǒng)的識別方式。
本文通過深度卷積神經(jīng)網(wǎng)絡(luò)提取水稻不同品種的特征,采集5種水稻品種作為研究樣本,每種水稻品種200粒,構(gòu)建了9層的卷積神經(jīng)網(wǎng)絡(luò)模型自動(dòng)訓(xùn)練水稻樣本,利用Softmax分類器識別水稻品種,通過不斷調(diào)整模型參數(shù),提高水稻品種識別的準(zhǔn)確率,可以大大減少人力成本,具有廣泛的應(yīng)用性。卷積神經(jīng)網(wǎng)絡(luò)利用圖像直接作為網(wǎng)絡(luò)的輸入避免了傳統(tǒng)識別算法中復(fù)雜的特征提取和數(shù)據(jù)重構(gòu)的過程,是一個(gè)特別高效高識別率的深度學(xué)習(xí)算法。由于卷積神經(jīng)網(wǎng)絡(luò)復(fù)雜,訓(xùn)練耗時(shí)長,因此針對不同的數(shù)據(jù)集,要構(gòu)建最合適的網(wǎng)絡(luò)結(jié)構(gòu)才能取得最好的分類識別結(jié)果。同時(shí)水稻品種識別模型封裝為可調(diào)用的程序模塊,可實(shí)際應(yīng)用到web服務(wù)和移動(dòng)APP,通過云服務(wù)方式實(shí)現(xiàn)實(shí)時(shí)在線識別水稻品種,未來可探討搜集互聯(lián)網(wǎng)海量圖片作為訓(xùn)練集,實(shí)現(xiàn)模型的快速迭代和優(yōu)化,應(yīng)用前景極為廣泛。
農(nóng)村科學(xué)實(shí)驗(yàn)2021年7期