-
Notifications
You must be signed in to change notification settings - Fork 1.7k
OpenMVG data structures
Pierre Moulon edited this page Feb 9, 2020
·
6 revisions
OpenMVG is articulated around three data structures called SfM_Data, Regions and PairWiseMatches.
The SfM_data data structure is a generic container used to store relationships between:
-
Viewsimage filename and reference to camera intrinsic and pose -
Intrinsicscamera internal parameters -
Posescamera extrinsic parameters -
Landmarks3D Structure (3D points and their visibility information)
struct SfM_Data
{
Views views; /// reference to the used images (each image link to a pose and intrinsic camera id)
Poses poses; /// poses data (indexed by view.id_pose)
Intrinsics intrinsics; /// intrinsics camera data (indexed by view.id_intrinsic)
Landmarks structure; /// Structure (3D points with their 2D observations)
...
};
The Regions data structure is a generic container used to store image descriptions:
- Features (point-based)
- Descriptors (could be a vector of scalars or binary values)
The PairWiseMatches data structure is used to store index of corresponding features between pair of images.
Notes:
-
SfM_data/Viewsare unique, whileIntrinsics,Posescan be shared. - This
SfM_Datastructure IO can be JSON/XML/BINARY to ease interoperability with your tools or PLY (Output only) for visualization.
OpenMVG pipelines are articulated around two main concepts:
- Abstract Data Providers
Features_providerRegions_ProviderMatches_Provider
- Abstract Processing Engines
ReconstructionEngine
This API allows to easily implement new pipeline and use any data format that a user wants to leverage.
Here an overview of OpenMVG data structures, data providers, binaries and pipeline system:
