2. 自动驾驶感知基础
在自动驾驶系统中,感知层承担着“把物理世界翻译成机器可计算表达”的职责。可行驶区域与道路语义分割并不是孤立算法,它位于感知栈的中后段,向上承接传感器原始数据与目标检测结果,向下为预测、规划、控制提供可通行空间与道路结构约束。理解传感器类型、坐标系以及道路场景理解在感知栈中的位置,是后续工程实现的前提。
一、核心原理:感知栈的分层与道路场景理解的位置
典型自动驾驶感知栈可划分为四层:传感器层、预处理与标定层、感知理解层、输出接口层。传感器层提供相机图像、激光雷达点云、毫米波雷达回波、IMU/GNSS 位姿等原始数据;预处理与标定层完成时间同步、去畸变、坐标变换与外参对齐;感知理解层进一步分为目标级感知(车辆、行人、锥桶)与场景级感知(可行驶区域、车道线、路沿、路面语义);输出接口层将结果统一到车身坐标系或世界坐标系,供下游模块消费。
道路场景理解的核心价值在于:目标检测回答“有什么”,而可行驶区域与语义分割回答“哪里能走、边界在哪、路面属性如何”。二者互补,缺一不可。例如前方有一片未分类的施工围挡,目标检测可能漏检,但语义分割若将路面与路沿区分清楚,仍能给出可通行区域收缩信号。
二、传感器类型与道路语义分割的适配关系
不同传感器对道路场景理解的贡献差异显著。相机提供稠密纹理与颜色,适合车道线、路面标线、交通标志与语义分割;激光雷达提供精确三维几何,适合路沿、可行驶区域边界与障碍物高度判断;毫米波雷达对雨雾鲁棒,但角分辨率低,通常用于目标级感知与速度测量;IMU/GNSS 提供全局位姿,用于多帧拼接与地图对齐。
| 传感器 | 主要输出 | 对道路场景理解的作用 | 典型局限 |
|---|---|---|---|
| 前视相机 | RGB 图像 | 车道线、路面标线、语义分割 | 受光照、逆光、雨雾影响 |
| 环视相机 | 多路鱼眼图像 | 近距离可行驶区域、泊车场景 | 畸变大,需去畸变与拼接 |
| 激光雷达 | 三维点云 | 路沿、可行驶区域边界、高度 | 雨雾衰减,成本较高 |
| 毫米波雷达 | 距离/速度/角度 | 目标级感知、速度辅助 | 角分辨率低,语义弱 |
| IMU/GNSS | 位姿、速度 | 多帧对齐、全局地图匹配 | 隧道/城市峡谷信号弱 |
三、坐标系体系:从像素到车身的统一表达
道路语义分割的输出必须落到统一坐标系中才有工程意义。常见坐标系包括:像素坐标系(u,v)、相机坐标系(Xc,Yc,Zc)、激光雷达坐标系(Xl,Yl,Zl)、车身坐标系(Xv,Yv,Zv,通常原点在后轴中心,X 向前,Y 向左,Z 向上)以及世界坐标系(ENU 或 UTM)。
相机到车身的变换依赖外参标定,通常表示为旋转矩阵 R 与平移向量 t。像素点反投影到车身平面的过程可简写为:
# 像素 -> 相机归一化平面
x_n = (u - cx) / fx
y_n = (v - cy) / fy
# 相机 -> 车身(外参 R, t)
P_cam = [x_n * Z, y_n * Z, Z]
P_veh = R * P_cam + t
# 若已知地面平面 Z_veh = 0,可反解尺度 Z
工程中常见误区是忽略相机安装俯仰角与滚转角,导致可行驶区域在远处出现“上飘”或“下压”。因此,标定后必须用地面控制点验证重投影误差,通常要求像素误差小于 2 像素。
四、案例场景:城市路口可行驶区域分割
以城市十字路口为例,车辆需要识别本车道、左转待转区、斑马线、路沿与安全岛。相机语义分割输出路面、路沿、人行道、车辆、行人等类别;激光雷达点云提供路沿三维高度与地面坡度;两者在车身坐标系下融合后,生成可行驶区域栅格图。若仅依赖相机,阴影可能被误判为路面;若仅依赖激光雷达,地面标线无法区分。融合后,规划模块可获得带语义标签的可通行空间。
五、误区与复盘
- 误区一:把语义分割当作目标检测的替代。语义分割不区分实例,无法直接输出每个行人的独立 ID,需与检测网络互补。
- 误区二:忽略坐标系时效性。车辆运动时,不同传感器时间戳不一致,必须做时间同步与运动补偿,否则融合结果错位。
- 误区三:只关注精度,不关注延迟。可行驶区域输出延迟超过 100ms,规划模块可能基于过期信息决策,带来安全风险。
- 复盘建议:建立“传感器-标定-分割-融合-输出”全链路日志,记录每帧时间戳、外参版本与置信度,便于问题回溯。
综上,传感器类型决定了道路场景理解的数据基础,坐标系决定了结果能否被下游正确使用,而感知栈中的位置决定了它与目标检测、预测规划的分工边界。工程实践中,应把可行驶区域与语义分割视为“带坐标、带时间、带置信度”的结构化输出,而非单纯的分割掩码。只有打通传感器、标定、分割、融合与输出全链路,才能为自动驾驶提供稳定可靠的道路场景理解能力。