我一直在尝试使用OpenCV的face_recognition模块创建一个人脸识别系统。 互联网上的每个教程都针对一个人使用一张图像。我想使用同一个人的多张照片。 在known_faces目录中,有4个文件夹,每个文件夹包含10张同一个人的图像。
import face_recognition
import os
import cv2
import numpy as np
from numpy import load
KNOWN_FACES_DIR = 'known_faces'
TOLERANCE = 0.4
FRAME_THICKNESS = 3
FONT_THICKNESS = 2
MODEL = 'cnn'
video = cv2.VideoCapture(0)
print('Encoding faces...')
known_faces = []
known_names = []
for name in os.listdir(KNOWN_FACES_DIR):
for filename in os.listdir(f'{KNOWN_FACES_DIR}/{name}'):
image = face_recognition.load_image_file(f'{KNOWN_FACES_DIR}/{name}/{filename}')
box = face_recognition.face_locations(image,model=MODEL)[0]
encoding = face_recognition.face_encodings(image,box)[0]
known_faces.append(encoding)
known_names.append(name)
print(known_faces)
np.save('face_repr.npy', known_faces)
np.save('labels.npy', known_names)
我们取目录 A、B、C、D 中花朵的名称 如果我打印known_faces,输出为: ['A','A','A','A','A','A','A','A','A','A','A', 'B','B','B','B','B','B','B','B','B','B','B', 'C','C','C','C','C','C','C','C','C','C','C', 'D','D','D','D','D','D','D','D','D','D','D']
因此,它不是为 4 个人创建编码,而是为 40 个人创建编码(40 张图像)。 我想要 4 个人使用 40 张图像进行 4 种编码。 请帮忙!
https://github.com/ageitgey/face_recognition/blob/master/examples/face_recognition_svm.py
这可能就是你正在寻找的,它是face_recognition的主要仓库