我正在使用python脚本来检测人员。我的脚本中有以下一行:
import time
import cv2 as cv
import glob
import argparse
import sys
import numpy as np
import os.path
from imutils.video import FPS
from collections import deque
from sklearn.utils.linear_assignment_ import linear_assignment
当我运行我的脚本时,我有以下几行代码:
/home/user/.local/lib/python3.6/site-packages/sklearn/utils/linear_assignment_.py:127:
DeprecationWarning: The linear_assignment function is deprecated in 0.21 and will be removed from 0.23. Use scipy.optimize.linear_sum_assignment instead.
DeprecationWarning)
请告诉我如何解决这个问题。
发布于 2019-09-18 12:28:32
您需要将sklearn.utils.linear_assignment_.linear_assignment
函数替换为scipy.optimize.linear_sum_assignment function
。
区别在于返回格式:linear_assignment()
返回numpy数组,linear_sum_assignment()
返回numpy数组的元组。通过在数组中转换linear_sum_assignment()的输出并将其转置,可以获得相同的输出。
您的脚本应该如下所示:
import time
import cv2 as cv
import glob
import argparse
import sys
import numpy as np
import os.path
from imutils.video import FPS
from collections import deque
from scipy.optimize import linear_sum_assignment
#compute your cost matrix
indices = linear_sum_assignment(cost_matrix)
indices = np.asarray(indices)
indices = np.transpose(indices)
发布于 2019-11-18 19:18:57
将linear_assignment替换为linear_sum_assignment
# from sklearn.utils.linear_assignment_ import linear_assignment
from scipy.optimize import linear_sum_assignment
cost = np.array([[4, 1, 3], [2, 0, 5], [3, 2, 2]])
# result = linear_assignment(cost)
result = linear_sum_assignment(cost)
result = np.array(list(zip(*result)))
https://stackoverflow.com/questions/57369848
复制相似问题