利用opencv带你玩转人脸识别-中篇(人脸检测,检测多个,视频检测快速入门)

本文将介绍如何使用 OpenCV_进行 _人脸 识别_模型的训练。 1. 收集 _人脸_数据 首先需要准备一些标记了 _人脸_的图像,可以通过人工标注或使用自动化工具来收集。要求每个人的数据独立,没有与其他人的数据交叠。对于每个人,建议至少收集15张标记了 _人脸_的图像。 2. 准备数据集 将数据集按照以下格式进行组织: data/ person1/ image1.jpg image2.jpg ... person2/ image1.jpg image2.jpg ... ... 3. 训练模型 使用 _OpenCV_中的 cv2.face.LBPHFaceRecognizer_create() 函数进行模型的训练。此函数需要接收两个参数,打开数据集后,第一个是训练图像列表,第二个是标记列表。 一旦模型训练完成,可以将它保存下来以备后续使用。 以下是示例代码: python import cv2 import os # 准备数据集 data_dir = "data" labels = [] images = [] for subdir in os.listdir(data_dir): subdir_path = os.path.join(data_dir, subdir) if os.path.isdir(subdir_path): label = int(subdir[1:]) for filename in os.listdir(subdir_path): image_path = os.path.join(subdir_path, filename) image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) images.append(image) labels.append(label) # 训练模型 face_recognizer = cv2.face.LBPHFaceRecognizer_create() face_recognizer.train(images, labels) # 保存模型 model_file = "face_recognizer.yml" face_recognizer.write(model_file) print("Model Trained") 以上代码将在 data 目录中查找子目录 person1, person2 等人的图像。cv2.imread() 函数读取图像并将其添加到图像列表中,同时将标签添加到相应的标签列表中。然后通过 cv2.face.LBPHFaceRecognizer_create() 函数来创建一个 _人脸 _识别_器,并调用 train() 函数以训练 _识别_器。最后,使用 write() 函数将模型保存到文件中。 4. 使用模型 训练完成后,可以使用以下代码来使用模型: python import cv2 # 加载模型 model_file = "face_recognizer.yml" face_recognizer = cv2.face.LBPHFaceRecognizer_create() face_recognizer.read(model_file) # 读取图像并进行 _人脸_ _识别_ image = cv2.imread("test_image.jpg", cv2.IMREAD_GRAYSCALE) label = face_recognizer.predict(image)[0] 使用 cv2.face.LBPHFaceRecognizer_create() 函数加载模型,然后再使用 read() 函数加载已保存的模型。要对新图像进行预测,读取图像并使用 predict() 函数进行预测。该函数将返回一个元组 (label, confidence) ,其中 label 是预测的标签,confidence 是模型的置信度。

Original: https://blog.csdn.net/weixin_46277553/article/details/124523671
Author: 苏凉.py
Title: 利用opencv带你玩转人脸识别-中篇(人脸检测,检测多个,视频检测快速入门)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/637028/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球