孫 哲 張春龍 葛魯鎮(zhèn) 張 銘 李 偉 譚豫之
(中國農(nóng)業(yè)大學(xué)工學(xué)院, 北京 100083)
中國是西蘭花生產(chǎn)大國,總產(chǎn)量約150萬t,占全球7%左右,隨著種植面積的不斷擴(kuò)大,西蘭花除草工作量逐年增大[1-2]。目前,我國除草作業(yè)主要采用化學(xué)除草與人工除草,在食品安全意識(shí)與勞動(dòng)力成本提高的背景下[3],發(fā)展智能除草裝備具有廣闊的應(yīng)用前景[4-6]。作為智能除草裝備的核心技術(shù)之一[7],快速精準(zhǔn)的作物識(shí)別是影響除草質(zhì)量的關(guān)鍵因素。
近年來,科研工作者對(duì)自然環(huán)境下作物識(shí)別進(jìn)行了深入研究[8-13]。陳樹人等[14]提出基于顏色特征的棉花與雜草識(shí)別技術(shù),采用R分量與B分量的標(biāo)準(zhǔn)差小于5作為判斷苗草的閾值,對(duì)棉花識(shí)別的總體準(zhǔn)確率為82.1%。HERRMANN等[15]利用高光譜成像技術(shù)獲取麥田圖像,并設(shè)計(jì)基于最小二乘法的分類器,分割小麥與雜草,對(duì)田間作物的分類準(zhǔn)確率為72%。GARCIA等[16]在分割植物與土壤背景后,利用Otsu自動(dòng)閾值分割法區(qū)分作物和雜草,該方法對(duì)作物的正確識(shí)別率為86.3%。張志斌等[17]研究了基于快速SURF特征的提取算法,該方法中立體視覺系統(tǒng)的左、右目作物圖像正確匹配率分別為94.8%和92.4%。NIEUWENHUIZEN等[18]結(jié)合顏色與紋理特征,采用自適應(yīng)貝葉斯分類器進(jìn)行分類,該方法對(duì)固定光照和變化光照條件下甜菜的正確分類率分別為89.8%和67.7%。
上述傳統(tǒng)識(shí)別方法主要根據(jù)經(jīng)驗(yàn),易受小樣本和人為主觀因素影響[19],無法找到通用特征模型,魯棒性不強(qiáng),很難用一種方法對(duì)復(fù)雜田間環(huán)境下的作物進(jìn)行有效識(shí)別。相比傳統(tǒng)方法,深度學(xué)習(xí)采用數(shù)據(jù)本身特征進(jìn)行自我學(xué)習(xí),對(duì)圖像具有極強(qiáng)的表征能力,可以克服傳統(tǒng)方法的不足。彭紅星等[20]利用改進(jìn)SSD模型,對(duì)自然環(huán)境下的荔枝、皇帝柑、臍橙和蘋果進(jìn)行檢測(cè),平均檢測(cè)精度為89.53%。周云成等[21]提出一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的番茄器官分類識(shí)別方法,分類錯(cuò)誤率低于6.39%。
基于深度學(xué)習(xí)準(zhǔn)確度高、普適性強(qiáng)的特點(diǎn),本文采用Faster R-CNN[22]模型對(duì)自然環(huán)境下的西蘭花幼苗進(jìn)行識(shí)別。依據(jù)田間環(huán)境下西蘭花幼苗圖像特點(diǎn),優(yōu)化特征提取網(wǎng)絡(luò)與超參數(shù),建立一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的西蘭花幼苗圖像識(shí)別模型。
試驗(yàn)圖像于2018年4—5月采集自北京國際都市農(nóng)業(yè)科技園,采集設(shè)備為Canon SX730 HS型相機(jī),圖像分辨率為1 600像素×1 200像素,共采集圖像樣本6 230幅。為保證圖像樣本的多樣性,針對(duì)3塊不同播種時(shí)間的試驗(yàn)田,分別采集西蘭花幼苗除草期的作物圖像。圖像樣本包含不同光照強(qiáng)度、不同地面含水率和不同雜草密度等情況,部分樣本示例如圖1所示。
圖1 部分樣本示例Fig.1 Examples of sample diversity
圖像采集過程中雖然已考慮樣本所處環(huán)境的多樣性,但西蘭花幼苗葉和莖的生長(zhǎng)以及成像角度具有隨機(jī)性,因此本文采用圖像旋轉(zhuǎn)0°、90°、180°和270°的方法進(jìn)行數(shù)據(jù)增強(qiáng),將總樣本數(shù)擴(kuò)大至4倍,提高訓(xùn)練模型的泛化能力。受樣本集規(guī)模與訓(xùn)練次數(shù)的影響,深度卷積神經(jīng)網(wǎng)絡(luò)會(huì)對(duì)圖像樣本的高頻特征進(jìn)行學(xué)習(xí),導(dǎo)致過擬合的出現(xiàn)。本文在圖像樣本上添加零均值特性的高斯噪聲,使圖像樣本在所有頻率上都產(chǎn)生數(shù)據(jù)點(diǎn),可有效抑制高頻特征,減小其對(duì)模型的影響。
將整體樣本按照PASCAL VOC數(shù)據(jù)集格式進(jìn)行劃分,試驗(yàn)樣本數(shù)據(jù)集包括訓(xùn)練集圖像17 440幅,測(cè)試集圖像7 480幅,總樣本數(shù)為24 920。訓(xùn)練集從整體樣本中隨機(jī)選出,且與測(cè)試集互斥。為保證所得模型的可靠與穩(wěn)定,訓(xùn)練過程中將訓(xùn)練集平均劃分為n份,每次選取n-1份作為訓(xùn)練集,另外1份作為驗(yàn)證集,驗(yàn)證集上n次誤差的平均值作為該模型的誤差,最后采用測(cè)試集評(píng)估模型的泛化能力。
Faster R-CNN模型是對(duì)R-CNN[23]和Fast R-CNN[24]的改進(jìn),通過卷積神經(jīng)網(wǎng)絡(luò)提取候選框,同時(shí)加入多任務(wù)學(xué)習(xí),使得網(wǎng)絡(luò)訓(xùn)練過程中能夠同時(shí)獲得物體所屬類別和位置?;贔aster R-CNN的西蘭花幼苗檢測(cè)步驟如下:
(1)利用特征提取網(wǎng)絡(luò)提取圖像的特征圖,該特征圖被后續(xù)候選區(qū)域(RPN)網(wǎng)絡(luò)與Fast R-CNN網(wǎng)絡(luò)共享。
(2)RPN網(wǎng)絡(luò)通過Softmax分類器執(zhí)行二分類任務(wù),判斷錨點(diǎn)(anchors)屬于前景還是背景,并通過錨點(diǎn)回歸得到候選框位置。
(3)Fast R-CNN綜合特征圖與候選框信息,判別前景所屬類別,并生成最終檢測(cè)框的精確位置。
Faster R-CNN模型結(jié)構(gòu)如圖2所示,F(xiàn)aster R-CNN用RPN網(wǎng)絡(luò)代替Fast R-CNN中Selective Search方法實(shí)現(xiàn)候選框的提取,提高了檢測(cè)的精度與速度。
圖2 Faster R-CNN模型結(jié)構(gòu)Fig.2 Faster R-CNN architecture
使用RPN網(wǎng)絡(luò)提取候選框,使Faster R-CNN實(shí)現(xiàn)了端到端的物體檢測(cè)。RPN網(wǎng)絡(luò)是一個(gè)全卷積網(wǎng)絡(luò),在特征圖傳入RPN后,使用3×3的滑窗生成一個(gè)n維長(zhǎng)度的特征向量,然后將此特征向量分別傳入分類層與回歸層。在分類層中,使用Softmax分類器對(duì)錨點(diǎn)進(jìn)行前景與背景的判斷。在回歸層中,通過調(diào)整錨點(diǎn)邊框的中心坐標(biāo)與長(zhǎng)寬,擬合出候選框位置。在訓(xùn)練過程中,RPN網(wǎng)絡(luò)的損失函數(shù)[22]、分類層損失函數(shù)[22]與回歸層損失函數(shù)[24]如下
(1)
(2)
(3)
(4)
(5)
式中L——RPN網(wǎng)絡(luò)損失
Lcls——分類層損失
Lreg——回歸層損失
i——錨點(diǎn)索引
ti——預(yù)測(cè)邊界框坐標(biāo)向量
Ncls——分類樣本數(shù)
Nreg——回歸樣本數(shù)
pi——目標(biāo)的預(yù)測(cè)概率
λ——權(quán)重參數(shù)
smoothL1——平滑函數(shù)
RPN與Fast R-CNN為兩個(gè)獨(dú)立的網(wǎng)絡(luò),分別進(jìn)行單獨(dú)訓(xùn)練無法獲得收斂結(jié)果。本文采用交替訓(xùn)練方法對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。首先采用ImageNet的預(yù)訓(xùn)練模型對(duì)RPN網(wǎng)絡(luò)中的卷積層進(jìn)行參數(shù)初始化,獲得圖像通用特征,并生成候選區(qū)域框。其次,利用RPN網(wǎng)絡(luò)輸出的候選框?qū)ast R-CNN進(jìn)行訓(xùn)練。然后,用Fast R-CNN卷積層參數(shù)訓(xùn)練RPN網(wǎng)絡(luò),僅更新RPN中特有網(wǎng)絡(luò)層參數(shù)。最后固定共享卷積層,微調(diào)Fast R-CNN的全連接層,將RPN與Fast R-CNN統(tǒng)一起來,實(shí)現(xiàn)兩個(gè)網(wǎng)絡(luò)共享相同的卷積層。
試驗(yàn)處理平臺(tái)為臺(tái)式計(jì)算機(jī),處理器為Intel Core i7-8700k,主頻3.7 GHz, 16 GB內(nèi)存,500 GB固態(tài)硬盤, GPU采用NVIDIA 1080Ti,運(yùn)行環(huán)境為Windows 10(64位)系統(tǒng),Python 3.5.4,Tensorflow 1.8.0,CUDA 9.0.176版并行計(jì)算架構(gòu)與cuDNN 9.0版深層神經(jīng)網(wǎng)絡(luò)庫。
采用平均精度(Average precision)作為目標(biāo)檢測(cè)的評(píng)價(jià)指標(biāo)。平均精度與精確率、召回率有關(guān),精確率和召回率的計(jì)算方法為
(6)
(7)
式中Pre——精確率Rec——召回率
TP——被正確劃分為正樣本的數(shù)量
FP——被錯(cuò)誤劃分為正樣本的數(shù)量
FN——被錯(cuò)誤劃分為負(fù)樣本的數(shù)量
繪制精確率-召回率曲線,曲線的橫軸召回率反映了分類器對(duì)正樣本的覆蓋能力,縱軸精確率反映了分類器預(yù)測(cè)正樣本的精準(zhǔn)度。平均精度是對(duì)精確率-召回率曲線進(jìn)行積分,積分公式為
(8)
式中AP——平均精度
平均精度體現(xiàn)模型識(shí)別效果,其值越大效果越好,反之越差。
在模型訓(xùn)練中,特征提取器的選擇可影響模型的檢測(cè)精度與速度,隨著特征提取器層數(shù)的增加,網(wǎng)絡(luò)能夠提取更高維度的樣本特征,檢測(cè)準(zhǔn)確度應(yīng)該同步增加,但是網(wǎng)絡(luò)深度的增加會(huì)對(duì)各層更新信號(hào)造成影響,由于采用誤差反向傳播的方式,網(wǎng)絡(luò)深度增加后,前層網(wǎng)絡(luò)梯度變化非常緩慢,產(chǎn)生梯度消失問題。并且在網(wǎng)絡(luò)層數(shù)增加的同時(shí),模型的參數(shù)空間也隨之?dāng)U張,巨大的參數(shù)量使得優(yōu)化問題變得更加復(fù)雜,單純地堆疊網(wǎng)絡(luò)深度反而會(huì)出現(xiàn)更高的訓(xùn)練誤差。
在訓(xùn)練一個(gè)深層網(wǎng)絡(luò)時(shí),假設(shè)存在一個(gè)性能最佳網(wǎng)絡(luò)N,整體網(wǎng)絡(luò)與網(wǎng)絡(luò)N相比會(huì)存在多余層,訓(xùn)練結(jié)果希望這些多余層是恒等變換,即讓一些層擬合恒等映射函數(shù)H(x)=x,其中x為輸入變量,此時(shí)整體網(wǎng)絡(luò)為最優(yōu)網(wǎng)絡(luò)。HE等[25]根據(jù)恒等變換的映射關(guān)系,提出殘差網(wǎng)絡(luò)(ResNet)結(jié)構(gòu)。此模型使用殘差塊,如圖3所示,通過加入殘差通路,學(xué)習(xí)殘差函數(shù)F(x)=H(x)-x。求解F(x)=0時(shí),網(wǎng)絡(luò)多余層實(shí)現(xiàn)恒等映射,H(x)-x過程可以去掉相同的主體部分,從而突出微小的權(quán)重變化。
圖3 殘差塊Fig.3 ResNet block
這種改進(jìn)能夠有效解決梯度消失與訓(xùn)練退化問題,因此本試驗(yàn)采用ResNet50網(wǎng)絡(luò)、ResNet101網(wǎng)絡(luò)與經(jīng)典的VGG16網(wǎng)絡(luò)進(jìn)行對(duì)比試驗(yàn),結(jié)果如表1所示。
表1 特征提取器對(duì)比試驗(yàn)結(jié)果Tab.1 Comparison test result of feature extractor
為了降低模型的泛化誤差,通常采用訓(xùn)練幾個(gè)不同模型,然后讓所有模型表決測(cè)試樣例的輸出,但當(dāng)模型是一個(gè)龐大的神經(jīng)網(wǎng)絡(luò)時(shí),會(huì)消耗大量的運(yùn)行時(shí)間與內(nèi)存。因此本文采用Dropout方式,在每個(gè)訓(xùn)練批次中,通過隨機(jī)忽略一定比例的隱含層節(jié)點(diǎn),來降低運(yùn)行時(shí)間。由于被忽略隱含層節(jié)點(diǎn)是隨機(jī)選取的,因此每個(gè)批次都在訓(xùn)練不同的網(wǎng)絡(luò)參數(shù),最后通過參數(shù)共享使模型的泛化誤差降低。并且Dropout在網(wǎng)絡(luò)訓(xùn)練過程中,可有效減少神經(jīng)元之間的相互依賴,從而提取出獨(dú)立的重要特征,抑制網(wǎng)絡(luò)過擬合。
在網(wǎng)絡(luò)訓(xùn)練過程中,通常隨機(jī)忽略一半的神經(jīng)元[26],即Dropout設(shè)置為0.5。但Dropout對(duì)平均精度的影響與數(shù)據(jù)集規(guī)模和訓(xùn)練次數(shù)有關(guān),在本試驗(yàn)中,通過設(shè)置間隔的Dropout值來尋找最高的平均精度,如表2所示。
由表1可知,基于本文所用試驗(yàn)平臺(tái),使用網(wǎng)絡(luò)層數(shù)最深、參數(shù)空間較小的ResNet101網(wǎng)絡(luò)作為特征提取器時(shí),可以保證在較快的檢測(cè)速度下獲得最佳的檢測(cè)效果,其平均精度為90.89%,平均耗時(shí)249 ms。由表2可知,在使用ResNet101網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò)的基礎(chǔ)上,設(shè)置Dropout值為0.6時(shí),可以取得最佳的西蘭花幼苗識(shí)別效果,其平均精度為91.73%,平均耗時(shí)248 ms。
表2 參數(shù)優(yōu)化試驗(yàn)Tab.2 Parameters optimization test
為更好地顯示卷積神經(jīng)網(wǎng)絡(luò)的運(yùn)作流程,將特征提取的部分中間過程進(jìn)行可視化操作,并將圖像統(tǒng)一尺寸以便觀察。如圖4所示,隨著網(wǎng)絡(luò)深度的增加,特征圖顆粒度增強(qiáng),高維特征逐步凸顯。可以看出淺層網(wǎng)絡(luò)的特征,圖4b~4e包括邊緣和線條等細(xì)節(jié),凸顯局部信息。網(wǎng)絡(luò)深層的特征是一種全局信息,圖4g~4i具有更強(qiáng)的語義特征。經(jīng)過卷積網(wǎng)絡(luò)的多層特征表達(dá),能夠有效提取西蘭花幼苗特征,降低噪聲干擾,強(qiáng)化目標(biāo)學(xué)習(xí)。
圖4 卷積層特征圖Fig.4 Feature maps of convolution layer
使用訓(xùn)練好的網(wǎng)絡(luò)模型對(duì)復(fù)雜自然環(huán)境下的西蘭花幼苗進(jìn)行識(shí)別,結(jié)果如圖5所示。針對(duì)葉片完整的西蘭花幼苗具有良好的檢測(cè)效果,但在檢測(cè)蟲蝕作物樣本時(shí),出現(xiàn)定位不準(zhǔn)的情況,如圖5i所示,降低了整體的平均檢測(cè)精度。原因是圖像采集過程中,田間的蟲蝕作物較少,蟲蝕樣本占總樣本的比例低,因此訓(xùn)練模型對(duì)其識(shí)別敏感度不足,可通過增加此類圖像數(shù)量,提高本方法對(duì)蟲蝕類型的包容性。
圖5 測(cè)試結(jié)果Fig.5 Test results
綜上可知,本文采用的Faster R-CNN模型具有較高的檢測(cè)精度,對(duì)光照強(qiáng)度、地面含水率和雜草密度變化具有較好的魯棒性,能夠有效識(shí)別自然環(huán)境下的西蘭花幼苗,且耗時(shí)較短,可滿足智能除草裝備對(duì)作物識(shí)別的要求。
(1)提出了一種基于Faster R-CNN的自然環(huán)境下西蘭花幼苗檢測(cè)方法,通過卷積神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)本身特征進(jìn)行非線性表達(dá),能夠從復(fù)雜數(shù)據(jù)中學(xué)習(xí)到西蘭花幼苗的特征,增強(qiáng)了模型的魯棒性。
(2)以ResNet50網(wǎng)絡(luò)、ResNet101網(wǎng)絡(luò)和VGG16網(wǎng)絡(luò)作為特征提取器進(jìn)行對(duì)比試驗(yàn),確定了ResNet101網(wǎng)絡(luò)為最佳特征提取器,并在該網(wǎng)絡(luò)下,設(shè)Dropout值為0.6,使西蘭花幼苗檢測(cè)的平均精度達(dá)到91.73%,平均耗時(shí)為248 ms。