[ad_1]
![](https://electronicsforu.com/wp-contents/uploads/2017/06/nidhi-150x150.jpg)
Un sistema de reconocimiento facial en tiempo real es capaz de identificar o verificar a una persona a partir de una imagen de vídeo. Para detectar la cara en un marco, primero debe determinar si la cara está en el marco. Si está presente, márquela como región de interés (ROI), extraiga el ROI y procéselo para la detección de rostros.
Reconocimiento facial en tiempo real: guía paso a paso
Este proyecto se divide en dos partes: creación de una base de datos y capacitación y pruebas.
Creando una base de datos
Después de correr, toma fotografías de la persona para reconocer su rostro. crear_base_de_datos.py Guion. Crea automáticamente una carpeta de tren en la carpeta de la base de datos que contiene la cara a detectar. Puedes cambiar el nombre de «Tren» al nombre de la persona.
Al crear la base de datos, las imágenes faciales deben tener diferentes expresiones, es por eso que el código para crear el conjunto de datos especifica un retraso de 0,38 segundos. En este ejemplo, tomaremos alrededor de 45 imágenes, extraeremos la cara, la convertiremos a escala de grises y la guardaremos con su nombre en la carpeta de la base de datos.
entrenamiento y pruebas
A continuación se realiza el entrenamiento y el reconocimiento facial. face_rec.py El código lo hace todo. El algoritmo utilizado aquí son los histogramas de patrones binarios locales (LBPH).
![Características del cabello: reconocimiento facial en tiempo real](https://electronicsforu.com/wp-contents/uploads/2017/07/Screenshot-of-Haar-features.jpg)
La detección de rostros busca o localiza uno o más rostros humanos en una imagen o imagen fija. El algoritmo de características similares a cabellos de Viola y Jones se utiliza para el reconocimiento facial. En cuanto a los rasgos del cabello, todos los rostros humanos comparten algunas características comunes. Estas regularidades se pueden ajustar utilizando las funciones de Haar, como se muestra en la Fig. 1.
Dos características que comparten los rostros humanos son:
- La región de los ojos es más oscura que la parte superior de las mejillas.
- El puente de la nariz es más claro que los ojos.
La composición de dos características que conforman los rasgos faciales coincidentes es:
- Ubicación y tamaño, incluidos ojos, boca y puente de la nariz.
- Valor para gradientes orientados de intensidades de píxeles.
Por ejemplo, la diferencia de brillo entre rectángulos blancos y negros en un área determinada viene dada por:
Valor = Σ (píxel en el área negra) – Σ (píxel en el área blanca)
Las cuatro características anteriores coincidentes con el algoritmo de Haar se comparan en la imagen de una cara que se muestra a la izquierda en la Fig. 1.
procedimiento de prueba
Instale OpenCV y Python en Ubuntu 16.04
El proyecto fue probado en Ubuntu 16.04 con OpenCV 2.4.10. El siguiente script de shell instala todas las dependencias necesarias para OpenCV y también instala OpenCV 2.4.10.
$ sh ./instalar-opencv.sh
Una vez instalado, verifique OpenCV en la terminal usando el comando de importación como se muestra en la Fig. 2.
![Verificando OpenCV con el comando de importación](https://electronicsforu.com/wp-contents/uploads/2017/07/Checking-OpenCV-using-import-command.jpg)
![Creando la base de datos para el reconocimiento facial en tiempo real](https://electronicsforu.com/wp-contents/uploads/2017/07/Creating-the-database.jpg)
1. Cree la base de datos y ejecute el script de detección como se indica a continuación (también se muestra en la Fig. 3). Cree al menos dos registros en la base de datos.
$ python create_database.py nombre_persona
2. Ejecute el script de detección como se indica a continuación:
$ python face_rec.py
Esto iniciará el entrenamiento y abrirá la cámara como se muestra en la figura 4. La precisión depende del número de conjuntos de datos, así como de la calidad y las condiciones de iluminación.
![Captura de pantalla de reconocimiento facial en tiempo real](https://electronicsforu.com/wp-contents/uploads/2017/07/Screenshot-of-face-detection.jpg)
OpenCV 2.4.10.
OpenCV proporciona las siguientes tres funciones de reconocimiento facial:
- propio reconocimiento facial
- Reconocedor de Fisherface
- Reconocimiento facial LBPH
El reconocimiento facial LBPH se utiliza en este proyecto. crearLBPHFaceRecognizer() Función.
LBP funciona con imágenes en escala de grises. Para cada píxel en una imagen en escala de grises, se selecciona una vecindad alrededor del píxel actual y el valor LBP para el píxel se calcula a partir de la vecindad.
Después de calcular el valor LBP del píxel actual, la posición del píxel correspondiente en la máscara LBP (tiene la misma altura y ancho que la imagen de entrada) se actualiza con el valor LBP calculado, como se muestra en la Fig. 5.
![Reconocimiento facial LBPH](https://electronicsforu.com/wp-contents/uploads/2017/07/Screenshot-of-a-LBPH-face-recogniser.jpg)
Hay ocho píxeles vecinos en la imagen. Si el valor del píxel actual es mayor o igual que el valor del píxel vecino, el bit correspondiente en la matriz binaria se establece en 1. Sin embargo, si el valor del píxel actual es menor que el valor del píxel vecino, el bit correspondiente en la matriz binaria se establece en 1 igual a 0.
Descargar Código fuente
¿Interesado en proyectos de reconocimiento facial? Prueba el reconocimiento facial con Raspberry Pi.
Este artículo se publicó por primera vez el 21 de julio de 2017 y se actualizó recientemente en agosto de 2023.
[ad_2]