陳繼清,韋德鵬,龍騰,羅天,王樺彬
(廣西大學(xué)機(jī)械工程學(xué)院,南寧市,530007)
農(nóng)作物病蟲(chóng)害是一種嚴(yán)重的自然災(zāi)害,具有種類(lèi)多、影響大以及時(shí)常暴發(fā)成災(zāi)的特點(diǎn)[1]。病蟲(chóng)害在全球范圍內(nèi)造成了巨大的經(jīng)濟(jì)損失,據(jù)研究表明,世界各國(guó)有接近一半的農(nóng)作物產(chǎn)量是由于病蟲(chóng)害而損失掉的[2]。為了降低病蟲(chóng)害造成的損失,Bernardo[3]在1993年提出了有害生物綜合治理(IPM)方法,該方法要求對(duì)農(nóng)作物中的害蟲(chóng)種類(lèi)進(jìn)行識(shí)別和分類(lèi),以便農(nóng)業(yè)工作者能夠選擇準(zhǔn)確的農(nóng)藥類(lèi)別和有效的防治方法來(lái)阻止病蟲(chóng)害的發(fā)生。傳統(tǒng)的害蟲(chóng)種類(lèi)識(shí)別和分類(lèi)方法主要是由昆蟲(chóng)學(xué)家或農(nóng)業(yè)工作者周期性的進(jìn)入農(nóng)田,對(duì)農(nóng)作物中的昆蟲(chóng)類(lèi)別進(jìn)行調(diào)查,以尋找病蟲(chóng)害發(fā)生的跡象。然而,Chapman等在2009年的研究表明,地球上的昆蟲(chóng)類(lèi)別超過(guò)500萬(wàn)種。傳統(tǒng)的方法要求每個(gè)農(nóng)業(yè)工作者對(duì)每一種昆蟲(chóng)都能夠進(jìn)行精準(zhǔn)識(shí)別以及分類(lèi)是不現(xiàn)實(shí)的,而且存在工作量大、消耗時(shí)間長(zhǎng)、識(shí)別準(zhǔn)確度低的問(wèn)題[4]。
隨著卷積神經(jīng)網(wǎng)絡(luò)(CNN)技術(shù)的發(fā)展,越來(lái)越多基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的病蟲(chóng)害識(shí)別方法被提出,王丹丹等[5]采用卷積神經(jīng)網(wǎng)絡(luò)識(shí)別了多特征分量的蘋(píng)果目標(biāo);陸雅諾等[6]提出了一種基于注意力機(jī)制的啤酒花病蟲(chóng)害識(shí)別方法,試驗(yàn)表明該方法的準(zhǔn)確率達(dá)到93.11%;蒲秀夫等[7]提出了使用二值化卷積神經(jīng)網(wǎng)絡(luò)模型對(duì)植物病蟲(chóng)害進(jìn)行識(shí)別的方法,該方法以VGG16模型作為基準(zhǔn),采用深度網(wǎng)絡(luò)模型對(duì)植物病蟲(chóng)害進(jìn)行分類(lèi),平均識(shí)別準(zhǔn)確率達(dá)到96.8%;閆建偉等[8]通過(guò)神經(jīng)網(wǎng)絡(luò)對(duì)深層次的果實(shí)特征進(jìn)行提取,將提取到的特征與低層次特征進(jìn)行多次融合,有效提升了識(shí)別精度;項(xiàng)小東等[9]提出了一種基于改進(jìn)的Xception模型的植物病蟲(chóng)害識(shí)別方法,試驗(yàn)表明該方法的識(shí)別準(zhǔn)確率達(dá)到了91.9%,精確率達(dá)到了88.7%;Zhang等[10]通過(guò)對(duì)GoogLeNet增加Droupout層、ReLU函數(shù)和減少分類(lèi)器的數(shù)量進(jìn)行優(yōu)化。改進(jìn)后的模型在玉米的9種病害中達(dá)到了98.9%的識(shí)別精度;Mique等[11]利用基于CNN的模型,對(duì)采集到的圖像與現(xiàn)有的水稻病蟲(chóng)害圖像進(jìn)行了檢索和比較,該模型能夠達(dá)到90.9%的最終訓(xùn)練精度;曹樂(lè)平等[12]提出了BP神經(jīng)網(wǎng)絡(luò)模型用于柑橘病蟲(chóng)害的識(shí)別,平均準(zhǔn)確率達(dá)到92.67%;Khan等[13]實(shí)現(xiàn)了深度預(yù)訓(xùn)練模型用于提取深度特征,對(duì)6種蘋(píng)果和香蕉水果病害進(jìn)行分類(lèi),提高了分類(lèi)的精度和準(zhǔn)確性;Liu等[14]提出了一種用于解決害蟲(chóng)目標(biāo)自動(dòng)識(shí)別和定位問(wèn)題的害蟲(chóng)檢測(cè)網(wǎng)絡(luò),可檢測(cè)16類(lèi)農(nóng)業(yè)害蟲(chóng);Lu等[15]提出了基于深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)技術(shù)的水稻病害識(shí)別方法,對(duì)10種常見(jiàn)水稻病害進(jìn)行了識(shí)別,提高了收斂速度和識(shí)別精度,并引入遷移學(xué)習(xí)對(duì)預(yù)訓(xùn)練的深度網(wǎng)絡(luò)進(jìn)行微調(diào),以提高學(xué)習(xí)效率。
綜上所述,早期提出的方法依然存在識(shí)別精確度低、網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜和沒(méi)有充分利用圖像的多尺度特征信息等問(wèn)題。為了解決這些問(wèn)題,本文提出了一種基于多尺度特征融合(MFF)的網(wǎng)絡(luò)模型對(duì)作物害蟲(chóng)進(jìn)行精準(zhǔn)識(shí)別與分類(lèi)。該模型采用空洞卷積[16]設(shè)計(jì)了多尺度特征提取模塊(MFEM),以獲取到害蟲(chóng)圖像的多尺度特征圖;同時(shí),使用深層特征提取模塊(DFEM)提取圖像的深層特征信息;最后,將分別由多尺度特征提取模塊(MFEM)和深層特征提取模塊(DFEM)提取到的特征圖進(jìn)行融合,以充分利用害蟲(chóng)圖像的多尺度特征信息,從而實(shí)現(xiàn)以端到端的方式對(duì)作物害蟲(chóng)進(jìn)行精準(zhǔn)分類(lèi)與識(shí)別。
本文試驗(yàn)所用的害蟲(chóng)數(shù)據(jù)集一方面通過(guò)網(wǎng)絡(luò)爬蟲(chóng)[17]技術(shù)從百度、谷歌和Yahoo這3個(gè)主流搜索引擎下載獲取,另一方面通過(guò)使用小米8 SE手機(jī)在廣西大學(xué)農(nóng)學(xué)院試驗(yàn)田進(jìn)行現(xiàn)場(chǎng)拍攝獲取,通過(guò)圖像裁剪技術(shù)將每張圖像的大小統(tǒng)一裁剪為512×512。該數(shù)據(jù)集總共有4 200張圖像,包含12種常見(jiàn)農(nóng)作物害蟲(chóng)成蟲(chóng)和幼蟲(chóng)階段的RGB圖片,分別是蚜蟲(chóng)、粘蟲(chóng)、甲蟲(chóng)、棉鈴蟲(chóng)、蚱蜢、螨蟲(chóng)、蚊子、鋸蠅、螟蟲(chóng)、穿孔蛾、癭蠅和蝗蟲(chóng),其形態(tài)特征如圖1所示。
(a) 蚜蟲(chóng) (b) 粘蟲(chóng) (c) 甲蟲(chóng)
為了提升網(wǎng)絡(luò)的魯棒性和泛化能力,同時(shí),使其具有更高的識(shí)別分類(lèi)性能,防止出現(xiàn)過(guò)擬合的問(wèn)題,本文采用數(shù)據(jù)增強(qiáng)技術(shù)[18]對(duì)收集的數(shù)據(jù)集進(jìn)行擴(kuò)充。具體來(lái)說(shuō)就是,使用旋轉(zhuǎn)、平移、翻轉(zhuǎn)和添加噪聲這4種數(shù)據(jù)增強(qiáng)算法對(duì)原始圖像進(jìn)行處理。其中,旋轉(zhuǎn)的范圍在[10°, -10°]之間,步長(zhǎng)為1°;添加的噪聲系數(shù)范圍在[0, 1.5]之間,處理結(jié)果如圖2所示,從而使得害蟲(chóng)數(shù)據(jù)集的圖片量從4 200張?jiān)黾拥?7 200張。將增強(qiáng)后的數(shù)據(jù)集劃分成訓(xùn)練集和測(cè)試集,其中,訓(xùn)練集包含57 600張圖片,測(cè)試集包含9 600張圖片。各類(lèi)害蟲(chóng)的圖片數(shù)量如表1所示。
(a) 原圖 (b) 旋轉(zhuǎn) (c) 平移
表1 各類(lèi)害蟲(chóng)圖片數(shù)量分布Tab. 1 Number distribution of pictures of various pests
深層特征提取模塊(DFEM)采用編碼器-解碼器[19]結(jié)構(gòu),如圖3所示。編碼網(wǎng)絡(luò)由1個(gè)輸入層、7個(gè)3×3卷積層和3個(gè)最大池化層組成,在每一個(gè)卷積層后,采用批歸一化[20](BN)層對(duì)卷積層的輸出結(jié)果進(jìn)行歸一化處理,以加快模型的收斂速度,且在一定程度上緩解深層網(wǎng)絡(luò)中“梯度彌散”的問(wèn)題,從而使得訓(xùn)練本文的網(wǎng)絡(luò)模型時(shí)更加容易和穩(wěn)定。假設(shè)輸入為一個(gè)d維向量X=[x(1),x(2),…x(d)],則向量X的第k維經(jīng)過(guò)歸一化處理后的結(jié)果如式(1)所示。
圖3 深層特征提取模塊結(jié)構(gòu)圖
(1)
式中:x*(k)——向量X中的第k維歸一化處理后的結(jié)果;
x(k)——向量X中的第k維;
E[x(k)]——第k維的均值;
Var[x(k)]——第k維的方差。
同時(shí),本文在批歸一化(BN)層后面還設(shè)置了一個(gè)采用線性整流函數(shù)[21](ReLU)作為激活函數(shù)的激活層,以克服網(wǎng)絡(luò)模型的梯度消失問(wèn)題,從而進(jìn)一步加快訓(xùn)練速度。線性整流函數(shù)(ReLU)的函數(shù)式如式(2)所示。
f(y)=max(x,wTy+b)
(2)
式中:y——輸入向量;
wT——權(quán)重系數(shù)向量;
b——偏置量。
解碼網(wǎng)絡(luò)由6個(gè)3×3反卷積層、3個(gè)2×2反卷積層和1個(gè)輸出層組成,其結(jié)構(gòu)與編碼網(wǎng)絡(luò)呈鏡像,本文不僅采用2×2的反卷積層作為上采樣層,還采用3×3反卷積層進(jìn)行高級(jí)特征的提取。同時(shí),在編碼器與解碼器間還采用跳級(jí)連接結(jié)構(gòu)將高、低級(jí)特征進(jìn)行融合,從而進(jìn)一步提高網(wǎng)絡(luò)的分類(lèi)性能。
反卷積[22]是一種將圖像由低分辨率到高分辨率的映射操作,主要用于將特征圖恢復(fù)到原始圖像尺寸的大小,以減少特征信息的丟失,其原理如圖4所示。經(jīng)過(guò)反卷積操作后輸出圖像的尺寸計(jì)算方法如式(3)所示。
Output=S×(W-1)+K-2×P
(3)
式中:W——輸入圖像尺寸;
K——卷積核大?。?/p>
S——步長(zhǎng);
P——填充數(shù);
Output——輸出圖像尺寸。
圖4 反卷積原理示意圖
多尺度特征提取模塊(MFEM)的結(jié)構(gòu)如圖5所示,由1個(gè)輸入層、4個(gè)空洞卷積層、1個(gè)1×1卷積層和1個(gè)輸出層組成??斩淳矸e的原理如圖6所示,當(dāng)擴(kuò)張率為1時(shí),空洞卷積與普通卷積沒(méi)有差異,卷積后的感受野均為3×3;當(dāng)擴(kuò)張率為2時(shí),空洞卷積的感受野擴(kuò)大到5×5;當(dāng)擴(kuò)張率為3時(shí),空洞卷積的感受野擴(kuò)大到7×7。采用空洞卷積來(lái)設(shè)計(jì)多尺度特征提取模塊(MFEM),一方面能夠在不增加計(jì)算量的前提下,以較大的感受野提取到更豐富的特征信息;另一方面可以將多個(gè)不同擴(kuò)張率的空洞卷積層疊加使用,從而獲取到多個(gè)尺度的特征信息。
圖5 多尺度特征提取模塊結(jié)構(gòu)圖
(a) 擴(kuò)張率為1 (b) 擴(kuò)張率為2 (c) 擴(kuò)張率為3
首先,采用4個(gè)空洞率分別為6、12、24和36的空洞卷積層分別對(duì)輸入圖像進(jìn)行多尺度特征信息提取,獲得4個(gè)包含有不同尺度特征信息的特征圖,然后將提取到的多尺度特征信息進(jìn)行融合,以減少特征信息的丟失,并使用1×1的卷積層對(duì)融合特征圖進(jìn)行通道數(shù)的調(diào)整,從而實(shí)現(xiàn)多尺度特征的提取。同時(shí),為了加快模型的收斂速度和避免梯度消失的情況發(fā)生,本文在每個(gè)空洞卷積層和卷積層后面均使用批歸一化(BN)層和ReLU激活層對(duì)輸出結(jié)果進(jìn)行處理。
本文提出的FFNet框架結(jié)構(gòu)如圖7所示,主要由深層特征提取模塊(DFEM)和多尺度特征提取模塊兩個(gè)部分組成。將害蟲(chóng)圖像輸入FFNet模型,一方面通過(guò)深層特征提取模塊(DFEM)提取害蟲(chóng)圖像的高級(jí)特征信息,另一方面通過(guò)多尺度特征提取模塊(MFEM)提取害蟲(chóng)圖像多個(gè)尺度的特征信息,然后將提取到的害蟲(chóng)圖像的高級(jí)特征信息和多尺度特征信息進(jìn)行融合,以減少特征信息的丟失,最后將融合的特征信息輸入分類(lèi)層,從而實(shí)現(xiàn)害蟲(chóng)的識(shí)別與分類(lèi)。
圖7 FFNet結(jié)構(gòu)體系
為了表明本文提出的FFNet的輕量性,將幾個(gè)主流的神經(jīng)網(wǎng)絡(luò)(CNN)模型的參數(shù)量與內(nèi)存占用量進(jìn)行了對(duì)比,如表2所示??梢钥闯觯現(xiàn)FNet的參數(shù)量和內(nèi)存消耗量分別為9 170 773和34.9 M,比主流的ResNet50和VGG16模型分別降低了85.2%和74.8%,這表明提出的FFNet結(jié)構(gòu)簡(jiǎn)便,有效降低了整體參數(shù)量。
表2 主流網(wǎng)絡(luò)框架的參數(shù)量及內(nèi)存比較Tab. 2 Parameter quantity and memory comparison of mainstream network frameworks
為了證實(shí)FFNet模型對(duì)農(nóng)作物害蟲(chóng)圖像識(shí)別與分類(lèi)擁有良好的分類(lèi)性能,在PyTorch 1.8.1框架上使用在本文第1節(jié)中提到的數(shù)據(jù)集進(jìn)行了試驗(yàn),試驗(yàn)平臺(tái)的其他軟、硬件信息如表3所示。
表3 試驗(yàn)環(huán)境詳細(xì)信息表Tab. 3 Experimental environment details table
本文所用到的網(wǎng)絡(luò)模型的數(shù)據(jù)是在同一試驗(yàn)條件下測(cè)試得出,即均采用隨機(jī)梯度下降(SGD)法進(jìn)行優(yōu)化,學(xué)習(xí)調(diào)度器設(shè)為Poly,動(dòng)量參數(shù)設(shè)為0.9,權(quán)重衰減設(shè)為0.000 1,學(xué)習(xí)率設(shè)為0.001,損失函數(shù)設(shè)為交叉熵?fù)p失函數(shù)[28],迭代次數(shù)設(shè)為80 000次,以保證試驗(yàn)數(shù)據(jù)的可靠性。
同時(shí),本文還引用準(zhǔn)確率、精準(zhǔn)率、召回率和混淆矩陣[29]四個(gè)評(píng)價(jià)指標(biāo)對(duì)FFNet模型的分類(lèi)性能進(jìn)行評(píng)估。其中,準(zhǔn)確率表示預(yù)測(cè)結(jié)果中預(yù)測(cè)正確的次數(shù)占總預(yù)測(cè)次數(shù)的比例;精準(zhǔn)率表示在所有預(yù)測(cè)結(jié)果中某個(gè)類(lèi)別預(yù)測(cè)正確的概率;召回率表示在所有真實(shí)值中某個(gè)類(lèi)別被預(yù)測(cè)正確的概率。各指標(biāo)的計(jì)算如式(4)~式(6)所示。
(4)
(5)
(6)
式中:Accuary——準(zhǔn)確率;
Precision——精準(zhǔn)率;
Recall——召回率;
TP——預(yù)測(cè)為正例而實(shí)際是正例;
FP——模型預(yù)測(cè)為正例而實(shí)際是反例;
FN——模型預(yù)測(cè)為反例而實(shí)際是正例;
TN——模型預(yù)測(cè)為反例而實(shí)際是反例。
本文將ResNet50和VGG16這兩種最先進(jìn)的網(wǎng)絡(luò)模型與提出的FFNet模型在搜集的12種害蟲(chóng)數(shù)據(jù)集上進(jìn)行分類(lèi)性能測(cè)試。為了保證數(shù)據(jù)的可靠性,每個(gè)網(wǎng)絡(luò)訓(xùn)練時(shí)所使用的參數(shù)設(shè)置都相同,各個(gè)網(wǎng)絡(luò)訓(xùn)練花費(fèi)的時(shí)間和分類(lèi)的準(zhǔn)確率,如表4所示。
表4 各網(wǎng)絡(luò)分類(lèi)性能對(duì)比表Tab. 4 Comparison of network classification performance
由表4數(shù)據(jù)可以發(fā)現(xiàn),F(xiàn)FNet在分類(lèi)準(zhǔn)確率指標(biāo)上達(dá)到了98.2%,分別比ResNet50和VGG16模型提高了8.3%和19%;而訓(xùn)練花費(fèi)的時(shí)間僅使用了197 min,分別比ResNet50和VGG16模型縮短了56.4%和39%。
同時(shí),本文還把ResNet5、VGG16和提出的FFNet訓(xùn)練過(guò)程的損失曲線和精確率曲線進(jìn)行對(duì)比分析,如圖8所示。根據(jù)曲線圖可以看出,VGG16的損失曲線和準(zhǔn)確率曲線分別在迭代30 000次和第36個(gè)epochs時(shí)開(kāi)始趨于平緩,其準(zhǔn)確率為82.5%,損失值為0.213;ResNet50的損失曲線和準(zhǔn)確率曲線分別在迭代25 000次和第26個(gè)epochs時(shí)開(kāi)始趨于平緩,其準(zhǔn)確率為90.7%,損失值為0.114;而FFNet損失曲線和準(zhǔn)確率曲線分別在迭代20 000次和第21個(gè)epochs時(shí)就以開(kāi)始趨于平緩,其準(zhǔn)確率達(dá)到了98.2%,損失值僅為0.031。這表明本文提出的FFNet模型不僅收斂的速度快,而且對(duì)收集的12類(lèi)害蟲(chóng)的分類(lèi)性能更好。
(a) 各個(gè)網(wǎng)絡(luò)的損失曲線圖
為了更直觀地表明FFNet的分類(lèi)性能,采用混淆矩陣對(duì)其分類(lèi)結(jié)果進(jìn)行可視化分析?;煜仃嚨男写眍A(yù)測(cè)的類(lèi)別,列代表真實(shí)的類(lèi)別,主對(duì)角線的數(shù)值代表分類(lèi)模型在該類(lèi)別上的分類(lèi)精度,如圖9所示。
圖9 FFNet分類(lèi)結(jié)果混淆矩陣
混淆矩陣主對(duì)角線上的數(shù)值均為各行各列的最大值,分別為782、794、789、800、778、781、789、771、783、784、787和793,這表明本文提出的FFNet模型對(duì)12類(lèi)害蟲(chóng)的識(shí)別分類(lèi)性能良好。與此同時(shí),本文還測(cè)試了FFNet模型對(duì)數(shù)據(jù)集中每一類(lèi)害蟲(chóng)識(shí)別分類(lèi)的精準(zhǔn)率和召回率,如表5所示。從表中數(shù)據(jù)可知,提出的FFNet不僅整體分類(lèi)準(zhǔn)確率高,對(duì)每一類(lèi)害蟲(chóng)的識(shí)別分類(lèi)精準(zhǔn)率和召回率也取得了非常好的成績(jī),F(xiàn)FNet模型能夠高效的完成農(nóng)作物病蟲(chóng)害分類(lèi)識(shí)別工作。
表5 FFNet對(duì)各類(lèi)害蟲(chóng)分類(lèi)結(jié)果Tab. 5 Classification results of various pests by FFNet
本文提出了一種基于多尺度特征融合的網(wǎng)絡(luò)模型(FFNet),采用多尺度特征提取模塊(MFEM)在不增加模型參數(shù)量的情況下,以較大的感受野獲取到害蟲(chóng)圖像的多尺度特征信息,然后將獲取到的多尺度特征與深層特征提取模塊(DFEM)提取的特征進(jìn)行融合,從而實(shí)現(xiàn)害蟲(chóng)類(lèi)別的識(shí)別與分類(lèi)。為了驗(yàn)證本文提出的FFNet模型的有效性和魯棒性,將FFNet、ResNet50和VGG16在本文建立的12類(lèi)害蟲(chóng)數(shù)據(jù)集上進(jìn)行試驗(yàn),測(cè)得FFNet模型的分類(lèi)準(zhǔn)確率達(dá)到了98.2%,分別比VGG16和ResNet50提高了19%和8.3%;在訓(xùn)練時(shí)間上,F(xiàn)FNet模型的訓(xùn)練僅需197 min,其損失函數(shù)Loss為0.031,分別比ResNet50和VGG16模型縮短了56.4%和39%,而且整個(gè)網(wǎng)絡(luò)僅有34.9 M。本文提出的FFNet模型與主流的模型相比,不僅對(duì)自制的12類(lèi)害蟲(chóng)數(shù)據(jù)集具有良好的性能,而且在模型的收斂速度和參數(shù)量方面也有很大程度的提高,能夠高效地完成農(nóng)作物病蟲(chóng)害分類(lèi)識(shí)別工作。
中國(guó)農(nóng)機(jī)化學(xué)報(bào)2022年11期