
== REQUIREMENTS ==
LINUX
GCC 3.x GCC 4.x

WINDOWS
MSYS/MINGW/CYGWIN

== HOW TO COMPILE ==

make

== HOW TO TRAIN ==

trainer <list of positive pattern> <list of negative pattern>

example:
 trainer pedestrian.lst nonpedestrian.lst

Note: Images have to be PGM images of the same size

== HOT TO TEST ON VALIDATION ==

classify <haarnet output file> <list of test pattern>

example:
 trainer haarnet.txt testpedestrian.lst

== PATTERN IMAGE FORMAT ==

a text file with PGM images separated by carriage return
(for example generated by find -name \*.pgm > file.lst)

example:
 pedestrian/1/ped_examples/img_04471.pgm
 pedestrian/1/ped_examples/img_00736.pgm
 ...etc etc ...

== HOW To Generate Image List ==

Download training set, for example:
http://www.gavrila.net/Research/Pedestrian_Detection/Daimler_Pedestrian_Benchmark_D/Daimler_Pedestrian_Class__Benc/daimler_pedestrian_class__benc.html

and unzip.
Create image list file, using for example find

find */ped_examples > pedestrian.lst
find */non-ped_examples > nonpedestrian.lst

Train and test!


== LICENSE ==

AdaBoost: Ada-Boost on Haar Feature Optimized Library

Copyright (c) 2008-2011 Paolo Medici <medici@ce.unipr.it>

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.

== DETAIL ON ALGORITHM ==
Based on Schapire & Singer (Machine Learning, 1999) "Improved Boosting Algorithm Using Confidence-rated Predictions"

\alpha = 0.5 * \log(w_{+}/w_{-}) = 0.5 * \log(w_{+}/1-w_{+})
Z = w_{0} + 2 * \sqrt{w_{-} w_{+}} = 2 * \sqrt( (1-w_{+})w_{+} )

NOTE: Z is strictly decreasing in 0.5 - 1.0, then the minimum Z is the highest w_{+}






