Over the past decades, artificial intelligence continues to solve problems in every area of our lives — the degree of its “intelligence” is growing every day. However, many of the new applications require the use of computer vision techniques for processing and determining large amounts of “visual” data. That is why Intel provides all possible assistance to AI developers in the “visual world.”
Airports, trains and bus stations have long used AI to identify potential security threats — for example, intelligent systems are widely used that can function as an intuitive “robotic” eye to detect luggage left unattended in real time. AI applications that use computer vision include:
- Advanced Driver Assistance Systems (ADAS), as well as autonomous systems;
- Image recognition, detection and tracking of dynamic objects, as well as automatic analysis of documents;
- Face detection and recognition — usually used to ensure security;
- Processing medical records.
Internet of Things (Internet of Things, or IoT) applications
Face recognition systems are also becoming popular in commercial applications — for example, payment authentication and monitoring of commercial fishing vessels to prevent illegal fishing.
Computer coding “facial fingerprint”
Encoding an image of a face is similar to the steps our brain performs to process and recognize the many faces we see on a daily basis. The procedure includes:
- Face detection is the definition of pixels that represent a face in a given image. Also called the preprocessing step;
- Face Recognition — associating a detected person with a link from a database or determining whether a person is in compliance with a sample.
A computer program that checks images based on basic characteristics is a classifier. Classifiers are trained on thousands.
“Positive” (face area) or “negative” (not face) images to learn how to properly classify a new image.
OpenCV (Open Source Computer Vision Library) is one of the most common libraries for detecting and matching faces, as well as motion estimation and object tracking. OpenCV is a free cross-platform library of software functions designed for real—time computer vision with several built—in (pre—trained) classifiers for defining faces, eyes, smiles, and other characteristic features.
For example, let’s take a video stream (such as a surveillance camera) — everything starts correct setting OpenCV for reading and processing video frame by frame. Then, methods such as the frontal-sided Haar-Cascade classifier can be used — an approach to the discovery process based on machine learning. Using a Python script with the “detection” function, it opens the video stream and runs in an infinite loop, identifying each beginning and end of the frame. The frame is then converted to gray to serve as an input to the detection function. If a face is defined in the frame, the script saves the JPEG file — either the entire frame or just the detected faces.
Start coding right now
Whether you are a data developer or data analyst or subject matter analyst, Intel® Distribution for Python provides powerful computationally intensive computing libraries, ready—to-use algorithms. Performance optimization is important — any package included in the Intel® Python distribution as a deep learning environment can be used to create facial recognition software.
A detailed introduction to face recognition video preprocessing techniques, as well as an example of how the OpenCV application works, can be found in the Intel® AI Academy.
Editor of IMD News