智慧交通day02-车流量检测实现02:多目标追踪
1.多目標跟蹤分類
多目標跟蹤,即MOT(Multi-Object Tracking),也就是在一段視頻中同時跟蹤多個目標。MOT主要應用在安防監控和自動駕駛等領域中。?
1.1 初始化方法
多目標跟蹤,即MOT(Multi-Object Tracking)問題中并不是所有目標都會在第一幀出現,也并不是所有目標都會出現在每一幀。那如何對出現的目標進行初始化,可以作為跟蹤算法的分類表針。常見的初始化方法分為兩大類,一個是Detection-Based-Tracking(DBT),一個是Detection-Free-Tracking(DFT)。下圖比較形象地說明了兩類算法的區別。
-
DBT
DBT的方式就是典型的tracking-by-detection模式,即先檢測目標,然后將目標關聯進入跟蹤軌跡中。那么就存在兩個問題,第一,該跟蹤方式非常依賴目標檢測器的性能,第二,目標檢測的實質是分類和回歸,即該跟蹤方式只能針對特定的目標類型,如:行人、車輛、動物。DBT則是目前業界研究的主流。
-
DFT
DFT是單目標跟蹤領域的常用初始化方法,即每當新目標出現時,人為告訴算法新目標的位置,這樣做的好處是target free,壞處就是過程比較麻煩,存在過多的交互,所以DBT相對來說更受歡迎。
1.2 處理模式
多目標跟蹤,即MOT(Multi-Object Tracking)也存在著不同的處理模式,Online和Offline兩大類,其主要區別在于是否用到了后續幀的信息。下圖形象解釋了Online與Offline跟蹤的區別。
-
Online Tracking
Online Tracking是對視頻幀逐幀進行處理,當前幀的跟蹤僅利用過去的信息。
-
Offline Tracking
Offline Tracking利用前后視頻幀的信息對當前幀進行目標跟蹤,這種方式只適用于視頻,如果應用于攝像頭,則會有滯后效應,通常采用時間窗方式進行處理,以節省內存和加速。
2.運動模型
為了簡化多目標跟蹤的難度,我們引入運動模型類簡化求解過程,運動模型捕捉目標的動態行為,它估計目標在未來幀中的潛在位置,從而減少搜索空間。在大多數情況下,假設目標在現實中是平緩運動的,那么在圖像空間也是如此。對于車輛的運動,大致可分為線性和非線性兩種運動:
- 線性運動:線性運動模型是目前最主流的模型,即假設目標的運動屬性平穩(速度,加速度,位置);
- 非線性運動:雖然線性運動模型比較常用,但由于存在它解決不了的問題,非線性運動模型隨之誕生。它可以使tracklets間運動相似度計算得更加準確。
3.跟蹤方法
多目標跟蹤中基于神經網絡的算法,端到端的算法并不多,主要還在實驗室的刷榜階段,模型復雜,速度慢,追蹤結果也不好,主要給介紹以下兩種主流的算法:
3.1 基于Kalman和KM算法的后端優化算法
該類算法能達到實時性,但依賴于檢測算法效果要好,特征區分要好(輸出最終結果的好壞依賴于較強的檢測算法,而基于卡爾曼加匈牙利匹配的追蹤算法作用在于能夠輸出檢測目標的id,其次能保證追蹤算法的實時性),這樣追蹤效果會好,id切換少,其代表性的算法是SORT/DeepSORT。
SORT 是一種實用的多目標跟蹤算法,引入了線性速度模型與卡爾曼濾波來進行位置預測,在無合適匹配檢測框的情況下,使用運動模型來預測物體的位置。
匈牙利算法是一種尋找二分圖的最大匹配的算法,在多目標跟蹤問題中可以簡單理解為尋找前后兩幀的若干目標的匹配最優解的一種算法。
而卡爾曼濾波可以看作是一種運動模型,用來對目標的軌跡進行預測,并且使用確信度較高的跟蹤結果進行預測結果的修正。
多目標追蹤一般接在目標檢測后。在工業界目標檢測采用比較多的是YOLO檢測網絡,單階段式,速度快,精度不差,部署在NV的平臺幀率可以達到30fps以上。
所以要實現目標檢測代碼和多目標追蹤代碼集成的任務,需要先將兩者的框架統一。即先實現目標檢測網絡,檢測的輸出結果主要是將檢測框的位置信息輸入到多目標追蹤算法中。
3.2 基于多線程的單目標跟蹤的多目標跟蹤算法
這類算法特點是跟蹤效果會很好,因為其為每一類物體都單獨分配了一個跟蹤器。但該算法對目標尺度變化要求較大,參數調試需要合理,同時該算法極耗cpu資源,實時性不高,代表算法是利用KCF進行目標跟蹤。
多目標追蹤本質上是多個目標同時運動的問題,所以有提出將單目標跟蹤器引入到多目標追蹤的問題,為每一個目標分配一個跟蹤器,然后間接地使用匹配算法來修正那些跟蹤失敗或新出現的目標。代表性的單目標跟蹤算法為核相關濾波算法(KCF),在精度和速度上能夠同時達到很高的水平,是當時單目標跟蹤最優秀的算法之一,后來的很多單目標跟蹤算法都是基于此做的改進。
實際應用過程中會為每個目標分配一個KCF跟蹤器并采用多線程的方式來組織這些跟蹤器。同時因為實際硬件條件的限制,不可能提供強大的計算力資源,會采用檢測器與跟蹤器交替進行的跟蹤策略。由于檢測的幀率不高,使得跟蹤的維持效果出現滯后或框飄的現象較為嚴重,實用性不大。
總結:
1.多目標跟蹤,即MOT(Multi-Object Tracking),在一段視頻中同時跟蹤多個目標
-
基于初始化方法:
- DBT:基于檢測的目標跟蹤方法
- DFT:每當新目標出現時,人為告訴算法新目標的位置
-
基于處理模型的方法:
- 離線處理:利用前后視頻幀的信息對當前幀進行目標跟蹤
- 在線處理:對視頻幀逐幀進行處理,當前幀的跟蹤僅利用過去的信息
-
運動模型
線性運動(常用)和非線性運動
-
常用算法:
-
基于Kalman和KM算法的后端優化算法
-
和基于多線程的單目標跟蹤的多目標跟蹤算法
總結
以上是生活随笔為你收集整理的智慧交通day02-车流量检测实现02:多目标追踪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python键鼠自动化函数
- 下一篇: Linux命令行调用动态库,Linux动