LAPJV算法學習筆記
偽代碼:
LAPJV算法詳解(ing_Sparse Direction的博客-CSDN博客_lap.lapjv
from lapjv import lapjv
import numpy as np
a = np.array([[0.1,0.6,0.3],[0.2,0.1,0.6],[0.5,0.2,0.9]])
x,y,c = lapjv(a)
print(x,y,c)
out: [2 0 1] [1 2 0] (0.699999988079071, array([0. , 0.3, 0.4], dtype=float32), array([-0.10000002, -0.2 , 0.3 ], dtype=float32))
其中x,y分別是按照 行列來計算的
行索引分配[2,0,1]: cost = 0.3+0.2 +0.2 = 0.7
0行,2列
1行,0列
2行,1列
列索引分配 [1,2,0]:cost = 0.2 + 0.2 +0.3 =0.7
0列,1行
1列,2行
2列,0行
cost就是求和最小。
bytetrack用到的lapjv算法:
cost, x, y = lap.lapjv(cost_matrix, extend_cost=True, cost_limit=thresh)
for ix, mx in enumerate(x):
if mx >= 0:
matches.append([ix, mx])
c++版:
參見博客:
ByteTrack 多目標跟蹤 測試筆記_jacke121的專欄-CSDN博客
在bytetrack的c++版本中。
網友實現的python3源碼版:
LAPJV-線性分配問題的Jonker-Volgenant算法V3.0:解決LAP的Jonker-Volgenant算法的Matlab實現。-matlab開發_-互聯網文檔類資源-CSDN下載
MATLAB
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。