151 lines
4.0 KiB
Markdown
151 lines
4.0 KiB
Markdown
# BEV分割类别说明 - Divider (分隔线)
|
||
|
||
## Divider 类别定义
|
||
|
||
根据nuScenes数据集和BEVFusion代码,**Divider**(分隔线)类别包含以下两种道路标线:
|
||
|
||
### 1. Road Divider(道路分隔线)
|
||
- **定义**: 分隔对向车流的道路中央分隔线
|
||
- **典型特征**:
|
||
- 通常是双黄线或单黄线
|
||
- 位于道路中央
|
||
- 分隔相反方向的车道
|
||
- 一般禁止跨越
|
||
|
||
### 2. Lane Divider(车道分隔线)
|
||
- **定义**: 分隔同向车道的车道分界线
|
||
- **典型特征**:
|
||
- 通常是白色虚线或实线
|
||
- 位于同向车道之间
|
||
- 用于引导车辆保持在车道内
|
||
- 虚线可以变道,实线不能跨越
|
||
|
||
---
|
||
|
||
## 代码映射关系
|
||
|
||
在 `mmdet3d/datasets/pipelines/loading.py` 中的定义:
|
||
|
||
```python
|
||
elif name == "divider":
|
||
mappings[name] = ["road_divider", "lane_divider"]
|
||
```
|
||
|
||
这意味着训练时,nuScenes地图中的 `road_divider` 和 `lane_divider` 两个图层会被**合并**为一个 `divider` 类别进行学习。
|
||
|
||
---
|
||
|
||
## 为什么 Divider 难度最高?
|
||
|
||
### 训练困难的原因
|
||
|
||
1. **细长结构难以捕捉**
|
||
- 分隔线通常只有10-20cm宽
|
||
- 在BEV图像中只占极少数像素
|
||
- 容易被背景淹没
|
||
|
||
2. **类别不平衡严重**
|
||
```
|
||
场景中像素分布(典型值):
|
||
- Drivable Area: ~40% (背景大,易学习)
|
||
- Divider: ~1-2% (极少,难学习) 🔴
|
||
```
|
||
|
||
3. **视觉特征不明显**
|
||
- 从多视角相机俯视投影时容易丢失细节
|
||
- LiDAR点云在道路标线上反射较弱
|
||
- 需要精确的空间对齐
|
||
|
||
4. **合并了两种不同的线**
|
||
- Road Divider(双黄线)和 Lane Divider(白虚线)
|
||
- 外观、宽度、间隔都不同
|
||
- 增加了类内差异性
|
||
|
||
---
|
||
|
||
## 当前训练表现
|
||
|
||
### Phase 4A Stage 1 - Epoch 1 (73.8%)
|
||
|
||
| 类别 | Dice Loss | 难度 | 状态 |
|
||
|------|-----------|------|------|
|
||
| Drivable Area | 0.12 | 简单 | ✅ 优秀 |
|
||
| Ped Crossing | 0.27 | 中等 | ✅ 良好 |
|
||
| Walkway | 0.25 | 中等 | ✅ 良好 |
|
||
| Stop Line | 0.39 | 困难 | ⚠️ 改善中 |
|
||
| Carpark Area | 0.23 | 中等 | ✅ 优秀 |
|
||
| **Divider** | **0.59** | **极难** | 🔴 **最困难** |
|
||
|
||
**Divider** 的 Dice Loss 是所有类别中最高的(0.59),说明模型在学习这个类别时确实遇到了较大困难。
|
||
|
||
---
|
||
|
||
## 改进效果
|
||
|
||
尽管困难,但通过**600×600高分辨率 + 4层Decoder + Deep Supervision**的Phase 4A配置,Divider已经有了显著改善:
|
||
|
||
### 改善趋势
|
||
```
|
||
训练起始 (Iter 50): Dice Loss = 0.96
|
||
当前状态 (Iter 11400): Dice Loss = 0.59
|
||
下降幅度: ↓38.5% ⭐
|
||
```
|
||
|
||
### 性能预测
|
||
```
|
||
Baseline (Epoch 23, 400×400): IoU = 0.19
|
||
Epoch 1预估 (600×600): IoU = 0.23 (+21%) ⭐
|
||
Epoch 10预估 (600×600): IoU = 0.29 (+52%) ⭐⭐
|
||
```
|
||
|
||
虽然绝对值仍然较低,但相对改进幅度是**所有类别中最大的**!
|
||
|
||
---
|
||
|
||
## 实际应用影响
|
||
|
||
### Divider 检测的重要性
|
||
|
||
1. **车道保持辅助**: 识别车道分界线,防止偏离
|
||
2. **变道决策**: 判断虚线/实线,决定是否可以变道
|
||
3. **对向车流判断**: 识别道路中央分隔线,避免驶入对向车道
|
||
4. **高精地图构建**: 准确的车道级地图需要精确的分隔线
|
||
|
||
### 性能要求
|
||
|
||
```
|
||
实际应用场景推荐值:
|
||
- 辅助驾驶 (L2): IoU ≥ 0.35
|
||
- 自动驾驶 (L4): IoU ≥ 0.50
|
||
- 高精地图: IoU ≥ 0.60
|
||
|
||
当前状态:
|
||
- Epoch 1预估: IoU = 0.23 (仍需提升)
|
||
- Epoch 10预估: IoU = 0.29 (接近L2要求)
|
||
```
|
||
|
||
---
|
||
|
||
## 可视化示例
|
||
|
||
在可视化代码中,Divider 被标记为:
|
||
- **颜色**: 黄色/褐色
|
||
- **RGB**: [160, 82, 45] 或 [255, 255, 0]
|
||
|
||
---
|
||
|
||
## 总结
|
||
|
||
**Divider(分隔线)** = **Road Divider(道路分隔线)** + **Lane Divider(车道分隔线)**
|
||
|
||
- ✅ 包含了道路中央的对向分隔线和同向车道分界线
|
||
- 🔴 是6个BEV分割类别中**最难学习**的类别
|
||
- ⭐ 但通过Phase 4A的改进,预计能获得**52%的性能提升**
|
||
- 🎯 目标是将IoU从0.19提升到0.29+,逐步接近实用水平
|
||
|
||
---
|
||
|
||
*更新时间: 2025-11-01 21:40 UTC*
|
||
|
||
|