Tabla de contenido:

Reconocimiento facial Opencv: 4 pasos
Reconocimiento facial Opencv: 4 pasos

Video: Reconocimiento facial Opencv: 4 pasos

Video: Reconocimiento facial Opencv: 4 pasos
Video: RECONOCIMIENTO FACIAL Y REGISTRO DE HORA EN TIEMPO REAL | Face Recognition Python OpenCV 2024, Noviembre
Anonim
Reconocimiento facial Opencv
Reconocimiento facial Opencv

El reconocimiento facial es algo bastante común hoy en día, en muchas aplicaciones como teléfonos inteligentes, muchos dispositivos electrónicos. Este tipo de tecnología implica muchos algoritmos y herramientas, etc., que utiliza algunas plataformas SOC integradas como Raspberry Pi y visión por computadora de código abierto. bibliotecas como OpenCV, ahora puede agregar reconocimiento facial a sus propias aplicaciones como sistemas de seguridad.

En este proyecto, te diré cómo construir un reconocimiento facial usando una Raspberry Pi y hemos usado arduino + Lcd para mostrar el nombre de la persona.

Paso 1: Cosas que necesita

Cosas que necesitas
Cosas que necesitas

1 FRAMBUESA PI

2. ARDUINO UNO / NANO

PANTALLA LCD 3.16x2

4. RASPI-CAMERA / WEBcam (prefiero la webcam para obtener mejores resultados)

Paso 2: Opencv-Intro e instalación

Opencv-Intro e instalación
Opencv-Intro e instalación

OpenCV (biblioteca de visión por computadora de código abierto) es una biblioteca muy útil: proporciona muchas características útiles como reconocimiento de texto, reconocimiento facial, detección de objetos, creación de mapas de profundidad y aprendizaje automático.

Este artículo le mostrará cómo instalar Opencv y otras bibliotecas en Raspberry Pi que serán útiles al realizar la detección de objetos y otros proyectos. A partir de ahí, aprenderemos a realizar operaciones de imagen y video mediante la ejecución de un proyecto de reconocimiento de objetos y aprendizaje automático. En concreto, escribiremos un código sencillo para detectar rostros en una imagen.

¿Qué es OpenCV?

OpenCV es una biblioteca de software de aprendizaje automático y visión por computadora de código abierto. OpenCV se publica bajo una licencia BSD, lo que lo hace gratuito para uso académico y comercial. Tiene interfaces C ++, Python y Java y es compatible con Windows, Linux, Mac OS, iOS y Android. OpenCV fue diseñado para la eficiencia computacional y un fuerte enfoque en aplicaciones en tiempo real.

¿Cómo instalar OpenCV en una Raspberry Pi?

Para instalar OpenCV, necesitamos tener instalado Python. Dado que Raspberry Pis viene precargado con Python, podemos instalar OpenCV directamente.

Escriba los comandos a continuación para asegurarse de que su Raspberry Pi esté actualizado y para actualizar los paquetes instalados en su Raspberry Pi a las últimas versiones.

sudo apt-get updatesudo apt-get upgrade

Escriba los siguientes comandos en la terminal para instalar los paquetes necesarios para OpenCV en su Raspberry Pi.

sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4

Escriba el siguiente comando para instalar OpenCV 3 para Python 3 en su Raspberry Pi, pip3 nos dice que OpenCV se instalará para Python 3.

sudo pip3 instalar opencv-contrib-python libwebp6

Ahora, debería instalarse OpenCV.

(si se produjo algún error: aún puede hacerlo siguiendo el enlace a continuación

https://www.instructables.com/id/Raspberry-Pi-Hand…)

Ahora no se apresure, debemos verificar si se instaló correctamente o no

Pruebe su opencv de la siguiente manera:

1. Vaya a su terminal y escriba "python"

2. luego escriba "importar cv2".

3. luego escriba "cv2._ version_".

luego instale estas bibliotecas

pip3 instalar python-numpy

pip3 instalar python-matplotlib

Código de prueba para detectar rostros en una imagen:

importar cv2

faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml");

image = cv2.imread ('su nombre de archivo') #example cv2.imread ('home / pi / Desktop / filename.jpg')

obtendrá el resultado como si se formaran cajas cuadradas en las caras de las personas que están en la imagen.

Paso 3: detección y reconocimiento de rostros en un video en tiempo real

importar cv2

importar numpy como np

importar sistema operativo

importar serial

ser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) # / dev / ttyACM0 puede cambiar en su caso, depende del arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

reconocedor = cv2.face.createLBPHFaceRecognizer ()

imágenes =

etiquetas =

para el nombre de archivo en os.listdir ('Conjunto de datos'):

im = cv2.imread ('Conjunto de datos /' + nombre de archivo, 0)

images.append (im)

etiquetas.append (int (nombrearchivo.split ('.') [0] [0]))

#print nombre de archivo

names_file = open ('etiquetas.txt')

nombres = archivo_nombres.read (). split ('\ n')

Recognizer.train (imágenes, np.array (etiquetas))

print 'Entrenamiento Hecho… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # su dispositivo de video

lastRes = '' cuenta = 0

mientras que (1):

_, frame = cap.read ()

gris = cv2.cvtColor (marco, cv2. COLOR_BGR2GRAY)

caras = faceCascade.detectMultiScale (gris, 1.3, 5)

contar + = 1

para (x, y, w, h) en caras:

cv2.rectangle (marco, (x, y), (x + w, y + h), (255, 0, 0), 2)

if count> 20: res = names [Recognizer.predict (gray [y: y + h, x: x + w]) - 1]

if res! = lastRes:

lastRes = res

imprimir lastRes

ser.write (lastRes)

cuenta = 0

rotura

cv2.imshow ('marco', marco)

k = 0xFF y cv2.waitKey (10)

si k == 27:

rotura

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Paso 4: Ejecutar el código

Ejecutando el código
Ejecutando el código

1. Descarga los archivos adjuntos en el paso anterior.

2. copie sus fotos grises (6 imágenes / muestras…..) a su carpeta de conjunto de datos

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (número de imagen del conjunto de datos para más carpetas abiertas del conjunto de datos)

2. Brad Pitt-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

3. Leo-3_1, 3_2, 3_3, 3_4, 3_5, 3_6

4. Ironman4_1, 4_2, 4_3, 4_4, 4_5, 4_6

como el anterior, puede agregar las etiquetas para las personas respectivas,

así que si el pi detecta cualquier rostro entre 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, entonces fue etiquetado como Tom Cruise, así que tenga cuidado al cargar las fotos ………………

y luego conecte su arduino a su raspberry Pi y realice cambios en main.py codeser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) 3.coloque todos los archivos descargados (main.py, carpeta del conjunto de datos, haarcascade_frontalface_default.xml en una carpeta).

3. Ahora abre Raspi-terminal, ejecuta tu código con "sudo python main.py"

Recomendado: