曾莉
(重慶師范大學計算機與信息科學學院,重慶 401331)
紫色土是重慶市分布面積最廣的旱地土壤類型,在重慶市糧、油、果、菜等產(chǎn)業(yè)發(fā)展中發(fā)揮著重要作用。不同土屬類別的紫色土的保水保肥力不同,全鉀、全磷、有機質(zhì)以及速效養(yǎng)分的含量不同。所以,不同土屬類別的紫色土的宜種作物和施肥方案也不同。能正確識別土壤,使用土壤及實行配方施肥,對農(nóng)業(yè)的發(fā)展起著重要作用。
傳統(tǒng)的土壤分類方法需要依靠專業(yè)人士或?qū)iT的設(shè)備。具有土壤的顏色、質(zhì)地和結(jié)構(gòu)等知識的專業(yè)人士辨識土壤類別的實時性高,卻存在一定的主觀性,對土壤研究越深,準確率越高,只有長期從事土壤類別研究的專家能達到準確分類的要求。專門的儀器測量土壤中的理化性狀(全氮、全磷、有機質(zhì)、pH、物理粘粒含量、密度等)或光譜特征(反射光譜數(shù)據(jù)、近紅外光譜數(shù)據(jù)等),通過分析測量信息來進行土壤分類,其檢測行為需在實驗室進行且操作繁瑣耗時。
這些傳統(tǒng)的土壤分類方法不適合在田間工作的農(nóng)業(yè)人員使用。在田間工作的農(nóng)業(yè)人員需要的是一個易操作、實時性高的土壤分類解決方案。因此,學者們提出了運用圖像處理技術(shù)來處理土壤圖像,提取出土壤圖像有效特征來對土壤進行分類。K.Srunitha等人利用HSV顏色直方圖、低通濾波器和Gabor濾波器來提取土壤圖像的顏色特征和紋理特征,并用SVM對土壤圖像進行分類[1];Hement Kumar Sharma等人先通過濾波、銳化、去噪等操作增強圖像,然后利用小波變換、自相關(guān)性和HSV顏色直方圖提取圖像特征,用SVM對紅壤、黑土等大類土壤進行分類[2]?;谌斯ぴO(shè)計的紫色土圖像特征的描述能力有限,易導致紫色土圖像分類效果不佳。而卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)不需要人工設(shè)計紫色土圖像特征,是自主地從訓練樣本中學習特征,并且特征學習與分類器聯(lián)系緊密,很好地解決了特征提取和分類器選擇的難題,在圖像分類任務(wù)中,能取得很好的效果[3]。
針對現(xiàn)有的 AlexNet[4]、VGG[5]、GoogleNet[6]、ResNet[7]等卷積神經(jīng)網(wǎng)絡(luò)對紫色土圖像細粒度分類性能不夠好的問題,對ResNet50網(wǎng)絡(luò)結(jié)構(gòu)進行優(yōu)化,在最后一層卷積層后連接3層全連接層,加強模型的特征表達能力,用SeLU激活函數(shù)[8]替換ReLU激活函數(shù),解決模型的零梯度問題,增加有效負值特征信息的學習,同時引入Dropout[9],避免過擬合現(xiàn)象;再引入遷移學習[10]方法,用ImageNet數(shù)據(jù)集訓練好的ResNet50網(wǎng)絡(luò)參數(shù)初始化優(yōu)化后的ResNet50網(wǎng)絡(luò)的卷積層參數(shù),然后用紫色土圖像數(shù)據(jù)集訓練網(wǎng)絡(luò),微調(diào)網(wǎng)絡(luò)參數(shù),從而提高紫色土圖像小樣本數(shù)據(jù)集細粒度分類準確率。
為了得到更好的紫色土圖像細粒度分類效果,對ResNet50網(wǎng)絡(luò)結(jié)構(gòu)進行優(yōu)化,在ResNet50網(wǎng)絡(luò)結(jié)構(gòu)的最后一層卷積層后連接3層全連接層,引入Dropout,并用SeLU激活函數(shù)替換ReLU激活函數(shù),同時引入遷移學習方法。
(1)激勵函數(shù)
全連接層里的激活函數(shù)通常運用ReLU激活函數(shù),公式如下所示。
其中,當輸入特征大于零時,輸出等于輸入;當輸入特征小于零時,輸出為零。當用ReLU激活函數(shù)進行訓練時,將會丟棄對分類有用的負值特征。
針對上述ReLU的不足,SeLU激活函數(shù)[8]被用來解決有效負特征信息丟棄問題,公式如下所示。
其中,當輸入特征小于零時,得到一個較小斜率的函數(shù)。所以,SeLU激活函數(shù)保留了特征負值信息,增加了有效特征信息的學習。
(2)Dropout
當網(wǎng)絡(luò)較深而訓練樣本少時,訓練所得的網(wǎng)絡(luò)易產(chǎn)生過擬合現(xiàn)象。
Dropout是Hintion等人[9]提出的,將神經(jīng)網(wǎng)絡(luò)單元依照一定的概率暫時從網(wǎng)絡(luò)中丟棄,其連接權(quán)重為0,如圖1所示。
圖1 Dropout
在CNN的每次訓練中,Dropout是隨機丟棄神經(jīng)網(wǎng)絡(luò)單元的,即隨機忽略的隱含層節(jié)點都不相同,所以每次訓練的網(wǎng)絡(luò)結(jié)構(gòu)都是不相同的,避免了僅在特殊條件下的某些特征,有效地防止過擬合現(xiàn)象。
在沒有足夠多訓練樣本的情況下,可能出現(xiàn)訓練困難、易過擬合的問題。遷移學習可解決小樣本分類問題[11],ImageNet數(shù)據(jù)集上訓練好的模型,在小樣本分類任務(wù)中共享模型結(jié)構(gòu)和參數(shù),在提高準確率的同時降低配置要求并減少了訓練時間。
為了解決紫色土圖像數(shù)據(jù)集小、網(wǎng)絡(luò)優(yōu)化困難的問題,基于遷移學習理論,使用在ImageNet數(shù)據(jù)集上訓練好的 AlexNet、VGG16、Inception-v3、ResNet50 模型,將模型參數(shù)遷移至紫色土圖像分類模型中,即用ImageNet預訓練好的模型參數(shù)初始化紫色土圖像分類模型的卷積層參數(shù),然后用紫色土圖像數(shù)據(jù)集訓練紫色土圖像分類模型,微調(diào)紫色土圖像分類模型參數(shù),得到最終的紫色土圖像分類模型。
重慶市數(shù)字農(nóng)業(yè)服務(wù)工程中心提供了在重慶市璧山區(qū)自然場景下拍攝的紫色土心土圖像數(shù)據(jù)集,包含了暗紫泥、棕紫泥、灰棕紫泥、紅棕紫泥4種土屬類別,部分樣本如圖2所示。
(a)暗紫泥土屬
(b)紅棕紫泥土屬
圖2 紫色土圖像
針對紫色土圖像數(shù)據(jù)集小的問題,對紫色土圖像數(shù)據(jù)集進行擴充。紫色土圖像數(shù)據(jù)集中的圖像大多為4608×3456像素。表土受苔蘚、雜草等因素影響,顏色不穩(wěn)定,所以采用紫色土心土圖像來辨識紫色土土屬類別。在每張原始紫色土圖像中截取出2-10張224×224像素的僅包含心土部分的圖像,截取圖像不重疊,如圖3所示。紫色土圖像數(shù)據(jù)集擴充為970張。
圖3 截取心土部分
仿真實驗硬件環(huán)境為Intel Core i7-6700HQ CPU,Windows 10(64bit)操作系統(tǒng),軟件環(huán)境為 Python 3.6,開源深度學習框架TensorFlow 1.11。
實驗評價標準為紫色土圖像測試集分類準確率(Accuracy),表示如下。
其中,M為測試集樣本總數(shù),N為測試集中正確分類樣本數(shù)。
(1)基于人工設(shè)計特征的實驗
為了減少拍攝紫色土圖像時光照、遮擋等因素的差異對紫色土圖像分類的影響,選擇適合的顏色空間來描述顏色特征是必要的。
圖4 RGB顏色空間
圖5 HSV顏色空間
圖4為RGB顏色空間下的紫色土圖像,圖5為HSV顏色空間下的同一幅紫色土圖像。圖4(b)-(g)為在RGB顏色空間中,紫色土圖像的R、G、B分量圖及各分量對應(yīng)直方圖。圖5(b)-(g)為在HSV顏色空間中,紫色土圖像的H、S、V分量圖及各分量對應(yīng)直方圖。
從圖4(e)中可以看出,在RGB顏色空間中,紫色土圖像的R分量直方圖有兩個波峰,說明紫色土圖像的R分量的像素值明顯地分為了受遮擋和不受遮擋兩個部分;如圖4(b)所示,從紫色土圖像的R分量圖中也可以直觀地看出紫色土圖像的R分量受光照和遮擋影響大。同理,紫色土圖像的G分量和B分量受光照和遮擋的影響大。因此,不在RGB顏色空間下提取紫色土圖像的顏色特征。然而,在HSV顏色空間中,紫色土圖像的H分量直方圖只有一個波峰,說明紫色土圖像的H分量的像素值匯聚在一定范圍內(nèi),并沒有明顯地分為受遮擋和不受遮擋兩部分;如圖5(b)所示,從紫色土圖像的H分量圖中也可以直觀地看出紫色土圖像的H分量受光照和遮擋影響小。同理,紫色土圖像的S分量也受光照和遮擋影響小。因此,在HSV顏色空間中提取紫色土圖像的顏色特征。
實驗對不同的基于人工設(shè)計的圖像特征,分別用SVM分類器(rbf核函數(shù)),調(diào)節(jié)最佳參數(shù),分類準確率見表1。
表1 人工設(shè)計特征分類準確率
由表1可知,基于H分量直方圖的分類效果較好,準確率為70.8%;基于HS分量直方圖的分類效果最好,準確率為74.2%,提高了3.4%。分類效果的好壞很大程度上取決于人工設(shè)計特征的有效性。而基于人工設(shè)計的紫色土圖像特征存在一定的局限性,易導致紫色土圖像分類效果不佳。
(2)基于CNN的實驗
在 AlexNet、VGG16、Inception-v3、ResNet50 網(wǎng)絡(luò)的最后一層卷積層后連接3層全連接神經(jīng)網(wǎng)絡(luò)。為了避免模型過擬合,在全連接層加入選取閾值為0.5的Dropout層。然后使用在ImageNet數(shù)據(jù)集上預訓練好的 AlexNet、VGG16、Inception-v3、ResNet50 網(wǎng)絡(luò)參數(shù)初始化紫色土圖像分類模型的卷積層參數(shù),然后訓練模型,微調(diào)模型參數(shù),對紫色土圖像分類的準確率如表2所示。
表2 CNN分類準確率
結(jié)果表明,ResNet50網(wǎng)絡(luò)對紫色土圖像分類效果最好。ResNet用殘差連接結(jié)構(gòu)解決了深層網(wǎng)絡(luò)難以訓練的問題,增加網(wǎng)絡(luò)的深度和性能,能夠獲得包含更豐富且表達力更強的特征。
(3)基于ResNet50的實驗
在上述的ResNet50網(wǎng)絡(luò)的基礎(chǔ)上,用SeLU激活函數(shù)替換ReLU激活函數(shù),對紫色土圖像分類的準確率如表3所示。
表3 ResNet50分類準確率
實驗結(jié)果表明,SeLU激活函數(shù)學習了特征中的有效負值信息,提高了ResNet50網(wǎng)絡(luò)對紫色土圖像分類的準確率。
基于ResNet50的紫色土圖像分類研究,對ResNet50模型結(jié)構(gòu)進行優(yōu)化,在最后一層卷積層后連接3層全連接層,增強模型的特征表達能力,用SeLU激活函數(shù)替換ReLU激活函數(shù),增加有效負值特征信息的學習,并加入Dropout層,避免過擬合現(xiàn)象;引入遷移學習方法,用ImageNet數(shù)據(jù)集訓練好的ResNet50網(wǎng)絡(luò)參數(shù)初始化優(yōu)化后的ResNet50網(wǎng)絡(luò)的卷積層參數(shù),然后用紫色土圖像數(shù)據(jù)集訓練網(wǎng)絡(luò)模型,微調(diào)網(wǎng)絡(luò)參數(shù),得到最終的紫色土圖像分類模型,提高了紫色土圖像分類的準確率和效率。通過實驗與分析,基于ResNet50的紫色土圖像分類效果要優(yōu)于基于人工設(shè)計特征進行紫色土圖像分類的效果,提出的基于ResNet50的紫色土圖像分類模型為開發(fā)基于移動終端的紫色土土屬類別識別系統(tǒng)提供模型支持。