# Integral Channel Feature Detector for Cars (bad results)

I have been trying to get the Integral Channel Features detector from OpenCV 3.0 (contrib) working but unfortunately the results are not so good. The goal is to compare the ICF detector to standard HOG+SVM detectors and the one from Felzenswalb et al. The latter two detectors work fine in detecting cars when trained on my image sets containing lots of image patches from rears of cars.

The dataset that I am training on contains ~2.000 positive image patches containing rear views of cars, vans and trucks. The negative dataset contains 10.000 images samples from Pascal VOC and random patches from highway scenes (not containing cars). The images are available in sizes 32x32, 64x64, 80x80 and 128x128 pixels.

Then the detector is trained using the following settings (for 64x64px images)

ICFDetectorParams icfParams;
icfParams.feature_count =  10000;      // number of features to generate
icfParams.weak_count =     1000;        // number of weak classifiers in cascade
icfParams.bg_per_image =   1;          // number of windows to sample per bg image
icfParams.features_type =  "icf";      // feature type (icf or acf)
icfParams.alpha =          0.01;       // alpha value
icfParams.is_grayscale =   false;      // grayscale or color images
icfParams.use_fast_log =   false;      // use fast log function
icfParams.model_n_cols =   64;         // model size (pixels)
icfParams.model_n_rows =   64;         // model size (pixels)


After training the detector (which takes much longer than training a SVM on HOG descriptors), I evaluate my images using the following settings for example (I have tried many different parameters for both training and testing):

ICFParams icfParams;
icfParams.slidingWindowStep = 8;
icfParams.scaleFactor =       1.4;
icfParams.minObjectSize =     cv::Size(30, 30);
icfParams.maxObjectSize =     cv::Size(250, 250);


Detections are generally very bad, lots of false positives etc. Here is an example:

Can anyone give me some advice on what parameters to change to get the detector working? Especially the feature_count, weak_count, alpha value and the model size I am not so sure about. Any help is appreciated !

edit retag close merge delete