-
main_slam.py它增加了沿多帧的特征跟踪、点三角测量、关键帧管理、光束法平差、回环检测、密集地图构建和深度推断等功能,以估计相机轨迹并构建稀疏地图和密集地图。这是一个完整的SLAM流程,包含了开发实际视觉SLAM流程所需的所有基础和高级模块。
1 配置参数
config.yaml 文件是配置系统的唯一入口点,其全局配置参数包含在pyslam/config_parameters.py中。
===================
数据入口
主程序

配置文件加载入口

配置文件详细内容

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

1-2 输入数据


1-3 保存数据

在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' # 轨迹保存输出的基本文件名









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

配置所用语义映射模块的最佳方法是在文件中进行修改pyslam/semantics/semantic_mapping_configs.py。
目前有多种语义映射方法可供选择(详见此处)。我们目前支持使用密集语义分割进行语义映射。
DEEPLABV3:来自torchvision,预先训练于 COCO/VOC。SEGFORMER:来自transformers,预先在 Cityscapes 或 ADE20k 上训练。CLIP:来自f3rm开放词汇支持包。
将语义特征赋予图像上的关键点,并将这些关键点融合到地图点中。语义特征可以是:
- 标签:分类标签,以数字形式表示。
- 概率向量:每个类别的概率向量。
- 特征向量:从编码器获得的特征向量。这通常用于开放词汇映射。
测试可用分割模型的最简单方法是运行:test/semantics/test_semantic_segmentation.py。
1 地图点如何获取

create_new_map_points


浙公网安备 33010602011771号