用以下代碼做實驗
import time import cv2 as cv import glob import argparse import sys import numpy as np import os.path from collections import deque from sklearn.utils.linear_assignment_ import linear_assignment ..... ..... for i in range(100): indices = linear_assignment(cost_matrix)
輸出顯示
DeprecationWarning: The linear_assignment function is deprecated in 0.21 and will be removed from 0.23. Use scipy.optimize.linear_sum_assignment instead.
經過查閱相關資料,代碼部分替換為下面形式即可解決
不同之處在於返回格式: linear_assignment()
返回一個 numpy 數組和linear_sum_assignment()
返回 一個 numpy 數組的元組。通過轉換 linear_sum_assignment()
輸出為array
並轉置它,可以獲得相同的輸出。
import time import cv2 as cv import glob import argparse import sys import numpy as np import os.path from collections import deque from scipy.optimize import linear_sum_assignment # 代替上面 linear_assignment indices = linear_sum_assignment(cost_matrix) indices = np.asarray(indices) indices = np.transpose(indices)
參考資料