Tabla de contenido:
- Paso 1: Cosas que necesita
- Paso 2: Opencv-Intro e instalación
- Paso 3: detección y reconocimiento de rostros en un video en tiempo real
- Paso 4: Ejecutar el código
Video: Reconocimiento facial Opencv: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
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
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 (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
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:
Abellcadabra (sistema de bloqueo de puertas con reconocimiento facial): 9 pasos
Abellcadabra (Sistema de bloqueo de puertas con reconocimiento facial): Durante la cuarentena, traté de encontrar una manera de matar el tiempo construyendo un sistema de reconocimiento facial para la puerta de la casa. Lo llamé Abellcadabra, que es una combinación entre Abracadabra, una frase mágica con timbre que solo tomo el timbre. JAJAJA
Marco de fotos OSD con reconocimiento facial: 11 pasos (con imágenes)
Marco de fotos OSD con reconocimiento de rostros: este instructivo muestra cómo hacer un marco de fotos con visualización en pantalla (OSD) con reconocimiento de rostros. El OSD puede mostrar la hora, el clima u otra información de Internet que desee
Espejo de reconocimiento facial con compartimento secreto: 15 pasos (con imágenes)
Espejo de reconocimiento facial con compartimento secreto: siempre me han intrigado los compartimentos secretos siempre creativos que se utilizan en historias, películas y cosas por el estilo. Entonces, cuando vi el Concurso de Compartimiento Secreto, decidí experimentar yo mismo con la idea y hacer un espejo de aspecto ordinario que abre una s
Cerradura de puerta de reconocimiento facial: 8 pasos
Cerradura de puerta de reconocimiento facial: ¡Aproximadamente un mes en la fabricación, presento la cerradura de puerta de reconocimiento facial! Traté de que se viera lo más ordenado que pude, pero solo puedo hacer tanto como un niño de 13 años. Esta cerradura de puerta de reconocimiento facial es operada por una Raspberry Pi 4, con una batería portátil especial
Reconocimiento e identificación facial - Face ID de Arduino usando OpenCV Python y Arduino .: 6 pasos
Reconocimiento e identificación facial | Arduino Face ID usando OpenCV Python y Arduino .: El reconocimiento facial AKA 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 nosotros