3 ms·
This is not necessarily based on his code, but the way I believe Viola-Jones Adaptive Boosting works is as such: 1. Run the adaptive boosting code which create
by abyssknight 17y ago
This is not necessarily based on his code, but the way I believe Viola-Jones Adaptive Boosting works is as such:
1. Run the adaptive boosting code which creates a complex decision function using known positive and negative data.
The code creates what is called an Integral Image from each piece of data, and runs it through the algorithm.
Each iteration adds or subtracts a 'feature' from the decision function. So in the end we build up a general detector for faces. The algorithm only keeps the features which work best together not individually, so in the end you have the best 'team' of features.
Essentially we are training a function so it can decide what is and is not a face. This is likely what the .dat file output was, a descriptor of the resulting decision function.
The more data used to train, the better the decision function will be.
2. Run the decision function against unknown data.
Ta da, an answer. It could be right, it could be wrong. Sometimes these algorithms find faces in the darnedest places like walls and other textured surfaces.
For more info on Viola-Jones adaptive boosting check out the original paper:
Robust Real-time Object Detection
http://research.microsoft.com/en-us/um/people/viola/pubs/detect/violajones_ijcv.pdf http://research.microsoft.com/en-us/um/people/viola/pubs/det...
- Luc 17y agoDo the 'faces' in walls and other textured surfaces actually look like faces? That would be interesting to see in action...
- noodle 17y agoi imagine its possible with enough proper training of the decisions, but if i were to have to venture a guess, i'd guess that the hard lines created by the head itself are included in basic face decisions.
- abyssknight 17y agoThe answer is, sometimes. :) It all depends on what data you trained with, the variety of light/shape/tilt of the faces, etc. The code can only build on what it knows, so when it fails the best thing to do is dog-food that case and add it to the training set. Of course, outliers like that can also cause more false positives as the decision function has to generalize even more to cover those cases.