Traditional Face Detection With Python: Conclusion
Good work! You are now able to find faces in images. In this course, you learned how to represent regions in an image with Haar-like features. These features can be calculated very quickly using integral images.
You learned how AdaBoost finds the best performing Haar-like features from thousands of available features and turns them into a series of weak classifiers. Finally, you learned how to create a cascade of weak classifiers that can quickly and reliably distinguish faces from non-faces.
These steps illustrate many important elements of computer vision:
- Finding useful features
- Combining them to solve complex problems
- Balancing between performance and managing computational resources
These ideas apply to object detection in general and will help you solve many real-world challenges. Good luck!
Congratulations, you made it to the end of the course! What’s your #1 takeaway or favorite thing you learned? How are you going to put your newfound skills to use? Leave a comment in the discussion section and let us know.
00:00 In this course, you learned how to represent regions in an image with Haar-like features and how to quickly calculate those features using integral images.
00:10 You’ve also learned how AdaBoost finds the best-performing Haar-like features from thousands of available features and turns them into a series of weak classifiers, which are then used to rapidly distinguish faces from non-faces through cascading.
00:29 These steps illustrate many important elements of computer vision such as finding useful features, combining them to solve complex problems like face detection, and balancing between performance and managing computational resources so that our algorithm is accurate, but not too slow.
00:49 These ideas apply to object detection in general and will help you to solve many real-world challenges. I’m Austin Cepalia with realpython.com, and happy coding!
bryszarda on Feb. 6, 2020
Eye opening material, it’s fascinating how it’s done. Many thanks!
alocknoc on March 27, 2020
nice
Jos Garca on March 28, 2020
Nice course and very straight forward, I’ve done other courses about this with tons of useless theory details.
ibrahim suleiman on March 29, 2020
Nice course but a new experience i have go over the course again thanks alot you just gave me a project to boost my skills and profile
koellingh on March 30, 2020
When I ran the program, the algorithm worked except it did not detect the baby’s face. Why might this be?
Jos Garca on March 30, 2020
The results depends of the machine learning model, so if the model isn’t training enough or optimized for baby faces could fail. This short course only show how to apply this specific model to detect faces.
jjhacker15 on April 2, 2020
Thank you so much ❤️
doelf daniel on April 3, 2020
It’s how to use it and not how to do it.
helarsen on April 4, 2020
Austin, you are an excellent presenter. Thanks!
nitinsrii on April 7, 2020
Austin, Nice! Thank you for explaining this wonderful concept.
hulejiramzey on April 11, 2020
Well
anakobembash on April 12, 2020
This is awesome. thanks
elvisamoako on April 15, 2020
Its demonstrates the power of python and quality teaching
balbutire on April 15, 2020
Excellent clarification of the image classification process which doesn’t dip into advanced math for explanations. thx.
sdr54519 on April 17, 2020
Blown away! Very informative tutorial. I’m a newbie but learned a lot this short tutorial. More free tutorials like this will help me in getting my foot into the world of ML. Thanks!
Tomas Menito on April 23, 2020
Great tutorial, thanks!
sneha588 on April 28, 2020
Thank you so much sir. Very well explained !
hassanbutt2019 on April 30, 2020
it was good experience
sroux53 on May 21, 2020
Excellent!
Marcelo Garbarino on June 8, 2020
Great course for introducing these concepts. Thanks!
Now, instead of using conda, I’d use Python3 virtualenv. In my case, I created one, installed the pip packages, and the resulting requirements.txt is like this, for today’s versions:
joblib==0.15.1
numpy==1.18.5
opencv-python==4.2.0.34
scikit-learn==0.23.1
scipy==1.4.1
threadpoolctl==2.1.0
ehernandezvilla on July 31, 2020
Excellent!
msm1089 on June 22, 2021
I found this a useful and concise tutorial. I understood everything, except perhaps one thing.
When using cascades, a region must ‘pass’ the feature test of all weak classifiers. So the technique relies on having a full, frontal facing face in view. It seems the whole photo is ‘swept’ by the haar feature detectors. But since the size of this filter is fixed at quite a small size (~20-28 pixel square), does it mean it can only detect a face that is around the same size?
If a face covered say a 60 pixel square area, no subsection is going to be pass for ALL haar feature detectors (e.g. it will never see 2 eyes in the same 20 pixel square). I must be missing something here…the only thing I can think of is that each haar feature is checked at different sizes, but this seems to contradict what the tutorial said, that a size of 28x28 (i.e. fixed size) has been found to be good.
Become a Member to join the conversation.
bobjefferyjds on Dec. 30, 2019
Very interesting to learn how this is done! Thanks!