In the last years, boosted cascades became popular thanks to an even more satisfying detection of a wide range of objects. The success is motivated by the efficiency and the capability of this approach to detect rigid objects in real time under different conditions and on low-cost ARM architectures (such as smartphones, RaspberryPi, Arduino, etc.) as well. This repository has the goal to collect (with a scientific approach) the largest number of boosted cascades in OpenCV style.
At the moment, no HAAR cascades will be released due to the amount of work, time and RAM needed to build a competitive cascade. To build a real HAAR cascade it is necessary to burn the PC approximately for a week (often) with more than 32 Gb of RAM allocated. Of course you can train a HAAR cascade with 500 samples P/N, 20 stages and a sub-space of the features. This is the right way to get in touch with the problem, not to develop something of real for the marketplace.
Why re-training a boosted cascades?
There are a lot of reason to re-train a cascade, the most relevant are:
- Your object is not covered by OpenCV repository (i.e.
cat facesedit: recently added)
- You need to handle a wider variability or different situations (ie. face poses, different light conditions, etc.). Our datasets are collected (with a semi-supervised approach) from Tumblr, YouTube, etc. discovering the data variability more than usual. The OpenCV boosted cascades come from the (not so near) past, 5/10 years ago the datasets were too often poor in variability due to the difficulty in accessing to “fresh” data.
- Shortage in CPU/RAM usually lead to a “sparse” features allocation. The below cascades are trained with a x64 machine with 16 cores and 32Gb RAM (but we are able to use a monster machine with 64 cores and 128 Gb RAM, in this case it’s something near to the “full” features-space allocation, not just a subspace).
- With a few of modifications of OpenCV, the “traincascade” routine can be exploited to reach better performance. The biggest issue about speed is linked with cascade structure, features selection strategy, dataset’s taxonomy, etc.
- Your need an ARM version with no float emulation.
- HAAR features are outperformed by other features both in efficiency and accuracy for the most of the “commercial” needing. Then it’s suggested to re-train an own cascade to exploit at the best the “new” features capabilities.
- You need a faster and reliable detector, to be better than your competitors (companies usually “wrap” OpenCV detector within their commercial products).
The boosted cascades are performant both in efficiency and accuracy. With a few of modification (out of this academic licence) the cascades below can run +50/150% faster and the reliability can grow by +5/10% (both in false positives and false negatives). The following cascades have been trained with a modified version of OpenCV 2.4.9 that include a lot of optimization, improving the accuracy and the speed of the detection. General speaking the speed of an object detector is heavy dependent from a lot of parameters (ie. min face detected, scale progression), architecture (ie. ARM, x64), field of application (ie. first person POV, video-surveillance), etc. If your goal is detecting and tracking an object, the detection step is usually slower than the tracking step. In multi-object detection a “re-initialization” step is anyway necessary, so the full-image scanning is periodically mandatory (when just one-face at time is supported, a lot of optimization can be done to hyper-speed the detection and tracking). Regardless of these premises, building a fast and reliable cascade is the first – and fundamental – step. No real-time systems can be deployed on ARM and mobile with a non-efficient cascade (do not consider the “classic” opencv boosted cascades as “efficient”, testing it with a I5/I7 processor is not a reliable test). Our boosted cascades run easily @30 FPS under Raspberry PI (mono-core, 700 MHz) with 2 cameras.
The following boosted cascades are compatible with OpenCV >= 2.4.9 and 3.0.0 (beta). They are probably suitable for 2.4.5 < OpenCV < 2.4.9 as well, but no test has been performed about it. Before the 2.4.5 we are pretty sure the cascades are not fully compatible (the reason why is out of scope for this page). Use them at your risk. We suggest to use 2.4.11 version to perform tests.
License and Commercial Use
The available boosted cascades are a “limited” version of the “real” boosted cascades we built. The limitations are in speed, accuracy both in false and true positives, and portability under ARM architecture (even if compatible, the usage is too slow to be “realistic”). The real boosted cascades are also available for commercial use, please contact us. We are also available to train brand new boosted cascades for your specific problems.
At the moment 5 boosted cascades are involved in 2 commercial products. At the moment 7 boosted cascades are involved in 3 commercial products. At the moment 8 boosted cascades are involved in 4 commercial products. At the moment 9 boosted cascades are involved in 5 commercial products. At the moment 10 boosted cascades are involved in 6 commercial products. At the moment 11 boosted cascades are involved in 6 commercial products.
At the moment 12 boosted cascades are involved in 7 commercial products.
The following boosted cascades are distributed for research purposes. Please cite this site if you will use the boosted cascades in your academic job. If this work has been useful for your activity please help us in completing this page with missing (or brand new) boosted cascades.
LBP | HAAR | HOG [only commercial, contact us]
LBP | HAAR | HOG [only commercial, contact us]
Rear Car: LBP | HAAR | HOG
Profile Car: LBP | HAAR | HOG
Bike: LBP | HAAR | HOG
Road Signs: LBP | HAAR | HOG
Profile Face: LBP | HAAR | HOG
Generic Face: LBP | HAAR | HOG
Mouth: LBP | HAAR | HOG
Nose: LBP | HAAR | HOG
Hand: LBP | HAAR | HOG
OpenCV reference: OpenCV official