做美食類網(wǎng)站分析軟文營銷廣告
目標跟蹤那些事
跟蹤與檢測的區(qū)別
目標跟蹤
和目標檢測
是計算機視覺中的兩個重要概念,但它們的目的和方法是不同的。
-
目標檢測(object Detection):是指在圖像或視頻幀中識別并定位一個或多個感興趣的目標對象的過程 。
-
目標跟蹤(object Tracking):是指在視頻幀序列中連續(xù)地監(jiān)測和定位一個或多個目標對象的位置的過程。
區(qū)別:跟蹤與檢測的區(qū)別
- 輸入數(shù)據(jù)不同:目標檢測通常處理單一的圖像,而目標跟蹤處理的是視頻序列。
Input:視頻序列
Output: The trajectory and a unique ID for each target.
- 目標和任務不同:目標檢測關(guān)注于在單個圖像或視頻幀中確定和定位對象,而目標跟蹤關(guān)注于在視頻序列中跟蹤對象的動態(tài)變化。
目標跟蹤應用場景
常見的應用場景包括了:
- 自動駕駛
- 車流人流的統(tǒng)計
- 越界識別與監(jiān)控
-
實時決策:在許多應用中,如無人駕駛車輛或安全監(jiān)控,實時的目標跟蹤能夠提供必要的信息來做出快速決策。
-
自動化流程:目標跟蹤可以自動化許多任務,如視頻分析或醫(yī)學診斷,從而減少人工干預。
-
提高準確性:與人工跟蹤相比,自動自標跟蹤通常更加準確和一致。
-
增強體驗:在娛樂和游戲行業(yè),目標跟蹤提供了更沉浸式的體驗,使用戶感覺更真實。
目標跟蹤的困難
困難一:Inter-Object Occlusion
物體之間的遮擋。
困難二:Obstacle Occlusion
:障礙物的阻礙(導致跟蹤后前后的物體被判斷為兩個對象)也就是導致id switch現(xiàn)象的發(fā)生。
目標跟蹤的步驟
當前主流的目標跟蹤:Tracking-by-detection的主要步驟
- 通過檢測器做目標的定位
- 進行特征的提取
- 做數(shù)據(jù)的關(guān)聯(lián)(匈牙利算法)
- 軌跡的管理與狀態(tài)的更新(卡爾曼濾波)
主流的目標跟蹤算法
DeepSORT、ByteTrack和BoT-SORT都是當前較為主流的多目標跟蹤算法,各有特點:
- DeepSORT:基于檢測的跟蹤框架,使用
深度ReID網(wǎng)絡
提取目標特征
,并結(jié)合卡爾曼濾波進行運動預測,性能穩(wěn)定。
-
ByteTrack:
端到端跟蹤框架
,直接在目標檢測的基礎(chǔ)上進行跟蹤,可以沒有獨立的特征提取模塊。速度快但不如DeepSORT魯棒。 -
BoT-SORT:在ByteTrack基礎(chǔ)上使用相機運動補償和改進的具有更準確狀態(tài)向量的卡爾曼濾波器。精度較高但速度較慢。
總體來說:
- 如果追求速度,可以首選ByteTrack。
- 如果追求精度,BoT-SORT會更好。
- 如果資源有限但要穩(wěn)定跟蹤,DeepSORT是不錯的選擇。
多目標跟蹤任務
Multi-object tracking (MoT) is to locate each target at each frame, and draw their trajectories
包括兩種常見的方式:
- Model-free-tracking (MFT):需要手動的初始化給出第一幀中目標對象的位置,在此基礎(chǔ)上進行目標的跟蹤。
- Tracking-by-detection (TBD) :不需要初始化只需要一個檢測器即可實現(xiàn)。
- 首先會做視頻幀的分割
Frames Separation
- 送入神經(jīng)網(wǎng)絡的目標檢測器(Object Detector Neural Network)進行檢測
- MOT問題可以看作是數(shù)據(jù)關(guān)聯(lián)問題,其目的是將視頻序列中跨幀的檢測關(guān)聯(lián)起來。
多目標跟蹤數(shù)據(jù)集
多目標跟蹤(Multiple Object Tracking,MOT)數(shù)據(jù)集主要用于評估和比較不同的多目標跟蹤算法。這些數(shù)據(jù)集包含帶有標注的視頻序列,其中的每一幀都標注了目標對象的位置(通常是用邊界框表示)和ID。
- MOT challenge:MOT Challenge是一個常見的多目標跟蹤數(shù)據(jù)集和基準測試,包含多個不同的子集(例如,2D MOT 2015、MOT16、MOT17、MOT20等),涵蓋了各種不同的環(huán)境和場景。每個子集都有自己的訓練集和測試集,并且提供了詳細的標注信息,包括目標的位置、ID以及一些額外的屬性(如是否被遮擋、是否靜止等)。MOTChallenge的官方網(wǎng)站還提供了一個在線的評估服務器,用于比較和排名不同的跟蹤算法。
- UA-DETRAC: UA-DETRAC數(shù)據(jù)集主要用于汽車跟蹤任務。它包含了在復雜的交通場景中捕獲的超過140,000幀的高質(zhì)量視頻。這些視頻涵蓋了各種不同的環(huán)境和天氣條件,以及不同的交通流量。UA-DETRAC數(shù)據(jù)集還提供了詳細的標注信息,包括汽車的位置、速度、尺度等。
- BDD100K
- KITTI
多目標跟蹤評估指標
對于這些多目標跟蹤的評估指標總體上可以分為以下的四類:
- Accuracy(準確度)
- id switches(IDsw)
- Multiple Object Tracking Accuracy (MOTA)
- Precision(精度)
- Multiple Object Tracking Precision (MOTP)
- Tracking Distance Error(TDE)
- Completeness(完整度)
- Mostly Tracked (MT),
- Partly Tracked (PT),
- Mostly Lost (ML)
- Fragmentation(FM)
- Robustness(魯棒性)
- Recover from Short-term occlusion (RS)
- Recover from Long-term occlusion (RL)
MoTA
多目標跟蹤的準確度
M O T A = 1 ? ∑ t ( F N t + F P t + I D S W t ) ∑ t G T t \mathrm{MOTA}=1-\frac{\sum_{t}\left(\mathrm{FN}_{t}+\mathrm{FP}_{t}+\mathrm{IDSW}_{t}\right)}{\sum_{t} \mathrm{GT}_{t}} MOTA=1?∑t?GTt?∑t?(FNt?+FPt?+IDSWt?)?
-
t:代表(frame index)視頻幀的索引
-
GT:代表(the number of groundtruth objects)GT目標的總數(shù)
-
FN:the false negatives 漏報(
the number of ground truth objects that were detected by the method
) -
FP:the false positives(誤報)(
the number of objects that were falsely detected by the method but do not exist in the ground-truth.
) -
IDSW :the number of identity switches(之前提到的id的切換次數(shù))
MoTP (Multiple Object Tracking Precisicin)
M O T P = ∑ t , i d t , i ∑ t c t \mathrm{MOTP}=\frac{\sum_{t, i} d_{t, i}}{\sum_{t} c_{t}} MOTP=∑t?ct?∑t,i?dt,i??
- ct:代表的是在第t幀匹配的數(shù)目(
the number of matches in frame t
) - dt,i:(
the bounding box overlap of target i with its assigned ground-truth object in frame t.
)兩個框的重疊面積本質(zhì)上是IOU
主要是一種定位精度的度量
SORT目標跟蹤原理
SIMPLE ONLINE AND REALTIME TRACKING
- 標題:簡單的在線和實時跟蹤 (SIMPLE ONLINE AND REALTIME TRACKING)
- 目的:開發(fā)一種實時多物體跟蹤方法,適用于在線應用。
- 方法:通過組合卡爾曼濾波器和匈牙利算法等熟悉技術(shù),實現(xiàn)了一個實時跟蹤系統(tǒng)。
- 重點:檢測質(zhì)量被確定為影響跟蹤性能的關(guān)鍵因素。通過改變CNN檢測器,可以提高跟蹤性能。
- 結(jié)論:該算法的更新速度為260 Hz,比其他最先進的跟蹤器快20倍以上,同時實現(xiàn)了與最先進的在線跟蹤器相當?shù)臏蚀_性。
在多目標跟蹤中,關(guān)聯(lián)是指將當前幀中的檢測與前一幀中的跟蹤目標進行匹配。 在本文中,作者提出了一種簡單的關(guān)聯(lián)方法,僅使用檢測框之間的loU,來完成關(guān)聯(lián)。
cost matrix between each detected bounding box and all predicted bounding boxes
IoU ? ( D , P ) = [ iou ? ( D 1 , P 1 ) … iou ? ( D 1 , P M ) iou ? ( D 2 , P 1 ) … iou ? ( D 2 , P M ) ? ? ? iou ? ( D N , P 1 ) … iou ? ( D N , P M ) ] \operatorname{IoU}(D, P)=\left[\begin{array}{ccc} \operatorname{iou}\left(D_{1}, P_{1}\right) & \ldots & \operatorname{iou}\left(D_{1}, P_{M}\right) \\ \operatorname{iou}\left(D_{2}, P_{1}\right) & \ldots & \operatorname{iou}\left(D_{2}, P_{M}\right) \\ \vdots & \ddots & \vdots \\ \operatorname{iou}\left(D_{N}, P_{1}\right) & \ldots & \operatorname{iou}\left(D_{N}, P_{M}\right) \end{array}\right] IoU(D,P)= ?iou(D1?,P1?)iou(D2?,P1?)?iou(DN?,P1?)?……?…?iou(D1?,PM?)iou(D2?,PM?)?iou(DN?,PM?)? ?