劉思岐 ,韓 靜 ,韓 晗 ,張天宇 ,廖洪暉 ,曲歆銳
(1.黑龍江八一農墾大學工程學院,黑龍江 大慶 163000;2.黑龍江八一農墾大學信息與電氣學院,黑龍江 大慶 163000)
現階段的研究中,國內外關于雜草識別的研究方法大體上可分為兩大類,一類是通過計算機視覺的算法進行閾值分割和檢測,另一種則是采用目標檢測、語義分割等深度學習的方法進行檢測。
計算機視覺是利用拍攝設備獲取圖像,將計算機應用于目標圖像的分析與識別,可以快速、準確地識別田間雜草,是發展精準農業的一項重要技術[1-9]。
檢測方向分為兩種,其中一種是YOLOv系列的目標檢測算法,利用CNN卷積神經網絡和MLP全連接神經網絡等結構搭建復雜的目標檢測模型對輸入圖片進行處理。目前,語義分割模型有FCN全卷積網絡、U-Net、DeepLab等,均是采用CNN卷積網絡構建FPN、殘差、特征融合等結構來對輸入圖片的單個像素進行分類。
本文研究了一種基于深度神經網絡實現玉米、雜草分類并檢測的語義分割模型,使用了改進的ResNet50模型對圖片進行特征下采樣,并采用了FPN+PAN結構進行多尺度特征融合,在獲取特征語義信息的同時保證了位置信息能傳遞到網絡高層。最后使用漸進式上采樣將圖片采樣至原始圖片大小,從而實現像素級別的語義分割。
人工神經網絡又被稱為神經網絡或連接模型,模仿動物神經網絡的行為特征,通過調節內部大量節點之間的互聯關系來處理信息。神經網絡的節點模型如圖1所示,將外界數據轉化為向量分別輸入到神經網絡中,向量每一維的數值乘以一個權重得到該節點的輸出。

圖1 神經網絡節點示意圖
如果并行排列多個這樣的節點,則節點輸出作為下一層的節點輸入,形成一個多層網絡,就組成了最簡單的全連接神經網絡。這種結構的多層感知器神經網絡又被稱為深度神經網絡(DNN),如圖2所示,它是由輸入層、隱含層和輸出層三部分組成的。

圖2 多層感知結構(深度神經網絡)
隨著深度學習的流行,導致卷積神經網絡[10]不能依賴于特定的特征,而Le Net[11]、VGG[12]和Google Net[13]等模型在廣義識別領域(如物體識別[10,14-16]、物體檢測[17]和物體分割[18-19]等)得到了廣泛應用并取得了很好的效果[20]。卷積神經網絡模仿生物視覺感知機制建立,與全連接網絡存在差異。卷積神經網絡示意圖如圖3所示。

圖3 卷積神經網絡示意圖
選用ResNet20+PAN+Progressive_Upsampling的模型,輸入的特征圖尺寸為3*256*256。其中,3個通道分別為R通道、G通道、B通道,輸出的尺寸為3*256*256,3個通道為3種類別的分類輸出。
首先用Resnet50網絡進行下采樣,利用PAN融合不同大小的特征圖,然后將得到的小尺寸特征圖逐步上采樣恢復到原始大小。通道數調整為3,對應3個分類類別,最后使用Softmax層進行輸出,得到分類圖。該模型包含168 916 561個參數,其中可訓練的參數有168 916 561個。
使用了SGD隨機梯度下降算法作為優化器,其中SGD優化器的算法公式為[21]:

當SGD每次更新學習率時,它會根據每個樣本更新梯度。
設置了動量參數momentum=0.9來使優化器盡可能跳出局部極小值點,設置了weight_decay=1e-4參數來進行權重衰減,實現L2正則化,盡可能減少模型過擬合。采用了交叉熵損失作為評估模型的損失函數,這是一種評估分類問題損失的損失函數[21]:

式中,M為類別的數量;yic為符號函數(0或1),樣本i的真實類別等于c取1,否則取0;pic為觀測樣本,i屬于類別c的預測概率。
這里的預測概率是由神經網絡輸出的n個分類數值經過Softmax層運算得到的,Softmax運算定義如下[21]:

首先,通過Softmax層輸出概率分布,將概率值和標簽輸入交叉熵損失函數計算損失并進行梯度計算反向傳播來更新參數,完成一次訓練。訓練在Python的pytorch框架下進行,使用3.9.12版本Python,pytorch的版本為1.11.0+cu113,使用的硬件為十二代英特爾i712700處理器和英偉達RTX3050顯卡。訓練經過100Epoch,Batch_size為4,得到訓練集損失和測試集損失均較低的模型。最終的訓練集損失為0.019 474;最終的測試集損失為0.113 844。
語義分割模型的常規評價方法一般有三個指標,即推理速度、參數量和精度,精度一般采用mIOU平均交并比來討論,公式如下[21]:

式中,P代表Prediction預測值;G代表Ground Truth真實值;k代表測試樣本數。
該模型共有168 916 561個參數,其中可訓練的參數有168 916 561個。12700+RTX3050平臺下,使用酷睿i712700 CPU進行推理的時間是229.33 ms。使用RTX3050 GPU進行推理的時間是8.58 ms。按此推理速度計算,理論上在該平臺進行實時推理的幀率可以達到120幀/s,但受內存帶寬以及后續圖像處理等因素影響,實際幀率不到一半。
經過測試,模型的訓練集mIOU為0.931 52,測試集mIOU為0.807 81。對測試集圖片進行了分割實驗,實驗結果如圖4、圖5所示。

圖4 輸入圖片示例圖

圖5 測試集圖片分割檢測結果圖
圖4是輸入圖片,圖5是分割檢測結果,從中可以看到,網絡很好地分割了雜草和玉米幼苗,但對重疊部分的葉片分類不太精確。
測試了模型的一些其他性能指標,以便更準確地反映模型的實際性能,其中有混淆矩陣、ROC曲線以及Precision-Recall(PR)曲線,分別如圖6、圖7、圖8所示。

圖6 混淆矩陣

圖7 ROC曲線

圖8 PR曲線
通過混淆矩陣可以看出,模型對玉米和雜草的分割不是很好。從ROC曲線和PR曲線可以看出,模型對背景的分割最準確,玉米苗和雜草次之,也可以證明模型對玉米和雜草的分類不太準確。測試了該模型的一些其他指標:像素準確率為0.952 8;平均像素準確率為0.791 4;頻權交并比為0.913 4。
為了體現PAN模型的優越性,采用FCN全卷積神經網絡進行對比。這里采用ResNet18模型去掉最后的池化層和全連接層,加上轉置卷積層一步上采樣至原圖尺寸,具體示意圖如圖9所示。

圖9 基于ResNet18的FCN模型示意圖
該模型首先采用深度殘差卷積網絡將3通道寬256像素、高256像素的圖片通過18個卷積殘差層下采樣至512通道寬8像素、高8像素大小,經過一個轉置卷積層一步上采樣,將特征圖放大32倍采樣至原圖大小,同時將通道數轉為3,用于三分類。
相較于本文提出的PAN模型,FCN全卷積模型缺少金字塔特征融合結構,沒有漸進式上采樣層,若使用一步采樣的策略,會丟失一定的邊緣細節。全卷積網絡的輸入圖片示例和分割檢測結果分別如圖4、圖10所示。

圖10 全卷積網絡分割檢測結果圖
FCN模型的混淆矩陣、ROC曲線、PR曲線分別如圖11、圖12、圖13所示。以下是FCN全卷積網絡的一些指標:像素準確率為0.879 0;平均像素準確率為0.407 7;頻權交并比為0.852 9;平均交并比為0.724 1。從FCN全卷積網絡的各類指標可以看出,FCN在各類指標上均不如本文提出的PAN模型,證明了多尺度特征融合和漸進式上采樣能夠顯著提高語義分割模型的性能。

圖11 FCN模型混淆矩陣

圖12 FCN模型ROC曲線

圖13 FCN模型PR曲線
本文提出了一種基于深度卷積神經網絡和PAN結構的語義分割模型。實驗結果發現該模型的訓練集mIOU指標可以達到0.931 52,ROC與PR指標均較好;測試集mIOU指標可以達到0.807 81,能夠較好地對雜草和玉米苗進行分割和識別。同時,其與FCN全卷積神經網絡模型在同一數據集上進行了指標對比,證明了PAN結構具有優越性。
建立了ResNet50深度卷積殘差模型進行下采樣,采用PAN結構進行多尺度特征融合,最后將使用漸進式上采樣解決邊緣細節問題的深度神經網絡模型在GPU平臺上進行了訓練,測試了該模型的性能指標,同時與FCN全卷積神經網絡模型在同一數據集上進行指標對比,體現了本文提出的PAN模型的優越性。
FCN全卷積模型也擁有模型輕量化、推理速度快等優點,比如本文使用的FCN模型僅僅擁有11 214 918的參數量,GPU推理時間為3.035 ms,CPU推理時間為30.81 ms,相較于本文提出的模型具有顯著的速度優勢。模型性能指標對比如表1所示。

表1 模型性能指標對比
綜上所述,使用深度卷積神經網絡實現對玉米苗和雜草的語義分割是可行的,能夠為農業的自動化除草工作提供參考。