在科學(xué)研究中,從方法論上來講,都應(yīng)“先見森林,再見樹木”。當(dāng)前,人工智能學(xué)術(shù)研究方興未艾,技術(shù)迅猛發(fā)展,可謂萬木爭榮,日新月異。對(duì)于AI從業(yè)者來說,在廣袤的知識(shí)森林中,系統(tǒng)梳理脈絡(luò),才能更好地把握趨勢。
最近做了一些多目標(biāo)跟蹤方向的調(diào)研,因此把調(diào)研的結(jié)果以圖片加文字的形式展現(xiàn)出來,希望能幫助到入門這一領(lǐng)域的同學(xué)。也歡迎大家和我討論關(guān)于這一領(lǐng)域的任何問題。
01
相關(guān)方向
這些是我所了解的多目標(biāo)跟蹤(MOT)的一些相關(guān)方向。其中單目標(biāo)跟蹤(VOT/SOT)、目標(biāo)檢測(detection)、行人重識(shí)別(Re-ID)都是非常熱門的方向。而偏視頻的相關(guān)方向就比較冷門。而且今年五月DukeMTMC因?yàn)殡[私問題不再提供MTMCT的數(shù)據(jù)了,MTMCT的研究也是舉步維艱。
02
核心步驟
MOT算法的通常工作流程:
(1)給定視頻的原始幀;
(2)運(yùn)行對(duì)象檢測器以獲得對(duì)象的邊界框;
(3)對(duì)于每個(gè)檢測到的物體,計(jì)算出不同的特征,通常是視覺和運(yùn)動(dòng)特征;
(4)之后,相似度計(jì)算步驟計(jì)算兩個(gè)對(duì)象屬于同一目標(biāo)的概率;
(5)最后,關(guān)聯(lián)步驟為每個(gè)對(duì)象分配數(shù)字ID。
因此絕大多數(shù)MOT算法無外乎就這四個(gè)步驟:
①檢測?
②特征提取、運(yùn)動(dòng)預(yù)測?
③相似度計(jì)算?
④數(shù)據(jù)關(guān)聯(lián)。
其中影響最大的部分在于檢測,檢測結(jié)果的好壞對(duì)于最后指標(biāo)的影響是最大的。
但是,多目標(biāo)追蹤的研究重點(diǎn)又在相似度計(jì)算和數(shù)據(jù)關(guān)聯(lián)這一塊。所以就有一個(gè)很大的問題:你設(shè)計(jì)出更好的關(guān)聯(lián)算法可能就提升了0.1個(gè)點(diǎn),但別人用一些針對(duì)數(shù)據(jù)集的trick消除了一些漏檢可能就能漲好幾個(gè)點(diǎn)。所以研究更好的數(shù)據(jù)關(guān)聯(lián)的回報(bào)收益很低。因此多目標(biāo)追蹤這一領(lǐng)域雖然工業(yè)界很有用,但學(xué)術(shù)界里因?yàn)橹笜?biāo)數(shù)據(jù)集的一些原因,入坑前一定要三思。
03
評(píng)價(jià)指標(biāo)
關(guān)于評(píng)價(jià)指標(biāo):
第一個(gè)是傳統(tǒng)的標(biāo)準(zhǔn),現(xiàn)在已經(jīng)沒人用了,就不介紹了。
第二個(gè)是06年提出的CLEAR MOT?,F(xiàn)在用的最多的就是MOTA。但是這個(gè)指標(biāo)FN、FP的權(quán)重占比很大,更多衡量的是檢測的質(zhì)量,而不是跟蹤的效果。
第三個(gè)是16年提出的ID scores。因?yàn)槎际腔谄ヅ涞闹笜?biāo),所以能更好的衡量數(shù)據(jù)關(guān)聯(lián)的好壞。
04
數(shù)據(jù)集
數(shù)據(jù)集用的最多的是MOTChallenge,專注于行人追蹤的。
第二個(gè)KITTI的是針對(duì)自動(dòng)駕駛的數(shù)據(jù)集,有汽車也有行人,在MOT的論文里用的很少。
還有一些其他比較老的數(shù)據(jù)集現(xiàn)在都不用了。
15年的都是采集的老的數(shù)據(jù)集的視頻做的修正。
16年的是全新的數(shù)據(jù)集,相比于15年的行人密度更高、難度更大。特別注意這個(gè)DPM檢測器,效果非常的差,全是漏檢和誤檢。
17年的視頻和16年一模一樣,只是提供了三個(gè)檢測器,相對(duì)來說更公平。也是現(xiàn)在論文的主流數(shù)據(jù)集。
19年的是針對(duì)特別擁擠情形的數(shù)據(jù)集,只有CVPR19比賽時(shí)才能提交。
這個(gè)是MOT16公開檢測器上的結(jié)果??梢钥吹綇?7年開始,MOTA就漲的很慢了。關(guān)注一下這個(gè)幀率有20Hz的算法MOTDT也是我后面要講的一個(gè)。
這個(gè)是MOT16私有檢測器上的結(jié)果??梢钥吹?strong>檢測器性能的好壞對(duì)于結(jié)果的影響非常重要。SOTA算法換了私有檢測器后性能直接漲了快20個(gè)點(diǎn)。
這個(gè)是MOT17公開檢測器上這幾年比較突出的算法。注意因?yàn)檫@個(gè)數(shù)據(jù)集用了三個(gè)檢測器,所以FP、FN這些指標(biāo)也都幾乎是16數(shù)據(jù)集的三倍。
05
SORT和DeepSORT
關(guān)鍵算法
從這兩個(gè)工業(yè)界關(guān)注度最高的算法說起。
SORT作為一個(gè)粗略的框架,核心就是兩個(gè)算法:卡爾曼濾波和匈牙利匹配。
卡爾曼濾波分為兩個(gè)過程:預(yù)測和更新。預(yù)測過程:當(dāng)一個(gè)小車經(jīng)過移動(dòng)后,且其初始定位和移動(dòng)過程都是高斯分布時(shí),則最終估計(jì)位置分布會(huì)更分散,即更不準(zhǔn)確;更新過程:當(dāng)一個(gè)小車經(jīng)過傳感器觀測定位,且其初始定位和觀測都是高斯分布時(shí),則觀測后的位置分布會(huì)更集中,即更準(zhǔn)確。
匈牙利算法解決的是一個(gè)分配問題。SK-learn庫的linear_assignment_和scipy庫的linear_sum_assignment都實(shí)現(xiàn)了這一算法,只需要輸入cost_matrix即代價(jià)矩陣就能得到最優(yōu)匹配。不過要注意的是這兩個(gè)庫函數(shù)雖然算法一樣,但給的輸出格式不同。具體算法步驟也很簡單,是一個(gè)復(fù)雜度??的算法。
DeepSORT的優(yōu)化主要就是基于匈牙利算法里的這個(gè)代價(jià)矩陣。它在IOU Match之前做了一次額外的級(jí)聯(lián)匹配,利用了外觀特征和馬氏距離。
外觀特征就是通過一個(gè)Re-ID的網(wǎng)絡(luò)提取的,而提取這個(gè)特征的過程和NLP里詞向量的嵌入過程(embedding)很像,所以后面有的論文也把這個(gè)步驟叫做嵌入(起源應(yīng)該不是NLP,但我第一次接觸embedding是從NLP里)。然后是因?yàn)闅W氏距離忽略空間域分布的計(jì)算結(jié)果,所以增加里馬氏距離作為運(yùn)動(dòng)信息的約束。
SORT
這個(gè)SORT的流程圖非常重要,可以看到整體可以拆分為兩個(gè)部分,分別是匹配過程和卡爾曼預(yù)測加更新過程,都用灰色框標(biāo)出來了。一定要把整個(gè)流程弄明白。后面的多目標(biāo)追蹤的大框架基本都由此而來。
關(guān)鍵步驟:軌跡卡爾曼濾波預(yù)測→ 使用匈牙利算法將預(yù)測后的tracks和當(dāng)前幀中的detecions進(jìn)行匹配(IOU匹配)?→ 卡爾曼濾波更新
對(duì)于沒有匹配上的軌跡,也不是馬上就刪掉了,有個(gè)T_lost的保存時(shí)間,但SORT里把這個(gè)時(shí)間閾值設(shè)置的是1,也就是說對(duì)于沒匹配上的軌跡相當(dāng)于直接刪了。
關(guān)于這點(diǎn)論文里的原話是:
首先,恒定速度模型不能很好地預(yù)測真實(shí)的動(dòng)力學(xué),其次,我們主要關(guān)注的是幀到幀的跟蹤,其中對(duì)象的重新識(shí)別超出了本文的范圍。
這篇文章的機(jī)翻在《SORT》論文翻譯
http://www.harlek.cn/2019/12/06/sort-lun-wen-fan-yi/
DeepSORT
這是DeepSORT算法的流程圖,和SORT基本一樣,就多了級(jí)聯(lián)匹配(Matching Cascade)和新軌跡的確認(rèn)(confirmed)。
這篇文章的機(jī)翻在《DeepSORT》論文翻譯
http://www.harlek.cn/2019/12/06/deepsort-lun-wen-fan-yi/
關(guān)鍵步驟:軌跡卡爾曼濾波預(yù)測→ 使用匈牙利算法將預(yù)測后的tracks和當(dāng)前幀中的detecions進(jìn)行匹配(級(jí)聯(lián)匹配和IOU匹配) → 卡爾曼濾波更新
級(jí)聯(lián)匹配是核心,就是紅色部分,DeepSORT的絕大多數(shù)創(chuàng)新點(diǎn)都在這里面,具體過程看下一張圖。?
關(guān)于為什么新軌跡要連續(xù)三幀命中才確認(rèn)?個(gè)人認(rèn)為有這樣嚴(yán)格的條件和測試集有關(guān)系。因?yàn)闇y試集給的檢測輸入非常的差,誤檢有很多,因此軌跡的產(chǎn)生必須要更嚴(yán)格的條件。
級(jí)聯(lián)匹配流程圖里上半部分就是特征提取和相似度估計(jì),也就是算這個(gè)分配問題的代價(jià)函數(shù)。主要由兩部分組成:代表運(yùn)動(dòng)模型的馬氏距離和代表外觀模型的Re-ID特征。
級(jí)聯(lián)匹配流程圖里下半部分數(shù)據(jù)關(guān)聯(lián)作為流程的主體。為什么叫級(jí)聯(lián)匹配,主要是它的匹配過程是一個(gè)循環(huán)。從missing age=0的軌跡(即每一幀都匹配上,沒有丟失過的)到missing age=30的軌跡(即丟失軌跡的最大時(shí)間30幀)挨個(gè)的和檢測結(jié)果進(jìn)行匹配。也就是說,對(duì)于沒有丟失過的軌跡賦予優(yōu)先匹配的權(quán)利,而丟失的最久的軌跡最后匹配。
論文關(guān)于參數(shù)λ(運(yùn)動(dòng)模型的代價(jià)占比)的取值是這么說的:
在我們的實(shí)驗(yàn)中,我們發(fā)現(xiàn)當(dāng)相機(jī)運(yùn)動(dòng)明顯時(shí),將λ= 0設(shè)置是一個(gè)合理的選擇。
因?yàn)橄鄼C(jī)抖動(dòng)明顯,卡爾曼預(yù)測所基于的勻速運(yùn)動(dòng)模型并不work,所以馬氏距離其實(shí)并沒有什么作用。但注意也不是完全沒用了,主要是通過閾值矩陣(Gate Matrix)對(duì)代價(jià)矩陣(Cost Matrix)做了一次閾值限制。
關(guān)于DeepSORT算法的詳細(xì)代碼解讀我比較推薦:目標(biāo)跟蹤初探(DeepSORT)
https://zhuanlan.zhihu.com/p/90835266
但關(guān)于卡爾曼濾波的公式講的不是很詳細(xì),具體推導(dǎo)可以看看?Kalman Filter 卡爾曼濾波
http://www.harlek.cn/2019/12/02/qia-er-man-lu-bo/
改進(jìn)策略
看到這個(gè)DeepSORT的流程圖不知道大家可以想到什么優(yōu)化的地方?其實(shí)有幾個(gè)點(diǎn)是很容易想到的。
第一點(diǎn),把Re-ID網(wǎng)絡(luò)和檢測網(wǎng)絡(luò)融合,做一個(gè)精度和速度的trade off;
第二點(diǎn),對(duì)于軌跡段來說,時(shí)間越長的軌跡是不是更應(yīng)該得到更多的信任,不僅僅只是級(jí)聯(lián)匹配的優(yōu)先級(jí),由此可以引入軌跡評(píng)分的機(jī)制;
第三點(diǎn),從直覺上來說,檢測和追蹤是兩個(gè)相輔相成的問題,良好的追蹤可以彌補(bǔ)檢測的漏檢,良好的檢測可以防止追蹤的軌道飄逸,用預(yù)測來彌補(bǔ)漏檢這個(gè)問題在DeepSORT里也并沒有考慮;
第四點(diǎn),DeepSORT里給馬氏距離也就是運(yùn)動(dòng)模型設(shè)置的系數(shù)為0,也就是說在相機(jī)運(yùn)動(dòng)的情況下線性速度模型并不work,所以是不是可以找到更好的運(yùn)動(dòng)模型。
06
最新進(jìn)展
這是最近比較新的一些方法。
工業(yè)界青睞的算法在學(xué)術(shù)界其實(shí)并不重視,一方面是因?yàn)?strong>開源的原因,另一方面可以看到頂會(huì)的算法都不是注重速度的,通常用了很復(fù)雜的模塊和trick來提升精度。
而且這些trick不是一般意義的trick了,是針對(duì)這個(gè)數(shù)據(jù)集的或者說針對(duì)糟糕檢測器的一些trick, 對(duì)于實(shí)際應(yīng)用幾乎沒有幫助。
第一篇論文是基于DeepSORT改進(jìn)的,它的創(chuàng)新點(diǎn)在于引入了軌跡評(píng)分機(jī)制,時(shí)間越久的軌跡可信度就越高,基于這個(gè)評(píng)分就可以把軌跡產(chǎn)生的預(yù)測框和檢測框放一起做一個(gè)NMS,相當(dāng)于是用預(yù)測彌補(bǔ)了漏檢。
第二篇論文是今年9月份發(fā)在arxiv上的一篇論文,它的工作是把檢測網(wǎng)絡(luò)和嵌入網(wǎng)絡(luò)結(jié)合起來,追求的是速度和精度的trade off。
MOTDT
這是剛才列舉的第一篇論文(MOTDT)的流程圖,大概和DeepSORT差不多。這個(gè)圖畫的比較簡單,其實(shí)在NMS之前有個(gè)基于SqueezeNet的區(qū)域選擇網(wǎng)絡(luò)R-FCN和軌跡評(píng)分的機(jī)制。這兩個(gè)東西的目的就是為了產(chǎn)生一個(gè)統(tǒng)一檢測框和預(yù)測框的標(biāo)準(zhǔn)置信度,作為NMS的輸入。
這篇文章的翻譯在《Real-Time Multiple People Tracking With Deeply Learned Candidate Selection And Person Re-ID》論文翻譯
http://www.harlek.cn/2019/12/02/real-time-multiple-people-tracking-with-deeply-learned-candidate-selection-and-person-re-id-lun-wen-fan-yi/
JDE
這是剛才第二篇論文(JDE)里的結(jié)構(gòu)圖。這個(gè)方法是基于YOLOv3和MOTDT做的。它網(wǎng)絡(luò)前面都和YOLOv3一樣的,主要就是在特征圖里多提取了一個(gè)嵌入(embedding)向量,采取的是類似于交叉熵的triplet loss。因?yàn)槭嵌嗳蝿?wù)學(xué)習(xí),這篇論文還用了一篇18年的論文提出來的自動(dòng)學(xué)習(xí)損失權(quán)重方案:通過學(xué)習(xí)一組輔助參數(shù)自動(dòng)地對(duì)非均勻損失進(jìn)行加權(quán)。最后的結(jié)果是精度上差不太多,F(xiàn)PS高了很多。
這篇文章的翻譯在?《Towards Real-Time Multi-Object Tracking》論文翻譯
http://www.harlek.cn/2019/11/27/towards-real-time-multi-object-tracking-lun-wen-fan-yi/
07
未來展望
最后用多目標(biāo)追蹤未來的一些思考作為結(jié)尾,這句話是最近的一篇關(guān)于多目標(biāo)追蹤的綜述里的。
它在最后提出對(duì)未來的方向里有這樣一句話,用深度學(xué)習(xí)來指導(dǎo)關(guān)聯(lián)問題。其實(shí)現(xiàn)在基于檢測的多目標(biāo)追蹤都是檢測模塊用深度學(xué)習(xí),Re-ID模塊用深度學(xué)習(xí),而最核心的數(shù)據(jù)關(guān)聯(lián)模塊要用深度學(xué)習(xí)來解決是很困難的?,F(xiàn)在有一些嘗試是用RNN,但速度慢、效果不好,需要走的路都還很長。
我個(gè)人覺得短期內(nèi)要解決實(shí)際問題,還是從Re-ID的方面下手思考怎樣提取更有效的特征會(huì)更靠譜,用深度學(xué)習(xí)的方法來處理數(shù)據(jù)關(guān)聯(lián)不是短時(shí)間能解決的。
參考文獻(xiàn):
[1] Alex Bewley, Zongyuan Ge, Lionel Ott, Fabio Ramos, and Ben Upcroft. Simple online and realtime tracking. In2016 IEEE International Conference on Image Processing (ICIP), pages 3464–3468. IEEE, 2016.
[2] Nicolai Wojke, Alex Bewley, and Dietrich Paulus. Simple online and realtime tracking with a deep associationmetric. In2017 IEEE International Conference on Image Processing (ICIP), pages 3645–3649. IEEE, 2017.
[3] Chen Long, Ai Haizhou, Zhuang Zijie, and Shang Chong. Real-time multiple people tracking with deeplylearned candidate selection and person re-identification. InICME, 2018.
[4] Zhongdao Wang, Liang Zheng, Yixuan Liu, Shengjin Wang. Towards Real-Time Multi-Object Tracking. arXiv preprint arXiv:1909.12605
[5] Gioele Ciaparrone, Francisco Luque Sánchez, Siham Tabik, Luigi Troiano, Roberto Tagliaferri, Francisco Herrera. Deep Learning in Video Multi-Object Tracking: A Survey. arXiv preprint arXiv:1907.12740
編輯:黃飛
?
評(píng)論
查看更多