Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo utilizar OpenCV para el reconocimiento facial

Cómo utilizar OpenCV para el reconocimiento facial

1. El primer paso es preparar los datos. Debe descargar algunas bases de datos faciales de Internet, que se utilizarán para entrenar el modelo de reconocimiento facial más adelante. El modelo de detección de rostros viene con opencv, pero el modelo de reconocimiento requiere entrenamiento. Después de descargar la base de datos de rostros, debe etiquetar los rostros. Esta es una tarea tediosa, pero existen scripts en Internet o programas escritos por usted mismo para simplificar la carga de trabajo.

2. Opencv funciona después de la anotación de datos. La función de entrenamiento es muy sencilla. Solo existen las siguientes tres oraciones:

Ptrlt; FaceRecognizergt; model = createEigenFaceRecognizer();

model-gt; model- gt. save("MyFacePCAModel.xml");

3. Luego abra la cámara para la detección de rostros, es decir, encuadre la posición del rostro. El modelo de detección de rostros viene con opencv.

CascadeClassifier cascade;

cascade.load("haarcascade_frontalface_alt.xml");

Este es el método de carga.

cascade.detectMultiScale(gris, caras,

1.1, 2, 0

/|CV_HAAR_FIND_BIGGEST_OBJECT

/|CV_HAAR_DO_ROUGH_SEARCH

/|CV_HAAR_SCALE_IMAGE,

Tamaño(30, 30));

Este es el método de detección. Lo que obtienes aquí son marcos rectangulares para la cara y luego los dibujas usando el método de dibujar rectángulos.

4. Luego use el modelo de rostro que acabamos de entrenar para identificar el rostro detectado. Cargando:

Ptrlt;FaceRecognizergt; modelPCA = createEigenFaceRecognizer();

modelPCA-gt;load("MyFacePCAModel.xml");

Detección:

p>

int predictPCA = 0;

if (face.rows gt; = 120)

{

resize(face, face_test, Size(92, 112));

}

if (!face_test. vacío())

{

predictPCA = modelPCA-gt; predict(face_test);

}

Si el resultado previsto es igual al resultado marcado, significa que el reconocimiento es correcto.

El proceso general es así. Si sabes algo sobre opencv, deberías poder entenderlo.