共计 1912 个字符,预计需要花费 5 分钟才能阅读完成。
背景与痛点
Cityscapes 是自动驾驶领域广泛使用的语义分割数据集,包含 50 个城市的街景图像,涵盖 30 个标注类别。其特点是高分辨率(2048×1024)、复杂的城市场景和精细的标注粒度。然而,这些特性也带来了显著挑战:

- 高分辨率图像导致计算开销大,传统模型难以实时处理
- 类别不平衡(如天空 / 建筑占比远高于交通标志)影响模型收敛
- 细小物体(如路灯、行人)的边界分割精度要求极高
技术选型对比
当前在 Cityscapes 上表现突出的三大类模型架构:
- Encoder-Decoder 结构(DeepLabv3+ 为代表)
- 优势:ASPP 模块有效捕获多尺度上下文,Xception backbone 计算高效
-
不足:对长距离依赖建模有限,小物体分割效果一般
-
高分辨率保持网络(HRNet)
- 优势:全程保持高分辨率特征,空间信息损失小
-
不足:显存消耗大,训练时间较长
-
Transformer 架构(Mask2Former)
- 优势:自注意力机制实现全局上下文建模,mask 分类范式统一
- 不足:需要大量数据增强,GPU 资源需求高
核心实现细节
模型架构关键点
以 Mask2Former 为例,其核心创新包括:
-
像素解码器 :采用多尺度可变形注意力,公式表示为:
DeformAttn(z_q, x) = ∑_m^M W_m[∑_k^K A_mqk·W_m'x(p_q+Δp_mqk)]其中 Δp_mqk 学习偏移量,A_mqk 为注意力权重
-
Transformer 解码器 :使用 6 层标准 Transformer 层,每层包含:
- 自注意力机制(query/key/value 来自前一层输出)
- 交叉注意力(query 来自 object query,key/value 来自像素特征)
损失函数设计
采用三部分加权组合:
- 掩码损失:Dice 系数 + Focal loss
- 分类损失:标准交叉熵
- 匹配损失:匈牙利算法分配的 pair-wise cost
训练技巧
- 数据增强:
- 随机缩放(0.5-2.0 倍)
- 颜色抖动(亮度 0.4/ 对比度 0.4/ 饱和度 0.4)
-
实例感知裁剪(确保至少保留一个完整物体)
-
学习率策略:
- 线性 warmup(前 1500 迭代)
- 余弦衰减(初始 lr=0.0001)
代码示例
关键实现片段(PyTorch):
# 可变形注意力实现
class DeformableAttention(nn.Module):
def __init__(self, embed_dim, num_heads):
super().__init__()
self.offset_proj = nn.Linear(embed_dim, 2*num_heads) # 学习偏移量
self.attn_proj = nn.Linear(embed_dim, num_heads) # 注意力权重
self.value_proj = nn.Linear(embed_dim, embed_dim)
def forward(self, query, reference_points, value):
# reference_points: 归一化的坐标点 [N,L,2]
offsets = self.offset_proj(query).sigmoid() - 0.5 # [-0.5,0.5]
attn_weights = self.attn_proj(query).softmax(dim=1)
sampled_values = bilinear_sample(value, reference_points + offsets)
return (attn_weights * sampled_values).sum(dim=1)
性能测试
| 模型 | mIoU(val) | FPS(2080Ti) | 参数量 |
|---|---|---|---|
| DeepLabv3+ | 79.3% | 8.2 | 43M |
| HRNetV2-W48 | 81.1% | 6.5 | 65M |
| Mask2Former | 84.2% | 4.8 | 50M |
测试环境:PyTorch 1.10, CUDA 11.3, 输入尺寸 1024×512
避坑指南
- 显存溢出问题 :
- 使用梯度检查点技术(checkpointing)
-
尝试 –channels_last 内存格式
-
小物体分割不佳 :
- 在 loss 中增加小物体权重(如交通标志×3)
-
添加 boundary-aware 损失项
-
训练震荡 :
- 适当增大 batch size(≥8)
- 使用 SyncBN 替代普通 BN
总结与展望
当前 SOTA 模型在 Cityscapes 上已达到 84+% 的 mIoU,但实际部署仍面临:
- 实时性要求(需 >30FPS)与精度的平衡
- 极端天气条件下的泛化能力
- 多任务联合优化(如同时处理分割 + 检测)
建议尝试方向:
- 知识蒸馏(大模型→小模型)
- 神经架构搜索(NAS)定制 backbone
- 时序信息利用(视频连续帧)
通过本文介绍的技术选型和实现细节,开发者可以快速搭建 baseline 模型,并根据具体需求进行针对性优化。
正文完
