4. 语义分割与实例分割基础

在RGB-D语义SLAM中,系统不仅要回答“相机在哪里”,还要回答“看到的是什么”。语义分割与实例分割正是把像素级视觉信息转化为可被地图、数据关联和场景理解模块使用的结构化标签。本节从语义信息表示出发,梳理常用网络结构、评价指标,并落到室内场景分割任务的关键问题上。

4.1 语义信息表示:从像素到标签场

语义分割的目标是为图像中每个像素分配一个类别标签,例如墙、地板、桌子、椅子、显示器、人。实例分割在此基础上进一步区分同类中的不同个体,例如三把椅子分别标记为 chair-1、chair-2、chair-3。对于SLAM系统,这两种输出对应不同的使用方式:语义标签用于构建语义地图、约束回环和动态物体剔除;实例标签用于跟踪可移动物体、判断数据关联是否属于同一对象。

从数学表示看,语义分割输出可视为一个标签场 L: Ω → {1,2,...,K},其中 Ω 是图像像素域,K 是类别数。实例分割则输出一组掩码 M_i 及其类别 c_i,每个掩码对应一个对象实例。RGB-D数据额外提供深度图,使像素标签可以反投影到三维空间,形成带语义的点云或体素地图。

核心区别:语义分割回答“这是什么类别”,实例分割回答“这是哪一个具体对象”。在室内SLAM中,前者用于地图语义标注,后者用于动态物体跟踪与场景图构建。

4.2 常用网络结构:编码器-解码器与多尺度融合

语义分割网络通常采用编码器-解码器结构。编码器通过卷积和池化逐步降低空间分辨率、提取高层语义特征;解码器通过上采样和跳跃连接恢复空间细节,最终输出与原图同分辨率的预测图。FCN是早期代表,将全连接层替换为卷积层,实现端到端像素预测。U-Net引入对称的跳跃连接,把编码器浅层细节与解码器深层语义拼接,在室内小物体分割中表现稳定。DeepLab系列使用空洞卷积扩大感受野,并配合ASPP多尺度池化,适合处理尺度变化明显的室内场景。

实例分割网络可分为两阶段和单阶段两类。Mask R-CNN在Faster R-CNN基础上增加掩码分支,先检测候选框再对每个框预测像素掩码,精度高但速度较慢。YOLACT、SOLOv2等单阶段方法直接生成实例掩码,速度更快,适合实时SLAM。对于RGB-D输入,部分网络会额外引入深度分支,将深度图作为第四通道或独立编码,以增强几何边界和遮挡关系判断。

RGB-D 语义/实例分割网络结构示意 RGB 图像 H×W×3 纹理/颜色 深度图 H×W×1 几何/尺度 编码器 Encoder 卷积 + 池化 空洞卷积 / ASPP 多尺度特征提取 分辨率逐步降低 语义信息增强 解码器 Decoder 上采样 / 反卷积 跳跃连接融合 恢复空间细节 输出像素级预测 H×W×K 标签场 语义分割输出 每像素类别标签 墙/地板/桌/椅/人 实例分割输出 对象掩码 + 类别 chair-1 / chair-2 RGB-D 融合策略 深度作为第四通道 | 双流编码器 | 深度引导边界细化 | 三维反投影生成语义点云 评价指标 mIoU / mAP / Pixel Acc Boundary F1 / 推理时延 室内场景典型类别 墙 | 地板 | 天花板 | 桌子 | 椅子 | 沙发 | 床 | 显示器 | 键盘 | 门 | 窗 | 人 | 杂物

4.3 评价指标:mIoU、mAP与边界质量

语义分割最常用的指标是mIoU(平均交并比)。对每个类别,计算预测区域与真实区域的交集除以并集,再对所有类别取平均。mIoU对类别不平衡敏感,室内场景中“墙”和“地板”像素占比高,而“键盘”“杯子”占比低,因此常同时报告Pixel Accuracy和类别平均准确率。实例分割常用mAP,在IoU阈值下判断检测框或掩码是否命中,并计算平均精度。对于SLAM应用,还需关注边界F1和推理时延,因为边界质量影响几何地图的语义边缘,时延影响实时性。

指标 适用任务 关注点 SLAM中的意义
mIoU 语义分割 类别平均交并比 语义地图标注质量
Pixel Accuracy 语义分割 像素级正确率 整体标签可靠性
mAP 实例分割 掩码/框平均精度 动态物体检测与跟踪
Boundary F1 语义/实例 边界贴合度 几何边缘与语义一致性
FPS / Latency 两者 推理速度 实时SLAM可行性

4.4 室内场景分割任务与实操要点

室内场景具有类别长尾、遮挡严重、光照变化和尺度差异大的特点。常见数据集包括NYUv2、SUN RGB-D、ScanNet和ADE20K。NYUv2提供1449张RGB-D图像和40类标注,适合室内语义分割入门;ScanNet提供大规模三维重建与语义标注,适合SLAM与场景理解联合研究。

在实际训练中,常用做法是先用ImageNet预训练编码器,再在室内数据集上微调。损失函数可采用交叉熵与Dice损失组合,缓解类别不平衡。数据增强包括随机裁剪、颜色抖动、深度噪声注入和水平翻转。对于RGB-D输入,深度图需归一化并处理缺失值,常用做法是将无效深度置零并增加有效性掩码通道。

# 示例:语义分割训练配置片段
model:
  backbone: ResNet-50
  decoder: U-Net
  input_channels: 4        # RGB + Depth
  num_classes: 40
  pretrained: true

train:
  loss: ce + dice
  batch_size: 8
  lr: 0.001
  epochs: 100
  augmentation:
    - random_crop
    - color_jitter
    - depth_noise
    - horizontal_flip

eval:
  metrics: [mIoU, pixel_acc, boundary_f1]

实操建议:在SLAM系统中,语义分割模型不必追求最高mIoU,而应优先保证推理速度和边界稳定性。可将分割结果与深度图结合,通过三维一致性检查剔除明显错误的标签,例如悬浮在空中的“地板”或穿透墙面的“桌子”。

4.5 常见误区与复盘

  • 误区一:只关注mIoU,忽略边界质量。室内SLAM中,语义边界与几何边缘不一致会导致地图出现“语义拖尾”,影响后续导航和避障。
  • 误区二:把语义分割直接当作实例分割使用。同类多个物体在语义图中会合并为同一标签,无法支持物体级跟踪和数据关联。
  • 误区三:忽略深度缺失与噪声。RGB-D相机在玻璃、黑色物体和远距离处深度缺失,若直接输入网络会引入错误几何先验。
  • 误区四:训练集与部署场景差异过大。在NYUv2上训练的模型直接用于办公室机器人,可能因光照、视角和物体布局不同而性能下降,需进行领域适配或在线微调。

复盘要点:语义分割与实例分割是RGB-D语义SLAM的感知前端。选择网络时,应在精度、速度和边界质量之间权衡;使用指标时,应结合SLAM任务需求,而不是只看单一mIoU。只有把像素标签、深度几何和三维地图一致地关联起来,语义信息才能真正服务于场景理解与机器人决策。