forked from bartvdbraak/blender
8bf7172384
EXPECT_EQ wasn't defined in the scope.
680 lines
23 KiB
Plaintext
680 lines
23 KiB
Plaintext
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
|
|
|
|
commit 62597e3cf0f266a2fefec415c89759e502793e06
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Thu Jan 2 16:02:08 2014 +0600
|
|
|
|
Upgrade glog to latest svn r139
|
|
|
|
The intention of this upgrade is to get rid of custom patches
|
|
we've been having to support compilation on different platforms
|
|
and compilers.
|
|
|
|
commit 2452d5d42b390c7ab853e6fe60e58bdd7a01a004
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Feb 18 18:46:08 2014 +0600
|
|
|
|
Tweak Ceres CMake to detect uninstall target properly on Windows
|
|
|
|
commit 98a281d58ce2301f3dd239a97a448e53f48d0258
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Fri Feb 14 00:36:44 2014 +0600
|
|
|
|
Fix order of third party libs compilation and options used by them
|
|
|
|
WITH_FAST_DETECTOR was defined too late and third_party folder
|
|
didn't see this option.
|
|
|
|
commit 4962bccd643ec0f2aed3035170d5f20e8f6efc85
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Thu Feb 13 23:55:03 2014 +0600
|
|
|
|
Disable Ceres unit tests and examples by default
|
|
|
|
Actually we're to switch to external Ceres rather than
|
|
bundled one, would make life much easier actually.
|
|
|
|
commit b1381540305d69c702eb2f051bd543fb5c1c3e2c
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Thu Feb 6 18:01:58 2014 +0600
|
|
|
|
Made FAST detector optional
|
|
|
|
This way it's possible to bundle Libmv sources subset
|
|
to applications which doesn't need FAST detector.
|
|
|
|
Mainly this is done for Blender integration.
|
|
|
|
commit da4607f010bca0b3532cd4444afbb10bc774fc32
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Jan 28 18:32:39 2014 +0600
|
|
|
|
Implemented scoped_array and use it in detector
|
|
|
|
scoped_array is pretty much the same as scoped_ptr
|
|
with the only difference that it'll free memory using
|
|
delete[] operator.
|
|
|
|
It also gives some additional API functions to access
|
|
array elements.
|
|
|
|
Currently it only used to manage images denoted as byte
|
|
arrays in detector.
|
|
|
|
Reviewers: keir
|
|
|
|
Reviewed By: keir
|
|
|
|
Differential Revision: https://developer.blender.org/D266
|
|
|
|
commit cd7eb3eff2e69ce5e08570ead83ae6d35ee48857
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Jan 28 17:23:47 2014 +0600
|
|
|
|
Improvements to weighted tracks behavior
|
|
|
|
First thing changed by this commit is making it so
|
|
Euclidean intersection takes track weight into account
|
|
when solving minimization problem. This behaves the
|
|
same exact way as it is for BA step.
|
|
|
|
Second thing is related on how average reprojection error
|
|
is being calculated. It didn't take track weight into
|
|
account which could confuse users. Now average reprojection
|
|
error will give the same result as intersection/BA uses
|
|
during minimization which gives much more predictable
|
|
behavior.
|
|
|
|
Reviewers: keir
|
|
|
|
Reviewed By: keir
|
|
|
|
CC: sebastian_k
|
|
|
|
Differential Revision: https://developer.blender.org/D265
|
|
|
|
commit 6559b36dc14369175bfa0830323146acd3426483
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Jan 28 16:39:14 2014 +0600
|
|
|
|
Fixes for keyframe selection
|
|
|
|
Using tracks with constant zero weight used to crash
|
|
keyframe selection since it was trying to use missing
|
|
parameter blocks for Jacobian evaluation,
|
|
|
|
Also fixed possible issues with wrong camera block being
|
|
marked as variable. This could technically happen when
|
|
having zero weighted tracks. Made it so all camera blocks
|
|
are marked as variable for now.
|
|
|
|
commit 557d531b061aa69d114e89cbb325c5175389afec
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Jan 28 16:10:33 2014 +0600
|
|
|
|
Style cleanup: wrong indentation of wrapped line
|
|
|
|
commit ca15262cf07a873268173965ee1fb84f9729b744
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Jan 28 15:21:36 2014 +0600
|
|
|
|
Rework detector API and implement Harris detector
|
|
|
|
Switch the detector API to a single function which accepts
|
|
a float image and detector options. This makes usage of
|
|
feature detection more unified across different algorithms.
|
|
|
|
Options structure is pretty much straightforward and contains
|
|
detector to be used and all the detector-specific settings.
|
|
|
|
Also implemented Harris feature detection algorithm which
|
|
is not as fast as FAST one but is expected to detect more
|
|
robust feature points.
|
|
|
|
Reviewers: keir
|
|
|
|
Reviewed By: keir
|
|
|
|
Differential Revision: https://developer.blender.org/D258
|
|
|
|
commit 6458915f64fceba108c5279b7320ca8c76e8a742
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Fri Jan 24 19:14:18 2014 +0600
|
|
|
|
Add arcanist configuration file
|
|
|
|
commit 0a69fadadc5aacbd339f839ac5bd12c3571278b1
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Thu Jan 9 15:50:11 2014 +0600
|
|
|
|
Fix compilation error on NetBSD
|
|
|
|
- NetBSD doesn't provide sincos(3) in libm, so don't try to use it
|
|
- Use posix_memalign on NetBSD
|
|
|
|
Original patch is by Jeorg Sonnenberger to Blender patch tracker, thanks!
|
|
|
|
commit b0df3e291e6c85f791658be04334efafc41989f5
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Thu Jan 2 15:12:18 2014 +0600
|
|
|
|
Fix build configuration warnings
|
|
|
|
Those warnings were mainly caused by installation
|
|
configuration of Ceres. Made some tweaks to make
|
|
CMake happy for now.
|
|
|
|
But for sure bigger cleanup here is needed.
|
|
|
|
commit b68de6acd20f3ffab92e0cd450198a700cd109ab
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Thu Jan 2 15:04:05 2014 +0600
|
|
|
|
Code and style cleanup
|
|
|
|
Mainly fixed some style warnings reported by cpplint.
|
|
|
|
Also changed how camera (un)distortion happens internally
|
|
by replacing number of channels as a template argument
|
|
with number as channels passing as function argument.
|
|
Makes code easier to follow by eliminating loads checks
|
|
how much channels are used and which argument to pass to
|
|
the template.
|
|
|
|
commit b9e467e7c077b58199c4110f6967b7c18d1e7bf7
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Dec 31 20:34:39 2013 +0600
|
|
|
|
Update Ceres to the latest upstream
|
|
|
|
This brings up much easier termination type usage,
|
|
which for us means we might use:
|
|
|
|
ceres::Summary::IsSolutionUsable()
|
|
|
|
instead of doing manual funky enum values check.
|
|
|
|
commit 3aeb2367e50b52ca2b9d59d4f0f0b4bbfd6a05e8
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Dec 31 20:43:24 2013 +0600
|
|
|
|
Update gtest to latest version 1.7.0
|
|
|
|
Also reshuffled CMakeLists in order to avoid
|
|
conflicts happening between gflags bundled to
|
|
Ceres and third_party.
|
|
|
|
commit 30aaa9cd0b4a4eb0948a17824e7e7622d8ebcb41
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Dec 31 20:10:06 2013 +0600
|
|
|
|
Changes for VC2013
|
|
|
|
Solves compilation error when using msvc2013
|
|
|
|
Original patch is by Alexandr Kuznetsov to blender.git
|
|
|
|
commit b204c0d25065a2b149de256929ff37d8f00f45bb
|
|
Author: Keir Mierle <mierle@gmail.com>
|
|
Date: Tue Dec 31 20:05:58 2013 +0600
|
|
|
|
Eagerly attempt to refine a track before doing a brute search
|
|
|
|
Before the refinement phase of tracking, a brute force SAD search
|
|
is run across the search area. This works well but is slow;
|
|
especially if the guess for the track's location is accurate.
|
|
|
|
This patch runs a refinement phase before running a brute force
|
|
search, hoping that the guessed position (in x2, y2) is close to
|
|
the best answer. If it is, then no brute search is done. If it is
|
|
not, then a normal brute force search followed by refinement is
|
|
done.
|
|
|
|
In some cases this may produce worse tracks than before; the
|
|
regressions will need investigation. The predictive motion model
|
|
(to be implemented) will reduce the probability of that happening.
|
|
|
|
commit 5361513f0328ff94b53125d29129561bb03132e8
|
|
Author: Keir Mierle <mierle@gmail.com>
|
|
Date: Tue Dec 31 20:04:46 2013 +0600
|
|
|
|
Fix bug where libmv tracking incorrectly succeeds on failure
|
|
|
|
Before this patch, if Ceres returned USER_SUCCESS indicating that
|
|
Ceres was only changing the tracked quad slightly between
|
|
iterations (indicating convergence), no final correlation check
|
|
was done. This leads to incorrectly returning that the tracking
|
|
was successful, when it actually failed.
|
|
|
|
commit ba9e63eed09e33a48bbcb081058f45ac16f8738e
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Dec 31 20:00:46 2013 +0600
|
|
|
|
Implementation of weighted tracks
|
|
|
|
Added a weight field to Track structure which means
|
|
how much affect this track will have on the final
|
|
reconstruction.
|
|
|
|
Currently it affects on BA step only which in most
|
|
cases will work just fine. However, it worth looking
|
|
into weight support for intersection/resection.
|
|
|
|
commit 4600df8b685ca8c4daa22d6c3b0125fd42c3bc67
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Dec 31 19:30:14 2013 +0600
|
|
|
|
Code cleanup: move function prototype to header file
|
|
|
|
commit 0ce5b6efde774b3f042acf9e42c95674548f1c01
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Dec 31 19:26:48 2013 +0600
|
|
|
|
Get rid of Allow Fallback option for euclidean resection
|
|
|
|
It was rather confusing from the user usage point of view
|
|
and didn't get so much improvement after new bundle adjuster
|
|
was added.
|
|
|
|
In the future we might want to switch resection to PPnP algorithm,
|
|
which could also might be a nice alternative to fallback option.
|
|
|
|
commit 5d063426f4809000c27f38ed798e4224bbd09a6d
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Dec 31 19:24:05 2013 +0600
|
|
|
|
Use explicit declaration of int types sign
|
|
|
|
Mainly needs to make blender happy with this custom
|
|
header which used to run into conflict with other int
|
|
types headers.
|
|
|
|
Wouldn't harm being more explicit here anyway.
|
|
|
|
commit c5be59dee94f94de369006c544080282cfb245cc
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Tue Dec 31 14:50:00 2013 +0600
|
|
|
|
Implement refinement of estimated homography/fundamental matrices
|
|
|
|
It was only possible to perform algebraic estimation, which didn't
|
|
give so much accurate results.
|
|
|
|
Implemented a way to perform algebraic estimation followed with
|
|
refinement step using Ceres minimizer.
|
|
|
|
The code was actually mostly already there since keyframe selection
|
|
patch. Made such estimation a generic function in multiview/ and
|
|
hanged API for estimation in order to pass all additional options via
|
|
an options structure (the same way as it's done fr Ceres).
|
|
|
|
Most of the options are straight-forward to understand,but some
|
|
deserves more description here:
|
|
|
|
* expected_average_symmetric_distance is used as an early output check
|
|
and as soon as average symmetric error goes below this threshold
|
|
refining finishes.
|
|
|
|
This distance is measured in the same units as input points are.
|
|
|
|
It is arguable whether we need callback for this or not, but seems
|
|
Ceres doesn't have some kind of absolute threshold for function value
|
|
and function_tolerance behaves different from logic behind expected
|
|
symmetric error.
|
|
|
|
* There' an option to normalize correspondences before estimating the
|
|
homography in order to increase estimation stability. See
|
|
|
|
R. Hartley and A. Zisserman. Multiple View Geometry in Computer
|
|
Vision. Cambridge University Press, second edition, 2003.
|
|
|
|
https://www.cs.ubc.ca/grads/resources/thesis/May09/Dubrofsky_Elan.pdf
|
|
|
|
commit 1cdad972c4a9005e78891524cbd6d65600ca7e99
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Wed Sep 25 16:12:29 2013 +0600
|
|
|
|
Code cleanup: Minor function capitalization fix
|
|
|
|
Original patch by Joseph Mansfield to the Blender repository.
|
|
|
|
commit 434316d084e8a41fd452f03610d7244d664948dc
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Wed Sep 25 16:07:43 2013 +0600
|
|
|
|
Code cleanup: spelling correction
|
|
|
|
Original patch by Joseph Mansfield to the Blender repository.
|
|
|
|
commit 5cfe8465ac70407c0959c53bcd5206657a1322a2
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Wed Sep 25 16:02:48 2013 +0600
|
|
|
|
Fix for uninitialized covariance matrix
|
|
|
|
Lead to unpredictable tracking termination criteria.
|
|
|
|
commit fd86b77d413489649a989f075b061714ed9a72fc
|
|
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
|
Date: Wed Sep 25 16:01:19 2013 +0600
|
|
|
|
Add Procrustes PNP ("PPnP") resection algorithm to libmv
|
|
|
|
This adds a new Euclidean resection method, used to create the
|
|
initial reconstruction in the motion tracker, to libmv. The method
|
|
is based on the Procrustes PNP algorithm (aka "PPnP"). Currently
|
|
the algorithm is not connected with the motion tracker, but it
|
|
will be eventually since it supports initialization.
|
|
|
|
Having an initial guess when doing resection is important for
|
|
ambiguous cases where potentially the user could offer extra
|
|
guidance to the solver, in the form of "this point is in front of
|
|
that point".
|
|
|
|
Original patch by Keir Mierle made to Blender repository.
|