馬志艷,張徐康,楊光友
(湖北工業大學農業機械工程研究設計院,武漢市,430068)
目前,國內聯合收割機智能化應用程度相較于國外發展較慢,德國CLAAS公司已在聯合收割機內實現水稻含雜率實時檢測分析[1],而國內仍依賴于人工稱重法來實現對水稻含雜率的檢測。該方法不僅效率低下,在實際收割過程中,由于駕駛員不能得到實時的含雜率信息反饋,還會產生收割評價指標下降導致的“軟故障”[2]。因此,聯合收割機收割過程中的含雜率實時檢測研究對農機智能化發展有著重要意義。
近年來,圖像處理技術在水稻雜質識別中有著較大進展。Mahirah等[3]采用雙光源視覺系統,并利用顏色閾值可有效檢測水稻雜質。蘇憶楠[4]基于水稻和莖稈雜質的形狀、顏色與不變矩等特征建立模型,結合BP算法對雜質進行識別,其正確率在90%以上。陳進團隊[5-6]利用水稻與莖稈、枝梗雜質在HSV空間的差異性對水稻雜質進行識別分割在實時性上取得較好成果;該團隊還結合U-Net模型對莖稈進行分割其莖稈識別準確率可達到87.16%。
基于掩膜的區域卷積神經網絡特征(Mask regions with CNN,Mask R-CNN)是He等[7]提出的一種目標檢測方法。岳友軍等[8]利用Mask R-CNN對蘋果進行分割,試驗結果表明該網絡可較好的應用于農業中。本文依據所采集圖像中莖稈雜質的形狀與位置特征對Mask R-CNN進行改進,利用該網絡訓練后模型對莖稈雜質進行分割,并進行試驗驗證其性能。
本文的試驗對象為深兩優136水稻,均為2019年10月雷沃RG50聯合收割機收獲于試驗武漢市黃陂某水稻試驗基地,收割機額定喂入量為5 kg/s,水稻作物密度為2.08 kg/m2,聯合收割機收割過程中平均行走速度為1.2 m/s,割幅為2 m,平均割茬高度為15 cm,拍攝時水稻籽粒平均含水率為21.6%。
本試驗采集3 000張大小為512像素×512像素的含莖稈雜質的水稻圖像,格式為jpg,并用labelme標記工具進行人工標定。其中包括2 400張訓練集、300張測試集以及300張驗證集。因細小枝梗雜質質量在實際含雜率中占比非常少,因此本試驗主要針對莖稈雜質進行標定與分割。
深度神經網絡需要大量訓練樣本以保證模型性能,數據過少易導致網絡過擬合。本試驗使用圖像增廣技術,通過對訓練集樣本采用鏡像、旋轉、Retinex色彩增強、高斯噪聲與模糊處理,擴增訓練集樣本至四倍。以此解決上述問題,并能有效降低模型對某些屬性的依賴,從而提高模型的泛化能力[9]。
Mask R-CNN自提出以來,在目標檢測與分割上取得良好效果,其整體框架如圖1所示,其中殘差網絡(Residual network, ResNet)與特征金字塔網絡結合(Feature pyramid networks,FPN)作為特征提取網絡[10],融合高層特征與低層特征得到具有多維度特征的特征圖,并將其共享至區域生成網絡(Region proposal networks,RPN)與區域特征聚集層(RoIalign)。RPN以特征圖作為輸入,得到含莖稈雜質錨框(Anchor)與該錨框對應分數,并利用非極大抑制值(Non-Maximum suppression,NMS)去除分數較低錨框[11]。由于RPN產生的錨框尺寸不同,使用RoI Align將不同尺寸錨框映射成固定區域尺寸后輸入全連接層(Fully connected layer,FCL)與全卷積網絡層(Fully convolution network,FCN)。FCL輸出含水稻邊框回歸精確邊框位置和所屬類得分,FCN輸出莖稈雜質區域掩膜[11]。

圖1 Mask R-CNN整體框架
2.2.1 ResNet網絡優化
He等[10]在2015年提出ResNet網絡,作者將訓練過程中層擬合函數的過程轉化為學習殘差函數,以此有效解決了以往淺層神經網絡增加層數時產生的訓練退化問題,并在特征提取上取得較好效果。但該網絡仍會存在網絡越深,模型復雜度越高,計算量越大的問題。因此XIE等在ResNet基礎上進行優化,提出通過拓撲方式,將通道分解再歸并的方法解決上述問題。本文對原始Mask R-CNN中ResNet層進行改進,如圖2所示。

(a) 殘差塊示意圖 (b) 改進后殘差塊示意圖
2.2.2 RPN層優化
RPN層根據特征圖生成所有可能含莖稈雜質區域的目標框,并采用傳統NMS對目標框進行篩選[12-13]。由于傳統NMS可能對水稻雜質圖像中黏連處或位置較近處莖稈產生誤判,因此引入高斯函數對NMS進行優化[14],該函數會衰減與最高得分檢測框M有重疊的相鄰檢測框分數,傳統NMS如式(1)所示,優化后檢測框得分如式(2)所示。本文針對莖稈雜質形狀特征,RPN層錨框比優選為(1∶1,1∶3,3∶1),錨框尺度選用(64×64,128×128,256×256)。圖3(a)、圖3(b)分別為改進前后錨框示意圖,可見改進前錨框對莖稈雜質兩端框選仍有遺漏,而改進后錨框對莖稈框選更加完整。
(1)
(2)
式中:si——當前檢測框得分;
Si——當前檢測框最終得分;
M——當前目標候選框;
Mi——第i個候選框區域;
IoU(M,Mi)——Mi與M的面積交集與面積并集之比,表示二者間重疊率;
σ——高斯函數中預定義參數。

(a) 改進前錨框框選示意圖

(b) 改進后錨框框選示意圖
2.2.3 RoI Align層優化
RoIPooling在對區域特征圖進行池化時,常常會存在量化誤差[15],而Mask R-CNN中采用雙線性插值法減少了該部分的誤差如式(3)所示[16]。由于水稻莖稈圖中,水稻谷粒與莖稈黏連情況較為嚴重,較小的量化誤差仍會對結果產生較大影響,因此本試驗選用二重積分法進一步減少池化層中存在的量化誤差,如式(4)所示。
(3)
(4)
式中:bin——待池化特征塊;
N——待池化特征塊劃分塊數;
F——特征塊數;
ai,bi——RoI區域分塊后線性插值所得塊橫、縱坐標值;
x1,y1,x2,y2——RoI區域左上角、右下角坐標值。
2.2.4 損失函數優化
由于水稻與水稻莖稈重疊黏連時,兩者邊緣特征較為接近,因此該部分邊緣特征會導致訓練時間較慢,且最后分割掩膜對邊緣容易不敏感[17]。本文選擇在在損失函數中加入邊緣損失Ledge,首先利用二階微分Laplace算子對訓練樣本中標定好的莖稈掩膜卷積求得實際邊緣,并將其加入訓練集,在損失函數中,依據對預測掩膜采用Laplace算子求得的預測邊緣與實際邊緣對比,求得邊緣損失,為防止其他掩膜邊緣影響所檢測掩膜邊緣損失,選擇平均二值交叉熵為邊緣損失函數,如式(5)所示。
(5)
式中:qi——像素點的預測概率;
qi*——該像素點是否為邊緣像素點,若是則為1,否則為0。
則該改進后Mask R-CNN網絡總損失函數如式(6)所示。
L=Lclass+Lbox+Lmask+Ledge
(6)
式中:Lclass——分類損失;
Lbox——邊框回歸損失;
Lmask——掩膜損失。
本文分割模型使用Tensorflow深度學習框架,使用的編程工具及軟件運行平臺為anaconda3、spyder4、CUDA10.1、keras2.2.4、Tensorflow1.13.1、Python3.6.8。算法運行硬件環境為CPU I9-10750H、GPU RTX2060 6 g、16 g內存。
為了能達到較優效果模型,本試驗訓練模型分為兩個階段。第一階段為預訓練階段,從加州大學歐文分校(University of CaliforniaIrvine,UCI)數據庫中可獲取種子數據集(Seeds date set)和水稻災害識別數據集(Dataset for field crop disease identification),其中含有大量水稻谷粒數據,選用該數據集進行訓練可得到模型初步擬合的權重參數和語義特征信息。第二個階段為正式訓練階段,采用所得圖像增廣后訓練集進行訓練,以測試集為泛化誤差評判依據,為防止信息泄露,選用驗證集做最后模型評估。
試驗正式訓練階段優化調整參數包括學習率(Learning rate,LR)和上述預訓練階段所得初步擬合的權重參數。當LR較高時,會有益于迭代更新速度的增加,但不利于找到最優解;LR較低時,可能導致模型陷入局部最優解而無法打到全局最優,因此本試驗先采用較大LR尋找全局最優解,后續選擇較小LR,期待以此達到模型全局最優解。本試驗預先設置LR為0.01,選擇小批量梯度下降法對LR進行調整優化,當兩次迭代之間變化小于0.001,則以1/5比例降低LR。試驗中,選擇batch size=1,RPN batch size=256,將epoch設置為100進行訓練,并得到最終分割用模型。
以3.2節中所設定參數分別對改進前后Mask RCNN進行訓練,改進前后訓練過程中損失值變化曲線如圖4、圖5所示。由圖4可知改進前網絡在迭代100次時損失值趨近于0.3,而改進后網絡在迭代至100次時損失值趨近于0.25,優于原始網絡。

圖4 原始Mask R-CNN訓練過程中損失值變化曲線

圖5 基于改進Mask R-CNN訓練過程中損失值變化曲線
為驗證改進后Mask R-CNN模型對水稻谷粒中莖稈雜質分割的有效性。本試驗先將經過改進的Mask R-CNN與未改進Mask R-CNN進行對比。然后選擇與現有分割效果較好的算法進行對比,并得出試驗結論。
由于需要對莖稈雜質分割結果做出評價,選用精確率P(Precision)與召回率R(Recall)兩個指標對分割結果進行量化評價。并選取F1值作為分割結果綜合評價指標,如式(7)~式(9)所示。
F1=2P×R/(P+R)
(7)
P=TP/(TP+FP)
(8)
R=TP/(TP+FN)
(9)
式中:TP——分割后圖像中分割正確的莖稈雜質上的點;
FP——分割后圖像中莖稈雜質上的點誤判為背景的點;
FN——分割后圖像中背景上的點誤判為莖稈上的點。
訓練后模型對512像素×512像素中莖稈雜質分割結果如圖6所示,圖像1中間處細長莖稈在原始Mask R-CNN中分割效果較差,而改進后掩膜覆蓋較好;圖像2中莖稈重疊處改進Mask R-CNN模型分割效果優于原始模型;圖像3中細長莖稈在原始Mask R-CNN中未被正確識別,而改進后模型識別效果較好。圖像4中下方被水稻部分遮掩莖稈原始Mask R-CNN 模型未能準確識別,而改進后Mask R-CNN模型分割效果優于原始模型,但在該莖稈上方與水稻重疊處有輕微過分割現象。

圖6 分割結果
從未使用過的驗證集與測試集中隨機挑選100幅圖像,分別用文獻[5]、文獻[6]、原始Mask R-CNN與改進后Mask R-CNN對水稻中莖稈雜質進行分割,計算精確率、召回率與計算所得F1值,并記錄各算法平均處理時間,結果如表1所示。

表1 4種算法分割結果對比Tab. 1 Comparison of segmentation results of four algorithms
由試驗結果可知,文獻[5]結合MSRCR與HSV顏色模型對雜質與水稻進行分割識別在處理時間上有明顯優勢,單張圖片處理時間僅需2.88 s,但對于顏色相近的谷物莖稈易造成誤識別,綜合評價指標為71.64%。文獻[6]中采用改進U-NET模型對水稻莖稈雜質分割結果表現較好,綜合評價指標F1可達到88.07%。本試驗中改進后Mask R-CNN網絡綜合評價指標F1為91.12%,單張處理時間為3.57 s,相較于改進U-NET模型有一定優勢,且明顯優于原始Mask R-CNN。
1) 本文提出一種基于改進Mask R-CNN的水稻中莖稈雜質分割方法。采用拓撲方式對ResNet中殘差模塊進行改進提高網絡召回率;針對莖稈雜質特征,對RPN層中錨框尺寸進行優選,并優化錨框選取方法;針對圖像粘連情況,采用雙重積分法對RoI Align層進行優化;最后針對邊緣分割精度較差問題,引入邊緣損失計算。試驗結果表明改進后模型明顯優于原始Mask R-CNN。
2) 為了對分割結果進行量化評價,采用F1對精確率和召回率進行綜合評價。訓練后模型對莖稈雜質分割識別準確度可達91.12%,平均處理時間為3.57 s。
3) 改進后Mask R-CNN模型檢測精度較高,速度基本滿足聯合收割機作業中實時檢測要求,為含雜率實時檢測落地奠定基礎,在下一步研究中還可一步優化分割模型,提高檢測準確度。