在 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包的环境设置