openMVG----sfm

本文深入探讨了SfM模块的内部结构与功能,包括视图、相机位姿与内参、点云数据的存储方式,以及三角重构、捆集调整等关键处理方法。介绍了SfM_Data类作为SfM数据的通用容器,详细解析了View、CameraPoses、CameraIntrinsic和Structure概念,并概述了SfM_Data的清理方法与非线性优化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sfm模块处理SfM相关数据的存储和解决SfM问题的方法(相机位姿估计,结构三角重构,捆集调整)

一个通用的SfM数据容器

SfM_Data类包含了SfM的相关数据

  • 一系列View
    • the used images
  • 一系列相机外参
    • the camera poses
  • 一系列相机内参
    • the camera internal projection parameters
  • 点云,即结构
    • the collection of landmark (3D points associated with 2d view observations)
struct SfM_Data
{
  /// Considered views
  Views views;
  /// Considered poses (indexed by view.id_pose)
  Poses poses;
  /// Considered camera intrinsics (indexed by view.id_cam)
  Intrinsics intrinsics;
  /// Structure (3D points with their 2D observations)
  Landmarks structure;
  
  // ...
}
View concept

包含和图像相关的信息:

  • image filename
  • id_view (must be unique)
  • id_pose
  • id_intrinsic
  • image size
    因为采用了id_*,所以可以共享位置和内参很方便
    该类型是抽象的。可以在此基础上自定义新的类型
Camera Poses concept

存储全局的Ri,Ti

Camera Intrinsic concept

该类型是抽象的。可以在此基础上自定义新的类型。可共享

Structure/Landmarks concept

3D点云

SfM_Data cleaning

去除外点的通用接口:

  • 给定的像素残差
  • 沿着track的最小角度
Triangulation
  • 一般方法(blind):
    • Triangulate tracks using all observations,
    • Inlier/Outlier classification is done with a cheirality test,
  • A robust method:
    • Triangulate tracks using a RANSAC scheme,
    • Check cheirality and a pixel residual error.
Non linear refinement, Bundle Adjustment

openMVG提供通用的BA框架,可以对以下参数进行改进或保持不变:

  • internal orientation parameters (intrinsics: camera projection model),
  • external orientation parameters (extrinsics: camera poses),
  • structure (3D points).
SfM_Data sfm_data;
// initialize the data
// ...

const double dResidual_before = RMSE(sfm_data);

// Bundle adjustement over all the parameters:
std::shared_ptr<Bundle_Adjustment> ba_object = std::make_shared<Bundle_Adjustment_Ceres>();
ba_object->Adjust(sfm_data);

const double dResidual_after = RMSE(sfm_data);
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值