Face Recognition with Python

Hey, how you doing?

Today we will be doing our first coding tutorial here!!!✨✨

So, in this tutorial we gonna be building a face recognition program in python using an amazing module called openCV

What is opencv?

OpenCV is a library of programming functions mainly aimed at real-time computer vision. As you can see there is something there called Computer vision.. am gonna brief that now

Computer vision: Computer vision is a field of artificial intelligence that trains computers to interpret and understand the visual world. Using digital images from cameras and videos and deep learning models, machines can accurately identify and classify objects — and then react to what they “see.” Now am pretty sure we understand those, so lets code

First thing you need to do is open up your code editor and open your project directory in there Next we have to install OpenCV, to install type

pip install opencv-python

Then it should be done Next create a python file and save it as anything you want Now in the editor import opencv by typing

import cv2

Add this after that

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

What that does is that it loads up the datasets we are gonna be using, you can download them Here

Next add

img = cv2.imread('nn.jpg') faces = face_cascade.detectMultiScale(img, 1.3, 5)

in this part, we read our image from our project directory, as you can see the image name is nn.jpg

Next add

print(f'faces found {len(faces)}') print(img.shape) print('Cord', faces)

This just print the faces found in the image, the width, height and the coordinates

Next add

for (x,y,w,h) in faces: cv2.rectangle(img, (x,y), (x+w, y+h), (0,255,0), 2)

this loops the x,y,w,h in the faces variable. the x and y represent length and the w, h represents weight and height then cv2.rectangle is used to draw rectangle on a image. so it selects the img and look of the position of face and we added color green (0,255,0) and border thickness of 2

Next add

cv2.imshow('image', img) cv2.waitKey(0) cv2.destroyAllWindows()

this will show the image and if any key is been pressed it closes the image You should be having this now


so now lets add the eye detection

below the cv2.rectangle add this

roi_face = img[y:y+h, x:x+w] eyes = eye_cascade.detectMultiScale(roi_face, 1.3, 5) for (ex, ey, ew, eh) in eyes: cv2.rectangle(roi_face, (ex,ey),(ex+ew, ey+eh), (255,0,0), 2)

what this those is detect the eye on the face

so before we round up let add some text on the image

right after that code above, add this

font = cv2.FONT_HERSHEY_SIMPLEX text = cv2.putText(img, 'Face detected', (0, img.shape[0]), font, 2, (255,255,255), 2)

what this those is that the font variable selects the simplest font in cv2 and we created a text and we added the text face detected then included it right below the image and also set a color for the text and border weight

so if you follow up till now, you should be having this


✨✨✨ If you have any questions comment them below and if you need the project instead check my Github


Abdulsalam Ishaq's photo

Nice post sir

Emmanuel's photo

Wow this tutorial is cool