劉思岐 ,韓 靜 ,韓 晗 ,張?zhí)煊?,廖洪暉 ,曲歆銳
(1.黑龍江八一農(nóng)墾大學(xué)工程學(xué)院,黑龍江 大慶 163000;2.黑龍江八一農(nóng)墾大學(xué)信息與電氣學(xué)院,黑龍江 大慶 163000)
現(xiàn)階段的研究中,國(guó)內(nèi)外關(guān)于雜草識(shí)別的研究方法大體上可分為兩大類,一類是通過計(jì)算機(jī)視覺的算法進(jìn)行閾值分割和檢測(cè),另一種則是采用目標(biāo)檢測(cè)、語義分割等深度學(xué)習(xí)的方法進(jìn)行檢測(cè)。
計(jì)算機(jī)視覺是利用拍攝設(shè)備獲取圖像,將計(jì)算機(jī)應(yīng)用于目標(biāo)圖像的分析與識(shí)別,可以快速、準(zhǔn)確地識(shí)別田間雜草,是發(fā)展精準(zhǔn)農(nóng)業(yè)的一項(xiàng)重要技術(shù)[1-9]。
檢測(cè)方向分為兩種,其中一種是YOLOv系列的目標(biāo)檢測(cè)算法,利用CNN卷積神經(jīng)網(wǎng)絡(luò)和MLP全連接神經(jīng)網(wǎng)絡(luò)等結(jié)構(gòu)搭建復(fù)雜的目標(biāo)檢測(cè)模型對(duì)輸入圖片進(jìn)行處理。目前,語義分割模型有FCN全卷積網(wǎng)絡(luò)、U-Net、DeepLab等,均是采用CNN卷積網(wǎng)絡(luò)構(gòu)建FPN、殘差、特征融合等結(jié)構(gòu)來對(duì)輸入圖片的單個(gè)像素進(jìn)行分類。
本文研究了一種基于深度神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)玉米、雜草分類并檢測(cè)的語義分割模型,使用了改進(jìn)的ResNet50模型對(duì)圖片進(jìn)行特征下采樣,并采用了FPN+PAN結(jié)構(gòu)進(jìn)行多尺度特征融合,在獲取特征語義信息的同時(shí)保證了位置信息能傳遞到網(wǎng)絡(luò)高層。最后使用漸進(jìn)式上采樣將圖片采樣至原始圖片大小,從而實(shí)現(xiàn)像素級(jí)別的語義分割。
人工神經(jīng)網(wǎng)絡(luò)又被稱為神經(jīng)網(wǎng)絡(luò)或連接模型,模仿動(dòng)物神經(jīng)網(wǎng)絡(luò)的行為特征,通過調(diào)節(jié)內(nèi)部大量節(jié)點(diǎn)之間的互聯(lián)關(guān)系來處理信息。神經(jīng)網(wǎng)絡(luò)的節(jié)點(diǎn)模型如圖1所示,將外界數(shù)據(jù)轉(zhuǎn)化為向量分別輸入到神經(jīng)網(wǎng)絡(luò)中,向量每一維的數(shù)值乘以一個(gè)權(quán)重得到該節(jié)點(diǎn)的輸出。
圖1 神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)示意圖
如果并行排列多個(gè)這樣的節(jié)點(diǎn),則節(jié)點(diǎn)輸出作為下一層的節(jié)點(diǎn)輸入,形成一個(gè)多層網(wǎng)絡(luò),就組成了最簡(jiǎn)單的全連接神經(jīng)網(wǎng)絡(luò)。這種結(jié)構(gòu)的多層感知器神經(jīng)網(wǎng)絡(luò)又被稱為深度神經(jīng)網(wǎng)絡(luò)(DNN),如圖2所示,它是由輸入層、隱含層和輸出層三部分組成的。
圖2 多層感知結(jié)構(gòu)(深度神經(jīng)網(wǎng)絡(luò))
隨著深度學(xué)習(xí)的流行,導(dǎo)致卷積神經(jīng)網(wǎng)絡(luò)[10]不能依賴于特定的特征,而Le Net[11]、VGG[12]和Google Net[13]等模型在廣義識(shí)別領(lǐng)域(如物體識(shí)別[10,14-16]、物體檢測(cè)[17]和物體分割[18-19]等)得到了廣泛應(yīng)用并取得了很好的效果[20]。卷積神經(jīng)網(wǎng)絡(luò)模仿生物視覺感知機(jī)制建立,與全連接網(wǎng)絡(luò)存在差異。卷積神經(jīng)網(wǎng)絡(luò)示意圖如圖3所示。
圖3 卷積神經(jīng)網(wǎng)絡(luò)示意圖
選用ResNet20+PAN+Progressive_Upsampling的模型,輸入的特征圖尺寸為3*256*256。其中,3個(gè)通道分別為R通道、G通道、B通道,輸出的尺寸為3*256*256,3個(gè)通道為3種類別的分類輸出。
首先用Resnet50網(wǎng)絡(luò)進(jìn)行下采樣,利用PAN融合不同大小的特征圖,然后將得到的小尺寸特征圖逐步上采樣恢復(fù)到原始大小。通道數(shù)調(diào)整為3,對(duì)應(yīng)3個(gè)分類類別,最后使用Softmax層進(jìn)行輸出,得到分類圖。該模型包含168 916 561個(gè)參數(shù),其中可訓(xùn)練的參數(shù)有168 916 561個(gè)。
使用了SGD隨機(jī)梯度下降算法作為優(yōu)化器,其中SGD優(yōu)化器的算法公式為[21]:
當(dāng)SGD每次更新學(xué)習(xí)率時(shí),它會(huì)根據(jù)每個(gè)樣本更新梯度。
設(shè)置了動(dòng)量參數(shù)momentum=0.9來使優(yōu)化器盡可能跳出局部極小值點(diǎn),設(shè)置了weight_decay=1e-4參數(shù)來進(jìn)行權(quán)重衰減,實(shí)現(xiàn)L2正則化,盡可能減少模型過擬合。采用了交叉熵?fù)p失作為評(píng)估模型的損失函數(shù),這是一種評(píng)估分類問題損失的損失函數(shù)[21]:
式中,M為類別的數(shù)量;yic為符號(hào)函數(shù)(0或1),樣本i的真實(shí)類別等于c取1,否則取0;pic為觀測(cè)樣本,i屬于類別c的預(yù)測(cè)概率。
這里的預(yù)測(cè)概率是由神經(jīng)網(wǎng)絡(luò)輸出的n個(gè)分類數(shù)值經(jīng)過Softmax層運(yùn)算得到的,Softmax運(yùn)算定義如下[21]:
首先,通過Softmax層輸出概率分布,將概率值和標(biāo)簽輸入交叉熵?fù)p失函數(shù)計(jì)算損失并進(jìn)行梯度計(jì)算反向傳播來更新參數(shù),完成一次訓(xùn)練。訓(xùn)練在Python的pytorch框架下進(jìn)行,使用3.9.12版本Python,pytorch的版本為1.11.0+cu113,使用的硬件為十二代英特爾i712700處理器和英偉達(dá)RTX3050顯卡。訓(xùn)練經(jīng)過100Epoch,Batch_size為4,得到訓(xùn)練集損失和測(cè)試集損失均較低的模型。最終的訓(xùn)練集損失為0.019 474;最終的測(cè)試集損失為0.113 844。
語義分割模型的常規(guī)評(píng)價(jià)方法一般有三個(gè)指標(biāo),即推理速度、參數(shù)量和精度,精度一般采用mIOU平均交并比來討論,公式如下[21]:
式中,P代表Prediction預(yù)測(cè)值;G代表Ground Truth真實(shí)值;k代表測(cè)試樣本數(shù)。
該模型共有168 916 561個(gè)參數(shù),其中可訓(xùn)練的參數(shù)有168 916 561個(gè)。12700+RTX3050平臺(tái)下,使用酷睿i712700 CPU進(jìn)行推理的時(shí)間是229.33 ms。使用RTX3050 GPU進(jìn)行推理的時(shí)間是8.58 ms。按此推理速度計(jì)算,理論上在該平臺(tái)進(jìn)行實(shí)時(shí)推理的幀率可以達(dá)到120幀/s,但受內(nèi)存帶寬以及后續(xù)圖像處理等因素影響,實(shí)際幀率不到一半。
經(jīng)過測(cè)試,模型的訓(xùn)練集mIOU為0.931 52,測(cè)試集mIOU為0.807 81。對(duì)測(cè)試集圖片進(jìn)行了分割實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖4、圖5所示。
圖4 輸入圖片示例圖
圖5 測(cè)試集圖片分割檢測(cè)結(jié)果圖
圖4是輸入圖片,圖5是分割檢測(cè)結(jié)果,從中可以看到,網(wǎng)絡(luò)很好地分割了雜草和玉米幼苗,但對(duì)重疊部分的葉片分類不太精確。
測(cè)試了模型的一些其他性能指標(biāo),以便更準(zhǔn)確地反映模型的實(shí)際性能,其中有混淆矩陣、ROC曲線以及Precision-Recall(PR)曲線,分別如圖6、圖7、圖8所示。
圖6 混淆矩陣
圖7 ROC曲線
圖8 PR曲線
通過混淆矩陣可以看出,模型對(duì)玉米和雜草的分割不是很好。從ROC曲線和PR曲線可以看出,模型對(duì)背景的分割最準(zhǔn)確,玉米苗和雜草次之,也可以證明模型對(duì)玉米和雜草的分類不太準(zhǔn)確。測(cè)試了該模型的一些其他指標(biāo):像素準(zhǔn)確率為0.952 8;平均像素準(zhǔn)確率為0.791 4;頻權(quán)交并比為0.913 4。
為了體現(xiàn)PAN模型的優(yōu)越性,采用FCN全卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行對(duì)比。這里采用ResNet18模型去掉最后的池化層和全連接層,加上轉(zhuǎn)置卷積層一步上采樣至原圖尺寸,具體示意圖如圖9所示。
圖9 基于ResNet18的FCN模型示意圖
該模型首先采用深度殘差卷積網(wǎng)絡(luò)將3通道寬256像素、高256像素的圖片通過18個(gè)卷積殘差層下采樣至512通道寬8像素、高8像素大小,經(jīng)過一個(gè)轉(zhuǎn)置卷積層一步上采樣,將特征圖放大32倍采樣至原圖大小,同時(shí)將通道數(shù)轉(zhuǎn)為3,用于三分類。
相較于本文提出的PAN模型,F(xiàn)CN全卷積模型缺少金字塔特征融合結(jié)構(gòu),沒有漸進(jìn)式上采樣層,若使用一步采樣的策略,會(huì)丟失一定的邊緣細(xì)節(jié)。全卷積網(wǎng)絡(luò)的輸入圖片示例和分割檢測(cè)結(jié)果分別如圖4、圖10所示。
圖10 全卷積網(wǎng)絡(luò)分割檢測(cè)結(jié)果圖
FCN模型的混淆矩陣、ROC曲線、PR曲線分別如圖11、圖12、圖13所示。以下是FCN全卷積網(wǎng)絡(luò)的一些指標(biāo):像素準(zhǔn)確率為0.879 0;平均像素準(zhǔn)確率為0.407 7;頻權(quán)交并比為0.852 9;平均交并比為0.724 1。從FCN全卷積網(wǎng)絡(luò)的各類指標(biāo)可以看出,F(xiàn)CN在各類指標(biāo)上均不如本文提出的PAN模型,證明了多尺度特征融合和漸進(jìn)式上采樣能夠顯著提高語義分割模型的性能。
圖11 FCN模型混淆矩陣
圖12 FCN模型ROC曲線
圖13 FCN模型PR曲線
本文提出了一種基于深度卷積神經(jīng)網(wǎng)絡(luò)和PAN結(jié)構(gòu)的語義分割模型。實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)該模型的訓(xùn)練集mIOU指標(biāo)可以達(dá)到0.931 52,ROC與PR指標(biāo)均較好;測(cè)試集mIOU指標(biāo)可以達(dá)到0.807 81,能夠較好地對(duì)雜草和玉米苗進(jìn)行分割和識(shí)別。同時(shí),其與FCN全卷積神經(jīng)網(wǎng)絡(luò)模型在同一數(shù)據(jù)集上進(jìn)行了指標(biāo)對(duì)比,證明了PAN結(jié)構(gòu)具有優(yōu)越性。
建立了ResNet50深度卷積殘差模型進(jìn)行下采樣,采用PAN結(jié)構(gòu)進(jìn)行多尺度特征融合,最后將使用漸進(jìn)式上采樣解決邊緣細(xì)節(jié)問題的深度神經(jīng)網(wǎng)絡(luò)模型在GPU平臺(tái)上進(jìn)行了訓(xùn)練,測(cè)試了該模型的性能指標(biāo),同時(shí)與FCN全卷積神經(jīng)網(wǎng)絡(luò)模型在同一數(shù)據(jù)集上進(jìn)行指標(biāo)對(duì)比,體現(xiàn)了本文提出的PAN模型的優(yōu)越性。
FCN全卷積模型也擁有模型輕量化、推理速度快等優(yōu)點(diǎn),比如本文使用的FCN模型僅僅擁有11 214 918的參數(shù)量,GPU推理時(shí)間為3.035 ms,CPU推理時(shí)間為30.81 ms,相較于本文提出的模型具有顯著的速度優(yōu)勢(shì)。模型性能指標(biāo)對(duì)比如表1所示。
表1 模型性能指標(biāo)對(duì)比
綜上所述,使用深度卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)玉米苗和雜草的語義分割是可行的,能夠?yàn)檗r(nóng)業(yè)的自動(dòng)化除草工作提供參考。