VOOZH about

URL: https://dzone.com/articles/face-and-eyes-detection-opencv

⇱ Face and Eye Detection in OpenCV


Related

Face and Eye Detection in OpenCV

By Jan. 20, 12 · Interview
Likes
Comment
Save
18.7K Views

Join the DZone community and get the full member experience.

Join For Free

The goal of object detection is to find an object of a pre-defined class in an image. In this post we will see how to use the Haar Classifier implemented in OpenCV in order to detect faces and eyes in a single image.

(Note: this article is part of a series (,2) on object detection with OpenCV in Python. --Ed.)


We are going to use two trained classifiers stored in two XML files:

  • haarcascade_frontalface_default.xml - that you can find in the directory /data/haarcascades/ of your OpenCV installation
  • haarcascade_eye.xml - that you can download from this website.

The first one is able to detect faces and the second one eyes. To use a trained classifier stored in a XML file we need to load it into memory using the function cv.Load() and call the function cv.HaarDetectObjects() to detect the objects. Let's see the snippet:

imcolor = cv.LoadImage('detectionimg.jpg') # input image
# loading the classifiers
haarFace = cv.Load('haarcascade_frontalface_default.xml')
haarEyes = cv.Load('haarcascade_eye.xml')
# running the classifiers
storage = cv.CreateMemStorage()
detectedFace = cv.HaarDetectObjects(imcolor, haarFace, storage)
detectedEyes = cv.HaarDetectObjects(imcolor, haarEyes, storage)

# draw a green rectangle where the face is detected
if detectedFace:
 for face in detectedFace:
 cv.Rectangle(imcolor,(face[0][0],face[0][1]),
 (face[0][0]+face[0][2],face[0][1]+face[0][3]),
 cv.RGB(155, 255, 25),2)

# draw a purple rectangle where the eye is detected
if detectedEyes:
 for face in detectedEyes:
 cv.Rectangle(imcolor,(face[0][0],face[0][1]),
 (face[0][0]+face[0][2],face[0][1]+face[0][3]),
 cv.RGB(155, 55, 200),2)

cv.NamedWindow('Face Detection', cv.CV_WINDOW_AUTOSIZE)
cv.ShowImage('Face Detection', imcolor) 
cv.WaitKey()

These images are produced running the script with two different inputs. The first one is obtained from an image that contains two faces and four eyes:



And the second one is obtained from an image that contains one face and two eyes (the shakira.jpg we used in the post about PCA):



OpenCV

Published at DZone with permission of Giuseppe Vettigli. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • OpenCV Integration With Live 360 Video for Robotics
  • Facial Recognition and Identification in Computer Vision
  • Run Hundreds of Experiments with OpenCV and Hydra

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

Let's be friends: