- All Implemented Interfaces:
public class MetricFromUncalibratedPairwiseGraph extends ReconstructionFromPairwiseGraph
Fully computes views (intrinsics + SE3) for each view and saves which observations were inliers. This should be considered a first pass and all optimization is done at a local level.
- Selected a set of views to estimate a projective scene based on having good geometry.
- Metric elevation from initial seed views
- Grow metric scene one at a time using previously found metric views.
- Stop when all views have been considered
SceneWorkingGraphand accessible from TODO update. 3D point features are not part of the output directly. Observations used are saved and can be used to triangulate the 3D features. It's advisable to perform bundle adjustment and outlier rejection and the scene as a whole.
Important Note: It's automatically assumed that the image center is the principle point and all pixels are shifted by this amount. This means that the found intrinsic parameters will have (cx,cy) = (0,0).
Nested Class Summary
Nested Classes Modifier and Type Class Description
static classRecords which scenes have grown to include which views.
static classContains information about which scenes contain this specific view
Fields Modifier and Type Field Description
intWhen expanding a scene, SBA is applied to the entire scene until it has this many views.
Modifier and Type Method Description
SceneWorkingGraph scene, SceneWorkingGraph.InlierInfo inlier)(Estimates the quality of the geometry information contained in the inlier set.
()Returns the largest scene.
LookUpSimilarImages dbSimilar, LookUpCameraInfo dbCams, PairwiseImageGraph pairwise)(Performs a projective reconstruction of the scene from the views contained in the graph
()Makes sure the number of scenes that have each view is correctly counted.
PrintStream out, @Nullable Set<String> configuration)(@Nullable
LookUpSimilarImages dbSimilar, LookUpCameraInfo dbCams, PairwiseImageGraph pairwise, ReconstructionFromPairwiseGraph.SeedInfo info)(It will attempt to find a metric scene around the specified scene.
Methods inherited from class boofcv.alg.structure.ReconstructionFromPairwiseGraph
addOpenForView, findAllOpenViews, scoreNodesAsSeeds, scoreSeedAndSelectSet, selectAndSpawnSeeds, selectNextToProcess
refineSceneWhileExpandingMaxViewspublic int refineSceneWhileExpandingMaxViewsWhen expanding a scene, SBA is applied to the entire scene until it has this many views. This often helps improve the initial metric scene estimate significantly, but can be expensive.
MetricFromUncalibratedPairwiseGraphpublic MetricFromUncalibratedPairwiseGraph(PairwiseGraphUtils utils)
MetricFromUncalibratedPairwiseGraphpublic MetricFromUncalibratedPairwiseGraph(ConfigProjectiveReconstruction config)
processpublic boolean process(LookUpSimilarImages dbSimilar, LookUpCameraInfo dbCams, PairwiseImageGraph pairwise)Performs a projective reconstruction of the scene from the views contained in the graph
dbSimilar- (input) Contains information on each image
pairwise- (input) Relationship between the images
- true if successful or false if it failed and results can't be used
spawnSceneFromSeedprotected boolean spawnSceneFromSeed(LookUpSimilarImages dbSimilar, LookUpCameraInfo dbCams, PairwiseImageGraph pairwise, ReconstructionFromPairwiseGraph.SeedInfo info)It will attempt to find a metric scene around the specified scene.
sanityCheckScenesInEachViewprotected void sanityCheckScenesInEachView()Makes sure the number of scenes that have each view is correctly counted. Used for debugging.
computeGeometricScoreEstimates the quality of the geometry information contained in the inlier set. Higher values are better.
getLargestScenepublic SceneWorkingGraph getLargestScene()Returns the largest scene. Throws an exception if there is no valid scene
setVerbosepublic void setVerbose(@Nullable @Nullable PrintStream out, @Nullable @Nullable Set<String> configuration)