呂 佳,張翠萍,劉 琴,李帥軍
(1.重慶師范大學(xué)計算機(jī)與信息科學(xué)學(xué)院,重慶 401331;2.重慶市數(shù)字農(nóng)業(yè)服務(wù)工程技術(shù)研究中心,重慶 401331)
葡萄是中國栽培面積最廣、產(chǎn)量最多的果實之一,在全國果實生產(chǎn)中占有重要地位[1]。葡萄產(chǎn)業(yè)作為中國農(nóng)業(yè)生產(chǎn)的支柱產(chǎn)業(yè),在鄉(xiāng)村振興、精準(zhǔn)扶貧工作中發(fā)揮重要作用[2]。由于葡萄產(chǎn)量對價格的影響較大,對葡萄的有效估產(chǎn)能為后續(xù)的葡萄收獲、倉儲、運輸和加工計劃提供有效的指導(dǎo)[3]。傳統(tǒng)葡萄估產(chǎn)依靠人工抽樣計數(shù),耗時費力且估計結(jié)果并不準(zhǔn)確[4],而深度學(xué)習(xí)技術(shù)[5-6]在農(nóng)業(yè)領(lǐng)域的應(yīng)用為葡萄的估產(chǎn)提供了思路。
果實估產(chǎn)的實質(zhì)是實現(xiàn)果實的自動計數(shù),近年來,深度學(xué)習(xí)被廣泛地應(yīng)用于果實的自動計數(shù)中。BHATTARAI等[7]提出一種基于深度學(xué)習(xí)的自動計數(shù)網(wǎng)絡(luò)(CountNet),應(yīng)用在商業(yè)果園計數(shù)中,取得了較好的計數(shù)性能。但他是基于單張靜態(tài)圖片進(jìn)行計數(shù),對于葡萄等大型果樹,單張圖片并不能包含一棵果樹的所有果實,導(dǎo)致無法實現(xiàn)完整的果實計數(shù)[8],而通過視頻對果實計數(shù)可以有效解決這一問題。視頻果實計數(shù)主要分為果實檢測和果實追蹤兩個階段,其中果實的準(zhǔn)確檢測是實現(xiàn)視頻果實計數(shù)的前提。目前主流的目標(biāo)檢測方法分為兩類:單階段目標(biāo)檢測方法和兩階段目標(biāo)檢測方法,其中單階段目標(biāo)檢測方法推理速度更快[9],兩階段目標(biāo)檢測方法檢測精度更高。為了實現(xiàn)實時檢測計數(shù),以YOLO 系列為代表的單階段目標(biāo)檢測方法在果實檢測領(lǐng)域得到了廣泛應(yīng)用[10-12],果實檢測為后續(xù)果實的追蹤計數(shù)提供了基礎(chǔ),而實現(xiàn)精準(zhǔn)果實計數(shù)的難點在于果實追蹤。
目標(biāo)追蹤[13-15]根據(jù)初始幀中追蹤目標(biāo)的位置對后續(xù)幀中目標(biāo)進(jìn)行追蹤定位,從而使視頻中相同目標(biāo)關(guān)聯(lián)起來,其中基于卡爾曼濾波器(kalman filter,KF)[16]的追蹤方法在果實追蹤領(lǐng)域應(yīng)用廣泛。GAN 等[17]使用擴(kuò)展KF集成出自主導(dǎo)航系統(tǒng)定位追蹤柑橘類果實,但追蹤成本昂貴。為降低成本,WANG 等[18]結(jié)合KF 和匈牙利算法對芒果追蹤計數(shù),降低了追蹤成本和復(fù)雜性,但存在遮擋芒果重復(fù)計數(shù)的問題。為減少果實的重復(fù)計數(shù),高芳芳等[19]提出改進(jìn)的匈牙利算法,保留對蘋果追蹤過程中因遮擋而消失的追蹤框,并進(jìn)行重新匹配,提高了蘋果計數(shù)精度,而對于葉片較大或茂密的果樹,葉片遮擋果實可能導(dǎo)致追蹤目標(biāo)丟失。為解決此問題,ZHANG 等[20]在簡單在線實時追蹤(simple online and real-time tracking,SORT)[21]的基礎(chǔ)上提出OrangeSort,對田間柑橘計數(shù),降低了葉片遮擋對柑橘計數(shù)結(jié)果準(zhǔn)確性的影響,但該方法忽略了目標(biāo)的外觀特征。GE 等[22]提出改進(jìn)的YOLODeepsort 對番茄追蹤計數(shù),該方法利用DeepSORT[23]中的外觀特征提取網(wǎng)絡(luò)進(jìn)行關(guān)聯(lián)匹配,滿足了對番茄產(chǎn)量預(yù)測的實際需求。由于上述方法都是在設(shè)定場景下提出的目標(biāo)追蹤解決方案,對于真實場景下葡萄的追蹤計數(shù)并不適用。針對葡萄的追蹤計數(shù)主要存在以下3 個問題:
1)實際場景中,套袋后的葡萄因體積增大易發(fā)生重疊遮擋,導(dǎo)致部分套袋葡萄在檢測階段被過濾,后續(xù)追蹤結(jié)果不準(zhǔn)確。
2)搭載相機(jī)的遙控小車通常以勻速拍攝果樹視頻,而人工拍攝視頻的速度不穩(wěn)定,導(dǎo)致視頻中追蹤的套袋葡萄目標(biāo)丟失,進(jìn)而影響計數(shù)的準(zhǔn)確性。
3)真實果園中,葡萄葉片較大且套袋后的葡萄相互遮擋,在追蹤過程中果實被遮擋可能導(dǎo)致追蹤目標(biāo)丟失、身份標(biāo)識轉(zhuǎn)變,因此對視頻中的果實逐個賦予ID(從1開始)實現(xiàn)果實計數(shù)的方法[24]并不適用。
為解決上述問題,本文提出一種基于自糾正NMSByteTrack 的套袋葡萄估產(chǎn)方法。首先,將非極大值抑制(non-maximum suppression,NMS)[25]操作從檢測階段后置到追蹤階段,規(guī)避套袋葡萄在檢測時因遮擋而被過濾的現(xiàn)象,以解決上述問題1);其次,利用相機(jī)運動補(bǔ)償和改進(jìn)的KF 算法,通過前后幀背景信息生成的仿射變換矩陣對KF 生成的預(yù)測框進(jìn)行自動糾正,以解決上述問題2);最后,提出一種劃線計數(shù)策略,通過撞線對追蹤目標(biāo)進(jìn)行計數(shù),以解決上述問題3)。
為使試驗數(shù)據(jù)集具有實際參考價值,本文將真實果園拍攝的套袋葡萄圖片和視頻作為試驗數(shù)據(jù)集。該數(shù)據(jù)集來源于重慶璧山區(qū)派登特農(nóng)業(yè)科技示范園,其經(jīng)度、緯度和高度分別為106.221°、29.753°與353m[26]。為拍攝不同時間段、不同角度下的套袋葡萄,研究人員使用紅米K40 和OPPO Reno6pro+的手機(jī)攝像頭對同一個套袋葡萄分別在8:00、12:00、18:00 進(jìn)行正拍、側(cè)拍和俯拍等不同角度拍攝,總拍攝時長約6 h,拍攝高度距地面約1.5 m,拍攝路線為逐行拍攝,共獲取套袋葡萄圖片500 張,分辨率有4 000× 3 000 像素和4 096× 3 072 像素兩種。采集套袋葡萄有效視頻數(shù)據(jù)集6 個,每個視頻平均時長約20 s,視頻速度為非勻速,視頻格式為MP4,分辨率為1 920× 1 080 像素,視頻幀率為30 幀/s。
原始的500 張?zhí)状咸褕D片是經(jīng)過數(shù)據(jù)篩選后的實際拍攝圖片。為提高模型的泛化性,通過對原始圖片進(jìn)行飽和度、亮度增強(qiáng)、亮度變暗和鏡像等操作,如圖1所示,以滿足套袋葡萄在不同光照條件下的生長狀態(tài)和不同角度下的分布狀態(tài)。
圖1 圖片增強(qiáng)方法Fig.1 Image augmentation methods
通過以上操作,將原始的500 張?zhí)状咸褕D片擴(kuò)展為2 000 張,并將2 000 張圖片按照8∶2 的比例隨機(jī)劃分成訓(xùn)練集和驗證集,6 個有效視頻作為測試集。
數(shù)據(jù)增強(qiáng)后,本文對套袋葡萄的2 000 張圖片進(jìn)行標(biāo)注,標(biāo)注軟件為MAKE SENSE,通過在線對套袋葡萄繪制矩形框,使矩形框完全包含整個套袋葡萄,生成該目標(biāo)矩形框位置信息的txt 文件。用于測試試驗的6 個視頻使用DarkLabel 軟件進(jìn)行標(biāo)注,如圖2 所示。通過逐幀繪制每個套袋葡萄從出現(xiàn)到消失過程中的最小矩形框,生成目標(biāo)位置信息的txt 文件。
圖2 視頻標(biāo)注軟件Fig.2 Video annotation software
YOLO 系列目標(biāo)檢測方法中,YOLOv5s 是一種高性能、高精度、易于擴(kuò)展和部署的目標(biāo)檢測模型,具有更快的速度和更高的可擴(kuò)展性[27]。在保證目標(biāo)檢測精度的前提下,為利于實現(xiàn)果實的實時檢測,本文選擇YOLOv5s 作為套袋葡萄的檢測方法。
2022 年,ZHANG 等[28]在SORT 的基礎(chǔ)上首次提出了在線追蹤雙關(guān)聯(lián)方法ByteTrack。該方法對低置信度的檢測框進(jìn)行二次關(guān)聯(lián),保證實時性的同時,進(jìn)一步提升了目標(biāo)追蹤性能,因此本文將ByteTrack 作為對套袋葡萄追蹤的基礎(chǔ)方法。
為降低套袋葡萄被遮擋的影響,并減少因相機(jī)姿勢變化而產(chǎn)生的誤差,本文提出一種基于自糾正NMSByteTrack 的追蹤方法解決上述問題。同時提出一種劃線計數(shù)策略,實現(xiàn)對套袋葡萄更精準(zhǔn)地計數(shù)估產(chǎn)。
在套袋葡萄的計數(shù)研究中,葡萄經(jīng)過套袋后體積變大,使得部分套袋葡萄重疊遮擋,在YOLOv5s 中直接進(jìn)行NMS 操作可能導(dǎo)致重疊遮擋的套袋葡萄檢測框被過濾。為解決該問題,本文將檢測階段的NMS 操作后置到追蹤階段,并提出基于NMS-ByteTrack 的算法。為使套袋葡萄追蹤計數(shù)具有便捷性和實時性,大多數(shù)果農(nóng)并不會使用機(jī)器小車拍攝,更多采用手機(jī)拍攝,而人工拍攝的視頻通常是非勻速的,使得套袋葡萄的產(chǎn)量估計不準(zhǔn)確。因此本文在上述基礎(chǔ)上加入相機(jī)運動補(bǔ)償和改進(jìn)的KF 算法,以自動糾正視頻中非線性運動的不足。估產(chǎn)方法的整體流程如圖3 所示。
圖3 基于自糾正NMS-ByteTrack 的套袋葡萄估產(chǎn)方法整體流程圖Fig.3 Overall flowchart of bagged grape yield estimation method based on self-correcting NMS-ByteTrack
2.1.1 基于NMS-ByteTrack 的算法
NMS 是一種去除非極大值的算法,常用于計算機(jī)視覺中的邊緣檢測、目標(biāo)檢測和行人檢測等,其作用是去除檢測任務(wù)中重復(fù)的檢測框。目前大多數(shù)多目標(biāo)追蹤方法中,NMS 用于檢測階段,而非追蹤階段。NMS 操作可以過濾一些低置信度檢測框或冗余檢測框,并獲得一些高分檢測結(jié)果,而在檢測階段使用NMS 操作可能會導(dǎo)致可用于追蹤的候選框被過濾,致使追蹤結(jié)果不準(zhǔn)確。因此,本文提出一種基于NMS-ByteTrack 的算法,將NMS 操作后置到追蹤階段,使結(jié)果更專注于追蹤任務(wù),有效地為追蹤保留更多的候選框。
其次,若交并比大于給定閾值θ,則該檢測框被保留,計算過程如式(2)所示。
2.1.2 相機(jī)運動補(bǔ)償
相機(jī)運動是指相機(jī)旋轉(zhuǎn)、縮放和平移等姿勢的變化。由于人工拍攝過程中相機(jī)不經(jīng)意的移動,導(dǎo)致視頻中同一個套袋葡萄的背景信息不斷改變,干擾了對套袋葡萄的追蹤計數(shù)。為減少追蹤過程中相機(jī)運動產(chǎn)生的誤差,本文使用一種傳統(tǒng)的全局運動補(bǔ)償(global motion compensation,GMC)圖像配準(zhǔn)技術(shù)[29],其本質(zhì)是關(guān)聯(lián)相鄰幀的同一套袋葡萄,根據(jù)相鄰幀的背景運動生成仿射矩陣,從而將套袋葡萄的位置信息從上一幀的坐標(biāo)系轉(zhuǎn)換到當(dāng)前幀的坐標(biāo)系中。該技術(shù)首先提取上一幀和當(dāng)前幀的套袋葡萄圖片中除追蹤目標(biāo)外的背景關(guān)鍵點,利用稀疏光流[30]對提取的套袋葡萄背景關(guān)鍵點進(jìn)行匹配;其次使用RANSAC[31]計算得到背景運動的仿射變換矩陣,利用KF 預(yù)測出當(dāng)前幀的套袋葡萄預(yù)測框;最后獲取的仿射變換矩陣將該預(yù)測框從上一幀的坐標(biāo)系中變換到當(dāng)前幀的坐標(biāo)系,實現(xiàn)對當(dāng)前幀預(yù)測框的位置信息矯正,具體流程如圖4 所示。
圖4 相機(jī)運動補(bǔ)償流程Fig.4 Camera motion compensation flowchart
At|t-1∈R2×3代表從第t-1 幀到第t幀的坐標(biāo)變換仿射矩陣,如式(3)所示。其中M∈R2×2代表坐標(biāo)系縮放和旋轉(zhuǎn)部分變換矩陣,T∈R2×1代表坐標(biāo)系平移部分變換矩陣,分別如式(4)和式(5)所示,更新矯正KF 預(yù)測框如式(6)和式(7)所示。
2.1.3 改進(jìn)的KF 算法
KF 是一種利用線性系統(tǒng)狀態(tài)方程對系統(tǒng)狀態(tài)進(jìn)行最優(yōu)估計的算法[16]。通過對追蹤目標(biāo)位置進(jìn)行預(yù)測,再與對應(yīng)追蹤目標(biāo)的觀測位置數(shù)據(jù)融合,從而得到目標(biāo)最優(yōu)位置估計。本文使用KF 線性勻速模型對套袋葡萄的追蹤框進(jìn)行最優(yōu)估計。KF 主要分為預(yù)測和更新兩個階段,通過上一幀的套袋葡萄追蹤框?qū)Ξ?dāng)前幀的套袋葡萄追蹤框進(jìn)行預(yù)測,得到當(dāng)前幀套袋葡萄的追蹤預(yù)測框,同時,利用檢測方法YOLOv5s 檢測出當(dāng)前幀套袋葡萄的檢測框,與當(dāng)前幀的追蹤預(yù)測框進(jìn)行數(shù)據(jù)融合更新,得到當(dāng)前幀該套袋葡萄的最優(yōu)估計追蹤框。
目前主流的追蹤方法[32-34]使用的KF 狀態(tài)向量為,其中x、y分別代表估計框的中心點橫縱坐標(biāo),a表示寬高比,h表示高度,vx、vy、va和vh分別代表前面4 個變量的變化速度。為了正確預(yù)測出套袋葡萄的位置信息,本文提出改進(jìn)的KF 算法,將之前KF 狀態(tài)向量的寬高比a更改為寬度w,得到KF 狀態(tài)向量為。通過消融試驗結(jié)果證明,直接使用寬度去最優(yōu)估計套袋葡萄追蹤框的效果更好。
實際拍攝套袋葡萄過程中,觀察到葡萄的葉片表面積很大,易遮擋套袋葡萄,在目標(biāo)追蹤過程中可能導(dǎo)致同一個套袋葡萄的身份標(biāo)識發(fā)生轉(zhuǎn)變,易重復(fù)計數(shù)。因此本文提出一種劃線計數(shù)策略,對套袋葡萄進(jìn)行自動計數(shù),提高計數(shù)的準(zhǔn)確性,如圖5 所示。為準(zhǔn)確估計視頻中套袋葡萄的個數(shù),避免在視頻追蹤過程中套袋葡萄還未到劃線處,追蹤目標(biāo)就消失于視頻屏幕之外。本文將計數(shù)線設(shè)置到視頻屏幕的中間,并在拍攝的每個視頻前幾秒預(yù)留出無套袋葡萄的空閑幀,在計數(shù)過程中,具有同一ID 的套袋葡萄只能計數(shù)一次,避免套袋葡萄重復(fù)撞線計數(shù)的情況。通過套袋葡萄的追蹤框中心點與計數(shù)線成功碰撞,實現(xiàn)對套袋葡萄的自動計數(shù)。
圖5 套袋葡萄的追蹤計數(shù)線Fig.5 Tracking and counting line for bagged grape
2.3.1 試驗環(huán)境
平臺配備有CPU 為Intel Core i5-12400F,內(nèi)存為16 GB,顯卡型號為RTX3060-12GB,計算機(jī)系統(tǒng)為Windows11 專業(yè)版,開發(fā)環(huán)境為PyCharm2021,所用語言為Python3.7,所用框架為Pytorch1.12.0。
為了實時檢測套袋葡萄,本文將2 000 張圖片放入到Y(jié)OLOv5s 中訓(xùn)練得到最優(yōu)權(quán)重。其中YOLOv5s 模型訓(xùn)練設(shè)置的最優(yōu)超參數(shù)為:訓(xùn)練輪次設(shè)置為600,批量大小為36,優(yōu)化器為SGD,初始學(xué)習(xí)率為0.01,同時采用余弦退火策略輔助學(xué)習(xí)率下降,學(xué)習(xí)率動量為0.937,權(quán)重衰減系數(shù)為0.000 5。訓(xùn)練總損失函數(shù)(Ltotal)由定位損失(Lbox_loss)、置信度損失(Lobj_loss)和分類損失(Lcls_loss)構(gòu)成,如式(8)所示。
式中 λ1,λ2和 λ3是權(quán)重因子,均為YOLOv5s 默認(rèn)參數(shù)設(shè)置。
2.3.2 評價指標(biāo)
在果實檢測中,本文使用精度(precision)、召回率(recall rate)和平均精度(average precision,AP)作為對套袋葡萄檢測效果的評價指標(biāo)[10]。精度、召回率和平均精度的值越大,說明目標(biāo)檢測方法的檢測性能越好。
在果實追蹤中,本文使用多目標(biāo)追蹤準(zhǔn)確率(multiple object tracking accuracy,MOTA)、多目標(biāo)追蹤精度(multiple object tracking precision,MOTP)、ID 調(diào)和平均數(shù)(identification F1-score,IDF1)和ID 變換次數(shù)(ID switch,IDSW)作為對套袋葡萄追蹤效果的評價指標(biāo)[19]。多目標(biāo)追蹤準(zhǔn)確率、多目標(biāo)追蹤精度和ID 調(diào)和平均數(shù)的值越大,ID 變換次數(shù)越小,說明套袋葡萄的追蹤性能越好。
在果實計數(shù)中,本文采用平均計數(shù)精度(average counting precision,Acp)作為對套袋葡萄計數(shù)效果的評價指標(biāo)[19]。平均計數(shù)精度越大,說明套袋葡萄的計數(shù)性能越準(zhǔn)確。具體計算如式(9)所示:
式中S表示估產(chǎn)方法計數(shù)視頻的果實個數(shù),G表示人工計數(shù)視頻的果實個數(shù),n表示視頻的個數(shù)。
3.1.1 不同檢測方法的對比試驗
為驗證檢測方法YOLOv5s 在套袋葡萄數(shù)據(jù)集上的準(zhǔn)確性,本文將YOLOv5s 與YOLOX-s[35]、YOLOv7[36]進(jìn)行了對比試驗,如表1 所示。
表1 不同目標(biāo)檢測方法在套袋葡萄數(shù)據(jù)集上的試驗結(jié)果Table 1 Test results of several different object detection methods on bagged grape dataset %
試驗結(jié)果表明,YOLOv5s 的精度、召回率和平均精度分別為97.6%、96.2%和97.6%,比YOLOX-s 的精度、召回率和平均精度分別提高了2.8、3.1 和7.6 個百分點,YOLOv5s 相比YOLOv7 的精度和平均精度分別提高了0.5 和0.4 個百分點。證明了YOLOv5s 在套袋葡萄數(shù)據(jù)集上檢測性能的優(yōu)越性。試驗結(jié)果分析可知,YOLOX-s和YOLOv7 對套袋葡萄的檢測效果不理想主要有以下3個原因:1)YOLOX-s 和YOLOv7 將背景噪聲檢測為套袋葡萄目標(biāo),如圖6a 所示;2)兩個目標(biāo)相互重疊遮擋,被遮擋的套袋葡萄目標(biāo)在YOLOX-s 和YOLOv7 中檢測不到,如圖6b 所示;3)由于葉片的遮擋,導(dǎo)致YOLOX-s和YOLOv7 檢測不出被遮擋的套袋葡萄,如圖6c 所示。以上問題都在不同程度上降低了YOLOX-s 和YOLOv7檢測套袋葡萄的精度,因其檢測精度較高而對套袋葡萄等大目標(biāo)的檢測效果不理想。
圖6 套袋葡萄不同檢測方法的效果對比Fig.6 Effect comparison of different detection methods for bagged grape
3.1.2 YOLOv5s 的收斂性分析
為了驗證套袋葡萄數(shù)據(jù)集在YOLOv5s 上訓(xùn)練的收斂性,本文在圖7 中展示了YOLOv5s 在訓(xùn)練過程中的損失和檢測指標(biāo)變化趨勢圖,其中橫坐標(biāo)代表訓(xùn)練輪次,縱坐標(biāo)代表損失值或檢測指標(biāo)值。由圖可知,訓(xùn)練400輪次后,模型的訓(xùn)練損失和驗證損失都逐漸達(dá)到收斂狀態(tài),精度、召回率和平均精度都趨于穩(wěn)定。
圖7 訓(xùn)練損失和檢測指標(biāo)變化趨勢Fig.7 Trend chart of training loss and detection metrics
3.2.1 不同追蹤方法的對比試驗
為證明基于自糾正NMS-ByteTrack 的套袋葡萄追蹤方法有效性,本文與5 種追蹤方法進(jìn)行了對比試驗,如表2 所示。試驗結(jié)果表明,基于自糾正NMS-ByteTrack的追蹤效果相比其他方法更好。其原因是DeepSORT[23]、MOTDT[37]和StrongSORT[32]都只保留了高置信度檢測框用于后續(xù)追蹤,容易過濾因遮擋而置信度變低的套袋葡萄檢測框,降低了目標(biāo)的追蹤性能。ByteTrack[28]和Bot-SORT[29]雖彌補(bǔ)了上述的不足,但算法過于依賴檢測結(jié)果的質(zhì)量,檢測階段的NMS 操作可能會導(dǎo)致可用于追蹤的檢測框被過濾,致使追蹤結(jié)果不準(zhǔn)確。因此,本文提出的方法能夠有效地追蹤套袋葡萄,減少了誤檢和漏檢。
表2 不同目標(biāo)追蹤方法在套袋葡萄數(shù)據(jù)集上的試驗結(jié)果Table 2 Test results of several different object tracking methods on bagged grape dataset
3.2.2 數(shù)據(jù)集擴(kuò)展前后檢測性能對比
為了評估數(shù)據(jù)集擴(kuò)展對檢測模型的有效性,本文選取500 張原始套袋葡萄圖片和2 000 張擴(kuò)展后圖片進(jìn)行對比試驗,試驗結(jié)果如表3 所示。結(jié)果表明,擴(kuò)展后數(shù)據(jù)集的檢測精度相比原始數(shù)據(jù)集的精度、召回率和平均精度分別提高了3.3、7.8 和2.6 個百分點,證明了數(shù)據(jù)集擴(kuò)展的必要性。
3.2.3 基于ByteTrack 追蹤方法的消融試驗
為了驗證不同改進(jìn)點對提高套袋葡萄追蹤性能的有效性,本文在ByteTrack 的基礎(chǔ)上進(jìn)行消融試驗,如表4所示。通過將KF 中預(yù)測目標(biāo)框位置的寬高比直接改為預(yù)測目標(biāo)框的寬度,減少寬高比產(chǎn)生的誤差。試驗結(jié)果表明,改進(jìn)KF 的ByteTrack 追蹤方法相比改進(jìn)前的多目標(biāo)追蹤準(zhǔn)確率提高了0.8 個百分點、多目標(biāo)追蹤精度提高了0.8 個百分點、ID 調(diào)和平均數(shù)提高了0.7 個百分點和ID 變換次數(shù)減少1 次。
表4 基于ByteTrack 追蹤方法在套袋葡萄數(shù)據(jù)集上的消融試驗結(jié)果Table 4 Ablation test results based on ByteTrack tracking method on bagged grape dataset
為降低拍攝視頻時相機(jī)非線性運動的影響,本文引入相機(jī)運動補(bǔ)償以彌補(bǔ)相機(jī)不規(guī)則運動的缺陷,自動糾正KF 預(yù)測的目標(biāo)框位置,提升檢測框和預(yù)測框的成功關(guān)聯(lián)匹配能力。試驗結(jié)果表明,加入相機(jī)運動補(bǔ)償后相比改進(jìn)KF 的ByteTrack 追蹤方法的多目標(biāo)追蹤準(zhǔn)確率提高了0.6 個百分點、多目標(biāo)追蹤精度提高了0.2 個百分點、ID 調(diào)和平均數(shù)提高了1.9 個百分點和ID 變換次數(shù)減少1 次。
為使套袋葡萄計數(shù)更關(guān)注于追蹤階段,本文將檢測階段中的NMS 篩選框功能后置到追蹤階段進(jìn)行,避免套袋葡萄重疊遮擋后,其檢測框在檢測階段被過濾的情況,提升目標(biāo)追蹤性能。因此本文在上述基礎(chǔ)上,提出基于自糾正NMS-ByteTrack 的追蹤方法。試驗結(jié)果表明,基于自糾正NMS-ByteTrack 的追蹤方法在多目標(biāo)追蹤準(zhǔn)確率和ID 調(diào)和平均數(shù)分別為64.6%和80.8%,比加入相機(jī)運動補(bǔ)償和改進(jìn)KF 的ByteTrack 追蹤方法的多目標(biāo)追蹤準(zhǔn)確率提高了0.3 個百分點、ID 調(diào)和平均數(shù)提高了1.5 個百分點和ID 變換次數(shù)減少1 次。
綜上,基于自糾正NMS-ByteTrack 的追蹤方法相比基礎(chǔ)方法ByteTrack 在多目標(biāo)追蹤準(zhǔn)確率、多目標(biāo)追蹤精度和ID 調(diào)和平均數(shù)分別提高了1.7 個百分點、1.0 個百分點和4.1 個百分點,ID 變換次數(shù)減少3 次,證明了本文方法對提高套袋葡萄追蹤性能的有效性。
為準(zhǔn)確估計視頻中套袋葡萄的個數(shù),實現(xiàn)對套袋葡萄的計數(shù)估產(chǎn),本文提出一種劃線計數(shù)策略對視頻中的套袋葡萄進(jìn)行計數(shù),并在人工拍攝的6 個套袋葡萄視頻數(shù)據(jù)集上試驗,通過基于自糾正NMS-ByteTrack 估產(chǎn)方法得到的套袋葡萄個數(shù)與人工估計套袋葡萄的個數(shù)進(jìn)行對比,如表5 所示。試驗結(jié)果表明,利用基于自糾正NMS-ByteTrack 估產(chǎn)方法估計的套袋葡萄個數(shù)與人工估計套袋葡萄的個數(shù)接近,并計算出他們的平均計數(shù)精度為82.8%,證明了該劃線計數(shù)策略在套袋葡萄自動計數(shù)上的適用性。
本文提出基于自糾正NMS-ByteTrack 的套袋葡萄估產(chǎn)方法,分別對套袋葡萄在果實檢測、果實追蹤和果實計數(shù)3 個方面進(jìn)行試驗并得出以下結(jié)論:
1)在套袋葡萄檢測方面,本文使用YOLOv5s 分別與YOLOX-s 和YOLOv7 進(jìn)行了對比試驗。結(jié)果表明,YOLOv5s 在精度和平均精度上都比YOLOX-s 和YOLOv7 高,試驗分析可知是由于背景噪聲、目標(biāo)重疊和葉片遮擋等原因,降低了套袋葡萄的檢測精度,進(jìn)而影響了目標(biāo)追蹤性能,因此YOLOv5s 更適用于檢測套袋葡萄目標(biāo)。
2)在套袋葡萄追蹤方面,本文方法與其他追蹤方法進(jìn)行了對比。結(jié)果表明,基于自糾正NMS-ByteTrack 追蹤方法的追蹤性能都優(yōu)于其他方法,有效解決了套袋葡萄在真實場景下的問題。同時,消融試驗結(jié)果表明,本文方法相比改進(jìn)前多目標(biāo)追蹤準(zhǔn)確率、多目標(biāo)追蹤精度和ID 調(diào)和平均數(shù)分別提高了1.7、1.0 和4.1 個百分點,ID 變換次數(shù)減少3 次,證明了該方法在套袋葡萄追蹤計數(shù)上的有效性。
3)在套袋葡萄計數(shù)方面,本文提出一種劃線計數(shù)策略對套袋葡萄計數(shù)。結(jié)果表明,通過該策略估計視頻中套袋葡萄的個數(shù)與人工計數(shù)結(jié)果接近,且平均計數(shù)精度為82.8%,證明了該劃線計數(shù)策略在套袋葡萄自動計數(shù)上具有較強(qiáng)的適用性,其試驗結(jié)果可以為套袋葡萄的實際估產(chǎn)提供參考。