Face Detection using Python | OpenCV - Computer Vision | Machine Learning Project Tutorial
Face detection is a computer technology being used in a variety of applications that identifies human faces in digital images. The computer vision community has devised various tasks, such as image classification, object detection, localization, etc., for understanding images and their content.
In this project tutorial we will use various OpenCV and haarcascades functions to analyse and detect faces on images.
You can watch the video based tutorial with step by step explanation down below
The project uses OpenCV module and haarcascades file to detect faces in the images.
Download the haarcascade file here
We will install the OpenCV module
pip install opencv-python
import cv2 import matplotlib.pyplot as plt %matplotlib inline
cv2 - OpenCV module
matplotlib - used for data visualization and graphical plotting
HAAR Cascade File Path
First we must configure the HAAR Cascade file path
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')
Load the Image
Next we load he test image to process the data
image = cv2.imread('test image.jpg') # convert to rgb img_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) plt.imshow(img_rgb)
Now we can see the loaded image
In OpenCV, the image will be in BGR format, you must convert it into RGB format for further processing
There are five faces in the image, you can resize the image for better processing
We need to resize the image for better processing
# resize the image image = cv2.resize(image, (400, 600))
Next we convert the image into grayscale for quicker processing
# convert to gray scale image gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) plt.imshow(gray, cmap='gray')
Finally, after preprocessing the images into a standard format to get better and faster results, we will proceed to the face detection method
faces = face_cascade.detectMultiScale(gray)
Function to analyze the image for face detection and store them
No. of faces that was detected
# diplay the faces in the image for (x, y, w, h) in faces: cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2) cv2.imshow("Faces ",image) cv2.waitKey(0)
Result of the display of the faces, not very accurate due to resolution of the image
rectangle() - Function to display a bounding box indicating where the face is being detected.
This is a simple image processing technique to detect faces in the image file.
You may also use a webcam or video recording for real time face detection using the same method.
You can apply facial recognition methods to expand the project for further work.
In this project tutorial, we have explored the Face detection project using OpenCV and the HAAR Cascade module. This is a basic image processing method to analyze the data using machine learning techniques.
Get the project notebook from here
Thanks for reading the article!!!
Check out more project videos from the YouTube channel Hackers Realm