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