多天气场景语义分割

一个研究项目,探究自动驾驶语义分割在多种天气条件下的鲁棒性。利用 CARLA 模拟器采集了涵盖 9 种天气-时段组合的 3,600 张图像数据集,在 DeepLabV3 主干网络和 19 个 CityScapes 标准类别上系统评估三种训练策略——从晴天基线到天气感知的课程学习。

在 GitHub 上查看


亮点

  • 设计天气感知课程学习(3 阶段递进训练):晴天 → 晴天+小雨 → 全部 9 种天气条件(10:20:70 大雨偏置采样),将平均 mIoU 从晴天基线的 0.614 提升至 0.776+
  • 构建自定义 CARLA 数据采集流水线:自车 + 自动驾驶交通,512×512 相机,高度 1.6m,9 种天气-时段组合(晴天/小雨/大雨 × 正午/日落/夜晚),共 3,600 帧标注图像
  • 晴天基线在分布偏移下严重退化——mIoU 从 0.779(晴天正午) 跌至 0.291(大雨夜晚);课程学习在所有天气条件下保持 ~0.7+
  • 在所有 9 种天气条件下评估逐天气 mIoU:课程学习在大雨夜晚等罕见安全关键场景下表现尤为突出
  • 第 3 阶段加权采样(10:20:70 比例)明确应对简单与安全关键大雨样本之间的类别不平衡

训练策略

三种策略在预训练于 COCO 20 类子集的 DeepLabV3(ResNet-50 主干)上对比:

策略 描述 平均 mIoU
Setting 0 — 仅晴天 仅在晴天数据上训练 0.614
Setting 1 — 混合天气 每批次随机混合全部 9 种天气条件 0.776
Setting 2 — 课程学习 带加权采样的 3 阶段递进训练 ≥ 0.70(所有条件)

课程学习方法避免了直接多天气训练的不稳定性,同时防止了 Setting 0 的晴天偏差。


数据集

CARLA 数据集中 9 种天气-时段组合:晴天/小雨/大雨 × 正午/日落/夜晚——每种条件 400 张图像,共 3,600 张

模型架构

DeepLabV3:空洞卷积 + ASPP(空洞空间金字塔池化)捕获多尺度上下文——对于在天气退化下解析多样化场景元素至关重要

定性结果

每行展示 RGB 输入 / 模型预测 / Ground Truth。在不利天气条件下对比仅晴天训练(Setting 0)与课程学习(Setting 2):

小雨 — 正午

Setting 0(仅晴天)在小雨正午场景——雨水引起的分布偏移导致预测退化
Setting 2(课程学习)在小雨正午场景——边界清晰度和类别一致性显著提升

大雨 — 正午

Setting 0(仅晴天)在大雨正午场景——可行驶区域和车辆边界严重失效
Setting 2(课程学习)在大雨正午场景——尽管大雨遮挡严重,分割结果仍明显更连贯

定量结果

全部 9 种天气条件的逐天气 mIoU——课程学习和混合天气训练相对晴天基线均有持续提升
三种策略的验证 mIoU 训练曲线——课程学习比直接混合天气训练收敛更稳定

技术概览

   
语言 Python 3.10
模型 DeepLabV3(ResNet-50 主干,COCO 预训练)
任务 9 种天气条件下的 19 类语义分割
数据集 3,600 张 CARLA 仿真图像,512×512,带 Ground Truth 掩码
最佳平均 mIoU 0.776(混合)vs. 0.614(仅晴天基线)
框架 PyTorch 2.7.1, CUDA 12.8
GPU NVIDIA RTX 5080(16 GB VRAM)
模拟器 CARLA 0.9.15