Version 2.0.10
  - bug corrected in  aruco_print_dictionary
Version 2.0.9
  - bug corrected in MarkerPoseTracker relative to the refence system. The reference system of the markers computed using the Marker::calculateExtrinsics was different from the ne of MarkerPoseTracker. Now, the one 
  from MarkerPoseTRacker is the wining, since it is the same as the twin library markermapper.
  Be careful since there might be a incompatiblilty issue in the reference system with preios data.
Version 2.0.8
  - bugs corrected in Marker::toStream and Marker::fromStream
  - proposed solution to the ambiguity problem in MarkerPoseTracker. See posetracker.h for details
Version 2.0.7
  - removed <omp.h> from levmarq.h and included "ar_omp.h" instead
  - M_PI substituted by 3.1415....
  - added MarkerMap::calculateExtrinsics
  - Conditional use of eigen3. It is only used if compiled against opencv2. In Opencv3 solvePnp works properly
Version 2.0.6
  - Many warnings removed
Version 2.0.5
  - Corrected bug in MarkerMapPoseTracker

VERSION 2.0.4
  - C++11 code 
  - Markers ids are 64 bits (8x8)
  - Predefined set of dictionaries. It includes ARUCO, ARUCOHRM, AprilTags, ArToolKit and ARTAG
  - Added marker tracker. Avoids the problem of ambuguity? Hopefully
  - Chromatic mask removed from libary.
  - Removed Board and BoardDetector. This concepts are now expanded to the idea of MarkerMap and managed in classes MarkerInfo, MarkerMap and MarkerSetPoseTracker.
    see utils_markerset for more examples.
        This is to allow compatibility with the twin libary aruco_markermapper
VERSION 1.3.1
  - Added MarkerDetector::Param class to encapsulate all of them.
  - Added calibration tool in utils/aruco_calibrate that uses aruco chessboards
  - removed MarkerDetector::setDesiredSpeed and MarkerDetector::getDesiredSpeed
  - removed HARRIS corner method from markerdetector and locked corners stuff
  - Add SVMMarkers class to detect markers with generic patterns using a trained SVM model.
  - Code refactoring to encapsulate the detectors into classes. Added the class MarkerLabeler and its factory creator
  - in aruco_create_board, random seed is now manually set if, or 0 if not. This creates by default always the same board
VERSION 1.3
  - Compatibility with OpenCV 3
  - In Marker Detector:
      - Paralelization using OpenMP
      - Marked as deprecated enableErosion and pyrDown
      - Added functionality for markers with "locked corners". We refer to marker whose corners are connected
        either to another marker (formaing a chessboard pattern), or to another black  square. In this mode,
        the use of subcorner refinement methods is expected to be more precise. See enableLockedCornersMethod()
      - Added funcionality to search for the first threshold parameter simultaneously in several
        values. The process is parallelized in multiple threads. See setMultiThresholdSearch()
  - In HRM markers:
      - Speed up marker identification process
      - Improve performance of dictionary generation process.
  - Added LICENSE file

VERSION 1.2.5
  - New type of markers: highly reliable markers (hrm) including utils to use them
  - Added chromaticmask class to create occlusion mask based on chromatic boards
  - Added watermark with the id to the markers to allow easy identification of printed markers
  - Now, by default, setYPerpendicular=false. So, Z is now pointing out of the board.
  - Added a reprjection test in boardetector   see BoardDetector::set_repj_err_thres() and BoardDetector::get_repj_err_thres ()
  - Added support for 5 distortion parameters in CameraParameters class
  - Removed experimental code for removing the deformation that occurs when a marker is in a cylinder
  - Omp support in linux (in markerdetector)
  - Added an static function in BoardDetector::detect to do everything in a single line.
  - New BoardConfiguration constructor receving a path with the configuration to be read. 
  - Revised opencv #includes to include just the necessary modules
  - Added aruco_calibration.cpp to perform camera calibration using aruco boards  
  - Changes in LINES refinement to perform undistortion automatically  
  - Method setYPerperdicular in BoardDetector changed to setYPerpendicular (spelling error)
  - Added getWarpSize() and setWarpSize methods in MarkerDetector to allow changing the canonical image size
  - Bug fixed in aruco_create_board

VERSION 1.2.4
  - Bugs fixed for MSVC2010
  
VERSION 1.2.3
  - Changes in boardconfiguration and boardetector to allow arbitrary located markers. No API changes involved, except for the config files that have changed their format.
  - Changes in arucofidmarkers to allow the creation of chessboard like boards  (FiducidalMarkers::createBoardImage_ChessBoard).
          Added the corresponding change in aruco_create_board to support such feature
  - Added experimental code for removing the deformation that occurs when a marker is in a cylinder
  - Added the corner refinement method LINES. It is based on intersecting the lines of the marker's sides using the contour points. 
    We believe this is the best refinement method of the library so far.
  - Added functionality in aruco::BoarDetector to perform the whole detection process in it if desired
  - Changed aruco_test_board to use the new functionality described above
  - Changed old way of obtaining extrinsics FindExtrinsicParam2 for the new one solvePnp in BoardDetector and in Marker

VERSION 1.1.0
  - Ogre integration (    Board::OgreGetPoseParameters and Marker::OgreGetPoseParameters).
  - Changes to make it compile with MSVC 2010
  - Remove getopt.h dependency. Command line are simpler now
  - MarkerDetector: Externalization of the marker detector to allow using user-defined markers. The function setMakerDetectorFunction allows to define this function
  - Added class FiducidalMarkers to detect the original aruco markers 
  - MarkerDetector: function glGetProjectionMatrix is moved to the CameraParameters class. Sorry, but it is more logical.
  - MarkerDetector: Clear separation between the detection phases into separated functions that can be externally called (thresHold and detectRectangles) for more sohpisticated user needs
  - MarkerDetector: new corner refinement method based on harris detector. Also, added the possibility of not refining corners at all.
  - Added an option to work on a reduced version of the images (pyrDown).
  - Changes the adaptive threshold method. Now we employ the MEAN. As a consequence, the process is faster and do not depen on the window size.
  - Initial tests with android
  - Bugs fixed
  
VERSION 1.0.0
  -  New names for the main classes Marker,MarkerDector... etc. Sorry, but I needed to clear up things. It wont be difficult to adapt.
  -  A new class for the camera parameters. It can be readed from the calibration.cpp application in OpenCv2.2
  -  Refactorization of code to make it more maintainable
  -  Better support for Windows (Cmake) and OpenGL
  -  Improved documentation. Windows users should read the README file that explains how to build the library
  -  A new class for drawing markers and boards in opencv images
  -  A couple of new very simple examples to teach the use of the library(aruco_simple and aruco_simple_board)
  
VERSION 0.9.5
  Added support for Boards
  Added cmake support
  Bugs fixed
