ref: https://zhuanlan.zhihu.com/p/80993033
流程:
使用PointRCNN的目標檢測結果來跟蹤;
使用卡爾曼濾波器跟蹤;
使用匈牙利算法匹配前后幀的對象。
特點:
使用了3D的卡爾曼濾波器
優點:
簡單快速效果好

使用的特征和狀態轉移模型?
10-dimensional vector T = (x, y, z, θ, l, w, h, vx, vy, vz) ,沒有使用角速度,加入后效果不好;
狀態轉移方程是恆定速率模型
論文的結果表顯示使用2D的卡爾曼效果也還挺好,MOTA 僅僅降低了一個百分點左右;
匈牙利匹配的cost matrix 是什么?
是跟蹤器預測的3D box 和 檢測的3D box的 3dIOU矩陣;
怎么創建跟蹤器跟蹤器的? 怎么銷毀的?
至少3幀發現同一個物體,才會創建跟蹤器(Fmin)
丟失物體的跟蹤器,還會繼續檢測2幀(age)
為什么有一個把x,y,z,alpha,l,w,h 的順序調換的步驟,后續又換回來了?
這里 pointRCNN 給出的結果順序是反的,代碼里面只是把它重新調整回來而已。
狀態轉移矩陣為什么要加3個1,恆速率模型怎么得到它的?
因為 下一時刻距離=上一時刻距離+速度,所以三個方向的速度要加1,但是實際上這里有個問題,每個時刻的間隔不一定是1秒,這樣算會帶來誤差。
使用數據集
kitti MOT 數據集;
這么快的原因?
使用了numba 加速
Total Tracking took: 98.099 for 8008 frames or 81.6 FPS
沒有使用 numba 加速
Total Tracking took: 145.496 for 8008 frames or 55.0 FPS
可以得出,不使用 numba 加速的話,速度降低了 32%;
匈牙利算法和NN、 GNN方法有什么區別?
沒有很大的差別,都是用於求解指派問題的方法,NN是局部最優,GNN和匈牙利是全局最優;
可以做的改進:
1 把 KF 改為 UKF、EKF效果應該更好吧;
2 使用循環計算 3D IOU 應該是比較慢的,這里其實可以使用2D IOU,並且可以使用 cython 的計算過程來進一步加速。
