Difference between revisions of "BoofCV Change Log"

From BoofCV
Jump to navigationJump to search
m
m
 
Line 1: Line 1:
Date    : 2016/12/01
Date    : 2016/12/07
Version : 0.25
Version : 0.26


* Black Circle Detector
* Fixed a long standing unit test issue where convolve unit test would some times on some systems erratically fail
** Binary image
** Appears that sometimes the random numbers caused a buffer overflow for U8 images
** Subpixel edge for gray scale images
** Now why it didn't have the exact same numbers every time when it has a fixed seed is disturbing...
* Circular Asymmetric Grid Pattern
* Renamed EquirectangularTo* to *ToEquirectangular
** For calibration
** Those classes convert pixels in * coordinates into their location in the equirectangular image
** As a general fiducial
** They are used to generate a * image from equirectangular
* Histogram of Oriented Gradient
* Float 32bit auto coding switched over to using auto64fto32f library
** Provided another implementation which is more faithful to original paper, but much slower
* TypeInterpolate is now InterpolationType for consistency
** Can now independently configure block size along each axis
* Examples
* VideoTrackerObjectQuadApp
** InterpolatePixel added
** Can now open webcams and videos
** Image blur added
** Improved UI
** Non-Maximum Suppression added
* Association
* Demonstrations
** Added helpful error messages when src and dst are not set
** Improved DemonstrationInterpolateScaleApp (renamed also)
* Added support for F64 to F32 autocoding from regular F64 classes
** Added DetectBlackEllipseApp
* 360 / Spherical camera support
* Gradle
** Equirectangular image support
** Will fail on dependency version conflict now
** Equirectangular to pinhole
** Will fail when building release with SNAPSHOT dependencies
** Equirectangular to cylinder
** Resolved xstream version conflict
** Equirectangular rotate
* Updated DeepBoof
* Dirty flag was not being set to false for cached image distort single band
** This is to get around an issue with a java wget library where it would hang instead of giving up
* Changed minimum Java language level from 6 to 7
** New code is also much more informative and prints out size info and download status\
* Camera Model
* Visualization
** Renamed IntrinsicParameters to CameraPinhole
** Removed a bad +PI/2 from ellipse rendering.
** Broke distortion off into a separate class which extends CameraPinhole
* SnapToEllipseEdge * Fixed bug where it was only performing one iteration no matter what
*** CameraPinholeRadial
* Circle Asymmetric Grid Target
** Added a new camera for wide FOV cameras: Universal Omnidirectional
** Fixed issue which was causing clusters not to form by not limiting number of neighbors within X distance
** Created new transforms to handle non-pinhole cameras
** When clustering ellipses orientation and major/minor axis size is now taken in account.
* YAML
** Significant net improvement in regression tests, only drop in performance in blurred images
** Changed save format to YAML for camera model parameters.
** This should allow saved files to be independent of internal refactoring in BoofCV and cross platform, I hope.
* Deleted BoofAndroidFiles because you can now simply use yaml format
* Deep Learning
** Integrated in DeepBoof to provide support for deep artificial neural networks (ANN)
* Image Classification
** VGG trained on CIFAR10  (10 categories at 89.9%)
** Network-in-Network trained on ImageNet (1000 categories at 62.6%)
* FiducialDetector
** Takes in a distortion factory instead of camera parameters
** Added getIntrinsics()
** Added getImageLocation()
** Fixed bug where if a lens model with distortion was used then exchanged for one without the old distortion was not fully removed.
** Fixed bug where if intrinsic was not set it would still claim it could estimate the target's pose
* Binary Fiducial
** When decoding the image it now ignores border pixels of inner squares.  These tend to be very noisy.
** 7% improvement in regression test.  Idea taken from ArUco
* Commandline Fiducial Generator
** Can specify custom document size
* Added command line application for calibration fiducials
** Supports chessboard, square grid, square binary grid, circle asymmetric grid
* OpenCV Integration
** can read and write camera calibration for pinhole cameras with radial + tangential distortion
* FancyInterestPointRender
** Fixed addString() being a no-op.  Thanks R-Gerard for the bug report!
* Generate Square Fiducial Applications
** The post script format has been tweaked so that the page size is specified with the /PageSize command also
** A printing company was having issues correcting sizing the document until this change was made.
* Refactored FactoryCalibrationTarget -> FactoryFiducialCalibration
* FactoryMotion2D
** Removed image type specific functions and updated code for more recent API
* Fixed bug in StitchingFromMotion2D where reset() could cause a null pointer exception
* Android
** work around for a crash bug in Marshmallow
* Removed applet module in integration
* Template Matching
** Added correlation using FFT
** Tweaked API so that preprocessing of image can be performed
* TypeInterpolation renamed to InterpolationType for consistency
* Changed behavior of AssociateSurfBasic
** no longer throws an exception if src or dst features are empty

Latest revision as of 21:16, 7 December 2016

Date  : 2016/12/07 Version : 0.26

  • Fixed a long standing unit test issue where convolve unit test would some times on some systems erratically fail
    • Appears that sometimes the random numbers caused a buffer overflow for U8 images
    • Now why it didn't have the exact same numbers every time when it has a fixed seed is disturbing...
  • Renamed EquirectangularTo* to *ToEquirectangular
    • Those classes convert pixels in * coordinates into their location in the equirectangular image
    • They are used to generate a * image from equirectangular
  • Float 32bit auto coding switched over to using auto64fto32f library
  • TypeInterpolate is now InterpolationType for consistency
  • Examples
    • InterpolatePixel added
    • Image blur added
    • Non-Maximum Suppression added
  • Demonstrations
    • Improved DemonstrationInterpolateScaleApp (renamed also)
    • Added DetectBlackEllipseApp
  • Gradle
    • Will fail on dependency version conflict now
    • Will fail when building release with SNAPSHOT dependencies
    • Resolved xstream version conflict
  • Updated DeepBoof
    • This is to get around an issue with a java wget library where it would hang instead of giving up
    • New code is also much more informative and prints out size info and download status\
  • Visualization
    • Removed a bad +PI/2 from ellipse rendering.
  • SnapToEllipseEdge * Fixed bug where it was only performing one iteration no matter what
  • Circle Asymmetric Grid Target
    • Fixed issue which was causing clusters not to form by not limiting number of neighbors within X distance
    • When clustering ellipses orientation and major/minor axis size is now taken in account.
    • Significant net improvement in regression tests, only drop in performance in blurred images