1/19/2016

ICF(Integral Channel Features) + WaldBoost example (opencv, ICFDetector uses example)

Refer to this page about official reference of ICF
http://docs.opencv.org/3.0.0/d6/dc8/classcv_1_1xobjdetect_1_1ICFDetector.html

Other page for referencing
http://d.hatena.ne.jp/takmin/20151218/1450447204 (in Japaneses)
http://answers.opencv.org/question/56263/integral-channel-feature-detector-for-cars-bad-results/
http://answers.opencv.org/question/67810/opencv-3-beta-icf-classifier-performance-is-very-bad/

ICF+WaldBoost is upgraded on Google Summer of Code 2015(GSC).
And For use this, you build OpenCV included opencv_contrib.
Github address is -> https://github.com/Itseez/opencv_contrib
ICF is located in xobjdetect module.

The method to build including extra module(opencv_contrib) is refer to this page.
http://study.marearts.com/2015/01/mil-boosting-tracker-test-in-opencv-30.html


ICF(integral Channel Features) and ACF is feature like Haar and WaldBoost is learning algorithm like AdaBoost.
WaldBoost and ICF is a pair. For using ICF feature, WaldBoost algorithm must be run in OpenCV.


Good result Introduced in the Internet but,
Parameter settings for best learning is difficult and uncomfortable showing the learning process.

Anyway, let's find how to use it.

0. Data prepare part.
- make Positive images path list and Negative images path list.
- don't worry size and color channel, when learning these are corrected.
- But if negative image size is small(correction size I don't know), error is occurred when learning part.
...

...


1. learning part.
...
It is difficult to discover exact paramer values.


...
2. detection part.
...
values are scores matched rect vector.
I think 1 is best. 0 is worst.

...

this is some result.