視頻目標(biāo)追蹤算法是機(jī)器視覺中一項(xiàng)很實(shí)用重要的算法,視頻目標(biāo)追蹤算法應(yīng)用場景很廣,比如智能監(jiān)控、機(jī)器人視覺系統(tǒng)、虛擬現(xiàn)實(shí)(人體跟蹤)、醫(yī)學(xué)診斷(細(xì)胞狀態(tài)跟蹤)等。本文由滴普科技2048團(tuán)隊(duì)AI產(chǎn)品部算法工程師朱曉麗介紹基于機(jī)器視覺的典型多目標(biāo)追蹤算法應(yīng)用實(shí)踐。
一、概 述
目標(biāo)追蹤算法分為單目標(biāo)追蹤SOT(Single-Object Track)和多目標(biāo)追蹤MOT(Multi-Object Track)[1][2]。在單目標(biāo)跟蹤中,使用給定的初始目標(biāo)位置,在后續(xù)視頻幀中對給定的物體進(jìn)行位置預(yù)測。而多目標(biāo)跟蹤算法,大部分都是不考慮初始目標(biāo)位置的,目標(biāo)可自行消失與產(chǎn)生。對目前小組項(xiàng)目而言只需用到MOT,所以本文提到的追蹤默認(rèn)為MOT。
MOT的分類
1)TBD(Tracking-by-Detection)與DFT(Detection-Free Tracking)也即基于檢測的多目標(biāo)跟蹤與基于目標(biāo)外形的先驗(yàn)知識無需檢測器的多目標(biāo)跟蹤。TBD是目前學(xué)界業(yè)界研究的主流。 2) 傳統(tǒng)的跟蹤方式有在線跟蹤(Online)與離線跟蹤(Offline)兩種。在線跟蹤算法中,只能使用當(dāng)前幀及之前幀的信息來進(jìn)行當(dāng)前幀的跟蹤。而在離線跟蹤算法中則沒有了這個(gè)限制,對每一幀的預(yù)測,都可以使用整個(gè)視頻的信息,這樣更容易獲得一個(gè)全局最優(yōu)解。兩種方式各有優(yōu)劣,一般視應(yīng)用場合而定,離線跟蹤算法的效果一般會優(yōu)于在線跟蹤算法。而介于這兩者之間,還有一種稱之為接近在線的多目標(biāo)跟蹤算法(NOMT),即可以部分利用未來幀的信息。 在跟蹤結(jié)果可修改性方面,在線跟蹤是不允許修改以往的跟蹤結(jié)果的。因?yàn)橐坏┬薷?,算法自然就不再符合在線跟蹤原則,從而不能利用未來幀,進(jìn)而變成了Near-Online或者Offline的跟蹤方式。 需要特別注意,在線跟蹤不等于Real-Time實(shí)時(shí)跟蹤,實(shí)時(shí)跟蹤一定屬于在線跟蹤的,但絕大部分在線跟蹤算法速度還太慢,不足以支持實(shí)時(shí)處理的要求. 尤其是應(yīng)用了深度學(xué)習(xí)的算法,往往需要大量運(yùn)算,對實(shí)時(shí)處理有較大壓力。
MOT常用評價(jià)標(biāo)準(zhǔn)
表1.常用評價(jià)指標(biāo)
此外,還有兩種評價(jià)方式CLEAR MOT Metrics與ID Scores,這里不做詳細(xì)介紹。
MOT的難點(diǎn)
MOT最常用的類別是Tracking-By-Detection與Online,對應(yīng)的算法處理步驟:
圖1 MOT算法處理步驟
其中,有兩個(gè)難點(diǎn):1)遮擋,這也是ID交換和軌跡分段的主要原因;2)兩個(gè)軌跡非??拷琁D容易匹配不準(zhǔn),出現(xiàn)錯(cuò)位或丟失。目前所有目標(biāo)追逐算法都圍繞著這兩大難點(diǎn)進(jìn)行優(yōu)化,優(yōu)化的方向圍繞著這四個(gè)步驟,如:運(yùn)用Private Dataset,挑選合適檢測模型,提升檢測精度;特征提取不局限于一般的CNN,還有Siamese Network等網(wǎng)絡(luò);特征間的相似度,不再是簡單的Distance Metric,也開始運(yùn)用CNN、RNN、LSTM等;數(shù)據(jù)關(guān)聯(lián)匹配除了傳統(tǒng)經(jīng)典的Hungarian Algorithm,也可以當(dāng)作圖優(yōu)化的問題處理。常用的效果較好的有以下幾種(詳細(xì)介紹見“二”節(jié)):
-
Sort(Simple nline and real time tracking)
-
Deep Sort(Deep simple online and realtime tracking)
-
FairMot(A simple baseline for multi-object tracking)
-
Graphnn Multi-object Trachking。(后面簡寫為Graphnn-mot)
二、典型的追蹤算法介紹
1. Sort和Deep SortSort和Deep Sort[9]是經(jīng)典的追蹤算法之一,算法原理流程圖如下:
圖2.Deep Sort算法的簡單流程圖
如上圖,算法模塊,根據(jù)目前MOT常用的算法步驟:a.檢測, b.特征提取、軌跡預(yù)測, c.計(jì)算相似度,d.數(shù)據(jù)匹配,Deep Sort算法就這四個(gè)步驟,按序簡介涉及到的核心知識點(diǎn)五個(gè):Setection、ReID model、Kalman Filter、iou與余弦/馬氏距離、Hungarian Algorithm。 Detection:常用的檢測網(wǎng)絡(luò),如Faster Rcnn、Yolov4、SSD等,可根據(jù)實(shí)際項(xiàng)目對精度或時(shí)間的要求挑選。本文復(fù)現(xiàn)時(shí),上面的幾種網(wǎng)絡(luò)都有嘗試,源代碼使用了商湯的mmdetection框架下的cascade-rcnn,但項(xiàng)目考慮時(shí)間和精度,最終使用了Yolov4[3]作為檢測來源。 ReID model:源代碼使用了多重粒度網(wǎng)絡(luò)(Mutiple Granularity Network),是以Resnet50作為backbone,以Softmax_2048分支作為id特征??紤]到2048維特征過大,數(shù)據(jù)關(guān)聯(lián)時(shí),時(shí)間會比較長,所以一般項(xiàng)目上會采用MobileNetv2[4]作為主干網(wǎng)絡(luò),id特征維度可以下降到751,減少運(yùn)算量。 Kalman Filter:卡爾曼濾波,預(yù)測confirmed id在下一幀的中心點(diǎn)位置以及box的size。iou與余弦距離:用于計(jì)算數(shù)據(jù)匹配的代價(jià)矩陣。1-iou的值作為box間的距離值,余弦距離函數(shù)值作為id特征值間的距離。 Hungarian Algorithm:匈牙利匹配算法用于目標(biāo)預(yù)測與目標(biāo)檢測的關(guān)聯(lián)匹配,確定目標(biāo)的軌跡。 相比之下,Sort算法比起Deep sort算法少了ReID model與余弦距離判斷,所以ID切換的過于頻繁,精度要低很多。速度幾乎只取決于Detection模型的預(yù)測速度。如果對速度要求很高的,可以考慮用sort算法。2.FairMotFairMot追蹤算法[10],算法處理流程圖如下:
圖3.FairMot算法的簡單流程圖
FairMot算法重點(diǎn)突破:a. 比起之前兩步(先檢測后Re-ID)的追蹤算法,FairMot完成檢測與Re-ID共享網(wǎng)絡(luò)參數(shù),減少算法推理時(shí)間,速度大幅度提升。 b. 比起之前單步的追蹤算法JDE[12],存在的一些不足,如:一個(gè)物體可能被多個(gè)anchor負(fù)責(zé)并進(jìn)行檢測,或?qū)嶋H物體的中心可能與負(fù)責(zé)對該物體進(jìn)行檢測的anchor中心有偏差,都會導(dǎo)致id頻繁變換。Fairmot針對這些不足,不用anchor-based的檢測方式,以anchor-free目標(biāo)檢測范式代替。 涉及到的核心知識點(diǎn):一個(gè)有效簡潔的網(wǎng)絡(luò)結(jié)構(gòu)DLA34、Kalman Filter、iou與余弦距離、Hungarian Algorithm。下面詳細(xì)介紹DLA34網(wǎng)絡(luò),至于Kalman,Distance Metrixes, Hungarian Algorithm同Deep Sort的內(nèi)容一致,這里不多做解釋。 FairMot旨在將檢測與Re-ID揉在一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)里,且需要是anchor-free的目標(biāo)檢測方式,所以DLA34網(wǎng)絡(luò)結(jié)構(gòu)必需要預(yù)估目標(biāo)中心點(diǎn)的位置和對應(yīng)目標(biāo)的features。FairMot的網(wǎng)絡(luò)結(jié)構(gòu)圖如下:
圖4.FairMot網(wǎng)絡(luò)結(jié)構(gòu)及檢測示意圖
DLA34的backbone是Resnet34[5],Resnet網(wǎng)絡(luò)結(jié)構(gòu)是里程碑似的出現(xiàn),比起一般的plain network,Resnet直接使用stride=2的down sample并且用global average pool層替換全連接層,保持了網(wǎng)絡(luò)的復(fù)雜度,并有效解決了深度網(wǎng)絡(luò)的退化問題。 DLA34[6]是對Resnet34加強(qiáng),除了Down Sample,還有Up Sample,有點(diǎn)類似FPN[7]的網(wǎng)絡(luò)結(jié)構(gòu),跨層添加features,使得多層融合,跨層stride=4。 heatmap head:用于預(yù)估目標(biāo)中心位置,使用了與focal loss類似的損失函數(shù),詳情推導(dǎo)見源文。 box offset head:目的是使得預(yù)估的目標(biāo)位置更精準(zhǔn),輔助目標(biāo)中心位置的預(yù)估。box size head:對每個(gè)預(yù)估了的目標(biāo)中心,預(yù)估其對應(yīng)的box的長和寬。offset與size兩個(gè)頭加入在一個(gè)l1 loss函數(shù)里面。 Re-ID branch:一個(gè)分類任務(wù),旨在對每個(gè)預(yù)估出的目標(biāo)中心產(chǎn)生64維的features,通過features用于后續(xù)計(jì)算前后幀的目標(biāo)的相似度。使用了通用的softmax損失函數(shù)。 3.Graphnn-motGraphnn-mot算法[11],簡單流程圖如下:
圖5.Graphnn-mot算法的處理流程
Graphnn-mot是基于圖神經(jīng)網(wǎng)絡(luò)[8]的離線MOT,利用圖結(jié)構(gòu)同時(shí)執(zhí)行特征提取和數(shù)據(jù)關(guān)聯(lián)匹配,提出了時(shí)間感知信息傳遞網(wǎng)絡(luò)對節(jié)點(diǎn)和連接邊信息的更新。 涉及到的核心知識點(diǎn):圖構(gòu)造、特征編碼、信息傳遞、軌跡預(yù)測。 圖構(gòu)造:對需檢測的所有圖片(圖片之間要有時(shí)間關(guān)聯(lián),最好是視頻),進(jìn)行目標(biāo)檢測。構(gòu)建圖,其中節(jié)點(diǎn)對應(yīng)檢測目標(biāo),邊對應(yīng)檢測目標(biāo)之間的連接。對圖中的每條邊引入了一個(gè)二元變量,如果某些邊連接了屬于同一條跟蹤軌跡且在同一條跟蹤軌跡上是時(shí)間連續(xù)的節(jié)點(diǎn),那么其標(biāo)簽為1,否則為0。一個(gè)節(jié)點(diǎn)不會屬于超過一個(gè)跟蹤軌跡。論文提出直接學(xué)習(xí)預(yù)測圖中的哪條邊被激活,即邊上的二元變量的最終值,為此將這個(gè)任務(wù)視為邊上的二分類任務(wù),標(biāo)簽就是二元變量值y。 特征編碼:在邊界框圖像上應(yīng)用一個(gè)卷積神經(jīng)網(wǎng)絡(luò),初始化節(jié)點(diǎn)的外觀特征嵌入。對于每一條邊也就是不同幀的每一對檢測,我們計(jì)算一個(gè)具有編碼了他們的邊界框之間的相對大小,位置以及時(shí)間差的特征的向量。然后將其輸入到一個(gè)多層感知器中得到邊的幾何嵌入。 信息傳遞:我們在整個(gè)圖上執(zhí)行了一系列的信息傳遞步驟。對于每一輪的信息傳遞,節(jié)點(diǎn)會與他們的連接邊分享外觀信息,邊會與他們的伴隨節(jié)點(diǎn)分享幾何信息。最后,能夠獲得節(jié)點(diǎn)和邊的更新嵌入信息,其包含了依賴于整個(gè)圖結(jié)構(gòu)的高階信息。軌跡預(yù)測:根據(jù)最后的所有邊嵌入預(yù)測的連續(xù)的二元結(jié)果,獲得最終的跟蹤軌跡。
三、實(shí)際算法測試分析
本文對Deep Sort、FairMot、Graphnn-mot算法進(jìn)行橫向測試,并使用追蹤經(jīng)典指標(biāo)評估(見表1),基于MOTChallenge數(shù)據(jù)集實(shí)際測試進(jìn)行評估,評估結(jié)果如下表(測試環(huán)境詳見附錄1):
表2.追蹤算法實(shí)際測試的時(shí)間和精度(精度含義見表1)
如表所示,無論時(shí)間還是精度,Farimot更有優(yōu)勢。影響精度的原因主要是兩個(gè): 1. 檢測目標(biāo)聚集,被遮擋,ID switches頻率太高。三種追蹤算法都有出現(xiàn)這類情況,嚴(yán)重程度graphnn mot >deep sort>fairmot,可見下面擁擠場景例圖:
組圖1:擁擠場景中的graphnn mot追蹤算法
組圖2:擁擠場景中的deep sort追蹤算法
組圖3:擁擠場景中的farimot追蹤算法
如上圖紅上衣人為例,graphnn mot對應(yīng)的id號為:無->15->20,id號連續(xù)變換;deep sort對應(yīng)的id號:32->32->48,id號部分變換,只在最聚集的地方變換了id號;fairmot對應(yīng)的id號:30->30->30,id號一直很穩(wěn)定。 2. 目標(biāo)檢測精度不高,漏檢與誤檢。主要是graphnn mot算法有明顯漏檢,可見下面例圖:
組圖4:graphnn追蹤算法目標(biāo)檢測漏檢示例圖
對于目前最常使用的追蹤算法,都是tracking-by detection,所以目標(biāo)檢測的精度直接影響追蹤的精度。
四、總結(jié)
對于跟蹤模塊,目前來說更好的解決方案,比如使用MOTDT[13],此算法在DeepSort的基礎(chǔ)上加入了軌跡評分的機(jī)制,目前像FairMOT、JDE使用的跟蹤模塊都是MOTDT,從精度和速度上此算法表現(xiàn)都是較優(yōu)的。圖神經(jīng)網(wǎng)絡(luò)在追蹤上的運(yùn)用,還處于剛起步階段。屬于離線跟蹤算法之一,而且目標(biāo)檢測與ReID檢測結(jié)果沒有進(jìn)行融合,所以速度方面,沒有太大優(yōu)勢。對于實(shí)際項(xiàng)目來說,對綜合目標(biāo)跟蹤效果影響最大的因素是目標(biāo)檢測的精確度,相對于公共數(shù)據(jù)集,當(dāng)使用實(shí)際項(xiàng)目的數(shù)據(jù)集時(shí),使用的目標(biāo)檢測精度提升后,實(shí)際跟蹤效果能達(dá)到比較理想的水平。
-
算法
+關(guān)注
關(guān)注
23文章
4615瀏覽量
93005 -
機(jī)器視覺
+關(guān)注
關(guān)注
162文章
4383瀏覽量
120414 -
模型
+關(guān)注
關(guān)注
1文章
3255瀏覽量
48898
原文標(biāo)題:基于機(jī)器視覺的典型多目標(biāo)追蹤算法應(yīng)用實(shí)踐
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論