趙立新,侯發(fā)東,呂正超,朱慧超,丁筱玲
(1. 山東農業(yè)大學機械與電子工程學院,泰安 271018;2. 山東省園藝機械與裝備重點實驗室,泰安 271018)
棉花是世界上最主要的農作物之一,與民生息息相關。棉花的整個生長周期受到40 多種病蟲害的侵襲,嚴重影響其產(chǎn)量[1]。因此能快速準確的識別出棉花病害的種類并給予及時準確防治對于避免病害進一步擴散進而提高棉花產(chǎn)量至關重要。
隨著計算機視覺以及人工智能的發(fā)展,特別是海量數(shù)據(jù)、計算機運算能力和算法等加速了深度學習技術的發(fā)展,深度學習技術在圖像識別領域開始占據(jù)越來越重要的地位。而卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)作為深度學習技術的一種具有很強的自學習能力,通過對數(shù)據(jù)的抽象分析學到大量知識,從而快速準確實現(xiàn)分類,CNN 具有很強的適應能力和泛化能力,相比較全連接的傳統(tǒng)神經(jīng)網(wǎng)絡,卷積神經(jīng)網(wǎng)絡采用權值共享的方式減少了參數(shù)量,從而極大降低了計算量[2]。傳統(tǒng)圖像識別方法依賴先驗知識,需要對特征手工提取,然后進行分類,而卷積神經(jīng)網(wǎng)絡只需要把圖片數(shù)據(jù)輸入到網(wǎng)絡,網(wǎng)絡通過對卷積核的自學習就能達到分類效果。本研究采用的研究方法即為卷積神經(jīng)網(wǎng)絡。
近年來,智能識別技術逐漸開始用于農業(yè)領域。Barbedo[3]提出一種算法結合 HSV 顏色空間(Hue Saturation Value,HSV)的H 通道和Lab 顏色空間(Lab Color Space,Lab)的a 通道以區(qū)分植物葉片無癥狀組織和病害體征。王春雷等[4]提出一種基于遺傳算法和閾值濾噪的玉米根茬行圖像分割方法,準確分割出玉米根茬行。吳露露等[5]利用傳統(tǒng)圖像處理方法,對水稻圖像進行閾值分割等步驟,對葉片特征進行提取。李文勇等[6]提出一種基于顏色、紋理與形態(tài)無關特征結合并利用多類支持向量機分類器的多姿態(tài)害蟲分類方法。張善文和張傳雷[7]采用區(qū)域增長分割算法分割病害葉片病斑圖像,然后把病斑圖像重組為一維向量,利用局部判別映射算法對玉米病害進行識別。毛罕平等[8]提出基于模糊C 均值聚類的作物病害葉片圖像分割方法,能較好將病斑部分和正常部分分開,平均誤差小于5%。Li 等[9]利用半監(jiān)督學習算法對蔬菜病害進行預測,取得了支持向量機方法更好的效果。田有文等[10]利用計算機圖像處理技術和支持向量機識別方法研究了葡萄葉部病害的識別,試驗結果表明支持向量機識別方法比神經(jīng)網(wǎng)絡方法獲得了更好的識別效果。張建華等[11]提出一種基于粗糙集和BP 神經(jīng)網(wǎng)絡的棉花病害識別方法,粗糙集減少特征維數(shù),使BP 神經(jīng)網(wǎng)絡訓練時間縮短,達到92.72%的平均識別正確率。早期的識別分類方法識別率很低,需要對農作物病害圖像進行分割、邊緣檢測等預處理,然后手工特征提取,最后分類,費時費力,得到的分類準確率卻不高。
隨著人工智能時代的到來,深度學習技術的發(fā)展,特別是卷積神經(jīng)網(wǎng)絡的出現(xiàn),圖像識別技術得到了進一步發(fā)展。Kunihiko Fukushima[12]首先把生物神經(jīng)元識別物體具有旋轉不變性應用到卷積神經(jīng)網(wǎng)絡中。至此卷積神經(jīng)網(wǎng)絡技術開始快速發(fā)展,應用于手寫數(shù)字識別[13],準確率達到了99.77%,卷積神經(jīng)網(wǎng)已經(jīng)在各個領域得到廣泛應用,人臉識別、語音識別和行人檢測等[14-17]。卷積神經(jīng)網(wǎng)絡也開始應用在農作物病害識別,趙德安等[18]為適應復雜背景問題,構建了基于YOLO 深度卷積神經(jīng)網(wǎng)絡的機器人采摘蘋果定位。Oppenheim 等[19]使用卷積神經(jīng)網(wǎng)絡對馬鈴薯疾病進行了分類,該算法成功應用于農作物病害的識別,顯示了深度學習技術在農業(yè)任務中的潛力。黃雙萍等[20]提出基于深度卷積神經(jīng)網(wǎng)絡GoogLeNet模型的水稻穗瘟病檢測方法,在驗證集上最高準確率為92%。傅隆生等[21]提出一種基于LeNet 的卷積神經(jīng)網(wǎng)絡模型以對多簇獼猴桃果實進行圖像識別。
目前利用卷積神經(jīng)網(wǎng)絡研究棉花的有張建華等[22],研究了7 種棉花葉片類型(包括正常葉),采用改進VGG模型利用在ImageNet 數(shù)據(jù)集上訓練得到的預訓練模型,微調以適應棉花病蟲害數(shù)據(jù)集,比較了原始圖像像素對識別準確率的影響,由于ImageNet 數(shù)據(jù)集與本研究的植物病蟲害數(shù)據(jù)集相似程度不大,遷移學習的知識不能很好地適應于棉花病害數(shù)據(jù)集,存在域遷移問題,因此該試驗達到的最好的平均準確率為89.51%。本試驗以棉花的枯萎病、黃萎病、棉鈴疫病、褐斑病、角斑病、棉葉螨為試驗對象構造的數(shù)據(jù)集進行訓練,采用相似度較高的PlantVillage 數(shù)據(jù)集訓練得到預訓練模型,利用棉花病害數(shù)據(jù)集微調模型,取得了更好的效果。
本研究以棉花枯萎病、黃萎病、棉鈴疫病、褐斑病、角斑病、棉葉螨這6 種常見病蟲害為研究對象。因農業(yè)領域數(shù)據(jù)圖片較少不好獲取,各種病害發(fā)病與生態(tài)、氣候和棉花品種等諸多因素有關[23],因此試驗在山東農業(yè)大學試驗棉田近年采集的基礎上還通過網(wǎng)絡渠道獲取了部分數(shù)據(jù),圖片類別由相關專家確認。本試驗共采集原始圖像1 186 張,其中棉花枯萎病210 張,黃萎病190 張,棉鈴疫病183 張,褐斑病196 張,角斑病187 張,棉葉螨220 張。這6 類圖片被放在6 個不同的文件夾中,每個文件夾代表一個類別標簽。標簽0 為枯萎病,標簽1為黃萎病,標簽2 為棉鈴疫病,標簽3 為褐斑病,標簽4為角斑病,標簽5 棉葉螨。本研究還從PlantVillage 大數(shù)據(jù)集獲取了一些圖片,用于遷移學習獲得預訓練模型,玉米灰斑病1 642 張,葡萄葉枯病1 722 張,南瓜白粉病1 736 張,草莓蕉葉病1 774 張,馬鈴薯晚疫病1 939 張,蘋果黑腐病1 987 張,總共6 類10 800 張。采集的原始圖像以及PlantVillage 數(shù)據(jù)集圖像的分辨率大小不等,而本模型要求輸入固定維度,圖像的像素過多,包含過多的冗余信息,本試驗將圖片的的尺寸統(tǒng)一轉換為224×224×3 像素,然后才能輸入網(wǎng)絡進行訓練。圖1 為采集的棉花病蟲害圖像集,圖 2 是來自公共數(shù)據(jù)集PlantVillage 的玉米灰斑病、葡萄葉枯病、南瓜白粉病、草莓蕉葉病、馬鈴薯晚疫病和蘋果黑腐病圖片。
圖1 棉花病害樣本圖像 Fig. 1 Sample image of cotton disease
圖2 公共數(shù)據(jù)集PlantVillage 的樣本圖像 Fig. 2 Sample image of PlantVillage public dataset
棉花病蟲害數(shù)據(jù)集劃分為訓練數(shù)據(jù)集、驗證集與測試數(shù)據(jù)集,比例為6∶2∶2,而本研究從公共數(shù)據(jù)集PlantVillage獲得的圖片采用8∶2的比例來分割訓練數(shù)據(jù)集和測試數(shù)據(jù)集。
CNN 相比較全連接層(Fully-Connected Layer,F(xiàn))的神經(jīng)網(wǎng)絡新出現(xiàn)了卷積層(Convolution Layer,C)、激勵層(Relu Layer,R)、池化層(Pooling Layer,P),CNN的層一般連接順序是“Convolution-Relu-Pooling”,池化層有時會被省略,本試驗采用最大池化??傮w結構包括輸入層、卷積層、池化層、全連接層和輸出層,其中除輸出層其他層的激活函數(shù)都是線性整流單元(Rectified Linear Units,ReLU)即relu 函數(shù),輸出Softmax 層實現(xiàn)分類。圖3 為仿照AlexNet 模型設計的CNN 網(wǎng)絡結構。由于經(jīng)典的AlexNet 模型用于識別1 000 種分類,本試驗是6 分類問題,故采用Softmax 分類層有6 個神經(jīng)元,卷積核是4 維的其中表示卷積核尺寸, n4表示卷積核個數(shù),S 為步長(Stride),全連接n則表示該層神經(jīng)元個數(shù)。由于本試驗中,輸入圖片數(shù)據(jù)的尺寸為224×224×3,圖片輸入網(wǎng)絡,第1 個卷積層記為C1,其過濾器尺寸是11×11 像素,S 為4,過濾器個數(shù)為64,即(11×11×3×64/4);第1 個池化層記為P1,其大小為3×3像素,步長為2 即(3×3/2);第2 個卷積層記為C2,其卷積核尺寸為5×5 像素,S 為1,即(5×5×64×256/1),為避免卷積提取特征圖越來越小采用padding,即像素填充(補0 策略),在該層輸入像素矩陣周圍補2 個0,過濾器個數(shù)256;第2 個最大池化層記為P2,其尺寸2×2, S 為2 即(3×3/2);第3、4、5 個卷積層記為C3、C4、C5,它們的尺寸都是3×3,過濾器個數(shù)為256,即都為(3×3×256×256/1);接著是第3 個池化層記為P3,尺寸是3×3,S 為2;然后是2 個全連接層記為F6 和F7,神經(jīng)元個數(shù)依次是4 096、1 000;Softmax 分類層6 個神經(jīng)元。
圖3 模型結構圖 Fig. 3 Model structure diagram
試驗在山東農業(yè)大學高性能計算平臺上進行,平臺操作系統(tǒng)redhat6.9,提交tensorflow-gpu 作業(yè)腳本,其中指定隊列名稱為圖形處理器(Graphics Processing Unit,GPU),指定一個節(jié)點來進行該任務,加載軟件環(huán)境有gcc、cuda9.0 和python3.6.6。CPU 核心數(shù)32,內存128 GB,GPU 為NVIDIA Tesla k80。模型通過TensorFlow 框架調用keras 庫搭建。
深度學習模型可以劃分為訓練和預測2 個階段,訓練分為2 種策略,一種是在搭建的模型上從頭開始訓練,另一種是通過預訓練模型進行訓練,即遷移學習(Transfer Learning,TL)。遷移學習減少了構建深度學習模型所需的訓練數(shù)據(jù)、計算力,能很好解決小數(shù)據(jù)集容易在復雜網(wǎng)絡結構上的過擬合問題[24-25]。首先對PlantVillage 大數(shù)據(jù)集來獲得預訓練模型,然后用棉花病蟲害數(shù)據(jù)集基于預訓練模型進行遷移學習。
1.4.1 數(shù)據(jù)預處理
對試驗圖片預處理包括對圖片尺寸重定義、對樣本每個批次(使用訓練集中的一部分樣本對模型權重進行一次反向傳播的參數(shù)更新,這部分樣本稱為一批次,即batch)進行歸一化處理、圖片去均值化等。本試驗把圖片重定義為224×224×3,減少了像素值,去除了大量冗余信息,從而減少計算量。
對圖片進行去均值化是為了對圖像進行標準化,可以移除圖像的平均亮度值,具體操作為:對于給定的進行了尺寸重定義后的圖像,每個樣本的各像素值上減去整個訓練樣本的像素值平均值。在很多情況下對圖像的亮度不敏感,而更多地關注其內容,在本試驗中圖片分類任務中,圖像的整體亮度并不影響圖像中存在什么物體,這時對每個數(shù)據(jù)點移除像素的均值是有意義的。
對CNN 而言對數(shù)據(jù)歸一化是梯度下降所需要的,數(shù)據(jù)歸一化后也能防止梯度爆炸,以便加速網(wǎng)絡收斂,進一步縮減特征圖數(shù)目[26],現(xiàn)有的梯度下降的一些超參數(shù)是在歸一化之后的輸入數(shù)據(jù)范圍內搜索到的,試驗參考了經(jīng)典AlexNet 結構的一些超參數(shù),只有數(shù)值計算的范圍一致,才能達到相同的效果,本試驗采用批量歸一化方法,需對批次中的每個樣本圖像進行歸一化處理。對一個樣本的處理方法如式(1)和式(2)所示
式中ix 表示該樣本第i 個像素點的值;n 為該樣本像素點總數(shù);μ表示均值;σ 表示方差。歸一化方式如式(3)所示
1.4.2 識別模型中的優(yōu)化算法
1.2 節(jié)設計的網(wǎng)絡結構包括2 個全連接層,網(wǎng)絡結構的參數(shù)數(shù)量很大,相對比較小的數(shù)據(jù)集而言該網(wǎng)絡結構較復雜容易出現(xiàn)過擬合問題,因此加入L2 正則化和Dropout 優(yōu)化算法以避免過擬合。L2 正則化是由代價函數(shù)與正則化項相加來實現(xiàn)的。原始代價函數(shù)0J 由式(4)表示
式中w 表示權重;b 表示偏置;m 表示樣本數(shù)量;L 表示損失函數(shù);表示神經(jīng)元的實際輸出值, y(i)表示神經(jīng)元的期望輸出值。
L2 正則化后的代價函數(shù)J 由式(5)和式(6)表示
式中λ 是一個超參數(shù),即正則化參數(shù);l 表示全連接層層數(shù);k 表示每層的神經(jīng)元個數(shù);表示該層第j 表示神經(jīng)元權值的平方。權值更新過程由式(7)所示
由式(7)看出,只對權值w 進行了衰減,沒有偏置b 進行衰減,因為參數(shù)b 的數(shù)量相對于w 而言太少了,對整個網(wǎng)絡的影響很小,一般不對b 進行衰減。L2 正則化降低了網(wǎng)絡模型的復雜度,因此在一定程度上改善了模型的過擬合問題。2012 年由Ashiquzzaman 等[27]提出Dropout 優(yōu)化算法的基本原理,即在前向傳播中隨機失活一些神經(jīng)元,為每層設置一個概率數(shù)用以控制每層有多少神經(jīng)元應該被保留。如0.6 意味著該層神經(jīng)元有60%被保留,其余的40%神經(jīng)元失活不再發(fā)揮作用,概率為1.0則全部保留。值得注意的是,在反向傳播時必須失活和前向傳播相同的神經(jīng)元。
根據(jù)上述說明試驗在模型的全連接層F6 和全連接層F7 后都加了L2 正則化和Dropout 優(yōu)化算法以避免過擬合,分類層則只使用L2 正則化。
1.4.3 超參數(shù)的設計
為了使網(wǎng)絡訓練更好,本試驗的超參數(shù)根據(jù)參考文獻和在本研究數(shù)據(jù)集上進行的一系列試驗對超參數(shù)進行了統(tǒng)一化。一般來說按照首先對學習率,每個batch 中訓練樣本的數(shù)量(batch size),然后是其他參數(shù)的調參順序進行調參。對于學習率采用指數(shù)標尺選取0.001、0.01、0.1 和1 幾組學習率做試驗,最終學習率設置為0.001 最為合適。學習率是一個很重要的超參數(shù),它表示模型權重更新的速度,學習率設置太大代價函數(shù)波動太大,訓練結果不精確,太小則網(wǎng)絡收斂很慢,訓練時間會很長。每次試驗運行50 epochs,1 次epochs 即一個完整的數(shù)據(jù)集通過了神經(jīng)網(wǎng)絡一次且返回一次,在每個epochs 中所有訓練集圖片都被輸入到網(wǎng)絡一次,習慣上選擇batch size 為2 的次冪可以加快二進制的計算,試驗選擇batch size 為16、32、64、128 和256 分別做了比較發(fā)現(xiàn)batch size太小收斂太慢,太大則也容易使其泛化能力變差,最終batch size設置為128。模型訓練中使用了Adam優(yōu)化算法,該算法應用在非凸優(yōu)化問題中有計算高效、所需內存少、適應于非穩(wěn)態(tài)目標以及適合解決大規(guī)模數(shù)據(jù)和參數(shù)優(yōu)化問題等諸多優(yōu)勢,Adam 優(yōu)化算法超參數(shù)采用框架默認參數(shù)[28]。經(jīng)過交叉驗證,隱含節(jié)點Dropout 率等于0.5,L2正則化參數(shù)設置為0.000 5 的時候效果最好。
1.4.4 遷移學習訓練機制
首先使用PlantVillage 數(shù)據(jù)集加載進構建的網(wǎng)絡中,來獲得預訓練模型并保存模型,然后把原始棉花病蟲害數(shù)據(jù)集加載進網(wǎng)絡,微調以適應原始棉花病蟲害數(shù)據(jù)集,具體方法是:在保存的模型基礎上,采用凍結預訓練模型參數(shù)的方式,凍結該層即該層參數(shù)不參與訓練,則分別凍結①卷積層C1、C2、C3、C4、C5②卷積層C1、C2、C3、C4、C5 和全連接層F6,③卷積層C1、C2、C3、C4、C5 和全連接層F6、F7。圖4 為遷移學習訓練機制,圖中除全連接層F6、F7 和卷積層C1、C2、C3、C4、C5外其他層沒有可訓練參數(shù),圖中未畫出。
圖4 遷移學習訓練機制 Fig. 4 Transfer learning training mechanism
針對試驗搜集的原始圖片數(shù)據(jù)集小而仿照AleNet 的網(wǎng)絡結構復雜容易產(chǎn)生過擬合問題,采用數(shù)據(jù)增強技術擴充數(shù)據(jù)集,數(shù)據(jù)增強讓有限的數(shù)據(jù)產(chǎn)生更多的數(shù)據(jù),增加樣本的數(shù)量以及多樣性,提升模型魯棒性,隨機改變樣本可以降低對某些屬性的依賴,從而提高模型的泛化能力[29-30]。
數(shù)據(jù)增強分為2 類:離線增強和在線增強。離線增強即直接對原始數(shù)據(jù)集進行處理,新數(shù)據(jù)數(shù)目會變成原始數(shù)據(jù)的n 倍(n 為增強因子),此方法適用于數(shù)據(jù)集較小的情況;在線增強即獲batch 數(shù)據(jù)之后,然后對這個batch 的數(shù)據(jù)進行增強,如旋轉、平移、翻折等變化,此方法更適應于較大數(shù)據(jù)集,許多機器學習框架支持在線數(shù)據(jù)增強,并且可以使用GPU 優(yōu)化計算。
本研究采用離線增強的方式(圖5),對圖片執(zhí)行色彩調整、隨機裁剪、旋轉、加噪的操作,得到新的訓練集圖片為原來訓練集的6 倍。然后把得到的新數(shù)據(jù)集按6∶2∶2 的比例劃分為訓練集、驗證集和測試集。用新得到的數(shù)據(jù)集代替1.4 節(jié)的原始數(shù)據(jù)集重新按1.4.1 節(jié)至1.4.3 節(jié)的試驗步驟進行基于數(shù)據(jù)增強試驗部分。
圖5 數(shù)據(jù)增強操作 Fig. 5 Data enhancement operations
1.5.1 基于數(shù)據(jù)增強的遷移學習訓練機制
把通過數(shù)據(jù)增強的新數(shù)據(jù)集加載進網(wǎng)絡,通過微調遷移學習的方式以適應我們的數(shù)據(jù)集,具體做法:在保存模型的基礎上,分別凍結①卷積層C1、C2、C3、C4、C5,②卷積層C1、C2、C3、C4、C5 和全連接層F6。
表1 展示了遷移學習不同訓練機制下,對于原始數(shù)據(jù)集進行訓練,得到的訓練集、驗證集、測試集的準確率,可以看出在3 種不同的訓練機制下所得到的驗證準確率與測試準確率相符,但是3 種訓練機制下,訓練集準確率都大于驗證準確率,表明出現(xiàn)了過擬合,對于①②2 種情況應著重解決過擬合問題;同時看到方式③情況下,在訓練集、驗證集、以及測試集下的錯誤率是12.00%、13.35%和14.62%。既存在欠擬合也存在過擬合,正常情況下,植物保護專家能達到1%以內的識別錯誤率。對于訓練集的12%的誤差相對于專家的1%誤差來說,說明神經(jīng)網(wǎng)絡學習不夠,對訓練集的擬合度不夠,存在欠擬合現(xiàn)象。有約11%的可避免誤差,而訓練集誤差和測試集誤差相錯2.62%,此時應該著重解決欠擬合問題。
由以上分析可知,由于原始數(shù)據(jù)集小,而構造的網(wǎng)絡結構比較復雜,故發(fā)生了過擬合現(xiàn)象,更深的模型,意味著更好的非線性表達能力,可以學習到更復雜的變換,從而可以擬合更加復雜的特征,但是也容易在小數(shù)據(jù)集上發(fā)生過擬合,在訓練集上表現(xiàn)很好,但是卻在測試集上泛化性較差。對于①②的訓練方式,由于PlantVillage 數(shù)據(jù)集圖片大多是室內固定背景下拍攝,而棉花病蟲害數(shù)據(jù)集背景比較復雜,需要更深的模型來適應數(shù)據(jù)集,即需要更多的可訓練層,方式①比方式②可訓練層多故能學習到更多的關于棉花病蟲害數(shù)據(jù)集的知識,所以方式①泛化能力更強些。對于方式③,只有一個分類層可訓練,可訓練網(wǎng)絡的深度與廣度都不足以適應棉花病蟲害數(shù)據(jù)集,發(fā)生了欠擬合現(xiàn)象。
表1 基于遷移學習不同訓練機制的結果 Table 1 Results of different training mechanisms based on transfer learning
表2 是基于數(shù)據(jù)增強的試驗結果,由結果可知,2 組訓練驗證集和測試集的結果相符。在只有遷移學習的試驗結果基礎上對數(shù)據(jù)增強試驗做了改進后,去掉了方式③,使可訓練層數(shù)增多,以解決欠擬合問題,方式①和方式②的驗證集準確率和測試集準確率都比在較小數(shù)據(jù)集上進行遷移學習的準確率大幅提高,降低了可避免誤差,使得在驗證集和測試集的準確率相比較只有遷移學習的方式提高了4%,有效緩解了過擬合。
表2 基于數(shù)據(jù)增強的遷移學習不同訓練機制的結果 Table 2 Results of different training mechanisms based on data-enhanced transfer learning
為進一步驗證模型的識別效果,相同試驗條件下試驗對比了支持向量機(Support Vector Machine,SVM)和BP(Back Propagation,BP)神經(jīng)網(wǎng)絡的傳統(tǒng)方法以及VGG-19、GoogLeNet Inception v2 深度卷積神經(jīng)網(wǎng)絡標準模型對棉花6 種病蟲害的識別效果。
對于傳統(tǒng)方法首先對棉花病蟲害數(shù)據(jù)集圖片進行了預處理,采用提取HSV 顏色直方圖特征、RGB 顏色矩陣特征、GLCM 灰度共生矩陣紋理特征、HOG 特征幾種方式分別對每種病蟲害圖片進行了人工特征提取,然后分別利用支持向量機和BP 神經(jīng)網(wǎng)絡作分類器,實現(xiàn)棉花病蟲害的識別分類。
對比深度卷積神經(jīng)網(wǎng)絡經(jīng)典模型的試驗結果,雖然VGG-19 采用16 層卷積層,3 個全連接層,整個網(wǎng)絡采用相對本試驗模型較小的卷積核尺寸(3×3),和最大池化尺寸(2×2),小的濾波器組合一定程度上保證了感受野的同時,提取了細粒度特征,一定程度上可以擬合更加復雜的特征,但是VGG-19 模型的參數(shù)量接近于AlexNet 模型的3 倍,且大部分參數(shù)集中在第一個全連接層,耗費了大量的計算資源,也占用了更多的內存(140 M),對于本試驗環(huán)境負載過大,最終造成模型收斂很慢,過擬合現(xiàn)象嚴重。GoogLeNet Inception v2 深度卷積神經(jīng)模型同本試驗模型一樣采用了5 個卷積層并加入了Incepetion 模塊,使模型輕量化,Inception 結構的主要思路是用密集成分來近似最優(yōu)的局部稀疏結構。相比VGG-19 模型采用3×3的濾波器組合得到準確率稍微遜色。
試驗結果表明不論是在單個病蟲害識別準確率方面還是在平均準確率本研究的基于遷移學習并輔以數(shù)據(jù)增強技術的方法都優(yōu)于支持向量機和BP 神經(jīng)網(wǎng)絡的方法。本研究改進的AlexNet 模型較深度卷積模型VGG-19,GoogLeNet Inception v2 資源占有率低,能更快收斂,且平均識別準確率也較高。表3 為各模型對比結果。
表3 試驗模型對比結果 Table 3 Comparison results of model test
本研究在仿照AlexNet 模型結構的基礎上,改進了全連接層結構,并用6 分類SoftMax 分類層取代了原來AlexNet 模型的1 000 分類層,對棉花的枯萎病、黃萎病、棉鈴疫病、褐斑病、角斑病、棉葉螨這6 種病蟲害進行研究,先利用在PlantVillage 大數(shù)據(jù)集上訓練學習得到預訓練模型,用棉花病蟲害數(shù)據(jù)集通過3 種訓練機制方式進行遷移學習,然后采用數(shù)據(jù)增強擴充數(shù)據(jù)集然后采用2種訓練機制進行遷移學習,得到以下結論:
1)AlexNet 模型是對ImageNet 數(shù)據(jù)集進行的1 000分類問題,針對本研究的棉花病蟲害小數(shù)據(jù)集,采用PlantVillage 大數(shù)據(jù)集訓練得到的預訓練模型,PlantVillage 大數(shù)據(jù)集與試驗棉花病蟲害數(shù)據(jù)集圖像的紋理,形狀等特征相似程度更大,即源領域與目標領域擬合度更高,PlantVillage 數(shù)據(jù)集數(shù)據(jù)集比ImageNet 數(shù)據(jù)集等其他數(shù)據(jù)集更適合本試驗的棉花病蟲害數(shù)據(jù)集,源領域數(shù)據(jù)集與目標領域數(shù)據(jù)量10 倍差距也得到了很好的遷移效果。
2)使用不同的遷移學習訓練機制,分別比較了原始棉花病蟲害數(shù)據(jù)集和數(shù)據(jù)擴充后的病蟲害數(shù)據(jù)集的試驗結果,進而適當變更遷移學習訓練機制以應對欠擬合和過擬合問題,取得了良好的效果。數(shù)據(jù)集劃分為訓練集,驗證集,測試集使試驗更加嚴謹,驗證集扮演的就是一個輔助模型增加泛化能力的作用,而測試集僅僅用于最后評估模型的性能,兩者結合能很好觀察試驗的效果,以解決欠擬合或過擬合問題。
3)基于遷移學習的識別模型訓練的試驗結果表明,采用遷移學習的方式一定程度上能解決小數(shù)據(jù)集在復雜模型上產(chǎn)生的過擬合問題。在相似領域學習的基礎上開展研究,節(jié)約了訓練時間,能讓模型訓練更快,同時可以看到針對復雜背景的小數(shù)據(jù)集,相對預留更多的可訓練層,可得到更高的識別率,只訓練分類層即產(chǎn)生了欠擬合也有過擬合問題。
4)基于數(shù)據(jù)增強的遷移學習識別模型的試驗結果表明,適當增大了可訓練層數(shù),有效避免了欠擬合問題,同時對于小數(shù)據(jù)集產(chǎn)生的過擬合問題,使用數(shù)據(jù)增強技術能在一定程度上緩解過擬合問題。
5)識別模型的對比試驗表明,本研究改進的AlexNet模型與VGG-19 和GoogLeNet Inception v2 深度卷積模型比較能對棉花病蟲害達到較好的識別率,相比較傳統(tǒng)的支持向量機和BP 神經(jīng)網(wǎng)絡無論是單個病害還是平均識別準確率都大幅提高。相比較深度卷積神經(jīng)網(wǎng)路模型VGG-19 和GoogLeNe Inception v2,本改進模型能更快收斂,一定程度上緩解過擬合問題,且平均準確率較好。