4. 行为标签体系设计
行为标签体系是自动驾驶数据闭环中的“语义骨架”。它把连续、低层的轨迹与传感器信号,映射为可统计、可检索、可训练的高层语义单元。若标签体系设计松散,后续的模型训练、场景挖掘与安全评估都会出现“同名不同义、同义不同名”的混乱。本节围绕行为分类标准、标签层级结构、场景语义定义、一致性原则与标注规范五个方面展开。
一、行为分类标准:从“动作”到“意图”的分层
行为分类不能只停留在“左转、右转、直行”这类粗粒度动作上。工程上通常按三个维度切分:运动学维度(横向/纵向动作)、交互维度(是否与其他交通参与者发生博弈)、意图维度(短期目标与长期意图)。例如“减速”是运动学动作,“礼让行人”是交互行为,“准备靠边停车”是意图行为。三者粒度不同,必须分开建模,否则标签之间会互相污染。
一个可落地的分类标准应满足:互斥性(同一时刻主行为唯一)、完备性(覆盖常见场景)、可观测性(能从轨迹与感知结果中推断)。对于边界模糊的行为,如“缓慢跟车”与“拥堵跟驰”,应通过参数阈值明确切分,而不是依赖标注员主观判断。
二、标签层级结构:树状体系与多标签并存
推荐采用“主标签 + 属性标签 + 场景标签”的三层结构。主标签描述核心行为,属性标签补充参数(速度区间、加速度区间、持续时间),场景标签描述所处环境(路口、匝道、施工区)。这种结构既保证检索效率,又保留细粒度信息。
三、场景语义定义:让标签“可计算”
场景语义定义的核心是把自然语言描述转化为可计算的条件表达式。例如“前车切入”不能只写文字,而应定义为:目标车从相邻车道横向移动进入自车前方,横向距离小于1.5m,纵向距离小于30m,且持续超过0.5s。这样标注员和自动挖掘脚本才能得到一致结果。
建议为每个场景标签维护一份“语义契约”,包含触发条件、结束条件、最小持续时间、排除条件。例如“路口右转”的结束条件可以是“自车航向角变化超过70°且通过路口停止线”。没有结束条件的标签会导致片段无限延长,破坏训练样本的边界。
四、标签一致性原则与标注规范
一致性是标签体系的“生命线”。应遵循四条原则:唯一主标签原则(同一时刻只能有一个主行为)、时间边界对齐原则(标签起止与轨迹关键点对齐)、层级继承原则(属性标签必须依附于主标签)、可追溯原则(每个标签可回溯到原始数据帧)。
标注规范应包含操作手册、正负样本示例、争议仲裁流程。下表给出一个简化的标注检查清单:
| 检查项 | 要求 | 常见错误 |
|---|---|---|
| 主标签唯一性 | 同一帧仅一个主行为 | 同时标“跟驰”和“换道” |
| 时间边界 | 起止帧与轨迹拐点对齐 | 标签提前或滞后0.5s以上 |
| 属性完整性 | 速度、加速度、持续时间必填 | 只填主标签,属性为空 |
| 场景一致性 | 场景标签与地图匹配 | 非路口数据标为“路口通行” |
| 可追溯性 | 保留原始帧号与数据源 | 标签无法回溯到具体片段 |
五、案例与误区复盘
以“城市路口右转遇行人”为例,正确标注应为:主标签“路口通行”,属性标签“低速、右转、持续8s”,场景标签“城市路口+行人交互”,并附加“礼让行人”子行为。若只标“右转”,则丢失了交互语义,模型无法学习礼让策略。
常见误区:一是把“意图”当“行为”标注,例如把“准备左转”标成“左转”,导致标签与轨迹不符;二是标签粒度过细,产生大量长尾类别,标注成本高且模型难以收敛;三是忽略负样本定义,只标“有行为”不标“无行为”,导致分类器偏向多数类。
实践建议:先定义20~30个高频主标签,覆盖90%以上场景;属性标签用参数区间自动生成,减少人工;场景标签与地图、感知结果自动关联;每季度做一次标签一致性审计,计算标注员间Kappa系数,低于0.8的类别必须重新培训或修订定义。
# 标签片段示例(JSON)
{
"segment_id": "seg_20240512_001",
"primary": "car_following",
"attributes": {
"speed_range": [30, 50],
"accel_range": [-1.0, 0.5],
"duration_s": 6.2,
"turn_signal": "off"
},
"scene": ["urban_road", "congestion"],
"start_frame": 1024,
"end_frame": 1396,
"source": "lidar_camera_fusion"
}
行为标签体系不是一次性设计,而是随场景库和模型需求持续迭代的工程资产。只有分类标准清晰、层级结构合理、语义定义可计算、一致性可审计,标签才能真正成为自动驾驶数据闭环中的“通用语言”。