余文森
(武夷學院 數(shù)學與計算機學院,福建 武夷山 354300)
茶樹是我國重要的經(jīng)濟作物,廣泛分布于我國江南、江北、華南、西南等四大茶區(qū)。近年來,隨著我國社會經(jīng)濟的發(fā)展,人民生活水平的逐步提高,對茶葉需求量日益增加,同時對茶葉產(chǎn)品質量也日益關注。然而,茶葉種植過程中病蟲害問題極大影響了茶葉的品質和產(chǎn)量,也損失茶農(nóng)的經(jīng)濟效益。傳統(tǒng)茶樹病蟲害識別主要依靠人工感觀識別,需要有豐富的經(jīng)驗,且容易發(fā)生誤診,出錯率比較高。隨著計算機技術的不斷發(fā)展,基于圖像識別的方法是當前茶樹病蟲害識別的發(fā)展方向。從上個世紀八十年代開始,國內外學者就開始經(jīng)致力于農(nóng)作物病害圖像自動識別技術研究,如Sarkar等研發(fā)了基于計算機視覺的番茄分選系統(tǒng),通過對番茄莖和花端視圖的分析,以確定番茄新鮮市場質量的特征[1]。到目前為止,基于計算機視覺的農(nóng)作物病害圖像識別研究主要集中在傳統(tǒng)機器學習方法[2-8]和深度學習方法[9-19]兩大類上。傳統(tǒng)機器學習方法分為圖像預處理、病害圖像特征提取、病害識別等階段。雖然傳統(tǒng)機器學習方法在一些特定作物病害自動識別上取得一定成效,但是該類方法需要人為設計病害圖像特征。由于作物病害特征多樣、獲取病害圖像的場景復雜等原因,人為設計的病害圖像特征往往僅對特定病害有效,很難推廣應用。2006年開始,深度學習方法逐漸應用到圖像識別領域,并取得顯著成效。深度卷積神經(jīng)網(wǎng)絡具有強大的自主學習能力,可以自動提取圖像特征,克服了人工設計圖像特征的缺陷,成為農(nóng)作物病害圖像識別的主流方法。
雖然基于深度學習的農(nóng)作物病害圖像識別方法受到國內外學者廣泛關注,也取得較大進展。但是茶樹病害圖像識別方面的研究文獻較少,主要原因是沒有足夠的茶樹病害圖像數(shù)據(jù)集。因此,一些學者開始研究基于小樣本的茶樹病害圖像識別算法[20-21],并取得一定成效。但是這些研究的數(shù)據(jù)集主要是簡單背景的病害圖像,實際應用往往是自然環(huán)境復雜背景下的茶樹病害圖像識別。為能夠滿足茶園自然環(huán)境復雜背景下茶樹病害圖像識別,以茶樹葉部病害為研究對象,選擇茶白星病、茶炭疽病等常見的病害,基于非常小的樣本數(shù)據(jù)集,研究復雜背景下茶樹病害圖像自動識別方法。
研究的目標是能夠在茶園自然環(huán)境等復雜背景下,通過微信小程序、手機APP等終端應用程序自動識別茶樹病害。為與應用場景相一致,采用網(wǎng)上搜索和現(xiàn)場拍攝兩種途徑收集任意分辨率以及任意背景下的茶樹病害圖像。因收集到的不同病害圖片數(shù)量相差比較大,為保證訓練集相對均衡,也為更容易推廣到其它茶樹病害圖像識別,構建每種病害30幅左右的小樣本茶樹病害圖像數(shù)據(jù)集(以下簡稱Tea_disease),其中茶白星病圖像26幅、茶炭疽病圖像30幅、健康茶樹葉部圖像32幅,部分圖像如圖1、2、3所示。
圖1 茶樹白星病圖像Fig.1 Tea white star disease image
圖2 茶樹炭疽病圖像Fig.2 Tea anthracnose disease image
圖3 健康茶樹圖像Fig.3 Healthy tea tree image
此外,利用多種植物有同一病害的特性構建一個374幅病害圖像的茶樹病害圖像增廣數(shù)據(jù)集(以下簡稱Tea_disease_augment),其中白星病害圖像119幅、炭疽病圖像135幅、健康茶樹葉部圖像120幅。在研究二次遷移學習方法時,使用網(wǎng)上公開的植物病害圖像數(shù)據(jù)集[22](以下簡稱Plant_disease),該數(shù)據(jù)集是由在線平臺PlantVillage收集構建,包含14種作物54309幅圖像,總共有38個類別。另外,分割Plant_disease數(shù)據(jù)集,建立Plant_rest_disease數(shù)據(jù)集和Apple_disease小樣本數(shù)據(jù)集。Plant_rest_disease數(shù)據(jù)集由Plant_disease數(shù)據(jù)集除去apple的4類數(shù)據(jù)后,剩余的數(shù)據(jù)組成,共34個類別51134幅圖像。Apple_disease小樣本數(shù)據(jù)集是從apple的4類數(shù)據(jù)中分別隨機抽取30幅圖像組成,共4個類別120幅圖像。
深度學習是當前機器學習領域最受歡迎的研究課題。近十幾年,研究者已經(jīng)開發(fā)出許多深度學習模型,并在圖像識別領域取得顯著成效。然而,深度學習的成功依賴于規(guī)模龐大的訓練數(shù)據(jù)集,如ImageNet圖像數(shù)據(jù)集(以下簡稱ImageNet),收集超過1 500萬幅的圖像,涵蓋的圖像類別約22 000種。然而許多實際應用場景很難構建大規(guī)模的訓練數(shù)據(jù)集或者構建成本太高,深度學習無法滿足這些應用場景需求。但是人類有一項非凡的智慧,就是能夠從少數(shù)幾個例子中學習識別新事物、新概念。即使是一個五六歲的小孩,都能夠通過一兩張圖片的學習,認識新事物。受人類這種學習能力啟發(fā),小樣本學習概念被提出,并迅速成為研究的熱點。
目前,主流的小樣本學習方法是基于深度學習網(wǎng)絡,通過遷移學習、數(shù)據(jù)增廣、模型微調等技巧來克服訓練數(shù)據(jù)量少的缺陷。研究者已提出LeNet、AlexNet、ZF-net、GoogleNet、VGG N et、ResNet等深度學習網(wǎng)絡,本文選擇遷移性能較好的VGGNet。VGGNet是Visual Geometry Group(牛津大學計算機視覺組)和Google DeepMind公司合作研發(fā)的深度卷積神經(jīng)網(wǎng)絡,共有6種不同的網(wǎng)絡結構,其中VGG-16和VGG-19比較出名[23]?;赩GG-16網(wǎng)絡結構,分別研究數(shù)據(jù)增廣、遷移學習、模型微調、學習速率微調等常見的小樣本學習方法在復雜背景下的茶樹葉部病害圖像識別的成效。
VGGNet的網(wǎng)絡配置如圖4所示。每種結構都分成5個卷積層組,每組由多個采用卷積核的卷積層串聯(lián)一起,后接一個最大池化層。最后是3個全連接層和1個softmax層。其中,紅線方框部分是VGG-16的卷積層組配置,輸入是一個的RGB圖像,第一組由兩個采用64個卷積核的卷積層串聯(lián)組成,第二組由兩個采用128個卷積核的卷積層串聯(lián)組成,第三組由三個采用256個卷積核的卷積層串聯(lián)組成,第四、第五組由三個采用512個卷積核的卷積層串聯(lián)組成。
圖4 VGGNet網(wǎng)絡配置Fig.4 VGGnet network configuration
數(shù)據(jù)增廣是小樣本學習中常用且直觀的一種方法。它是指對原有的小樣本數(shù)據(jù)進行數(shù)據(jù)擴充或特征增強,用于增加訓練數(shù)據(jù)集,提升訓練模型的泛化能力。常見的圖像數(shù)據(jù)增廣方法有平移、旋轉、縮放、水平/垂直翻轉、裁剪、亮度增強、對比度增強、色彩抖動、噪聲等。近年來,研究者還提出利用無標簽數(shù)據(jù)或合成帶標簽數(shù)據(jù)擴充數(shù)據(jù)集、樣本特征空間增強等數(shù)據(jù)增廣方法[24]。
在收集茶樹葉部病害圖片過程中發(fā)現(xiàn),茶樹的許多病害如白星病、炭疽病等,其它相似植物也有同類病害,而且病害圖像特征很相似。因此,提出利用其它相類似植物的同種病害圖像擴充茶樹病害圖像數(shù)據(jù)集的新思路,構建一個茶樹病害增廣數(shù)據(jù)集,并通過實驗驗證了該方法的有效性。
遷移學習是近年來受研究者廣泛關注的一個新興的學習框架,其目標是把源域中學習到的知識遷移到不同但相關的目標域中。類似于人類“舉一反三”的學習過程,遷移學習是指利用數(shù)據(jù)、任務或模型之間的相似性,將源域中學習到的知識應用于目標域的學習過程。在小樣本學習中,可以利用相關源域中已有的大規(guī)模訓練數(shù)據(jù),通過遷移學習解決目標域的小樣本問題。Mohanty等在Plant_disease數(shù)據(jù)集上,對比直接訓練和遷移學習兩種方法,發(fā)現(xiàn)遷移學習模型的識別率明顯更高[25]。謝軍等利用ImageNet、Plant_disease以及自已構建的茶樹病害數(shù)據(jù)集,采用二次遷移學習方法,研究小樣本茶樹病害圖像識別問題,取得較好識別率[20]。然而無論是Plant_disease還是謝軍等人構建的茶樹病害數(shù)據(jù)集,樣本圖像的背景都比較簡單的,病害圖像識別相對容易。
將上述遷移學習方法以及小樣本學習常用的數(shù)據(jù)增廣、模型微調、學習速率微調等方法引入復雜背景下茶樹病害圖像識別問題。通過實驗對比分析這些方法對所研究問題的有效性。首先是數(shù)據(jù)增廣方法。構建Tea_disease(未增廣)和Tea_disease_augment(增廣)兩個茶樹病害數(shù)據(jù)集。在此基礎上,采用遷移學習的框架,將ImageNet預訓練模型VGG-16分別遷移到兩個數(shù)據(jù)集進行訓練和測試,比較兩者的識別準確率,討論本文提出方法的有效性。
其次是遷移學習方法。設計在Tea_disease數(shù)據(jù)集上采用一次遷移、經(jīng)過Plant_disease二次遷移、經(jīng)過Tea_disease_augment二次遷移以及在Apple_disease數(shù)據(jù)集采用一次遷移、經(jīng)過Plant_rest_disease二次遷移等多個實驗,分析討論遷移方法對所研究問題的影響。
第三是模型微調方法。一般小樣本學習中常見的微調方法是先在大規(guī)模數(shù)據(jù)集中預訓練一個網(wǎng)絡,然后遷移到小樣本數(shù)據(jù)集中訓練。在小樣本數(shù)據(jù)集中訓練時,一般會凍結前面網(wǎng)絡層的參數(shù),只微調后面幾層的參數(shù)。本文實驗比較了微調網(wǎng)絡的全連接層和微調整個網(wǎng)絡兩種方法。
最后是學習速率微調方法。Howard等在研究通用微調語言模型時,提出斜三角學習速率[26]。該方法在訓練過程中,根據(jù)迭代次數(shù)動態(tài)調整學習速率,當從0開始增長時,學習速率逐漸變大,增長到某個固定值時,學習速率開始逐步下降。將這個學習速率微調方法引入所研究問題,實驗比較了固定學習速率和斜三角學習速率兩種方法訓練的模型,討論學習速率微調方法對所研究問題的影響。公式(1)、(2)、(3)為斜三角學習速率計算公式。
其中,T是迭代訓練總次數(shù),cut為學習速率從遞增轉變?yōu)檫f減的迭代次數(shù),cut_frac為學習速率遞增的迭代次數(shù)比例分數(shù),ratio指定了最小學習速率比最大學習速率小多少,ηmax為最大學習速率,ηt為第次迭代的學習速率。
實驗平臺為聯(lián)想DeepNex深度學習平臺,配置為3節(jié)點軟硬件一體化大數(shù)據(jù)深度學習平臺。每個節(jié)點硬件配置2顆Intel Xeon Gold 20C 125W 2.1GHz處理器、256GB 2933MHZ DDR4內存、2*480GB SSD、4*4TB SATA熱插拔硬盤、Raid 730-8i 12Gb/s RAID卡、1GB緩存、1塊NVIDIA Tesla V100 32GBGPU。
實驗公共的配置如下:采用VGG-16為基礎網(wǎng)絡模型,該模型的輸入數(shù)據(jù)尺寸為224×224×3,因此,實驗中所有樣本圖像調整成這一尺寸;VGG-16模型遷移時,丟棄原模型的全連接層,添加一個激活函數(shù)為relu的256個卷積核的全連接層,后面緊跟一個丟棄率為0.5的Dropout層,最后是一個labels個卷積核的softmax全連接層,其中,labels是類別數(shù)。除模型微調對比實驗外,其它實驗統(tǒng)一采用如下微調策略:微調最后三層參數(shù)而凍結前面網(wǎng)絡層的參數(shù)。除學習速率微調對比實驗外,其它實驗的學習速率統(tǒng)一采用固定值0.001。實驗迭代輪數(shù)統(tǒng)一設置為200。
4.2.1 數(shù)據(jù)增廣對比實驗
從網(wǎng)上下載ImageNet預訓練的VGG-16模型,分別遷移到Tea_disease和Tea_disease_augment兩個數(shù)據(jù)集上進行訓練,訓練得到的兩個模型的平均識別準確率以及模型損失圖如表1及圖5所示,在增廣數(shù)據(jù)集上的平均識別準確率要明顯高于未增廣的,且模型損失變化更平滑,從而驗證了本文提出利用相似植物同一種病害圖像來增廣數(shù)據(jù)集的方法是有效的。
表1 數(shù)據(jù)增廣對比實驗Tab.1 Comparative experiment of data augmentation
圖5 數(shù)據(jù)增廣對比實驗的模型損失圖Fig.5 Model loss diagram of comparative experiment of data augmentation
4.2.2 遷移學習方法對比實驗
首先設計如下兩個實驗來對比分析一次遷移和二次遷移方法對所研究問題的影響:①將ImageNet預訓練的VGG-16模型一次遷移到Tea_disease(用ImageNet_Tea_T表示)。②將ImageNet預訓練的VGG-16模型遷移到Plant_disease中訓練,然后再次遷移到Tea_disease中訓練(用ImageNet_Plant_Tea_T表示)。實驗結果如表2所示,發(fā)現(xiàn)二次遷移實驗②的平均識別準確率要比一次遷移實驗①的低,與謝軍等文中結論相反[20]。通過分析二次遷移的數(shù)據(jù)集我們發(fā)現(xiàn),謝軍等的二次遷移實驗的數(shù)據(jù)集都是簡單背景的圖像組成,而本文的二次遷移實驗中Plant_disease數(shù)據(jù)集是簡單背景的圖像組成,但是Tea_disease數(shù)據(jù)集是復雜背景的圖像組成。初步分析產(chǎn)生前面實驗結果的原因可能跟二次遷移實驗②從背景簡單的數(shù)據(jù)集遷移到背景復雜的數(shù)據(jù)集有關。因此,設計第三個遷移學習的實驗:③將ImageNet預訓練的VGG-16模型遷移到Tea_disease_augment中訓練,然后再遷移到Tea_disease中訓練(用ImageNet_Augment_Tea_T表示)。Tea_disease_augment和Tea_disease兩個數(shù)據(jù)集都是復雜背景的圖像組成,即二次遷移是從復雜背景的數(shù)據(jù)集遷移到復雜背景的數(shù)據(jù)集上。實驗結果如表2所示,二次遷移實驗③的平均識別準確率要比一次遷移實驗①的高,這個實驗表明上述初步分析是正確,中間數(shù)據(jù)集與最終數(shù)據(jù)集的背景復雜情況相似度會影響二次遷移方法的效果。
表2 Tea_disease數(shù)據(jù)集上的遷移學習方法對比實驗Tab.2 Comparative experiment of transfer learning methods on Tea_disease dataset
為了進一步證明上述結論,再次設計兩個遷移學習的實驗:④將ImageNet預訓練的VGG-16模型一次遷移到Apple_disease(用ImageNet_Apple_T表示)。⑤將 ImageNet預訓練的 VGG-16模型遷移到Plant_rest_disease中訓練,然后再次遷移到Apple_disease中訓練(用ImageNet_Plant_rest_Apple_T表示)。實驗結果如表3所示,二次遷移實驗⑤的平均識別準確率要高于一次遷移實驗④。實驗⑤的中間數(shù)據(jù)集Plant_rest_disease和最終數(shù)據(jù)Apple_disease都是簡單背景的圖像組成。因此可以得出結論,二次遷移學習方法對所研究問題還是有效的,但是中間數(shù)據(jù)集與最終數(shù)據(jù)集的復雜背景情況要一致,即同為簡單背景或同為復雜背景。
表3 Apple_disease數(shù)據(jù)集上的遷移學習方法對比實驗Tab.3 Comparative experiment of transfer learning methodson on Apple_disease dataset
4.2.3 模型微調對比實驗
實驗采用目前常用的微調全連接層、微調整個網(wǎng)絡參數(shù)兩種方法,并選擇Tea_disease和Tea_disease_augment兩個數(shù)據(jù)集進行實驗對比研究模型微調對所研究問題的影響。實驗結果如表4以及圖6所示,表4顯示對于樣本數(shù)非常少的小數(shù)據(jù)集(如Tea_disease),微調整個網(wǎng)絡方法的識別準確率要比微調全連接層低,主要原因在于樣本數(shù)太少,過擬合問題較嚴重。但是隨著樣本數(shù)增加,微調整個網(wǎng)絡方法的有效性會逐步提升,比如在Tea_disease_augment數(shù)據(jù)集中,其樣本數(shù)比Tea_disease大,微調整個網(wǎng)絡方法的模型識別準確率接近微調全連層。此外,分析比較圖6也可以發(fā)現(xiàn),采用微調整個網(wǎng)絡方法在Tea_disease_augment上訓練的模型損失圖(d)的縱坐標范圍比同樣方法在Tea_disease上訓練的圖(c)小。如果考慮比例尺因素,從整體上看圖(d)的損失曲線比圖(c)更平滑。說明隨著樣本數(shù)的增加,采用微調整個網(wǎng)絡方法訓練的模型損失波動逐漸變小,且變化曲線逐漸趨于平滑,有利于加快訓練的收斂速度。因此,當數(shù)據(jù)集樣本數(shù)非常小時,應該采用微調全連接層策略;樣本數(shù)相對比較大時,可以采用微調整個網(wǎng)絡參數(shù)來提高識別正確率。
圖6 模型微調實驗的模型損失圖Fig.6 Model loss diagram of comparative experiment of model fine-tuning
表4 模型微調對比實驗Tab.4 Comparative experiment of model fine-tuning
4.2.4 學習速率微調對比實驗
實驗選擇固定學習速率和斜三角學習速率兩種策略,分別在Tea_disease、Tea_disease_augment數(shù)據(jù)集上進行實驗對比分析學習速率微調對所研究問題的影響。實驗相關參數(shù)配置如下:固定速率設置為0.001,斜三角速率公式中相關參數(shù)配置為T=200,cut_frac=0.1,ratio=32,ηmax=0.01。實驗結果如表5及圖7所示,表5顯示在兩個數(shù)據(jù)集上采用固定學習速率訓練的模型平均識別準確率都高于斜三角學習速率。但是從圖7來看,采用斜三角學習速率訓練的模型損失圖(b)和(d)的縱坐標范圍比固定學習速率的圖(a)和圖(c)的小,且損失變化曲線也相對更平滑,說明斜三角學習速率訓練策略的損失變化范圍更小且曲線更平滑,更有利于加快訓練的收斂速度。
圖7 學習速率微調對比實驗Fig.7 Model loss diagram of comparative experiment of learning rate fine-tuning
表5 學習速率微調對比實驗Tab.5 Comparative experiment of learning rate fine-tuning
構建茶樹病害小樣本圖像數(shù)據(jù)集和增廣數(shù)據(jù)集以及利用網(wǎng)上公開的植物病害圖像數(shù)據(jù)集,通過實驗比較分析研究遷移學習、數(shù)據(jù)增廣、模型微調、學習速率微調等方法對復雜背景下的茶樹病害圖像識別問題的有效性。得到以下結論:
(1)利用相似植物同一種病害圖像來增廣數(shù)據(jù)集的方法對所研究問題是有效的。
(2)二次遷移學習方法可以提高復雜背景下茶樹病害圖像識別的準確率,但是中間數(shù)據(jù)集也需要復雜背景的樣本圖像。
(3)在進行遷移學習時,如果數(shù)據(jù)集樣本數(shù)非常小時,應該采用微調全連接層策略;樣本數(shù)相對比較大時,可以采用微調整個網(wǎng)絡參數(shù)來提高識別正確率。
(4)在樣本數(shù)量非常小的情況下,斜三角學習速率策略雖然不能提高識別準確率,但是有利于加快訓練的收斂速度。