郭明月 劉雅晨 李偉夫 陳 洪 李善軍 陳耀暉
(1.華中農(nóng)業(yè)大學(xué)信息學(xué)院, 武漢 430070; 2.華中農(nóng)業(yè)大學(xué)工學(xué)院, 武漢 430070)
我國是全球獼猴桃產(chǎn)量最高的國家,獼猴桃產(chǎn)業(yè)對我國農(nóng)業(yè)的健康發(fā)展意義重大[1]。目前獼猴桃的種植往往借助栽培架開展,果實懸垂于栽培架下并覆蓋整個園區(qū)[2]。獼猴桃產(chǎn)量預(yù)估有助于合理規(guī)劃勞動力、采摘設(shè)備以及倉儲空間,但是采用人工計數(shù)費時費力,準確率也難以保證[3]。因此,為了有效降低作業(yè)成本并提高產(chǎn)業(yè)利潤空間,開發(fā)快速、高效的獼猴桃產(chǎn)量預(yù)估工具非常重要。
傳統(tǒng)農(nóng)業(yè)中往往采用統(tǒng)計學(xué)方法對大面積種植作物進行產(chǎn)量估計。楊鈺瑩[4]比較了簡單隨機抽樣、按概率比例抽樣以及回歸估計[5]對谷物產(chǎn)量的估計效果,在95%的置信度下,發(fā)現(xiàn)按概率比例抽樣估計精度最高,達到98.55%。黃凱等[6]通過多源數(shù)據(jù)回歸分析方法,采用無人機采集甘蔗不同時期的表型數(shù)據(jù)進行產(chǎn)量估計,得到估計結(jié)果與真實產(chǎn)量的R2達到0.87。吳菲菲等[7]通過收集不同時期玉米生長情況數(shù)據(jù),使用統(tǒng)計分析、方差分析以及遺傳估計對玉米產(chǎn)量性狀進行評估。盡管采用人工統(tǒng)計方法能對采集的數(shù)據(jù)進行預(yù)估,但是數(shù)據(jù)獲取和評估過程需要耗費大量人力物力,且難以建立統(tǒng)一模型,因此不易推廣[8]。
隨著深度學(xué)習(xí)技術(shù)在計算機視覺領(lǐng)域的快速發(fā)展[9],一系列新的農(nóng)作物產(chǎn)量預(yù)估方法被相繼提出。其中一類工作主要基于單幅圖像進行檢測計數(shù),從而獲得視野內(nèi)果實的產(chǎn)量。穆龍濤等[10]提出的改進型AlexNet網(wǎng)絡(luò)對果園環(huán)境下的獼猴桃果實進行檢測,其識別率達96.33%,單個果實檢測時間為0.029 s。REDMON等[11]提出的YOLO算法將候選區(qū)域生成與目標檢測過程合并,大大提升了網(wǎng)絡(luò)的檢測速度。趙德安等[12]采用YOLO v3對復(fù)雜背景下的蘋果目標進行檢測,準確率為97.00%,單幅圖像檢測時間為0.017 s。TIAN等[13]利用改進的YOLO v3網(wǎng)絡(luò)對不同生長階段的蘋果果實進行檢測,測試集上的F1值為82%,單幅圖像檢測時長為0.304 s。但受到視角變化、路徑規(guī)劃限制,難以獲得較為準確的大區(qū)域訓(xùn)練拼接圖像,來對果園的總產(chǎn)量進行估計。
另一類工作則對整個果園區(qū)域拍攝視頻,通過視頻跟蹤的計數(shù)方式對果園總產(chǎn)量進行快速預(yù)估[14]。這類方法一般先對每一幀內(nèi)的果實目標進行定位檢測,然后再進行目標匹配,避免了目標的重復(fù)計數(shù)。在跟蹤算法中,卡爾曼濾波算法具有對未知狀態(tài)進行估計的能力[15-16],且算法本身占用內(nèi)存資源小,因此廣泛應(yīng)用于處理連續(xù)變化的任務(wù)[17]。LIU等[18]通過使用卡爾曼濾波器算法,對單目攝像頭拍攝下的芒果果實進行跟蹤,通過獲取目標編號(Identity document, ID)實現(xiàn)了芒果產(chǎn)量計數(shù),預(yù)測產(chǎn)量與真實產(chǎn)量的R2達到0.88。WANG等[19]使用基于YOLO系列網(wǎng)絡(luò)的水果檢測模型,對芒果圖像進行果實檢測,并通過卡爾曼濾波預(yù)測視頻中果實的位置,從而實現(xiàn)了實時芒果果實計數(shù),與人工計數(shù)相比,該方法僅存在7.3%的計數(shù)誤差。然而,這些研究僅對目標運動特征進行估計,缺失果實外觀特征匹配的過程,因此在復(fù)雜場景中精度難以保證。
針對獼猴桃果園面積大、果實目標小且密度高、戶外環(huán)境復(fù)雜的問題[20],本研究擬開發(fā)基于視頻跟蹤的果實總產(chǎn)量預(yù)估方法,并在跟蹤過程中引入運動特征與外觀特征匹配,增加跟蹤精度。首先以在小目標檢測領(lǐng)域有顯著優(yōu)勢的YOLO v7[21]模型為基礎(chǔ),對獼猴桃果實進行檢測。YOLO v7模型通過引入更多特征融合[22],能夠減小目標特征丟失的情況,具有較高的檢測精度與檢測速度。同時,將YOLO v7模型與柔性非極大值抑制(Soft non maximum suppression, Soft-NMS)結(jié)合,減少檢測框的誤刪。最后,通過DeepSort算法[23]對獼猴桃進行跟蹤與實現(xiàn)自動計數(shù)。其中,DeepSort算法采用VGG16網(wǎng)絡(luò)對果實特征進行提取,并結(jié)合運動特征,基于匈牙利算法匹配得出每個果實的唯一ID,最終通過ID計數(shù)來估算獼猴桃的產(chǎn)量。
本研究完整工作流程如圖1所示,通過在獼猴桃果園進行視頻拍攝,分別制作獼猴桃目標檢測數(shù)據(jù)集與目標跟蹤數(shù)據(jù)集;然后,建立目標檢測與目標跟蹤模型,并使用建立的數(shù)據(jù)集進行評估驗證;最后結(jié)合目標檢測與跟蹤算法,進行獼猴桃產(chǎn)量估計,并對所提出方法進行分析與驗證。

圖1 實驗流程Fig.1 Experimental flowchart
采集的獼猴桃數(shù)據(jù)來自于湖北省武漢市華中農(nóng)業(yè)大學(xué)園藝標本園的獼猴桃種植區(qū)(東經(jīng)114.35°,北緯30.47°),通過履帶小車搭載攝像機以1 m/s的速度,采用S形路線對果園進行拍攝,為保證獲取植株完整視野,采用1 200萬像素長焦攝像頭相機,距離地面最低高度為1.32 m,距離兩側(cè)植株最少1.5 m,以45°仰角進行拍攝。具體拍攝范圍與拍攝路線如圖2所示,最終獲得時長為63 s、幀率(Frames per second, FPS)為60.05 f/s的視頻數(shù)據(jù)。

圖2 數(shù)據(jù)采集線路圖Fig.2 Data acquisition circuit diagram
1.2.1獼猴桃檢測數(shù)據(jù)集
由于高幀率視頻中相鄰幀的相似程度較高,本研究首先采用OpenCV庫對視頻每間隔5幀抽取1幀,最終獲得534幅分辨率為3 840像素×2 160像素的彩色圖像。同時,采用Labelme圖像標注軟件對每幅圖像中的每個獼猴桃進行標注,并按照8∶1∶1的比例劃分為訓(xùn)練集、測試集和驗證集。
1.2.2獼猴桃跟蹤數(shù)據(jù)集
由于采集視頻的前段、中段和后段中獼猴桃的種植密度及光照條件顯著不同,跟蹤難度差異較大。前段視頻中,獼猴桃的密度中等,果實顏色與葉片顏色的差別明顯,光線充足,屬于“簡單”模式;中段視頻中獼猴桃果實密度較低,且果實與葉片顏色較為接近,屬于“正?!蹦J?后段視頻拍攝于獼猴桃果實的密集區(qū)域,相鄰果實的重疊度較高,光照條件較差,屬于“困難”模式,如圖3所示。

圖3 3種模式比較Fig.3 Comparison of three modes
為衡量網(wǎng)絡(luò)整體的跟蹤精度,采用Darklabel軟件截取連續(xù)600幀視頻進行手動標記,并在3種模式下驗證網(wǎng)絡(luò)計數(shù)精度。
圖4展示了基于視頻追蹤的獼猴桃產(chǎn)量預(yù)估算法框架。首先通過YOLO v7檢測器對當前幀中的獼猴桃進行目標檢測,并使用基于VGG16的特征提取網(wǎng)絡(luò)對目標進行外觀特征提取。然后,利用卡爾曼濾波器結(jié)合當前幀和前兩幀圖像獲得目標獼猴桃的運動特征與外觀特征,并預(yù)測下一幀目標的預(yù)測框及其相應(yīng)的外觀特征。最終,通過計算當前目標外觀特征與下一幀外觀特征的相似度及預(yù)測框與檢測框的交并比 (Intersection over union, IoU),共同構(gòu)建代價矩陣,并進行ID匹配。

圖4 視頻跟蹤算法框圖Fig.4 Architecture of video tracking algorithm
1.3.1果實檢測網(wǎng)絡(luò)
(1) YOLO v7檢測網(wǎng)絡(luò)
YOLO v7結(jié)構(gòu)如圖5所示,輸入圖像經(jīng)過數(shù)據(jù)增強等操作后,根據(jù)網(wǎng)絡(luò)輸入要求對圖像進行縮放并送入backbone網(wǎng)絡(luò)進行特征提取,backbone網(wǎng)絡(luò)通過高效的網(wǎng)絡(luò)聚合來提高模型特征提取性能。提取后的特征分別通過雙向融合網(wǎng)絡(luò)(Path aggregation network, PAN)和特征金字塔網(wǎng)絡(luò)(Feature pyramid network, FPN)進行融合,得到3種不同尺度的特征圖后,融合的特征被送入檢測頭進行檢測。由于網(wǎng)絡(luò)會重復(fù)檢測每個特征點,因此使用非極大抑制(NMS)來選擇置信度(con)最高的預(yù)測框作為輸出。

圖5 YOLO v7結(jié)構(gòu)圖Fig.5 Architecture diagram of YOLO v7
(2) Soft-NMS檢測框篩選
由于視頻中獼猴桃數(shù)據(jù)量多,重疊嚴重,NMS操作可能會錯誤地刪除相鄰檢測框。為了解決此類問題,本研究使用Soft-NMS方法[25],通過對重疊檢測框使用高斯加權(quán)來修改重疊檢測框置信度,從而減少由NMS操作引起的重疊檢測框被誤刪,當前檢測框置信度得分計算公式為
(1)
式中si——當前檢測框置信度得分
M——當前檢測框

δ——算法標準差bi——重疊框
在相同置信度下,重疊度越高時,檢測框置信度得分越低。如圖6所示,A、B、C為滿足閾值條件(置信度大于0.8,交并比大于0.5)的3個檢測框,為得到最終檢測結(jié)果,NMS處理通常保留置信度最高的檢測框A,而直接刪除其鄰近的檢測框B、C。該方法雖然得到了目標的唯一檢測框,但是錯誤地刪除了檢測框C。采用Soft-NMS時,通過對置信度加權(quán)的方式降低了鄰近目標的檢測框置信度,從而保留了檢測框C,提高了檢測精度。
理解幼兒的思維和需要是教育的基礎(chǔ)和前提,所以家長和教師應(yīng)當在對幼兒細致觀察的基礎(chǔ)上來分析幼兒的行為,以此確定幼兒活動的價值。充分利用兒童對一切事物無邊的好奇的這一特點,在保護好兒童好奇心的基礎(chǔ)上,進一步促進他們創(chuàng)造力與想象力的發(fā)展。

圖6 Soft-NMS示意圖Fig.6 Schematic of Soft-NMS
1.3.2果實跟蹤算法
由于視頻中獼猴桃外觀較為相似且重疊較多,為了提高追蹤精度,采用結(jié)合運動軌跡與外觀特征的追蹤策略。其中,外觀特征由VGG16[26]網(wǎng)絡(luò)進行提取,運動軌跡特征提取及匹配由DeepSort算法實現(xiàn)。
(1) VGG16特征提取網(wǎng)絡(luò)
對于檢測到的獼猴桃,為保留原始目標的外觀特征信息,并同時滿足網(wǎng)絡(luò)輸入尺度要求,對圖像中不滿足尺寸要求的部分進行補零處理,獲得統(tǒng)一尺寸的RGB圖像作為VGG16網(wǎng)絡(luò)的輸入。第1次卷積后,特征圖尺寸不變,通道數(shù)變?yōu)?4,第1次池化后,特征圖尺寸變?yōu)樵瓉淼?/2,之后經(jīng)過4次卷積與池化處理,得到512通道、尺寸為7×7的特征圖,3次全連接后的特征向量作為最終輸出,得到獼猴桃目標的特征編碼。
(2) DeepSort目標跟蹤

1.3.3基于ID計數(shù)的產(chǎn)量估計
獼猴桃產(chǎn)量估計需要獲得視頻中出現(xiàn)的獼猴桃總數(shù),如圖7所示。由于在目標跟蹤算法運行時,將從數(shù)字1開始為每個目標賦予不同的ID,并保證相鄰視頻序列中相同目標的ID不變,因此僅需要獲取視頻中ID最大值便可獲得產(chǎn)量估計結(jié)果。

圖7 ID計數(shù)示意圖Fig.7 ID count diagram
1.4.1獼猴桃檢測性能評估指標
為了評估網(wǎng)絡(luò)對獼猴桃的檢測性能,采用平均交并比(Mean intersection over union, mIoU)來衡量檢測框與真實框之間的重合情況。在評估檢測準確性方面,使用精確率(Precision)來衡量網(wǎng)絡(luò)預(yù)測結(jié)果中是否為正樣本;使用召回率(Recall)來衡量在所有正樣本中網(wǎng)絡(luò)預(yù)測為正樣本的能力;使用F1值(F1 score)來衡量網(wǎng)絡(luò)準確率和召回率的平均水平。
1.4.2獼猴桃跟蹤性能評估指標
采用多目標跟蹤準確率(Multiple object tracking accuracy, MOTA)來衡量跟蹤網(wǎng)絡(luò)在每幀中正確跟蹤的能力,使用多目標跟蹤精確率(Multiple object tracking precision, MOTP)來衡量跟蹤網(wǎng)絡(luò)在每幀中跟蹤框與實際框匹配的程度。其中MOTA與MOTP的具體公式為
(2)
(3)
式中GTt——目標出現(xiàn)的總數(shù)
MOTA——多目標跟蹤準確率
MOTP——多目標跟蹤精確率
FNt——目標跟蹤失敗數(shù)
Fpt——目標跟蹤成功數(shù)
IDSWt——目標ID變化的次數(shù)
δt,i——跟蹤框與檢測框之間的重疊率
ct——當前幀匹配成功的目標數(shù)
t——測試視頻幀序列
1.4.3獼猴桃計數(shù)指標
使用平均計數(shù)精度(Mean counting accuracy,MCA)來衡量跟蹤網(wǎng)絡(luò)的計數(shù)精度,計算公式為
(4)
式中MCA——平均計數(shù)精度
Pi——檢測到的目標數(shù)
Gi——真實目標個數(shù)
n——測試視頻個數(shù)
實驗環(huán)境為PC機(Windows 10操作系統(tǒng),處理器為Intel(R) Core(TM) i7-9700 CPU @ 3.00 GHz,顯卡為NVIDIA GeForce GTX 1660 SUPER,內(nèi)存為16 GB,開發(fā)環(huán)境為Python 3.6.13)。
YOLO系列網(wǎng)絡(luò)在經(jīng)過特征提取層后,通常生成13×13、26×26、52×52共3種不同尺度的特征圖,其中尺寸越小的特征圖適合越大的先驗框。原始檢測網(wǎng)絡(luò)的先驗框是在COCO數(shù)據(jù)集上獲得,并不適用于本研究數(shù)據(jù)集,為了獲得更加適合的先驗框尺寸,采用K-means算法對人工標注的獼猴桃尺寸進行聚類,獲得不同尺度下的先驗框大小,結(jié)果見表1。

表1 先驗框聚類結(jié)果Tab.1 Clustering results of prior boxes
聚類后所獲得的錨框作為網(wǎng)絡(luò)的先驗框,用于目標檢測。所用的數(shù)據(jù)集共包含260幅圖像,10 391個人工標注的檢測框,作為不同檢測網(wǎng)絡(luò)的對比實驗數(shù)據(jù),多次訓(xùn)練的檢測網(wǎng)絡(luò)的平均測試結(jié)果見表2,可視化結(jié)果見圖8。

表2 不同網(wǎng)絡(luò)檢測結(jié)果對比Tab.2 Comparison of detection results for different networks

圖8 網(wǎng)絡(luò)檢測結(jié)果可視化Fig.8 Visualization of network detection results
實驗結(jié)果顯示,YOLO v7網(wǎng)絡(luò)的檢測結(jié)果明顯優(yōu)于其他網(wǎng)絡(luò),其精確率達到91.16%,F1值達到90.09%,每秒能夠檢測25.92幀圖像,滿足基本的視頻實時檢測需求,為視頻跟蹤提供了可靠的接口。
圖8給出了不同網(wǎng)絡(luò)檢測結(jié)果的可視化對比。為了進一步評估不同網(wǎng)絡(luò)的檢測效果,本實驗選取4組不同環(huán)境拍攝的獼猴桃圖像數(shù)據(jù)進行檢測。檢測結(jié)果由檢測框和置信度兩部分組成,檢測框內(nèi)的數(shù)值代表該檢測框內(nèi)為獼猴桃的概率。
相比之下,模型的預(yù)測結(jié)果與檢測指標展示結(jié)果一致。在總體檢測效果上,YOLO v7模型表現(xiàn)得較為出色,檢測數(shù)量與檢測精度最高。YOLO v3模型與YOLO v4模型檢測數(shù)量相當,Fast R-CNN模型的檢測效果一般。
表3為利用目標跟蹤評估指標確定的網(wǎng)絡(luò)跟蹤精度。在滿足復(fù)雜環(huán)境拍攝獼猴桃的條件下,使用Darklabel軟件對600幀圖像進行了連續(xù)手動標注,用于驗證網(wǎng)絡(luò)的跟蹤效果。不同網(wǎng)絡(luò)所計算的目標跟蹤準確率、多目標跟蹤精確率以及視頻跟蹤幀速率如表3所示。

表3 不同網(wǎng)絡(luò)目標跟蹤結(jié)果對比Tab.3 Comparison of tracking results for different networks
實驗證明,通過采用Soft-NMS,可以有效降低因目標重疊導(dǎo)致的檢測框誤刪次數(shù)。在目標跟蹤任務(wù)中,通過將檢測器與包含外觀特征的DeepSort跟蹤器相結(jié)合,顯著提高了視頻跟蹤的準確率和精確率,提升幅度為1~2個百分點。當采用YOLO v7作為檢測器并與DeepSort網(wǎng)絡(luò)結(jié)合后,所獲得的跟蹤指標MOTA和MOTP分別為89.87%和82.34%,視頻跟蹤幀速率為20.19 f/s。
圖9呈現(xiàn)了目標持續(xù)跟蹤的可視化結(jié)果。第1行展示了果實密集區(qū)域內(nèi)樣本16號在3~92幀間持續(xù)跟蹤的情況,在相鄰果實軌跡相近的情況下,跟蹤算法最大程度地保證了目標跟蹤的穩(wěn)定性。第2行展示了樣本633號在667~868幀間的持續(xù)跟蹤情況,即使目標視角發(fā)生變化,跟蹤網(wǎng)絡(luò)也保證了持續(xù)跟蹤的能力。第3行展示了在存在遮擋的情況下,樣本2 089號在3 715~3 794幀間的持續(xù)跟蹤結(jié)果,由于葉片的遮擋,YOLO v7網(wǎng)絡(luò)未檢測到當前目標,但跟蹤算法保存了目標特征,因此在后續(xù)視頻中仍然能夠跟蹤到該目標。
根據(jù)視頻拍攝順序和自然環(huán)境下獼猴桃生長環(huán)境不同,將拍攝視頻按照3種模式分別統(tǒng)計,并與人工計數(shù)結(jié)果比較。得到3種模式下的7段微視頻的獼猴桃視頻計數(shù)結(jié)果如表4所示。

表4 網(wǎng)絡(luò)計數(shù)結(jié)果比較Tab.4 Comparison of network count results
實驗證明,在簡單模式下,ID計數(shù)的精度可以達到97.49%,與人工計數(shù)接近;在正常模式下,ID計數(shù)精度最高可達94.83%;在困難模式中最高精度可達88.63%??傮w而言,視頻ID計數(shù)的平均估算精度超過91.59%,在理想情況下可達97.49%,進一步證明了該算法的有效性。
利用目標檢測和跟蹤算法進行了視頻獼猴桃產(chǎn)量估計。采用最新的YOLO v7目標檢測框架和Soft-NMS算法,得到F1值為90.09%的檢測精度以及25.92 f/s的檢測速度。目標跟蹤階段,結(jié)合訓(xùn)練好的YOLO v7檢測網(wǎng)絡(luò)、VGG16特征提取器以及卡爾曼濾波器,通過代價矩陣和匈牙利算法實現(xiàn)了前后幀的目標跟蹤,平均跟蹤準確率為89.87%,精確率為82.34%,跟蹤速率為20.19 f/s。最后,通過ID計數(shù)實現(xiàn)了獼猴桃產(chǎn)量估計,平均計數(shù)精度達到91.59%,簡單模式下,計數(shù)精度高達97.49%,近似于人工統(tǒng)計結(jié)果,困難模式下也能保持在88.63%,進一步證明了本文算法的可行性。