Difference between revisions of "BoofCV Change Log"

From BoofCV
Jump to navigationJump to search
(Updated for v0.6)
m
Line 2: Line 2:


Date Format: year/month/day
Date Format: year/month/day
---------------------------------------------
Date    : 2012/04/22
Version : Alpha 0.7
* Redesigned how evaluation apps/applets handle data input and configuration
* Removed the epipolar directory
** More than just stereo algorithms in there
* Camera calibration outputs XML file containing intrinsic parameters
** Java XML serialization
* For square calibration grids, added sub-pixel refinement using canny edge
* Fixed a bug in camera calibration where it transposed the grid instead of rotating it if the number of rows/columns needed to be swapped.
* 3D Vision Algorithms
** Estimate translation given rotation and two observations
** Refine pose estimate given set of 3D points and observations
** Interface for n-view triangulation
** Bundle adjustment for calibrated cameras
*** Analytic Jacobian
*** A bit slow right now
* Changed behavior of GeneralFeatureDetector
** Supports sub-region extraction.  Forces features to be more spread out
** Max N now is the total number of features, including excludes
* Improved speed of Levenberg algorithm by taking advantage of symmetry
* UtilEpipolar
** Added canonicalCamera() and decomposeCameraMatrix()
* Created the following Util and Ops classes
** UtilIntrinsic
** LensDistortionOps
** RectifyImageOps
* Stereo Rectification
** Calibrated with known baseline
** Uncalibrated, from using a fundamental matrix.
** Adjust rectification to maximize usefull viewing area
* New Examples
** Estimate fundamental matrix
** Rectify calibrated
** Rectify fundamental matrix
** Remove lens distortion
* The feature score was not being set in WrapAssociateGreedy
** Thanks Nir Amar
** Also changed AssociateSurfBasic for a similar reason
* Fixed problem in FundamentalResidualSampson where the denominator was being squared
* Fixed problem in Se3 Essential generator
* Changed positive depth constraint class


---------------------------------------------
---------------------------------------------
Date    : 2012/03/01
Date    : 2012/03/01
Version : Alpha 0.6
Version : Alpha 0.6


Line 51: Line 97:
---------------------------------------------
---------------------------------------------
Date    : 2012/02/01
Date    : 2012/02/01
Version : Alpha 0.5
Version : Alpha 0.5


Line 70: Line 117:
---------------------------------------------
---------------------------------------------
Date    : 2012/01/06
Date    : 2012/01/06
Version : Alpha 0.4
Version : Alpha 0.4


Line 84: Line 132:
---------------------------------------------
---------------------------------------------
Date    : 2012/01/02  
Date    : 2012/01/02  
Version : Alpha 0.3
Version : Alpha 0.3


Line 119: Line 168:
---------------------------------------------
---------------------------------------------
Date    : 2011/12/01  
Date    : 2011/12/01  
Version : Alpha 0.2
Version : Alpha 0.2


Line 146: Line 196:
---------------------------------------------
---------------------------------------------
Date    : 2011/11/01  
Date    : 2011/11/01  
Version : Alpha 0.1  
Version : Alpha 0.1  


* Initial public release
* Initial public release

Revision as of 13:58, 22 April 2012

Change Log

Date Format: year/month/day


Date  : 2012/04/22

Version : Alpha 0.7

  • Redesigned how evaluation apps/applets handle data input and configuration
  • Removed the epipolar directory
    • More than just stereo algorithms in there
  • Camera calibration outputs XML file containing intrinsic parameters
    • Java XML serialization
  • For square calibration grids, added sub-pixel refinement using canny edge
  • Fixed a bug in camera calibration where it transposed the grid instead of rotating it if the number of rows/columns needed to be swapped.
  • 3D Vision Algorithms
    • Estimate translation given rotation and two observations
    • Refine pose estimate given set of 3D points and observations
    • Interface for n-view triangulation
    • Bundle adjustment for calibrated cameras
      • Analytic Jacobian
      • A bit slow right now
  • Changed behavior of GeneralFeatureDetector
    • Supports sub-region extraction. Forces features to be more spread out
    • Max N now is the total number of features, including excludes
  • Improved speed of Levenberg algorithm by taking advantage of symmetry
  • UtilEpipolar
    • Added canonicalCamera() and decomposeCameraMatrix()
  • Created the following Util and Ops classes
    • UtilIntrinsic
    • LensDistortionOps
    • RectifyImageOps
  • Stereo Rectification
    • Calibrated with known baseline
    • Uncalibrated, from using a fundamental matrix.
    • Adjust rectification to maximize usefull viewing area
  • New Examples
    • Estimate fundamental matrix
    • Rectify calibrated
    • Rectify fundamental matrix
    • Remove lens distortion
  • The feature score was not being set in WrapAssociateGreedy
    • Thanks Nir Amar
    • Also changed AssociateSurfBasic for a similar reason
  • Fixed problem in FundamentalResidualSampson where the denominator was being squared
  • Fixed problem in Se3 Essential generator
  • Changed positive depth constraint class

Date  : 2012/03/01

Version : Alpha 0.6

  • Added convolution related code for ImageSInt32
  • Added weighted KLT and Harris corner detectors
  • Refactored factory names and other classes to make them easier to find and more consistent
  • Planar calibration grid detectors
    • Chess board pattern
    • Square grid pattern
  • Generic code for detecting squares in binary images
    • Inside of calibration module
  • Application for calibration from planar calibration targets
    • GUI and commandline
  • ImageDistort
    • Fixed bug where border.setImage() was not being called
  • ImageBorder
    • Added generalized get(x,y)
  • Refactored FactoryImageBorder into two factories
  • Fixed bug in several derivative operators where the passed in border was being ignored and an extended border being used instead
  • Change ImplImageDistort* to use interpolate.get_unsafe() to speed it up by a large margin
  • Moved ImageDistort from boofcv.alg.distort to boofcv.struct.distort
  • Added PointTransform_F32
  • Added both forward and reverse radial distortion PixelTransform_F32 implementations
  • ModelMatcher classes can now create multiple model hypotheses from a single set of points.
  • Changed ImagePointTracker to use PointTrack instead of AssociatedPair
    • Created KeyFramePointTracker to track features and create AssociatedPairs
  • Added FactoryEpipolar
  • Added FactoryTriangulate
  • Added non-linear refinement for:
    • Fundamental/Essential matrix
    • Homography matrix
    • Triangulation
  • Added 2-view and N-View triangulation algorithms
    • DLT
    • Closest point from two lines
  • Added EPnP from Lepetit 2009 paper
    • Validation against author's code is pending
  • Added color processing to several Apps
    • EvaluateInterpolateEnlargeApp
    • ShowImageBlurApp
  • Added SimpleNumberSequenceReader for reading small sequences of numbers
  • Added lens distortion app
  • Found sudbtle bug in Harris corner detector.
    • Surprisingly doesn't seem to change output.

Date  : 2012/02/01

Version : Alpha 0.5

  • Improved SURF performance
    • Fixed various bugs and changed algorithm to improve performance
      • Both speed and stibility have been improved
    • Now is the best performing SURF implementation in the benchmark
  • ImplOrientationSlidingWindowIntegral has been replaced with a faster and more accurate algorithm
  • Improved integral image support
  • Improved sparse gradient support
  • Refactored sparse image operator code
    • Added SparseImageSample interface
  • Added/Improved unconstrained non-linear optimization code
    • Quasi-Newton line search
    • Levenberg-Marquardt
  • Geometric vision and calibration code which uses non-linear optimization now works correectly
  • Started converting internal micro benchmarks to use Caliper

Date  : 2012/01/06

Version : Alpha 0.4

  • Changed behavior of ConvertBufferedImage so that it won't automatically swap bands in MultiSpecitral image
    • orderBandsIntoRGB() has been provided to do that manually if needed
  • All automatic convert to/from BGR and been removed from ConvertRaster
  • Fixed SURF related issue
    • Image bounds check was being incorrectly performed for integral image orientation estimation algorithms (Thanks Oleg Chernoguz for pointing this out)
    • FactoryOrientationAlgs.sliding_ii() was creating an average orienation alg for I32 images
    • Some coordinates were integer instead of double
  • Added comments to several factories and other classes
  • Added ant script for examples and readme.txt explaining how to use it

Date  : 2012/01/02

Version : Alpha 0.3

  • Camera Calibration
    • Planar grid (Zhang 98)
    • Camera calibration matrix from homographies
    • Linear radial distortion
    • Decomposition of homography for calibration
    • Nonlinear optimization of all parameters
  • Calibration Grid Detection
    • Detects corners up to "pixel accuracy", in reality its probably worse than that
    • Sub-pixel accuracy code exists but needs more work
  • Added min and max values to ImageTestingOps.addGaussian()
  • Tweaked factories related to wavelet denoising so that they take in an image type.
  • Removed cyclical dependency between modules by creating a visualize modules
  • Added to BinaryImageOps
    • label to clusters
    • clusters to binary
  • Renamed ImageBase to ImageSingleBand
  • Created a new ImageBase
  • Flushed out MultSpectral image type more and extended ImageBase
    • Created functions to convert to and from BufferedImage
  • Changed behavior of several functions in GeneralizedImageOps to include MultiSpectral images
    • refactor createImage -> createSingleBand
  • Updated ant scripts
    • Common template is now used for the different modules
    • Fixed unit test and make it work across the whole project
  • Added crop to ImageDistort
    • If cropping is used the only part of the destimation image is processed
  • Created calibration package to hold calibration related code
  • Moved jars not part of the primary build into boofcv/lib/testing
  • Started converting runtime benchmark code over to Caliper

Date  : 2011/12/01

Version : Alpha 0.2

  • Added integer polynomial interpolation
    • Cleaned up polynomial interpolation code
  • Fixed bug in PixelMath.bound() dealing with unsigned images
  • Converting to a BufferedImage now marks it as modified
  • Added min and max pixel values to ImageTypeInfo
  • Added ComplexMath
  • Added PolynomialSolver
  • Added process(image) to PointSequentialTracker and renamed it to ImagePointTracker
  • Added the following 3D vision code:
    • Linear 8-point essential/fundamental matrix
    • Linear 7-point essential/fundamental matrix
    • Linear 4-point homography
    • Extract camera motion from essential
    • Extract camera and plane normal from homography
    • Triangulate: Linear pixel depth
    • Projective N Point (PNP): Linear N >= 6
  • Added non-linear optimizer based upon Levenberg-Marquardt
  • Added pixel region based descriptors
    • Raw pixel values
    • Normalized Cross Correlation (NCC)
  • Added pixel region based trackers
  • Added Sum of Absolute Difference (SAD) score for feature association with a few different descriptor types.

Date  : 2011/11/01

Version : Alpha 0.1

  • Initial public release