劉帥君,寇旭鵬,何 穎,莫雪峰
(云南農(nóng)業(yè)大學(xué)大數(shù)據(jù)學(xué)院/云南省信息技術(shù)發(fā)展中心,昆明 650000)
農(nóng)業(yè)作為中國的重要產(chǎn)業(yè),農(nóng)作物的產(chǎn)量和質(zhì)量影響著人民的日常生活。加大農(nóng)業(yè)發(fā)展,實現(xiàn)精細(xì)化,提高農(nóng)業(yè)智能化、科學(xué)化,是農(nóng)業(yè)管理的必經(jīng)之路,也是中國從傳統(tǒng)農(nóng)業(yè)大國走向現(xiàn)代化農(nóng)業(yè)大國的選擇。農(nóng)作物在生長過程中,仍然避免不了病害的威脅,這也是影響農(nóng)作物收成的原因。為此,實現(xiàn)對農(nóng)作物病理的快速分類和初步診斷,并針對病理及時做出有效的處理,對農(nóng)作物增收具有重大意義[1-3]。
在最初的農(nóng)作物生產(chǎn)管理過程中,只能靠相關(guān)領(lǐng)域的專家來到田間進行檢查,才能做出判斷,查清病理原因,不僅耗費大量的人力和物力,而且需要具有相關(guān)領(lǐng)域知識的農(nóng)業(yè)從業(yè)者對農(nóng)作物進行監(jiān)控。隨著計算機圖像識別技術(shù)的飛速發(fā)展,傳統(tǒng)機器學(xué)習(xí)方法在病理識別上表現(xiàn)出較大的優(yōu)勢,以提取病理圖像的色澤、光譜、外形等特征為技術(shù)特點,例如隨機森林(Random forest,RF)、支持向量機(Support vector machine,SVM)算法等[4-7]。雖然傳統(tǒng)機器學(xué)習(xí)方法準(zhǔn)確率較高,但也存在一些技術(shù)難點,如需要人為手工設(shè)計特征,過程較復(fù)雜。
隨著計算能力提升、大數(shù)據(jù)時代的到來,使得深度學(xué)習(xí)算法在非結(jié)構(gòu)化數(shù)據(jù)上具有較大的應(yīng)用空間[8,9]。卷積神經(jīng)網(wǎng)絡(luò)(Convolution neural network)的快速發(fā)展進一步為深度學(xué)習(xí)在圖像識別領(lǐng)域的應(yīng)用提速。2012 年Alexnet 取得了Imagenet 圖像分類競賽的冠軍,是深度學(xué)習(xí)崛起的標(biāo)志[10,11]。隨后幾年 GoogleNet[12]、VGGNet[13]、ResNet[14]等算法提升了圖像分類的精度,并在多個領(lǐng)域成功應(yīng)用。農(nóng)作物病理圖像分類在深度學(xué)習(xí)算法的幫助下同樣取得了較大的突破。而在中國農(nóng)作物病理識別領(lǐng)域,基于深度學(xué)習(xí)的農(nóng)作物病理分類在國內(nèi)目前還處于起步階段。劉闐宇等[15]采用Faster-RCNN 方法識別葡萄葉片病斑位置并進行分類識別,提出的模型對病理檢測的準(zhǔn)確率最高可達(dá)75.52%,但該方法由于需要生成大量的錨框使模型較大且速度較慢。曹鵬[16]針對樣本不平衡問題,吳國琴[17]通過遷移學(xué)習(xí)的方法,龍明盛[18]將卷積神經(jīng)網(wǎng)絡(luò)算法應(yīng)用于農(nóng)作物病蟲害識別中,所提出模型準(zhǔn)確率均達(dá)85% 以上。但進行遷移學(xué)習(xí)的前提是有相似分布的類別數(shù)據(jù)集。
本研究提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的農(nóng)作物病理圖像分類算法,通過特征增強緩解數(shù)據(jù)不平衡[19]的問題,同時采用特征融合增強信息傳播,使模型在農(nóng)作物病理分類任務(wù)上的準(zhǔn)確性與魯棒性得到提升。
在農(nóng)作物病理分類任務(wù)中,從屬于同一類別的病理往往差異性較大,如番茄早疫病和晚疫病,二者存在較大的外觀差異但卻屬于同一類別,這會給分類器的判別增加一定的難度。此外,隨著網(wǎng)絡(luò)層數(shù)的加深,單一的圖像特征會丟失某些區(qū)域的信息,從而導(dǎo)致模型的分類性能變差。針對這一問題,研究使用多次卷積池化并增加BatchNorm 操作以及多尺度的特征融合機制獲得不同尺寸的特征來提高模型的表征能力[20]。如圖 1 所示,模型將第 10、11、12 層卷積操作提取到的特征歸一化后進行總體融合。利用不同尺度的特征信息,避免信息的丟失,從而進一步提升模型的魯棒性[21]。BatchNorm 層使模型加速收斂,并得到更高的性能。
農(nóng)作物病理的常見圖像朝向、亮度、角度均不同,這對農(nóng)作物病理分類識別造成了一定的困難。同時不同種類的同類病理以及同種作物的不同病理所包含的圖像數(shù)量不一致。由于部分種類圖像數(shù)量較少,而識別的效果取決于數(shù)據(jù)的多少,所以,為了使模型的泛化能力和魯棒性得到提高,模型對訓(xùn)練樣本進行了數(shù)據(jù)增強操作,包括隨機旋轉(zhuǎn)、水平翻轉(zhuǎn)、隨機裁剪等[22]。
模型采用Softmax 函數(shù)轉(zhuǎn)換分類器輸出標(biāo)準(zhǔn)概率分布的預(yù)測值[23]。它將多個神經(jīng)元的輸出縮放到(0,1)范圍內(nèi),再進行多分類任務(wù)。其中V代表一個數(shù)組,Vi表示V中的第i個元素。模型使用多分類Cross-Entropy(交叉熵)函數(shù)來度量與正確類別標(biāo)簽之間的損失。Softmax 函數(shù)如下。
Loss損失函數(shù)如下。
式中,x為模型預(yù)測的分類概率,x向量的第j維,即xj是輸入圖像預(yù)測為j類的概率,k為輸入圖像的真實類別索引。
試驗在16.04.6 LTS 系統(tǒng)下,利用Python 語言,Keras深度學(xué)習(xí)框架完成。硬件環(huán)境為Intel(R)Xeon(R)CPU E5-2689 的處理器,顯卡為Nvidia Geforce RTX 2080Ti。模型采用帶動量的隨機梯度下降法進行優(yōu)化,具體的模型參數(shù)設(shè)置如表1 所示。
表1 模型參數(shù)設(shè)置
采用2020 年10 月Kaggle 公開植物病理數(shù)據(jù)集Plant Diagnosis Data,該數(shù)據(jù)集已全部標(biāo)注類別,包括胡椒、土豆、番茄共3 個大類別,每個大類下又包含若干子類別,合計15 個小類別,共計20 639 張圖片。具體數(shù)據(jù)集情況如表2 所示。試驗采用8∶2 的比例劃分?jǐn)?shù)據(jù)集。8 份用作訓(xùn)練數(shù)據(jù),其余2 份用作測試數(shù)據(jù)。數(shù)據(jù)圖片如圖2 所示。
表2 Plant Diagnosis Data 數(shù)據(jù)集
使用圖像分類任務(wù)中常用的評價指標(biāo):精確率(Precision)、召回率(Recall)和準(zhǔn)確率(Accuracy)。表3 是通過混淆矩陣(Confusion Matrix)來說明分類任務(wù)。TP(True Positive)表示將正類預(yù)測為正類,模型實際預(yù)測的樣本正類數(shù)量。FN(False Negative)表示將正類預(yù)測為負(fù)類,模型實際預(yù)測的樣本負(fù)類數(shù)量。FP(False Positive)表示將負(fù)類預(yù)測為正類,模型實際預(yù)測的樣本正類數(shù)量。TN(True Negative)表示將負(fù)類預(yù)測為負(fù)類,模型實際預(yù)測的樣本負(fù)類數(shù)量。
表3 分類混淆矩陣說明
召回率的定義:真正正確的占所有實際為正的比例。其計算公式如下。
精確率的定義:真正正確的占所有預(yù)測為正的比例。其計算公式如下。
研究中的算法是在深度學(xué)習(xí)框架TensorFlow、Keras 平臺實現(xiàn),用Python 語言進行編程。在模型數(shù)據(jù)輸入階段,對圖像數(shù)據(jù)進行了數(shù)據(jù)增強,包括水平翻轉(zhuǎn)、隨即縮放、亮度增強等。同時在輸入時將圖像統(tǒng)一縮放到256×256 大小使其符合模型網(wǎng)絡(luò)要求。試驗在農(nóng)作物病理各類別識別率、精確率、召回率以及迭代次數(shù)對識別率的影響做了詳細(xì)研究。
2.4.1 不同模型的效果對比 研究提出的框架使用Plant Diagnose Data 集中80%的數(shù)據(jù)進行訓(xùn)練,然后再使用20%的數(shù)據(jù)進行測試。為了進一步驗證本研究提出模型的有效性與優(yōu)越性,在測試集中與目前已有的主流框架模型進行對比。其中,VGG16 和VGG19 均為經(jīng)典VGG 模型結(jié)構(gòu),只是網(wǎng)絡(luò)深度不一樣。更深的網(wǎng)絡(luò)能夠提取更深層抽象的信息,但也會造成大量抽取信息的丟失。由表4 可知,本研究提出的框架相比目前幾種較為流行的方法,得到了最高的分類準(zhǔn)確率(94.92%)、最高的精確率(95.34%)以及最高的召回率(94.43%),且支持端到端的病理圖像分類,不需要進行其余操作。而AlexNet、VGG16 和 VGG19 模型的分類準(zhǔn)確率分別是88.23%、86.67%、87.04%。表明提出的農(nóng)作物病理分類網(wǎng)絡(luò)在準(zhǔn)確率、精確率、召回率上均優(yōu)于其他對比模型,能有效完成分類任務(wù)。
表4 不同模型效果對比 (單位:%)
2.4.2 不同迭代次數(shù)的影響 圖3 為MFCPNet 算法在Plant Diagnose Data 上的效果曲線。在保證其他參數(shù)不變的情況下,將迭代周期設(shè)置為20 次。圖3清楚地顯示了隨樣本迭代次數(shù)增長各項指標(biāo)的變化趨勢。橫軸表示迭代次數(shù),而縱軸表示準(zhǔn)確率、Pre?cision、Recall、Loss 值。隨著迭代次數(shù)的增加,Loss值在逐漸下降,其他三項評價標(biāo)準(zhǔn)在逐漸上升并趨于平穩(wěn)。由于顯存限制,模型Batchsize 較小,在模型訓(xùn)練過程中反向傳播方向不明確,因此,曲線有一定幅度的振蕩。MFCPNet 算法在不同分辨率、不同類型的農(nóng)作物病理數(shù)據(jù)集上都達(dá)到了最佳效果,證明模型具有較高的魯棒性和泛化性。隨著迭代次數(shù)的増加,模型的整體識別準(zhǔn)確率呈增加的趨勢,在迭代10 次后,模型的準(zhǔn)確率己經(jīng)達(dá)到90.2%。結(jié)合圖3 所示曲線及各項評價指標(biāo)證明該模型有效。
為了解決傳統(tǒng)機器學(xué)習(xí)算法在病理識別上存在的準(zhǔn)確率偏低、特征工程構(gòu)建復(fù)雜的問題,通過深度學(xué)習(xí)構(gòu)建了一種基于卷積神經(jīng)網(wǎng)絡(luò)算法的農(nóng)作物病理識別模型MFCPNet。該網(wǎng)絡(luò)通過設(shè)計神經(jīng)網(wǎng)絡(luò)的卷積結(jié)構(gòu)提取圖像的特征后,對全連接層使用BP算法進行訓(xùn)練,不斷進行優(yōu)化,從而得到最優(yōu)權(quán)重參數(shù),最終病理圖像的準(zhǔn)確識別得以實現(xiàn)。所提出的模型對病理圖像特征具有較強的表征能力,在Plant Diagnosis Data 取得了94.92%的準(zhǔn)確率,相較于現(xiàn)有的VGG16 算法提升了8.25 個百分點,能夠滿足實際的應(yīng)用需求,具有良好的應(yīng)用前景。