Tabla de contenido:
- Paso 1: detección de rostros en un video en tiempo real
- Paso 2: Entrenamiento de sus imágenes de muestra
- Paso 3: reconocer caras
Video: Detección, entrenamiento y reconocimiento de rostros Opencv: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
OpenCV es una biblioteca de visión por computadora de código abierto que es muy popular para realizar tareas básicas de procesamiento de imágenes como desenfocar, mezclar imágenes, mejorar la calidad de imagen y video, establecer umbrales, etc. Además del procesamiento de imágenes, proporciona varios métodos de aprendizaje profundo previamente entrenados modelos que se pueden utilizar directamente para resolver tareas sencillas.
para la instalación de opencv use este enlace
www.instructables.com/id/Opencv-and-Python…
Paso 1: detección de rostros en un video en tiempo real
Puede buscar en Google muchos programas de detección de rostros y los rostros detectados deben guardarse en una carpeta para procesar más imágenes, como entrenamiento y etiquetado. vamos a recolectar 30 muestras
importar cv2
importar numpy como np
import os import sys
camera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") # agregue la ruta del archivo harcascade
name = raw_input ("¿Cuál es su nombre?")
#todos los archivos se guardarán en la carpeta Users / prasad / Documents / images
dirName = "/ Users / prasad / Documents / images /" + nombre
print (dirName) si no os.path.exists (dirName): os.makedirs (dirName) print ("Directorio creado") else: print ("El nombre ya existe") sys.exit ()
cuenta = 1
# vamos a recolectar 30 muestras
while count 30: break # frame = frame.array gray = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale (gris, 1.5, 5) para (x, y, w, h) en caras: roiGray = gris [y: y + h, x: x + w] fileName = dirName + "/" + name + str (count) + ".jpg" cv2.imwrite (fileName, roiGray) cv2.imshow ("face", roiGray) cv2.rectangle (frame, (x, y), (x + w, y + h), (0, 255, 0), 2) count + = 1 cv2.imshow ('frame', frame) key = cv2.waitKey (1)
si clave == 27:
rotura
# camera.release ()
cv2.destroyAllWindows ()
Paso 2: Entrenamiento de sus imágenes de muestra
Una vez que se completó la detección de rostros, podemos entrenar las imágenes.
importar osimport numpy como np desde PIL importar imagen importar cv2 importar pickle #import serial
#ser = serial. Serial ('/ dev / ttyACM0', 9600, tiempo de espera = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
reconocedor = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ archivo_))
#entrenar las imágenes en la carpeta de imágenes
imageDir = os.path.join (baseDir, "imágenes")
currentId = 1
labelIds = {} yLabels = xTrain = # ser.write ("Entrenando…..". encode ())
para root, dirs, archivos en os.walk (imageDir):
imprimir (raíz, directorios, archivos) para el archivo en archivos: imprimir (archivo) si archivo.endswith ("png") o archivo.endswith ("jpg"): ruta = os.path.join (raíz, archivo) etiqueta = os.path.basename (root) print (etiqueta)
si no etiqueta en labelIds:
labelIds [label] = currentId print (labelIds) currentId + = 1
id_ = labelIds [etiqueta]
pilImage = Image.open (ruta).convert ("L") imageArray = np.array (pilImage, "uint8") faces = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minNeighbors = 5)
para (x, y, w, h) en caras:
roi = imageArray [y: y + h, x: x + w] xTrain.append (roi) yLabels.append (id_)
con open ("etiquetas", "wb") como f:
pickle.dump (labelIds, f) f.close ()
Recognizer.train (xTrain, np.array (yLabels))
Recognizer.save ("trainer.yml") imprimir (labelIds)
Paso 3: reconocer caras
después de que terminó el entrenamiento, ahora puede ejecutar el siguiente código para que comience a reconocer sus rostros entrenados
import osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np import pickle #import RPi. GPIO as GPIO from time import sleep
con open ('etiquetas', 'rb') como f:
dicti = pepinillo.load (f) f.close ()
camera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
Recognizer = cv2.face. LBPHFaceRecognizer_create () Recognizer.read ("trainer.yml")
font = cv2. FONT_HERSHEY_SIMPLEX
último = ''
# para el fotograma en camera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
while True: ret, frame = camera.read () gray = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale (gray, scaleFactor = 1.5, minNeighbors = 5) para (x, y, w, h) en caras: roiGray = gris [y: y + h, x: x + w]
id_, conf = reconocedor.predicto (roiGray)
para nombre, valor en dicti.items ():
if value == id_: print (name) cv2.putText (frame, name, (x, y), font, 2, (0, 0, 255), 2, cv2. LINE_AA) if name! = last: last = nombre si conf <= 70: cv2.rectangle (frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow ('marco', marco)
clave = cv2.waitKey (1)
si clave == 27:
romper cv2.destroyAllWindows ()
Recomendado:
Detección de color simple usando OpenCV: 6 pasos
Detección de color simple usando OpenCV: ¡Hola! Hoy voy a mostrar un método simple para detectar un color de un video en vivo usando OpenCV y Python Básicamente solo probaré que el color requerido está presente en el marco de fondo o no y usando módulos OpenCV enmascararé esa región y
Detección De Rostros Con Arduino Intel Edison: 8 Pasos
Detección De Rostros Con Arduino Intel Edison: El procesamiento de imágenes o la visión por computadora es uno de esos campos que requieren cantidades de investigación debido a que involucran métodos para adquirir, procesar, analizar y comprender las imágenes del mundo real con el fin de pag
Detección de rostros en tiempo real en RaspberryPi-4: 6 pasos (con imágenes)
Detección de rostros en tiempo real en RaspberryPi-4: En este Instructable vamos a realizar la detección de rostros en tiempo real en Raspberry Pi 4 con Shunya O / S usando la Biblioteca Shunyaface. Puede lograr una velocidad de fotogramas de detección de 15-17 en RaspberryPi-4 siguiendo este tutorial
Detección facial + reconocimiento: 8 pasos (con imágenes)
Detección y reconocimiento de rostros: este es un ejemplo simple de ejecución de detección y reconocimiento de rostros con OpenCV desde una cámara. NOTA: HICE ESTE PROYECTO PARA EL CONCURSO DE SENSORES Y UTILIZÉ LA CÁMARA COMO SENSOR PARA SEGUIMIENTO Y RECONOCIMIENTO DE CARAS. Entonces, Nuestro Objetivo En esta sesión, 1. Instalar Anaconda
Detección de rostros y ojos con Raspberry Pi Zero y Opencv: 3 pasos
Detección de rostros y ojos con Raspberry Pi Zero y Opencv: en este instructivo, voy a mostrar cómo puedes detectar rostros y ojos usando raspberry pi y opencv. Este es mi primer instructable en opencv. Seguí muchos tutoriales para configurar un CV abierto en frambuesa, pero siempre me encontré con algunos errores. De todos modos yo