1. 课程导入

在机器人、自动驾驶、增强现实与三维重建等应用中,系统不仅要回答“我在哪里、周围长什么样”,还要回答“我看到的是什么、它属于哪一类、我该如何与它交互”。这正是RGB-D语义SLAM与场景理解要解决的核心问题:把视觉里程计/同步定位与建图(SLAM)提供的几何位姿与地图,与深度学习和语义分割提供的类别信息融合起来,形成既有空间结构又有语义标签的环境模型。

本课程的学习目标可以概括为三条主线:
1. 几何主线:掌握RGB-D相机模型、帧间配准、位姿估计、回环检测与全局优化,理解SLAM的“定位+建图”闭环。
2. 语义主线:掌握2D/3D语义分割、实例分割、语义标签融合与地图语义化方法,理解“像素→体素/点→对象”的映射。
3. 系统主线:能够把几何与语义在统一框架中联合优化,并在真实场景中完成建图、查询、导航与交互任务。

核心概念:几何、语义与不确定性

RGB-D数据由彩色图像I_rgb与深度图像I_depth组成。深度图给出每个像素到相机的距离,经相机内参K反投影后可得到三维点云。SLAM前端通过特征匹配或直接法估计相邻帧之间的相对位姿T_{t,t-1},后端通过位姿图或因子图优化全局一致性。语义SLAM在此基础上,为每个地图元素附加类别概率分布,例如“这是椅子,置信度0.92”。

关键难点在于:几何估计会漂移,语义预测会误分类,二者都带有不确定性。因此,现代语义SLAM通常采用概率融合:把语义观测作为地图元素的观测值,用贝叶斯更新或联合优化同时修正位姿与标签。一个典型的地图表示是语义体素地图或语义点云地图,每个体素/点保存TSDF值、颜色、类别概率与观测次数。

RGB-D语义SLAM与场景理解整体框架 RGB-D传感器 彩色图 + 深度图 时间戳 / 内参 前端:视觉里程计 特征匹配 / 直接法 帧间位姿估计 后端:优化与回环 位姿图 / 因子图 全局一致性校正 语义分割网络 2D语义 / 实例分割 类别概率输出 语义-几何融合 标签投影 / 概率更新 联合优化位姿与标签 语义地图表示 语义点云 / 体素 / 对象 TSDF + 类别概率 场景理解任务 语义查询 / 目标导航 / 抓取 人机交互 / 三维重建 典型应用场景 室内机器人 / AR眼镜 自动驾驶 / 数字孪生 评价与挑战 ATE / RPE / mIoU / 实时性 动态场景 / 光照变化 / 尺度 几何提供“在哪里”,语义提供“是什么”,融合后形成可理解、可交互的三维场景模型

方法流程:从一帧图像到语义地图

一个完整的RGB-D语义SLAM系统通常按以下流程运行:

  1. 数据采集与预处理:对齐彩色与深度图,去除无效深度,进行去畸变与时间同步。
  2. 前端位姿估计:提取ORB/SIFT特征或使用直接法,计算相邻帧相对位姿,构建局部地图。
  3. 语义预测:将彩色图输入语义分割网络(如DeepLab、Mask R-CNN或实时分割网络),得到逐像素类别或实例掩码。
  4. 语义-几何关联:利用位姿把2D语义标签投影到3D地图中,对同一地图元素进行多帧概率融合。
  5. 后端联合优化:在因子图中同时加入几何约束与语义约束,优化相机位姿和地图标签。
  6. 回环与全局一致:检测回环后校正累积漂移,并重新融合语义标签,输出全局语义地图。
  7. 场景理解与应用:在语义地图上执行查询、导航、抓取或交互任务。

下面给出一个简化的配置示例,说明语义SLAM中常见的参数组织方式:

sensor:
  type: rgbd
  color_topic: /camera/color/image_raw
  depth_topic: /camera/depth/image_raw
  intrinsics: [fx, fy, cx, cy]

slam:
  frontend: orb
  backend: g2o
  loop_closure: true
  keyframe_interval: 10

semantic:
  model: deeplabv3
  num_classes: 21
  fusion: bayesian
  min_observations: 3

map:
  type: semantic_voxel
  voxel_size: 0.05
  tsdf_trunc: 0.15

案例与场景:语义地图能做什么

假设一台室内服务机器人使用RGB-D相机在办公室中建图。传统SLAM只能输出一张点云或栅格地图,机器人知道“前方0.8米有障碍物”,但不知道那是“椅子”还是“墙”。引入语义SLAM后,地图中每个体素带有类别标签,机器人可以执行“去沙发旁边”“把桌上的杯子拿过来”这类指令。

在自动驾驶中,RGB-D语义SLAM可用于近距离泊车场景:深度提供精确尺度,语义分割识别车位、行人、路沿,二者结合可提升低速环境下的定位与避障能力。在AR/VR中,语义地图让虚拟物体能够“理解”真实场景,例如把虚拟球放在真实桌面上而不是悬空。

应用场景几何需求语义需求典型输出
室内服务机器人厘米级定位与避障家具、门、人语义栅格/体素地图
自动驾驶泊车低速高精度位姿车位、路沿、行人局部语义BEV地图
AR/VR交互实时6DoF跟踪平面、物体类别语义锚点与平面
三维数字孪生全局一致点云建筑构件、设备语义BIM/点云模型

常见误区与学习建议

误区一:把语义SLAM当成“SLAM+分割”的简单拼接。 如果只在建图后对点云做一次离线分割,位姿漂移会导致标签错位;真正的语义SLAM需要在优化中联合考虑几何与语义。

误区二:忽视不确定性。 深度图在透明、反光、远距离处噪声大,语义网络在遮挡和小物体上易出错。若不建模不确定性,错误标签会污染全局地图。

误区三:只追求精度,忽视实时性。 机器人系统通常要求10–30Hz运行,语义网络与后端优化必须做工程折中。
学习本课程时,建议按“几何→语义→融合→系统”的顺序推进:先确保能独立完成RGB-D里程计与点云拼接,再掌握语义分割与标签投影,最后进入联合优化与真实场景部署。每章都动手跑通一个最小示例,比只看公式更有效。