匈牙利算法实现(sklearn 实现与 scipy实现测试)

sklearn里的linear_assignment()函数以及scipy里的linear_sum_assignment()函数都实现了匈牙利算法,两者的返回值的形式不同:

import numpy as np
from sklearn.utils.linear_assignment_ import linear_assignment
from scipy.optimize import linear_assignment
const_matrix = np.array([[15, 40, 45], 
						 [20, 60, 35], 
						 [20, 40, 25]])
matches = linear_assignment(cost_matrix)
print("matches: ", matches)
matches2 = linear_sum_assignment(cost_matrix)
print("matches2: ", matches2)						 

output:

matches: [[0 1]
[1 0]
[2 2]]
matches2: (array([0, 1, 2]), array([1, 0, 2]))

从上面可以看出:

sklearn实现的匈牙利返回值与scipy实现的匈牙利返回值为互转置关系。

你可能感兴趣的:(多目标跟踪)