Evolutive Algorithm based on Naďve Bayes models Estimation


[Authors]   [Introduction]   [License]    [Software]    [Data Sets]    [Documentation]





Xavier Baró and Jordi Vitriŕ


Computer Vision Center (www.cvc.uab.cat)


Computer Science department of the Universitat Autňnoma de Barcelona (www.uab.cat)





This page contains the software and documentation to use the EANBE method. This software is tested using Windows XP, Intel Open Computer Vision Library (OpenCV) release 1.0 and Matlab 2006b. We are working on integrate Adaboost learning code into the C++ library and prepare it to be compilable for Linux users and open source compilers. The source code is published into Google Code http://code.google.com/p/eapmlib/.


If you have some problem with the code or some comment, please contact us by an e-mail to: 


Please, read carefully the license information before use this code.






Permission to use, copy, modify, distribute this code and its documentation for research, educational and individual use only, is  hereby granted without fee, subject to the following conditions:


1.      This license text containing the copyright notice, this list of conditions and the following disclaimer must be retained with the files.

2.      Any modifications must be clearly marked as such.

3.      Original authors' names must be mentioned.

4.      This data may not be used for commercial purposes without specific prior written permission from the authors.


The Authors and their respective affiliation centers disclaim all warranties with regard to this code and documentation files, including all implied warranties of merchantability and fitness. In no event the Authors nor their respective affiliation centers be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortuous action, arising out of or in connection with the use of this code and documentation.





All the Matlab files, MEX files and DLL for Gentle Adaboost and EANBE are packed into this ZIP file: (GAB_EANBE_Code.zip [1.6 Mb]). The most important files are detailed in the following:


ˇ         Learning Code

o   EvolBoost.m: This file corresponds to the Gentle Adaboost algorithm using EANBE as Weak Learner.

§  MEXGetSamplesInfo.dll: MEX file to obtain the properties of an image set file.

§  MEXFeatureSelection.dll: MEX that uses EANBE to find the best dipoles configuration to minimize the weighted error.

§  PlotFeature.m: This file is used to show the last selected feature

§  PlotROC.m: This file is used to show the current ROC curve for the classifier that is being learned.

ˇ         Useful code

o    MEXCompleteFeature.dll: Complete the implicit parameters of a weighted dipole (i.e given the 5 parameters that defines a Haar-like feature, retrieve the full 15-parameters based of the corresponding weighted dipole.)

o    MEXEvalPopulation.dll: Apply a set of features over an image set file, retrieving the classification values for each sample.

o    MEXGetImage.dll: Retrieve a certain image from an image set file.

o   MEXSamplesSetCreation.dll: Given a file with a list of image paths and their respective labels, create the 10-fold image set files in the eapmlib format.


Data sets







ˇ         What it means EANBE?

EANBE is the acronym for Evolutive Algorithm based on Naďve Bayes Estimation.


ˇ         How can I compile the code?

All the utilities to compile the code are under the folder _make. Under Windows the easiest way is to use the given solutions for Visual Studio 6.0 and Visual Studio 2005. Under Linux, two projects for Eclipse and for KBuilder are given. To create your own project in any other programming environment, just consider the following:


1.      All the files under the folder eapmlib are needed to create the shared library (libeapmlib.so or eapmlib.dll). Compile all the files using all the include subfolders.

2.      Under Windows, a precompiler directive EAPM_EXPORTS must be defined.

3.      All the applications that use that library must link against it.




ˇ         How can I test this method with my own data?



ˇ         How can I use the available data?

ˇ         How can I create my own EAPM using this library?






This page is under construction. In few days, more documentation will be available. For the moment, all the Matlab files have a small documentation in the header, and the MEX files shows the parameters that they use if are called without arguments. The sample applications and the comments in the code can help you for the moment. For any question or comment, please contact us by e-mail.