Package boofcv.alg.structure
Class MetricFromUncalibratedPairwiseGraph
java.lang.Object
boofcv.alg.structure.ReconstructionFromPairwiseGraph
boofcv.alg.structure.MetricFromUncalibratedPairwiseGraph
- All Implemented Interfaces:
VerbosePrint
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.
- Input:
PairwiseImageGraph
andimage information
- Selected an initial set of views and perform
metric reconstruction
. - Grow metric scene one at a time using previously found metric views.
MetricExpandByOneView
- Stop when all views have been considered
SceneWorkingGraph
and accessible from ???. 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
Modifier and TypeClassDescriptionstatic class
Records which scenes have grown to include which views.static class
Contains information about which scenes contain this specific viewNested classes/interfaces inherited from class boofcv.alg.structure.ReconstructionFromPairwiseGraph
ReconstructionFromPairwiseGraph.Expansion, ReconstructionFromPairwiseGraph.SeedInfo
-
Field Summary
Modifier and TypeFieldDescriptionint
When expanding a scene, SBA is applied to the entire scene until it has this many views.Fields inherited from class boofcv.alg.structure.ReconstructionFromPairwiseGraph
maximumSeedFailures, scoresMotions, utils, verbose
-
Constructor Summary
ConstructorDescription -
Method Summary
Modifier and TypeMethodDescriptiondouble
computeGeometricScore
(SceneWorkingGraph scene, SceneWorkingGraph.InlierInfo inlier) Estimates the quality of the geometry information contained in the inlier set.Returns the largest scene.boolean
process
(LookUpSimilarImages dbSimilar, LookUpCameraInfo dbCams, PairwiseImageGraph pairwise) Performs a projective reconstruction of the scene from the views contained in the graphprotected void
Makes sure the number of scenes that have each view is correctly counted.void
setVerbose
(@Nullable PrintStream out, @Nullable Set<String> configuration) protected boolean
spawnSceneFromSeed
(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
-
Field Details
-
refineSceneWhileExpandingMaxViews
public 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.
-
-
Constructor Details
-
MetricFromUncalibratedPairwiseGraph
-
MetricFromUncalibratedPairwiseGraph
-
MetricFromUncalibratedPairwiseGraph
public MetricFromUncalibratedPairwiseGraph()
-
-
Method Details
-
process
public boolean process(LookUpSimilarImages dbSimilar, LookUpCameraInfo dbCams, PairwiseImageGraph pairwise) Performs a projective reconstruction of the scene from the views contained in the graph- Parameters:
dbSimilar
- (input) Contains information on each imagepairwise
- (input) Relationship between the images- Returns:
- true if successful or false if it failed and results can't be used
-
spawnSceneFromSeed
protected boolean spawnSceneFromSeed(LookUpSimilarImages dbSimilar, LookUpCameraInfo dbCams, PairwiseImageGraph pairwise, ReconstructionFromPairwiseGraph.SeedInfo info) It will attempt to find a metric scene around the specified scene.- Specified by:
spawnSceneFromSeed
in classReconstructionFromPairwiseGraph
info
- Seed for a new scene- Returns:
- true if successful or false if it failed
-
sanityCheckScenesInEachView
protected void sanityCheckScenesInEachView()Makes sure the number of scenes that have each view is correctly counted. Used for debugging. -
computeGeometricScore
Estimates the quality of the geometry information contained in the inlier set. Higher values are better. -
getLargestScene
Returns the largest scene. Throws an exception if there is no valid scene -
setVerbose
public void setVerbose(@Nullable @Nullable PrintStream out, @Nullable @Nullable Set<String> configuration) - Specified by:
setVerbose
in interfaceVerbosePrint
- Overrides:
setVerbose
in classReconstructionFromPairwiseGraph
-