Google Summer of Code: reading OpenCv trained file. Building detector.
A post about how I read the
OpenCv trained file and implemented a prototype of detector.
Example of a face Evaluation by detector
This is an example of what stages and respective weak classifiers are stored
OpenCv trained file for
Mb-LBP. There are 20 stages overall
with increasing accuracy. The cascade structure speeds up the process
by orders of magnitude because the non-faces patches are rejected on the
first stages of the classifier.
Sliding window and scale example.
I also implemented an naive sliding window and scale search.
Because the classifier trained only for
24x24 window size we, have to scale
the image and also slide the window to find a face. To fire, the face should fit
This is an example. I started with
(118, 118) image with a face.
On this scale classifier didn’t detect any faces which is correct.
Then, the program scaled the image by the ratio of
(59, 59)) and detected one
image. Actually it’s a part of the face and we don’t want detection like this,
but it can be overcome by using
Then the the images was downscaled once again and this is where the face was found.
Once again, this big amount of detections of the same face can be removed by
This is the temporary code and its only purpose was to make sure that the classifier works. It will be optimized in the following stages.