-------------------------------------------------------------------------------------------------------------
------------------------------------------ INTRODUCTION -----------------------------------------------------
-------------------------------------------------------------------------------------------------------------
Kazoe is a software for detecting elliptical patterns in images of large scenes. The method is described in the following paper:

Efficient Monte Carlo sampler for detecting parametric objects in large scenes
Verdie Y. anf Lafarge F - Proceedings of the European Conference on Computer Vision (ECCV), Firenze, Italy, 2012

This implementation has been successfully compiled and run on:
Windows 7 64bit with VS2010, cuda 4.1
Geforce GTX 460 (arch 2.0)
Quadro FX 4800  (arch 1.3)

-------------------------------------------------------------------------------------------------------------
--------------------------------------------- INPUT ---------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
-> bmp image


-------------------------------------------------------------------------------------------------------------
--------------------------------------- REQUIRED LIBRARIES --------------------------------------------------
-------------------------------------------------------------------------------------------------------------
The software requires the CImg Library, minimun version: 1.48 (http://cimg.sourceforge.net/) for image opening and saving.
The software requires the CUDA Library, minimun version: 4.1 (http://developer.nvidia.com/cuda/) for the core of the simulation.


-------------------------------------------------------------------------------------------------------------
----------------------------------- PARAMETERS OF THE SOFTWARE ----------------------------------------------
-------------------------------------------------------------------------------------------------------------
This session explains the meaning of the parameters to set up in the file 'ParametersConvergence_Simulation_GPU_sample_big_cropped.ini' provided as example

----GENERAL-----
-> Verbose (INT) : Chinfse the amount of information provided during runtime (0 mute, 1 minimum, 2 maximum)

----Recuit_Parameters----
-> StartTemperature (FLOAT) (]0, inf[) : The starting temperature for the cinfling schedule (Simulated Annealing)
-> EndTemperature   (FLOAT) (]0, inf[) : The ending temperature (stop criteria) for the cinfling schedule (Simulated Annealing)
-> MinDeltaEnergy   (FLOAT) ([0, inf[) : The minimum delta energy (in percent) between two plateaux (stop criteria) for the cinfling schedule (Simulated Annealing)
-> DecreaseFactor   (FLOAT) (]0, 1.0[) : The decreased factor applied to the temperature between two plateau for the cinfling schedule (Simulated Annealing)

-> PlateauLength      (INT) ([1, inf[) : The size of the plateau (Simulated Annealing)

-> ProbaTranslation   (INT) ([0, inf[) : The probability to select the Translation kernel (unnormalized value)
-> ProbaRotation      (INT) ([0, inf[) : The probability to select the Rotation kernel (unnormalized value)
-> ProbaEnlargeShrink (INT) ([0, inf[) : The probability to select the Enlarge kernel (unnormalized value)
-> ProbaBirthDeath    (INT) ([0, inf[) : The probability to select the Birth and Death kernel (unnormalized value). The chinfse between Birth and Death kernel is equiprobable.

-> MaxTranslation     (INT) ([0, inf[) : The maximum step for the Translation kernel

----Shape_Parameters----
-> Ellipse_MinWidth   (INT) ([1, inf[) : The minimum size of the minor axis of the ellipse
-> Ellipse_MaxWidth   (INT) ([1, inf[) : The maximum size of the minor axis of the ellipse
-> Ellipse_MinHeight  (INT) ([1, inf[) : The minimum size of the major axis of the ellipse
-> Ellipse_MaxHeight  (INT) ([1, inf[) : The maximum size of the major axis of the ellipse


----Interactions_Parameters----
-> Intersections_Alpha (FLOAT) ([0, inf[) : The coefficient applied to the prior term of the energy
-> Bhatt_Alpha         (FLOAT) ([0, inf[) : The coefficient applied to the data term of the energy
-> Bhatt_Thickness     (FLOAT) ([0, inf[) : The size of the boundary of the external area used to compute the bhattacharyya distance (see paper)
-> Bhatt_Threshold     (FLOAT) ([0, inf[) : The threshold to make the ellipses fitting more selective (see paper)
-> Hard_Core           (FLOAT) ([0, 1.0]) : The hard core penality for objects overlap (in percent)


----Data_Map----
-> ConstructDataMap        (INT)    ([0, 1]) : Chinfse between homogeneous poisson process, i.e. uniform (0) or  unhomogeneous poisson process, i.e. quadtree (1)
-> FileName                (STRING)          : The name of the bmp file used for constructing the quadtree (Only used when ConstructDataMap is 1)
-> SaveCurrentStageAsImage (INT)    ([0, 1]) : Whether we save the evolution of the optimization (after each plateau) as bmp images
-> NameFiletoDraw          (STRING)          : If provided, use this image to write the result on instead of using a copy of the input image


-------------------------------------------------------------------------------------------------------------
---------------------------------------------- CONTACT ------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
Yannick Verdie, INRIA                                           Florent Lafarge, INRIA
email: Yannick.Verdie@inria.fr                                  email: Florent.Lafarge@inria.fr

                                     2004 route des Lucioles
                                  06902 Sophia Antipolis, France   