馬志艷,張徐康,楊光友
(湖北工業(yè)大學農(nóng)業(yè)機械工程研究設(shè)計院,武漢市,430068)
目前,國內(nèi)聯(lián)合收割機智能化應(yīng)用程度相較于國外發(fā)展較慢,德國CLAAS公司已在聯(lián)合收割機內(nèi)實現(xiàn)水稻含雜率實時檢測分析[1],而國內(nèi)仍依賴于人工稱重法來實現(xiàn)對水稻含雜率的檢測。該方法不僅效率低下,在實際收割過程中,由于駕駛員不能得到實時的含雜率信息反饋,還會產(chǎn)生收割評價指標下降導致的“軟故障”[2]。因此,聯(lián)合收割機收割過程中的含雜率實時檢測研究對農(nóng)機智能化發(fā)展有著重要意義。
近年來,圖像處理技術(shù)在水稻雜質(zhì)識別中有著較大進展。Mahirah等[3]采用雙光源視覺系統(tǒng),并利用顏色閾值可有效檢測水稻雜質(zhì)。蘇憶楠[4]基于水稻和莖稈雜質(zhì)的形狀、顏色與不變矩等特征建立模型,結(jié)合BP算法對雜質(zhì)進行識別,其正確率在90%以上。陳進團隊[5-6]利用水稻與莖稈、枝梗雜質(zhì)在HSV空間的差異性對水稻雜質(zhì)進行識別分割在實時性上取得較好成果;該團隊還結(jié)合U-Net模型對莖稈進行分割其莖稈識別準確率可達到87.16%。
基于掩膜的區(qū)域卷積神經(jīng)網(wǎng)絡(luò)特征(Mask regions with CNN,Mask R-CNN)是He等[7]提出的一種目標檢測方法。岳友軍等[8]利用Mask R-CNN對蘋果進行分割,試驗結(jié)果表明該網(wǎng)絡(luò)可較好的應(yīng)用于農(nóng)業(yè)中。本文依據(jù)所采集圖像中莖稈雜質(zhì)的形狀與位置特征對Mask R-CNN進行改進,利用該網(wǎng)絡(luò)訓練后模型對莖稈雜質(zhì)進行分割,并進行試驗驗證其性能。
本文的試驗對象為深兩優(yōu)136水稻,均為2019年10月雷沃RG50聯(lián)合收割機收獲于試驗武漢市黃陂某水稻試驗基地,收割機額定喂入量為5 kg/s,水稻作物密度為2.08 kg/m2,聯(lián)合收割機收割過程中平均行走速度為1.2 m/s,割幅為2 m,平均割茬高度為15 cm,拍攝時水稻籽粒平均含水率為21.6%。
本試驗采集3 000張大小為512像素×512像素的含莖稈雜質(zhì)的水稻圖像,格式為jpg,并用labelme標記工具進行人工標定。其中包括2 400張訓練集、300張測試集以及300張驗證集。因細小枝梗雜質(zhì)質(zhì)量在實際含雜率中占比非常少,因此本試驗主要針對莖稈雜質(zhì)進行標定與分割。
深度神經(jīng)網(wǎng)絡(luò)需要大量訓練樣本以保證模型性能,數(shù)據(jù)過少易導致網(wǎng)絡(luò)過擬合。本試驗使用圖像增廣技術(shù),通過對訓練集樣本采用鏡像、旋轉(zhuǎn)、Retinex色彩增強、高斯噪聲與模糊處理,擴增訓練集樣本至四倍。以此解決上述問題,并能有效降低模型對某些屬性的依賴,從而提高模型的泛化能力[9]。
Mask R-CNN自提出以來,在目標檢測與分割上取得良好效果,其整體框架如圖1所示,其中殘差網(wǎng)絡(luò)(Residual network, ResNet)與特征金字塔網(wǎng)絡(luò)結(jié)合(Feature pyramid networks,F(xiàn)PN)作為特征提取網(wǎng)絡(luò)[10],融合高層特征與低層特征得到具有多維度特征的特征圖,并將其共享至區(qū)域生成網(wǎng)絡(luò)(Region proposal networks,RPN)與區(qū)域特征聚集層(RoIalign)。RPN以特征圖作為輸入,得到含莖稈雜質(zhì)錨框(Anchor)與該錨框?qū)?yīng)分數(shù),并利用非極大抑制值(Non-Maximum suppression,NMS)去除分數(shù)較低錨框[11]。由于RPN產(chǎn)生的錨框尺寸不同,使用RoI Align將不同尺寸錨框映射成固定區(qū)域尺寸后輸入全連接層(Fully connected layer,F(xiàn)CL)與全卷積網(wǎng)絡(luò)層(Fully convolution network,F(xiàn)CN)。FCL輸出含水稻邊框回歸精確邊框位置和所屬類得分,F(xiàn)CN輸出莖稈雜質(zhì)區(qū)域掩膜[11]。
圖1 Mask R-CNN整體框架
2.2.1 ResNet網(wǎng)絡(luò)優(yōu)化
He等[10]在2015年提出ResNet網(wǎng)絡(luò),作者將訓練過程中層擬合函數(shù)的過程轉(zhuǎn)化為學習殘差函數(shù),以此有效解決了以往淺層神經(jīng)網(wǎng)絡(luò)增加層數(shù)時產(chǎn)生的訓練退化問題,并在特征提取上取得較好效果。但該網(wǎng)絡(luò)仍會存在網(wǎng)絡(luò)越深,模型復(fù)雜度越高,計算量越大的問題。因此XIE等在ResNet基礎(chǔ)上進行優(yōu)化,提出通過拓撲方式,將通道分解再歸并的方法解決上述問題。本文對原始Mask R-CNN中ResNet層進行改進,如圖2所示。
(a) 殘差塊示意圖 (b) 改進后殘差塊示意圖
2.2.2 RPN層優(yōu)化
RPN層根據(jù)特征圖生成所有可能含莖稈雜質(zhì)區(qū)域的目標框,并采用傳統(tǒng)NMS對目標框進行篩選[12-13]。由于傳統(tǒng)NMS可能對水稻雜質(zhì)圖像中黏連處或位置較近處莖稈產(chǎn)生誤判,因此引入高斯函數(shù)對NMS進行優(yōu)化[14],該函數(shù)會衰減與最高得分檢測框M有重疊的相鄰檢測框分數(shù),傳統(tǒng)NMS如式(1)所示,優(yōu)化后檢測框得分如式(2)所示。本文針對莖稈雜質(zhì)形狀特征,RPN層錨框比優(yōu)選為(1∶1,1∶3,3∶1),錨框尺度選用(64×64,128×128,256×256)。圖3(a)、圖3(b)分別為改進前后錨框示意圖,可見改進前錨框?qū)ηo稈雜質(zhì)兩端框選仍有遺漏,而改進后錨框?qū)ηo稈框選更加完整。
(1)
(2)
式中:si——當前檢測框得分;
Si——當前檢測框最終得分;
M——當前目標候選框;
Mi——第i個候選框區(qū)域;
IoU(M,Mi)——Mi與M的面積交集與面積并集之比,表示二者間重疊率;
σ——高斯函數(shù)中預(yù)定義參數(shù)。
(a) 改進前錨框框選示意圖
(b) 改進后錨框框選示意圖
2.2.3 RoI Align層優(yōu)化
RoIPooling在對區(qū)域特征圖進行池化時,常常會存在量化誤差[15],而Mask R-CNN中采用雙線性插值法減少了該部分的誤差如式(3)所示[16]。由于水稻莖稈圖中,水稻谷粒與莖稈黏連情況較為嚴重,較小的量化誤差仍會對結(jié)果產(chǎn)生較大影響,因此本試驗選用二重積分法進一步減少池化層中存在的量化誤差,如式(4)所示。
(3)
(4)
式中:bin——待池化特征塊;
N——待池化特征塊劃分塊數(shù);
F——特征塊數(shù);
ai,bi——RoI區(qū)域分塊后線性插值所得塊橫、縱坐標值;
x1,y1,x2,y2——RoI區(qū)域左上角、右下角坐標值。
2.2.4 損失函數(shù)優(yōu)化
由于水稻與水稻莖稈重疊黏連時,兩者邊緣特征較為接近,因此該部分邊緣特征會導致訓練時間較慢,且最后分割掩膜對邊緣容易不敏感[17]。本文選擇在在損失函數(shù)中加入邊緣損失Ledge,首先利用二階微分Laplace算子對訓練樣本中標定好的莖稈掩膜卷積求得實際邊緣,并將其加入訓練集,在損失函數(shù)中,依據(jù)對預(yù)測掩膜采用Laplace算子求得的預(yù)測邊緣與實際邊緣對比,求得邊緣損失,為防止其他掩膜邊緣影響所檢測掩膜邊緣損失,選擇平均二值交叉熵為邊緣損失函數(shù),如式(5)所示。
(5)
式中:qi——像素點的預(yù)測概率;
qi*——該像素點是否為邊緣像素點,若是則為1,否則為0。
則該改進后Mask R-CNN網(wǎng)絡(luò)總損失函數(shù)如式(6)所示。
L=Lclass+Lbox+Lmask+Ledge
(6)
式中:Lclass——分類損失;
Lbox——邊框回歸損失;
Lmask——掩膜損失。
本文分割模型使用Tensorflow深度學習框架,使用的編程工具及軟件運行平臺為anaconda3、spyder4、CUDA10.1、keras2.2.4、Tensorflow1.13.1、Python3.6.8。算法運行硬件環(huán)境為CPU I9-10750H、GPU RTX2060 6 g、16 g內(nèi)存。
為了能達到較優(yōu)效果模型,本試驗訓練模型分為兩個階段。第一階段為預(yù)訓練階段,從加州大學歐文分校(University of CaliforniaIrvine,UCI)數(shù)據(jù)庫中可獲取種子數(shù)據(jù)集(Seeds date set)和水稻災(zāi)害識別數(shù)據(jù)集(Dataset for field crop disease identification),其中含有大量水稻谷粒數(shù)據(jù),選用該數(shù)據(jù)集進行訓練可得到模型初步擬合的權(quán)重參數(shù)和語義特征信息。第二個階段為正式訓練階段,采用所得圖像增廣后訓練集進行訓練,以測試集為泛化誤差評判依據(jù),為防止信息泄露,選用驗證集做最后模型評估。
試驗正式訓練階段優(yōu)化調(diào)整參數(shù)包括學習率(Learning rate,LR)和上述預(yù)訓練階段所得初步擬合的權(quán)重參數(shù)。當LR較高時,會有益于迭代更新速度的增加,但不利于找到最優(yōu)解;LR較低時,可能導致模型陷入局部最優(yōu)解而無法打到全局最優(yōu),因此本試驗先采用較大LR尋找全局最優(yōu)解,后續(xù)選擇較小LR,期待以此達到模型全局最優(yōu)解。本試驗預(yù)先設(shè)置LR為0.01,選擇小批量梯度下降法對LR進行調(diào)整優(yōu)化,當兩次迭代之間變化小于0.001,則以1/5比例降低LR。試驗中,選擇batch size=1,RPN batch size=256,將epoch設(shè)置為100進行訓練,并得到最終分割用模型。
以3.2節(jié)中所設(shè)定參數(shù)分別對改進前后Mask RCNN進行訓練,改進前后訓練過程中損失值變化曲線如圖4、圖5所示。由圖4可知改進前網(wǎng)絡(luò)在迭代100次時損失值趨近于0.3,而改進后網(wǎng)絡(luò)在迭代至100次時損失值趨近于0.25,優(yōu)于原始網(wǎng)絡(luò)。
圖4 原始Mask R-CNN訓練過程中損失值變化曲線
圖5 基于改進Mask R-CNN訓練過程中損失值變化曲線
為驗證改進后Mask R-CNN模型對水稻谷粒中莖稈雜質(zhì)分割的有效性。本試驗先將經(jīng)過改進的Mask R-CNN與未改進Mask R-CNN進行對比。然后選擇與現(xiàn)有分割效果較好的算法進行對比,并得出試驗結(jié)論。
由于需要對莖稈雜質(zhì)分割結(jié)果做出評價,選用精確率P(Precision)與召回率R(Recall)兩個指標對分割結(jié)果進行量化評價。并選取F1值作為分割結(jié)果綜合評價指標,如式(7)~式(9)所示。
F1=2P×R/(P+R)
(7)
P=TP/(TP+FP)
(8)
R=TP/(TP+FN)
(9)
式中:TP——分割后圖像中分割正確的莖稈雜質(zhì)上的點;
FP——分割后圖像中莖稈雜質(zhì)上的點誤判為背景的點;
FN——分割后圖像中背景上的點誤判為莖稈上的點。
訓練后模型對512像素×512像素中莖稈雜質(zhì)分割結(jié)果如圖6所示,圖像1中間處細長莖稈在原始Mask R-CNN中分割效果較差,而改進后掩膜覆蓋較好;圖像2中莖稈重疊處改進Mask R-CNN模型分割效果優(yōu)于原始模型;圖像3中細長莖稈在原始Mask R-CNN中未被正確識別,而改進后模型識別效果較好。圖像4中下方被水稻部分遮掩莖稈原始Mask R-CNN 模型未能準確識別,而改進后Mask R-CNN模型分割效果優(yōu)于原始模型,但在該莖稈上方與水稻重疊處有輕微過分割現(xiàn)象。
圖6 分割結(jié)果
從未使用過的驗證集與測試集中隨機挑選100幅圖像,分別用文獻[5]、文獻[6]、原始Mask R-CNN與改進后Mask R-CNN對水稻中莖稈雜質(zhì)進行分割,計算精確率、召回率與計算所得F1值,并記錄各算法平均處理時間,結(jié)果如表1所示。
表1 4種算法分割結(jié)果對比Tab. 1 Comparison of segmentation results of four algorithms
由試驗結(jié)果可知,文獻[5]結(jié)合MSRCR與HSV顏色模型對雜質(zhì)與水稻進行分割識別在處理時間上有明顯優(yōu)勢,單張圖片處理時間僅需2.88 s,但對于顏色相近的谷物莖稈易造成誤識別,綜合評價指標為71.64%。文獻[6]中采用改進U-NET模型對水稻莖稈雜質(zhì)分割結(jié)果表現(xiàn)較好,綜合評價指標F1可達到88.07%。本試驗中改進后Mask R-CNN網(wǎng)絡(luò)綜合評價指標F1為91.12%,單張?zhí)幚頃r間為3.57 s,相較于改進U-NET模型有一定優(yōu)勢,且明顯優(yōu)于原始Mask R-CNN。
1) 本文提出一種基于改進Mask R-CNN的水稻中莖稈雜質(zhì)分割方法。采用拓撲方式對ResNet中殘差模塊進行改進提高網(wǎng)絡(luò)召回率;針對莖稈雜質(zhì)特征,對RPN層中錨框尺寸進行優(yōu)選,并優(yōu)化錨框選取方法;針對圖像粘連情況,采用雙重積分法對RoI Align層進行優(yōu)化;最后針對邊緣分割精度較差問題,引入邊緣損失計算。試驗結(jié)果表明改進后模型明顯優(yōu)于原始Mask R-CNN。
2) 為了對分割結(jié)果進行量化評價,采用F1對精確率和召回率進行綜合評價。訓練后模型對莖稈雜質(zhì)分割識別準確度可達91.12%,平均處理時間為3.57 s。
3) 改進后Mask R-CNN模型檢測精度較高,速度基本滿足聯(lián)合收割機作業(yè)中實時檢測要求,為含雜率實時檢測落地奠定基礎(chǔ),在下一步研究中還可一步優(yōu)化分割模型,提高檢測準確度。