Package boofcv.alg.sfm.structure
Class ThreeViewEstimateMetricScene
- java.lang.Object
-
- boofcv.alg.sfm.structure.ThreeViewEstimateMetricScene
-
public class ThreeViewEstimateMetricScene extends java.lang.ObjectEstimates the metric scene's structure given a set of sparse features associations from three views. This is intended to give the best possible solution from the sparse set of matching features. Its internal methods are updated as better strategies are found. Assumptions:- Principle point is zero
- Zero skew
- fx = fy approximately
process(java.util.List<boofcv.struct.geo.AssociatedTriple>, int, int)by subtracting the image center from each pixel observations. Steps:- Fit Trifocal tensor using RANSAC
- Get and refine camera matrices
- Compute dual absolute quadratic
- Estimate intrinsic parameters from DAC
- Estimate metric scene structure
- Sparse bundle adjustment
- Tweak parameters and sparse bundle adjustment again
-
-
Field Summary
Fields Modifier and Type Field Description boofcv.abst.geo.bundle.BundleAdjustment<boofcv.abst.geo.bundle.SceneStructureMetric>bundleAdjustmentboofcv.factory.geo.ConfigTrifocalErrorconfigErrororg.ddogleg.optimization.lm.ConfigLevenbergMarquardtconfigLMboofcv.factory.geo.ConfigRansacconfigRansacboofcv.factory.geo.ConfigBundleAdjustmentconfigSBAboofcv.factory.geo.ConfigTrifocalconfigTriFitboofcv.factory.geo.ConfigTrifocalconfigTriRansacboofcv.misc.ConfigConvergeconvergeSBAjava.util.List<boofcv.struct.geo.AssociatedTriple>inliersprotected java.util.List<boofcv.struct.calib.CameraPinhole>listPinholedoublemanualFocalLengthboofcv.abst.geo.bundle.SceneObservationsobservationsprotected org.ejml.data.DMatrixRMajP1protected org.ejml.data.DMatrixRMajP2protected org.ejml.data.DMatrixRMajP3doublepruneFractionorg.ddogleg.fitting.modelset.ransac.Ransac<boofcv.struct.geo.TrifocalTensor,boofcv.struct.geo.AssociatedTriple>ransacboofcv.abst.geo.bundle.SceneStructureMetricstructureboofcv.abst.geo.Estimate1ofTrifocalTensortrifocalEstimatorprotected java.util.List<georegression.struct.se.Se3_F64>worldToView
-
Constructor Summary
Constructors Constructor Description ThreeViewEstimateMetricScene()Sets configurations to their default value
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boofcv.abst.geo.bundle.SceneStructureMetricgetStructure()booleanprocess(java.util.List<boofcv.struct.geo.AssociatedTriple> associated, int width, int height)Determines the metric scene.voidsetVerbose(java.io.PrintStream verbose, int level)
-
-
-
Field Detail
-
configRansac
public boofcv.factory.geo.ConfigRansac configRansac
-
configTriRansac
public boofcv.factory.geo.ConfigTrifocal configTriRansac
-
configTriFit
public boofcv.factory.geo.ConfigTrifocal configTriFit
-
configError
public boofcv.factory.geo.ConfigTrifocalError configError
-
configLM
public org.ddogleg.optimization.lm.ConfigLevenbergMarquardt configLM
-
configSBA
public boofcv.factory.geo.ConfigBundleAdjustment configSBA
-
convergeSBA
public boofcv.misc.ConfigConverge convergeSBA
-
ransac
public org.ddogleg.fitting.modelset.ransac.Ransac<boofcv.struct.geo.TrifocalTensor,boofcv.struct.geo.AssociatedTriple> ransac
-
inliers
public java.util.List<boofcv.struct.geo.AssociatedTriple> inliers
-
trifocalEstimator
public boofcv.abst.geo.Estimate1ofTrifocalTensor trifocalEstimator
-
P1
protected org.ejml.data.DMatrixRMaj P1
-
P2
protected org.ejml.data.DMatrixRMaj P2
-
P3
protected org.ejml.data.DMatrixRMaj P3
-
listPinhole
protected java.util.List<boofcv.struct.calib.CameraPinhole> listPinhole
-
bundleAdjustment
public boofcv.abst.geo.bundle.BundleAdjustment<boofcv.abst.geo.bundle.SceneStructureMetric> bundleAdjustment
-
structure
public boofcv.abst.geo.bundle.SceneStructureMetric structure
-
observations
public boofcv.abst.geo.bundle.SceneObservations observations
-
manualFocalLength
public double manualFocalLength
-
pruneFraction
public double pruneFraction
-
worldToView
protected java.util.List<georegression.struct.se.Se3_F64> worldToView
-
-
Method Detail
-
process
public boolean process(java.util.List<boofcv.struct.geo.AssociatedTriple> associated, int width, int height)Determines the metric scene. The principle point is assumed to be zero in the passed in pixel coordinates. Typically this is done by subtracting the image center from each pixel coordinate for each view.- Parameters:
associated- List of associated features from 3 views. pixelswidth- width of all imagesheight- height of all images- Returns:
- true if successful or false if it failed
-
setVerbose
public void setVerbose(java.io.PrintStream verbose, int level)
-
getStructure
public boofcv.abst.geo.bundle.SceneStructureMetric getStructure()
-
-