Programa Opencv Python para detección de rostros

El objetivo del programa dado es detectar el objeto de interés (rostro) en tiempo real y realizar un seguimiento del mismo objeto. Este es un ejemplo simple de cómo detectar el rostro en Python. Puede intentar usar muestras de entrenamiento de cualquier otro objeto de su elección para ser detectado entrenando el clasificador en los objetos requeridos.

Estos son los pasos para descargar los requisitos a continuación.

Pasos:

  1. Descargue la versión de Python 2.7.x, numpy y la versión de Opencv 2.7.x. Compruebe si su Windows de 32 bits o de 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 encuentran en el código a continuación).

Implementación

# 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/Itseez/opencv/blob/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/Itseez/opencv/blob/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 (x,y,w,h) in faces:
        # To draw a rectangle in a face 
        cv2.rectangle(img,(x,y),(x+w,y+h),(255,255,0),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 (ex,ey,ew,eh) in eyes:
            cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,127,255),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:

output


Artículo siguiente:
Programa Opencv C++ para detección de rostros

Referencias:

Este artículo es una contribución de Afzal Ansari . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *