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
- Import libraries
import cv2
- Attach frontal-face and apply basic logic.
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()
- And here you are done.... Output image
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)
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
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.