多目標跟蹤方法:deep-sort

多目標跟蹤方法:deep-sort

讀'Simple Online and Realtime Tracking with a Deep Association Metric, arXiv:1703.07402v1 ' 總結算法

前言

這篇文章依然屬於tracking-by-detection 類,其在匹配detections時使用的是傳統的匈牙利算法。文章中須要注意的幾點包括:網絡

  1. 在計算detections和tracks之間的匹配程度時,使用了融合的度量方式。包括卡爾曼濾波中預測位置和觀測位置在馬氏空間中的距離 和 bounding boxes之間表觀特徵的餘弦距離。app

  2. 其中bounding box的表觀特徵是經過一個深度網絡獲得的128維的特徵編輯器

  3. 在匈牙利匹配detections和tracks時,使用的是級聯匹配的方式。這裏要注意的是,並非說級聯匹配的方式就比global assignment效果好,而是由於本文使用kalman濾波計算運動類似度的缺陷致使使用級聯匹配方式效果更好。ide

具體內容

We adopt a conventional single hypothesis tracking methodology with recursive kalman filtering and frame-by-frame data association.svg

軌跡處理和狀態估計

  • 狀態估計: 使用一個8維空間去刻畫軌跡在某時刻的狀態 ,分別表示bounding box中心的位置、縱橫比、高度、以及在圖像座標中對應的速度信息。而後使用一個kalman濾波器預測更新軌跡,該卡爾曼濾波器採用勻速模型和線性觀測模型。其觀測變量爲函數

  • 軌跡處理: 這個主要說軌跡何時終止、何時產生新的軌跡。首先對於每條軌跡都有一個閾值a用於記錄軌跡從上一次成功匹配到當前時刻的時間。當該值大於提早設定的閾值則認爲改軌跡終止,直觀上說就是長時間匹配不上的軌跡認爲已經結束。而後在匹配時,對於沒有匹配成功的detections都認爲可能產生新的軌跡。但因爲這些detections多是一些false alarms,因此對這種情形新生成的軌跡標註狀態'tentative' ,而後觀查在接下來的連續若干幀(論文中是3幀)中是否連續匹配成功,是的話則認爲是新軌跡產生,標註爲'confirmed',不然則認爲是假性軌跡,狀態標註爲'deleted'。性能

分配

匹配天然是指當前有效的軌跡和當前的detections之間的匹配。所謂有效的軌跡是指那些還存活着的軌跡,即狀態爲tentative和confirmed的軌跡。軌跡和detection之間的匹配程度結合了運動信息和表觀信息。spa

  • 運動匹配度
    使用detection和track在kalman 濾波器預測的位置之間的馬氏距離刻畫運動匹配程度。3d

表示第j個detection和第i條軌跡之間的運動匹配度,其中是軌跡由kalman濾波器預測獲得的在當前時刻觀測空間的協方差矩陣,是軌跡在當前時刻的預測觀測量,時第j個detection的狀態
考慮到運動的連續性,能夠經過該馬氏距離對detections進行篩選,文中使用卡方分佈的0.95分位點做爲閾值,定義以下示性函數

  • 表觀匹配度

單獨使用馬氏距離最爲匹配度度量會致使IDSwitch等情形嚴重,特別的當相機運動時可能致使馬氏距離度量失效,因此這個時候應該靠表觀匹配度補救。對於每個detection,包括軌跡中的detections,使用深度網絡提取出單位範數的特徵向量$r$,深度網絡稍後再說。而後使用detection和軌跡包含的detections的特徵向量之間的最小余弦距離做爲detection和track之間的表觀匹配程度。固然軌跡太長致使表觀產生變化,在使用這種最小距離做爲度量就有風險,因此文中只對軌跡的最新的以內detections進行計算最小余弦距離。

一樣的,該度量一樣能夠肯定一個門限函數,這個閾值由訓練集獲得

兩種度量的融合: 加權平均
其中是超參數,用於調整不一樣項的權重。
門限函數

總結: 距離度量對於短時間的預測和匹配效果很好,而表觀信息對於長時間丟失的軌跡而言,匹配度度量的比較有效。超參數的選擇要看具體的數據集,好比文中說對於相機運動幅度較大的數據集,直接不考慮運動匹配程度。
另外還有一點我想說的是這兩個匹配度度量的閾值範圍是不一樣的,若是想取相通的重要程度,應該取0.1左右。

級聯匹配

爲何採用級聯匹配?
若是一條軌跡被遮擋了一段較長的時間,那麼在kalman濾波器的不斷預測中就會致使機率彌散。那麼假設如今有兩條軌跡競爭同一個detection,那麼那條遮擋時間長的每每獲得馬氏距離更小,使detection傾向於分配給丟失時間更長的軌跡,可是直觀上,該detection應該分配給時間上最近的軌跡。致使這種現象的緣由正是因爲kalman濾波器連續預測無法更新致使的機率彌散。這麼理解吧,假設原本協方差矩陣是一個正態分佈,那麼連續的預測不更新就會致使這個正態分佈的方差愈來愈大,那麼離均值歐氏距離遠的點可能和以前分佈中離得較近的點得到一樣的馬氏距離值。
因此文中才引入了級聯匹配的策略讓'more frequently seen objects'分配的優先級更高。這樣每次分配的時候考慮的都是遮擋時間相同的軌跡,就不存在上面說的問題了。具體的算法以下:

enter description here

1498295679163.jpg

在匹配的最後階段還對unconfirmed和age=1的未匹配軌跡進行基於IoU的匹配。這能夠緩解由於表觀突變或者部分遮擋致使的較大變化。固然有好處就有壞處,這樣作也有可能致使一些新產生的軌跡被鏈接到了一些舊的軌跡上。但這種狀況較少。

【媽蛋,這個編輯器稍微寫長一點就卡成狗,卡的心情煩躁】

深度表觀描述子

預訓練的網絡時一個在大規模ReID數據集上訓練獲得的,這個ReID數據集包含1261我的的1100000幅圖像,使得學到的特徵很適合行人跟蹤。

而後使用該預訓練網絡做爲基礎網絡,構建wide ResNet,用來提取bounding box的表觀特徵,網絡結構以下:

enter description here

1498298065058.jpg

該網絡在Nvidia GeForce GTX 1050 mobile GPU下提出32個bounding boxes大約花費30ms,顯然能夠知足實時性要求。

實驗

實驗設置和結果

實驗是在MOT16數據集上跑的,使用的detections並不是公共檢測結果。而是參考文獻1中提供的檢測結果. 實驗結果以下表所示。
enter description here

結論

  • 相對於沒使用深度表觀特徵的原始sort方法,IDSw降低了約45%,可見該深度表觀特徵的有效性

  • 因爲表觀特徵的使用,使軌跡因遮擋致使的motion 信息沒用時不至於錯誤分配detection,使得ML更少,MT更多。

  • 該方法存在的一個問題使FP太大。。,論文中分析緣由有兩點。一方面是detections問題,兩一方面是軌跡最大容許丟失匹配的幀數!$A_{max}$太大致使去多false alarms被分配到軌跡中。提升detections的置信度能夠顯著提高性能。

  • 速度夠快,20Hz


總結

  1. 該方法相對簡單,也容易理解。

  2. 我認爲其優異性能很大程度上 取決於detections的質量很好,若是在提供的public detections上跑的話,可能要須要很複雜的預處理

  3. 在motion 匹配度時僅僅使用了距離關係,並非真正的運動信息。我以爲這一點改用或結合速度信息,解決類似的人相遇而過致使的IDSw問題。

1 F. Yu, W.Li ,et.al. Poi: Multiple object tracking with high performance detection and appearance feature. ECCV,2016

相關文章
相關標籤/搜索