A face detection program will enable a user to have another eye. Imagine how a machine will be able to see face and tells you that it saw a face by either alerting you or saving the face in the form of an image for you to view later among other things.
A lot of people
may ask how does the program identify a face among billions of possible
objects that may be present in that image. The answer is using the image
as unstructured data and programmers use machine learning algorithms.
Of course initially, the programmer identify the basic characteristics
of a face, like answering the question "what are the basic features of a
face?", "what is it composed of?", and the list goes on, and on, and on
until they introduce an image with a face, and the program checks it
and using statistical methods from an initial data, like eyes has to be
always 2 and it records the distance between the 2 eyes, distance
between the eye and the nose, and the mouth, and so on. The program also
identifies certain data points on the face and record the distance
between data points.
That is just for a start, the machine learning algorithm needs a lot of images to train itself. These algorithms are thoroughly discussed in Data Science courses so I wont be discussing the full details of the algorithms.
However, not every programmers need to create their face detection program from scratch because the training activities could be saved to a file and can be shared to other programmers who are interested to use the file for other meaningful applications and ultimately make the world a better place.
Having said that, in
python, there is a library called opencv that lets programmers create
face detection programs without starting from scratch. And that is the
main topic of this post.