DEV Community

Cover image for Face detection using openCV python.
Rishabh Dwivedi
Rishabh Dwivedi

Posted on

Face detection using openCV python.

Face detection is really fun, attractive and it has its own use.

Without going in much definition let's jump to our implementation.

What is openCV?

openCV stands for Open source computer vision. it is a library of programming functions mainly aimed at real-time computer vision.

For making task easier they have pretrained model name haarcascade
which provides good accuracy.

Approach.

  • install opencv at first.
pip install opencv-python
Enter fullscreen mode Exit fullscreen mode
  • Import libraries
import cv2
Enter fullscreen mode Exit fullscreen mode
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# Read the input image
img = cv2.imread('your-image')
# convert it into gray code from BGR
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# apply a scale of 1.1 and 4
faces = face_cascade.detectMultiScale(gray, 1.1, 4)

# Make rectangle around face of green colour and thickness of 3.
for (x, y , w ,h) in faces:
  cv2.rectangle(img, (x,y), (x+w, y+h), (0, 255 , 0), 3)

# Display the output
cv2.imshow('img', img)
cv2.waitKey()
Enter fullscreen mode Exit fullscreen mode
  • And here you are done.... Output image Alt Text

This code will detect multiple faces on any image with great accuracy.

It is also possible to detect multiple faces in realtime in videos.
That will be a part of my next blog.
(You can ask doubt in comment section.)

Thanks for reading.
Rishabh Dwivedi.

Top comments (2)

Collapse
 
saschadev profile image
Der Sascha

Hey nice One!

Is it possible to detect a particular face and enrichbit with data based on a data base?

I think this would be a nice Feature for a Check in and check out to and from workspace

Collapse
 
rishabh062 profile image
Rishabh Dwivedi

Thanks.
Yes its possible but I think for achieving you need to use advance concepts of machine learning.
You need to train your own neural networks( using Tensorflow) with which you need to train the faces at different position and with that you can detect specific face, finally you can install this model at your workspace.
And it will going to work.

Eg: Attendance system using computer vision.