Blender Git Commit Log

Git Commits -> Revision e38c1a5

Revision e38c1a5 by Keir Mierle (master)
September 20, 2012, 18:55 (GMT)
Make Euclidean resection "always" succeed.

The Euclidean resection code had a magical constant, 1e-3, used to
compare the results of solving an equation. This failure detection
was well-intended, trying to prevent poor solutions from getting
made without notifying the caller. Unfortunately in practice, this
threshold is too conservative. Furthermore, it is not clear the
threshold should exist at all; the purpose of the Euclidean
resection is to come up with the best solution it can; other
methods (e.g. reprojection error) should be used to compare
whether the method succeeded.

This commit changes the Euclidean EPnP code to always succeed,
causing the previous fallback to projective resection to never
run. In most cases, this will result in better reconstructions.

This should, in most cases, fix the dreaded "flipping" problem.

Commit Details:

Full Hash: e38c1a5ae721630c217ca7830fd7aabf6f4620e0
SVN Revision: 50781
Parent Commit: a4f73c5
Lines Changed: +27, -11

5 Modified Paths:

/extern/libmv/libmv/multiview/euclidean_resection.cc (+13, -4) (Diff)
/extern/libmv/libmv/multiview/euclidean_resection.h (+3, -0) (Diff)
/extern/libmv/libmv/numeric/levenberg_marquardt.h (+5, -5) (Diff)
/extern/libmv/libmv/simple_pipeline/pipeline.cc (+2, -2) (Diff)
/extern/libmv/libmv/simple_pipeline/resect.cc (+4, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021