logo

Programa Opencv Python para detección de rostros

El objetivo del programa proporcionado es detectar objetos de interés (rostro) en tiempo real y realizar un seguimiento del mismo objeto. Este es un ejemplo simple de cómo detectar rostros en Python. Puede intentar utilizar muestras de entrenamiento de cualquier otro objeto de su elección para que lo detecte entrenando al clasificador en los objetos requeridos. Estos son los pasos para descargar los requisitos a continuación.

Pasos:

  1. Descargue la versión numpy de Python 2.7.x y la versión Opencv 2.7.x. Verifique si su Windows de 32 o 64 bits es compatible e instálelo en consecuencia.
  2. Asegúrese de que numpy se esté ejecutando en su Python y luego intente instalar opencv.
  3. Coloque los archivos haarcascade_eye.xml y haarcascade_frontalface_default.xml en la misma carpeta (los enlaces se proporcionan en el código siguiente).

Implementación



Python
# OpenCV program to detect face in real time # import libraries of python OpenCV  # where its functionality resides import cv2 # load the required trained XML classifiers # https://github.com/opencv/opencv/tree/master # data/haarcascades/haarcascade_frontalface_default.xml # Trained XML classifiers describes some features of some # object we want to detect a cascade function is trained # from a lot of positive(faces) and negative(non-faces) # images. face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') # https://github.com/opencv/opencv/tree/master # /data/haarcascades/haarcascade_eye.xml # Trained XML file for detecting eyes eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') # capture frames from a camera cap = cv2.VideoCapture(0) # loop runs if capturing has been initialized. while 1: # reads frames from a camera ret img = cap.read() # convert to gray scale of each frames gray = cv2.cvtColor(img cv2.COLOR_BGR2GRAY) # Detects faces of different sizes in the input image faces = face_cascade.detectMultiScale(gray 1.3 5) for (xywh) in faces: # To draw a rectangle in a face  cv2.rectangle(img(xy)(x+wy+h)(2552550)2) roi_gray = gray[y:y+h x:x+w] roi_color = img[y:y+h x:x+w] # Detects eyes of different sizes in the input image eyes = eye_cascade.detectMultiScale(roi_gray) #To draw a rectangle in eyes for (exeyeweh) in eyes: cv2.rectangle(roi_color(exey)(ex+ewey+eh)(0127255)2) # Display an image in a window cv2.imshow('img'img) # Wait for Esc key to stop k = cv2.waitKey(30) & 0xff if k == 27: break # Close the window cap.release() # De-allocate any associated memory usage cv2.destroyAllWindows() 

Producción:

producción' title=

Artículo siguiente:

Programa Opencv C++ para detección de rostros Crear cuestionario