我正在使用 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
Run Code Online (Sandbox Code Playgroud)
当我运行我的脚本时,我得到了以下几行:
/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)
Run Code Online (Sandbox Code Playgroud)
请教我如何解决它。
小智 12
您需要将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)
Run Code Online (Sandbox Code Playgroud)