While artificial intelligence has been solving problems for decades, it is now on the verge of permeating every major industry. Many of these new AI applications, however, require the use of computer vision techniques to process and understand large amounts of visual data. That’s why Intel is helping developers apply AI to the visual world.
Airports, trains and bus stations are already deploying AI to identify potential security threats, creating intellectual systems that can function as an intuitive ‘robotic’ eye for real-time detection of unattended baggage. Additional AI applications that use computer vision include:
- Advanced driver assistance systems (ADAS) and autonomous cars
- Image recognition, object detection and tracking, and automatic document analysis
- Face detection and recognition, normally used for security issues
- Medical image processing
- Internet of Things (IoT) applications
Facial recognition systems are also becoming popular in commercial applications, such as payment authentication and the monitoring of commercial fishing vessels to prevent illegal fishing.
Computer coding facial recognition
Coding facial recognition is similar to the steps our brains follow to process and recognise the many faces we see each day. This involves both:
- Face detection – identifying the pixels which represent the face in a given image, also referred to as the pre-processing phase
- Face recognition – associating the detected face to a reference from the database, or identifying a face match
A computer program that tests images based upon features is a classifier. Classifiers are trained on thousands of positive (face region) images or negative (non-face background) images to learn how to classify a new image correctly.
One of the most widely used libraries to help detection and matching, motion estimation and tracking, is OpenCV (Open Source Computer Vision Library). OpenCV is a free, cross-platform library of programming functions aimed at real-time computer vision with several built-in pretrained classifiers for face, eye and smile detection, among others.
For example, using a video stream such as a surveillance camera, start by ensuring OpenCV is correctly configured to read and process the video frame by frame. Next, developers can use methods such as the frontal face Haar-Cascade classifier, a machine learning based approach, for the detection process. Using a Python script with a ‘detect’ function, the script opens the video stream and runs in an infinite loop, identifying each beginning and end of frame. Then, the frame is converted to gray to serve as input to the detect function. Finally, if a face is identified within the frame, the script saves a JPEG file – either as the whole frame or only the detected faces.
Start coding today
If you’re a developer, data scientist, analyst or domain expert, Intel® Distribution for Python* provides accelerate compute-intensive Python computational packages, production-ready algorithms, and access to immediate optimised performance. Any package included in the Intel® Distribution for Python* as the deep learning framework can be used to make facial recognition software.
For a detailed introduction to video pre-processing techniques for facial detection and a working example of an OpenCV application, one of the packages that ships with Intel® Distribution for Python*, visit the Intel® AI Academy.