Tabla de contenido:

Reconocimiento e identificación facial - Face ID de Arduino usando OpenCV Python y Arduino .: 6 pasos
Reconocimiento e identificación facial - Face ID de Arduino usando OpenCV Python y Arduino .: 6 pasos

Video: Reconocimiento e identificación facial - Face ID de Arduino usando OpenCV Python y Arduino .: 6 pasos

Video: Reconocimiento e identificación facial - Face ID de Arduino usando OpenCV Python y Arduino .: 6 pasos
Video: Face Recognition and Identification | Arduino Face ID using openCV python and Arduino. 2024, Noviembre
Anonim
Image
Image

El reconocimiento facial, también conocido como Face ID, es una de las características más importantes de los teléfonos móviles en la actualidad.

Entonces, tenía una pregunta "¿puedo tener una identificación de rostro para mi proyecto Arduino" y la respuesta es sí …

Mi viaje comenzó de la siguiente manera:

Paso 1: acceso a la cámara web

paso 2: identificación facial.

paso 3: recopilación de datos

Paso 4: Entrenamiento

paso 5: reconocimiento facial

paso 6: Programación de Arduino

Explicaré todos los pasos a continuación. Espero que esto te ayude.

Paso 1: acceso a la cámara web

Acceso a la webcam
Acceso a la webcam

El primer paso para el reconocimiento facial fue tener acceso a una cámara o una visión por computadora. Dado que India está bloqueada, la solución más barata que encontré fue usar la cámara web de mi computadora a la que tenía acceso con un programa de Python usando el módulo openCV.

Puede que estés pensando qué es OpenCV, ¿no?

OpenCV (Open Source Computer Vision Library) es una biblioteca de software de visión artificial y aprendizaje automático de código abierto. OpenCV se creó para proporcionar una infraestructura común para aplicaciones de visión por computadora y para acelerar el uso de la percepción de la máquina en productos comerciales.

Si Opencv está instalado en su computadora, entonces está listo para comenzar. Si no es así, siga este paso.

Abra el símbolo del sistema y escriba "pip install opencv".

Advertencia: Es posible que obtenga un error porque "'pip' no se reconoce como un comando interno o externo". para lo cual debe agregar la ruta de su instalación de pip a su variable de sistema PATH. Revisa esta publicación, puede que te ayude.

stackoverflow.com/questions/23708898/pip-i…

Una vez que OpenCV esté instalado, estamos listos para comenzar … Para verificar si está instalado correctamente, abra su intérprete de Python e importe la biblioteca. Vea la imagen de arriba que debería ser su salida.

Descargue el archivo de Python "AccessTo_webcam.py" y ejecútelo. He proporcionado todos los comentarios necesarios allí.

Ahí lo tienes, ahora tienes acceso a la cámara web. Bien hecho. procedamos al paso 2.

Paso 2: Identificación facial

Identificación facial
Identificación facial

con la ayuda del mismo módulo OpenCV, tenemos que identificar si hay una cara en la transmisión de video o no.

OpenCV proporciona un método de entrenamiento o modelos previamente entrenados llamados Cascade Classifier. Los modelos previamente entrenados se encuentran en la carpeta de datos en la instalación de OpenCV. Le proporciono ese archivo, simplemente descárguelo y colóquelo en la carpeta de su proyecto. La carpeta donde se almacena el archivo "AccessTo_webcam.py". Si no ha creado uno, hágalo.

Descarga "haarcascade_frontalface_default" y colócalo en la carpeta principal del proyecto.

Descarga "Face_identification.py" y colócalo en la carpeta principal del proyecto. Toda la explicación se proporciona en él.

Ahora puede identificar las caras en una transmisión de video. Así que vayamos al paso 3.

Paso 3: recopilación de datos

Recopilación de datos
Recopilación de datos

Para reconocer las caras necesitamos entrenar nuestro programa Python. Para lo cual necesitamos algunos datos.

La recopilación de datos es el paso más fácil de este proyecto. cree una carpeta llamada "image_data" en la carpeta principal de su proyecto. Dentro de la carpeta "image_data" crea algunas carpetas adicionales con el nombre de la persona, donde almacenaremos los datos. por ejemplo:

En la carpeta "image_data" he creado dos carpetas más llamadas "HRK" y "Yahiya". como se muestra en la imagen de arriba.

Ahora cree sus propias carpetas y asígneles un nombre.

Una vez que se crean las carpetas, comience a recopilar imágenes de esa persona específica. Recomiendo recopilar cerca de 20 imágenes por persona. También puede agregar más imágenes, pero asegúrese de que los datos recopilados para todas las personas contengan el mismo número de imágenes. Ayuda a proporcionar precisión.

eso es todo, ahora pasemos al paso 4.

Paso 4: Entrenamiento

En resumen, revisaremos todas las carpetas e imágenes que están presentes en la carpeta "image_data" y crearemos un diccionario que contendrá el ID de la etiqueta y el nombre correspondiente. Simultáneamente cargaremos la imagen para detectar el rostro en todas y cada una de las imágenes a las que llamamos "Región de interés" y crearemos un archivo ".yml" que contiene esa información.

Suponiendo que tiene datos recopilados para la persona X e Y.

etiquetaremos a la persona X como 1, que será su ID de etiqueta y el nombre será X mismo. Cargamos la imagen para encontrar su rostro, es decir, la región de interés y adjuntamos los datos a una lista.

Se seguirán pasos similares para la persona Y. Y finalmente, crearemos un archivo ".yml".

Descarga el archivo "face_trainer.py" y colócalo en la carpeta principal del proyecto. Toda la explicación necesaria se proporciona en ese archivo.

Cuando ejecute este programa, revisará todas las imágenes y creará dos archivos llamados "labels.pickle" y "trainner.yml". Ahora ha entrenado su propio modelo. así que vayamos al paso 5.

Paso 5: reconocimiento facial

Reconocimiento facial
Reconocimiento facial

Si ha seguido todos los pasos correctamente, es posible que haya creado sus propios datos entrenados. Ahora usaremos esos datos para el reconocimiento facial.

Básicamente, cargaremos nuestros modelos entrenados en el archivo de Python, accederemos a nuestra cámara web e identificaremos Caras en la transmisión de video y haremos una comparación o predicción entre la cara actual que se identifica en la transmisión de video y el modelo que fue entrenado. si los datos coinciden, decimos que la persona es reconocida, es así de simple …

Descarga "face_recognise.py" y ejecútalo. En él se proporciona toda la información necesaria. Ahora es posible que tu rostro haya sido reconocido. si la precisión no es buena, intente actualizar los datos. si está listo para comenzar, procedamos al paso 6 /

Paso 6: Programación de Arduino

El último y último paso es programar Arduino, y proporcionar un modo de comunicación entre Python y Arduino. Para la comunicación, utilicé "Comunicación en serie". Revise el video que he vinculado anteriormente para encontrar cómo funciona la comunicación en serie y establecer una. Encontrará todos los archivos requeridos en la descripción del video.

Si has leído el video, déjame explicarte lo que hice. Cuando se reconoce mi rostro, la identificación de la etiqueta proporcionada es 2. Una vez que la identificación de la etiqueta es 2, enviaré '1' como datos en serie a mi Arduino. Lo que encenderá mi circuito de seguimiento de LED. Si la identificación de la etiqueta es diferente a 2, enviaré '0' como datos en serie, lo que apagará mi circuito de seguimiento de LED.

Descargue el archivo "ard_chaser.ino". Es un sencillo programa de seguimiento de LED que utiliza comunicación en serie.

Simillerly descargue "face_recogniser1.py" que establecerá la comunicación serial entre Arduino y el programa Python.

Ahí tienes. Espero que hayas aprendido algo nuevo. Suscríbete a mi canal de youtube para más cosas relacionadas con Python y Arduino. Comparte esto si te gusto. Sigue apoyando.

Gracias.

Recomendado: