【问题标题】:face_recognition library taking to much time to execute, I also tried to use Numba but I'm unable to execute, How to optimize following code?face_recognition 库需要很长时间执行,我也尝试使用 Numba 但我无法执行,如何优化以下代码?
【发布时间】:2021-03-27 07:51:46
【问题描述】:

face_encoding 包含 13 个人的嵌入,执行以下方法大约需要 9 秒

embface_encoding 的数据类型为 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),但还是不行

【问题讨论】:

    标签: python numpy machine-learning face-recognition numba


    【解决方案1】:

    为什么不使用 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 提取嵌入。请阅读其文档。 model = DeepFace.build_model("Facenet");嵌入 = model.predict(img);
    【解决方案2】:

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

    要使库更快,您必须更改库的代码。如果库使用numpyscipy,那么速度可能取决于系统上可用的线性代数包。

    Numba 可以编译纯 python 和 numpy 的子集(例如没有 python 列表),并且使用 @njit 不允许函数的任何不可编译部分。所以这绝对不应该工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-19
      • 2017-06-05
      • 2023-03-12
      • 2019-12-28
      • 2021-03-12
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      相关资源
      最近更新 更多