雷 雨 周晉兵 何東健 陳 鵬 曾偉輝 梁 棟
(1.安徽大學(xué)農(nóng)業(yè)生態(tài)大數(shù)據(jù)分析與應(yīng)用技術(shù)國家地方聯(lián)合工程研究中心, 合肥 230601; 2.安徽大學(xué)互聯(lián)網(wǎng)學(xué)院, 合肥 230601;3.西北農(nóng)林科技大學(xué)機械與電子工程學(xué)院, 陜西楊凌 712100; 4.農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)物聯(lián)網(wǎng)重點實驗室, 陜西楊凌 712100)
條銹病是小麥最主要病害之一[1],常年在我國西北、西南、華北、長江中下游等冬麥區(qū)和西北春麥區(qū)廣泛流行,該病會引起小麥大幅減產(chǎn),甚至絕收,對小麥安全生產(chǎn)具有重大威脅[2]。小麥條銹病是由條形柄銹菌(Pucciniastriiformisf. sp.tritici)[3]引起,其發(fā)病具有分布廣、流行性強、危害大等特點。首先在田間出現(xiàn)條銹菌源中心,然后借助氣流由發(fā)病中心向周邊擴散感染,以條銹病原真菌夏孢子的形態(tài)在異地越夏和越冬,完成條銹病害的周年循環(huán),并在不同區(qū)域往返流行傳染[4-6]。因此,快速準(zhǔn)確地檢測出田間空氣中真菌夏孢子數(shù)量,可加強對小麥條銹病的早期預(yù)測預(yù)報,對于減少經(jīng)濟損失、控制農(nóng)藥濫用、保證糧食安全具有重要意義。
隨著計算機視覺技術(shù)的發(fā)展,國內(nèi)外學(xué)者對真菌孢子識別已經(jīng)取得了一定的進展[7-9]。李小龍等[10]對小麥條銹病菌夏孢子顯微圖像進行基于最近鄰插值法的縮放處理、基于K-means聚類算法的分割處理、形態(tài)學(xué)操作修飾和分水嶺分割等處理,實現(xiàn)了夏孢子的自動計數(shù),但當(dāng)孢子大面積重疊時,算法效率會降低。齊龍等[11]通過分塊背景提取法校正光照,根據(jù)Canny算子進行邊緣檢測,利用橢圓度、復(fù)雜度和最小外接矩陣寬度等形態(tài)學(xué)特征進行分類,最后利用距離變換和改進的分水嶺算法對粘連孢子進行檢測,準(zhǔn)確度達到了98.5%,但特征提取過程較復(fù)雜。王震等[12]通過提取孢子圖像的梯度方向直方圖特征(HOG特征)作為輸入向量,提出了一種加性交叉核支持向量機(IKSVM)的稻瘟病孢子檢測方法,實現(xiàn)了98.2%的檢測率,但平均檢測耗時需5.5 s。上述研究表明,使用傳統(tǒng)機器視覺方法檢測孢子,需預(yù)先針對孢子圖像提取目標(biāo)特征,然后采用算法進行目標(biāo)擬合和檢測,其特征提取過程較繁雜,費時費力。近年來,隨著深度學(xué)習(xí)算法不斷改進和計算機算力提高,深度學(xué)習(xí)在農(nóng)業(yè)領(lǐng)域得到廣泛應(yīng)用[13-14]。LIANG等[15]對小麥白粉病孢子采用改進U-Net網(wǎng)絡(luò)進行圖像分割,分割率達到了91.4%。姚青等[16]基于改進CornerNet自動檢測方法,實現(xiàn)了對2種稻飛虱檢測,平均精確度為95.53%。楊蜀秦等[17]基于改進CenterNet模型對無人機遙感影像的玉米雄蕊識別精度達到了92.4%,檢測速度達到了36 f/s。目前國內(nèi)外學(xué)者采用深度學(xué)習(xí)方法檢測真菌孢子類的研究較少,大部分研究是基于Anchor(錨框)的農(nóng)作物和病蟲害目標(biāo)檢測,該類方法雖能滿足實時檢測要求,但需預(yù)置錨框的尺寸、比例,大量的錨框會導(dǎo)致運算復(fù)雜度高,影響訓(xùn)練的效率。當(dāng)前以CornerNet[18]、CenterNet[19]為代表的基于Anchor-Free的模型應(yīng)用較為廣泛,其中,CenterNet模型具有擴展性強、推理速度快以及檢測精度高等優(yōu)點,在快速檢測的同時識別準(zhǔn)確率高,具有復(fù)雜背景下微小夏孢子實時檢測識別的潛力。
針對顯微圖像中小麥條銹病菌夏孢子自動檢測存在嚴(yán)重的誤檢和漏檢問題,本文擬通過優(yōu)化特征提取網(wǎng)絡(luò)提取目標(biāo)特征,減少網(wǎng)絡(luò)參數(shù)防止過擬合,同時改進CenterNet檢測框為帶角度的橢圓框以增強分割重疊度,提出一種基于改進CenterNet模型的小麥條銹病菌夏孢子自動檢測方法。
本研究供試小麥條銹病菌夏孢子于西北農(nóng)林科技大學(xué)小麥抗病種質(zhì)資源創(chuàng)制與利用研究中心東南窯低溫溫室內(nèi)繁育,真菌孢子顯微圖像采用文獻[20]中的小麥條銹病菌夏孢子顯微圖像遠(yuǎn)程采集設(shè)備采集,設(shè)備可自動完成取載玻片、涂脂、空中孢子捕捉、孢子顯微圖像采集、載玻片回收等一系列功能,能夠遠(yuǎn)程實時采集放大400倍的夏孢子顯微圖像。在實驗室條件下,用洗耳球在采集設(shè)備進氣口上方緩慢持續(xù)吹起新鮮的小麥條銹病菌夏孢子,使孢子擴散到空氣中,由機體內(nèi)置風(fēng)扇使捕捉倉內(nèi)形成負(fù)壓,將上方夾帶著孢子的空氣從上到下垂直抽入倉內(nèi)粘附在載玻片上,根據(jù)矩形點陣式采集方法,設(shè)備通過驅(qū)動模塊輸出不同的脈沖數(shù)在載玻片中間50 cm×25 cm區(qū)域完成孢子顯微圖像的采集,分辨率為1 024像素×822像素,BMP格式,所采集的部分供試夏孢子原始圖像如圖1所示。
由圖1可以看出:①夏孢子外形似橢圓,個體小且大小不一。②夏孢子相互粘連現(xiàn)象嚴(yán)重。③由于涂抹凡士林出現(xiàn)的晶體狀雜質(zhì)和空氣中灰塵影響,圖像中存在晶體狀雜質(zhì)和灰塵。上述夏孢子圖像特點為真菌孢子自動檢測增加了難度。獲得的原始孢子顯微圖像經(jīng)過人工挑選和預(yù)處理后,共獲得數(shù)據(jù)集21 420幅。由于經(jīng)預(yù)處理的圖像邊緣會超出原始圖像,因此,在邊緣填充與凡士林顏色相近的背景,并將圖像分辨率修改為1 366像素×1 366像素,jpg格式。
通過統(tǒng)計,每幅圖像中存在1~50個夏孢子。當(dāng)孢子數(shù)量增多,大量孢子密集粘連,若使用矩形框標(biāo)注數(shù)據(jù),會導(dǎo)致框間重復(fù)交疊,影響檢測效果。因此,本文使用橢圓框標(biāo)注數(shù)據(jù)集,以減少背景對分割效果的影響。經(jīng)人工使用帶角度的橢圓框進行標(biāo)注,使用18 000幅用于訓(xùn)練,按照8∶2劃分為訓(xùn)練集與驗證集,剩余3 420幅作為測試集。由于使用Via 2.0標(biāo)注的COCO類型數(shù)據(jù)集未保存物體的長短軸長度和角度,因此需對標(biāo)注數(shù)據(jù)進行預(yù)處理。使用保存數(shù)據(jù)的144個離散點,計算出橢圓的長短軸長度和旋轉(zhuǎn)角度,最終得到標(biāo)注數(shù)據(jù)格式為bbox[x,y, 2a, 2b, angle]。x和y為橢圓中心點坐標(biāo),2a和2b為長短軸長度,angle為長軸相對于X軸正方向的角度,范圍是0°~180°。
近年來,深度學(xué)習(xí)已在農(nóng)作物識別和病害檢測等方面獲得了較好的效果[13,21-23]?;贑enterNet模型[19]具有檢測速度快、識別精度高以及泛化能力強等優(yōu)點,具有快速識別孢子的潛力。夏孢子形態(tài)學(xué)特征為近橢圓或圓形,且孢子易粘連在一起,使用傳統(tǒng)機器視覺方法進行粘連分割難度較大?;诖耍疚倪x擇CenterNet模型進行孢子自動檢測方法的研究。
CenterNet[19]是無錨框模型目標(biāo)檢測算法的典型代表,與CornerNet[18](檢測左上角點和右下角點)和ExtremeNet[24](檢測最上、最下、最左、最右、中心點)類似,CenterNet通過檢測物體的中心點和長寬來確定檢測框的位置、尺寸。模型結(jié)構(gòu)主要包括特征提取網(wǎng)絡(luò)和預(yù)測頭2個模塊。第1模塊的特征提取網(wǎng)絡(luò)負(fù)責(zé)提取特征生成特征圖,第2模塊的預(yù)測頭部分用來預(yù)測目標(biāo)的熱圖、中心點偏置和預(yù)測框的長寬。CenterNet模型將目標(biāo)檢測問題轉(zhuǎn)換為檢測目標(biāo)中心點問題,檢測時通過特征提取網(wǎng)絡(luò)輸出的特征圖經(jīng)過預(yù)測頭得出檢測目標(biāo)的中心點位置,并通過偏置量微調(diào)中心點的位置,使預(yù)測的中心點位置更加準(zhǔn)確。
直接將原始CenterNet模型用于檢測小麥條銹病菌夏孢子圖像,易出現(xiàn)目標(biāo)孢子的誤檢和漏檢問題。針對誤檢問題,本研究采用簡化網(wǎng)絡(luò)結(jié)構(gòu)的方式構(gòu)建了參數(shù)更少的特征提取網(wǎng)絡(luò)ResNet10,減少模型的過擬合,降低了誤檢率;針對漏檢問題,將原始的矩形檢測框改進為帶角度的橢圓檢測框,同時,使用映射矩形計算出熱圖的高斯核半徑,減少檢測框中的無效背景,提高了模型檢測的精確率與分割度。改進后的小麥條銹病菌夏孢子CenterNet檢測模型網(wǎng)絡(luò)框架如圖2所示,圖中W為輸入圖像的寬度,H為輸入圖像的高度。
特征提取網(wǎng)絡(luò)是目標(biāo)檢測中的重要一環(huán),目標(biāo)檢測模型的檢測精度、速度等直接受到特征提取網(wǎng)絡(luò)的影響。原始CenterNet模型的特征提取網(wǎng)絡(luò)有很多,一般選擇Hourglass Net[25]、DLANet[26]或ResNet[27]等。這些網(wǎng)絡(luò)主要用于提取輸入圖像的特征。
由于夏孢子顯微圖像的數(shù)據(jù)集數(shù)量不夠龐大,且顯微圖像中有夏孢子目標(biāo)尺寸較微小,孢子種類較少的特點,若使用結(jié)構(gòu)參數(shù)量較大的Hourglass Net和DLANet網(wǎng)絡(luò)提取特征,易導(dǎo)致模型過擬合;基于此,本研究基于ResNet網(wǎng)絡(luò)結(jié)構(gòu),構(gòu)建了參數(shù)更少的ResNet10網(wǎng)絡(luò)作為改進CenterNet模型的特征提取網(wǎng)絡(luò)結(jié)構(gòu),以降低夏孢子檢測模型的過擬合,ResNet10結(jié)構(gòu)如圖3所示。
由于需要檢測孢子的角度,在原始CenterNet損失函數(shù)的基礎(chǔ)上,需添加角度損失Lang進行訓(xùn)練。改進CenterNet模型的損失函數(shù)Ldet由4部分組成:熱力圖損失Lheatmap、物體長短軸損失Lab、中心偏置損失Loffset和角度損失Lang,計算式為
Ldet=λheatmapLheatmap+λabLab+λoffsetLoffset+λangLang
(1)
式中λheatmap——熱圖損失系數(shù)
λab——長短軸損失系數(shù)
λoffset——中心偏置損失系數(shù)
λang——角度損失系數(shù)
孢子長短軸損失和角度損失較大,因此λab和λang取值0.1,其他損失值較小,因此系數(shù)λ均取1。Lheatmap使用改進的Focal loss[28]損失
(2)
式中N——圖像中關(guān)鍵點的數(shù)量
Yxyc、xyc——真實、預(yù)測孢子像素點(x,y)的置信度
α、β——超參數(shù),分別取2和4
經(jīng)下采樣后,原始檢測框的中心點會產(chǎn)生偏差,因此對每個中心點添加一個偏移損失Loffset
(3)
式中R——下采樣倍數(shù)
p——真實中心點
類似地,Lab和角度損失亦采用L1損失
(4)
式中pk——檢測框的中心點
sk——檢測框的長短軸長度(或角度)
原始CenterNet模型訓(xùn)練過程中預(yù)測后的矩形框與人工標(biāo)注的矩形框一般會出現(xiàn)3種位置關(guān)系,如圖4所示。
從圖4可看出,3種綠色的預(yù)測框均能很好地包圍目標(biāo)。所以,為了能得到效果好的預(yù)測框,需準(zhǔn)確計算出圖4中的半徑r(即高斯核半徑)。Heatmap熱圖[29],起初在人體關(guān)鍵點檢測任務(wù)中得到應(yīng)用,后來在目標(biāo)檢測任務(wù)中表現(xiàn)出很好的性能。在CenterNet模型中,可通過
(5)
式中 (x,y)——圖中點的坐標(biāo)
σp——標(biāo)準(zhǔn)差C——類別數(shù)
將目標(biāo)標(biāo)注框中心點的關(guān)鍵信息散射到高斯核半徑為r的熱圖上,使得關(guān)鍵點的檢測轉(zhuǎn)換成可進行全卷積的熱圖,最后通過熱圖、偏置和長寬信息得到預(yù)測結(jié)果。
對于矩形檢測框,最小高斯核半徑r計算式為
r=min(r1,r2,r3)
(6)
其中
(7)
(8)
(9)
式中Ioverlap——真實框與標(biāo)注框最小重疊度,取0.7
w——矩形框?qū)抙——矩形框高
由于本文使用橢圓檢測框檢測目標(biāo),不能直接使用上述原始CenterNet模型的高斯核半徑計算方法。因此,本文提出使用圖5中的6種方式將孢子的橢圓框映射成矩形框,再通過式(6)~(9)間接計算出最小的高斯核半徑r。當(dāng)橢圓的角度為0°、90°和180°時,R5取圖5b紅色矩形,其余情況使用圖5a方式計算。將橢圓框中心點的關(guān)鍵信息散射到高斯核半徑為r的熱圖上,最后通過熱圖、偏置、長短軸長度和角度信息得到預(yù)測結(jié)果。
目標(biāo)檢測領(lǐng)域的評價指標(biāo)除使用平均精度均值(Mean average precision, MAP)以外,對于圖像分割,還經(jīng)常使用COCO數(shù)據(jù)集的評價指標(biāo)平均交并比(Mean intersection over union,MIOU)。對于原始CenterNet檢測結(jié)果,由于預(yù)測框均使用矩形,計算MIOU較方便。但本文的檢測框使用帶角度的橢圓形檢測框,計算MIOU比較困難。因此,本文使用蒙特卡洛計算方法。對于真實的橢圓標(biāo)注框Rgt和預(yù)測框Rpre,生成隨機N×N個坐標(biāo)點,統(tǒng)計落在2個框內(nèi)的落點個數(shù),計算IOU的方法為
IIOU=Ninter/(Num(Rgt)+Num(Rpre)-Ninter)
(10)
其中
Ninter=Num(Rgt&Rpre)
(11)
式中IIOU——交并比(IOU)
&——同時落在2個檢測框的情況
Ninter——同時落在Rgt和Rpre的數(shù)目
Num——計數(shù)函數(shù)
為更加全面地評估不同模型對孢子的檢測精度,還需使用精確率(Precision)、召回率(Recall)與F1值作為評價指標(biāo)。
所有網(wǎng)絡(luò)均在同一硬件環(huán)境下訓(xùn)練,操作系統(tǒng)為Windows 10,處理器為AMD 3700X,顯卡為GPU1080Ti,顯存11 GB。訓(xùn)練使用Pytorch 1.6深度學(xué)習(xí)框架,圖像為21 420幅,18 000幅作為訓(xùn)練和驗證集,按照8∶2劃分,剩余圖像作為測試集。訓(xùn)練使用的樣本批尺寸(Batch size)為8,訓(xùn)練過程采用自適應(yīng)矩估計(Adaptive moment estimation, ADAM)方法進行優(yōu)化。訓(xùn)練共20個迭代周期(Epoch),每個周期1 800次,共計迭代3.6×105次。訓(xùn)練學(xué)習(xí)率設(shè)為1.25×10-4,權(quán)重衰減設(shè)為0.000 1。
使用同一數(shù)據(jù)集分別使用不同特征提取網(wǎng)絡(luò)和不同橢圓映射矩形,在相同模型訓(xùn)練環(huán)境和方法下進行相同批次訓(xùn)練,特征提取網(wǎng)絡(luò)分別使用ResNet10、ResNet18、ResNet34和ResNet50,橢圓映射矩形分別使用圖5的R1、R2、R3、R4、R5、R6進行對比實驗,實驗對比結(jié)果如表1、2所示。
表1 不同特征提取網(wǎng)絡(luò)的精確率和召回率Tab.1 Precision and recall of different feature extraction networks %
表2 不同特征提取網(wǎng)絡(luò)的F1值和分割率Tab.2 F1 value and segmentation rate of different feature extraction networks %
從表1、2中可看出,隨著特征提取網(wǎng)絡(luò)層數(shù)的增多,孢子的檢測指標(biāo)并未一直減小,使用ResNet34作為特征提取網(wǎng)絡(luò)的模型綜合性能最差。當(dāng)使用結(jié)構(gòu)簡單的ResNet10特征提取網(wǎng)絡(luò)檢測孢子圖像,識別準(zhǔn)確率未受到影響,網(wǎng)絡(luò)的訓(xùn)練速度反而更快。使用R1、R2、R3、R4映射矩形計算高斯核半徑時,ResNet10的準(zhǔn)確率與ResNet18、ResNet50接近,平均精確率優(yōu)于ResNet34模型0.40個百分點。特征提取網(wǎng)絡(luò)使用ResNet10網(wǎng)絡(luò)時,高斯核半徑計算方法使用R1和R4矩形的檢測精確率較高,與R5矩形和R6矩形相比,檢測精確率提高0.56~1.26個百分點。使用R4映射矩形計算高斯半徑時(特征提取網(wǎng)絡(luò)使用ResNet10網(wǎng)絡(luò)),取得的分割效果最好,優(yōu)于ResNet34(使用R2映射矩形)方法2.47個百分點,與ResNet50網(wǎng)絡(luò)相近,但訓(xùn)練速率更快。因此,本文選擇ResNet10網(wǎng)絡(luò)作為改進CenterNet模型的特征提取網(wǎng)絡(luò),高斯核半徑使用R4映射矩形計算,能夠使用更少的參數(shù)訓(xùn)練網(wǎng)絡(luò),加快訓(xùn)練速率,并得到很好的檢測效果。
在相同條件下,分別使用原始CenterNet模型(特征提取網(wǎng)絡(luò)使用ResNet50)與改進CenterNet模型(高斯核半徑計算使用R4矩形)進行訓(xùn)練,實驗對比數(shù)據(jù)如表3所示,檢測結(jié)果如圖6所示。
表3 2種算法對不同密度孢子的檢測結(jié)果對比Tab.3 Comparison of detection results of two algorithms for spores with different densities
從表3可以看出,隨著孢子數(shù)量的增多,原始CenterNet算法和改進CenterNet算法的精確率和召回率均減小。當(dāng)孢子數(shù)量在10~30時,原始CenterNet算法的精確率下降了3.14個百分點,召回率下降了5.08個百分點。改進CenterNet算法的精確率下降了2.57個百分點,召回率下降了3.62個百分點。隨著孢子數(shù)量的增多,原始CenterNet算法容易受粘連孢子的影響導(dǎo)致多孢一框及漏檢的現(xiàn)象,對粘連孢子的檢測精度明顯下降。而改進CenterNet算法使用橢圓框分割孢子,減少了檢測框中的無效背景,能夠預(yù)測更精確的檢測框,在粘連孢子的檢測上取得了較好的檢測效果。改進CenterNet模型的識別精確率達到了98.77%,重疊度為83.63%,檢測速度為41 f/s,與原始的CenterNet模型相比,識別精確率提高0.23個百分點,重疊度提高7.53個百分點,檢測速度加快11 f/s。此外,同等條件下,以ResNet10作為特征提取網(wǎng)絡(luò)的改進CenterNet模型占用內(nèi)存為43.8 MB,是原始CenterNet模型的31.5%,模型占用內(nèi)存降低了68.5%,更易于部署到服務(wù)器或遠(yuǎn)程設(shè)備上。因此,本文提出的改進CenterNet模型,能夠滿足小麥條銹病菌夏孢子自動檢測的應(yīng)用要求,與原始CenterNet模型相比,在同等條件下,改進CenterNet模型能夠取得更高的識別精度和更快的檢測速度,并獲得更高的分割率,減少誤檢率和漏檢率。
從圖6可以看出,在孢子數(shù)量較少的情況下,2種方法均能檢測出所有孢子。但當(dāng)孢子數(shù)目增多到10個以上時,原始CenterNet模型出現(xiàn)了漏檢的現(xiàn)象,如圖6b第4幅圖紅框所示,這是由于孢子的密度增大、孢子粘連與重疊增加了模型識別的難度。此外,由于孢子圖像中會存在一些雜質(zhì)(灰塵等),在原始CentetNet模型檢測結(jié)果中出現(xiàn)了誤檢的現(xiàn)象,如圖6b第3幅圖所示。由于改進CenterNet模型的檢測框是帶角度的橢圓框,更加貼合孢子的形狀,在框中出現(xiàn)的背景更少。改進CenterNet模型可顯著地關(guān)注孢子區(qū)域,并減少背景區(qū)域,在保證檢測精準(zhǔn)率的前提下,獲得更高的孢子檢測分割率。因此,本文使用的改進CenterNet模型的橢圓框檢測方法效果優(yōu)于原始CenterNet模型,出現(xiàn)誤檢和漏檢的概率更低。
(1)為解決小麥條銹病菌夏孢子自動檢測存在嚴(yán)重的誤檢和漏檢問題,以實現(xiàn)快速、準(zhǔn)確地檢測真菌夏孢子,本研究根據(jù)孢子形態(tài)學(xué)特點,從特征提取網(wǎng)絡(luò)、檢測框和熱圖高斯核半徑計算3方面改進了CenterNet模型。首先基于ResNet18網(wǎng)絡(luò),減半網(wǎng)絡(luò)中的Basic Block層數(shù),構(gòu)建孢子特征提取網(wǎng)絡(luò)ResNet10,其次將CenterNet模型的矩形檢測框改進為帶角度的橢圓檢測框以增強分割重疊度,最后使用橢圓映射矩形計算出熱圖的高斯核半徑,最終提出了一種基于改進CenterNet模型的小麥條銹病菌夏孢子自動檢測方法。
(2)在測試集上的實驗表明,改進后的CenterNet模型的識別精確率達到了98.77%,重疊度為83.63%,檢測速度為41 f/s,達到了實時檢測的應(yīng)用需求,比原始CenterNet模型平均重疊度提高了7.53個百分點,檢測速度快了11 f/s,模型占用內(nèi)存降低了68.5%,使得改進模型更易于部署到服務(wù)器或者遠(yuǎn)程設(shè)備上。因此,本文提出的基于改進CenterNet的真菌孢子檢測模型可以為小麥條銹病病害檢測提供一種有效的方法支持。