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下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值