From: Francois Fleuret Date: Sat, 11 Oct 2008 21:51:04 +0000 (+0200) Subject: *** empty log message *** X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=folded-ctf.git;a=commitdiff_plain;h=82c3a0366dd58ea2b3a2fc3f90be3f1a42ac8341 *** empty log message *** --- diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..e74ec22 --- /dev/null +++ b/README.txt @@ -0,0 +1,223 @@ + +INTRODUCTION + + This is the C++ implementation of the folded hierarchy of + classifiers for cat detection described in + + F. Fleuret and D. Geman, "Stationary Features and Cat Detection", + Journal of Machine Learning Research (JMLR), 2008, to appear. + + Please cite this paper when referring to this software. + +INSTALLATION + + This program was developed on Debian GNU/Linux computers with the + following main tool versions + + * GNU bash, version 3.2.39 + * g++ 4.3.2 + * gnuplot 4.2 patchlevel 4 + + If you have installed the RateMyKitten images provided on + + http://www.idiap.ch/folded-ctf + + in the source directory, everything should work seamlessly by + invoking the ./run.sh script. It will + + * Compile the source code entirely + + * Generate the "pool file" containing the uncompressed images + converted to gray levels, labeled with the ground truth. + + * Run 20 rounds of training / test (ten rounds for each of HB and + H+B detectors with different random seeds) + + You can also run the full thing with the following commands if you + have wget installed + + wget http://www.idiap.ch/folded-ctf/not-public-yet/data/folding-gpl.tgz + tar zxvf folding-gpl.tgz + cd folding + wget http://www.idiap.ch/folded-ctf/not-public-yet/data/rmk.tgz + tar zxvf rmk.tgz + ./run.sh + + Note that every one of the twenty rounds of training/testing takes + more than three days on a powerful PC. However, the script detects + already running computations by looking at the presence of the + corresponding result directory. Hence, it can be run in parallel on + several machines as long as they see the same result directory. + + When all or some of the experimental rounds are over, you can + generate the ROC curves by invoking the ./graph.sh script. + + You are welcome to send bug reports and comments to fleuret@idiap.ch + +PARAMETERS + + To set the value of a parameter during an experiment, just add an + argument of the form --parameter-name=value before the commands that + should take into account that value. + + For every parameter below, the default value is given between + parenthesis. + + * niceness (5) + + Process priority + + * random-seed (0) + + Global random seed + + * pictures-for-article ("no") + + Should the pictures be generated to be clear in b&w + + * pool-name (no default) + + Where are the data to use + + * test-pool-name (no default) + + Should we use a separate pool file, and ignore proportion-for-test + then. + + * detector-name ("default.det") + + Where to write or from where to read the detector. + + * result-path ("/tmp/") + + In what directory should we save all the produced file during the + computation. + + * loss-type ("exponential") + + What kind of loss to use for the boosting. While different loss are + implementer in the code, only the exponential has been thoroughly + tested. + + * nb-images (-1) + + How many images to process in list_to_pool or when using the + write-pool-images command. + + * tree-depth-max (1) + + Maximum depth of the decision trees used as weak learners in the + classifier. + + * proportion-negative-cells-for-training (0.025) + + Overall proportion of negative cells to use during learning (we + sample among them) + + * nb-negative-samples-per-positive (10) + + How many negative cell to sample for every positive cell during + training. + + * nb-features-for-boosting-optimization (10000) + + How many pose-indexed features to use at every step of boosting. + + * force-head-belly-independence (no) + + Should we force the independence between the two levels of the + detector (i.e. make an H+B detector) + + * nb-weak-learners-per-classifier (10) + + This parameter corresponds to the value U in the JMLR paper, and + should be set to 100. + + * nb-classifiers-per-level (25) + + This parameter corresponds to the value B in the JMLR paper. + + * nb-levels (1) + + How many levels in the hierarchy, this is 2 for the JMLR paper + experiments. + + * proportion-for-train (0.5) + + The proportion of scenes from the pool to use for training. + + * proportion-for-validation (0.25) + + The proportion of scenes from the pool to use for estimating the + thresholds. + + * proportion-for-test (0.25) + + The proportion of scenes from the pool to use to test the + detector. + + * write-validation-rocs ("no") + + Should we compute and save the ROC curves estimated on the + validation set during training. + + * write-parse-images ("no") + + Should we save one image for every test scene with the resulting + alarms. + + * write-tag-images ("no") + + Should we save the (very large) tag images when saving the + materials. + + * wanted-true-positive-rate (0.5) + + What is the target true positive rate. Note that this is the rate + without post-processing and without pose tolerance in the + definition of a true positive. + + * nb-wanted-true-positive-rates (10) + + How many true positive rates to visit to generate the pseudo-ROC. + + * min-head-radius (25) + + What is the radius of the smallest heads we are looking for. + + * max-head-radius (200) + + What is the radius of the largest heads we are looking for. + + * root-cell-nb-xy-per-radius (5) + + What is the size of a (x,y) square cell with respect to the radius + of the head. + + * pi-feature-window-min-size (0.1) + + What is the minimum pose-indexed feature windows size with respect + to the frame they are defined in. + + * nb-scales-per-power-of-two (5) + + How many scales do we visit between two powers of two. + + * progress-bar ("yes") + + Should we display a progress bar. + +COMMANDS + + open-pool + train-detector + compute-thresholds + test-detector + sequence-test-detector + write-detector + read-detector + write-pool-images + + -- + Francois Fleuret + October 200