Developed from scratch - a fully vectorized algorithm based on the original paper of Viola&Jones (Supervised learning: Ada-boost and classifier cascading) robust real time face detection - training and classification. Very large amount of skewed class training data, continuous training over several weeks. Detection rates were very close to the ones in the original paper (w/o any code reference);
First, add to Matlab path, Code folder + all subfolders
Run TrainingScript with the following parameters:
| Parameter | Description | Default Value |
|---|---|---|
| load features | Features to use (you can use FeaturesBuilder to build them again) | |
| load PosSetMerged | positive training data (you can use prepareBoxScript to build them) | |
| load NegsStage3 | negative training data (you can use prepareBoxScript to build them) | |
| MaxFPRate | false positive rate for each cascade iteration | 0.001 |
| MinDRate | minimal detection rate to reach | 0.99 |
| FPTarget | overall false positive rate | MaxFPRate |
| DecFeatRate | how many features to ignore (in percentage) (these will not be used at all during training) | 0.0 |
| SCThreshDecRate | how fast to lower detection rate to reach | 0.05 |
| logLevel | which log prints to log | 2 |
| ChunkSizeMB | how to split data - how big one chunk of data should be (according to your computer memory limitations) | 200 |
| FeatureValuesPath | folder path to save temp data during training |
Run TestBenchmark with the following parameters:
| parameter | description | default value |
|---|---|---|
| input_dir_name | path of folder with test images | |
| output_dir_name | path of folder to house results | |
| SlideSize | detector size | 19 |
| SingleStep | how many/which scales to use (-1 all scales, 0 base scale, 1 scale wich is one enlargement, 2 scale which means 2 enlargements) | -1 |
| EnlargeFactor | how much to enalrge the detector size in each scale | 1.25 |
| deltaX | how many sub-windows to skip in X axis | 1 |
| deltaY | how many sub-windows to skip in X axis | 1 |
| maxHeight | maximal input image height (deprecated) | 288 |
| maxWidth | maximal input image width (deprecated) | 384 |
| maxMemMB | maximal chunk of data at once to operate on (according to your computer limitations) | 200 |
| EnablePre | enable preprocessing on each subwindow of image (boolean) | 0 |
| EnablePreGlobal | enable preprocesing globaly on image (boolean) | 1 |
| EnablePP | enable postprocessing (for better false alarm rate) | 0 |
| rejectDist | how many false alrams to reject according to distance from other false alarm windows | 1 |
| minFacesBunch | how many faces windows should be together in order to be considered a good detection so not reject it | |
| load SC_1_2_3 | load result of training (the classifier) |