face_encoding 函数返回错误

face_encoding function returning an error

我正在调用 face_encodings 函数。

TypeError: __call__(): incompatible function arguments. The following argument types are supported:
    1. (self: dlib.fhog_object_detector, image: array, upsample_num_times: int=0) -> dlib.rectangles
Invoked with: <dlib.fhog_object_detector object at 0x7f066f834340>, '36121754-36121734.jpg', 2

这是我的代码

  img = plt.imread(face)
  plt.imshow(img)
  x=face_recognition.load_image_file(face)
  x_code = face_recognition.face_encodings(face)[0]

图像路径正确,当我尝试输出图像时,它显示 load_image_file() 正在执行并返回一个数字数组。

我不知道哪里错了。

错误很可能是 load_image_file 或 face_encodings

的输入类型

face-recognition documentation link

问题是我传递给 face_encoding()

的参数变量

正确:

x=face_recognition.load_image_file(face)
x_code = face_recognition.face_encodings(x)[0]

原因:

根据面部识别库,load_image_file 就像一个初始函数,我们在其中传递文件并将其存储在变量中(在我的例子中,变量 x

稍后对于 face_recognition 包的任何其他功能,我们必须传递变量 x 而不是文件名。

PS : 那个错误细节仍然让我害怕