4 This is the C++ implementation of the folded hierarchy of
5 classifiers for cat detection described in
7 F. Fleuret and D. Geman, "Stationary Features and Cat Detection",
8 Journal of Machine Learning Research (JMLR), 2008, to appear.
10 Please cite this paper when referring to this software.
14 This program was developed on Debian GNU/Linux computers with the
15 following main tool versions
17 * GNU bash, version 3.2.39
19 * gnuplot 4.2 patchlevel 4
21 If you have installed the RateMyKitten images provided on
23 http://www.idiap.ch/folded-ctf
25 in the source directory, everything should work seamlessly by
26 invoking the ./run.sh script. It will
28 * Compile the source code entirely
30 * Generate the "pool file" containing the uncompressed images
31 converted to gray levels, labeled with the ground truth.
33 * Run 20 rounds of training / test (ten rounds for each of HB and
34 H+B detectors with different random seeds)
36 You can also run the full thing with the following commands if you
39 wget http://www.idiap.ch/folded-ctf/not-public-yet/data/folding-gpl.tgz
40 tar zxvf folding-gpl.tgz
42 wget http://www.idiap.ch/folded-ctf/not-public-yet/data/rmk.tgz
46 Note that every one of the twenty rounds of training/testing takes
47 more than three days on a powerful PC. However, the script detects
48 already running computations by looking at the presence of the
49 corresponding result directory. Hence, it can be run in parallel on
50 several machines as long as they see the same result directory.
52 When all or some of the experimental rounds are over, you can
53 generate the ROC curves by invoking the ./graph.sh script.
55 You are welcome to send bug reports and comments to fleuret@idiap.ch
59 To set the value of a parameter during an experiment, just add an
60 argument of the form --parameter-name=value before the commands that
61 should take into account that value.
63 For every parameter below, the default value is given between
74 * pictures-for-article ("no")
76 Should the pictures be generated to be clear in b&w
78 * pool-name (no default)
80 Where are the data to use
82 * test-pool-name (no default)
84 Should we use a separate pool file, and ignore proportion-for-test
87 * detector-name ("default.det")
89 Where to write or from where to read the detector.
91 * result-path ("/tmp/")
93 In what directory should we save all the produced file during the
96 * loss-type ("exponential")
98 What kind of loss to use for the boosting. While different loss are
99 implementer in the code, only the exponential has been thoroughly
104 How many images to process in list_to_pool or when using the
105 write-pool-images command.
109 Maximum depth of the decision trees used as weak learners in the
112 * proportion-negative-cells-for-training (0.025)
114 Overall proportion of negative cells to use during learning (we
117 * nb-negative-samples-per-positive (10)
119 How many negative cell to sample for every positive cell during
122 * nb-features-for-boosting-optimization (10000)
124 How many pose-indexed features to use at every step of boosting.
126 * force-head-belly-independence (no)
128 Should we force the independence between the two levels of the
129 detector (i.e. make an H+B detector)
131 * nb-weak-learners-per-classifier (10)
133 This parameter corresponds to the value U in the JMLR paper, and
134 should be set to 100.
136 * nb-classifiers-per-level (25)
138 This parameter corresponds to the value B in the JMLR paper.
142 How many levels in the hierarchy, this is 2 for the JMLR paper
145 * proportion-for-train (0.5)
147 The proportion of scenes from the pool to use for training.
149 * proportion-for-validation (0.25)
151 The proportion of scenes from the pool to use for estimating the
154 * proportion-for-test (0.25)
156 The proportion of scenes from the pool to use to test the
159 * write-validation-rocs ("no")
161 Should we compute and save the ROC curves estimated on the
162 validation set during training.
164 * write-parse-images ("no")
166 Should we save one image for every test scene with the resulting
169 * write-tag-images ("no")
171 Should we save the (very large) tag images when saving the
174 * wanted-true-positive-rate (0.5)
176 What is the target true positive rate. Note that this is the rate
177 without post-processing and without pose tolerance in the
178 definition of a true positive.
180 * nb-wanted-true-positive-rates (10)
182 How many true positive rates to visit to generate the pseudo-ROC.
184 * min-head-radius (25)
186 What is the radius of the smallest heads we are looking for.
188 * max-head-radius (200)
190 What is the radius of the largest heads we are looking for.
192 * root-cell-nb-xy-per-radius (5)
194 What is the size of a (x,y) square cell with respect to the radius
197 * pi-feature-window-min-size (0.1)
199 What is the minimum pose-indexed feature windows size with respect
200 to the frame they are defined in.
202 * nb-scales-per-power-of-two (5)
204 How many scales do we visit between two powers of two.
206 * progress-bar ("yes")
208 Should we display a progress bar.
216 sequence-test-detector