任守綱,賈馥瑋,顧興健,袁培森,薛 衛(wèi),徐煥良※
(1. 南京農(nóng)業(yè)大學(xué)信息科技學(xué)院,南京 210095; 2. 國(guó)家信息農(nóng)業(yè)工程技術(shù)中心,南京 210095;3. 江蘇省物聯(lián)網(wǎng)技術(shù)與應(yīng)用協(xié)同創(chuàng)新中心,南京 210023)
植物病害是造成農(nóng)作物減產(chǎn)甚至絕產(chǎn)的主要原因之一。植物在遭受細(xì)菌、病毒的侵害后,大多數(shù)會(huì)在葉片上有一定的表征,如生成各類病斑、滋生霉?fàn)钗?、局部干枯等[1]。植物病害種類復(fù)雜多樣,為了避免人工診斷錯(cuò)誤,幫助非專業(yè)人員及時(shí)發(fā)現(xiàn)病情并對(duì)癥下藥,通常利用可見光波段圖像檢測(cè)植物外部形態(tài)變化識(shí)別病害的類型。
早期的植物葉片病害識(shí)別主要依賴人工設(shè)計(jì)特征,使用顏色、形狀、紋理等信息建立特征向量,然后利用支持向量機(jī)[2]和神經(jīng)網(wǎng)絡(luò)[3]等方法對(duì)特征向量進(jìn)行分類。這種使用固定特征提取方式訓(xùn)練出的模型雖然能取得一定的識(shí)別效果,但一般需要先分割出病斑或病葉,增加了前期工作量,且每次都要針對(duì)不同的病害組合設(shè)計(jì)特征提取方法,缺乏魯棒性,也難以區(qū)分相似病害?;趥鹘y(tǒng)機(jī)器學(xué)習(xí)的病害識(shí)別模型不僅嚴(yán)重依賴于特征提取方法,還需要對(duì)不同植物的病害設(shè)計(jì)不同的識(shí)別模型,缺乏普遍適用性。
自 2012年 AlexNet[4]被提出以來,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)成為在圖像分類上的核心模型。CNN可通過多個(gè)卷積核,自動(dòng)從圖片中學(xué)習(xí)特征后分類,其端到端的結(jié)構(gòu)為農(nóng)業(yè)領(lǐng)域的研究提供了便利。2016年,Mohanty等[5]使用 AlexNet和GoogleNet 2種卷積神經(jīng)網(wǎng)絡(luò)對(duì)PlantVillage病害數(shù)據(jù)集的38類葉片病害圖像分類,準(zhǔn)確率高達(dá)99.35%。孫俊等[6]將批歸一化和全局池化方法加入 AlexNet用于植物葉片病害分類,準(zhǔn)確率達(dá)99.56%。許景輝等[7]通過改進(jìn)VGG16模型識(shí)別田間環(huán)境的玉米病害種類,對(duì) 3種病害的平均識(shí)別準(zhǔn)確率為95.33%?;谏疃葘W(xué)習(xí)的植物葉部病害種類識(shí)別已經(jīng)達(dá)到了較高的精度。2018年AI Challenger比賽對(duì)38類病害重新標(biāo)注,將多數(shù)病害按嚴(yán)重程度分為一般和嚴(yán)重2類,共61類。Liang等[8]重新篩選比賽數(shù)據(jù),利用其中的45類,設(shè)計(jì)了一個(gè)可以同時(shí)識(shí)別植物種類、葉片病害和葉片病害嚴(yán)重程度的植物病害診斷系統(tǒng),識(shí)別精度分別達(dá)到了99%、98%和91%。郭小清等[9]將番茄病害分為早中晚期3類,設(shè)計(jì)了基于AlexNet的多感受野識(shí)別模型。任勝男等[10]針對(duì)植物病害小樣本問題提出了一種基于one-shot學(xué)習(xí)的植物病害識(shí)別方法,用關(guān)系網(wǎng)絡(luò)模型識(shí)別 PlantVillage數(shù)據(jù)集中 8類樣本較少的植物病害。上述研究工作主要采用細(xì)粒度分類識(shí)別葉部病害程度,以及小樣本學(xué)習(xí)方法識(shí)別訓(xùn)練樣本較少的病害種類,已經(jīng)取得良好進(jìn)展,但是這些端到端的分類器對(duì)特征學(xué)習(xí)過程不透明,且易過擬合,若學(xué)習(xí)到無用特征則會(huì)對(duì)病害識(shí)別產(chǎn)生干擾。
針對(duì)卷積神經(jīng)網(wǎng)絡(luò)的可解釋性問題,目前常使用反卷積[11]、導(dǎo)向反向傳播[12]和梯度加權(quán)類激活映射[13]等方法對(duì)CNN的學(xué)習(xí)能力進(jìn)行可視化。Brahimi等[14]從CNN的可解釋性出發(fā),提出了一種植物病害分類的可視化訓(xùn)練方法,利用具有黑色背景的PlantVillage數(shù)據(jù),在沒有像素級(jí)標(biāo)注的情況下訓(xùn)練病害分類模型,并使用反卷積方法將發(fā)生病害的部位可視化,比現(xiàn)有的可視化方法[11-13]產(chǎn)生了更清晰的效果。但上述方法在面對(duì)有桌面背景的PlantVillage數(shù)據(jù)時(shí),背景容易與病斑一起響應(yīng)。
目前關(guān)于病斑分割的研究主要分為圖像處理方法[15-17]和深度學(xué)習(xí)方法[18-21]。隨著全卷積網(wǎng)絡(luò)[22](Fully Convolutional Networks,F(xiàn)CN)、U-Net[23]等語義分割網(wǎng)絡(luò)的出現(xiàn),對(duì)農(nóng)作物病害分割的研究大多基于深度學(xué)習(xí)方法,無需手工特征提取并取得了更好的效果。劉文定等[18]使用不同的跳躍連接方法構(gòu)造了5種不同的FCN網(wǎng)絡(luò),快速精確地識(shí)別復(fù)雜、邊界不規(guī)則的油松林蟲害區(qū)域,像素準(zhǔn)確率達(dá)到97.86%。王振等[21]針對(duì)復(fù)雜背景的病害提出一種級(jí)聯(lián)神經(jīng)網(wǎng)絡(luò),首先對(duì)病害區(qū)域進(jìn)行定位,然后使用加入多尺度特征的 SegNet[24]分割病斑,分割精度達(dá)87.04%。語義分割網(wǎng)絡(luò)雖可同時(shí)分割不同類別的病害,但有幾點(diǎn)不足:1)語義分割網(wǎng)絡(luò)需要大量的像素級(jí)標(biāo)注;2)多種病害的病斑相似,在做病斑分割時(shí),只能分成背景和病斑2類,難以確定病斑所屬的病害種類。
針對(duì)特征提取具有盲目和不確定性的問題,本研究標(biāo)注少量病斑,利用反卷積引導(dǎo)CNN分類器關(guān)注真實(shí)病斑部位,提出了一種基于反卷積的番茄葉部病害識(shí)別及病斑分割模型。該模型可以同時(shí)分類病害和分割病斑,對(duì)遮擋物及光線強(qiáng)度干擾具有魯棒性,并可降低對(duì)病害圖片標(biāo)注的強(qiáng)度。根據(jù)該模型的病害識(shí)別結(jié)果和分割結(jié)果,可進(jìn)一步評(píng)估病害發(fā)病程度,精準(zhǔn)高效施藥,對(duì)發(fā)展高效、生態(tài)、環(huán)保農(nóng)業(yè)提供技術(shù)保障。
試驗(yàn)數(shù)據(jù)來自PlantVillage數(shù)據(jù)集中的10類番茄葉部病害圖像,包括細(xì)菌性斑點(diǎn)病2 127張、早疫病1 000張、晚疫病1 909張、葉霉病952張、斑枯病1 771張、二斑葉螨病1 676張、輪斑病1 404張、花葉病373張、黃曲葉病5 357張、健康葉片1 591張,共18 160張。
圖1給出數(shù)據(jù)集中10類番茄葉部病害樣本的例子。由圖 1可知,番茄葉部病害的識(shí)別和病斑分割主要有以下4個(gè)難點(diǎn):1)不同病害表征不同,在病斑分割時(shí)需要分別考慮各病害的特點(diǎn);2)某些病害表征相似,如二斑葉螨病和花葉病,給病害識(shí)別增加了難度;3)葉片背景給分割帶來干擾,因光照因素產(chǎn)生的陰影容易被錯(cuò)認(rèn)成病斑;4)病斑形狀不規(guī)則,有些病害的病斑較小,肉眼難以發(fā)現(xiàn)發(fā)病初期的病斑,給病斑分割帶來了難度。
數(shù)據(jù)集中每類病害的樣本分布不均勻,有限的訓(xùn)練數(shù)據(jù)容易使深度學(xué)習(xí)模型過擬合。在深度學(xué)習(xí)中,使用數(shù)據(jù)增強(qiáng)方法對(duì)數(shù)據(jù)進(jìn)行擴(kuò)充,可以提高模型的泛化能力。本研究的訓(xùn)練數(shù)據(jù)使用pytorch[25]框架下的在線增強(qiáng)方法,即在訓(xùn)練過程中對(duì)每個(gè)batch數(shù)據(jù)隨機(jī)選擇一種增強(qiáng)方法,無需增加原本的數(shù)據(jù)集數(shù)量。為了避免改變?cè)袛?shù)據(jù)特征,更好地模擬真實(shí)拍攝條件下各樣本的差異,本研究訓(xùn)練集主要采用以下數(shù)據(jù)增強(qiáng)手段:1)翻轉(zhuǎn):對(duì)圖像進(jìn)行水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)、先垂直后水平翻轉(zhuǎn) 3種翻轉(zhuǎn)方式,模擬采集樣本時(shí)拍攝角度的隨機(jī)性,不會(huì)改變病斑形狀與病斑在葉片上的分布狀況。2)顏色抖動(dòng):改變圖像的亮度或飽和度,模擬光照差異,并保證參數(shù)符合現(xiàn)實(shí)拍攝情況,避免圖像失真。3)添加噪聲:對(duì)圖像增加信噪比為0.98的椒鹽噪聲或高斯噪聲,模擬拍攝過程中產(chǎn)生的噪聲,并弱化高頻特征防止模型過擬合。訓(xùn)練數(shù)據(jù)增強(qiáng)結(jié)果如圖2所示。
圖1 番茄葉部健康與病害圖像對(duì)比Fig.1 Comparison of tomato disease and healthy leaf
圖2 訓(xùn)練樣本增強(qiáng)示例Fig.2 Illustration of train data augmentation
計(jì)算機(jī)視覺的一個(gè)關(guān)鍵挑戰(zhàn)是處理現(xiàn)實(shí)世界的數(shù)據(jù)波動(dòng)。本研究使用的數(shù)據(jù)集均在實(shí)驗(yàn)室場(chǎng)景下拍攝,為了模擬自然拍攝情況下會(huì)出現(xiàn)光照不足、葉片偏離中心和異物遮擋的情況,采用 3種圖像增強(qiáng)方法對(duì)測(cè)試數(shù)據(jù)進(jìn)行離線增強(qiáng):1)平移:先裁剪圖像的一部分,然后使用邊界像素值將缺失像素補(bǔ)齊,模擬拍攝時(shí)葉片偏離鏡頭中心、葉片不完整等情況。2)遮擋:生成隨機(jī)大小、隨機(jī)位置和隨機(jī)旋轉(zhuǎn)角度的番茄果實(shí)、土壤以及綠色葉片對(duì)葉片區(qū)域進(jìn)行遮擋,模擬目標(biāo)葉片被遮擋的情況。3)降低亮度:將圖片亮度依次減少到原圖像的 40%、50%和60%,模擬光照不足的情況。測(cè)試數(shù)據(jù)增強(qiáng)結(jié)果如圖3所示。
圖3 測(cè)試樣本增強(qiáng)示例Fig.3 Illustration of test data augmentation
PlantVillage數(shù)據(jù)集中已有可用于訓(xùn)練病害識(shí)別模型的圖像級(jí)標(biāo)注,而訓(xùn)練病斑分割模型,還需要對(duì)病斑進(jìn)行如圖4的像素級(jí)標(biāo)注。
圖4 葉部病斑的像素級(jí)標(biāo)注Fig.4 Pixel-level annotation of leaf disease
像素級(jí)標(biāo)注費(fèi)時(shí)費(fèi)力,目標(biāo)小、數(shù)量多的病斑給標(biāo)注帶來了更大的困難。本研究利用病害類別和病斑位置同時(shí)訓(xùn)練病斑分割模型,因?yàn)榉淳矸e模塊作為分割模型的關(guān)鍵部分,作用是將特征提取時(shí)類響應(yīng)高的像素區(qū)域作為病斑部位,所以只需要從每類病斑中選擇幾張典型樣本,對(duì)部分樣本進(jìn)行病斑的像素級(jí)標(biāo)注。除健康葉片不需像素級(jí)標(biāo)注外,從其他9類病害中分別選出30幅樣本,使用圖像語義分割標(biāo)注工具LabelMe[26]進(jìn)行標(biāo)注。其中5幅樣本用于訓(xùn)練分割模型,25幅樣本用于測(cè)試分割效果。
以 VGGNet[27]為基礎(chǔ)構(gòu)建基于反卷積的番茄葉部病害識(shí)別及病斑分割模型DGVGGNet,模型結(jié)構(gòu)如圖5所示。與其他語義分割的網(wǎng)絡(luò)不同,本研究利用卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征后,仍保留全連接層以得到病害分類結(jié)果,病斑分割模塊則只預(yù)測(cè)病斑位置不預(yù)測(cè)病斑類別。本研究模型分為3個(gè)階段:第1階段,由VGGNet得到病害分類結(jié)果;第2階段,將全連接層向量重新映射到高維向量,并重塑成特征圖形式;第3階段,采用逐層上采樣的方式,通過跳躍連接將VGGNet提取的特征圖與上采樣得到的特征圖進(jìn)行拼接,利用卷積層實(shí)現(xiàn)特征融合,最終通過重構(gòu)層得到病斑分割圖。模型實(shí)現(xiàn)端到端學(xué)習(xí),可同時(shí)實(shí)現(xiàn)病害識(shí)別和病斑分割。進(jìn)行特征提取時(shí),分割模型引導(dǎo)識(shí)別模型更加關(guān)注病斑位置;進(jìn)行反卷積時(shí),識(shí)別模型的優(yōu)化也會(huì)提升分割精度。
2.1.1 輸入層
輸入圖像為葉片病害的彩色 3通道圖像,圖像尺寸統(tǒng)一調(diào)整為 224×224像素。為了增強(qiáng)模型的泛化能力,在訓(xùn)練過程中隨機(jī)選擇一種數(shù)據(jù)增強(qiáng)方法對(duì)原圖進(jìn)行處理,并將經(jīng)過歸一化和標(biāo)準(zhǔn)化后的數(shù)據(jù)作為 VGGNet的輸入。
2.1.2 VGGNet網(wǎng)絡(luò)設(shè)計(jì)
保留原VGG16模型的卷積層設(shè)計(jì),共13個(gè)卷積層,5個(gè)最大池化層,每個(gè)卷積層使用Relu激活函數(shù)。卷積核尺寸為3×3,步長(zhǎng)為1像素。將卷積層使用ImageNet數(shù)據(jù)集[28]的預(yù)訓(xùn)練參數(shù)進(jìn)行初始化。
根據(jù)病害種類數(shù)量,將全連接層改為 2個(gè)輸出神經(jīng)元個(gè)數(shù)分別為256和10的全連接層。第二個(gè)全連接層的輸出經(jīng)過softmax被映射成(0,1)之間的類別概率分布,得到病害類別預(yù)測(cè)。
2.1.3 反向全連接層
VGGNet相當(dāng)于一個(gè)編碼器,病害圖像經(jīng)過一系列卷積層和全連接層,成為具有高級(jí)語義信息的低維特征向量,即最后輸出的10個(gè)神經(jīng)元。特征向量將圖像中最重要的圖像特征加以保留,對(duì)這些特征經(jīng)過上采樣即可得到病斑部位。在經(jīng)過逐層上采樣操作解碼之前,需要將得到的10維特征向量做2次線性變換,使其重塑成特征圖形式。
設(shè)計(jì) 2個(gè)反向全連接層,使其輸出的神經(jīng)元個(gè)數(shù)分別為256和25 088。對(duì)10維向量反向后得到256維向量,并將2個(gè)256維向量進(jìn)行融合,如圖5中虛線所示。再次反向后得到25 088維向量并重塑成7像素×7像素×512維的特征圖,與VGGNet中第5個(gè)池化層后的特征圖進(jìn)行融合。2個(gè)融合操作均采用向量加法運(yùn)算,可用來細(xì)化解碼時(shí)得到的特征。
2.1.4 反卷積模塊
采用上采樣與卷積操作相結(jié)合的方法實(shí)現(xiàn)反卷積,反卷積的卷積塊大小與 VGGNet結(jié)構(gòu)相對(duì)應(yīng)。在反卷積后加入重構(gòu)層,得到最后的病斑分割圖。反卷積模塊的結(jié)構(gòu)如表1所示。
圖5 DGVGGNet模型架構(gòu)Fig.5 Architecture of DGVGGNet
表1 反卷積模塊的結(jié)構(gòu)Table 1 Deconvolution architecture
上采樣層使用最近鄰插值法,對(duì)特征圖進(jìn)行 2倍上采樣。最近鄰插值是取采樣點(diǎn)周圍 4個(gè)相鄰像素點(diǎn)中距離最近的點(diǎn)的灰度值作為該點(diǎn)灰度值的方法。最近鄰插值算法速度最快,但會(huì)產(chǎn)生明顯鋸齒和馬賽克現(xiàn)象,因此在每個(gè)上采樣后使用一個(gè)卷積層來平滑圖像邊緣。Concat操作是將VGGNet中對(duì)應(yīng)尺寸的特征圖與上采樣后的特征圖進(jìn)行跳躍連接,然后用 2個(gè)卷積層來融合拼接后的特征圖,并改變特征圖的維度以便輸入下一反卷積塊。第26、27層為圖5中的重構(gòu)層。為了確定病斑的最終位置,26層先將64通道特征圖減少到3通道,可以去掉不重要的特征。27層將3通道壓縮到1通道來預(yù)測(cè)病斑位置,并使用Sigmoid函數(shù)將特征映射到(0,1)。本研究設(shè)置0.5為閾值,> 0.5的像素為病斑位置。
為了訓(xùn)練本模型,需要共同最小化分類損失和病斑分割損失。本研究共10類病害,所以使用多類別交叉熵作為損失函數(shù),分類損失的表達(dá)式如式(1)所示:
式中N為樣本總數(shù),C為類別總數(shù),i代表第i個(gè)訓(xùn)練樣本,j代表訓(xùn)練樣本的類別,為第i個(gè)訓(xùn)練樣本標(biāo)注的真實(shí)病害類別,為VGGNet輸出的第i個(gè)訓(xùn)練樣本為第j個(gè)類別的概率值。
病斑分割圖只包括病斑和背景 2類,因此對(duì)灰度圖的每個(gè)像素使用二分類交叉熵?fù)p失,其表達(dá)式如式(2)所示:
式中N為樣本總數(shù),P為輸出灰度圖的像素點(diǎn)個(gè)數(shù),為224×224像素,共50 176個(gè)像素;i代表第i個(gè)訓(xùn)練樣本,j代表第j個(gè)像素點(diǎn)為第i個(gè)訓(xùn)練樣本的第j個(gè)像素點(diǎn)的真實(shí)類別,為1屬于病斑,為0屬于背景;為第i個(gè)
訓(xùn)練樣本經(jīng)過反卷積模塊輸出灰度圖的第j個(gè)像素的值。在訓(xùn)練過程中,只有部分訓(xùn)練樣本有病斑部位的標(biāo)注,所以使用 2種不同的目標(biāo)函數(shù)。當(dāng)有病斑標(biāo)注時(shí),將最小化目標(biāo)損失作為主要目標(biāo)如式(3)所示:
式中k為0.2。當(dāng)沒有病斑標(biāo)注時(shí),只最小化分類損失Lcls。
2.3.1 試驗(yàn)配置
試驗(yàn)平臺(tái)為Ubuntu 16.04LTS操作系統(tǒng)、運(yùn)行內(nèi)存為32GB、使用 NVIDIA1080 TiGPU加速。算法采用Python3.6和Pytorch1.0深度學(xué)習(xí)框架實(shí)現(xiàn)。
2.3.2 模型參數(shù)
VGGNet卷積層使用ImageNet預(yù)訓(xùn)練參數(shù)初始化;其他卷積層使用 Kaiming均勻分布初始化[29]方法,現(xiàn)已被Pytorch用作默認(rèn)的參數(shù)初始化函數(shù),模式(mode)選擇fan_in,激活函數(shù)的負(fù)斜率為0。Kaiming初始化方法主要為使用非線性激活的深層神經(jīng)網(wǎng)絡(luò)設(shè)計(jì),可以有效地防止激活層輸出在深度神經(jīng)網(wǎng)絡(luò)的正向傳遞中爆炸或消失,加快模型收斂。模型學(xué)習(xí)率(learning rate)為0.000 1,訓(xùn)練輪數(shù)(epoch)為45,迭代次數(shù)(iteration)共15 300次,訓(xùn)練病害分類時(shí)的批尺寸(batch size)為16,訓(xùn)練病斑分割時(shí)的批尺寸為8。優(yōu)化器為Adam[30],權(quán)值衰減(weight decay)為0.000 05。
2.3.3 訓(xùn)練過程
訓(xùn)練分類模型時(shí),使用5 453幅訓(xùn)練集,12 707幅測(cè)試集。訓(xùn)練分割模型時(shí),設(shè)計(jì) 2種試驗(yàn)方案:分別使用45幅和9幅帶像素級(jí)標(biāo)注的圖像做訓(xùn)練集,其中每類病害標(biāo)注分別是5幅和1幅,使用剩余的225幅像素級(jí)標(biāo)注圖像做測(cè)試集。
以9幅病斑標(biāo)注為例,DGVGGNet模型訓(xùn)練開始時(shí),先使用9幅圖像使用式(3)訓(xùn)練一輪,可引導(dǎo)網(wǎng)絡(luò)在特征提取時(shí)重視病斑部分。然后訓(xùn)練無病斑標(biāo)注的樣本 25批后,再使用帶病斑標(biāo)注的訓(xùn)練集訓(xùn)練一輪,可保證對(duì)病斑生成結(jié)果的持續(xù)監(jiān)督。直到無病斑標(biāo)注的訓(xùn)練樣本全部訓(xùn)練結(jié)束即完成一個(gè)epoch訓(xùn)練。
在每個(gè)epoch訓(xùn)練結(jié)束后,記錄訓(xùn)練準(zhǔn)確率和平均損失。用本輪訓(xùn)練好的模型對(duì)所有測(cè)試樣本進(jìn)行一次預(yù)測(cè),并記錄測(cè)試準(zhǔn)確率和平均損失。訓(xùn)練45輪后,選擇在測(cè)試集上病害識(shí)別損失最小的權(quán)重,作為最終的模型。
分別使用VGGNet模型、9幅病斑監(jiān)督的DGVGGNet和45幅病斑監(jiān)督的DGVGGNet進(jìn)行訓(xùn)練,保證參數(shù)設(shè)置相同,測(cè)試樣本相同,并與孫俊等[6]和許景輝等[7]研究的識(shí)別方法進(jìn)行比較。5個(gè)模型在訓(xùn)練集和測(cè)試集上的識(shí)別準(zhǔn)確率如圖6所示,孫俊等[6]無預(yù)訓(xùn)練參數(shù)收斂較慢,只對(duì)前45輪結(jié)果進(jìn)行展示。因?yàn)槊看蔚茧S機(jī)使用一種圖像增強(qiáng)方式,訓(xùn)練識(shí)別準(zhǔn)確率會(huì)有小的波動(dòng)。前 5輪訓(xùn)練時(shí),DGVGGNet的訓(xùn)練識(shí)別準(zhǔn)確率上升較快,且在測(cè)試集上的識(shí)別準(zhǔn)確率比其他模型提前到達(dá) 95%以上,第一輪測(cè)試時(shí)DGVGGNet-45的識(shí)別準(zhǔn)確率最高。迭代輪數(shù)在27輪左右時(shí),DGVGGNet-45的訓(xùn)練識(shí)別準(zhǔn)確率最先趨向于100%。由識(shí)別準(zhǔn)確率變化可知,加入反卷積后的DGVGGNet可以使模型加快收斂。
圖6 識(shí)別準(zhǔn)確率變化曲線Fig.6 Changing curves of recognition accuracy rate
本研究選擇VGGNet的第36輪模型、DGVGGNet-5的第44輪模型、DGVGGNet-45的第27輪模型、孫俊等[6]的 74輪模型和許景輝等[7]的第 42輪模型為最終測(cè)試模型,并在原測(cè)試集以及7個(gè)增強(qiáng)后的測(cè)試集上進(jìn)行測(cè)試,在各測(cè)試集上的識(shí)別準(zhǔn)確率如表 2所示。其中,DGVGGNet-45在亮度較暗的情況有明顯優(yōu)勢(shì)。DGVGGNet-9模型識(shí)別效果較差甚至低于 VGGNet,這是因?yàn)橛行┎“弑容^相似,一類病斑在不同階段也會(huì)有不同的表現(xiàn)形式,所以每類病害只使用一張病斑標(biāo)注訓(xùn)練反卷積時(shí),特征提取網(wǎng)絡(luò)會(huì)過于關(guān)注某種病害特征。孫俊等[6]不使用預(yù)訓(xùn)練參數(shù),訓(xùn)練樣本比例較小會(huì)影響模型的識(shí)別效果。
表2 不同模型在各測(cè)試集上的識(shí)別結(jié)果Table 2 Recognition result of different models on each test set
經(jīng)過平移后葉片位置和背景形狀發(fā)生變化,某些病斑會(huì)被裁剪掉,所以模型的識(shí)別效果都有所下降。2個(gè)DGVGGNet的識(shí)別準(zhǔn)確率都明顯高于 VGGNet,說明DGVGGNet更加關(guān)注病斑部分,能適應(yīng)病斑在圖像邊緣的情況;而 VGGNet的特征提取器會(huì)對(duì)病斑方位比較敏感,說明模型會(huì)考慮背景形狀,當(dāng)背景與病斑的相對(duì)位置發(fā)生變化時(shí),識(shí)別效果會(huì)變差。由于孫俊等[6]加入了全局池化,增強(qiáng)了特征圖與類別的關(guān)系、對(duì)輸入的空間變換的不變性,所以在平移測(cè)試中效果最好。許景輝等[7]對(duì)VGGNet加入了隨機(jī)失活(dropout)層,可在一定程度上解決過擬合問題,在平移測(cè)試中結(jié)果與DGVGGNet相當(dāng)。
經(jīng)過番茄果實(shí)、土壤以及綠色葉片遮擋后,果實(shí)遮擋的識(shí)別準(zhǔn)確率變化較大,而其他遮擋的結(jié)果相差不大,說明模型對(duì)顏色相差較大的遮擋物比較敏感。孫俊等[6]的方法在果實(shí)遮擋時(shí)識(shí)別準(zhǔn)確率急劇下降,在綠葉遮擋時(shí)的識(shí)別準(zhǔn)確率也下降較多,說明從頭訓(xùn)練的模型不足以應(yīng)對(duì)遮擋物的影響。許景輝等[7]和DGVGGNet的識(shí)別準(zhǔn)確率明顯高于VGGNet,說明dropout和反卷積能夠緩解過擬合現(xiàn)象,可以更好地應(yīng)對(duì)遮擋物的干擾。
降低光照強(qiáng)度后,5個(gè)模型的識(shí)別效果都有所下降,而DGVGGNet-45模型的識(shí)別準(zhǔn)確率最高且下降最緩慢。在降低 60%光照時(shí),DGVGGNet-9模型識(shí)別效果超過VGGNet,說明在昏暗的環(huán)境下,使用反卷積引導(dǎo)的特征提取網(wǎng)絡(luò)能對(duì)葉部病斑更加敏感。而孫俊等[6]在降低光照后的識(shí)別率急劇下降,不適用于光照不足的場(chǎng)景。
3.2.1 分割結(jié)果評(píng)價(jià)指標(biāo)
為了合理評(píng)估病斑區(qū)域的分割精度,本研究使用語義分割常用的4個(gè)評(píng)價(jià)指標(biāo):像素準(zhǔn)確率(Pixel Accuracy,PA)、平均像素準(zhǔn)確率(Mean Pixel Accuracy, MPA)、平均交并比(Mean Intersection over Union, MIoU)和頻權(quán)交并比(Frequency Weighted Intersection over Union, FWIoU)。
像素準(zhǔn)確率是所有分類正確的像素?cái)?shù)量占總像素的比例,如式(4)所示:
式中k為類別數(shù),pii為預(yù)測(cè)正確的像素?cái)?shù)量,pij代表類別為i像素被預(yù)測(cè)為類別 j的數(shù)量。
平均像素準(zhǔn)確率是分別計(jì)算每個(gè)類被正確分類像素?cái)?shù)的比例,然后對(duì)所有類別取平均值,如式(5)所示:
平均交并比是模型對(duì)某一類預(yù)測(cè)結(jié)果和真實(shí)值的交集與并集的比值,然后對(duì)所有類別取平均值。平均交并比是語義分割中最常用的評(píng)價(jià)指標(biāo),表達(dá)式如式(6)所示:
式中pji代表類別為j像素被預(yù)測(cè)為類別i的數(shù)量。
頻權(quán)交并比在平均交并比的基礎(chǔ)上,根據(jù)每個(gè)類別出現(xiàn)的頻率設(shè)置權(quán)值,表達(dá)式如式(7)所示:
3.2.2 病斑分割精度及運(yùn)行時(shí)間比較
分別使用9幅和45幅帶病斑標(biāo)注的圖像作為訓(xùn)練樣本,225幅圖像作為測(cè)試樣本,標(biāo)注只分為前景和病斑部位而不考慮病害類別,試驗(yàn)結(jié)果取 225幅圖像測(cè)試結(jié)果的平均值。表 3為各算法分割精度對(duì)比結(jié)果。由表 3可知,DGVGGNet的分割精度相比于 FCN-8s、U-Net和 SegNet有明顯提高。DGVGGNet-9的分割精度與用45幅圖像訓(xùn)練的其他網(wǎng)絡(luò)相差不大,說明本方法在使用極少的訓(xùn)練樣本時(shí),也能達(dá)到較好的分割效果。U-Net-45和SegNet-45高于FCN-8s-45,是因?yàn)镕CN-8s上采樣時(shí)只用到特征提取網(wǎng)絡(luò)的后3個(gè)池化層輸出的特征圖,并沒有融合低級(jí)語義特征,而其他3個(gè)模型都融合了低級(jí)語義特征。
表3 各算法分割精度及運(yùn)行時(shí)間比較Table 3 Comparison of segmentation accuracy and run time of each algorithm
圖 7展示了 9種病害在 FCN-8s-45、U-Net-45、SegNet-45、DGVGGNet-9和DGVGGNet-45 4個(gè)模型上的分割結(jié)果,可以看出添加跳躍連接融合低級(jí)語義特征后,U-Net、SegNet和DGVGGNet可以將小的病斑分割出來,而FCN-8s的分割結(jié)果會(huì)丟失一些細(xì)節(jié),分割邊界較模糊,相近的病斑區(qū)域會(huì)出現(xiàn)粘連的情況。DGVGGNet分割的病斑邊緣比較光滑,U-Net的分割邊緣出現(xiàn)鋸齒現(xiàn)象,這是因?yàn)?U-Net只在上采樣后加入卷積層,而DGVGGNet重構(gòu)層的卷積操作可以再次平滑分割邊緣。SegNet的分割邊緣比較平滑,但是容易缺失某些病斑區(qū)域,如晚疫病的病斑部分,說明SegNet對(duì)同一病斑中的光照變化較敏感。從早疫病的分割圖可以看出,陰影區(qū)域容易被誤認(rèn)為是病斑,而DGVGGNet能更好地區(qū)分陰影和真正的病斑區(qū)域。
不同病害分割的難易程度不同,如二斑葉螨病和花葉病的病斑區(qū)域?yàn)榈S色,發(fā)病邊緣不明顯,所以分割難度較大。對(duì)每類病斑的25幅測(cè)試樣本的分割結(jié)果取平均值,得到DGVGGNet-45模型在9種病害上的分割精度如表4所示??梢钥闯?,對(duì)斑點(diǎn)類的病害,DGVGGNet-45的分割精度較高。
圖7 病斑分割結(jié)果對(duì)比Fig.7 Comparison of disease segmentation result
表4 DGVGGNet-45在9種病害上的分割精度Table 4 Segmentation accuracy of DGVGGNet-45 on nine kinds of diseases
在相同的圖形處理器(Graphic Processing Unit,GPU)上輸入單幅圖像進(jìn)行測(cè)試,由表 4可知本模型的單幅圖像運(yùn)行時(shí)間與其他算法相差不大,達(dá)到每張12 ms,滿足實(shí)時(shí)性需求。
針對(duì)當(dāng)前植物葉部病害識(shí)別與分割模型易受陰影、遮擋物及光線強(qiáng)度干擾,特征提取具有盲目和不確定性的問題,使用PlantVillage數(shù)據(jù)集中10種番茄病害圖像,構(gòu)建了基于反卷積引導(dǎo)的VGG網(wǎng)絡(luò)模型。
1)在全連接層后構(gòu)造反卷積層,可增加特征提取網(wǎng)絡(luò)的透明性,并同時(shí)實(shí)現(xiàn)病害分類與病斑分割。
2)只標(biāo)注少量病斑樣本訓(xùn)練模型,節(jié)省大量標(biāo)注成本。與全卷積網(wǎng)絡(luò)(Fully Convolutional Networks,F(xiàn)CN)、U-Net和SegNet相比,本模型達(dá)到更好的分割精度,在像素準(zhǔn)確率、平均交并比和頻權(quán)交并比 3個(gè)分割評(píng)價(jià)指標(biāo)中達(dá)到最高,分別為94.66%、75.36%和90.46%。提升分割精度的同時(shí),反卷積引導(dǎo)特征提取網(wǎng)絡(luò)更加關(guān)注病斑部分,達(dá)到了99.19%的識(shí)別精度,與VGGNet相比提升了0.15%且收斂速度更快。在每項(xiàng)干擾測(cè)試中都得到較好的識(shí)別精度,且在降低亮度時(shí)優(yōu)勢(shì)明顯,證明本模型對(duì)陰影、遮擋物以及低光照強(qiáng)度具有魯棒性。
3)使用上采樣加卷積層的方式實(shí)現(xiàn)反卷積,并設(shè)計(jì)重構(gòu)層,使分割結(jié)果更加平滑;添加跳躍連接融合低級(jí)特征,可以恢復(fù)細(xì)節(jié)特征,保留較小的病斑并細(xì)化分割邊緣。