涂淑琴 劉曉龍 梁 云 張 宇 黃 磊 湯寅杰
(1.華南農(nóng)業(yè)大學(xué)數(shù)學(xué)與信息學(xué)院, 廣州 510642; 2.華南農(nóng)業(yè)大學(xué)電子工程學(xué)院, 廣州 510642)
豬只的健康情況決定著生豬養(yǎng)殖業(yè)的發(fā)展與經(jīng)濟(jì)效益,多數(shù)生豬疾病的臨床或亞臨床體征表現(xiàn)之前常伴隨行為異常[1-2],故對(duì)豬只的運(yùn)動(dòng)、飲食等行為的監(jiān)測(cè)有助于判斷豬只健康情況。目前人工監(jiān)測(cè)是豬場(chǎng)的主要管理方式,但需要大量勞動(dòng)力并且難以實(shí)現(xiàn)長(zhǎng)期持續(xù)觀察,借助無(wú)線射頻技術(shù)(Radio frequency identification,RFID)的監(jiān)測(cè)可避免人工監(jiān)測(cè)的缺陷,但易對(duì)豬只造成刺激。信息技術(shù)手段已成為現(xiàn)代農(nóng)業(yè)發(fā)展的重要引擎,通過(guò)借助計(jì)算機(jī)視覺(jué)技術(shù),可以實(shí)現(xiàn)低成本、無(wú)接觸地自動(dòng)監(jiān)測(cè)豬只[3],實(shí)現(xiàn)生豬智慧養(yǎng)殖。
國(guó)內(nèi)外學(xué)者在生豬自動(dòng)監(jiān)測(cè)方面的研究可分為兩類,分別為豬只行為識(shí)別和豬只跟蹤。在豬只行為識(shí)別中,主要采用傳統(tǒng)圖像處理與深度學(xué)習(xí)的方法。ZHU等[4]利用閾值分割和形態(tài)學(xué)處理等機(jī)器視覺(jué)技術(shù),實(shí)現(xiàn)非接觸地對(duì)豬只飲水行為進(jìn)行識(shí)別。李菊霞等[5]針對(duì)豬舍環(huán)境下豬只飲食行為自動(dòng)化檢測(cè)程度較低的問(wèn)題,提出了一種基于 YOLO v4 的豬只飲食行為檢測(cè)模型。ALAMEER等[6]基于YOLO v2與Faster R-CNN監(jiān)測(cè)豬只的姿態(tài)與飲水行為,其無(wú)需傳感器或?qū)€(gè)體識(shí)別即可監(jiān)測(cè)豬只行為。高云等[7]提出使用3D CONV 對(duì)群養(yǎng)豬侵略性行為進(jìn)行識(shí)別,可為豬場(chǎng)養(yǎng)殖環(huán)境中豬只侵略性行為檢測(cè)提供參考。在豬只跟蹤方面,近年來(lái)也有很多研究者開(kāi)展相關(guān)工作。XIAO等[8]通過(guò)顏色信息識(shí)別豬只,并通過(guò)分析二值圖像中連接區(qū)域消除噪聲,根據(jù)DT-ACR關(guān)聯(lián)規(guī)則對(duì)豬進(jìn)行跟蹤。SUN等[9]提出一種多通道彩色特征自適應(yīng)融合算法,并利用目標(biāo)豬的輪廓信息實(shí)時(shí)更新比例,提升在目標(biāo)形變與尺度變化下的跟蹤效果。ZHANG等[10]利用分層數(shù)據(jù)關(guān)聯(lián)算法將基于卷積神經(jīng)網(wǎng)絡(luò)的檢測(cè)器與相關(guān)濾波器的跟蹤器結(jié)合,實(shí)現(xiàn)單個(gè)豬只跟蹤。張偉等[11]基于CenterNet 設(shè)計(jì)斷奶仔豬目標(biāo)檢測(cè)模型,結(jié)合DeepSORT算法[12]實(shí)現(xiàn)斷奶仔豬的多目標(biāo)跟蹤,改善豬只外觀高度相似與遮擋情況下的跟蹤效果。
目前,視頻監(jiān)控技術(shù)由于其設(shè)備價(jià)格低廉和實(shí)現(xiàn)簡(jiǎn)單的優(yōu)點(diǎn),已廣泛應(yīng)用于生豬的行為識(shí)別與跟蹤研究。但是,在真實(shí)養(yǎng)殖場(chǎng)景下,由于光照變化與豬群的密集遮擋,容易造成跟蹤中目標(biāo)ID 頻繁跳變;同時(shí),很多研究只是對(duì)豬只的行為進(jìn)行識(shí)別[13-15]或跟蹤[16-17],算法獲取的豬只信息難以滿足現(xiàn)代化生豬養(yǎng)殖業(yè)的要求?;诖?,本文將行為識(shí)別與多目標(biāo)跟蹤進(jìn)行融合,并改進(jìn)DeepSORT算法中的軌跡生成與匹配過(guò)程,提出基于YOLO v5s的改進(jìn)DeepSORT算法。通過(guò)將YOLO v5s檢測(cè)算法得到的行為類別信息引入DeepSORT跟蹤算法,實(shí)現(xiàn)跟蹤中的行為識(shí)別,使得在跟蹤中算法可以獲取到目標(biāo)的行為信息;同時(shí),針對(duì)特定場(chǎng)景下豬只數(shù)量穩(wěn)定不變的特點(diǎn),改進(jìn)DeepSORT算法中的軌跡生成與匹配過(guò)程,提升跟蹤中豬只ID的穩(wěn)定性;最終在真實(shí)群養(yǎng)環(huán)境下實(shí)現(xiàn)穩(wěn)定ID的豬只行為跟蹤,以期為無(wú)接觸式自動(dòng)監(jiān)測(cè)生豬提供技術(shù)支持。
實(shí)驗(yàn)數(shù)據(jù)從文獻(xiàn)[18]的數(shù)據(jù)集中選擇,篩選保留15段豬只移動(dòng)較多的有效視頻,每段視頻為60 s,每秒為5幀。將視頻分辨率裁剪為2 688像素×1 012像素,在視頻段中只保留同一豬舍下的豬只。使用DarkLabel軟件對(duì)視頻段進(jìn)行標(biāo)注,構(gòu)建3個(gè)數(shù)據(jù)集分別用于訓(xùn)練目標(biāo)檢測(cè)模塊、重識(shí)別模塊和驗(yàn)證行為跟蹤算法效果,這3個(gè)數(shù)據(jù)集中均包含白天與夜間場(chǎng)景、豬只擁擠與稀疏場(chǎng)景、豬只活動(dòng)頻繁與較少場(chǎng)景。
選取真實(shí)群養(yǎng)環(huán)境下4段不同條件的視頻段作為行為跟蹤數(shù)據(jù)集,用于驗(yàn)證算法效果,記為序號(hào)01~04,如表1所示。
表1 行為跟蹤數(shù)據(jù)集Tab.1 Behavior tracking dataset
其余視頻段利用ffmpeg工具分割成圖像,使用腳本將圖像與標(biāo)注信息分別構(gòu)建目標(biāo)檢測(cè)數(shù)據(jù)集和重識(shí)別數(shù)據(jù)集,其中目標(biāo)檢測(cè)數(shù)據(jù)集將豬只分為躺臥、站立、飲食和其他行為4種類別。目標(biāo)檢測(cè)數(shù)據(jù)集共3 300幅圖像,按照比例7∶2∶1隨機(jī)劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。重識(shí)別數(shù)據(jù)集包含137頭豬只,平均每頭豬只300幅圖像,按照比例7∶3隨機(jī)劃分為訓(xùn)練集和測(cè)試集。
為提升模型泛化能力,使用左右翻轉(zhuǎn)、上下翻轉(zhuǎn)、改變色彩屬性的數(shù)據(jù)增廣技術(shù),擴(kuò)充生豬的目標(biāo)檢測(cè)與重識(shí)別訓(xùn)練數(shù)據(jù)。其中,對(duì)圖像進(jìn)行左右翻轉(zhuǎn)與上下翻轉(zhuǎn)可以擴(kuò)大數(shù)據(jù)集的規(guī)模,以獲得理想的訓(xùn)練效果;改變圖像色彩屬性,如隨機(jī)改變圖像的色調(diào)、飽和度和明度可以模擬光照情況變化對(duì)圖像的干擾,在一定程度上消除光環(huán)境的影響[19]。最終目標(biāo)檢測(cè)訓(xùn)練數(shù)據(jù)集擴(kuò)充到4 620幅圖像,重識(shí)別訓(xùn)練數(shù)據(jù)集中每頭豬只擴(kuò)充到420幅圖像。生豬的目標(biāo)檢測(cè)與重識(shí)別圖像數(shù)據(jù)增廣后樣例見(jiàn)圖1。
圖1 數(shù)據(jù)增廣后結(jié)果Fig.1 Results after data augmentation
采用YOLO v5s檢測(cè)器結(jié)合改進(jìn)DeepSORT算法實(shí)現(xiàn)豬只行為跟蹤,如圖2所示,首先圖像輸入YOLO v5s目標(biāo)檢測(cè)器,得到檢測(cè)結(jié)果;然后改進(jìn)DeepSORT算法基于卡爾曼濾波與匈牙利算法對(duì)前后兩幀之間目標(biāo)進(jìn)行匹配,生成跟蹤軌跡;最后輸出行為跟蹤圖像。
圖2 行為跟蹤算法流程圖Fig.2 Flow chart of behavior tracking algorithm
在基于檢測(cè)的跟蹤算法中,目標(biāo)檢測(cè)的效果對(duì)跟蹤算法的效果起著至關(guān)重要的作用。當(dāng)前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法中,主要可劃分為One-stage和Two-stage兩類。在One-stage算法中占主流的是YOLO[20-23]系列等。Two-stage算法中占主流的是R-CNN[24]、Fast R-CNN[25]、Faster R-CNN[26]等。One-stage與Two-stage算法各有優(yōu)劣,前者在檢測(cè)速度上有明顯的優(yōu)勢(shì),后者在檢測(cè)精度有更好的效果。YOLO v5s算法可以兼顧速度與精度的要求,本文將其作為目標(biāo)檢測(cè)器。YOLO v5s網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,該算法主要包括輸入端、主干網(wǎng)絡(luò)、頸部和輸出端4部分。其中,在輸入端對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,采用如Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)圖像縮放和自適應(yīng)錨框計(jì)算等技術(shù)實(shí)現(xiàn);主干網(wǎng)絡(luò)主要由Focus層、CONV層、C3層、SPP層等結(jié)構(gòu)組成;頸部包含特征金字塔網(wǎng)絡(luò)(Feature pyramid networks,F(xiàn)PN)[27]、路徑聚合網(wǎng)絡(luò)(Path aggregation network,PAN)[28];輸出端主要是在3個(gè)不同大小的特征圖上預(yù)測(cè)不同尺寸的目標(biāo)。
圖3 YOLO v5s 網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network structure of YOLO v5s
DeepSORT算法是在SORT[29]基礎(chǔ)上引入重識(shí)別模型,通過(guò)外觀信息與運(yùn)動(dòng)信息增強(qiáng)匈牙利算法的匹配效果,減少ID切換的數(shù)量;其通過(guò)卡爾曼濾波器和匈牙利算法,分別處理跟蹤問(wèn)題的運(yùn)動(dòng)預(yù)測(cè)和數(shù)據(jù)關(guān)聯(lián)部分。
2.2.1軌跡的狀態(tài)估計(jì)
2.2.2匹配問(wèn)題
DeepSORT算法結(jié)合運(yùn)動(dòng)信息度量與外觀信息度量,使用匈牙利算法解決檢測(cè)框與軌跡的匹配問(wèn)題。對(duì)于運(yùn)動(dòng)信息度量,算法表示為
(1)
式中d(1)(i,j)——第j個(gè)檢測(cè)框和第i個(gè)軌跡預(yù)測(cè)得到的邊界框的馬氏距離
dj——第j個(gè)檢測(cè)框
yi——第i個(gè)軌跡預(yù)測(cè)后的邊界框
Si——第i個(gè)軌跡預(yù)測(cè)得到的在當(dāng)前測(cè)量空間的協(xié)方差矩陣
馬氏距離用于過(guò)濾可能性極低的匹配,當(dāng)d(1)(i,j)小于指定的閾值,認(rèn)為匹配成功。
對(duì)于外觀信息度量,引入重識(shí)別模型,用于提取目標(biāo)的外觀信息。重識(shí)別模型網(wǎng)絡(luò)結(jié)構(gòu)如表2所示,主要包括1個(gè)卷積層、1個(gè)最大池化層、8個(gè)殘差層和1個(gè)平均池化層。
表2 重識(shí)別模型網(wǎng)絡(luò)結(jié)構(gòu)Tab.2 Network structure of re-identification model
對(duì)于外觀信息度量,算法表示為
(2)
式中d(2)(i,j)——第j個(gè)檢測(cè)框與第i個(gè)軌跡的最小余弦距離
rj——第j個(gè)檢測(cè)框dj相應(yīng)的外觀描述符,設(shè)置‖rj‖=1
Ri——第i個(gè)軌跡的外觀信息倉(cāng)庫(kù),保存最新100條目標(biāo)成功匹配的外觀描述符
當(dāng)d(2)(i,j)小于指定閾值時(shí),認(rèn)為匹配成功。
馬氏距離提供基于運(yùn)動(dòng)目標(biāo)可能的位置信息,余弦距離通過(guò)考慮外觀信息可以在目標(biāo)發(fā)生遮擋重疊情況下恢復(fù)ID,為提升跟蹤效果,將馬氏距離與余弦距離結(jié)合作為最終度量,公式為
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)
(3)
式中ci,j——第j個(gè)檢測(cè)框與第i個(gè)軌跡的關(guān)聯(lián)程度
λ——權(quán)重系數(shù)
沿用原算法將λ設(shè)置為0,即運(yùn)動(dòng)信息度量用于限制明顯不可行的匹配,關(guān)聯(lián)矩陣中只使用外觀信息度量計(jì)算。
2.3.1跟蹤中的行為識(shí)別
在原DeepSORT跟蹤算法的基礎(chǔ)上,將豬只行為類別添加到目標(biāo)跟蹤的軌跡中,其實(shí)現(xiàn)效果如圖4所示,圖4a中左上角為目標(biāo)豬只的ID編號(hào),是原算法效果;圖4b中左上角為目標(biāo)的行為類別和ID編號(hào),是改進(jìn)后效果。首先在YOLO v5s目標(biāo)檢測(cè)算法中將檢測(cè)到的豬只行為類別分為躺臥、站立、飲食和其他4類;然后將行為類別作為DeepSORT算法的輸入,存儲(chǔ)在目標(biāo)豬只軌跡的參數(shù)中,以此實(shí)現(xiàn)豬只跟蹤過(guò)程中的行為識(shí)別。
圖4 行為識(shí)別效果Fig.4 Effect of behavior recognition
2.3.2改進(jìn)匹配過(guò)程與軌跡生成
DeepSORT算法在跟蹤實(shí)驗(yàn)中,隨著視頻幀增長(zhǎng),同一豬只目標(biāo)易被分配不同的ID,導(dǎo)致ID最大值大幅超出真實(shí)的豬只目標(biāo)數(shù)量。主要原因是目標(biāo)豬只發(fā)生運(yùn)動(dòng)或遮擋重疊現(xiàn)象時(shí),檢測(cè)結(jié)果無(wú)法與原軌跡匹配,導(dǎo)致未匹配的檢測(cè)結(jié)果生成新軌跡。基于上述問(wèn)題,針對(duì)豬舍特定場(chǎng)景,對(duì)算法的匹配過(guò)程與軌跡生成進(jìn)行改進(jìn)。
由于豬舍為封閉場(chǎng)景,無(wú)目標(biāo)新增或減少,為提升匹配效果,增加第2輪交并比匹配對(duì)未匹配的檢測(cè)框進(jìn)行處理。改進(jìn)后的匹配過(guò)程:第1輪交并比匹配完成初步匹配,第2輪放寬交并比最大距離的限制來(lái)盡可能使未匹配的檢測(cè)框與軌跡匹配成功。
在該場(chǎng)景下通過(guò)改進(jìn)軌跡生成的方式來(lái)限制ID增長(zhǎng)。具體實(shí)現(xiàn)如下:封閉場(chǎng)景下目標(biāo)總數(shù)是穩(wěn)定不變的,則ID最高數(shù)量是已知的,動(dòng)態(tài)存儲(chǔ)檢測(cè)結(jié)果中的目標(biāo)總數(shù),將其計(jì)為ID極大值,由于檢測(cè)結(jié)果有一定概率出現(xiàn)誤檢漏檢現(xiàn)象,ID極大值由最近3幀中檢測(cè)目標(biāo)數(shù)量的平均數(shù)決定,若當(dāng)前生成軌跡ID超過(guò)ID極大值,不生成新軌跡;若未超過(guò),則生成新軌跡。
改進(jìn)后算法匹配過(guò)程如圖5所示,其中虛線框部分為算法改進(jìn)內(nèi)容。軌跡初始化為未確認(rèn)態(tài),滿足連續(xù)3幀都成功匹配,將未確認(rèn)態(tài)轉(zhuǎn)化為確認(rèn)態(tài)。
圖5 匹配過(guò)程流程圖Fig.5 Flow chart of matching process
算法步驟如下:
(1)首先將檢測(cè)結(jié)果與卡爾曼濾波預(yù)測(cè)的確認(rèn)態(tài)軌跡進(jìn)行級(jí)聯(lián)匹配;級(jí)聯(lián)匹配采用匈牙利算法,對(duì)運(yùn)動(dòng)信息與外觀信息的關(guān)聯(lián)矩陣求解,從而匹配檢測(cè)框與軌跡。
(2)未確認(rèn)態(tài)軌跡、級(jí)聯(lián)匹配中未匹配的軌跡和未匹配的檢測(cè)框進(jìn)行第1輪交并比匹配;交并比匹配采用匈牙利算法,對(duì)交并比關(guān)聯(lián)矩陣求解,從而匹配檢測(cè)框與軌跡。
(3)進(jìn)行第2輪交并比匹配,將第1輪交并比匹配中未匹配的軌跡和未匹配檢測(cè)框進(jìn)行第2輪最大交并比距離匹配;判斷未匹配的檢測(cè)框是否滿足軌跡生成條件,滿足則生成軌跡,不滿足則不做處理;最終判斷未匹配的軌跡是否滿足刪除條件,滿足則刪除軌跡,不滿足則繼續(xù)參與匹配。
(4)當(dāng)前幀匹配過(guò)程結(jié)束后執(zhí)行卡爾曼濾波更新。
針對(duì)豬舍中群養(yǎng)豬的行為跟蹤進(jìn)行3個(gè)實(shí)驗(yàn),分別是:目標(biāo)檢測(cè)實(shí)驗(yàn)訓(xùn)練YOLO v5s 檢測(cè)器;重識(shí)別實(shí)驗(yàn)訓(xùn)練DeepSORT算法中重識(shí)別模塊;在生豬行為跟蹤數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),測(cè)試與分析改進(jìn)DeepSORT算法的性能。
實(shí)驗(yàn)采用Windows 10平臺(tái),編程語(yǔ)言為Python 3.6,模型框架為Pytorch 1.7.1,硬件環(huán)境為AMD Ryzen5 2600X處理器、64 GB內(nèi)存、NVDIA GeForce GTX TITAN X顯卡。
目標(biāo)檢測(cè)實(shí)驗(yàn)采用YOLO v5s模型,檢測(cè)生豬躺臥、站立、飲食和其他行為,其他行為描述豬只行為轉(zhuǎn)換過(guò)程的中間狀態(tài)。實(shí)驗(yàn)不采用預(yù)訓(xùn)練模型,輸入圖像尺寸為640像素×640像素,優(yōu)化器為隨機(jī)梯度下降法(Stochastic gradient descent,SGD),初始學(xué)習(xí)率為0.01,批量大小為64,模型迭代200次。
為驗(yàn)證檢測(cè)效果,選取精確率(Precision)、召回率(Recall)、調(diào)和平均數(shù)(F1-score,F(xiàn)1)、平均精度均值(Mean average precision,mAP)對(duì)模型進(jìn)行綜合評(píng)價(jià)。
YOLO v5s在測(cè)試集上的精確率-召回率曲線如圖6所示,檢測(cè)器對(duì)豬只的4種行為均有較好的檢測(cè)效果。
圖6 精確率-召回率曲線Fig.6 Precision-recall curves
算法在測(cè)試集上全部結(jié)果如表3所示。在豬只的躺臥、站立、飲食行為上檢測(cè)效果較好,其平均精確率(AP)均達(dá)到99%以上,說(shuō)明檢測(cè)器對(duì)于豬舍場(chǎng)景中大多數(shù)行為的檢測(cè)效果較好,而在其他行為上的召回率為95.2%,說(shuō)明模型在檢測(cè)豬只行為轉(zhuǎn)
表3 目標(biāo)檢測(cè)實(shí)驗(yàn)結(jié)果Tab.3 Experimental results of object detection %
換過(guò)程中存在少量漏檢情況。綜合豬只的各個(gè)行為結(jié)果,檢測(cè)器在處理豬舍場(chǎng)景行為檢測(cè)問(wèn)題上效果良好,可為跟蹤階段建立最優(yōu)的輸入。
利用YOLO v5s算法對(duì)不同條件下群養(yǎng)生豬圖像進(jìn)行測(cè)試,結(jié)果如圖7所示。圖7a為白天、豬只較少和遮擋情況下檢測(cè)效果,算法對(duì)于豬只較少的情況能達(dá)到優(yōu)越的檢測(cè)效果;圖7b為夜晚、豬只較少和擁擠的情況下檢測(cè)效果,在擁擠重疊情況下,算法仍保持著精準(zhǔn)的檢測(cè)效果;圖7c為白天、豬只較多和擁擠的情況下檢測(cè)效果,算法也具有精準(zhǔn)的檢測(cè)效果;圖7d為夜晚、豬只較多和擁擠的情況下檢測(cè)效果,算法在豬只嚴(yán)重?fù)頂D情況下保持著較強(qiáng)的性能,無(wú)漏檢。不同場(chǎng)景下YOLO v5s算法都能準(zhǔn)確識(shí)別豬只行為。
圖7 YOLO v5s算法的群養(yǎng)生豬檢測(cè)結(jié)果 Fig.7 Detection results of group-housed pigs based on YOLO v5s algorithm
實(shí)驗(yàn)使用Market-1501[30]數(shù)據(jù)集上預(yù)訓(xùn)練得到的權(quán)重文件,為提升對(duì)生豬的重識(shí)別效果,在本文數(shù)據(jù)集上重新訓(xùn)練重識(shí)別模型,批量大小為256,迭代100次,其余參數(shù)沿用原算法。
重識(shí)別模型可以提取出豬只具有區(qū)分度的特征,實(shí)現(xiàn)不同幀中同一豬只的重新識(shí)別,使用Top-1準(zhǔn)確率評(píng)價(jià)模型效果,其表示模型預(yù)測(cè)概率最大結(jié)果的正確總數(shù)占所有樣本的比率,值越接近1說(shuō)明模型提取特征能力越強(qiáng),即重識(shí)別效果越好。
圖8為重識(shí)別模型的Top-1準(zhǔn)確率曲線,在迭代25次后,曲線趨于平穩(wěn),此時(shí)模型基本達(dá)到收斂,迭代100次后Top-1準(zhǔn)確率在測(cè)試集上結(jié)果為99.88%,此時(shí)重識(shí)別模型能夠較好地提取出目標(biāo)的表觀特征,從而準(zhǔn)確地實(shí)現(xiàn)豬只的重識(shí)別。
圖8 重識(shí)別模型的Top-1準(zhǔn)確率曲線Fig.8 Top-1 accuracy curves of re-identification model
3.3.1行為跟蹤算法評(píng)價(jià)指標(biāo)
選用5個(gè)指標(biāo)評(píng)價(jià)行為跟蹤算法的效果:身份編號(hào)切換次數(shù)(Identity switch,IDS),跟蹤目標(biāo)ID發(fā)生改變的次數(shù),值越小表示跟蹤穩(wěn)定性越好。識(shí)別平均數(shù)比率(Identification F1,IDF1)是識(shí)別精確率與識(shí)別召回率的調(diào)和平均數(shù),用于評(píng)價(jià)跟蹤算法的穩(wěn)定性,值越大說(shuō)明算法越能長(zhǎng)時(shí)間地對(duì)某個(gè)目標(biāo)進(jìn)行準(zhǔn)確地跟蹤。多目標(biāo)跟蹤準(zhǔn)確率(Multiple object tracking accuracy,MOTA),同時(shí)考慮誤報(bào)、漏報(bào)和IDS,衡量跟蹤算法在檢測(cè)目標(biāo)和保持軌跡時(shí)的性能,與目標(biāo)檢測(cè)精度無(wú)關(guān),值越大表示算法的性能越好。多目標(biāo)跟蹤精確度(Multiple object tracking precision,MOTP),量化檢測(cè)器的定位精度越大表示檢測(cè)器的精度越高。幀率(Frames per second,F(xiàn)PS)是算法每秒處理的視頻幀數(shù),值越大表明處理速度越快。
3.3.2行為跟蹤實(shí)驗(yàn)結(jié)果與分析
為驗(yàn)證改進(jìn)算法對(duì)性能的提升,沿用原算法的參數(shù)設(shè)置,利用生豬行為跟蹤數(shù)據(jù)集測(cè)試改進(jìn)DeepSORT算法,改進(jìn)前后實(shí)驗(yàn)結(jié)果如表4所示。
表4 改進(jìn)前后實(shí)驗(yàn)結(jié)果Tab.4 Experimental results before and after improvement
在IDS方面,改進(jìn)DeepSORT算法為33,較改進(jìn)前的204,降低了83.8%,特別是測(cè)試視頻01,改進(jìn)算法對(duì)該測(cè)試視頻的IDS為0,即不發(fā)生ID切換,說(shuō)明改進(jìn)算法對(duì)跟蹤場(chǎng)景條件良好(如豬只較少)的情況下效果顯著。在IDF1方面,改進(jìn)算法為89.2%,較原算法提升了16.9個(gè)百分點(diǎn),在所有測(cè)試視頻段均有明顯提升,說(shuō)明改進(jìn)部分在不同場(chǎng)景條件下可以明顯提升跟蹤算法的穩(wěn)定性。在MOTA方面,改進(jìn)算法為91.9%,較改進(jìn)前提升了1.0個(gè)百分點(diǎn),改進(jìn)算法對(duì)測(cè)試視頻01、02、03的處理均優(yōu)于原算法,說(shuō)明在大多數(shù)場(chǎng)景條件下改進(jìn)后算法均能提升跟蹤準(zhǔn)確率。在MOTP方面與FPS方面,改進(jìn)前后算法基本維持不變。綜上,改進(jìn)算法在跟蹤準(zhǔn)確率與穩(wěn)定性方面顯著提升。
改進(jìn)前后DeepSORT算法在白天、豬群稀疏、豬只活動(dòng)頻繁場(chǎng)景(視頻段01)下跟蹤結(jié)果如圖9所示,圖9a中豬只最大ID為20,而圖9b中豬只最大ID穩(wěn)定在7,可以看出在豬只劇烈運(yùn)動(dòng)的情況下,原算法跟蹤中ID頻繁切換;圖9c中原算法最大ID已經(jīng)增長(zhǎng)到55,而圖9d中改進(jìn)算法最大ID依舊穩(wěn)定在7,無(wú)ID切換,跟蹤性能優(yōu)異,且可以準(zhǔn)確識(shí)別全部豬只的行為。
圖9 改進(jìn)前后DeepSORT算法跟蹤結(jié)果(視頻段01)Fig.9 Tracking results of DeepSORT algorithm before and after improvement (video segment 01)
改進(jìn)前后DeepSORT算法在白天、豬群擁擠、豬只活動(dòng)較少場(chǎng)景(視頻段02)下跟蹤結(jié)果如圖10所示,在豬只發(fā)生嚴(yán)重遮擋重疊情況下,改進(jìn)前后算法均出現(xiàn)少量目標(biāo)丟失,圖10a與圖10b中豬只最大ID均為 16;圖10c中原算法最大ID已經(jīng)增長(zhǎng)到57,而圖10d中改進(jìn)算法最大ID穩(wěn)定在16,可以看出改進(jìn)算法可以大幅抑制ID切換,在豬只嚴(yán)重密集擁擠情況下仍可以實(shí)現(xiàn)良好跟蹤,并且可以識(shí)別到大部分豬只的行為。
圖10 改進(jìn)前后DeepSORT算法跟蹤結(jié)果(視頻段02)Fig.10 Tracking results of DeepSORT algorithm before and after improvement (video segment 02)
改進(jìn)前后DeepSORT算法在夜晚、豬群擁擠、豬只活動(dòng)頻繁場(chǎng)景(視頻段04)下跟蹤結(jié)果如圖11所示,圖11a與圖11b中豬只最大ID均為16,圖11c與圖11d為第246幀中算法對(duì)比結(jié)果,光照條件較弱與豬群發(fā)生嚴(yán)重遮擋導(dǎo)致原算法在跟蹤中出現(xiàn)大量ID切換,而改進(jìn)算法能有效抑制ID切換,表明在復(fù)雜環(huán)境下改進(jìn)算法仍有良好的跟蹤效果,并且可以準(zhǔn)確識(shí)別到大部分豬只行為。
圖11 改進(jìn)前后DeepSORT算法跟蹤結(jié)果(視頻段04)Fig.11 Tracking results of DeepSORT algorithm before and after improvement (video segment 04)
綜上,改進(jìn)DeepSORT算法可以有效抑制ID切換,在復(fù)雜環(huán)境中仍有效,可以良好穩(wěn)定地跟蹤群養(yǎng)生豬并準(zhǔn)確識(shí)別其行為。
(1)在YOLO v5s檢測(cè)算法基礎(chǔ)上,將檢測(cè)結(jié)果中行為信息引入DeepSORT算法,并針對(duì)豬舍特定場(chǎng)景改進(jìn)DeepSORT算法中的軌跡生成與匹配過(guò)程,提出了改進(jìn)DeepSORT算法。
(2)實(shí)驗(yàn)結(jié)果表明,YOLO v5s目標(biāo)檢測(cè)實(shí)驗(yàn)的mAP為99.3%,F(xiàn)1值為98.7%;生豬重識(shí)別實(shí)驗(yàn)的Top-1準(zhǔn)確率達(dá)到99.88%;在跟蹤方面,改進(jìn)DeepSORT算法的MOTA為91.9%,IDF1為89.2%,IDS為33, MOTA和IDF1比原算法分別提升了1.0、16.9個(gè)百分點(diǎn),IDS下降了83.8%。
(3)所構(gòu)建群養(yǎng)生豬行為跟蹤算法可以滿足實(shí)際養(yǎng)殖環(huán)境中的需要,能夠?yàn)闊o(wú)接觸式的生豬自動(dòng)監(jiān)測(cè)提供技術(shù)支持。