face recognition using OpenCV and Python in live video [project]
Replicating Face Mask Detection - OpenCV and MobileNetV2
Facial Recognition using python
Multiple face recognition in real time using Python OpenCV and Deep Learning?
Have a look at OpenCV Haar Cascade: Haar cascade algorithms are a form of machine learning, but they do not use Neural Networks - so no Deep Learning is involved. The underlaying principle of haar cascade was proposed by Paul Viola and Michael Jones in their very interesting paper "Rapid object dete3ction using a boosted cascade of simple features" is easy to understand yet geniously efficient and smart.
The haar cascade algorithms tries to identify simple features in grayscaled images. Such a simple feature can be edges, lines or rectangles. An edge is described as a sharp change in contrast from bright to dark in either horizontal or vertical direction. So whenever the haar cascade algorithm sees a square of pixels which follows that property, it marks them them as an edge feature. The whole subset of the image is scanned for edges, lines and rectangles.
The haar cascade algorithms chooses a first subset of the image with a certain size and identifies all these simple features. For a face detecting algorithm, haar cascade identifies over 200 features. One such feature may be a line between the eyebrow and the eye itself, another one a sharp contrast between around the iris. Finally, he compares the features he identified with a model which contains such feature-descriptions of faces. When the features he identified match to a certain degree with the models description of the optimal features, the haar cascade algorithm marks the subset he is currently scanning as a "face".
Note that haar cascade is by no means limited to face detection, even though it might be the biggest field it is applied to. There are cascades for many different objects like eyes, number plates, chairs, animals and many more. All of them base on the principle of identifying simple features and combining them to match high-level objects.
Taken from this github repo
More on reddit.com