使用opencv使用多张图像进行人脸识别

问题描述 投票:0回答:1

我一直在尝试使用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 种编码。 请帮忙!

python numpy opencv deep-learning face-recognition
1个回答
0
投票

https://github.com/ageitgey/face_recognition/blob/master/examples/face_recognition_svm.py

这可能就是你正在寻找的,它是face_recognition的主要仓库

© www.soinside.com 2019 - 2024. All rights reserved.