ORB-SLAM3 mapping parts breakdown

The mapping part of visual SLAM can indeed be divided into two components: photometric and geometric. These components leverage different types of information to build and refine the map.

Photometric Mapping

Photometric mapping involves using the intensity and color information from images to aid in the mapping process. This typically includes feature extraction, matching, and visual descriptor management.

Relevant Parts in ORB-SLAM3:
  1. Feature Extraction:

    • ORB features (Oriented FAST and Rotated BRIEF) are extracted from the images.
    • Classes and Methods: ORBextractor, Frame::ExtractORB.
  2. Feature Matching:

    • Matching features between frames to find correspondences.
    • Classes and Methods: ORBmatcher, Frame::SearchByProjection, Frame::SearchForInitialization.
  3. Descriptors Storage:

    • Storage and comparison of ORB descriptors for keyframes and map points.
    • Classes and Methods: KeyFrame::mDescriptors, Frame::mDescriptors.
  4. KeyFrame Database:

    • Storing and retrieving keyframes based on visual information for loop closure and relocalization.
    • Classes and Methods: KeyFrameDatabase, KeyFrameDatabase::add, KeyFrameDatabase::DetectLoopCandidates.

Geometric Mapping

Geometric mapping involves the spatial and structural aspects of the environment. It includes the representation and optimization of the 3D structure of the environment, such as the positions of keyframes and map points.

Relevant Parts in ORB-SLAM3:
  1. MapPoints:

    • 3D points in the environment that are observed by multiple keyframes.
    • Classes and Methods: MapPoint, Map::mspMapPoints.
  2. KeyFrames:

    • Keyframes that store the camera poses and observed map points.
    • Classes and Methods: KeyFrame, Map::mspKeyFrames.
  3. Pose Graph Optimization:

    • Optimizing the poses of keyframes and the positions of map points to minimize reprojection error.
    • Classes and Methods: Optimizer::PoseOptimization, Optimizer::GlobalBundleAdjustment.
  4. Covisibility Graph:

    • Graph representing the co-visibility relationship between keyframes.
    • Classes and Methods: KeyFrame::mConnectedKeyFrameWeights, KeyFrame::AddConnection.
  5. Spanning Tree:

    • A minimum spanning tree used for efficient loop closures.
    • Classes and Methods: KeyFrame::mspChildrens, KeyFrame::mpParent.
  6. Local Mapping:

    • Managing the addition of new keyframes and map points, and performing local bundle adjustment.
    • Classes and Methods: LocalMapping, LocalMapping::Run, LocalMapping::ProcessNewKeyFrame.

Summary

By dividing the mapping tasks into photometric and geometric components, we can better understand the specific roles and data types involved in ORB-SLAM3:

  • Photometric Mapping: Deals with image-based data such as features and descriptors to establish correspondences and build the map incrementally.
  • Geometric Mapping: Focuses on the 3D spatial relationships, optimizing the structure of the map, and maintaining the integrity of the overall map.

Here is a breakdown of the relevant parts in ORB-SLAM3:

Photometric MappingGeometric Mapping
ORB ExtractorMapPoints
Feature MatchingKeyFrames
Descriptors StoragePose Graph Optimization
KeyFrame DatabaseCovisibility Graph
Spanning Tree
Local Mapping

By understanding these components, developers can more effectively optimize and enhance the mapping processes in ORB-SLAM3, potentially integrating advanced data structures like VDB for the geometric component to improve efficiency and scalability.

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值