[Solved] Help needed for face detection -deep learning

  • I have a code for detecting faces but now i need to count no:of faces .link text

    # OpenCV Python program to detect cars in video frame
    # import libraries of python OpenCV 
    import cv2
    #import numpy as np
    # capture frames from a video
    cap = cv2.VideoCapture('video.avi')
    # Trained XML classifiers describes some features of some object we want to detect
    car_cascade = cv2.CascadeClassifier('cars.xml')
    # loop runs if capturing has been initialized.
    while True:
        # reads frames from a video
        ret, frames = cap.read()
        # convert to gray scale of each frames
        gray = cv2.cvtColor(frames, cv2.COLOR_BGR2GRAY)
        #color fill white
        # or img[:] = 255
        # Detects cars of different sizes in the input image
        cars = car_cascade.detectMultiScale(gray, 1.1, 1)
        # To draw a rectangle in each cars
        for (x,y,w,h) in cars:
       # Display frames in a window 
        cv2.imshow('video2', frames)
        # Wait for Esc key to stop
        if cv2.waitKey(33) == 27:
    # De-allocate any associated memory usage

  • Hi @Nandu, You can increment a variable each time when detect faces, is that help?

  • @salmanfaris yeah that's what i want.But i am not able to understand where i should place my variable in the above mentioned code.

  • Follow These steps

    1. Create a virtual enviroment and activate virtial environment
    python -m venv venv

    Activate venv for windows using following command:


    For Ubuntu:

    source venv/bin/activate
    1. Install necessary packages on venv
    pip install opencv-python
    pip install imutils
    1. Create Folder structure as shown below in your workspace
    ├─ cascades
    │  └─ haarcascade_frontalface_default.xml
    ├─ detect_faces.py
    ├─ images
    │  └─ obama.jpg
    ├─ utilities
    │  └─ facedetector.py
    1. Program for utililities/facedetector.py given below:
    import cv2
    class FaceDetector:
        def __init__(self, face_cascade_path):
            # Load the face detector
            self.face_cascade = cv2.CascadeClassifier(face_cascade_path)
        def detect(self, image, scale_factor=1.2, min_neighbors=3):
            # Detect faces in the image
            boxes = self.face_cascade.detectMultiScale(image, scale_factor, min_neighbors, flags=cv2.CASCADE_SCALE_IMAGE, minSize=(30,30))
            # Return the bounding boxes
            return boxes
    1. program on detect_faces.py
    from utilities.facedetector import FaceDetector
    import imutils
    import cv2
    # Define paths
    image_path = 'images/obama.jpg'
    cascade_path = 'cascades/haarcascade_frontalface_default.xml'
    # Load the image and convert it to greyscale
    image = cv2.imread(image_path)
    image = imutils.resize(image, 600, 600)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    # Find faces in the image
    detector = FaceDetector(cascade_path)
    face_boxes = detector.detect(gray, 1.2, 5)
    print("{} face(s) found".format(len(face_boxes)))
    # Loop over the faces and draw a rectangle around each
    for (x, y, w, h) in face_boxes:
        cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
    # Show the detected faces
    cv2.imshow("Faces", image)
    1. Links to necessary files:
      Haar cascade frontal face
      Obama Family Image

  • @arunksoman thankyou 🥳

  • @Nandu But I have to mention that it is not a deep learning method. It is based on Integral images(Viola-Jones algorithm), which is basically something about ML. From opencv 3.4.3 there is a DNN module. This module help us to load caffemodels, torch models as well as tensorflow models. You can find out caffemodels on the Internet in order to detect faces. Using those we can make face detection quite efficiently. If you have any doubt feel free to ask here.

  • @arunksoman how this code helps me to count faces if deeplearning isn't used.

  • @Nandu Please read the comment given above carefully and search how the viola-jones algorithm works. Sorry for misunderstanding what you say. That is why edited comment.

  • @Nandu Did you complete? excited to see.

  • @salmanfaris in the below terminal count shows.some steps i have followed in a different manner.Thank you for helping me!🙂


Log in to reply

Recent Posts

  • WhatsApp Image 2020-09-26 at 9.28.51 PM.jpeg

    Hey guys, we are thrilled to announce the speaker Mr. Brian Douglas for our upcoming event organised by HackClub TIST as part of Hacktoberfest 2020. He will guide you through GitHub and the importance of Open Source contributions.

    Mr. Brian Douglas has been working as a Staff Developer Advocate at GitHub for the past three years and was fully on-board with us when we contacted him about the event.

    We at Hackclub TIST strongly believe in the power of collaboration and how even the smallest guidance can have a huge impact in the long run.

    So register now at http://hackclubtist.tech/hacktoberfest and lets git learning (pun intended).

    Friday October 2, 2020
    7:00 pm -9:30 pm IST

    read more
  • P

    @Anudeep Thanks a lot m8, I actually made a very silly mistake of including the https:// while entering FIREBASE_HOST, where I must have entered the Domain name alone and removed the https:// extension.

    Thanks again for replying that quick. Cheers.

    read more
  • A

    Hello @Palani, In the Firebase, there are two types of storage,

    Cloud Firestore (Very recent one & NoSQL database) Realtime Database (To which we upload the data using NodeMCU)

    In the Arduino Code, you can see that there is a variable named FIREBASE_AUTH.

    This variable should be assigned to the Database secret. This you can find in Project Settings -> Service accounts -> Database Secrets.

    My mistake is, i have mistakenly assigned thay to Web API key. This is found at Project Settings -> General.

    The error can also occur when u don't initialise a proper realtime database in Firebase. (This is not my case).

    read more
  • P

    @Anudeep Hello Anudeep could you please help me out by elaborating the fix to get rid of that error?
    Thanks in advance.

    read more
  • At Adobe, we’re focused on bringing together the most intelligent, driven, diverse set of individuals and give them the freedom to nurture their intellectual curiosity. We provide them with the necessary resources and support to shape their ideas into tangible results.
    Through the Adobe India Women-in-Technology Scholarship, we are striving towards creating gender equality in science, technology and engineering domains by encouraging women to showcase their excellence in computing and technology and become future leaders and role models in the field.

    𝗛𝗼𝘄 𝘁𝗼 𝗮𝗽𝗽𝗹𝘆?

    Applications must be submitted through their dedicated application portal which opens on August 20th, 2020 and will close on September 20th, 2020, 5 pm India time.

    𝗔𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗱𝗲𝗮𝗱𝗹𝗶𝗻𝗲:

    Application deadline: September 20th, 2020, 5 pm India time.

    Visit:- https://research.adobe.com/adobe-india-women-in-technology-scholarship/

    read more