How to Build Gender Wise Face Recognition & Counting Application With OpenCV


Gender Wise Face Recognition with OpenCV

In this text, we’re going to find out how to construct a pc imaginative and prescient and deep studying mixture utility. Which performs gender smart face recognition with opencv and counts the individuals within the picture or within the video.

In different phrases with the assistance of deep studying and pc imaginative and prescient algorithms utilizing python opencv as a modeling bundle, we’ll classify the gender  and rely the faces for a given picture/video.

Building these sorts of fashions makes life simpler with the enhancements over the deep studying subject.

Nowadays deep studying subject is without doubt one of the most revolutionary applied sciences with speedy enhancement progress. It offers machines the means to assume and be taught on their very own. The key motivation for deep studying is to construct algorithms that mimic the human mind.

You might need additionally heard about Computer Vision. Often abbreviated as OpenCV. Which is outlined as a sub subject of examine that seeks to develop strategies to assist computer systems “see” and perceive the content material of digital pictures comparable to pictures and movies.

Learn how to construct a gender smart face recognition utility with opencv #deeplearing #opencv #computervision #python 

Click to Tweet

With the excessive finish analysis in deep studying, plenty of new functions of pc imaginative and prescient strategies have been launched. Which have now grow to be integral  elements of our on a regular basis lives. 

These embrace

  • Face recognition and indexing
  • Photo stylization
  • Machine imaginative and prescient in self-driving vehicles

We are usually not going to construct the excessive finish pc imaginative and prescient and deep studying utility on this article.

But we’re going to leverage each pc imaginative and prescient and deep studying to construct face detection functions with strategies of face recognition with opencv python. Which not solely counts the faces but in addition separates the female and male faces.

Excited proper ?

We are excited too 🙂 

Before we drive additional. Let’s see what you’re going to be taught by the tip of this text.

Let’s begin the discussions with understanding numerous functions of face recognition.

Face Recognition or Detection Applications

Face Recognition Applications

Face Recognition Applications

Face recognition strategies are probably the most promising strategies in pc imaginative and prescient. Using which we are able to develop and resolve many actual world  issues. 

Anything which requires human supervision can leverage the assistance of pc imaginative and prescient algorithms to construct functions to scale back the guide effort.

One such an utility is counting the individuals. This evokes us to develop a mannequin which is ready to detect gender and in addition rely faces individually.

Before going to construct this. Let’s test a couple of extra face recognition functions.

Using Face Detection In Daily Life

Daily Face Recognition Application

Daily Face Recognition Application

1. To unlock cellular, with out passcode

Using face detection, we are able to unlock the cellphone with out coming into the password. The cellphone digital camera will detect your face and test in case your face is matching with the  passcode face or not. If they discover your face the cellphone lock will robotically open. 

2. Google photographs grouping the identical individual photographs

Using face detection and recognition, the google  photographs could be grouped based mostly on the several types of faces. A brand new album shall be created in accordance to the brand new face.

3. Facial recognition in surveillance

Facial recognition can use in forensic investigations by robotically capturing and recognizing people in safety footage or different movies. This helps in pinpointing the individuals behaviour within the footage.

4.Track attendance in any sector

Using face recognition has the potential to monitor college students’ or worker’s attendance. In common, attendance sheets can enable college students to signal one other pupil, who’s ditching class. 

So  face recognition functions ensures college students aren’t skipping class. Face authentication is required inorder to make attendance at school or workplace.

Phones or some digital gadgets  are getting used to scan  faces and match their photographs in opposition to a database for validation.

5.Control entry to delicate areas

Face recognition is ready to work as a foremost of entry management. To make certain  that solely licensed people get into some locations like, boardrooms, financial institution vaults,labs, and different delicate areas.

Face Detection High Level Application

We have seen some low degree functions. Now let’s test some excessive degree functions.

Face Detection High Level Application

Face Detection High Level Application

1. Amazon Just Walk Out  Technology

The amazon simply stroll out know-how  helps in figuring out the individual and detecting the quantity from his amazon pockets for the gadgets he/she collected from the outlets.

2. Students Engagement

In western nations faculties. Face recognition is extensively use to Identify the coed faces and on prime of that creates information factors. Which helps in understanding  the coed’s activeness based mostly on the kind of class or lecture. Now the identical will assist in on-line programs too.

3.  Faster Payments

Face detection know-how permits a safer and sooner  means to make funds. By choosing  right into a pay-by-face approach, people can tie their face to regular fee strategies. Which helps in quick  purchases utilizing their faces as a fee technique.

 Which reduces the offline and on-line fraud transaction. If we’re nonetheless utilizing the standard means of funds, We want mannequin to indentify the fraud actions identification fashions.

4.Finding Missing Persons

Face recognition can be utilized to discover lacking childrens or individuals. If lacking people are added to a database. The system can grow to be alerted as quickly as they’re acknowledged by face recognition. 

It could be hooked up in  airports, retail shops or different public area. Do you imagine or not , in India 3000 lacking youngsters have been found in simply Four days utilizing face recognition.

We realized the potential utility round face recognition fashions. Now let’s find out how we are able to construct such face detection utility with python opencv library.

Face Recognition Modeling Approach 

Building the face recognition counter just isn’t a simple means. It’s not simple like constructing randomforest mannequin or constructing resolution tree mannequin. 

It required two foremost duties.

One is to construct a deep studying mannequin which is ready to detect gender of an individual and in addition return the rely of men and women. Next rely of faces in a picture or video.

As you already guessed the implementation. It will occur in two ranges. Let’s perceive about this two stage modeling a bit deeper. 

Two Stage Modeling

We are going to construct the face detection counting in two levels. 

  • Stage-1 – Model Training stage
  • Stage-2 – cascading and analysis stage.

Model Training Stage

In the primary stage we’re going to practice the CNN (Convolutional Neural Networks)  mannequin with each female and male pictures. In the following step we’ll save the educated mannequin for the following stage.

Cascading and analysis stage 

In the second stage we’ll  detect the faces utilizing cascading recordsdata. If you do not know concerning the cascading recordsdata don’t fear. You are going to perceive about it within the subsequent part.

We load the cascading recordsdata and go faces to the educated mannequin. The properly educated mannequin returns whether or not the face is male or feminine.

As a closing step we’re going to use len() to discover out the variety of faces in a picture or video.

Face Recognition Complete Workflow

This two stage method makes extra sense if we perceive the fashions workflow structure.

Before that Let’s perceive what the cascade classifier means. 

What is Cascade Classifier

Cascade classifiers is an efficient object detection technique proposed by Paul Viola and Michael Jones of their paper, “Rapid Object Detection using a Boosted Cascade of Simple Features” in 2001. 

Cascading is a particular case of ensemble studying. It is a mix of  a number of classifiers. Using all info taken from the output to a given classifier as additional info for the following classifier within the cascade.

Unlike voting or stacking ensembles, cascading is a multistage one.

Cascading classifiers are educated with a number of hundred “positive” pictures of a selected object and arbitrary “negative” pictures of the equal dimension. 

After the classifier is educated it may be utilized to a area of a picture and detect the item based mostly on requirement.

Models Workflow Architecture

Cascade and CNN Model Architecture

Cascade and CNN Model Architecture

  1. Input picture is handed to Cascade Classifier 
  2. ROI (area of curiosity) is  extracted from the given picture
  3. ROI- these are samples inside an information set recognized for a selected function.
  4. Resize the picture into 96 * 96
  5. Pass a resized picture to educated CNN mannequin , educated mannequin goes to predict whether or not the face is a person or lady .
  6. With the assistance of the len() operate , we are able to discover out the variety of faces in a picture/body.

Face Recognition with Opencv Python

Enough of principle. Now comes the enjoyable half.

Let us implement the face recognition with opencv. Which is the favored python pc imaginative and prescient library.

Let’s begin with the dataset we’re going to use for constructing the mannequin.

Dataset Description

The dataset consists of man and lady folders. Man folder is full of 1173 pictures of the person and lady folder is full of 1134 lady pictures respectively. we are able to discover many related datasets in numerous sources like kaggle, and so on.

You may also create your personal dataset through the use of strategies like internet scraping. Collect the set of man and lady pictures from the web and reserve it into two totally different folders with folders names as man and lady.

 You can obtain this dataset from this hyperlink.

Files & Libraries Required

  • Haarcascade_frontalface_default.xml 
    • Haar Cascade is a machine learning-based method the place plenty of optimistic and adverse pictures are used to practice the classifier.
    • Positive pictures – These pictures include the pictures which we wish our classifier to determine.
    • Negative Images – Images of the whole lot else, which don’t include the item we wish to detect.
    • This file is used to discover out  the faces in a given picture.
  • Libraries
    • Tensorflow , keras, h5py ,numpy,and opencv.

Building Convolution Neural Network

By now we have now the required recordsdata to construct the mannequin and we’re additionally having the required libraries info. 

Now we’re going to create a mannequin utilizing Convolutional Neural Networks. As each mannequin constructing begins with importing libraries.

Let’s import all the required python libraries.

Data preprocessing

We are going to design how our enter pictures are to be modified . We want to resize the pictures in accordance to our mannequin specs.

In deep studying , it expects information to be in quantity format in order that we convert our enter picture into an array with the assist of keras library

And subsequent we want to break up the info into coaching and validation information based mostly on the given splitting ratio.

Defining the preliminary parameters for additional use ,

  • Learning charge: studying charge is a tuning parameter in an optimization algorithm that determines the step dimension at every iteration.
  • Batch dimension: variety of coaching examples handed  in a single iteration.
  • Epochs: an epoch refers to one cycle by way of the total coaching dataset. 
  • Image dimensions: we want to specify the picture dimensions, right here i’m taking (96,96).
  • Data and labels are two lists used to retailer pictures and its corresponding labels.
  • Image_files shops all the pictures given by the trail.

Here, we’re 

  • Loading every picture and resizing in accordance to our specified picture dimensions.
  • Converting resized picture into array
  • Appending that picture  into information checklist
  • Extracting the label title from path utilizing slicing eg:C:Desktopgender_datasetwomanface_113.jpg →  [-2] returns lady
  • Labelling man =zero and lady =1 and storing it into labels checklist.
  • Repeating above steps for each picture current in image_files.

Here, we’re normalizing the info and changing labels into an array.

Then we’re splitting the info into coaching and testing within the ratio of 80% coaching information and 20% testing information .

Data Augmentation

Data augmentation is the method of accelerating the quantity and variety of information. It is used to enhance the quantity of information.

By including barely modified copies of already current information or newly created artificial information from current information.

It helps scale back overfitting when coaching a mannequin.


we’re performing numerous operations  like 

  • rotation_range : diploma vary for random rotations.
  • width_shift_range : fraction of complete width
  • height_shift_range : fraction of complete top
  • shear_range : shear angle in counter-clockwise course in levels.
  • zoom_range : vary for random zoom
  • Horizontal_flip : randomly flip inputs horizontally.
  • fill_mode : Points exterior the boundaries of the enter are stuffed in accordance to the given mode on pictures to enhance the info dimension .

Defining the  Convolutional Model

Here , we’re 

  • Defining enter form  and its dimensions.
  • Creating a Sequential mannequin with 5 hidden conv2D layers with the sequence of 32,64,64,128 and 256 hidden neurons respectively. Along with relu activation operate, batchnormalization,maxpooling2D and Dropout.
  • Flattening the data- (Flattening is changing the info right into a 1-dimensional array for inputting it to the following layer).
  • Dense layer with having 1024 neurons, relu activation operate, batch normalization and 50% dropout ratio.
  • Final output layer with 2 neurons and sigmoid activation operate.

Above  all key phrases are associated to Convolutional Neural Networks. We used numerous activation features please undergo the activation features hyperlink inorder to perceive these key phrases. 

Here my foremost focus is making a convolutional neural community.

Now compile the outlined mannequin having Adam optimizer. We are  defining

  • studying charge
  • binary_crossentropy loss
  •  accuracy metric

Then , we’re becoming the mannequin with 100 epochs  on  practice and validation information.

Last, we’re saving the mannequin with the title of ‘gender_predictor’  through the use of the save() operate.

Gender Wise Face Counting through ComputerVision

Loading the gender prediction mannequin

In this we’re going to

  •  import essential libraries like cv2, tensorflow and numpy
  • Load mannequin and frontal_face haar cascading file
  • Defining label names in a listing kind.

Gender Face Detection Counting Function

Here, we’re 

  • Firstly we took the handed enter picture.
  • Then convert it into grayscale and save into a brand new variable named ‘gray_image’.
  • detectMultiScale technique is used to detect objects of various sizes within the enter picture.
  • The detected objects are returned as a listing of rectangles  and saved into the faces variable.
  • len(faces) outcomes variety of faces in a picture.
  • Now, iterate every face which is  detected in above and draw a rectangle on prime of it.  cv2.rectangle() technique is used to draw a rectangle on any picture
  • Crop the enter picture. Resize it, normalize, convert it into an array and increase the form of an array.
  • Then go it to the educated mannequin and save the expected consequence within the end result variable.
  • Use argmax for locating the category with the most important predicted chance from the end result.
  • If label = girls, increment f variable , else increment m variable.
  • cv2.putText() technique is used to draw a textual content string on any picture.
  • With the assistance of this operate show the ensuing counts on a picture.

Face Recognition Model Testing 

We construct the whole pipeline for detecting the faces and figuring out whether or not the face is male or feminine.

Now let’s take a look at our mannequin.  For that we’re going to present how we are able to consider each on pictures and movies (actual time webcam).

We are usually not utilizing any classification analysis metrics or regression analysis metrics right here.

All we do is load a picture and test Whether the faces are detected correctly or not.

Model Evaluation On Images

Here , we’re

  • Reading enter picture with the assistance of imread() operate
  • Maintaining separate counter variables for each men and women
  • Passing an enter picture together with counter variables.
  • Finally, closing all of the energetic home windows or tabs.
Face Recognition Demo

Face Recognition Demo

From the above image. We can observe, mannequin precisely categorised gender and return the precise rely of each men and women and complete faces in a picture.

Model analysis with webcam

Here , we’re

  • Opening a webcam with VideoCapture(). zero means native machines webcam, if in case you have an exterior digital camera change quantity to 1 or 2 . 
  • Read body by body from stay streaming video.
  •  Maintaining separate counter variables for each men and women as x and y
  • Passing body by body  to the gender_facecounter() operate together with  x and y variables.
  • Exit the present tab when person presses enter key 
  • Finally, closing all of the energetic home windows or tabs.

What subsequent

You can test code in our dataaspirant GitHub repo. Please be at liberty to test it out. You can ignore the file and contemplate all the opposite recordsdata. 

We have loads of functions with deep studying. In current occasions there’s enormous analysis happening deep studying and pc imaginative and prescient.

We can resolve any downside with the assistance of deep studying. We have confirmed an  easy use case in deep studying and pc imaginative and prescient.

You  can strive extra inventive initiatives  like

  • Vehicles detection
  • Hand Gesture recognition
  • DNA sample recognition and so on by yourself.


In this text we find out how to construct face recognition with opencv python bundle. We additionally learnt how we are able to leverage it to construct face detection and counter utility finish to finish. We additionally find out how the cascading works. 

As we mentioned earlier than don’t restrict to this. Use this code and do the modification to resolve numerous object detection functions.

Let’s say for a grocery sort of area. A very good utility might detect the gadgets within the store and rely the gadgets to ship a report to the shop employees to allow them to plan to order required gadgets forward. This reduces an enormous guide effort.

Recommended Computer Vision Courses


Master Computer Vision With OpenCV

Computer vision quick start

Face Recognition OpenCV Quick Start 


Learn Deep Learning and Computer Vision


Source hyperlink

Write a comment