OpenMVG 从由库、二进制文件和管道组成的图像框架中提供端到端的 3D 重建。
OpenMVG 使用 C++ 开发,可在 Android、iOS、Linux、macOS 和 Windows 上运行。
[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
SfM_Data
,Regions
和的数据结构进行阐述PairWiseMatches
。
数据SfM_data
结构是用于存储以下关系的通用容器:
Views
图像文件名和对相机固有和姿势的引用Intrinsics
相机内部参数Poses
相机外参数Landmarks
3D 结构(3D 点及其可见性信息)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)
...
};
Regions
结构是用于存储图像描述的通用容器:
PairWiseMatches
数据结构用于存储图像对之间对应特征的索引。
笔记:
SfM_data/Views
是独一无二的,而Intrinsics
,Poses
可以共享。SfM_Data
结构 IO 可以是 JSON/XML/BINARY 以简化与您的工具的互操作性或 PLY(仅输出)以实现可视化。Features_provider
Regions_Provider
Matches_Provider
ReconstructionEngine
No Intrinsic found
,您将能够在场景初始化阶段使用-f X * 1.2
with提交一个大概的焦距。X = Max(image <Width, Height>)
$ cd openMVG_Build/software/SfM/
$ python SfM_SequentialPipeline.py [full path image directory] [resulting directory]
$ python SfM_SequentialPipeline.py ~/home/user/data/ImageDataset_SceauxCastle/images ~/home/user/data/ImageDataset_SceauxCastle/Castle_Incremental_Reconstruction
$ cd openMVG_Build/software/SfM/
$ python SfM_GlobalPipeline.py [full path image directory] [resulting directory]
$ python SfM_GlobalPipeline.py ~/home/user/data/ImageDataset_SceauxCastle/images ~/home/user/data/ImageDataset_SceauxCastle/Castle_Global_Reconstruction
cloud_and_poses.ply
。
white
或colored
点 -> 请参阅colorized.ply
。sfm_data.bin
文件中。此文件可以转换为JSON/XML
供第 3 方使用或PLY
用于可视化。这些转换可以通过使用完成openMVG_main_ConvertSfM_DataFormat
(请注意,您可以选择要导出的数据,例如,如果您只需要姿势信息来显示相机轨迹,则可以保持 JSON 输出紧凑)。
任务 | 描述 |
---|---|
初始化场景
openMVG_main_SfMInit_ImageListing |
sfm_data 使用引用输入图像的视图和对相机模型的引用来初始化场景。
- 每个视图都引用一个内在 Id 和一个姿势 Id。
请注意,此二进制文件允许选择您的图像正在使用的相机型号。 |
描述图像
openMVG_main_ComputeFeatures |
Regions 为文件的所有视图计算请求的特征 ( ) sfm_data 。 |
图像匹配
openMVG_main_ComputeMatches |
计算成对匹配。 |
任务 | 描述 |
---|---|
openMVG_main_SfM --sfm_engine INCREMENTAL |
从 2 视图开始重建并依次添加剩余视图。 |
openMVG_main_SfM --sfm_engine INCREMENTALV2 |
从 2 或 n 视图开始重建,然后依次添加剩余视图。这条管道比 更快openMVG_main_IncrementalSfM 但更不准确。 |
openMVG_main_SfM --sfm_engine GLOBAL |
计算对或图像之间的相对运动,然后使用运动平均来同时解决所有相机姿势。 |
openMVG_main_ComputeStructureFromKnownPoses |
通过对匹配项进行三角测量或沿对极线查找对应点,检索已知相机位置的场景(点云)的结构。 |
任务 | 描述 |
---|---|
openMVG_main_SfM_Localization |
检索现有sfm_data 场景中的图像位置。 |
[/hidecontent]