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:
- 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.
- Asegúrese de que numpy se esté ejecutando en su python y luego intente instalar opencv.
- 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:
Artículo siguiente: Programa Opencv C++ para detección de rostros
Referencias:
- https://www.youtube.com/v=WfdYYNamHZ8
- http://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html?highlight=cascadeclassifier#cascadeclassifier
- http://www.multimedia-computing.de/mediawiki//images/5/52/MRL-TR-May02-revised-Dec02.pdf
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