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

Refer to this page about official reference of ICF

Other page for referencing
http://d.hatena.ne.jp/takmin/20151218/1450447204 (in Japaneses)

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.

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.


  1. according to your result image dedector correctnes is not good ist it ?

    1. I still did not get good result.
      But I cannot say the detector is bad.
      Because I don't understand the algorithm.
      Thank you.

  2. Hi, did you get better results? Thanks for sharing your example.

  3. Hi, did you get better results? Thanks for sharing your example.

  4. Hi,
    Can you please explain what is the meaning of positive and negative images? Does it mean images of objects to be detected with background and just the background images? I am looking to detect cardboard boxes, is this a good module to use?
    Thank you.

    1. The meaning of positive is Pedestrian data.
      Negative means other images that is non-positive image, that is back ground images.

      It is okay if the view is fixed. For example, frontal face, car profile, pedestrian side ..
      Adaboost and SVM are also good.

      However, deep learning is required to recognize the various views.