时间:2026-03-16 11:33
人气:
作者:admin
本方案面向自动驾驶原始实车采集日志,目标是从连续采集的海量图像、点云、雷达、定位与车辆状态数据中,筛选出适合进入人工标注流程的高价值数据子集。筛选后的数据应同时满足以下要求:
建议采用如下六阶段流程:
原始日志 → 质量过滤 → 场景切片 → 场景打分 → 分层抽样 → 人工复核 原始日志 \rightarrow 质量过滤 \rightarrow 场景切片 \rightarrow 场景打分 \rightarrow 分层抽样 \rightarrow 人工复核 原始日志→质量过滤→场景切片→场景打分→分层抽样→人工复核
对应实施步骤如下:
为统一筛选粒度,建议定义三级数据单元。
一次完整实车采集任务,对应一段连续驾驶日志,时长可为数十分钟至数小时。
从 log 中切出的连续时间片段,建议配置如下:
用于正式标注的关键帧,建议:
首先剔除根本不适合进入标注流程的数据段。
每个时间窗口内检查:
建议阈值:
过滤多传感器时间偏移过大的数据段。
建议阈值:
剔除内参、外参异常或疑似漂移的数据。
建议检查项:
若满足以下任一情况,则整段不进入标注池:
过滤无法可靠标注的图像数据。
建议检查项:
可用指标:
过滤点云不可用的数据段。
建议检查项:
建议指标:
对通过质量过滤的 log 进行场景切片。
推荐采用固定长度切片:
可在固定切片之外叠加事件驱动切片,以提升高价值场景密度,例如:
一个 scene 应满足:
对每个 scene 计算标注收益分,用于后续排序与抽样。
S_quality反映该场景是否具备稳定标注条件,建议由以下因素组成:
S_object反映该场景中目标信息是否充分,建议组成如下:
S_interaction反映场景是否具备较高训练和评测价值,建议包括:
S_rare用于提升困难样本和稀有样本比例,例如:
S_diversity用于避免场景重复,控制冗余数据,例如:
建议采用可解释线性加权模型:
S = w 1 S q u a l i t y + w 2 S o b j e c t + w 3 S i n t e r a c t i o n + w 4 S r a r e + w 5 S d i v e r s i t y S = w_1 S_{quality} + w_2 S_{object} + w_3 S_{interaction} + w_4 S_{rare} + w_5 S_{diversity} S=w1Squality+w2Sobject+w3Sinteraction+w4Srare+w5Sdiversity
可参考初始权重:
若标注预算有限,可适当提高 S_rare 和 S_interaction 权重。
在打分前后增加规则门控,提升候选池质量稳定性。
必须同时满足以下条件才允许进入候选池:
若出现以下情况,直接剔除:
高分场景不能直接全选,否则容易造成分布偏斜。应对候选场景进行分层均衡抽样。
建议按如下维度建立配额:
每个分层桶内:
为避免“高分但重复”的样本大量进入标注池,需要引入去重模块。
可从以下维度构造场景特征:
可采用以下方式:
建议规则:
选定 scene 后,不建议逐帧全量人工标注。
scene 约 40 帧标注sweeps 或时序上下文该策略有利于:
建议将候选样本分为三级。
满足以下特征:
用于构建核心标注集。
数据质量良好,但复杂度相对一般。用于平衡整体数据分布。
质量勉强合格或信息量一般。仅在预算充足时补充。
自动筛选后必须进行人工复核。
若为首版数据集,建议首轮全量审核。
最终建议输出以下四类结果。
字段建议:
log_idscene_idstart_tsend_tsquality_scoreobject_scoreinteraction_scorerare_scorediversity_scorefinal_scorecityweathertime_of_dayroad_typetraffic_densityselected_flag建议字段:
scene_idkeyframe_tssensor_pathsposecalib_version记录样本被剔除的具体原因,例如:
统计最终入选数据在以下维度的分布:
若需要快速启动,建议先使用以下工程初始版策略。
剔除以下问题数据:
将通过过滤的连续日志按 20 s 切分为 scene。
采用如下综合分:
S = 0.3 S q u a l i t y + 0.2 S o b j e c t + 0.2 S i n t e r a c t i o n + 0.15 S r a r e + 0.15 S d i v e r s i t y S = 0.3S_{quality} + 0.2S_{object} + 0.2S_{interaction} + 0.15S_{rare} + 0.15S_{diversity} S=0.3Squality+0.2Sobject+0.2Sinteraction+0.15Srare+0.15Sdiversity
按以下维度做均衡抽样:
对入选 scene 按 2 Hz 选取关键帧进行人工标注。
以下流程图面向工程实施,覆盖从原始日志接入到标注入库的完整闭环。
建议将整套流程拆分为以下模块:
ingest:原始日志接入、索引构建、元数据解析。quality_gate:完整性、同步、标定、图像与点云质量检查。scene_builder:固定窗口切片与事件增强切片。scene_scorer:计算质量分、目标分、交互分、长尾分、多样性分。sampler:分层抽样、配额控制、相似场景去重。review:人工抽检、问题回流、候选池修正。exporter:导出标注任务、关键帧索引、场景分布报表。推荐按以下顺序逐步上线:
这样可以先跑通可用的最小闭环,再逐步增强筛选精度。
下表给出一版可直接落地的初始筛选规则。项目实施时可根据传感器规格、采集平台和任务目标进一步调整。
| 规则ID | 规则类别 | 指标 | 条件 | 建议阈值 | 动作 | 说明 |
|---|---|---|---|---|---|---|
| R001 | 完整性 | 相机缺失率 | > |
0.05 | reject | 任一关键相机长期缺失直接剔除 |
| R002 | 完整性 | LiDAR 丢帧率 | > |
0.05 | reject | LiDAR 为主传感器时严格控制 |
| R003 | 完整性 | Radar 丢帧率 | > |
0.10 | downgrade/reject | 先降级,严重时剔除 |
| R004 | 定位 | GNSS/IMU 连续失效时长 | > |
2.0 s | reject | 无法保证姿态连续性 |
| R005 | 同步 | Camera-LiDAR 时间偏差 | > |
50 ms | reject | 影响多传感器配准 |
| R006 | 同步 | Radar-主时钟时间偏差 | > |
100 ms | downgrade | 轻度异常可降级处理 |
| R007 | 标定 | 重投影误差均值 | > |
3.0 px | reject | 相机与点云对齐明显异常 |
| R008 | 标定 | 地平面法向波动 | > |
5.0 deg | reject | 标定或姿态可能异常 |
| R009 | 图像质量 | 模糊评分 | < |
100.0 | reject | 可使用 Laplacian 方差 |
| R010 | 图像质量 | 过曝像素占比 | > |
0.25 | reject | 大面积高亮区域不可标 |
| R011 | 图像质量 | 欠曝像素占比 | > |
0.35 | reject | 夜间极暗场景需剔除 |
| R012 | 图像质量 | 雨滴/污渍分数 | > |
0.60 | reject | 镜头遮挡严重 |
| R013 | 点云质量 | 单帧有效点数 | < |
30000 | reject | 点云过稀导致标注困难 |
| R014 | 点云质量 | 噪声点比例 | > |
0.15 | reject | 雨雾或异常回波过多 |
| R015 | 场景切片 | Scene 连续时长 | < |
20.0 s | reject | 不满足标准切片时长 |
| R016 | 目标丰富度 | 平均每帧目标数 | < |
3 | downgrade | 信息量不足,降级候选 |
| R017 | 目标丰富度 | 动态目标数 | < |
1 | downgrade | 用于压缩低价值巡航段 |
| R018 | 交互复杂度 | 路口/并线/横穿事件数 | < |
1 | keep | 非必需,不作剔除,仅影响得分 |
| R019 | 长尾价值 | 夜间/雨天/施工标签 | == |
true | bonus | 稀有场景给予额外加分 |
| R020 | 去重 | 场景相似度 | > |
0.95 | deduplicate | 仅保留高分代表样本 |
| R021 | 关键帧 | Keyframe 采样频率 | = |
2 Hz | export | 输出正式标注帧 |
| R022 | 复核 | 人工抽检未通过 | == |
true | reject/rollback | 从标注池移除或退回修正 |
reject:直接剔除,不进入候选池。downgrade:进入低优先级候选池,仅在配额不足时补充。bonus:不改变准入资格,仅在最终排序时加分。deduplicate:用于相似样本去重。export:用于导出关键帧或标注任务。scene 切片前执行。scene 切片后执行。为便于工程落地,建议将筛选逻辑配置化。以下给出一版推荐模板,可直接作为配置文件初稿使用。
对应文件可保存为 docs/annotation_filter_config.template.json。
{
"project": {
"name": "apollo_annotation_filter",
"version": "1.0.0",
"description": "Raw driving log filtering for annotation-ready scenes"
},
"scene": {
"duration_sec": 20,
"stride_sec": 10,
"keyframe_hz": 2
},
"quality_gate": {
"sensor_integrity": {
"camera_missing_rate_max": 0.05,
"lidar_drop_rate_max": 0.05,
"radar_drop_rate_max": 0.10,
"localization_failure_sec_max": 2.0
},
"time_sync": {
"camera_lidar_offset_ms_max": 50,
"radar_master_offset_ms_max": 100,
"continuous_anomaly_count_max": 3
},
"calibration": {
"reprojection_error_px_max": 3.0,
"ground_normal_jitter_deg_max": 5.0
},
"image_quality": {
"blur_score_min": 100.0,
"over_exposure_ratio_max": 0.25,
"under_exposure_ratio_max": 0.35,
"occlusion_score_max": 0.60
},
"pointcloud_quality": {
"valid_points_min": 30000,
"noise_ratio_max": 0.15
}
},
"scoring": {
"weights": {
"quality": 0.30,
"object": 0.20,
"interaction": 0.20,
"rare": 0.15,
"diversity": 0.15
},
"minimums": {
"avg_objects_per_frame": 3,
"dynamic_objects_per_scene": 1
},
"bonus": {
"night_scene": 0.05,
"rain_scene": 0.05,
"construction_zone": 0.05,
"rare_object_scene": 0.08
}
},
"sampling": {
"quotas": {
"day": 0.50,
"night": 0.20,
"rain": 0.10,
"intersection": 0.20
},
"deduplication": {
"enabled": true,
"similarity_threshold": 0.95,
"keep": "highest_score"
}
},
"review": {
"a_level_sample_ratio": 0.10,
"b_level_sample_ratio": 0.20,
"c_level_sample_ratio": 0.30,
"reject_on_manual_fail": true
},
"outputs": {
"export_keyframes": true,
"export_scene_table": true,
"export_reject_report": true,
"export_distribution_report": true
}
}
对应文件可保存为 docs/annotation_filter_config.template.yaml。
project:
name: apollo_annotation_filter
version: 1.0.0
description: Raw driving log filtering for annotation-ready scenes
scene:
duration_sec: 20
stride_sec: 10
keyframe_hz: 2
quality_gate:
sensor_integrity:
camera_missing_rate_max: 0.05
lidar_drop_rate_max: 0.05
radar_drop_rate_max: 0.10
localization_failure_sec_max: 2.0
time_sync:
camera_lidar_offset_ms_max: 50
radar_master_offset_ms_max: 100
continuous_anomaly_count_max: 3
calibration:
reprojection_error_px_max: 3.0
ground_normal_jitter_deg_max: 5.0
image_quality:
blur_score_min: 100.0
over_exposure_ratio_max: 0.25
under_exposure_ratio_max: 0.35
occlusion_score_max: 0.60
pointcloud_quality:
valid_points_min: 30000
noise_ratio_max: 0.15
scoring:
weights:
quality: 0.30
object: 0.20
interaction: 0.20
rare: 0.15
diversity: 0.15
minimums:
avg_objects_per_frame: 3
dynamic_objects_per_scene: 1
bonus:
night_scene: 0.05
rain_scene: 0.05
construction_zone: 0.05
rare_object_scene: 0.08
sampling:
quotas:
day: 0.50
night: 0.20
rain: 0.10
intersection: 0.20
deduplication:
enabled: true
similarity_threshold: 0.95
keep: highest_score
review:
a_level_sample_ratio: 0.10
b_level_sample_ratio: 0.20
c_level_sample_ratio: 0.30
reject_on_manual_fail: true
outputs:
export_keyframes: true
export_scene_table: true
export_reject_report: true
export_distribution_report: true
本方案的核心思想是:先利用传感器完整性、时间同步、标定、图像质量和点云质量进行硬性过滤;再将连续日志切分为固定时长 scene;从可标注性、目标丰富度、交互复杂度、长尾价值和多样性五个维度进行打分;随后按地域、天气、光照、道路类型和交通密度进行分层均衡抽样;最后仅对入选场景中的关键帧执行人工标注,而将非关键帧作为时序上下文保留。
在项目实施层面,建议优先落地“质量过滤 → 场景切片 → 场景打分 → 分层抽样 → 人工复核 → 标注导出”的最小闭环,并通过规则表和配置文件实现阈值、配额、权重的统一管理与持续迭代。
该流程能够在保证标注质量的前提下,提高样本有效性、数据集代表性和标注资源利用效率。