張麗雯,周 昊,朱啟兵
(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,無錫 214122)
規(guī)?;B(yǎng)殖環(huán)境下,基于視頻的群養(yǎng)生豬個體檢測和跟蹤可以方便實現(xiàn)生豬個體行為的識別與統(tǒng)計分析,從而有助于生豬的精細(xì)化管理[1-2],并最終實現(xiàn)福利化養(yǎng)殖的目標(biāo)[3-4]。
基于視頻的多目標(biāo)跟蹤方法可分為基于檢測的跟蹤(tracking by detection,TBD)算法[5]和聯(lián)合檢測跟蹤(joint detection and embedding,JDE)算法[6-7]兩大類。TBD 算法首先利用目標(biāo)檢測器檢測單幀視頻圖像中的目標(biāo),再基于卡爾曼濾波和匈牙利算法對多幀圖像的目標(biāo)進(jìn)行關(guān)聯(lián),以實現(xiàn)目標(biāo)跟蹤;JDE 算法通過修改檢測器組件以同時完成視頻圖像中的目標(biāo)檢測與身份重識別任務(wù),從而實現(xiàn)目標(biāo)跟蹤。然而身份重識別數(shù)據(jù)集和目標(biāo)檢測數(shù)據(jù)集之間通常存在較大的差異性,易影響外觀特征信息的準(zhǔn)確性,導(dǎo)致目標(biāo)跟蹤精度降低。因此,相較于JDE 算法,TBD 算法擁有更高的精度。
檢測器選擇和跟蹤策略設(shè)計是TBD 算法的兩個關(guān)鍵環(huán)節(jié)。隨著深度神經(jīng)網(wǎng)絡(luò)的發(fā)展,F(xiàn)aster R-CNN[8]以及YOLO 系列是目前TBD 算法中常用的檢測器。其中,YOLO 系列具有更快的檢測速度,能滿足目標(biāo)跟蹤這類對實時性要求較高的場景需求。在跟蹤策略方面,DeepSORT[9-11]和ByteTrack[12-13]兩種策略得到了較為廣泛的應(yīng)用。DeepSORT 算法在SORT[10](simple online and realtime tracking)的基礎(chǔ)上利用身份重識別(Re-ID)網(wǎng)絡(luò)將目標(biāo)的外觀信息加入到匹配計算之中,以減少遮擋目標(biāo)身份在跟蹤過程中的頻繁跳變。不同于DeepSORT所引入的外觀特征匹配策略,ByteTrack 算法利用低分檢測框進(jìn)行二次匹配,以減少由于遮擋所導(dǎo)致低分框的丟棄,從而避免漏檢和軌跡中斷。最近提出的以觀察為中心的SORT(OC-SORT[14]),針對具有相似外觀和復(fù)雜運動特征的DanceTrack 數(shù)據(jù)集[15],采用自適應(yīng)Kerman濾波器和遮擋恢復(fù)匹配方案,提高了對遮擋和非線性運動的魯棒性。
生豬養(yǎng)殖實際場景下,群養(yǎng)生豬之間相互遮擋且伴隨著不規(guī)則的運動[16]。在當(dāng)前的主流優(yōu)化跟蹤算法中,ByteTrack 算法的低分框匹配機(jī)制能夠有效減少由于遮擋導(dǎo)致的漏檢問題,然而該機(jī)制會增加誤檢次數(shù)。OCSORT 算法的遮擋恢復(fù)匹配方案可以顯著減少遮擋帶來的身份跳變。但這兩種算法均無外觀特征匹配,在視頻低幀率或卡頓的情況下容易導(dǎo)致目標(biāo)丟失。近期研究[17]指出,外觀特征匹配是解決遮擋和不規(guī)則運動問題的重要手段。然而,由于生豬的外觀具有高度的相似性,現(xiàn)有的基于卷積的身份重識別網(wǎng)絡(luò)往往難以獲得具有良好區(qū)分特性的目標(biāo)外觀特征。
為進(jìn)一步優(yōu)化實際場景下針對群養(yǎng)生豬的多目標(biāo)跟蹤方法,本文提出了PigsTrack 跟蹤器。該跟蹤器從檢測,嵌入和關(guān)聯(lián)三個方面進(jìn)行改進(jìn),首先利用高性能檢測器YOLOX 減少遮擋場景下的豬只誤檢與漏檢率;其次構(gòu)建基于Transformer 模型的身份重識別(Re-ID)網(wǎng)絡(luò)以提取具有良好區(qū)分特性的目標(biāo)外觀特征;接著基于OCSORT 的思想,通過集成外觀特征匹配、IoU 匹配和遮擋恢復(fù)匹配策略實現(xiàn)群養(yǎng)生豬的準(zhǔn)確跟蹤;最后利用雙流3D 卷積網(wǎng)絡(luò)(SlowFast[18])對PigsTrack 跟蹤器獲得的跟蹤結(jié)果進(jìn)行了典型行為統(tǒng)計,表明基于PigsTrack 跟蹤器群養(yǎng)生豬個體行為統(tǒng)計更為準(zhǔn)確。
圖1 為PigsTrack 跟蹤器的整體架構(gòu)。首先,在檢測階段,將視頻中的每一幀輸入到Y(jié)OLOX 目標(biāo)檢測器中生成檢測框;在跟蹤階段,利用特征提取網(wǎng)絡(luò)提取當(dāng)前檢測框和軌跡預(yù)測框的外觀信息,實現(xiàn)特征匹配;為了實現(xiàn)更加穩(wěn)健的跟蹤,在IoU 匹配的基礎(chǔ)上,增加了利用未匹配軌跡最后檢測框的遮擋恢復(fù)匹配;在利用跟蹤的三步匹配獲得連續(xù)幀圖像的軌跡框后,輸出視頻序列結(jié)果。
檢測器YOLOX 以YOLOv3-SPP 結(jié)合Darknet53(即CSPDarknet53)為基線,集成了無錨檢測器,SimOTA(簡化OTA)標(biāo)簽分配策略和解耦頭等特性。具體結(jié)構(gòu)如圖1 所示。
在YOLOX 中,采用 CSPDarknet53 作為骨干特征提取網(wǎng)絡(luò),PAnet 結(jié)構(gòu)用于特征的上采樣和下采樣,以實現(xiàn)特征融合。從中獲得3 個不同尺度的特征輸出層,每個層在分類器和回歸器中獲得3 個預(yù)測,預(yù)測特征層中每個特征點是否存在1 個目標(biāo)、目標(biāo)的類別和目標(biāo)的位置參數(shù)。輸入圖片經(jīng)過預(yù)處理之后,通過主干網(wǎng)絡(luò)與特征金字塔提取特征,通過檢測頭進(jìn)行檢測與分類。將3個分支的預(yù)測結(jié)果堆疊后,經(jīng)過NMS 后處理輸出最終結(jié)果。為了防止檢測到指定豬圈外的豬只,原始視頻中的每幀圖像進(jìn)行掩碼處理;掩碼處理后的圖片尺寸調(diào)整為800×1 440 像素,并采用Mosaic 和 Mixup 數(shù)據(jù)增強(qiáng)操作。
當(dāng)檢測器確定目標(biāo)的位置和大小之后,將從原始輸入圖像中截取目標(biāo)圖片,并將其輸入到外觀特征提取模塊中,以獲得物體在圖像中的外觀特征信息。
此前,基于卷積的身份重識別網(wǎng)絡(luò)OSNet(Omni-Scale Network)常被用于多目標(biāo)跟蹤的外觀特征提取任務(wù)[19]。然而,基于卷積的特征提取方法存在兩個局限性:首先,由于卷積核的限制,不能學(xué)習(xí)大范圍的空間結(jié)構(gòu)特征;其次,CNN 的降采樣會導(dǎo)致細(xì)節(jié)特征丟失,使得相似目標(biāo)匹配失敗。而Vision Transformer (ViT)[20]引入了多個注意力機(jī)制,使模型能夠關(guān)注試驗對象的不同部位,此外,通過去除降采樣和卷積,ViT 能夠保留更詳細(xì)的信息,有利于獲取具有良好區(qū)分特性的目標(biāo)外觀特征,有效彌補了卷積方法存在的缺陷。
本文基于Transformer 模型的身份重識別網(wǎng)絡(luò)來提取外觀特征,網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示,將輸入圖片(224×224 像素)切片分成196 個16×16 像素大小的圖像塊,再將圖像塊序列利用線性投影映射到D維。在D維向量之前加入一個向量Xclass,對應(yīng)的輸出表示全局特征。通過添加可學(xué)習(xí)的位置嵌入P來表示圖像塊序列的空間信息,通過使用L個變換器層來學(xué)習(xí)外觀特征。
監(jiān)督學(xué)習(xí)部分利用表征學(xué)習(xí)與度量學(xué)習(xí)結(jié)合的方式,即結(jié)合分類損失和三元組損失(triplet loss)來共同優(yōu)化特征[21]。在訓(xùn)練過程中,對變換器層后提取的特征使用基于難樣本挖掘的三元組損失作監(jiān)督訓(xùn)練,再對全連接層整合后的特征采用基于標(biāo)簽平滑的交叉熵?fù)p失函數(shù)進(jìn)行監(jiān)督訓(xùn)練。
PigsTrack 跟蹤器采用三步匹配的穩(wěn)健跟蹤策略,流程圖如圖3 所示。
圖3 PigsTrack 的三步匹配算法流程圖Fig.3 Flow chart of PigsTrack's three-step matching algorithm
通過先前幀的軌跡序列,進(jìn)行卡爾曼濾波預(yù)測當(dāng)前幀的軌跡。再對軌跡預(yù)測框與檢測框依次進(jìn)行跟蹤的三步匹配,具體步驟如下:
首先,軌跡初始化為未確認(rèn)態(tài),滿足連續(xù)3 幀都成功匹配,將未確認(rèn)態(tài)轉(zhuǎn)化為確認(rèn)態(tài),第一次匹配在確定軌跡和檢測結(jié)果之間進(jìn)行,通過特征提取網(wǎng)絡(luò)提取預(yù)測軌跡框和檢測框的外觀特征計算得的余弦距離作為相似度;第二次匹配在不確定軌跡加上第一次未匹配軌跡和未匹配檢測框之間進(jìn)行,通過框與框之間的交并比(intersection over union,IoU)計算相似度;第三次匹配是遮擋恢復(fù)匹配,在未匹配軌跡的最后檢測框與未匹配檢測框之間進(jìn)行,利用IoU 計算相似度。當(dāng)檢測丟失(檢測器漏檢或遮擋)或非線性運動時軌跡中斷,軌跡預(yù)測隨著時間增加而逐漸偏離軌跡框,第二次匹配將會失效。于是第三次匹配的作用在于一旦一個軌跡在第一次匹配(外觀相似導(dǎo)致匹配失效)和第二次匹配階段后仍未被跟蹤時,就將這個軌跡的最后一次檢測框關(guān)聯(lián)到新的時間步長上的檢測框。這個過程是局部的,自發(fā)式的,可以處理對象在合理的時間間隔內(nèi)漏檢或被遮擋的情況。
三次匹配均采用匈牙利算法完成基于相似度的匹配。在遮擋恢復(fù)匹配中,經(jīng)歷第二次IoU 匹配之后,如果仍有軌跡未被跟蹤,嘗試將該軌跡的最后一個檢測值與新的下一個時間步長上的檢測值相關(guān)聯(lián)。通過將軌跡的最后檢測值與新檢測值關(guān)聯(lián)來恢復(fù)對象,這個過程可以處理對象在合理的時間間隔內(nèi)停止或被遮擋的情況。
三次成功匹配的軌跡,都進(jìn)行卡爾曼濾波更新,并對軌跡的狀態(tài)和特征進(jìn)行更新。使用指數(shù)移動平均(exponential moving average,EMA)的方式來對成功匹配軌跡的外觀特征進(jìn)行更新,使用前一次EMA 特征與當(dāng)前的檢測特征做融合操作[22]:
最后,對3 次仍未匹配軌跡判斷其距離上次更新的間隔幀,當(dāng)間隔幀小于30 幀時則對軌跡保留,否則將在軌跡序列中刪除該軌跡。利用成功匹配并且是激活態(tài)的軌跡的邊界框和標(biāo)識輸出當(dāng)前幀的軌跡結(jié)果。
本文利用PBVD(pigs behaviours video)數(shù)據(jù)集[23]來驗證所提方法的性能。PBVD 數(shù)據(jù)集收集了8 個豬圈(每個豬圈8 頭豬)的視頻數(shù)據(jù),數(shù)據(jù)涵蓋了6 周(2019 年的11 月5 日至12 月11 日),采集時間為7:00—19:00。每個視頻固定拍攝一個豬圈,視頻圖像分辨率為1 280×720,采集幀率 6 幀/s,每個視頻的采樣長度為5 min。本文從原始PBVD 數(shù)據(jù)集中選擇20 個視頻(共36 000 幀)組成數(shù)據(jù)集,數(shù)據(jù)集中挑選了涵蓋不同時間段、飼養(yǎng)豬圈的12 個視頻數(shù)據(jù)用于訓(xùn)練,8 個視頻用于測試。訓(xùn)練樣本和測試樣本的數(shù)據(jù)描述詳見表1。本文使用DarkLabel 工具進(jìn)行標(biāo)注并整理了目標(biāo)檢測數(shù)據(jù)集和豬身份重識別數(shù)據(jù)集。
表1 視頻數(shù)據(jù)集Table 1 Video datasets
本文試驗的硬件配置為Intel(R)Core(TM)i9-10900X CPU;64.0 GB 內(nèi)存;2 個NVIDA GeForce RTX 3 090 GPU;Python-3.8,PyTorch-1.8.1,CUDA-11.3。
檢測器YOLOX,以 YOLOX-M 作為主干網(wǎng)絡(luò),COCO 預(yù)訓(xùn)練模型作為初始化權(quán)重。利用隨機(jī)梯度下降法(Stochastic Gradient,SGD)進(jìn)行優(yōu)化,動量為 0.9,權(quán)重衰減為5×10-4。初始學(xué)習(xí)率為10-4,批處理大小為64,迭代次數(shù)(Epochs)為30。特征提取器以DeiTsmall 作為主干網(wǎng)絡(luò),并加載預(yù)訓(xùn)練權(quán)重。圖像統(tǒng)一調(diào)整為224×224(像素)。采用 SGD 進(jìn)行優(yōu)化,動量為 0.9,權(quán)重衰減為10-4。初始學(xué)習(xí)率為0.005,批處理大小為64,迭代次數(shù)(Epochs)為30。訓(xùn)練完成后,在數(shù)據(jù)匹配時將利用網(wǎng)絡(luò)輸出一個 768 維的向量用于代表對象的外觀特征。
本文模型的默認(rèn)檢測分?jǐn)?shù)閾值為 0.3,對置信度超過閾值的檢測框進(jìn)行三步匹配。在特征匹配階段,若檢測框和軌跡框之間的特征相似度小于0.5,則放棄匹配。在第二與第三次匹配階段,若IoU 小于 0.5,則不予匹配。
本試驗主要使用HOTA[24](higher order tracking accuracy),MOTA(multiple object tracking accuracy)和IDF1 得分(identification F1 score)來評估跟蹤算法的質(zhì)量。HOTA 能夠綜合檢測、關(guān)聯(lián)和定位三個子指標(biāo),并且均衡展現(xiàn)三個子指標(biāo)效果。MOTA 綜合考慮漏檢,誤檢和ID 切換次數(shù),衡量檢測與跟蹤的性能。IDF1 是ID準(zhǔn)確率和ID 召回率的調(diào)和均值,相較于MOTA 更關(guān)心跟蹤目標(biāo)的時間長短。除了上述指標(biāo)之外,一些輔助指標(biāo)也被用于反映模型跟蹤性能,包括:主要跟蹤到的目標(biāo)(mostly tracked trajectories,MT)、主要丟失的目標(biāo)(mostly lost trajectories,ML)、誤檢的總數(shù)量FP(false positive)、漏檢的總數(shù)量FN(false negative)、ID 改變的總數(shù)量IDSW(ID switches)、幀率(frames per second,F(xiàn)PS)。其中,HOTA、MOTA、DF1、MT和FPS 數(shù)值越高模型性能越好,F(xiàn)P、FN、FM、IDSW和 ML 數(shù)值越低模型性能越好。
本文將PigsTrack 與其他跟蹤方法進(jìn)行了比較,首先是原文利用YOLOv3+MOSSE 跟蹤法,測試得到結(jié)果MOTA 為93.00%,IDF1 為82.05%。其次是近期備受關(guān)注的跟蹤方法:DeepSORT、OC-SORT、ByteTrack 和StrongSORT 跟蹤器。其中StrongSORT 是近期基于經(jīng)典DeepSORT,從檢測,嵌入和關(guān)聯(lián)三個方面進(jìn)行了升級的跟蹤器。為保證跟蹤方法對比的有效性,5 種跟蹤方法均利用YOLOX 進(jìn)行檢測。由表2 可知:DeepSORT、OC-SORT、ByteTrack 和StrongSORT 的HOTA 分別為78.93%、81.33%、81.87%和81.95%,MOTA 分別為98.50%、96.86%、98.05%和98.56%,IDF1 得分分別為90.04%、90.47%、97.52%和95.10%,而PigsTrack 跟蹤器的HOTA 為85.66%,MOTA 為98.59%,IDF 得分為99.57%,較于現(xiàn)有算法的最高精度,提高了3.71,0.03和2.05 個百分點,為最優(yōu)跟蹤結(jié)果;PigsTrack 跟蹤器的誤檢數(shù)量為406,少于其他跟蹤器;PigsTrack 跟蹤器的ID 改變總數(shù)量為 13,而 DeepSORT、OC-SORT、ByteTrack 和StrongSORT 的ID 改變總數(shù)量分別為82、87、32 和29 次,結(jié)果表明PigsTrack 跟蹤性能穩(wěn)定,跟蹤對象不易跟丟,突出了三步匹配的重要性。綜上所述,PigsTrack 跟蹤器的跟蹤性能指標(biāo)優(yōu)于其他跟蹤算法模型,更加適用于群養(yǎng)生豬多目標(biāo)跟蹤。
表2 跟蹤器的跟蹤結(jié)果對比Table 2 Comparison of tracking results of trackers
為比較本文跟蹤器與其他跟蹤器在實際應(yīng)用時的性能差異,圖4 展示了視頻2、8、11 和16 中豬只的跟蹤軌跡。從原始視頻觀察到,視頻2 和8 中豬只體型較小,表現(xiàn)出活躍的行為;視頻11 豬只體型稍大,豬只部分活動,部分靜臥;視頻16 中豬只體型較大,表現(xiàn)出較少的活動行為。圖4 從左到右分別為視頻2 中豬4 和豬8、視頻8 中豬2、視頻11 中豬3 和視頻16 中豬1 的活動軌跡(真實值用實線表示,當(dāng)身份跳變時軌跡用虛線表示)。
圖4 跟蹤軌跡圖Fig.4 Diagram of the trajectory
從上到下分別為真實軌跡圖、PigsTrack、DeepSORT、OC_SORT、ByteTrack 和StrongSORT 得出的軌跡圖。通過觀察圖4a、圖4c 和圖4 d 可以發(fā)現(xiàn),其他跟蹤器跟蹤的單個豬的活動軌跡部分有虛線,即ID 產(chǎn)生了跳變,跟蹤不穩(wěn)定。只有PigsTrack 能夠完整跟蹤單個豬的活動軌跡。此外,觀察圖4c 和圖4e 可以發(fā)現(xiàn)PigsTrack 所跟蹤的豬只軌跡與真實值更加吻合。綜上,本文提出的PigsTrack 跟蹤器準(zhǔn)確度高,跟蹤穩(wěn)定,可以準(zhǔn)確反映實際的運動軌跡。通過對運動軌跡準(zhǔn)確繪制,可以直觀展現(xiàn)單只豬的活力程度和健康情況,對實現(xiàn)豬場智能化養(yǎng)殖具有重要意義。
基于PigsTrack 跟蹤器的測試集視頻跟蹤結(jié)果如表3所示。從表中可以觀察到,本文使用的跟蹤器在視頻2、5、8、9、11、14 和18 的HOTA 均在81%以上,MOTA均在97%以上,IDF1 均在96%以上。此外,本文跟蹤器的跟蹤速度在單個 GPU 上測量完成。PigsTrack 的檢測跟蹤速度平均為19.84 幀/s,較數(shù)據(jù)集1 采集的視頻幀率(6 幀/s)更快。因此當(dāng)智能養(yǎng)殖場的物聯(lián)網(wǎng)搭載GPU 時,PigsTrack 跟蹤器可以在視頻低幀率的條件下拍攝來實現(xiàn)在線跟蹤。
表3 PigsTrack 模型的多目標(biāo)跟蹤試驗結(jié)果Table 3 Results of a multi-objective tracking experiment with the PigsTrack model
3.2.1 外觀特征提取網(wǎng)絡(luò)
為了驗證基于Transformer 模型的特征提取器對不同豬只的精準(zhǔn)辨別優(yōu)勢,將其與OSNet 行人重識別網(wǎng)絡(luò)在豬身份重識別數(shù)據(jù)集上進(jìn)行了對比。
圖5 展示了兩個網(wǎng)絡(luò)的注意力圖可視化結(jié)果,相較于OSNet 網(wǎng)絡(luò)。本文采用的網(wǎng)絡(luò)可以觀察到飼養(yǎng)豬的不同部位,保留更多的細(xì)節(jié)信息,來輕松區(qū)分對象。為了進(jìn)一步驗證Transformer 模型作為豬只特征提取器的優(yōu)勢,在PigsTrack 跟蹤器中,僅將特征提取器修改為OSNet網(wǎng)絡(luò),此時測試集視頻跟蹤結(jié)果的HOTA 為81.82%,低于原跟蹤器的結(jié)果,即基于Transformer 模型的特征提取器能更精準(zhǔn)的辨別不同豬只,以此來實現(xiàn)準(zhǔn)確的群養(yǎng)生豬的多目標(biāo)跟蹤。
圖5 注意力圖可視化結(jié)果對比Fig.5 Visual comparison of attention maps
由于PBVD 數(shù)據(jù)集中視頻的幀率較低,且每個視頻有2 min 的間隔時間,導(dǎo)致豬只的位置變化較大。為了驗證PigsTrack 跟蹤器能夠基于外觀信息長時間地跟蹤豬只,選擇PBVD 數(shù)據(jù)集中2019 年11 月28 日從7:00 到08:40 拍攝長達(dá)100 min 的視頻進(jìn)行試驗。圖6a~6 d 分別是PigsTrack 跟蹤結(jié)果視頻的第1 幀、第6 305 幀、第6 373 幀和第25 157 幀。
圖6 利用PigsTrack 跟蹤器實現(xiàn)長視頻跟蹤Fig.6 Long video tracking with the PigsTrack tracker
可以看出從第1 幀到第6 305 幀中的8 個跟蹤框準(zhǔn)確且穩(wěn)定,雖然在07:37:07(第6 373 幀)時豬6 的身份ID 跳變?yōu)?78,但是其余7 頭豬的身份準(zhǔn)確追蹤一直到視頻最后,時間為08:40:11(第25 157 幀)。結(jié)果表明,基于Transformer 模型的特征提取器使得PigsTrack跟蹤器魯棒性強(qiáng)、適應(yīng)性好,能夠?qū)崿F(xiàn)實際飼養(yǎng)環(huán)境的長時跟蹤。
3.2.2 遮擋恢復(fù)匹配
當(dāng)軌跡預(yù)測值與新檢測值匹配不成功時,遮擋恢復(fù)匹配利用未匹配軌跡的最后檢測值與新檢測值關(guān)聯(lián)來恢復(fù)對象,這個過程可以處理對象在合理的時間間隔內(nèi)停止或被遮擋的情況。在測試集中,將PigsTrack 跟蹤器中的遮擋恢復(fù)匹配階段刪除,其 HOTA 為84.68%,而原跟蹤器的HOTA 為85.66%,因此在跟蹤器中增加遮擋恢復(fù)匹配模塊可以增加0.98%的跟蹤效率。為了進(jìn)一步驗證遮擋恢復(fù)匹配的必要性,選擇視頻4 作為演示。由于豬只標(biāo)記隨時間變淡,此時視頻4 中豬只的外觀幾乎一致,特征匹配的優(yōu)勢減弱。面對擁擠、遮擋環(huán)境中的豬只跟蹤任務(wù),遮擋恢復(fù)匹配發(fā)揮作用。圖7a 是第341 幀,豬3 呈躺臥未被遮擋姿態(tài),圖7b 是第359 幀,豬3 被豬1遮擋消失,圖7c 和圖7 d 分別是無遮擋恢復(fù)匹配和有遮擋恢復(fù)匹配的豬3 在第367 幀的身份ID 展示??梢钥闯鰺o遮擋恢復(fù)匹配的豬只跟蹤會產(chǎn)生身份跳變,而添加遮擋恢復(fù)匹配的豬3 保持了身份ID。由于豬3 處于靜止?fàn)顟B(tài),框的位置幾乎不變,這使得恢復(fù)的檢測框位置能與遮擋之前的框位置保持幾乎一致。因此OC-SORT 中的遮擋恢復(fù)匹配在跟蹤豬圈中的豬只時具有較大優(yōu)勢。
圖7 視頻4 中豬3 被遮擋前、遮擋中與遮擋后的身份ID 展示Fig.7 Display of the identity of pig 3 before,during,and after occlusion
為驗證基于跟蹤結(jié)果的生豬個體行為識別與統(tǒng)計分析的準(zhǔn)確性,本文利用第2.1 節(jié)的數(shù)據(jù)集,標(biāo)注了4 種不同行為標(biāo)簽:站立(豬的四只腳接觸地面以支撐身體的靜立行為)[25],躺臥(豬一側(cè)肩膀直接與地面接觸的側(cè)躺,或以胸骨連同乳房接觸地面的姿勢臥地)[26],吃食(嘴接觸料槽或飼料)[27]與飲水(嘴部接觸水嘴或是水槽吸水)[28],以此來訓(xùn)練雙流3D 卷積(SlowFast)網(wǎng)絡(luò)。利用PigsTrack 跟蹤器呈現(xiàn)視頻17 的豬只日常行為跟蹤結(jié)果如圖8 所示,每一幀中的框包含豬的ID 與行為信息,圖中展現(xiàn)了豬只的站立,躺臥,吃食與飲水行為。
圖8 利用PigsTrack 跟蹤器的日常行為跟蹤結(jié)果展示Fig.8 Display of daily behavior tracking results with PigsTrack tracker
通過依次將PigsTrack、StrongSORT、ByteTrack 和OC-SORT 跟蹤器與SlowFast 網(wǎng)絡(luò)結(jié)合,實現(xiàn)豬只的跟蹤與行為識別。圖9a~9d 分別對測試集中個體豬的站立、躺臥、吃食和飲水行為的時間統(tǒng)計圖,橫軸代表豬只身份,縱軸代表行為的時長統(tǒng)計。從整體來看,PigsTrack的行為時間統(tǒng)計與真實值相近,優(yōu)于StrongSORT、ByteTrack 和OC-SORT 跟蹤器。說明PigsTrack 跟蹤器的穩(wěn)健跟蹤將對實現(xiàn)生豬個體行為地準(zhǔn)確識別更加有利。
雖然與其他跟蹤器相比,PigsTrack 跟蹤器能夠更加準(zhǔn)確、有效且連續(xù)地對群養(yǎng)生豬的日常行為進(jìn)行跟蹤與分析,但是通過量化結(jié)果分析,吃食與飲水行為的真實統(tǒng)計值為121 和55 s,而PigsTrack 跟蹤器的統(tǒng)計結(jié)果為88 和22 s,準(zhǔn)確率僅為72.7%和40.0%。通過結(jié)果視頻分析發(fā)現(xiàn)吃食與飲水行為在豬只日常行為視頻中樣本占有量少等原因,常被行為識別網(wǎng)絡(luò)漏檢或被誤檢(站立行為),使得吃食與飲水行為的統(tǒng)計時間與真實統(tǒng)計時間差距較大。于是提升時空行為檢測模型對豬只日常行為識別的精度這一任務(wù)將會在本研究的后續(xù)工作中實現(xiàn)。
為了驗證模型的泛化性能,本文增加ABVD(aggressive-behavior video)數(shù)據(jù)集[29]作為補充試驗,此數(shù)據(jù)集記錄了哈爾濱鴻福養(yǎng)豬場中某豬圈大白豬和長白豬混群后72 h 內(nèi)的視頻數(shù)據(jù)(圖10),原始視頻圖像分辨率為2 560×1 440。考慮到ABVD 數(shù)據(jù)集視頻的采樣長度較短(采樣長度3 s),不利于驗證模型的跟蹤性能,本文將原始的ABVD 視頻序列根據(jù)其時間戳進(jìn)行拼接,形成連續(xù)、較長時間的視頻序列(長度約為30~36 s),以用于后續(xù)的研究。利用4 個視頻序列(共3 658 幀)組成數(shù)據(jù)集2。數(shù)據(jù)集2 中選擇2 個視頻用于訓(xùn)練、剩余2 個視頻用于測試,跟蹤結(jié)果見表4。
表4 跟蹤器的跟蹤結(jié)果對比Table 4 Comparison of tracking results of trackers
圖10 ABVD 數(shù)據(jù)集的畫面展示Fig.10 Display of the picture of ABVD dataset
將PigsTrack 與DeepSORT、OC_SORT、ByteTrack 和StrongSORT 跟蹤方法做比較。PigsTrack 跟蹤器在數(shù)據(jù)集2 中HOTA、MOTA 和IDF1 分別為69.14%、94.82%和90.11%,相對于現(xiàn)有算法的最高精度,提高了5.33、0.57 和8.60 個百分點。雖然均優(yōu)于其他4 個跟蹤器的跟蹤效果,但與PigsTrack 跟蹤器在PBVD 數(shù)據(jù)集中的表現(xiàn)相比存在一定的差距。觀察結(jié)果視頻得出原因:首先數(shù)據(jù)集2 中的視頻擁有具有劇烈爭斗行為的豬只,豬只在爭斗過程中運動速度過快導(dǎo)致運動模糊,扭打時伴隨遮擋現(xiàn)象[30],并且運動模式復(fù)雜;其次豬只背部無標(biāo)記外觀提取更加困難,最后豬圈拍攝畫面不全,當(dāng)豬處于邊緣位置時存在漏檢。最終跟蹤器在跟蹤時容易出現(xiàn)錯誤結(jié)果。于是若需要跟蹤爭斗行為的豬只,還需要將試驗環(huán)境與跟蹤器做進(jìn)一步的優(yōu)化。
本文提出PigsTrack 跟蹤器,利用YOLOX 實現(xiàn)對豬只的檢測,并使用基于Transformer 模型的身份重識別網(wǎng)絡(luò)提取具有區(qū)分度的外觀特征,同時,還引入了遮擋恢復(fù)匹配的方法,以實現(xiàn)對豬只的跟蹤。主要結(jié)論如下:
1)基于PBVD 數(shù)據(jù)集選擇視頻自制數(shù)據(jù)集來訓(xùn)練與測試豬場視頻的跟蹤效果。試驗顯示,PigsTrack 跟蹤器在數(shù)據(jù)集上的HOTA(higher order tracking accuracy)為85.66%,MOTA(multiple object tracking accuracy)為98.59%,IDF1(identification F1 score)得分為99.57%,高于DeepSORT、OC-SORT、ByteTrack 和StrongSORT方法。PigsTrack 跟蹤器的所有跟蹤性能指標(biāo)均優(yōu)于其他跟蹤算法模型。
2)通過注意力圖可視化結(jié)果,驗證了基于Transformer模型的特征提取器可以保留更多的細(xì)節(jié)信息,有利于提取更有區(qū)分度的外觀特征,從而實現(xiàn)對長視頻中豬只的精準(zhǔn)跟蹤。并且通過有遮擋和無遮擋恢復(fù)匹配的跟蹤結(jié)果對比,進(jìn)一步驗證了在跟蹤密集環(huán)境中的豬只時,添加遮擋恢復(fù)匹配可以帶來更穩(wěn)定的跟蹤。
3)將PigsTrack 跟蹤器與Slowfast 網(wǎng)絡(luò)相結(jié)合,用于對視頻中豬只的站立、躺臥、吃食和飲水行為進(jìn)行識別。試驗對比結(jié)果表明,相較于其他跟蹤器,該方法能夠更準(zhǔn)確、有效且連續(xù)地識別、統(tǒng)計群養(yǎng)生豬的日常行為。
4)使用ABVD 數(shù)據(jù)集制作了數(shù)據(jù)集2 進(jìn)行了補充試驗,驗證模型在群養(yǎng)生豬多目標(biāo)跟蹤任務(wù)中的泛化性能。PigsTrack 跟蹤器的HOTA、MOTA 和IDF1 得分分別為69.14%、94.82%和90.11%,仍優(yōu)于其他方法,但與PBVD 數(shù)據(jù)集相比略有差距。
因此,針對爭斗行為的豬只,需要進(jìn)一步優(yōu)化試驗環(huán)境和跟蹤器。本文模型能夠有效應(yīng)對外觀相似和遮擋交互等挑戰(zhàn),在跟蹤穩(wěn)定性、準(zhǔn)確性和行為統(tǒng)計方面表現(xiàn)出色,為生豬養(yǎng)殖領(lǐng)域的研究和實際應(yīng)用提供了有價值的指導(dǎo)。