Python - Face detection and sending notification
Last Updated :
03 Jan, 2023
Nowadays python has become one of the most popular languages as well as favorite programming language among developers. The simplified syntax and pattern of this language make the presence of this language in the trending list.
The biggest strength of Python is a huge collection of standard library which can be used for the following:
- Machine Learning
- GUI Applications (like Kivy, Tkinter, PyQt etc. )
- Web frameworks like Django (used by YouTube, Instagram, Dropbox)
- Image processing (like OpenCV, Pillow)
- Web scraping (like Scrapy, BeautifulSoup, Selenium)
- Test frameworks
- Multimedia
- Scientific computing
- Text processing and many more..
For Machine learning and AI python language is the first priority for the developers because pre-built libraries of python language (like NumPy, Pandas, Pybrain, and SciPy) help expedite AI development.
In this article , A simple method is implemented using python how to detect human face and after detecting sends notifications to the user. If face is not recognized it does not send notifications to the owner.
Technologies used:
- OpenCV: OpenCV is a huge open-source library for computer vision, machine learning, and image processing. OpenCV supports a wide variety of programming languages like Python, C++, Java, etc. It can process images and videos to identify objects, faces, or even the handwriting of a human. When it is integrated with various libraries, such as Numpy which is a highly optimized library for numerical operations, then the number of weapons increases in your Arsenal i.e whatever operations one can do in Numpy can be combined with OpenCV.This OpenCV tutorial will help you learn the Image-processing from Basics to Advance, like operations on Images, Videos using a huge set of Opencv-programs and projects.
Sinch : Sinch is used to send messages to the user whenever the camera will detect any face. The user will have to make an account on sinch then he/she can get the 'service_plan_id' and 'token' from them. After which the user can input the latter in the code. The sender and recipients number also needs to be changed accordingly.
Steps to SMS Token:
- Create a new account on Sinch (Refer this link)
Click on Sign - Up
2. Click on messaging and conversations Panel :
Click on messaging and conservations
3. Click on SMS option on the Home window:
Click on sms
4.You will get your code from there.
We are using Harcascade Classifier front face file download that file and specify the path.
Clx-sdk-xms 1.0.0 : It is a Python SDK for the CLX Communications REST API (also called XMS) for sending and receiving single or batch SMS messages. It also supports scheduled sends, organizing your frequent recipients into groups, and customizing your message for each recipient using parameterization. Sinch uses clx-sdk-xms to create API'S.
Python3
# OpenCV program to detect face in real time
# import libraries of python OpenCV
# where its functionality resides
from cv2 import cv2
import clx.xms
import requests
# By creating an account in sinch sms You can get your code.
# code for sms starts here
#client is a object that carries your unique token.
client = clx.xms.Client(service_plan_id='your_service id',
token='token_id')
create = clx.xms.api.MtBatchTextSmsCreate()
create.sender = 'sender no.'
create.recipients = {'recipients no.'}
create.body = 'This is a test message from your Sinch account'
# code for sms ends here
# Face Recognition starts from here.
# load the required trained XML classifiers
#https://github.com/opencv/opencv/blob/master
#/data/haarcascades/haarcascade_frontalface_default.xml
# Trained XML classifiers describes some features of some
# object we want to detect a cascade function is trained
# from a lot of positive(faces) and negative(non-faces)
# images.
detector = cv2.CascadeClassifier(
"path")
# capture frames from a camera
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
#We want to send sms only once not until the face is there and for that we are
#initializing the counter
counter = 0
# loop runs if capturing has been initialized.
while True:
# reads frames from a camera
ret, img = cap.read()
if ret:
# convert to gray scale of each frames
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Detects faces of different sizes in the input image
faces = detector.detectMultiScale(gray, 1.1, 4)
for face in faces:
x, y, w, h = face
# if there is any face and counter is zero then only it will send notification to the sender
if(face.any() and counter ==0):
try:
batch = client.create_batch(create)
except (requests.exceptions.RequestException, clx.xms.exceptions.ApiException) as ex:
print('Failed to communicate with XMS: %s' % str(ex))
#sms ends here
# To draw a rectangle in a face
cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
cv2.imshow("Face", img)
counter = 1
# Wait for 'q' key to stop
key = cv2.waitKey(1)
if key == ord("q"):
break
# Close the window
cap.release()
# De-allocate any associated memory usage
cv2.destroyAllWindows()
Output:
Detecting image:
Notification:
Similar Reads
Face Detection using Python and OpenCV with webcam Face detection is a important application of computer vision that involves identifying human faces in images or videos. In this Article, we will see how to build a simple real-time face detection application using Python and OpenCV where webcam will be used as the input source.Step 1: Installing Ope
3 min read
Face and Hand Landmarks Detection using Python - Mediapipe, OpenCV In this article, we will use mediapipe python library to detect face and hand landmarks. We will be using a Holistic model from mediapipe solutions to detect all the face and hand landmarks. We will be also seeing how we can access different landmarks of the face and hands which can be used for diff
4 min read
Age and Gender Detection Using OpenCV in Python In this article, we will discuss the process of creating an Age and Gender Predictor using OpenCV. Let's divide the task into 2 parts: Age prediction - The prediction will be in the form of categories where categories are a few age intervals like 0-6,18-25, etc.Gender prediction - The prediction is
3 min read
FaceMask Detection using TensorFlow in Python In this article, weâll discuss our two-phase COVID-19 face mask detector, detailing how our computer vision/deep learning pipeline will be implemented. Weâll use this Python script to train a face mask detector and review the results. Given the trained COVID-19 face mask detector, weâll proceed to i
9 min read
Python | Smile detection using OpenCV Emotion detectors are used in many industries, one being the media industry where it is important for the companies to determine the public reaction to their products. In this article, we are going to build a smile detector using OpenCV which takes in live feed from webcam. The smile/happiness detec
3 min read
Person and Face Detection using Intel OpenVINO toolkit The OpenVINO Toolkit by Intel is a robust platform aimed at assisting developers in speeding up the implementation of deep learning models for computer vision activities. It enhances models for Intel hardware, such as CPUs, GPUs, VPUs, and FPGAs, enabling effective inference on edge devices. The too
8 min read
Face Detection using Cascade Classifier using OpenCV - Python Face detection is a important task in computer vision and Haar Cascade classifiers play an important role in making this process fast and efficient. Haar Cascades are used for detecting faces and other objects by training a classifier on positive and negative images.Positive Images: These images con
3 min read
Detect Cat Faces in Real-Time using Python-OpenCV Face Detection is a technology used to identify faces in images. We can implement it using Python's OpenCV which provides pre-trained haar classifiers for detecting faces in animals such as the haarcascade_frontalcatface.xml and haarcascade_frontalcatface_extended.xml files in the haar cascades dire
2 min read
Haar Cascades for Object Detection - Python Haar Cascade classifiers are a machine learning-based method for object detection. They use a set of positive and negative images to train a classifier, which is then used to detect objects in new images. Positive Images: These images contain the objects that the classifier is trained to detect.Nega
3 min read
Count number of Faces using Python - OpenCV Prerequisites: Face detection using dlib and openCV In this article, we will use image processing to detect and count the number of faces. We are not supposed to get all the features of the face. Instead, the objective is to obtain the bounding box through some methods i.e. coordinates of the face i
3 min read