blender/extern/libmv/ChangeLog
Sergey Sharybin caa2306d16 Libmv: Update to latest upstream version
Main purpose of this is to bring new gflags library which is more likely
to have a fix for undefined order of static variables initialization and
also to bring new glog where some compilation error are fixed (which are
only visible with more strict checks with clang and c++11 enabled).
2014-12-31 16:02:04 +05:00

708 lines
22 KiB
Plaintext

commit 7d6020d2ec42c6cb2749bc891186b4880d26d40b
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Wed Dec 31 15:32:07 2014 +0500
Update GLog to latest upstream revision 143
Mainly to solve compilation error with demangle.cc.
commit 5dc746700eaf85cb674f0fb73ff3c1b49a7f6315
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Fri Dec 12 14:59:55 2014 +0500
Update GFlags to latest release 2.1.1
Main purpose of this (andsome of upcoming) update is to check if the
upstream sources are useable without any modifications for us. And if
not, then we'll need to consider moving some changes into upstream.
This commit contains an one-to-one copy of the upstream GFlags library
and also changes namespace usage since it's changed in the upstream.
commit 6fe6d75f7e90e161b44643b953f058a3829a5247
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Sat Nov 1 02:53:36 2014 +0500
Libmv: Code cleanup, mixed class/struct in declaration/definition
commit d2a5f7953812d2d09765431b59c6c4ac72faf35b
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Thu Oct 30 23:13:53 2014 +0500
Libmv: Support disabled color channels in tracking settings
This was never ported to a new tracking pipeline and now it's done using
FrameAccessor::Transform routines. Quite striaghtforward, but i've changed
order of grayscale conversion in blender side with call of transform callback.
This way it's much easier to perform rescaling in libmv side.
commit d976e034cdf74b34860e0632d7b29713f47c5756
Author: Keir Mierle <mierle@gmail.com>
Date: Sat Aug 23 00:38:01 2014 -0700
Minor keyframe selection cleanups
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D757
commit bc99ca55dadfca89fde0f93764397c2fe028943d
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Sat Aug 23 01:55:32 2014 +0600
implement backward prediction
The title actually says it all, just extend current implementation
of PredictMarkerPosition() to cases when tracking happens in the reverse
order (from the end frame to start).
it's still doesn't solve all the ambiguity happening in the function
in cases when one tracks the feature and then re-tracks it in order
to refine the sliding. This is considered a separate TODO for now and
will likely be solved by passing tracking direction to the prediction
function.
Reviewers: keir
Reviewed By: keir
Differential Revision: https://developer.blender.org/D663
commit 5b87682d98df65ade02638bc6482d824cf0dd0b3
Author: Keir Mierle <mierle@gmail.com>
Date: Thu Aug 21 22:45:22 2014 -0700
Make libmv compile on Ubuntu 14.04
Reviewers: fsiddi
Reviewed By: fsiddi
Subscribers: sergey
Differential Revision: https://developer.blender.org/D755
commit 0a81db623c458e0384b4f7060d1bcff8993fb469
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Wed Jul 23 00:42:00 2014 +0600
Fix wrong residual blocks counter
This happened in cases when having zero-weighted tracks
and could lead to some assert failures on marking parameter
block constant.
commit 2824dbac54cacf74828678be7a5c9fd960ce83e2
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Fri Jul 18 12:52:03 2014 +0600
Fix search area sliding issue
The only way to do this is to store search region in floats
and round when we need to sample it. Otherwise you'll always
have sliding effect caused by rounding the issues, especially
when doing incremental offset (thing which happens in the
prediction code).
Pretty much straightforward change apart from stuff to be kept
in mind: offset calculation int should happen relative to the
rounded search region. This is because tracker works in the space
of the search window image which get's rounded on the frame access,
This makes API a bit creepy because frame accessor uses the same
Region struct as the search window in Marker and ideally we would
need to have either IntRegion or Region<int> in order to make
Libmv fully track on what's getting rounded and when.
Reviewers: keir
Reviewed By: keir
Differential Revision: https://developer.blender.org/D616
commit 04862c479332308be47a0f27361402444ace8880
Author: Keir Mierle <mierle@gmail.com>
Date: Fri May 9 23:00:03 2014 +0200
Start the automatic 2D tracking code
This starts the 2D automatic tracking code. It is totally unfinished.
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D523
commit be679f67d807a2139c1f7d7e2ca45141940b30d5
Author: Keir Mierle <mierle@gmail.com>
Date: Fri May 9 14:36:04 2014 +0200
Also shift the search window
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D520
commit 66b8f5eef2633ebcde32a388fc14c60171011821
Author: Keir Mierle <mierle@gmail.com>
Date: Fri May 9 13:06:28 2014 +0200
Change the search region to absolute frame coordinates
Smarter Eigen usage
Better error logging
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D519
commit a08193319ae409fad8f08887eae1f79f02e91eaa
Author: Keir Mierle <mierle@gmail.com>
Date: Fri May 9 12:02:47 2014 +0200
First cut at predictive tracing
This adds a Kalman filter-based approach to predict where a marker
will go in the next frame to track. Hopefully this will make the
tracker work faster by avoiding lengthy searches. This code
compiles, but is otherwise untested, and likely does not work.
Fix else branch
Add some tests
Update patch coordinates as well (and test)
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D518
commit 607ffb2f62b56e34a841abbb952d83e19cd1e23c
Author: Keir Mierle <mierle@gmail.com>
Date: Thu May 8 16:05:28 2014 +0200
Add constructor to AutoTrack
commit c39e20a0c27da3733804c3848454b5d4c4f0e66b
Author: Keir Mierle <mierle@gmail.com>
Date: Thu May 8 16:04:20 2014 +0200
Fix GetMarker compilation issue
commit 8dd93e431b6e44439c803bfd26ec2669b656177e
Author: Keir Mierle <mierle@gmail.com>
Date: Thu May 8 15:50:26 2014 +0200
Expose GetMarker() in AutoTrack
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D516
commit 4405dff60ea08d454b64da1a7c0595d9328cf8a3
Author: Keir Mierle <mierle@gmail.com>
Date: Thu May 8 15:38:14 2014 +0200
Add public SetMarkers to AutoTrack
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D515
commit c90837f6db276a3b1f610eaad509155f6a43b24f
Author: Keir Mierle <mierle@gmail.com>
Date: Thu May 8 15:17:48 2014 +0200
Make autotrack skeleton compile
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D514
commit be01baa2e82e36f63e548f073157e68d2ff870c0
Author: Keir Mierle <mierle@gmail.com>
Date: Wed May 7 18:48:55 2014 +0200
Add preliminary TrackMarkerToFrame in autotrack
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D509
commit 0cab028d591b3d08672ca86eb6c6e4ac1aacf1d0
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Wed May 7 17:59:11 2014 +0200
Remove assert from ArrayND Resize
That assert broke initialization of arrays which doesn't
own the data since constructor uses Resize to set shape
and strides.
Strides are still to be fixed, but that's for later.
commit 64f9c118029a9351e9023e96527c120e1d724d5b
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Wed May 7 17:42:21 2014 +0200
Fix ArrayND freeing the data it doesn't own
Can't really guarantee it works fully correct now,
but at least this check is needed anyway and compilation
works just fine.
Reviewers: keir
Reviewed By: keir
Differential Revision: https://developer.blender.org/D508
commit 0618f1c8e88dfc738cdde55784da80b889905e7c
Author: Keir Mierle <mierle@gmail.com>
Date: Wed May 7 12:03:32 2014 +0200
Minor changes
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D505
commit 5c34335e1bb90c4ed701ee830c718ed4e20dbffa
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Wed May 7 11:12:23 2014 +0200
Fix compilation error in frame accessor
- int64 is not a standard type, we've got int64_t defined in
std int. We also have an msvc port of this header, so should
not be an issue.
- Fixed inconsistency in usage of CacheKey and Key, used Key.
- Some functions weren't marked as virtual.
Additional change: added self to authors.
Reviewers: keir
Reviewed By: keir
Differential Revision: https://developer.blender.org/D504
commit 06bc207614e262cd688e2c3ed820ade7c77bdb66
Author: Keir Mierle <mierle@gmail.com>
Date: Tue May 6 22:30:59 2014 +0200
Start new Tracks implementation
This adds the new Tracks implementation, as well as a
trivial test to show it compiles.
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D502
commit 25ce061e6da69881460ba7718bb0d660a2380a02
Author: Keir Mierle <mierle@gmail.com>
Date: Tue May 6 19:10:51 2014 +0200
Add Reconstruction class for new API
This starts the new Reconstruction class (with support for e.g. planes). This
also starts the new namespace "mv" which will eventually have all the symbols
we wish to export.
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D501
commit 0a6af3e29016048978aea607673340500e050339
Author: Keir Mierle <mierle@gmail.com>
Date: Tue May 6 17:52:53 2014 +0200
Add a new Tracks implementation
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D500
commit 887b68d29c2b198f4939f9ab5153881aa2c1806e
Author: Keir Mierle <mierle@gmail.com>
Date: Tue May 6 17:01:39 2014 +0200
Initial commit of unfinished AutoTrack API
This starts the creating the new AutoTrack API. The new API will
make it possible for libmv to do full autotracking, including
predictive tracking and also support multiple motion models (3D
planes etc).
The first goal (not in this patch) is to convert Blender to use
the new API without adding any new functionality.
Note: This does not add any of the API to the build system!
It likely does not compile.
Reviewers: sergey
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D499
commit 08cc227d431d257d27f300fbb8e6991e663302da
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Tue May 6 13:09:22 2014 +0200
Fix homography test failure
It was caused by assuming that reconstructed homography matrix
should look exactly the same as the matrix used to generate a
test case.
It's not actually valid assumption because different-looking
matrices could correspond to the same exact transform.
In this change we make it so actual "re-projected" vectors
are being checked, not the values in matrix. This makes it
more predictable verification.
Reviewers: keir
Reviewed By: keir
Differential Revision: https://developer.blender.org/D488
commit 0b7d83dc9627447dc7df64d7e3a468aefe9ddc13
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Wed Apr 23 19:14:55 2014 +0600
Fix compilation on OSX after previous commit
EXPECT_EQ wasn't defined in the scope.
commit d14049e00dabf8fdf49056779f0a3718fbb39e8f
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Wed Apr 23 15:08:16 2014 +0600
Move aligned malloc implementation into own file
It was rather stupid having it in brute region tracker,
now it is in own file in base library (which was also
added in this commit, before this it consist of header
files only).
Reviewers: keir
Reviewed By: keir
Differential Revision: https://developer.blender.org/D479
commit 0ddf3851bfcb8de43660b119a25a77a25674200d
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Mon Apr 21 14:14:03 2014 +0600
Optimization of PearsonProductMomentCorrelation
Pass the arrays by reference rather than by value,
should give some percent of speedup.
Also don't pass the dimensions to the function but
get them from the images themselves.
Hopefully this will give some %% of tracker speedup.
commit f68fdbe5896a6c5bd8b500caeec61b876c5e44c6
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Mon Apr 21 14:10:43 2014 +0600
Fix wrong assert in ResizeImage()
The assert didn't make any sense because ComputeBoundingBox()
is intended to return bounding box in the following way:
(xmin, xmax, ymin, ymax).
commit 1d386b6775a71c499e9b8e4a288c0785c4937677
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Thu Apr 17 18:42:43 2014 +0600
Add unit tests for buffer (un)distortion
Currently only uses identity camera intrinsics just to
see whether lookup grids are properly allocated.
Should prevent accidents like that one happened recently
with crashing Blender after Libmv re-integration.
commit e1fe41b6604771ba769a9b15eb2f489fbf7af251
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Thu Apr 17 17:52:23 2014 +0600
Fix offset array not being properly allocated
We really do need unit test for buffer (un)distortion,
didn't notice this bug for until new Libmv has been
integrated into Blender.
commit ee21415a353396df67ef21e82adaffab2a8d2a0a
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Thu Apr 17 16:26:12 2014 +0600
Support multiple distortion models, including a new division model
This commit makes it so CameraIntrinsics is no longer hardcoded
to use the traditional polynomial radial distortion model. Currently
the distortion code has generic logic which is shared between
different distortion models, but had no other models until now.
This moves everything specific to the polynomial radial distortion
to a subclass PolynomialDistortionCameraIntrinsics(), and adds a
new division distortion model suitable for cameras such as the
GoPro which have much stronger distortion due to their fisheye lens.
This also cleans up the internal API of CameraIntrinsics to make
it easier to understand and reduces old C-style code.
Reviewers: keir
Reviewed By: keir
CC: jta
Differential Revision: https://developer.blender.org/D335
commit 313252083f6dfa69a93c287bed81dec616503c1b
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Tue Apr 15 18:23:38 2014 +0600
Fix failure of the image transform linear test
Mainly was caused by the flakyness of image rotation in cases
when image has even size. The test was expecting the transform
code to rotate the image around pixel corner, which isn't a
common behavior in image processing applications. Rotation
is usually done around the pixel center.
So now made it so RotateImage() rotates the image around the
pixel center which gives 100% proper result for odd sized images
(i.e. center pixel stays untouched).
Also made the tests to use odd image sizes which are more
predictable by the humans. We can use even sized images in the
tests as well but their result wouldn't be so much spectacular.
Another issue with the tests was caused by RescaleImageTranslation
test which did expect things which are not happening in the
function.
Reviewers: keir
Reviewed By: keir
Differential Revision: https://developer.blender.org/D463
commit 80d6945bf5f996b97cd41df0e422afce5e10e7f9
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Mon Apr 14 00:01:32 2014 +0600
Unit tests for feature detector
Currently covers only simplest cases with synthetic images.
Also at this point mainly Harris detector is being testes,
other detectors behaves a bit unexpected on synthetic images
and this is to be investigated further.
Tests will be extended further later.
Additional change:
- Added constructor to Feature structure
- Added operator << for feature for easier debug dumps.
TODO: Some tests are not giving the result which i was expected
to. This is to be investigated further by finding the reference
detector implementation. For until then keeping that tests
commented out.
Reviewers: keir
Reviewed By: keir
Differential Revision: https://developer.blender.org/D316
commit 397c3d3ed46eb4967eb285c8369cc125bea4b132
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Fri Apr 4 16:17:57 2014 +0600
Compilation error fix
Not totally sure why this is needed, but multiview indeed
uses V3D library still, so it needs to be linked against it.
Patc by Martijn Berger, thanks!
commit 1c36279239cbffe152493106eb04e55df7ebd649
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Fri Apr 4 14:03:43 2014 +0600
Upgrade Eigen to 3.2.1 version
To main reasons for this:
- Probably this would solve strict compiler warnings
- It brings new stuff like sparse LU decomposition which
might be useful in the future.
commit de698f442934f475478463445f78a00ea632e823
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Thu Apr 3 15:08:26 2014 +0600
Fix compilation error when using make from the sources root
- Don't force flann to be static. It's a general rule on linux
to have dynamic libraries for all the bits instead of having
statically-linked dynamic libraries.
- Some weirdo stuff was happening around OpenExif, it was only
built on Apple, so don't link targets against this lib on
other platforms.
- Some libraries were missing for qt-tracker.
commit 901b146f28825d3e05f4157ca2a34ae00261b91a
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Wed Mar 26 17:44:09 2014 +0600
Fix bad memory write in BA code when having zero-weighted tracks
Issue was really stupid and caused by the wrong vector initialization.
commit d14a372dfe09c7339f267c4904a541fbe2efec43
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Fri Mar 21 16:02:41 2014 +0600
Attempt to fix compilation error with msvc2013
commit 933531580b4dc4b65601d785cedc16506d615d7b
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Thu Mar 20 23:07:34 2014 +0600
Compilation fixes for MinGW
Many thanks to Antony Riakiotakis for the patch!
commit f1aefcbf58fe04ea2967434f39f703bb486777c8
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Thu Feb 27 16:21:19 2014 +0600
Implement separate BA step for tracks which have constant zero weight
This is needed to minimize their reprojection error over the footage.
Without this extra step positions of such tracks were calculated by
algebraic intersection code only, which doesn't give best precision.
commit bcf7f9470b2ea33cf89a31a72037ec03be631637
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Thu Feb 27 14:16:42 2014 +0600
Avoid zero-sized problem when doing euclidean intersection
Zero-sized problem might occur when intersecting track with
constant zero weight. For such tracks we'll just use result
of algebraic intersection.
TODO: We probably need to have a separate BA step to adjust
positions of tracks with constant zero weight.
commit f884bb20a93189b8210639f3de939c64177d66b3
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Wed Feb 26 18:00:40 2014 +0600
Ignore zero weighted markers in keyframe selection
It doesn't make sense to use zero-weighted tracks as a correspondences
in keyframe selection.
Such tracks are not guaranteed to be tracked accurately because their
purpose is to add reference points in 3D space without affecting the
solution.
commit 74db5175cdbcabe673b82eef59c88fb7f342c43f
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Wed Feb 26 13:23:02 2014 +0600
Tweaks to make bundling into Blender warning-less
Mainly issue i caused by conflicts in include directories,
so glog used to include config.h from gflags. It might be
fixed by splitting gflags/glog from Libmv in Blender build
system but that's not something fun to work on. Fixed by
making include directories bit more explicit.
Also solved no-previous-prototype warnings.
commit bc4bc66af0115069562b79e837ccf4fd95c8f97e
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Fri Feb 21 14:55:13 2014 +0600
Raise epsilon used for model solver test
It was too much small leading to false failure triggering
caused simply by precision issues.
commit bf750590a6af4af3622c01fd1004c44da60484a7
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Tue Feb 18 23:35:52 2014 +0600
Made it possible to link against Ceres installed on the system
Main purpose of this is to get away from bundled Ceres library
which is not so trivial to re-bundle and takes some to do this
(not talking about CMake options conflicts and pollution).
Enabled by setting WITH_SYSTEM_CERES=ON. Default paths to search
Ceres library:
- /usr/local
- /sw
- /opt/local
- /opt/csw
- /opt/lib/ceres
You might also specify Ceres root directory using CERES_ROOT_DIR
variable (both CMake and environment variables are supported).
If your Ceres is build statically, you're to control all additional
libraries needed to link against using CMAKE_EXE_LINKER_FLAGS.
commit c9156fbf80c86853806844b754b1e48f45c5ec11
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Tue Feb 18 19:38:22 2014 +0600
Remove .orig file which was added by accident