Package boofcv.factory.geo
Class FactoryMultiViewRobust
java.lang.Object
boofcv.factory.geo.FactoryMultiViewRobust
public class FactoryMultiViewRobust extends Object
Factory for creating robust false-positive tolerant estimation algorithms in multi-view geometry. These
algorithms tend to have a lot of boilerplate associated with them and the goal of this factory
is to make their use much easier and less error prone.
-
Constructor Summary
Constructors Constructor Description FactoryMultiViewRobust()
-
Method Summary
Modifier and Type Method Description static ModelMatcherMultiview<Se3_F64,AssociatedPair>
baselineLMedS(@Nullable ConfigEssential configEssential, ConfigLMedS configLMedS)
static ModelMatcherMultiview<Se3_F64,AssociatedPair>
baselineRansac(@Nullable ConfigEssential configEssential, ConfigRansac configRansac)
Robust solution for estimating the stereo baselineSe3_F64
using epipolar geometry from two views withRansacCalibrated
.static <Model, Point>
LeastMedianOfSquares<Model,Point>createLMEDS(ConfigLMedS configLMedS, ModelManager<Model> manager, Class<Point> pointType)
static <Model, Point>
Ransac<Model,Point>createRansac(ConfigRansac configRansac, double ransacTol, ModelManager<Model> manager, Class<Point> pointType)
Returns a new instance of RANSAC.static ModelMatcherMultiview<DMatrixRMaj,AssociatedPair>
essentialRansac(@Nullable ConfigEssential configEssential, ConfigRansac configRansac)
static ModelMatcher<DMatrixRMaj,AssociatedPair>
fundamentalLMedS(@Nullable ConfigFundamental configFundamental, ConfigLMedS configLMedS)
static ModelMatcher<DMatrixRMaj,AssociatedPair>
fundamentalRansac(ConfigFundamental configFundamental, ConfigRansac configRansac)
static RansacCalibrated<Homography2D_F64,AssociatedPair>
homographyCalibratedRansac(ConfigRansac configRansac)
Estimates a homography from normalized image coordinates but computes the error in pixel coordinatesstatic LeastMedianOfSquares<Homography2D_F64,AssociatedPair>
homographyLMedS(@Nullable ConfigHomography configHomography, ConfigLMedS configLMedS)
Robust solution for estimatingHomography2D_F64
withLMedS
.static Ransac<Homography2D_F64,AssociatedPair>
homographyRansac(@Nullable ConfigHomography configHomography, ConfigRansac configRansac)
Robust solution for estimatingHomography2D_F64
withRansac
.static RansacProjective<MetricCameraTriple,AssociatedTriple>
metricThreeViewRansac(@Nullable ConfigPixelsToMetric configSelfcalib, ConfigRansac configRansac)
Projective to metric self calibration from 3-viewsstatic ModelMatcherMultiview<Se3_F64,Point2D3D>
pnpLMedS(@Nullable ConfigPnP configPnP, ConfigLMedS configLMedS)
Robust solution to PnP problem usingLMedS
.static ModelMatcherMultiview<Se3_F64,Point2D3D>
pnpRansac(@Nullable ConfigPnP configPnP, ConfigRansac configRansac)
Robust solution to PnP problem usingRansac
.static Ransac<TrifocalTensor,AssociatedTriple>
trifocalRansac(@Nullable ConfigTrifocal configTrifocal, @Nullable ConfigTrifocalError configError, ConfigRansac configRansac)
Robust RANSAC based estimator for
-
Constructor Details
-
FactoryMultiViewRobust
public FactoryMultiViewRobust()
-
-
Method Details
-
pnpLMedS
public static ModelMatcherMultiview<Se3_F64,Point2D3D> pnpLMedS(@Nullable @Nullable ConfigPnP configPnP, ConfigLMedS configLMedS)Robust solution to PnP problem usingLMedS
. Input observations are in normalized image coordinates.- Input observations are in normalized image coordinates NOT pixels
- Error units are pixels squared.
See code for all the details.
- Parameters:
configPnP
- PnP parameters. Can't be null.configLMedS
- Parameters for LMedS. Can't be null.- Returns:
- Robust Se3_F64 estimator
-
pnpRansac
public static ModelMatcherMultiview<Se3_F64,Point2D3D> pnpRansac(@Nullable @Nullable ConfigPnP configPnP, ConfigRansac configRansac)Robust solution to PnP problem usingRansac
. Input observations are in normalized image coordinates. Found transform is from world to camera.NOTE: Observations are in normalized image coordinates NOT pixels.
See code for all the details.
- Parameters:
configPnP
- PnP parameters. Can't be null.configRansac
- Parameters for RANSAC. Can't be null.- Returns:
- Robust Se3_F64 estimator
- See Also:
Estimate1ofPnP
-
baselineLMedS
public static ModelMatcherMultiview<Se3_F64,AssociatedPair> baselineLMedS(@Nullable @Nullable ConfigEssential configEssential, ConfigLMedS configLMedS)Robust solution for estimatingSe3_F64
using epipolar geometry from two views withLMedS
. Input observations are in normalized image coordinates.- Error units is pixels squared times two
See code for all the details.
- Parameters:
configEssential
- Essential matrix estimation parameters. Can't be null.configLMedS
- Parameters for RANSAC. Can't be null.- Returns:
- Robust Se3_F64 estimator
-
fundamentalLMedS
public static ModelMatcher<DMatrixRMaj,AssociatedPair> fundamentalLMedS(@Nullable @Nullable ConfigFundamental configFundamental, ConfigLMedS configLMedS) -
baselineRansac
public static ModelMatcherMultiview<Se3_F64,AssociatedPair> baselineRansac(@Nullable @Nullable ConfigEssential configEssential, ConfigRansac configRansac)Robust solution for estimating the stereo baselineSe3_F64
using epipolar geometry from two views withRansacCalibrated
. Input observations are in normalized image coordinates.See code for all the details.
- Parameters:
configEssential
- Essential matrix estimation parameters.configRansac
- Parameters for RANSAC. Can't be null.- Returns:
- Robust Se3_F64 estimator
-
essentialRansac
public static ModelMatcherMultiview<DMatrixRMaj,AssociatedPair> essentialRansac(@Nullable @Nullable ConfigEssential configEssential, ConfigRansac configRansac) -
fundamentalRansac
public static ModelMatcher<DMatrixRMaj,AssociatedPair> fundamentalRansac(ConfigFundamental configFundamental, ConfigRansac configRansac) -
homographyLMedS
public static LeastMedianOfSquares<Homography2D_F64,AssociatedPair> homographyLMedS(@Nullable @Nullable ConfigHomography configHomography, ConfigLMedS configLMedS)Robust solution for estimatingHomography2D_F64
withLMedS
. Input observations are in pixel coordinates.- Four point linear is used internally
- inlierThreshold is in pixels
See code for all the details.
- Parameters:
configHomography
- Homography estimation parameters. If null default is used.configLMedS
- Parameters for LMedS. Can't be null.- Returns:
- Homography estimator
-
homographyRansac
public static Ransac<Homography2D_F64,AssociatedPair> homographyRansac(@Nullable @Nullable ConfigHomography configHomography, ConfigRansac configRansac)Robust solution for estimatingHomography2D_F64
withRansac
. Input observations are in pixel coordinates.- Four point linear is used internally
- inlierThreshold is in pixels
See code for all the details.
- Parameters:
configHomography
- Homography estimation parameters. If null default is used.configRansac
- Parameters for RANSAC. Can't be null.- Returns:
- Homography estimator
-
homographyCalibratedRansac
public static RansacCalibrated<Homography2D_F64,AssociatedPair> homographyCalibratedRansac(ConfigRansac configRansac)Estimates a homography from normalized image coordinates but computes the error in pixel coordinates- Parameters:
configRansac
- RANSAC configuration- Returns:
- Ransac
- See Also:
GenerateHomographyLinear
,DistanceHomographyCalibratedSq
-
trifocalRansac
public static Ransac<TrifocalTensor,AssociatedTriple> trifocalRansac(@Nullable @Nullable ConfigTrifocal configTrifocal, @Nullable @Nullable ConfigTrifocalError configError, ConfigRansac configRansac)Robust RANSAC based estimator for- Parameters:
configTrifocal
- Configuration for trifocal tensor calculationconfigError
- Configuration for how trifocal error is computedconfigRansac
- Configuration for RANSAC- Returns:
- RANSAC
- See Also:
FactoryMultiView.trifocal_1(boofcv.factory.geo.ConfigTrifocal)
-
metricThreeViewRansac
public static RansacProjective<MetricCameraTriple,AssociatedTriple> metricThreeViewRansac(@Nullable @Nullable ConfigPixelsToMetric configSelfcalib, ConfigRansac configRansac)Projective to metric self calibration from 3-views- Parameters:
configSelfcalib
- (Input) configuration for self calibrationconfigRansac
- (Input) configuration for RANSAC- Returns:
- RANSAC
-
createLMEDS
public static <Model, Point> LeastMedianOfSquares<Model,Point> createLMEDS(ConfigLMedS configLMedS, ModelManager<Model> manager, Class<Point> pointType) -
createRansac
public static <Model, Point> Ransac<Model,Point> createRansac(ConfigRansac configRansac, double ransacTol, ModelManager<Model> manager, Class<Point> pointType)Returns a new instance of RANSAC. If concurrency is turned on then a concurrent version will be returned.- Parameters:
ransacTol
- inlier tolerance. The tolerance on config isn't used since that might have the wrong units. This lets the user easily adjust the units without modifying the config.
-