# Tracking - SORT > [name=謝朋諺(Adam Hsieh)] > [time=Tue, Jul 30, 2019 3:04 PM] ###### tags: `paper`,`IVA`,`track` --- ## Reference > [多目标跟踪(MOT)论文随笔-SIMPLE ONLINE AND REALTIME TRACKING (SORT)](https://www.cnblogs.com/yanwei-li/p/8643336.html) > [論文翻譯:sort : SIMPLE ONLINE AND REALTIME TRACKING](https://www.itread01.com/content/1545102436.html) > [SIMPLE ONLINE AND REALTIME TRACKING (SORT)论文阅读笔记](https://blog.csdn.net/c20081052/article/details/86500352) > [多目标跟踪:SORT和Deep SORT](https://zhuanlan.zhihu.com/p/59148865) > [卡爾曼濾波 (Kalman Filter)](http://silverwind1982.pixnet.net/blog/post/167680859) > [Hungarian Algorithm匈牙利算法](https://blog.csdn.net/u014754127/article/details/78086014) > [淺談簡單卡爾曼濾波器](http://www.csbcnet.com.tw/monthly_pub/data/475/02%E5%B0%88%E9%A1%8C%E5%A0%B1%E5%B0%8E/01%E6%B7%BA%E8%AB%87%E7%B0%A1%E5%96%AE%E5%8D%A1%E7%88%BE%E6%9B%BC%E6%BF%BE%E6%B3%A2%E5%99%A8.pdf) > [[Github] SORT](https://github.com/bendidi/sort/tree/edf6e4ddebaec093ec01f31e43045236e9d70647) --- # Simple Online And Realtime Tracking [論文連結](https://arxiv.org/pdf/1602.00763.pdf) {%pdf https://arxiv.org/pdf/1602.00763.pdf %} ## 摘要 * 儘管只使用了[==卡爾曼濾波器(Kalman)==](http://silverwind1982.pixnet.net/blog/post/167680859-%E5%8D%A1%E7%88%BE%E6%9B%BC%E6%BF%BE%E6%B3%A2-%28kalman-filter%29)和[==匈牙利算法(Hungarian)==](https://blog.csdn.net/u014754127/article/details/78086014)等熟悉技術的基本組合來實現 Tracking components,但這種方法可以達到與最先進的 Online Tracker 差不多的 Accuracy。 * 速度大概是 260HZ 的速率在更新。 * 檢測器的影響很大,差距可以到 18.9%。 * 需要權衡準確性和速度,如下圖所示,往往許多 Tracker 會面臨速度太慢的窘境。 ![](https://i.imgur.com/UDpB7Qg.png) ## 本文主要貢獻 * 利用基於 CNN 的檢測器做多物件追蹤。 * 提出了一種基於==卡爾曼濾波器==和==匈牙利算法==的 Realtime 追蹤方法。 * 有開放原始碼以幫助建立一個 Baseline 方法的研究實驗。 ## Methodology ### Detection ![](https://i.imgur.com/M0hLgOY.png) 從上表中可以發現比較 Faster R-CNN 和 ACF 這兩種 Detection 方法,檢測的效果和追蹤效果有顯著影響。 ### Estimation Model * 在這裡描述了一種物件模型,像是外觀和運動的模型以用來傳到下一個 Frame 中用作物件的識別。 * 我們認為每個物件在 Frame 間的位移應該滿足線性恆速模型,並且每個目標間的運動是獨立的,而相機的運動也是獨立的。 * 每個物件的狀態模型公式為:==$x=[u,v,s,r,\dot{u},\dot{v},\dot{s}]^T$== * 其中 $u,v$ 代表物件中心的水平和垂直的像素位置。 * $s$ 表示 Bounding Box 的面積大小,$r$ 代表長寬比,而長寬比 $r$ 被認為是個常數。 * 後面三個量表示預測的下一個 Frame。 * 關聯:當一個物件被檢測到與一個物件相關聯時,檢測框將用於更新物件的狀態,其中速度分量由==卡爾曼濾波==框架來解決。 * 不關聯:如果沒有檢測到物件相關聯,物件的狀態用線性速度來預測,無矯正過程。(錯誤率較高) ### Data Association * 每個物件的 Bounding Box 都是通過預測當前 Frame 的新位置估計而得。 * ==分配代價矩陣==(Assignment Cost Matrix)通過每個**檢測結果**和**所有現有物件的預測框**計算 IOU 得到。 * 分配方法則通過==匈牙利算法==得到最佳優化。 * 另外,當 IOU 值小於 $IOU_{min}$ 閾值,檢測到的物件將拒絕分配,原始碼中是設 $IOU_{min}=0.3$。 * 本文發現 Bounding box 的 IOU 能夠潛在的解決物件移動所造成的短時間遮擋問題,這是因為當物件被遮擋時,檢測到了遮擋物,沒有檢測到原本的物件,那麼在遮擋結束之後,因為在相近大小的物件 IOU 值往往較大(如果造成遮擋代表共同區域的變化並不大,但如果完全遮擋就肯定會出錯),因此很快就又可以恢復正確的關聯性。 ### Creation and Deletion of Track Identities * 當物件進入和離開影像時,他的 ID 就需要創建或刪除。 * 我們發現==被偵測出來的物件與其他 tracker 重疊程度小於 $IOU_{min}$ 的話==,即代表他是新的物件。創建新的 track 並使用邊界框的幾何圖形初始化 tracker,且速度設為 0。 * 當連續的 $T_{lost}$ Frames 沒有檢測到物件,則終止這個 tracker。這麼做可以防止 tracker 無限延長。 * 在實驗中,$T_{lost}=1$ 有兩個原因: 1. 恆速運動模型在真實動力學模型中是個很差的預測模型。 2. 本文主要關注 Frame 間的 Tracking,ReID 就超出此論文的作法。 * 另外儘早刪除已經丟失的追蹤有助於提高效能,如果物件重新出現,則會由新的 ID 重新開始追蹤。 ## Experiment * 為了調整初始 $Kalman$ 濾波器共變異數, $IOU_{min}$, $T_{lost}$ 的參數,本文使用 Training 跟 Validation 的分組評估。 * 檢測架構是用 Faster R-CNN(VGG16)。 ### Metrics ![](https://i.imgur.com/rBUfwXR.png) * 使用 MOT15 的資料集調參與測試,可以發現在論文寫下的時間我們跟最先進的 NOMT 幾乎一樣,但他並沒有做到 Realtime。 * SORT 結合了兩個理想的屬性,速度和準確性。 * Tracking 元件在具有 16 GB 內存的 Intel i7 2.5GHz 機器的單核上速度為 260 Hz 。 :::success :fire: MOT16 由於檢測結果改用 POI 那篇的結果,效果大大提升,現在 MOTA 已可以到 59.8、MOTP 79.6,在 Private 的資料集為 44 名中的第 16 名,全部是 133 名中的第 16 名。 :fire: MOT17 中全部資料集是 105 名中的第 86 名。 :::