Python 人脸识别库需要花费很多时间来执行,我也尝试使用Numba,但我';m无法执行,如何优化以下代码?

Python 人脸识别库需要花费很多时间来执行,我也尝试使用Numba,但我';m无法执行,如何优化以下代码?,python,numpy,machine-learning,face-recognition,numba,Python,Numpy,Machine Learning,Face Recognition,Numba,face\u编码包含13个人的嵌入,执行以下方法大约需要9秒 emb和face\u编码的数据类型为numpy.ndarray数组 def face_match(emb, face_encoding): face_distances = face_recognition.face_distance(emb, face_encoding) return face_distances 我还尝试了使用Numba的代码,但我无法找到哪里出了问题 @jit(nopython=

face\u编码
包含13个人的嵌入,执行以下方法大约需要9秒

emb
face\u编码
的数据类型为numpy.ndarray数组

def face_match(emb, face_encoding):

    face_distances = face_recognition.face_distance(emb, face_encoding)
    
    return face_distances

我还尝试了使用Numba的代码,但我无法找到哪里出了问题

@jit(nopython=True)
def face_match(emb, face_encoding):

    face_distances = face_recognition.face_distance(emb, face_encoding)

    return face_distances


我也尝试过使用
@njit(nopython=True)
,但它仍然不起作用

所需的时间取决于该库的实现

要使库更快,必须更改库的代码。如果库使用
numpy
scipy
,则速度可能取决于系统上可用的线性代数软件包


Numba
可以编译纯python和numpy的子集(例如,没有python列表),使用
@njit
不允许函数的任何不可编译部分。所以这肯定不行。

为什么不使用deepface?它是基于keras的图书馆。这就是为什么它很容易安装和运行

#!pip install deepface
from deepface import DeepFace
resp = DeepFace.verify("img1.jpg", "img2.jpg")
print(resp["verified"])
它的默认人脸识别模型是VGG face,但它也包装了Google FaceNet、OpenFace、Facebook DeepFace、DeepID、Dlib和ArcFace

models = ['VGG-Face', 'Facenet', 'OpenFace', 'DeepFace', 'DeepID', 'Dlib', 'ArcFace']
resp = DeepFace.verify("img1.jpg", "img2.jpg", model_name = models[1])
此外,如果您想在数据库中查找标识,它有一个自定义查找功能

DeepFace.find("img1.jpg", db_path = 'C:/my_db')

在这里,您需要将面部图像(.jpg或.png)存储在my_db文件夹中。Find函数在此处返回与img1相同的标识图像。

谢谢您的建议,我将尝试此功能并让您知道。实际上,我正在将人脸识别给出的128个数组保存到DB中,我正在创建帧数组并将该数组保存到“emb”中,我正在从DB中提取“face_encoding”。我附加了我之前注册的所有人的数组,以便以后使用。我想现在你明白我在做什么了。那么你认为我应该怎么做呢?你也可以用deepface提取嵌入。请阅读其文档。模型=DeepFace.build_模型(“Facenet”);嵌入=模型预测(img);