ORB-SLAM3 mapping parts breakdown

admin2024-07-10  6

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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!