在 face_recognition python 中提高速度 compare_faces

Posted

技术标签:

【中文标题】在 face_recognition python 中提高速度 compare_faces【英文标题】:increase speed compare_faces in face_recognition python 【发布时间】:2021-11-10 14:34:44 【问题描述】:

我想将给定的照片(.jpg)与包含 10000 张照片(.jpg)的文件夹进行比较

这是我的代码:

import face_recognition

import os

path = 'D:\imageFaceRecog'

files = sorted(os.listdir(path))


known_image = face_recognition.load_image_file("C:\\Users\\Public\\Pictures\\Sample Pictures\\nikolay.jpg")
known_encoding = face_recognition.face_encodings(known_image)[0]
for f in files:
    print(f)
    unknown_image = face_recognition.load_image_file("D:\\imageFaceRecog\\"+f)
    
    unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
    results = face_recognition.compare_faces([known_encoding], unknown_encoding)
    print(results)

但我的代码在每分钟内给了我大约 35 次比较的速度。

有什么方法可以提高比较的速度?

P.S 我在以下位置运行此代码: 视觉工作室 2019, Windows 7的 4GB 内存 蟒蛇3.6 英特尔核芯显卡

【问题讨论】:

【参考方案1】:

虽然识别面部位置是面部识别中“最重要”的阶段之一,但您可以稍微欺骗 face_recognition 并使用 Google Mediapipe:

import mediapipe as mp

MIN_FACEBOX_DIM = (30, 30) # minimal acceptable face box dimensions

mp_face_detection = mp.solutions.face_detection
boxes = []
encodings = []

face_detection = mp_face_detection.FaceDetection(min_detection_confidence=0.5)
iheigth, iwidth = image.shape[:2]
results = face_detection.process(image)
    if results.detections:
    # further with  results.detections:
        for d in results.detections:
            xmin = int(iwidth * d.location_data.relative_bounding_box.xmin)
            ymin = int(iheigth * d.location_data.relative_bounding_box.ymin)
            ymax = ymin + int(iheigth * d.location_data.relative_bounding_box.height)
            xmax = xmin + int(iwidth * d.location_data.relative_bounding_box.width)
            if (xmax - xmin) > MIN_FACEBOX_DIM[0] and (ymax - ymin)>MIN_FACEBOX_DIM[1]:
                boxes.append([ymin, xmax, ymax, xmin])

encodings.append(frfe(aligned_image, known_face_locations=[boxes],
                                           num_jitters=njits, model="large"))

【讨论】:

以上是关于在 face_recognition python 中提高速度 compare_faces的主要内容,如果未能解决你的问题,请参考以下文章

[深度学习] Python人脸识别库face_recognition使用教程

使用 python3 模块 face_recognition 比较两个人脸?

使用 face_recognition 和 cv2 进行人脸识别:空编码错误 Python

python使用face_recognition包的环境设置

python-----windows下安装face_recognition库

如何为 python 安装 face_recognition 模块