|
|
(15 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| Change Log
| | Date : 2016/12/07 |
| | Version : 0.26 |
|
| |
|
| Date Format: year/month/day
| | * 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... |
| Date : 2012/11/6
| | * Renamed EquirectangularTo* to *ToEquirectangular |
| Version : Alpha 0.11
| | ** Those classes convert pixels in * coordinates into their location in the equirectangular image |
| | | ** They are used to generate a * image from equirectangular |
| * Association Score | | * Float 32bit auto coding switched over to using auto64fto32f library |
| ** Normalized Cross Correlation (NCC) has been fixed (yet again) in ScoreAssociateNccFeature where the abs() was incorretly being taken. | | * TypeInterpolate is now InterpolationType for consistency |
| ** Fixed bug in NccFeature.setTo() | | * Examples |
| * FactoryAssociation
| | ** InterpolatePixel added |
| ** Added NCC to defaultScore()
| | ** Image blur added |
| * Template Matching
| | ** Non-Maximum Suppression added |
| ** Added NCC template matching algorithm
| | * Demonstrations |
| ** TemplateScoreType: ERROR_SQUARED renamed to SUM_DIFF_SQ
| | ** Improved DemonstrationInterpolateScaleApp (renamed also) |
| * ModelSet
| | ** Added DetectBlackEllipseApp |
| ** Original index of inlier set can be requested now
| | * Gradle |
| ** Removed the ability to generate multiple hypotheses. Was not needed after all.
| | ** Will fail on dependency version conflict now |
| ** RANSAC score has been deleted and RANSAC simplified
| | ** Will fail when building release with SNAPSHOT dependencies |
| * RectifyImageOps
| | ** Resolved xstream version conflict |
| ** Cleaned up function names and improved documentation
| | * Updated DeepBoof |
| * LensDistortionOps
| | ** This is to get around an issue with a java wget library where it would hang instead of giving up |
| ** Added transformRadialToPixel_F64()
| | ** New code is also much more informative and prints out size info and download status\ |
| * Reorganized functions in geometric vision package
| | * Visualization |
| ** Created MultiViewOps and PerspetiveOps
| | ** Removed a bad +PI/2 from ellipse rendering. |
| ** Refactored/deleted other related Util classes
| | * SnapToEllipseEdge * Fixed bug where it was only performing one iteration no matter what |
| ** Enums are now used to select which algorithm is returned in the Factory in many cases
| | * Circle Asymmetric Grid Target |
| ** New interfaces for each problem and improved JavaDoc
| | ** Fixed issue which was causing clusters not to form by not limiting number of neighbors within X distance |
| * Moved AssociatedPair and PointPositionPair to boofcv.struct.geo package
| | ** When clustering ellipses orientation and major/minor axis size is now taken in account. |
| * Trifocal Tensor | | ** Significant net improvement in regression tests, only drop in performance in blurred images |
| ** Added related functions to MultiViewOps | |
| ** Added linear estimator for 7+ points | |
| * PnP Problem | |
| ** Added two P3P solutions | |
| ** Analytic Jacobian for non-linear refinement
| |
| ** Refactored class names for better consistency
| |
| * Fixed bugs in StereoSparse3D
| |
| * Fixed bug in DistortImageOps.boundBox_F32() | |
| * Added ImageGridPanel to display a set of images as a grid
| |
| * ModelMatcher added getMinimumSize()
| |
| * Renamed PointPosePair to Point2D3D since the old name was misleading
| |
| * Visual Odometry
| |
| ** Added stereo camera based algorithm that uses PnP for pose estimation
| |
| ** Removed broken mono and stereo algorithms | |
| * DetectAssociateTracker
| |
| ** Changed from an abstract class into a regular class
| |
| ** Deleted SURF,BRIEF,NCC specific implementations since they are no longer needed
| |
| * AssociatedPair
| |
| ** renamed key and curr points to p1 and p2
| |
| ** new names are more generic and consistent
| |
| * DetectAssociateTracker
| |
| ** Changed internal design a bit and fixed bugs
| |
| ** Performs well in structure from motion applications (2D and 3D) | |
| * ImagePointTracker accessors changed so that a storage list is requested | |
| ** Makes usage easier since now its impossible to drop a track while reading from the main list.
| |
| ** Updated implementations so that the internal list is not returned | |
| ** Removed addTrack() since only KLT supported that functionality, hence not generic.
| |
| * ConvertBufferedImage
| |
| ** Fixed bug where INDEXED images where not being converted correctly
| |
| | |
| ---------------------------------------------
| |
| Date : 2012/09/18
| |
| Version : Alpha 0.10
| |
| | |
| * Association Score
| |
| ** Pushed implementations of ScoreAssociation into abst package
| |
| ** Put most association distance algorithms into DescriptorDistance
| |
| ** Added hamming lookup table
| |
| ** Brief now uses a look up table. About a 7x speed improvement.
| |
| ** FactoryAssociate now can create instances of ScoreAssociate.
| |
| ** Fixed incorrect NCC equation. Thanks Christian Kramer.
| |
| * DescribeRegionPoint has been redesigned
| |
| ** Now more generic and can work with any feature descriptor
| |
| ** Separate function for checking to see if feature is inside bounds
| |
| * TupleDesc | |
| ** changed to an interface | |
| ** functions added to provide some generic support | |
| * Brief descriptor renamed to TupleDesc_B
| |
| ** Acts as a generic binary feature descriptor
| |
| * Descriptors
| |
| ** BRIEF and BRIEF-SO now can process features along the image border. Bit set to false in that case. | |
| * Visualization Apps
| |
| ** VisualizeAssociationScoreApp has score type in a separate panel and can support binary descriptors
| |
| * InterestPointDetector
| |
| ** WrapFHtoInterestPoint now returns the correct detection radius
| |
| ** Fixed non-compliant implementations with incorrectly handled unsupported features. Thanks jasonnn for submitting this bug
| |
| * FAST Feature Detector
| |
| ** Original implementation was buggy and did not produce same results as original author's code
| |
| ** Rewrote from scratch and replicates original author results
| |
| * GeneralFeatureDetector moved from extract to interest package
| |
| * Fundamental/Essential Matrix
| |
| ** 7-point algorithm now returns all solutions and the algorithm was tweaked
| |
| ** Nister 5-pt Essential Matrix
| |
| ** Abstractions which can handle multiple solutions | |
| ** Stability evaluator for epipolar matrices
| |
| ** Improved unit tests | |
| * Polynomials
| |
| ** Various ways to find and polish polynomial roots (EVD and Sturm)
| |
| ** New data type and basic operations | |
| * Added ExampleStereoTwoViewsOneCamera | |
| ** Demonstrates how to perform stereo image processing using a single camera and two views | |
| * LensDistortionOps | |
| ** Added normalized to distorted pixel transform | |
| ** Tweaked some of the function names | |
| * SparseIntegralSample_I32.isInBounds() did not return that correct value along the right and bottom image border
| |
| * Functions inside of GThresholdImageOps did not return the number of blobs found like it should
| |
| ** Thanks jasonnn | |
| * NonMaxBlockStrict | |
| ** Fixed bug where it assumed intensity values were all positive | |
| * TemplateMatching
| |
| ** Added code for template matching
| |
| ** Added example code to demonstrate its use
| |
| * Added support for alpha channel in ConvertBufferedImage
| |
| * FactoryPointSequentialTracker doesn't create trackers with FAST detector instead uses ShiTomasi to improve stability
| |
| | |
| ---------------------------------------------
| |
| Date : 2012/7/22
| |
| Version : Alpha 0.9
| |
| | |
| * Renamed factories
| |
| ** FactoryBlobDetector -> FactoryDetectPoint
| |
| ** FactoryCornerDetector -> FactoryDetectPoint
| |
| * Renamed KLT corner to Shi Tomasi corner, which is more standard
| |
| * Fixed bug various point detectors where if the input image was resized the edge intensity might not be zero when it should be
| |
| * Changed some corner detection algorithms to take the intensity image in as an input.
| |
| * Added new Pixel to Normalized transform
| |
| * Created interface for Stereo visual odometry
| |
| * Fixed bug in unsafe_set inside of ImageInt8
| |
| * Added unsafe_set() and unsafe_get() to ImageFloat32, ImageFloat64, ImageSInt64
| |
| * Fixed bug in ImageSInt64.set() where the value was cast into a short
| |
| * Changed transform* functions inside of DistortImageOps so that you can specify how outside image pixels are handled.
| |
| * Fixed bug in ImageHistogramPanel - reported by Ray
| |
| ** Added support for integer images
| |
| * Integration
| |
| ** Created ant build scripts
| |
| ** Updated Xuggler integration code
| |
| ** Added Android
| |
| * Generalized SimpleImageSequence so that it does not reference BufferedImage and will play nicer with Android
| |
| * Fixed bug in ImplImageDistort* where for 16bit and 32 bit images values were being type casted into bytes
| |
| * Changed UnconstrainedMinimization so that the minimum function value is specified in setFunction()
| |
| * Added ExampleContours
| |
| ** Thanks cspnanda for pointing out the lack of documentation
| |
| * New non-maximum suppression algorithm
| |
| ** About the same for 3x3 regions, much faster for larger regions
| |
| ** Tweaked related API and improved unit tests
| |
| * Fixed bug in WrapDescrivePixelRegion where the descriptor is not properly configured for integer images
| |
| | |
| ---------------------------------------------
| |
| Date : 2012/05/13
| |
| Version : Alpha 0.8
| |
| | |
| '''IMPORTANT''' Discard old calibration files and calibrate again with latest code!
| |
| | |
| * Added processing monitor to CalibrateStereoPlanarGuiApp
| |
| * Fixed bug in Zhang99 calibration where Rodrigues coordinates were being parameterized incorrectly
| |
| ** Calibration results would be less accurate, but have a lower residual due to the increased degree of freedom
| |
| * Added analytic Jacobian to Zhang99
| |
| ** Decided not to use it since it produces same estimation parameters as numerical. | |
| * Added functions for creating detectors in FactoryPlanarCalibrationTarget
| |
| ** changed code to reference those functions
| |
| * Stereo Disparity Image
| |
| ** Dense and Sparse algorithms
| |
| ** Rectangular region winner take all (WTA)
| |
| *** Validation: right to left, max error, texture
| |
| *** Precision: Pixel and Subpixel
| |
| ** Algorithms:
| |
| *** Basic rectangular region
| |
| *** Five region adaptive: Hirschmuller, et. al. "Real-Time Correlation-Based Stereo Vision with Reduced Border Errors," 2002
| |
| * IntrinsicParameters
| |
| ** Added flipY to parameter list since it is vital information for many calculations.
| |
| * RectifyImageOps
| |
| ** Fixed bug in functions that adjusted the rectification for viewing. If left handed the coordinate systems got messed up
| |
| * Changed allInside() so that the annoying single pixel black region is gone
| |
| ** RectifyImageOps and LensDistortOps
| |
| * FactoryCornerDetector
| |
| ** Added flag for weighted KLT and Harris
| |
| * Added weighted corners to list of features in some evaluation apps | |
| * Examples:
| |
| ** ExampleCalibrateMonocularPoints
| |
| ** ExampleDetectCalibrationPoints
| |
| ** ExampleStereoDisparity
| |
| * ImageTestingOps
| |
| ** Flip image vertical
| |
| * Fast point cloud viewer
| |
| | |
| ---------------------------------------------
| |
| 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
| |
| ** http://code.google.com/p/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
| |