Comments (5)
Investigation details:
For the door dataset, I test the RANSAC-E and RANSAC-F for image pair 0, 1 for the singular values.
RANSAC-F
F's singular values: [1.00069866e+00 6.98515814e-04 1.27394834e-19]
E's singular value: [6.43591651e+01 6.40767522e+01 2.04711861e-14]
RANSAC-E
E's singular value: [7.07106781e-01 7.07106781e-01 1.29707425e-14]
Degensac (F matrix only)
F's singular values: [7.85221768e-02 5.09308314e-05 2.44934214e-20]
E's singular values: [4.92839706e+00 4.92399346e+00 5.16879605e-17]
from gtsfm.
In the book "Multiple View Geometry" by Hartley and Zisserman, Result 9.17 states that a 3x3 matrix is an Essential Matrix iff the two singular values are equal and the third value is zero.
When we convert an F-matrix to an E-matrix, we do not enforce any such constraint:
i2Ei1 = camera_intrinsics_i2.K().T @ i2Fi1 @ camera_intrinsics_i1.K()
.
This observation is supported by all 66 pairs not having different non-zero singular values for RANSAC-F and Degensac.
from gtsfm.
@johnwlambert @dellaert what are your thoughts?
from gtsfm.
For the failure cases in RANSAC-E, the following happens:
i2Ri1, i2Ui1 = recoverPose(i2Ei1_input)
i2Ei1_reconstructed = gtsam.EssentialMatrix(i2Ri1, i2Ui1)
The i2Ei1_input and i2Ei1_reconstructed just differ in their signs, which is expected behaviour.
from gtsfm.
For reference, COLMAP averages out the first two singular values and sets the third one to zero.
from gtsfm.
Related Issues (20)
- Inlier stats (after checking for support) are incorrect
- Update AstroNet Benchmarks
- Fix two failing unit tests w.r.t. MVS utilities
- How do you manage models in distributed Dask HOT 2
- Indexing out of bounds for Palace of Fine Arts
- Add to HTML report statistics about match graph cycle statistics
- Cheirality Failure on Lund HOT 1
- Remove the old style argument for hilti loader
- Set a standard naming scheme for all modules
- Radial distortion ignored when loading colmap data
- Sparse output in COLMAP format can't be used with COLMAP's GUI
- Feature: multiple stage BA HOT 1
- Treat Fisheye camera correctly.
- Resolve Parentless GTSFM Products in Process Graph
- Two Bundle Adjustments in Process Graph
- Visualize two separate pathways in the process graph HOT 1
- Make and model not found in the database HOT 5
- GTSfM for Neural Radiance Fields (Nerfstudio)
- Enable unit tests which use argoverse
- Sparse point cloud
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gtsfm.