楊蜀秦 劉江川 徐可可 桑 雪 寧紀鋒 張智韜
(1.西北農(nóng)林科技大學機械與電子工程學院, 陜西楊凌 712100; 2.農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)物聯(lián)網(wǎng)重點實驗室, 陜西楊凌 712100;3.西北農(nóng)林科技大學信息工程學院, 陜西楊凌 712100; 4.陜西省農(nóng)業(yè)信息感知與智能服務(wù)重點實驗室, 陜西楊凌 712100;5.西北農(nóng)林科技大學水利與建筑工程學院, 陜西楊凌 712100)
玉米屬于雌雄同株的植物,雄蕊位于植株頂端,是判斷玉米進入抽雄期的關(guān)鍵標志。準確識別抽雄期雄蕊的位置、數(shù)量、尺寸等特征可為去雄等田間作業(yè)管理提供有效信息,同時也可作為玉米良種培育的重要參考依據(jù)[1-3]。由于玉米植株密集且雄蕊位置較高,在識別大范圍玉米種植區(qū)域雄蕊時,傳統(tǒng)人工調(diào)查的方法存在主觀性高和效率低等問題,影響統(tǒng)計結(jié)果的準確性。
無人機遙感因其具備機動性強和成像分辨率高等特點,為檢測抽雄期玉米雄蕊提供了一種有效的途徑。文獻[4]通過修改Faster R-CNN[5]模型的錨框尺寸提高對無人機拍攝的玉米雄蕊圖像的識別精度。文獻[6]采用輕量級的SSD_mobilenet[7]模型對玉米雄蕊圖像進行識別,為無人機機載系統(tǒng)部署雄蕊檢測系統(tǒng)提供參考。以上研究均采用有錨框(Anchor-base)算法,其檢測結(jié)果依賴錨框的尺寸和比例等參數(shù)的設(shè)置和調(diào)試[6-9]。在大田作物目標識別和計數(shù)方面,文獻[10]采用傳統(tǒng)的SVM學習算法對小麥骨架特征進行識別,進而實現(xiàn)小麥麥穗計數(shù)。文獻[11]研究發(fā)現(xiàn)基于特征的稻穗檢測方法對小尺寸稻穗目標有較大的提升效果。文獻[12]對玉米無人機遙感影像進行作物和土壤分離后,利用骨架提取和毛刺處理等形態(tài)學方法提取玉米苗形態(tài),采用Harris角點檢測算法檢測玉米苗期影像的株數(shù)信息。
對大田作物檢測識別主要有基于傳統(tǒng)的機器學習方法[13-14]和基于深度學習[15-17]的方法?;谏疃葘W習的方法因為能夠提取圖像的高層語義特征和端到端的訓練已成為主流方法。目前面向農(nóng)作物檢測計數(shù)的主要方法是基于錨框的Faster R-CNN和SSD 2種方法,雖然能夠取得較高的識別精度,但仍依賴于復雜的錨框設(shè)計,網(wǎng)絡(luò)結(jié)構(gòu)復雜。另一方面,由于基于無錨框的CenterNet模型[18]在特征提取階段將圖像分辨率降為原來的1/4,仍能有效保持目標結(jié)構(gòu),因此,憑借其算法簡潔和無非極大值抑制等操作,在目標檢測應(yīng)用領(lǐng)域[19-23]已顯示出一定優(yōu)勢。
玉米抽雄期的雄蕊尺寸相對較小,直接使用CenterNet模型,其特征提取過程會對小目標玉米雄蕊壓縮過度,同時影響雄蕊的檢測速度。因此,為實現(xiàn)快速、準確地檢測無人機遙感拍攝的農(nóng)田玉米雄蕊,本文從簡化CenterNet網(wǎng)絡(luò)結(jié)構(gòu)加速雄蕊檢測和在特征提取網(wǎng)絡(luò)中增加坐標信息增強雄蕊檢測的準確性兩方面進行改進,提高玉米抽雄期的雄蕊目標檢測精度和速度,以期為玉米抽雄期的農(nóng)情監(jiān)測提供參考。
試驗地點位于陜西省關(guān)中平原中部的西北農(nóng)林科技大學玉米試驗田(108°4′19.53″E,34°17′34.24″N),如圖1所示,屬于溫帶半干旱或半濕潤氣候,年平均氣溫11~13℃,年降水量500~700 mm。試驗區(qū)域面積約2 080 m2,種植的夏玉米為一年一熟制,于2020年6月中旬播種,并在10月上旬收獲。
采用大疆精靈4型多光譜版無人機(圖2a)拍攝試驗區(qū)域遙感影像。該無人機在自動飛行和手動操作下最大飛行速度分別為6 m/s和5 m/s,搭載的多光譜成像系統(tǒng)集成1個可見光傳感器和5個用于多光譜成像的單色傳感器(圖2b)。由于可見光傳感器具有更高的分辨率,因此本研究采用拍攝的可見光圖像檢測抽雄期玉米雄蕊。于2020年8月中旬拍攝抽雄期玉米農(nóng)田,設(shè)置無人機飛行高度為10 m,地面采樣距離(Ground sample distance, GSD)為0.53 cm/像素,云臺拍攝角度為垂直地面,航向重疊率80%,旁向重疊率70%,共獲得449幅1 600像素×1 300像素的可見光遙感圖像。
為防止樣本數(shù)據(jù)過度重復,將拍攝獲取的數(shù)據(jù)集每間隔2幅進行采樣,并剔除樣本中質(zhì)量較差的圖像,最后共獲得140幅玉米雄蕊圖像,按照9∶1比例劃分126幅為訓練集和14幅為測試集。每幅訓練集圖像隨機裁剪出15個600像素×600像素區(qū)域,并采用高斯加噪、鏡像變換、改變亮度、平移變換的方式將訓練集擴充至9 450幅,如圖3所示。
結(jié)合地面調(diào)查,采用LabelImg軟件對雄蕊進行標注。從玉米抽雄期的雄蕊遙感影像可以看出,雄蕊圖像尺寸較小。借鑒COCO數(shù)據(jù)標注規(guī)范[24],將尺寸小于等于32像素×32像素的目標認定為小目標,大于96像素×96像素的為大目標,其余的為中等目標。圖4是對數(shù)據(jù)集中所有雄蕊的尺寸統(tǒng)計,可以看出小目標和中目標占比分別為22.77%和77.11%,大目標占比僅0.12%。在小目標中,絕大部分雄蕊尺寸均大于16像素×16像素,這將指導本文基于CenterNet修改雄蕊檢測骨干特征提取網(wǎng)絡(luò)。
CenterNet是無錨框目標檢測算法的典型代表,該算法在4倍下采樣的高分辨率特征圖中,預(yù)測目標的中心點、中心點偏置、預(yù)測框?qū)捀撸w架構(gòu)非常簡單。CenterNet支持Hourglass[25]、DLA[26]、Resnet[27]作為骨干特征提取網(wǎng)絡(luò),由于Hourglass和DLA網(wǎng)絡(luò)參數(shù)量較大,不便于實際應(yīng)用,故采用Resnet50作為骨干特征提取網(wǎng)絡(luò)。通過對骨干網(wǎng)絡(luò)末端特征層進行反卷積,獲取4倍下采樣高分辨率特征圖,進而回歸圖像熱力特征圖、目標中心點偏置、目標框尺寸信息獲取預(yù)測結(jié)果。CenterNet相較于傳統(tǒng)的候選框篩選方法,避免了非極大抑制操作,縮短了檢測目標的時間,同時也克服了Faster R-CNN檢測方法依賴于復雜的錨框設(shè)計,適用于田間的玉米雄蕊識別。
CenterNet對于輸入的圖像,通過高斯核函數(shù)將其映射為熱力圖進行訓練,保留預(yù)測熱力圖3×3鄰域的局部極大值,進而確定目標中心和類別。高斯核函數(shù)公式為
(1)
式中 (x,y)——圖中每個點的坐標
(xgt,ygt)——雄蕊中心點坐標
σ——自適應(yīng)標準差[28],取1/3
yxyc——歸一化后的輸出真值
由于訓練的熱力特征圖分辨率為原圖的1/4,因此存在中心點位置的偏差,在訓練過程中需要同時對預(yù)測框的寬高和中心點偏置進行回歸訓練。因此,CenterNet模型預(yù)測包括熱力圖損失Lk、中心點偏置損失Loff和目標框?qū)捀邠p失Lsize3個損失函數(shù),分別定義為
(2)
(3)
(4)
式中N——雄蕊個數(shù)
P——真實中心點
R——下采樣倍數(shù),取4
α、β——損失中的超參數(shù),分別取2和4
總損失Ldet為3種損失之和,定義為
Ldet=Lk+λsizeLsize+λoffLoff
(5)
式中λsize、λoff——比例因子,分別取0.1、1
如前所述,在無人機遙感玉米抽雄期圖像中,雄蕊主要體現(xiàn)為小目標(小于等于32像素×32像素)和中等目標(大于32像素×32像素且小于等于96像素×96像素)。針對玉米雄蕊中小目標的特點,本文通過簡化特征提取骨干網(wǎng)絡(luò),加快檢測速度,同時,在CenterNet的特征提取網(wǎng)絡(luò)中增加坐標信息,以增強雄蕊檢測的準確度。圖5為改進的CenterNet玉米雄蕊檢測網(wǎng)絡(luò)結(jié)構(gòu)圖。圖中w為特征尺寸長,H為特征尺寸寬。
2.2.1優(yōu)化骨干網(wǎng)絡(luò)
CenterNet特征提取骨干網(wǎng)絡(luò)的最后一層將圖像縮小為原圖的1/32,這對于尺寸小于32像素×32像素的雄蕊小目標將造成其結(jié)構(gòu)信息丟失,從而影響最終的檢測結(jié)果。因此,本文將去掉骨干特征提取網(wǎng)絡(luò)的最后一層,僅使圖像縮至原圖的1/16。如圖5所示,在保留了雄蕊小目標結(jié)構(gòu)信息的同時,減少骨干網(wǎng)絡(luò)模型的參數(shù),從而提升CenterNet的檢測精度和速度。相應(yīng)地,將反卷積模塊第1層重新設(shè)置其卷積核尺寸、padding填充、卷積步長3個參數(shù),實現(xiàn)尺寸不變的特征傳遞。
2.2.2添加坐標信息增強定位準確性
在Coordconv坐標卷積[29]模型中,將坐標信息作為特征層信息輸入進行卷積,根據(jù)前層傳入的特征層長寬建立2個和特征層尺寸相同的坐標信息層。第1層記錄每層特征層橫坐標信息,第2層記錄每層特征層縱坐標信息。在卷積前通過對添加坐標信息后的特征層進行歸一化處理,保留特征之間的相對位置,便于卷積訪問特征坐標信息。通過在特征圖中添加坐標位置信息,增強深度學習模型的位置敏感性,從而提升檢測精度。
在本研究中,玉米雄蕊屬于中小目標,對位置誤差較為敏感。試驗發(fā)現(xiàn),在圖像分辨率較高的最后一個反卷積層中添加坐標信息,能夠增強特征的位置敏感性,從而改進玉米雄蕊檢測的精度。因此,本文在反卷積層的最后一層添加橫坐標層和縱坐標層信息(圖5),然后進行特征融合和歸一化處理,進一步提升模型精度[30]。
采用準確率(P)、召回率(R)、平均精度(AP)、交并比(IoU)和平均幀率(FPS)來評估模型的性能。IoU用于測量真實框與檢測框之間的重疊度,重疊度越高,相關(guān)度越高。本研究對玉米雄蕊目標進行檢測識別,選擇IoU大于30%作為判斷雄蕊檢測的閾值。在上述評價指標中,模型性能參數(shù)的重要性依次為平均精度、召回率、準確率。
采用隨機裁剪的600像素×600像素圖像構(gòu)建訓練集,預(yù)測時對無人機拍攝的分辨率為1 300像素×1 600像素的圖像進行檢測和計數(shù)。顯卡為NVIDIA Tesla P100,顯存為16 GB,操作系統(tǒng)為 Ubuntu 16.04,深度學習框架為Pytorch 1.4。
模型訓練將所有訓練集按9∶1隨機劃分為訓練集和驗證集,以防止模型過擬合訓練。模型訓練100個周期,前50個周期凍結(jié)骨干網(wǎng)絡(luò)參數(shù),只訓練模型分類器參數(shù),初始學習率為1×10-3,批處理尺寸為8,權(quán)重衰減為5×10-4;后50個周期解凍骨干網(wǎng)絡(luò)參數(shù),初始學習率為1×10-4,批處理尺寸為4,權(quán)重衰減為5×10-4,共迭代850 500次。
用相同數(shù)據(jù)集分別在Faster R-CNN、YOLO v4網(wǎng)絡(luò)上進行同批次的訓練,與改進后的CenterNet模型進行對比,檢測結(jié)果如表1所示。盡管YOLO v4的準確率最高,但召回率指標顯示其漏檢率僅高于Faster R-CNN,并且復雜錨框設(shè)計也影響了它的檢測速度。而在綜合指標AP方面,改進的CenterNet模型AP為92.40%,分別比Faster R-CNN、YOLO v4和原CenterNet高26.22、3.42、0.62個百分點。改進模型的參數(shù)量僅為45 MB,低于其余3個模型的參數(shù)量,對應(yīng)其檢測速度最快為36 f/s,分別比Faster R-CNN、YOLO v4以及原CenterNet高32、23、3 f/s。
表1 不同目標檢測模型的玉米雄蕊檢測試驗結(jié)果Tab.1 Maize tassels test result of different object detection models
圖6為部分檢測結(jié)果及部分細節(jié)展示圖,預(yù)測圖中共包含64個玉米雄蕊,藍色框、粉色框和紅色框分別代表正確檢測、漏檢和誤檢。其中,F(xiàn)aster R-CNN檢測結(jié)果最差,正確檢測33個雄蕊目標,漏檢31個,誤檢1個;YOLO v4正確檢測53個雄蕊目標,漏檢11個,CenterNet模型正確檢測55個雄蕊目標,漏檢9個,誤檢1個,改進后的模型正確檢測59個雄蕊目標,漏檢5個。
如圖6a所示,F(xiàn)aster R-CNN在預(yù)測結(jié)果中漏檢目標較多,并且存在非極大值抑制后保留識別框的問題,圖6b和圖6c是YOLO v4和CenterNet算法的檢測效果,相對于Faster R-CNN,漏檢明顯減少,改進后的CenterNet算法檢測精度進一步提升,在減少漏檢的前提下提高了檢測速度。
表2列出了改進的CenterNet模型中各個部分的試驗結(jié)果。CenterNet-Backbone為簡化后的骨干網(wǎng)絡(luò)模型,CenterNet-Coordconv為僅在CenterNet網(wǎng)絡(luò)添加坐標信息的改進模型,改進的CenterNet為在優(yōu)化骨干網(wǎng)絡(luò)的基礎(chǔ)上添加坐標信息??梢钥闯?,原CenterNet模型參數(shù)量較大且檢測精度和檢測速度存在提升空間;去除CenterNet骨干網(wǎng)絡(luò)的最后一層特征提取部分,整體AP值略低于原始網(wǎng)絡(luò),但因為參數(shù)量明顯降低,識別速度因此提升了6 f/s;僅在網(wǎng)絡(luò)中加入坐標信息的CenterNet-Coordconv相較于原CenterNet模型,AP提升了0.45個百分點,檢測速度略降;而本文提出的改進CenterNet方法融合二者優(yōu)點,相較于原始模型在平均精度和速度上分別提升了0.62個百分點和3 f/s,實現(xiàn)了對玉米雄蕊的高精度快速識別。
表2 改進的CenterNet算法玉米雄蕊識別試驗分析Tab.2 Experimental analysis of maize tassels recognition based on improved CenterNet
(1)基于錨框與基于中心點算法的比較
玉米雄蕊主要呈現(xiàn)為中小目標,不同雄蕊存在明顯的形態(tài)區(qū)別,基于錨框的Faster R-CNN、YOLO v4等算法對模型訓練存在過擬合,這一點體現(xiàn)在圖6a和圖6b中的識別框過大和漏檢數(shù)量較多。本研究采用無錨框的CenterNet算法,通過熱力特征圖來回歸檢測目標的中心點坐標,避免了傳統(tǒng)方法中預(yù)設(shè)錨框帶來的局限,從而有效降低玉米雄蕊漏檢。在表1中,F(xiàn)aster R-CNN、YOLO v4的召回率分別為72.61%、89.22%,改進后的CenterNet召回率達到93.76%,顯著減小了漏檢率?;谥行狞c的檢測算法對圖像尺寸的依賴較小,通過學習不同形態(tài)和尺寸的玉米雄蕊中心點特征,能夠準確識別農(nóng)田環(huán)境下的雄蕊目標。
(2)CenterNet算法檢測遮擋雄蕊存在的缺陷
觀察圖6d可以發(fā)現(xiàn),漏檢的玉米雄蕊多受到葉片或其他雄蕊遮擋,這種情況同樣存在于原CenterNet模型的檢測結(jié)果中(圖6c)。分析其主要原因有:①影響模型準確提取雄蕊特征,導致其無法突出雄蕊的熱力中心點。②算法在熱力圖預(yù)測目標中心點時,將圖中每個像素點的峰值與8連通域內(nèi)各個峰值進行篩選,保留峰值最高的點,而雄蕊的相互重疊,會誤抑制被遮擋的雄蕊中心點峰值,從而導致模型對重疊雄蕊產(chǎn)生漏檢。
(1)針對無人機遙感拍攝的農(nóng)田復雜背景下玉米雄蕊檢測問題,提出了一種優(yōu)化骨干網(wǎng)絡(luò)和添加坐標位置信息的CenterNet檢測模型。簡化的骨干網(wǎng)絡(luò)能夠減少CenterNet模型參數(shù),從而提高檢測速度,同時幾乎不影響CenterNet的檢測精度。通過在特征中添加坐標位置信息,增強模型的位置敏感性,提高檢測精度。最后,改進的CenterNet模型融合二者的優(yōu)點,在提升檢測精度的同時,保持了CenterNet的實時性。
(2)與有錨框的Faster R-CNN和YOLO v4相比,改進的CenterNet算法在相同的數(shù)據(jù)集條件下,AP分別高于Faster R-CNN、YOLO v4模型26.22、3.42個百分點,檢測速度分別比Faster R-CNN、YOLO v4模型高32、23 f/s。AP值較CenterNet算法提升了0.62個百分點,檢測速度提升了3 f/s。因此,提出的CenterNet玉米雄蕊識別模型為玉米抽雄期的農(nóng)情監(jiān)測提供了一種有效的方法支持。