OpenCV is the most popular library for computer vision. Originally written in C/C++, it now provides bindings for Python.
OpenCV uses machine learning algorithms to search for faces within a
picture. Because faces are so complicated, there isn’t one simple test
that will tell you if it found a face or not. Instead, there are
thousands of small patterns and features that must be matched.
Cascades
Though the theory may sound complicated, in practice it is quite
easy. The cascades themselves are just a bunch of XML files that contain
OpenCV data used to detect objects. You initialize your code with the
cascade you want, and then it does the work for you.
Before we jump into the process of face detection, let us learn some
basics about working with OpenCV. In this section we will perform simple
operations on images using OpenCV like opening images, drawing simple
shapes on images and interacting with images through callbacks. This is
necessary to create a foundation before we move towards the advanced
stuff.
In my program, I have taken some images for training my model on the images of particular person with different orientations.
I built the program in three stages which are :
- Data Creator or generator
- Trainer
- Predictor