Package boofcv.alg.structure
Class RefineMetricWorkingGraph
java.lang.Object
boofcv.alg.structure.RefineMetricWorkingGraph
- All Implemented Interfaces:
VerbosePrint
Uses SBA to refine the intrinsic parameters and camera locations inside of a
SceneWorkingGraph
. This is
more complex than it sounds since SceneWorkingGraph
does not store 3D features it just stores which
observations that are part of inlier sets could create a 3D feature. The same observations will belong to different
inlier sets and it is possible that they don't point to the same physical feature due to track drift.-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Helper function that allows for arbitrary customization before it optimizes.static interface
Filter for inlier sets. -
Field Summary
Modifier and TypeFieldDescriptionUsed to provide custom logic when triangulating points.protected final List<Point2Transform2_F64>
protected final List<Point2Transform2_F64>
double
If the reprojection error is greater than this then the observation will not be assigned to the feature.Bundle Adjustment functions and configurationsprotected final DogArray<Point2D_F64>
protected final DogArray<Point2D_F64>
boolean
If verbose, then it will print view specific information.protected final Se3_F64
-
Constructor Summary
ConstructorDescription -
Method Summary
Modifier and TypeMethodDescriptionboolean
constructBundleScene
(LookUpSimilarImages dbSimilar, SceneWorkingGraph graph) Initializes the scene in bundle adjustmentboolean
process
(LookUpSimilarImages dbSimilar, SceneWorkingGraph graph) Use the `graph` to define a 3D scene which can be optimized.boolean
process
(LookUpSimilarImages dbSimilar, SceneWorkingGraph graph, RefineMetricWorkingGraph.CallBeforeRefine op) Use the `graph` to define a 3D scene which can be optimized.protected boolean
refineViews
(SceneWorkingGraph graph) Refines the scene and updates the graph.void
setVerbose
(@Nullable PrintStream out, @Nullable Set<String> configuration)
-
Field Details
-
maxReprojectionErrorPixel
public double maxReprojectionErrorPixelIf the reprojection error is greater than this then the observation will not be assigned to the feature. Units are in pixels. WARNING: Based on test results it seems like this feature makes things worse and is turned off by default. -
metricSba
Bundle Adjustment functions and configurations -
listPixelToNorm
-
listNormToPixel
-
verboseViewInfo
public boolean verboseViewInfoIf verbose, then it will print view specific information. This can get very verbose in large scenes -
inlierFilter
Used to provide custom logic when triangulating points. Useful when merging scenes -
pixels
-
pixelNormalized
-
listPoses
-
view0_to_world
-
-
Constructor Details
-
RefineMetricWorkingGraph
-
RefineMetricWorkingGraph
public RefineMetricWorkingGraph()
-
-
Method Details
-
process
Use the `graph` to define a 3D scene which can be optimized.- Parameters:
dbSimilar
- (Input) Used to lookup common features between views.graph
- (Input, Output) Describes scene and provides initial estimate for parameters. Updated with refined parameters on output.
-
process
public boolean process(LookUpSimilarImages dbSimilar, SceneWorkingGraph graph, RefineMetricWorkingGraph.CallBeforeRefine op) Use the `graph` to define a 3D scene which can be optimized.- Parameters:
dbSimilar
- (Input) Used to lookup common features between views.graph
- (Input, Output) Describes scene and provides initial estimate for parameters. Updated with refined parameters on output.
-
constructBundleScene
Initializes the scene in bundle adjustment -
refineViews
Refines the scene and updates the graph.- Parameters:
graph
- (Output) where the updated scene parameters are written to.- Returns:
- true is successful or false is SBA failed
-
setVerbose
public void setVerbose(@Nullable @Nullable PrintStream out, @Nullable @Nullable Set<String> configuration) - Specified by:
setVerbose
in interfaceVerbosePrint
-