Module sfm

Source
Expand description

§Structure From Motion

The opencv_sfm module contains algorithms to perform 3d reconstruction from 2d images.

The core of the module is based on a light version of Libmv originally developed by Sameer Agarwal and Keir Mierle.

Whats is libmv?

libmv, also known as the Library for Multiview Reconstruction (or LMV), is the computer vision backend for Blender’s motion tracking abilities. Unlike other vision libraries with general ambitions, libmv is focused on algorithms for match moving, specifically targeting Blender as the primary customer. Dense reconstruction, reconstruction from unorganized photo collections, image recognition, and other tasks are not a focus of libmv.

Development

libmv is officially under the Blender umbrella, and so is developed on developer.blender.org. The source repository can get checked out independently from Blender.

This module has been originally developed as a project for Google Summer of Code 2012-2015.

Note:

  • Notice that it is compiled only when Eigen, GLog and GFlags are correctly installed.

Check installation instructions in the following tutorial: [tutorial_sfm_installation]

§Conditioning

§Fundamental

§Input/Output

§Numeric

§Projection

§Robust Estimation

§Triangulation

§Reconstruction

Note:

  • Notice that it is compiled only when Ceres Solver is correctly installed.

    Check installation instructions in the following tutorial: [tutorial_sfm_installation]

§Simple Pipeline

Note: - Notice that it is compiled only when Ceres Solver is correctly installed.

   Check installation instructions in the following tutorial: [tutorial_sfm_installation]

Modules§

prelude

Structs§

BaseSFM
base class BaseSFM declares a common API that would be used in a typical scene reconstruction scenario
SFMLibmvEuclideanReconstruction
SFMLibmvEuclideanReconstruction class provides an interface with the Libmv Structure From Motion pipeline.
libmv_CameraIntrinsicsOptions
Data structure describing the camera model and its parameters.
libmv_ReconstructionOptions
Data structure describing the reconstruction options.

Constants§

SFM_DISTORTION_MODEL_DIVISION
SFM_DISTORTION_MODEL_POLYNOMIAL
SFM_IO_BUNDLER
SFM_IO_OPENMVG
SFM_IO_OPENSFM
SFM_IO_THEIASFM
SFM_IO_VISUALSFM
SFM_REFINE_FOCAL_LENGTH
SFM_REFINE_PRINCIPAL_POINT
SFM_REFINE_RADIAL_DISTORTION_K1
SFM_REFINE_RADIAL_DISTORTION_K2

Traits§

BaseSFMTrait
Mutable methods for crate::sfm::BaseSFM
BaseSFMTraitConst
Constant methods for crate::sfm::BaseSFM
SFMLibmvEuclideanReconstructionTrait
Mutable methods for crate::sfm::SFMLibmvEuclideanReconstruction
SFMLibmvEuclideanReconstructionTraitConst
Constant methods for crate::sfm::SFMLibmvEuclideanReconstruction

Functions§

apply_transformation_to_points
Apply Transformation to points.
compute_orientation
Computes Absolute or Exterior Orientation (Pose Estimation) between 2 sets of 3D point.
depth
Returns the depth of a point transformed by a rigid transform.
essential_from_fundamental
Get Essential matrix from Fundamental and Camera matrices.
essential_from_rt
Get Essential matrix from Motion (R’s and t’s ).
euclidean_to_homogeneous
Converts points from Euclidean to homogeneous space. E.g., ((x,y)->(x,y,1))
fundamental_from_correspondences7_point_robust
Estimate robustly the fundamental matrix between two dataset of 2D point (image coords space).
fundamental_from_correspondences7_point_robust_def
Estimate robustly the fundamental matrix between two dataset of 2D point (image coords space).
fundamental_from_correspondences8_point_robust
Estimate robustly the fundamental matrix between two dataset of 2D point (image coords space).
fundamental_from_correspondences8_point_robust_def
Estimate robustly the fundamental matrix between two dataset of 2D point (image coords space).
fundamental_from_essential
Get Essential matrix from Fundamental and Camera matrices.
fundamental_from_projections
Get Fundamental matrix from Projection matrices.
homogeneous_to_euclidean
Converts point coordinates from homogeneous to euclidean pixel coordinates. E.g., ((x,y,z)->(x/z, y/z))
import_reconstruction
Import a reconstruction file.
import_reconstruction_def
Import a reconstruction file.
isotropic_preconditioner_from_points
Point conditioning (isotropic).
k_rt_from_projection
Get K, R and t from projection matrix P, decompose using the RQ decomposition.
mean_and_variance_along_rows
Computes the mean and variance of a given matrix along its rows.
motion_from_essential
Get Motion (R’s and t’s ) from Essential matrix.
motion_from_essential_choose_solution
Choose one of the four possible motion solutions from an essential matrix.
normalize_fundamental
Normalizes the Fundamental matrix.
normalize_isotropic_points
This function normalizes points. (isotropic).
normalize_points
This function normalizes points (non isotropic).
normalized_eight_point_solver
Estimate the fundamental matrix between two dataset of 2D point (image coords space).
preconditioner_from_points
Point conditioning (non isotropic).
projection_from_k_rt
Get projection matrix P from K, R and t.
projections_from_fundamental
Get projection matrices from Fundamental matrix
reconstruct
Reconstruct 3d points from 2d correspondences while performing autocalibration.
reconstruct_1
Reconstruct 3d points from 2d correspondences while performing autocalibration.
reconstruct_2
Reconstruct 3d points from 2d images while performing autocalibration.
reconstruct_3
Reconstruct 3d points from 2d images while performing autocalibration.
reconstruct_1_def
Reconstruct 3d points from 2d correspondences while performing autocalibration.
reconstruct_2_def
Reconstruct 3d points from 2d images while performing autocalibration.
reconstruct_3_def
Reconstruct 3d points from 2d images while performing autocalibration.
reconstruct_def
Reconstruct 3d points from 2d correspondences while performing autocalibration.
relative_camera_motion
Computes the relative camera motion between two cameras.
skew
Returns the 3x3 skew symmetric matrix of a vector.
triangulate_points
Reconstructs bunch of points by triangulation.