****** online and realtime tracking with a deep association metric
**:這篇文章是在sort基礎上的改進。sort的匹配矩陣用的是iou,匹配方法是匈牙利演算法。
deepsort加入了外觀特徵和級聯匹配解決了id switch和長時間遮擋的追蹤問題。
對於每個trk,記錄從上一次成功與檢測目標匹配之後,沒有匹配上的幀數,超過最大閾值,就刪除這個trk.
如果檢測的目標和已有的trk沒有匹配上,那麼認為出現了新的目標。但新的目標要連續h幀和潛在的新的追蹤器匹配上,才認為真正出現了新的trk。否則認為檢測錯誤。
使用了運動資訊和外觀資訊來構建關聯矩陣。
計算trk的卡爾曼**的位置和新檢測出的目標位置det之間的馬氏距離。(馬氏距離是乙個歸一化的距離)
dj表示第j個檢測框的位置,yi表示第i個追蹤器對目標的**位置,
si表示檢測位置與平均追蹤位置之間的協方差矩陣(**中用到了cholesky分解主要是為了加速計算馬氏距離。馬氏距離中需要計算協方差矩陣的逆,直接求逆是很耗時的。協方差矩陣恰好又是乙個正定的,它的逆通過分解可以直接變成三角陣的逆).
馬氏距離通過計算檢測位置和平均追蹤位置之間的標準差將狀態測量的不確定性進行了考慮。
如果某次關聯的馬氏距離小於指定的閾值t(1),則設定運動狀態的關聯成功。
使用的函式為
作者設定t(1)=9.4877。
當運動的不確定性很低的時候,上述的馬氏距離匹配是乙個合適的關聯度量方法,但是在影象空間中使用kalman濾波進行運動狀態估計只是乙個比較粗糙的**。特別是相機存在運動時會使得馬氏距離的關聯方法失效,造成出現id switch的現象。
因此引入外觀特徵。計算了當前det的特徵向量(要求||r||=1)與trk中每個關聯的特徵向量的余弦距離的最小值。
如果上面的距離小於指定的閾值,那麼這個關聯就是成功的。閾值是從單獨的訓練集裡得到的
最終的度量矩陣:
只有ci,j位於兩種度量閾值的交集內時,才認為實現了正確的關聯。
距離度量對短期的**和匹配效果很好,但對於長時間的遮擋的情況,使用外觀特徵的度量比較有效。對於存在相機運動的情況,可以設定λ=0.
當乙個目標長時間被遮擋之後,kalman濾波**的不確定性就會大大增加,狀態空間內的可觀察性就會大大降低。假如此時兩個追蹤器競爭同乙個檢測結果的匹配權,往往遮擋時間較長的那條軌跡因為長時間未更新位置資訊,追蹤**位置的不確定性更大,即協方差會更大,馬氏距離計算時使用了協方差的倒數,因此馬氏距離會更小,因此使得檢測結果更可能和遮擋時間較長的那條軌跡相關聯,這種不理想的效果往往會破壞追蹤的持續性。這麼理解吧,假設本來協方差矩陣是乙個正態分佈,那麼連續的**不更新就會導致這個正態分佈的方差越來越大,那麼離均值歐氏距離遠的點可能和之前分布中離得較近的點獲得同樣的馬氏距離值。
使用級聯匹配來保證最近匹配上的trk的優先匹配權。
在匹配的最後階段還對unconfirmed和age=1的未匹配軌跡和檢測目標進行基於iou的匹配。這可以緩解因為表觀突變或者部分遮擋導致的較大變化。當然有好處就有壞處,這樣做也有可能導致一些新產生的軌跡被連線到了一些舊的軌跡上。但這種情況較少
簡單筆記(四)
第二章 型別 運算子與表示式 10.11.25 2.1 變數名 對變數與符號常量的名字存在著一些限制。名字有字幕 與數字組成,但其第乙個字元必須為字母。下劃線 也 被看做是字母,它有時可用於命名比較長的變數以提高 可讀性。由於庫函式通常使用下劃線開頭的名字,因此 不要將這類名字用作變數名。大寫字母與...
UIApplication 簡單筆記
如何取得?很簡單 copy 下面的 code 就好,不會有第二種寫法,也完全不用考量什麼 記憶體管理。2 push notification iphone 3.0 新增的功能,用來唬爛可以滿足部分多工需求的功能。好啦,是真的還不錯 是的!搖晃時 undo 我們都知道 iphone 可以知道自己在旋轉...
LBFGS 簡單筆記
52nlp上無約術最優化的文章 後面提到了乙個無約束最優化的c 實現 sample lbfgs.c lm 計算原函式和梯度fx g d g 計算xnorm,gnorm 判定gnorm xnorm 是否滿足條件 計算step 1 sqrt d d k 1,end 0 進入for迴圈 計算xnorm,g...