Source code for recognizertraining

import os
from PIL import Image

import numpy as np
import cv2

TRAINING_DATA_PATH = '../resources/training_data/'


[docs]def train_recognizer(user_id): """Loads training data from disk and trains face recognizer. Args: user_id: integer to be used as a training label. This is the number that will be returned by recognizer. Raises: ValueError: if yml file containing recognizer data was not found. """ face_recognizer = cv2.face.LBPHFaceRecognizer_create() try: face_recognizer.read('../resources/face_recognition_data.yml') except cv2.error: face_recognizer.write('../resources/face_recognition_data.yml') face_images = list() face_labels = list() for file in os.listdir(TRAINING_DATA_PATH): image_path = os.path.join(TRAINING_DATA_PATH, file) face_img = Image.open(image_path).convert('L') face_image_np = np.array(face_img, 'uint8') face_images.append(face_image_np) face_labels.append(user_id) face_recognizer.update(face_images, np.array(face_labels)) face_recognizer.write('../resources/face_recognition_data.yml')