Difference between revisions of "BoofCV Change Log"

From BoofCV
Jump to navigationJump to search
m
m
Line 1: Line 1:
Change Log
= Change Log =


---------------------------------------------
Date    : 2016/01/24
Date    : 2015/11/09
Version : Alpha 0.20


* Improved pose stability of calibration targets as fiducials
Version : Alpha 0.21
** Turns out they were using a linear estimate only
 
** Now uses EPnP followed by a few steps of non-linear refinement
* Scale-Space Features
* PerspectiveOps.createIntrinsic() which creates intrinsic parameters from a known FOV and image shape
** getScale() has been replaced with getRadius(), which refers to the radius of the detected object
* New WebcamInterface and some examples now can run on your webcam
* SURF
** Requires WebcamCapture
** Fixed a bug dealing with gradient calculation and improved stability for very small objects
* ExamplePointFeatureTracker has colorized points to make it easier to identify the same point
** Exposed an inner parameter.  You can now change the kernel size increment between scales
* Polygon Detector
* WebcamTrackFiducial renamed to FiducialDetection
** Simplified code by removing requirement the CW/CCW must be known by helper classes
** Can now process more inputs sources;  still images, videos, and webcams.
* BinaryPolygonConvexDetector
** Output to a file is a possibility
** Much improved performance on non-square like shapes
* Renamed SurfFeature to BrightFeature
** Stability is much better on very small shapes
** Used by SURF and SIFT, so the name was made more generic
* Merged data/applet and data/evaluation together
* SIFT
** Renamed to data/examples
** Complete rewrite of detector and descriptor
* Renamed package boofcv/evaluations to boofcv/demonstrations
** Very similar to original paper by Lowe
** It no longer served as a place for benchmarks
** One difference is the use of quadratic interpolation instead of the overly complex thing that Lowe proposed
* VisualizeBinaryData
* Dense SIFT
** Marked buffered image as dirty when rendering a labeled image
** Optimized code for computing dense descriptors at a fixed scale in a grid across the entire image
* Removed Processing from project
* Black polygon detector
** Might spawn into its own project if there is more interest in the future
** can now handle features along image border
* Binary Thresholding
** fixed a couple of bugs inside refine function too
** Created a generic config class which supports all current types
** improved false positive rejection (e.g. squarish bright lights)
* Square Fiducial Generator App
* Square Fiducials
** no longer defaults to a page border of 1cm
** Threshold is now done using the average of pixel intensity along the fiducial border
** page border is actually user configurable
** Image border is used to remove false positives
** border and white border are correctly handled
* Change / Clarified behavior of non-maximum suppression classes
* Square Binary Fiducial
** Border refers to the border around the image in which extremes cannot be found
** Can now handle grids with arbtirary widths!
** A pixel inside the border can have a value larger than one inside the image and prevent it from being considered an extreme
*** Thanks Nathan Pahucki npahucki@gmail.com for submitting this pull request
* FactoryPlanarCalibrationTarget renamed to FactoryCalibrationTarget
** The width of the border can now be adjusted too
* Improved visualization in ShapeFitContourApp
* Moved PyBoof to it's own repository at https://github.com/lessthanoptimal/PyBoof
* ConvertImage
** It will be update on its own cycle
** Interleaved to MultiSpectral
* Chessboard Detector
** MultiSpectral to Interleaved
** Improved stability especially for slightly blurred images
** Any single band into into ImageUInt8 with the specified pixel value range
* PointTrackerKltPyramid
* Chessboard detector
** Fixed uninitialized variable in one of the constructors.  Thanks ericbhatti
** Links squares together using corners instead of two independently detected grids
** Change it from two constructors down to one constructor
** Can now detect targets in which the outer squares have been clipped by the image's border
* Created built in class for removing perspective distortion
* Square Grid Detector
** RemovePerspectiveDistortion
** Changed how the pattern is specifiedBased on black squares now
* Partially observable calibration targets are now supported
* DetectLineHoughPolar
** Mathematically at leastTargets which can be partially observed are not supported yet
** Fixed issue were a strict non-maximum was used when a non-strict was needed, causing valid lines to be discarded
* ConvertBufferedImage.stripAlphaChannel()
* WebcamCapture
** Can be used to ensure that an alpha channel is not in the buffered image
** Provided an easy to use function that allows you to open devices by their /dev name
** Inspired by an issue pete-experimenter had
* Image Thresholding: LocalSquareBlockMinMax Added
* Renamed FiducialDetector to FiducialPoseDetector
** Breaks the image up into a grid and computes the min and max pixel value, which is used to compute a threshold
** Done to accommodate fiducials in which you don't care about the pose
** Enabled the detection of black objects partially outside the view
* Morphological Thinning has been fixed and tweaked
** Is very fast
** Thanks Emil Hellman who first pointed out the issue and helped solve/improve the implementation
* Android
* Locally adaptive threshold techniques that had a bias term now have a scale term.
** Will automatically detect if image needs to be rotated 180 degrees and then does it.  Needed for the Nexus 5x
** Much more useful since bias was intensity and value range dependent

Revision as of 18:31, 24 January 2016

Change Log

Date  : 2016/01/24

Version : Alpha 0.21

  • Scale-Space Features
    • getScale() has been replaced with getRadius(), which refers to the radius of the detected object
  • SURF
    • Fixed a bug dealing with gradient calculation and improved stability for very small objects
    • Exposed an inner parameter. You can now change the kernel size increment between scales
  • WebcamTrackFiducial renamed to FiducialDetection
    • Can now process more inputs sources; still images, videos, and webcams.
    • Output to a file is a possibility
  • Renamed SurfFeature to BrightFeature
    • Used by SURF and SIFT, so the name was made more generic
  • SIFT
    • Complete rewrite of detector and descriptor
    • Very similar to original paper by Lowe
    • One difference is the use of quadratic interpolation instead of the overly complex thing that Lowe proposed
  • Dense SIFT
    • Optimized code for computing dense descriptors at a fixed scale in a grid across the entire image
  • Black polygon detector
    • can now handle features along image border
    • fixed a couple of bugs inside refine function too
    • improved false positive rejection (e.g. squarish bright lights)
  • Square Fiducials
    • Threshold is now done using the average of pixel intensity along the fiducial border
    • Image border is used to remove false positives
  • Change / Clarified behavior of non-maximum suppression classes
    • Border refers to the border around the image in which extremes cannot be found
    • A pixel inside the border can have a value larger than one inside the image and prevent it from being considered an extreme
  • FactoryPlanarCalibrationTarget renamed to FactoryCalibrationTarget
  • Improved visualization in ShapeFitContourApp
  • ConvertImage
    • Interleaved to MultiSpectral
    • MultiSpectral to Interleaved
    • Any single band into into ImageUInt8 with the specified pixel value range
  • Chessboard detector
    • Links squares together using corners instead of two independently detected grids
    • Can now detect targets in which the outer squares have been clipped by the image's border
  • Square Grid Detector
    • Changed how the pattern is specified. Based on black squares now
  • DetectLineHoughPolar
    • Fixed issue were a strict non-maximum was used when a non-strict was needed, causing valid lines to be discarded
  • WebcamCapture
    • Provided an easy to use function that allows you to open devices by their /dev name
  • Image Thresholding: LocalSquareBlockMinMax Added
    • Breaks the image up into a grid and computes the min and max pixel value, which is used to compute a threshold
    • Enabled the detection of black objects partially outside the view
    • Is very fast
  • Android
    • Will automatically detect if image needs to be rotated 180 degrees and then does it. Needed for the Nexus 5x