Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39
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:
Reconocimiento de estrellas mediante visión por computadora (OpenCV): 11 pasos (con imágenes)
Reconocimiento de estrellas mediante visión por computadora (OpenCV): este instructivo le describirá cómo crear un programa de visión por computadora para identificar automáticamente patrones de estrellas en una imagen. El método utiliza la biblioteca OpenCV (Open-Source Computer Vision) para crear un conjunto de cascadas HAAR entrenadas que pueden ser
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