王 健,劉雪花
1(廣州大學(xué) 華軟軟件學(xué)院 網(wǎng)絡(luò)技術(shù)系,廣州 510900)
2(廣州大學(xué) 華軟軟件學(xué)院 計(jì)算機(jī)系,廣州 510900)
隨著機(jī)器學(xué)習(xí)的發(fā)展與計(jì)算機(jī)數(shù)據(jù)處理能力的不斷增強(qiáng),結(jié)合圖像處理的機(jī)器學(xué)習(xí)技術(shù)在植物病害智能識(shí)別上的應(yīng)用越來越廣泛,并取得了一定的成果[1,2].相關(guān)研究表明作物的病害一般都會(huì)在葉片上表現(xiàn)出來,不同的病害種類引起的葉部病理癥狀也不同[3].由于病害葉片圖像及其病斑的復(fù)雜多樣性,一般的特征選擇方法因其識(shí)別率低,泛化能力不強(qiáng),使得人們很難從病斑圖像中提取出有效的分類特征[4].深度學(xué)習(xí)方法能夠利用多個(gè)隱含層從大規(guī)模數(shù)據(jù)中逐層、逐級(jí)學(xué)習(xí)到更有用的深層判別特征,以提高分類的準(zhǔn)確性[5],因此利用現(xiàn)代圖像處理技術(shù)和深度學(xué)習(xí)方法對(duì)作物葉片病害進(jìn)行診斷和識(shí)別已成為目前一個(gè)主流研究方向[6].深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)具有較強(qiáng)的特征提取能力[7],目前被廣泛應(yīng)用于各個(gè)領(lǐng)域的圖像分類任務(wù)當(dāng)中.
將CNN 應(yīng)用于蘋果葉的病理檢測(cè)需要解決以下兩個(gè)問題:第一,農(nóng)作物的病理檢測(cè)普遍由物聯(lián)網(wǎng)中的邊緣計(jì)算節(jié)點(diǎn)(Edge Computing Node,ECN)完成,雖然傳統(tǒng)的CNN 模型(如:IDCNNs、GoolgeNet)已經(jīng)達(dá)到了95%的識(shí)別率[4],但其模型參數(shù)規(guī)模較大,無法滿足ECN 對(duì)于計(jì)算資源有限和低功耗運(yùn)行的要求.第二,傳統(tǒng)的CNN 需要大量的訓(xùn)練樣本進(jìn)行學(xué)習(xí)才能提高模型提取圖像特征的能力,而目前關(guān)于農(nóng)作物葉片病理的公開數(shù)據(jù)集較少,無法滿足CNN 的訓(xùn)練要求.針對(duì)以上問題,本文作了如下工作:① 采用概率數(shù)據(jù)增強(qiáng)對(duì)原始數(shù)據(jù)集進(jìn)行了擴(kuò)增;在使用小規(guī)模的數(shù)據(jù)集進(jìn)行訓(xùn)練時(shí)仍然可以達(dá)到較好的識(shí)別精度;② 通過遷移學(xué)習(xí)方法對(duì)深度可分離卷積網(wǎng)絡(luò)進(jìn)行訓(xùn)練,實(shí)現(xiàn)了一種適用于受限設(shè)備部署的輕量級(jí)模型;③ 將模型進(jìn)行壓縮和轉(zhuǎn)換,部署到以PaddlePi-K210 終端運(yùn)算模塊為核心的嵌入式系統(tǒng)上,在受限設(shè)備上驗(yàn)證了該模型的可行性.
MobileNets 是為受限設(shè)備提出的高效模型,是一種使用深度可分離卷積來有效構(gòu)建輕量級(jí)深度神經(jīng)網(wǎng)絡(luò)低延遲網(wǎng)絡(luò)架構(gòu)模型,可用于移動(dòng)應(yīng)用和嵌入式視覺應(yīng)用的設(shè)計(jì)[8];遷移學(xué)習(xí)使CNN 能獲得在大數(shù)據(jù)集上已經(jīng)訓(xùn)練得到了的較好的特征提取能力,減小網(wǎng)絡(luò)模型訓(xùn)練所需的樣本數(shù)量[9].基于上述研究成果,本文采用了MobileNets V2 為基礎(chǔ)模型,使用遷移學(xué)習(xí)的方法進(jìn)行重新建模.系統(tǒng)流程如圖1所示,① 采用ImageNet對(duì)MobileNets 進(jìn)行預(yù)訓(xùn)練,得到預(yù)訓(xùn)練模型;② 將經(jīng)過概率數(shù)據(jù)增強(qiáng)的數(shù)據(jù)集送入預(yù)訓(xùn)練模型進(jìn)行訓(xùn)練,并調(diào)整網(wǎng)絡(luò)的全連接層與相應(yīng)超參數(shù),得到訓(xùn)練完成模型;③ 將測(cè)試數(shù)據(jù)集直接送入訓(xùn)練完成后的模型,輸出識(shí)別結(jié)果;④ 通過模型壓縮與轉(zhuǎn)換,將轉(zhuǎn)換后的模型移植到PaddlePi-K210 嵌入式開發(fā)板上,亦可通過攝像頭采集作物的信息進(jìn)行實(shí)時(shí)的病理葉檢測(cè)識(shí)別.
圖1 系統(tǒng)流程圖
圖2 蘋果頁面病理圖示
本文采用的公開數(shù)據(jù)集由西北農(nóng)林科技大學(xué)制作,分別在西北農(nóng)林科技大學(xué)白水蘋果試驗(yàn)站、洛川蘋果試驗(yàn)站和慶城蘋果試驗(yàn)站進(jìn)行的采集[10].數(shù)據(jù)集主要在晴天光線良好的條件下獲取,部分圖像在陰雨天進(jìn)行采集,不同的采集條件進(jìn)一步增強(qiáng)了數(shù)據(jù)集的多樣性.數(shù)據(jù)集包括斑點(diǎn)落葉病、褐斑病、花葉病、灰斑病以及銹病等五種常見的蘋果葉面病理圖像數(shù)據(jù),如圖2所示,數(shù)量分別為:斑點(diǎn)落葉病5343 張,褐斑病5655 張,灰斑病4810 張,花葉病4875 張,銹病5694 張.
數(shù)據(jù)增強(qiáng)是擴(kuò)充數(shù)據(jù)樣本規(guī)模的一種有效方法.當(dāng)進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí),數(shù)據(jù)的規(guī)模越大,模型的質(zhì)量越高,泛化能力越強(qiáng).本文采取的數(shù)據(jù)增強(qiáng)思路如下:在獲得一個(gè)批次的訓(xùn)練數(shù)據(jù)集時(shí)隨機(jī)對(duì)數(shù)據(jù)進(jìn)行裁剪、翻轉(zhuǎn),對(duì)亮度、對(duì)比度、飽和度、色度和色彩進(jìn)行調(diào)整.其中,色彩隨機(jī)調(diào)整了定義兩種處理順序,按照3:7 的概率實(shí)現(xiàn).經(jīng)過以上處理后,每種樣本數(shù)據(jù)集的數(shù)量擴(kuò)增6 倍,數(shù)據(jù)增強(qiáng)的效果如圖3所示.
圖3 數(shù)據(jù)增強(qiáng)效果對(duì)比圖
遷移學(xué)習(xí)是機(jī)器學(xué)習(xí)中解決訓(xùn)練數(shù)據(jù)不足問題的重要工具.它試圖通過放寬訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù),將知識(shí)從源域遷移到目標(biāo)域[11].本文采用的是基于網(wǎng)絡(luò)的深度遷移學(xué)習(xí)方法,該方法基于以下假設(shè):神經(jīng)網(wǎng)絡(luò)類似于人類大腦的處理機(jī)制,是一個(gè)迭代且連續(xù)的抽象過程,網(wǎng)絡(luò)的前面層可被視為特征提取器,提取的特征是通用的,后層為分類功能.
本文通過復(fù)用在源域(ImageNet 圖片分類)中預(yù)先訓(xùn)練好的部分網(wǎng)絡(luò),包括其網(wǎng)絡(luò)結(jié)構(gòu)和連接參數(shù),再使用網(wǎng)絡(luò)的一部分將其遷移到目標(biāo)域(蘋果葉病理分類).卷積神經(jīng)網(wǎng)絡(luò)的遷移學(xué)習(xí)一般針對(duì)卷積基和分類器兩個(gè)部分來展開工作的.卷積基由卷積層和池化層的堆棧所組成,其主要目的是提取圖像中的特征;分類器通常是由多個(gè)全連接層組成的,其主要目標(biāo)是通過特征對(duì)圖像進(jìn)行分類.卷積基的較低層適用的是通用特征,而較高層適用的是特殊特征.本文采用了凍結(jié)部分卷積基的遷移學(xué)習(xí)策略,其主要思想是將卷積基底層保持在原始形式,對(duì)高層進(jìn)行重新訓(xùn)練,然后使用其輸出提供給分類器,并重新訓(xùn)練分類器.這種策略適用缺少計(jì)算資源,數(shù)據(jù)集較小的應(yīng)用場(chǎng)景.
MobileNet 的核心層為深度可分離卷積層,研究表明深度可分離卷積和常規(guī)卷積是等效的[12].其最初在紋理分類任務(wù)中被引入[13],隨后在Inception 模型中使用[14].深度可分離卷積由兩層組成:深度卷積(depthwise convolution)和1×1 點(diǎn)卷積(pointwise convolution).
假設(shè)一個(gè)普通卷積層的輸入特征圖為X,大小為H×W×C,其中N表示樣本數(shù),C表示輸入特征圖通道數(shù),H和W分別是輸入特征圖的高和寬.Depthwise 是指將N×H×W×C的輸入分為group=C組,然后每一組做 3×3 卷積,即相當(dāng)于收集了每個(gè)Channel 的空間特征。深度卷積可表示為式(1).其中是大小為Dk×Dk×M的深度卷積核,其中,將中的第m個(gè)濾波器應(yīng)用于F中的第m個(gè)通道以產(chǎn)生濾波后的輸出特征圖的第m個(gè)通道.
Pointwise 是指對(duì)N×H×W×C的輸入做k個(gè)普通的1 ×1卷積,相當(dāng)于收集了每個(gè)點(diǎn)的特征.與常規(guī)卷積網(wǎng)絡(luò)一樣,Depthwise+Pointwise 最終輸出任為N×H×W×k,但深度可分離卷積的計(jì)算量縮減為常規(guī)卷積的1/9 左右.圖4是常規(guī)卷積(左)與MobileNet 中深度可分離卷積(右) 的結(jié)構(gòu)對(duì)比.Depthwise 卷積和1×1 卷積后都增加了BN (Batch Normalization,BN)層和ReLU6 (Rectified Linear Unit,ReLU).BN 主要作用是加快網(wǎng)絡(luò)的訓(xùn)練和收斂的速度、控制梯度爆炸防止梯度消失和防止過擬合;BN 可表示為式(2).B=為輸入數(shù)據(jù)集合,yi為BN 輸出,β是可訓(xùn)練參數(shù),ε (1e?8)是平滑項(xiàng),用于在方差極小的情況下,避免除0 錯(cuò).ReLU 是一種非線性激活函數(shù),其作用是給神經(jīng)元引入了非線性因素,而ReLU6 函數(shù)在低精度計(jì)算下具有更強(qiáng)的魯棒性,ReLU6 可表示為式(3).
圖4 常規(guī)卷積與深度卷積對(duì)比
本文使用MobileNetV2 基本網(wǎng)絡(luò)通過遷移學(xué)習(xí)來構(gòu)建模型.MobileNetV2 結(jié)構(gòu)基于inverted residual,保留Depthwise Separable Convolutions.MobileNetV2 與V1 的block 結(jié)構(gòu)如圖5所示,圖5(a)是V1 的block,沒有Shortcut 并帶有最后的ReLU6;圖5(b)是V2 的加入了1 ×1升維,引入Shortcut 并且去掉了最后的ReLU,改為L(zhǎng)inear.步長(zhǎng)為1 時(shí),先進(jìn)行1 ×1卷積升維,再進(jìn)行深度卷積提取特征,最后通過Linear 的逐點(diǎn)卷積降維,將input 與output 相加,形成殘差瓶頸結(jié)構(gòu).MobileNetV2網(wǎng)絡(luò)輸入的圖片大小為224×224×3,經(jīng)過32 個(gè)卷積核的初始全卷積層和后續(xù)的19 個(gè)殘差瓶頸層結(jié)構(gòu)后輸出大小為1×1×1280 的特征向量.整體結(jié)構(gòu)如表1所示.
本文實(shí)驗(yàn)所用神經(jīng)網(wǎng)絡(luò)訓(xùn)練環(huán)境的GPU 配置為Tesla P100,在AI Studio 平臺(tái)上使用paddlePaddle 框架完成,Python 版本為 Python3.5;ECN 采用的是迦南科技的PaddlePi-K210.對(duì)于系統(tǒng)所采用的主要評(píng)價(jià)指標(biāo)為在驗(yàn)證集上的平均精度均值mAP.
圖5 MobileNetV1 與V2 block 對(duì)比圖
表1 MobileNetV2 網(wǎng)絡(luò)結(jié)構(gòu)
本文中,模型參數(shù)初始設(shè)置是根據(jù)已有的MobileNet模型應(yīng)用實(shí)例[15,16],實(shí)驗(yàn)中進(jìn)行了微調(diào).調(diào)整參數(shù)包括優(yōu)化器、訓(xùn)練批量大小(batchsize)和學(xué)習(xí)率.按照收斂速度的快慢將常見的4 種優(yōu)化器(SGD、Momentum、RMSProp、Adam) 分成兩組,分別設(shè)置兩種學(xué)習(xí)率:SGD 和Momentum 設(shè)為0.001,RMSProp 和Adam 設(shè)為0.0001.設(shè)定模型訓(xùn)練停止目標(biāo)值為0.95.Batchsize設(shè)置為10 至120,以10 為步長(zhǎng)分別對(duì)每個(gè)優(yōu)化器共進(jìn)行12 次訓(xùn)練,最后根據(jù)mAP 和speed 選取出模型的最優(yōu)參數(shù)設(shè)置.
如圖6所示,從優(yōu)化器對(duì)mAP 的影響來分析,RMS優(yōu)化器的效果最好,當(dāng)batchsize 為50 時(shí),mAP 為0.8596.雖然其他優(yōu)化器的最高mAP 均達(dá)可以到0.80以上,但存在±0.05 的差距,可見優(yōu)化器對(duì)于mAP 存在一定的影響;從訓(xùn)練批量大小對(duì)mAp 的影響來看,沒有明顯的線性相關(guān);從訓(xùn)練速度epochs 來分析,取各優(yōu)化器在驗(yàn)證集上的最優(yōu)結(jié)果:SGDmAP=0.8083,MomentummAP=0.8305,RMSPropmAP=0.8596,AdammAP=0.8206.繪制Loss 與Acc 曲線,如圖7所示,SGD 所需迭代次數(shù)最多,Adam 所需要的迭代次數(shù)最少,表明epochs 與mAP沒有明顯的線性相關(guān).
圖6 不同優(yōu)化器的識(shí)別結(jié)果
圖7 Loss 與Acc 訓(xùn)練曲線
取MobileNet 模型最優(yōu)結(jié)果mAP=0.8596 與其他識(shí)別算法的mAP 進(jìn)行對(duì)比,如表2所示,該模型的準(zhǔn)確率高于大多常規(guī)卷積模型,雖然GoogleNet 的mAP高于MobileNe,但是GoogleNet 由于所需計(jì)算資源更多,并不適合部署到嵌入式設(shè)備上.因此,綜合評(píng)價(jià)表明該方法優(yōu)于其他已有方法.模型在驗(yàn)證集上的各病理的識(shí)別結(jié)果如圖8所示(0-斑點(diǎn)落葉病,1-褐斑病,2-灰斑病,3-花葉病,4-銹病).除去灰斑病較低外,其他病理的識(shí)別效果均為良好.其中少量的灰斑病和一定量的褐斑病被識(shí)別成了斑點(diǎn)落葉病,這是因?yàn)檫@3 種病理的圖像特征具有一定的相似性,即使在人工分類的情況下也會(huì)出現(xiàn)一定的誤判.最后對(duì)模型進(jìn)行壓縮和量化.為了保證量化后的精度,再次使用訓(xùn)練圖片對(duì)模型進(jìn)行調(diào)整.將最終模型移植到PaddlePi-K210 終端運(yùn)算模塊上,并連接IR 攝像頭,系統(tǒng)能實(shí)時(shí)對(duì)蘋果葉病理進(jìn)行檢測(cè),且運(yùn)行穩(wěn)定,驗(yàn)證了模型的有效性,效果如圖9所示.
表2 模型準(zhǔn)確值對(duì)比
圖8 混淆矩陣圖
圖9 原型效果圖
本文提出了一種基于深度可分離卷積的蘋果葉病理識(shí)別方法,在5 種蘋果病害葉片圖像數(shù)據(jù)集上進(jìn)行了數(shù)據(jù)集擴(kuò)增和一系列實(shí)驗(yàn),對(duì)網(wǎng)絡(luò)模型的相關(guān)參數(shù)進(jìn)行了優(yōu)化,該模型能有效的對(duì)蘋果病害葉片病理進(jìn)行識(shí)別.實(shí)驗(yàn)結(jié)果表明該方法對(duì)蘋果病理識(shí)別具有較好的應(yīng)用效果.