4. 感知任务概览
多模态驾驶智能体的感知系统并不是单一模型完成全部理解,而是由一组互补的感知任务共同构成。每个任务回答不同的问题:目标检测回答“哪里有车、人、锥桶”;语义分割回答“每个像素属于道路、天空还是建筑”;实例分割进一步区分“这是第几辆车”;车道线检测回答“本车可行驶的边界在哪里”;深度估计回答“这个物体离我多远”;占用栅格预测则回答“三维空间中哪些体素被占据、是否可通行”。理解这些任务的输出形式、监督信号与相互关系,是设计感知推理链路的基础。
一、核心原理:从像素到结构化世界
六类任务可以按输出粒度分为三个层次。第一层是稠密像素级任务,包括语义分割、深度估计和车道线检测,它们为每个像素或每条曲线赋予类别或数值。第二层是目标级任务,包括目标检测和实例分割,它们输出带类别、置信度和几何描述的独立对象。第三层是体素级任务,即占用栅格预测,它在三维空间中以规则网格表达占据概率与语义,直接服务于规划控制。
从信息流角度看,这些任务共享同一批多模态输入:环视相机图像、激光雷达点云、毫米波雷达回波以及IMU/轮速等自车状态。不同任务对模态的依赖不同:车道线检测高度依赖前视相机;深度估计可融合双目、LiDAR或时序运动;占用栅格预测则常以BEV(Bird's Eye View)特征为中间表示,将图像特征与点云特征对齐到统一空间。
二、方法流程:各任务的典型输出与监督
目标检测通常采用Anchor-based或Anchor-free范式,输出2D框或3D框。3D检测需要回归中心点、尺寸、朝向和速度,常用PointPillars、CenterPoint等结构。语义分割常用编码器-解码器结构,如U-Net、DeepLab系列,损失函数多为交叉熵与Dice组合。实例分割在语义分割基础上增加实例嵌入或掩码分支,Mask R-CNN是经典代表。车道线检测可建模为逐像素分类、曲线参数回归或点序列预测,近年流行基于查询的端到端方法。深度估计分为双目立体匹配、单目深度网络和LiDAR稀疏深度补全。占用栅格预测则常以BEV特征为输入,输出三维体素的占据概率与语义类别,代表工作如OccNet、BEVFormer的占用头。
| 任务 | 输出形式 | 主要监督信号 | 典型评价指标 | 对规划的贡献 |
|---|---|---|---|---|
| 目标检测 | 2D/3D 边界框 + 类别 + 置信度 | 框回归 + 分类标签 | mAP、NDS | 障碍物位置与运动趋势 |
| 语义分割 | 逐像素类别图 | 像素级类别标注 | mIoU、像素准确率 | 可行驶区域与场景理解 |
| 实例分割 | 像素掩码 + 实例 ID | 掩码标注 + 实例标签 | Mask mAP | 精细避障与交互对象区分 |
| 车道线检测 | 曲线/点序列 + 拓扑 | 车道线点标注 | F1、IoU、距离误差 | 横向控制与车道保持 |
| 深度估计 | 逐像素距离/视差图 | LiDAR 深度或立体匹配 | AbsRel、RMSE | 距离估计与碰撞预警 |
| 占用栅格预测 | 3D 体素占据 + 语义 | 点云体素化标签 | IoU、mIoU | 通用障碍物与自由空间 |
三、案例场景:城市路口的多任务协同
假设自车接近一个无保护左转路口。前视相机检测到对向有车辆,目标检测给出3D框和速度;语义分割识别出左转待转区与斑马线;实例分割区分出等待过街的行人个体;车道线检测给出左转引导线;深度估计确认对向车辆距离约35米;占用栅格预测则显示左前方存在一个被遮挡的锥桶区域。这些输出在BEV空间融合后,规划模块才能判断“是否可以安全左转”。若缺少占用栅格,被遮挡的低矮障碍物可能被漏检;若缺少实例分割,多个行人可能被合并为一个语义区域,导致交互预测失真。
四、误区与复盘
误区一:把语义分割当作实例分割用。语义分割只给类别,不给个体身份。若下游需要跟踪每一辆车,必须使用实例分割或检测框关联。
误区二:认为深度估计可以完全替代LiDAR。单目深度在远距离和弱纹理区域误差较大,LiDAR在雨雾天气也会衰减。多模态融合才是稳健方案。
误区三:占用栅格分辨率越高越好。分辨率提升会带来显存和推理延迟的平方级增长。实际工程中常采用0.2m~0.4m体素,并对近处使用更细分辨率。
误区四:忽略时序一致性。逐帧独立预测会导致闪烁和抖动。应在BEV特征层引入时序对齐与记忆机制,如BEVFormer的时序自注意力。
# 典型多任务感知配置片段(示意)
tasks:
detection:
head: "centerpoint"
classes: ["car", "pedestrian", "cyclist", "truck"]
segmentation:
head: "deeplabv3+"
classes: ["road", "sidewalk", "building", "sky", "vegetation"]
lane:
head: "query-based"
num_lanes: 4
depth:
head: "mono-depth"
min_depth: 0.5
max_depth: 80.0
occupancy:
grid_size: [200, 200, 16]
voxel_size: [0.4, 0.4, 0.4]
classes: ["free", "occupied", "unknown"]
复盘时建议按“任务覆盖度—模态依赖度—时序稳定性—规划可用性”四个维度打分。一个感知系统即使单项指标很高,若任务之间输出空间不一致、时间戳不同步,也会在规划端产生严重问题。因此,本章的六类任务应被视为一个整体,而非彼此孤立的模型集合。