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

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

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

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

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

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

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

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

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

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

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

表2 不同網絡檢測結果對比Tab.2 Comparison of detection results for different networks

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

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

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