The phenomenon that makes machines such as computers or mobile phones see the surroundings is known as Computer Vision. It is a field of Computer Science that focuses on replicating parts of the complexity of the human vision system and enabling computers to identify and process objects in images and videos in the same way that humans do.
Some applications of Computer Vision includes:
Face Detection is not perfect but it has reached stages where it is accepted in our daily lives from unlocking the phone to sending money.
This algorithm is the foundation of the OpenCV library. It was developed by Paul Viola and Michael Jones in 2001. It allows the detection of images in real-time.
There are two stages in this algorithm
We’ll discuss Detection first
This algorithm is designed to look for **Frontal Faces. **The performance will be poor when it comes to detecting side-ways, upwards, or downwards. The image is first converted into grayscale because it is easier to work and takes lesser data to process. This algorithm first finds the face on grayscale images then it finds the face location in the color image.
It outlines a rectangular box and searches for a face from the top-right corner left. It looks for haar like features which we will be discussed later in this blog. The rectangular box right side after every step on the tile.
Photo by mahdis mousavi on Unsplash
It is named after Alfred Harr, a Hungarian mathematician who developed the concept of Haar wavelets. The features below show a box with a light side and a dark side, which is how the machine determines what the feature is.
There are three types of Haar Features that Viola and Jones discovered, they are
Edge Features
For example, you want to detect eyebrows., the shade of the pixels on an eyebrow in an image will be darker and abruptly gets lighter (skin). Edge features are great for finding this.
Edge Features
Naturally, the region of your lips on the face goes from light to dark and again light. This feature is best to find
Line Feature
four rectangle feature
These features help the machine understand what the image is. when the images are inspected, each feature has a value of its own. It’s quite easy to calculate: Subtract White area from the Black area
Calculating the value of a feature would be really complex as the number of pixels increases i.e in a larger image. The Integral Image concept helps to perform intensive calculations quickly so we can understand whether a feature of a number of features fit the criteria or not.
Let us explore a bit by explaining how it works. Consider the below image
Each point in the integral image is a sum of the pixels above and left of the corresponding pixel in the source image. We use this because instead of doing additions for every pixel values for all features we use this to make use of a few subtractions to get the same result.
#programming #deeplearing #algorithms