• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
MKT-porter
博客园    首页    新随笔    联系   管理    订阅  订阅
pyslam(2) 全流程开发

 

  • main_slam.py它增加了沿多帧的特征跟踪、点三角测量、关键帧管理、光束法平差、回环检测、密集地图构建和深度推断等功能,以估计相机轨迹并构建稀疏地图和密集地图。这是一个完整的SLAM流程,包含了开发实际视觉SLAM流程所需的所有基础和高级模块。

1 配置参数

config.yaml 文件是配置系统的唯一入口点,其全局配置参数包含在pyslam/config_parameters.py中。

 

===================

数据入口

主程序

image

 配置文件加载入口

image

 

 配置文件详细内容

image

 

DATASET:
  # select your dataset (decomment only one of the following lines) 
  #type: EUROC_DATASET  
  #type: KITTI_DATASET
  #type: TUM_DATASET
  #type: ICL_NUIM_DATASET
  #type: REPLICA_DATASET
  #type: TARTANAIR_DATASET
  type: VIDEO_DATASET
  #type: SCANNET_DATASET
  #type: ROS1BAG_DATASET
  #type: ROS2BAG_DATASET  
  #type: FOLDER_DATASET
  #type: LIVE_DATASET  # Not recommended for current development stage



VIDEO_DATASET:
  type: video
  sensor_type: mono   # Here, 'sensor_type' can be only 'mono' 

  base_path: ./data/videos/kitti06
  settings: settings/KITTI04-12.yaml
  name: video_color.mp4

  groundtruth_file: groundtruth.txt
  timestamps: times.txt # to be intended as the frame timestamps

  

# 这个部分用于保存和重新加载系统状态:稀疏地图 + 回环闭合状态
SYSTEM_STATE_LOAD = False                # 启用SLAM状态重新加载(地图状态 + 回环闭合状态)和重定位的标志
SYSTEM_STATE_FOLDER_PATH = 'results/slam_state'  # 系统状态保存或重新加载的默认文件夹路径(相对于此代码库的根目录)


# 轨迹保存配置
SAVE_TRAJECTORY_ENABLED = True
SAVE_TRAJECTORY_FORMAT = 'kitti'             # 支持的格式:`tum`, `kitti`, `euroc`
SAVE_TRAJECTORY_OUTPUT_FOLDER = 'results/metrics' # 相对于pyslam根文件夹的轨迹保存输出目录
SAVE_TRAJECTORY_BASENAME = 'trajectory'           # 轨迹保存输出的基本文件名


# 此部分允许更改和覆盖pyslam/config_parameters.py中包含的全局参数的默认值
# 通过这种方式,这个yaml配置可以用作启动实验的唯一入口点。
# GLOBAL_PARAMETERS: 
#   #kUseVolumetricIntegration: True
#   #kVolumetricIntegrationUseDepthEstimator: True
#   #kLogsFolder: /tmp/pyslam_logs       # 将SLAM的打印输出重定向到设置的文件夹

# 注意:上面的GLOBAL_PARAMETERS部分在Python中通常不需要直接转换,
# 因为Python文件本身就可以包含这些全局参数变量。
# 如果需要覆盖,可以直接在这里

  

1-1 相机内参

settings/KITTI04-12.yaml

image

1-2 输入数据 

image

 

image

 

1-3 保存数据

image

 在config.yaml中

# 这个部分用于保存和重新加载系统状态:稀疏地图 + 回环闭合状态
SYSTEM_STATE_LOAD = False                # 启用SLAM状态重新加载(地图状态 + 回环闭合状态)和重定位的标志
SYSTEM_STATE_FOLDER_PATH = 'results/slam_state'  # 系统状态保存或重新加载的默认文件夹路径(相对于此代码库的根目录)


# 轨迹保存配置
SAVE_TRAJECTORY_ENABLED = True
SAVE_TRAJECTORY_FORMAT = 'kitti'             # 支持的格式:`tum`, `kitti`, `euroc`
SAVE_TRAJECTORY_OUTPUT_FOLDER = 'results/metrics' # 相对于pyslam根文件夹的轨迹保存输出目录
SAVE_TRAJECTORY_BASENAME = 'trajectory'           # 轨迹保存输出的基本文件名

  

image

 

image

 

image

 

image

 

image

 

 

 

image

image

 

image

 

 

 

 

 

 

image

 

 

 

 

语义映射

语义映射

可以通过设置参数kDoSemanticMapping=True来启用语义映射管道pyslam/config_parameters.py。

image

 

配置所用语义映射模块的最佳方法是在文件中进行修改pyslam/semantics/semantic_mapping_configs.py。

目前有多种语义映射方法可供选择(详见此处)。我们目前支持使用密集语义分割进行语义映射。

  • DEEPLABV3:来自torchvision,预先训练于 COCO/VOC。
  • SEGFORMER:来自transformers,预先在 Cityscapes 或 ADE20k 上训练。
  • CLIP:来自f3rm开放词汇支持包。

将语义特征赋予图像上的关键点,并将这些关键点融合到地图点中。语义特征可以是:

  • 标签:分类标签,以数字形式表示。
  • 概率向量:每个类别的概率向量。
  • 特征向量:从编码器获得的特征向量。这通常用于开放词汇映射。

测试可用分割模型的最简单方法是运行:test/semantics/test_semantic_segmentation.py。

 

 

1 地图点如何获取

image

 

create_new_map_points
 

image

 

posted on 2025-11-07 10:36  MKT-porter  阅读(18)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3