Files
yolov26_3d/tools/scripts_for_gt/profiling/DATASET_ANALYSIS.md
2026-06-24 09:35:46 +08:00

22 KiB
Executable File
Raw Permalink Blame History

YOLOv5-3D 训练数据集分析报告

1. 数据集概览

基本信息

  • 数据集划分: 训练集 (train)
  • 总图像数: 2,638,689 张
  • 总标注对象数: 127,878,960 个
  • 平均每张图像对象数: 48.5 个
  • 标签完整性: 100% (无缺失标签)

标注格式分布

格式维度 对象数量 占比
6维格式 89,994,340 70.4%
50维格式 22,070,252 17.3%
18维格式 15,814,368 12.4%

2. 类别分布与统计

2.1 整体类别分布

类别 对象数量 占比 3D标注数量 深度标注率
vehicle (车辆) 35,607,807 27.8% 22,070,252 62.0%
bicycle (自行车) 10,658,936 8.3% 6,368,673 59.8%
pedestrian (行人) 8,086,704 6.3% 3,955,590 48.9%
rider (骑行者) 6,653,675 5.2% 5,490,105 82.5%
head (人头) 14,610,038 11.4% - 0%
wheel (车轮) 12,895,577 10.1% - 0%
plate (车牌) 9,939,105 7.8% - 0%
roadblock (路障) 8,058,184 6.3% - 0%
guideboard (指示牌) 6,457,611 5.0% - 0%
tl_border (交通灯边框) 5,645,436 4.4% - 0%
tsr (交通标志) 4,957,683 3.9% - 0%
tl_wick (交通灯灯芯) 3,611,666 2.8% - 0%
tl_num (交通灯数字) 696,538 0.5% - 0%

关键发现:

  • 数据集包含13个类别覆盖自动驾驶场景的主要元素
  • 仅4个类别有3D标注vehicle, bicycle, pedestrian, rider
  • 车辆类别数据量最大占比接近28%
  • 辅助类别head, wheel, plate占比约30%

3. 目标密度分析

3.1 每张图像对象密度

统计量 对象数/图 类别数/图
均值 48.5 7.9
标准差 30.0 2.8
最小值 1 1
5%分位 8 3
25%分位 25 6
中位数 45 8
75%分位 66 10
95%分位 103 12
最大值 252 13

分析:

  • 图像平均包含48.5个对象,显示场景复杂度较高
  • 中位数45个对象说明数据分布较为均衡
  • 最密集图像包含252个对象对检测算法提出挑战
  • 平均每张图像包含8个类别场景多样性好

4. 2D边界框特征分析

4.1 主要交通参与者BBox统计

Vehicle (车辆)

维度 宽度(px) 高度(px) 面积(px²) 长宽比
均值 85.4 73.2 16,238 1.41
中位数 46 36 1,584 1.24
5%-95%范围 10-318 8-295 98-90,168 0.56-2.83

Pedestrian (行人)

维度 宽度(px) 高度(px) 面积(px²) 长宽比
均值 25.0 70.1 3,434 0.44
中位数 18 45 799 0.38
5%-95%范围 8-64 16-216 144-12,792 0.21-0.80

Bicycle (自行车)

维度 宽度(px) 高度(px) 面积(px²) 长宽比
均值 58.4 77.3 7,135 0.82
中位数 42 57 2,408 0.79
5%-95%范围 16-161 20-222 357-33,600 0.39-1.36

Rider (骑行者)

维度 宽度(px) 高度(px) 面积(px²) 长宽比
均值 45.5 87.2 7,560 0.55
中位数 30 56 1,680 0.49
5%-95%范围 9-135 18-276 162-36,140 0.34-0.94

关键观察:

  • 车辆BBox尺寸变化最大标准差109.7px),反映远近距离差异
  • 行人长宽比约0.44,符合竖直站立特征
  • 自行车长宽比接近1呈方形分布
  • 骑行者BBox比单独行人更大符合"人+车"组合特征

4.2 辅助检测目标BBox统计

Head (人头)

  • 平均尺寸: 12×15 px
  • 中位数面积: 96 px²
  • 长宽比: 0.84 (接近圆形)

Wheel (车轮)

  • 平均尺寸: 20×52 px
  • 长宽比: 0.42 (竖直椭圆)
  • 特点: 高度明显大于宽度

Plate (车牌)

  • 平均尺寸: 28×13 px
  • 长宽比: 2.25 (横向矩形)
  • 特点: 典型的车牌横向特征

5. 3D标注深度分析

5.1 深度分布统计

Vehicle (车辆) - 22,070,252个3D标注

深度范围 对象数量 占比
0-10m 2,666,042 12.1%
10-20m 3,437,999 15.6%
20-30m 3,158,252 14.3%
30-50m 5,195,185 23.5%
50-80m 4,885,009 22.1%
80-120m 2,720,248 12.3%
>120m 7,517 0.03%
  • 平均深度: 41.8m
  • 中位深度: 36.1m
  • 95%分位: 97.6m
  • 深度范围: -8.5m ~ 128.9m

Pedestrian (行人) - 3,955,590个3D标注

深度范围 对象数量 占比
0-10m 626,552 15.8%
10-20m 1,024,844 25.9%
20-30m 787,225 19.9%
30-50m 955,993 24.2%
50-80m 491,938 12.4%
80-120m 69,038 1.7%
>120m 0 0%
  • 平均深度: 28.3m
  • 中位深度: 23.7m
  • 最大深度: 119.9m

Bicycle (自行车) - 6,368,673个3D标注

深度范围 对象数量 占比
0-10m 1,343,418 21.1%
10-20m 1,841,284 28.9%
20-30m 1,363,130 21.4%
30-50m 1,247,522 19.6%
50-80m 521,347 8.2%
80-120m 51,972 0.8%
  • 平均深度: 24.1m
  • 中位深度: 20.0m

Rider (骑行者) - 5,490,105个3D标注

深度范围 对象数量 占比
0-10m 776,346 14.1%
10-20m 1,145,211 20.9%
20-30m 896,225 16.3%
30-50m 1,349,814 24.6%
50-80m 990,871 18.0%
80-120m 331,515 6.0%
>120m 123 0.002%
  • 平均深度: 34.6m
  • 中位深度: 29.1m

深度分布特点:

  • 车辆检测距离最远均值41.8m),适合高速场景
  • 行人和自行车主要分布在近距离(<30m占比>60%
  • 骑行者深度分布介于车辆和行人之间
  • 30-50m是所有类别的关键检测范围

6. 3D物体尺寸分析

6.1 真实世界物理尺寸(米)

Vehicle (车辆)

维度 长度(m) 高度(m) 宽度(m)
均值 4.89 1.82 1.99
中位数 4.40 1.63 1.93
5%-95%范围 4.11-8.52 1.50-3.29 1.81-2.75

分析:

  • 中位长度4.40m,符合轿车尺寸
  • 高度1.63m,典型轿车/SUV高度
  • 长度95%分位8.52m,包含货车/客车

Pedestrian (行人)

维度 长度(m) 高度(m) 宽度(m)
均值 0.63 1.67 0.66
中位数 0.62 1.68 0.65
标准差 0.03 0.05 0.04

分析:

  • 高度1.67m,符合成人平均身高
  • 尺寸标准差极小,标注一致性好

Bicycle (自行车)

维度 长度(m) 高度(m) 宽度(m)
均值 1.60 1.20 0.66
中位数 1.59 1.18 0.65

分析:

  • 长度1.60m,典型自行车尺寸
  • 宽度0.66m,标准车把宽度

Rider (骑行者)

维度 长度(m) 高度(m) 宽度(m)
均值 1.74 1.57 0.83
中位数 1.73 1.58 0.83

分析:

  • 比自行车更高1.57m vs 1.20m
  • 宽度更大0.83m vs 0.66m),包含人体

7. 姿态与朝向分析

7.1 航向角rot_y分布

类别 均值(rad) 标准差 中位数
Vehicle -0.34 1.69 -1.49
Pedestrian -0.07 1.79 -0.11
Bicycle -0.16 2.10 -0.03
Rider -0.34 1.69 -1.39

解读:

  • 所有类别均值接近0朝向分布较为均衡
  • 标准差较大(~1.7-2.1),覆盖各个方向
  • 车辆和骑行者中位数-1.4rad,可能反映主要交通流向

7.2 观测角alpha分布

类别 均值(rad) 标准差 中位数
Vehicle -0.30 1.76 -1.24
Pedestrian -0.10 1.77 -0.30
Bicycle 0.37 1.96 0.44
Rider -0.28 1.81 -1.29

7.3 横向位置lateral_x3d分布

类别 均值(m) 标准差(m) 中位数(m)
Vehicle -2.56 13.21 -2.56
Pedestrian 0.10 12.35 3.11
Bicycle 0.08 11.66 2.80
Rider -0.87 11.47 0.78

分析:

  • 车辆中位数-2.56m,偏向左侧(可能为对向车道)
  • 行人和自行车中位数为正,偏向右侧(路边)
  • 标准差10-13m横向分布较广

8. 车辆面可见性分析

8.1 面可见性统计(仅车辆类别)

面向 可见率 平均分数 中位分数
前面 (front) 93.2% 0.318 0.000
后面 (rear) 90.8% 0.510 0.698
左侧 (left) 68.1% 0.241 0.145
右侧 (right) 68.1% 0.148 0.000

关键发现:

  • 前后面可见率>90%,侧面可见率~68%
  • 后面平均得分最高0.510),可能因尾灯、车牌更易识别
  • 右侧得分最低0.148),可能受摄像头安装位置影响
  • 中位分数显示: 后面>左侧>前面≈右侧

9. 数据质量评估

9.1 Cut类型分布

类型 对象数量 占比
noncut (完整) 20,252,105 91.6%
cut_in (切入) 1,175,262 5.3%
cut_out (切出) 642,885 2.9%

总计: 22,070,252个有3D标注的对象

9.2 数据质量问题

问题类型 数量 占比
缺失3D标注 23,122,502 18.1%
深度≤0无效 19,236 0.02%
深度>200m异常 0 0%
BBox<8px过小 21,474,341 16.8%

质量评估:

  • 优秀: 无超远距离异常值(>200m
  • 良好: 负深度值极少19,236个0.02%
  • ⚠️ 注意: 18.1%对象缺失3D标注主要为辅助类别
  • ⚠️ 注意: 16.8%对象BBox过小<8px可能影响训练

10. 数据集特点总结

10.1 优势

  1. 数据规模大: 260万+图像1.28亿+标注对象
  2. 场景复杂: 平均每图48.5个对象涵盖13个类别
  3. 标注完整: 100%图像有标签,无缺失
  4. 深度覆盖广: 车辆0-120m全范围覆盖
  5. 3D一致性好: 物体尺寸标准差小,标注质量高
  6. 朝向分布均衡: 各个方向角度覆盖完整

10.2 局限性

  1. 3D标注不全: 仅4/13类别有3D标注
  2. 小目标多: 16.8%的BBox<8px可能影响检测精度
  3. 类别不平衡: 车辆占28%,某些类别<1%
  4. 切边对象: 8.2%的对象存在cut_in/cut_out情况

10.3 应用建议

模型训练

  • 多尺度训练: 应对10px-1900px的尺寸变化
  • 深度分段策略:
    • 近距离(<30m): 重点优化精度
    • 中距离(30-80m): 平衡精度与召回
    • 远距离(>80m): 提升召回率
  • 数据增强: 针对小目标(<8px)加强
  • 类别平衡: 对低频类别采用重采样

评估指标

  • 按深度分段评估AP
  • 按对象尺寸分段评估
  • 重点关注30-50m范围性能

特殊处理

  • Cut对象8.2%: 建立专门评估集
  • 遮挡处理: 利用面可见性分数
  • 小目标: 考虑FPN或多尺度融合

11. 数据集扩充建议

基于当前数据集的统计分析,针对模型性能提升和场景覆盖完整性,提出以下数据扩充建议:

11.1 类别均衡优化

🎯 优先级1低频类别数据增强

当前类别分布极不均衡,建议扩充以下低频类别:

类别 当前数量 占比 建议目标 扩充倍数
tl_num (交通灯数字) 696,538 0.5% 2,000,000+ 3x
tl_wick (交通灯灯芯) 3,611,666 2.8% 6,000,000+ 1.7x
tsr (交通标志) 4,957,683 3.9% 8,000,000+ 1.6x
guideboard (指示牌) 6,457,611 5.0% 10,000,000+ 1.5x

扩充策略

  • 专门收集城市路口、高速公路、园区等交通信号设施密集场景
  • 增加夜间、雨天等特殊光照条件下的交通灯数据
  • 补充不同类型交通标志(限速、禁令、警告等)
  • 采集不同语言、格式的指示牌样本

🎯 优先级2次要类别定向采集

类别 当前数量 建议扩充场景
tl_border 5,645,436 复杂路口、多车道场景
roadblock 8,058,184 施工区域、临时路障、交通管制
head 14,610,038 密集人群、学校区域、商圈
wheel 12,895,577 大型车辆(货车、客车)轮胎
plate 9,939,105 不同国家/地区车牌样式

11.2 3D标注扩充计划

🎯 优先级1当前有3D标注类别的深度补充

Vehicle (车辆)

当前问题:
- 超近距离(<5m): 仅占3.6% → 建议扩充到10%
- 超远距离(>80m): 仅占12.3% → 建议特别关注80-120m范围

扩充场景:
✓ 停车场近距离场景1-5m
✓ 高速公路远距离场景80-150m
✓ 大型车辆(货车、客车、工程车)
✓ 特殊车辆(摩托车、三轮车、农用车)

Pedestrian (行人)

当前问题:
- 深度>80m的行人仅69,038个1.7%
- 缺少远距离、小尺寸行人样本

扩充场景:
✓ 远距离行人50-100m
✓ 特殊姿态(蹲、躺、骑)
✓ 不同年龄段(儿童、老人)
✓ 携带大型物品的行人

Bicycle & Rider (自行车与骑行者)

当前问题:
- 深度>50m样本较少bicycle: 8.2%, rider: 24.0%
- Rider的3D标注率82.5%但Bicycle仅59.8%

扩充需求:
✓ 平衡Bicycle和Rider的3D标注率
✓ 增加电动车、滑板车等新型交通工具
✓ 补充远距离骑行样本

🎯 优先级2新类别3D标注添加

建议为以下类别补充3D标注按优先级排序

  1. roadblock (路障) - 8,058,184个对象

    • 重要性:影响路径规划和避障决策
    • 3D信息需求位置、高度、宽度
    • 建议标注率50%以上
  2. guideboard (指示牌) - 6,457,611个对象

    • 重要性:导航和车道保持
    • 3D信息需求位置、朝向、高度
    • 建议标注率30%以上
  3. tsr (交通标志) - 4,957,683个对象

    • 重要性:合规驾驶决策
    • 3D信息需求距离、位置
    • 建议标注率40%以上

11.3 深度分布优化

各类别深度扩充建议

Vehicle:
├─ 0-10m:   12.1% → 目标15% (+77.8万样本)
├─ 10-20m:  15.6% → ✓ 已充足
├─ 20-30m:  14.3% → ✓ 已充足
├─ 30-50m:  23.5% → ✓ 已充足(主要区域)
├─ 50-80m:  22.1% → ✓ 已充足
└─ 80-120m: 12.3% → 目标15% (+63.1万样本)

Pedestrian:
├─ 0-10m:   15.8% → ✓ 已充足
├─ 10-20m:  25.9% → ✓ 已充足(主要区域)
├─ 20-30m:  19.9% → ✓ 已充足
├─ 30-50m:  24.2% → ✓ 已充足
└─ 50-80m:  12.4% → 目标18% (+21.8万样本)
    80-120m: 1.7%  → 目标5%  (+13.1万样本)

Bicycle:
├─ 0-10m:   21.1% → ✓ 已充足
├─ 10-20m:  28.9% → ✓ 已充足(主要区域)
└─ 50-120m:  9.0% → 目标15% (+38.2万样本)

Rider:
├─ 各区域分布相对均衡 ✓
└─ 建议维持当前分布比例

11.4 小目标问题解决方案

当前情况21,474,341个对象16.8%的BBox面积<8px

策略A高分辨率数据采集

  • 当前可能分辨率1920×1080或更低
  • 建议扩充2K (2560×1440) 或 4K (3840×2160)
  • 目标:将<8px占比降至10%以下

策略B近距离场景补充

重点采集场景:
✓ 停车场近距离场景1-5m
✓ 低速城区道路(<40km/h
✓ 拥堵路况(车辆密集,近距离)
✓ 人行道近距离行人

策略C数据增强策略

针对小目标的训练增强
- Copy-Paste小目标增强
- Mosaic数据增强倾斜更多小目标
- 多尺度训练权重调整
- FPN/PANET特征融合优化

11.5 场景标签补充建议

建议添加的场景元数据标签

1. 天气条件 (当前缺失)

weather:
  - sunny: 晴天
  - cloudy: 多云
  - rainy: 雨天 (小雨/中雨/大雨)
  - foggy: 雾天
  - snowy: 雪天
  
优先扩充:
  - 雨天数据建议占比20-30%
  - 雾天数据建议占比5-10%
  - 夜间降雨组合场景

2. 光照条件 (当前缺失)

lighting:
  - daytime: 白天
    - morning: 早晨 (6:00-10:00)
    - noon: 中午 (10:00-16:00)
    - afternoon: 下午 (16:00-19:00)
  - nighttime: 夜间
    - dusk: 黄昏 (19:00-21:00)
    - night: 深夜 (21:00-6:00)
  - tunnel: 隧道
  
优先扩充:
  - 夜间数据建议占比30-40%
  - 黄昏/黎明过渡时段建议占比10%
  - 隧道进出场景建议占比5%

3. 道路类型 (当前缺失)

road_type:
  - highway: 高速公路
  - urban_road: 城市道路
  - suburb_road: 郊区道路
  - parking_lot: 停车场
  - residential: 住宅区
  - industrial: 工业区
  
优先扩充:
  - 停车场场景(近距离、多角度)
  - 住宅区(复杂交通参与者)
  - 高速公路(高速、远距离)

4. 交通密度 (当前缺失)

traffic_density:
  - sparse: 稀疏 (<10 objects/image)
  - medium: 中等 (10-50 objects/image)
  - dense: 密集 (50-100 objects/image)
  - jam: 拥堵 (>100 objects/image)

当前分布:
  - sparse: ~5%分位 (8 objects)
  - medium: 25-75分位 (25-66 objects)
  - dense: 75-95分位 (66-103 objects)
  - jam: >95分位 (>103 objects)

建议:增加极端场景
  - 空旷场景(目标<5
  - 极度拥堵(目标>150

5. 遮挡程度 (当前缺失)

occlusion_level:
  - none: 无遮挡 (0-10%)
  - partial: 部分遮挡 (10-50%)
  - heavy: 严重遮挡 (50-80%)
  - extreme: 极度遮挡 (>80%)

建议采集:
  - 多车并行场景(侧面遮挡)
  - 大车遮挡小车/行人
  - 护栏、植被遮挡
  - 雨刷、车身部分遮挡

6. 特殊场景标签

special_scenarios:
  - construction_zone: 施工区域
  - accident_scene: 事故现场
  - school_zone: 学校区域
  - crosswalk: 人行横道
  - intersection: 十字路口
  - roundabout: 环岛
  - merge_lane: 汇入车道
  - toll_station: 收费站
  
优先扩充:
  - 施工区域(路障、锥桶)
  - 学校区域(儿童、家长、慢速)
  - 复杂路口(多方向、多目标)

11.6 边缘情况与困难样本

Cut对象扩充当前8.2%

当前分布:
- noncut: 91.6% (20,252,105)
- cut_in: 5.3% (1,175,262)
- cut_out: 2.9% (642,885)

建议目标:
- cut_in: 扩充到8-10% (+60万样本)
- cut_out: 扩充到5-6% (+45万样本)

采集重点:
✓ 边缘车辆突然切入
✓ 部分在frame外的行人
✓ 图像边缘的骑行者
✓ 半身出现的大型车辆

困难样本专项采集

1. 遮挡场景

  • 车辆互相遮挡(并排行驶)
  • 大型车辆遮挡后方小车
  • 护栏、树木遮挡
  • 行人/骑行者被车辆遮挡

2. 极端光照

  • 强逆光(太阳直射镜头)
  • 夜间远光灯眩光
  • 隧道进出口光线突变
  • 玻璃反射/水面倒影

3. 相似目标混淆

  • 骑行者 vs 电动车骑手
  • 自行车 vs 摩托车
  • 小客车 vs SUV
  • 行人 vs 路边广告牌人像

4. 特殊姿态与状态

  • 侧翻/事故车辆
  • 蹲坐/倚靠的行人
  • 推行自行车的人
  • 多人拥挤场景

11.7 数据采集优先级矩阵

优先级 扩充内容 预期样本量 预期效果
夜间数据 +80万图像 提升夜间AP 15-20%
雨天/雾天数据 +50万图像 提升恶劣天气鲁棒性
交通灯/标志3D标注 +500万3D标注 提升决策可靠性
远距离样本(>80m) +100万对象 提升远距离召回率
近距离样本(<5m) +80万对象 提升近距离精度
低频类别均衡 +300万对象 平衡各类别性能
遮挡场景 +30万图像 提升遮挡处理能力
边缘Cut场景 +100万对象 提升边缘检测
高分辨率数据 +20万图像 改善小目标检测
特殊场景标签 全量标注 支持场景自适应

11.8 数据采集实施计划

阶段1短期扩充1-3个月

目标:解决最紧迫问题
1. 夜间数据采集80万图像
2. 低频类别定向采集200万对象
3. 远近距离补充100万对象
4. 基础场景标签标注100万图像

预期提升整体mAP +3-5%

阶段2中期优化3-6个月

目标:全面质量提升
1. 恶劣天气数据50万图像
2. 3D标注扩展到新类别500万标注
3. 困难样本专项采集30万图像
4. 完整场景元数据标注(全量)

预期提升整体mAP +5-8%

阶段3长期完善6-12个月

目标:构建世界级数据集
1. 边缘场景覆盖corner cases
2. 多地域、多国家数据
3. 高分辨率升级4K
4. 时序数据采集(视频片段)

预期提升整体mAP +8-12%

11.9 数据质量控制建议

采集质量标准

硬件要求:
  - 分辨率: ≥1920×1080 (建议2K)
  - 帧率: ≥15 FPS
  - 动态范围: HDR优先
  - 镜头畸变: <5%

标注质量标准:
  - BBox IoU一致性: >0.85
  - 3D深度误差: <10%
  - 朝向角误差: <15°
  - 类别标注准确率: >98%

质量验证流程

  1. 自动化检查(异常值、格式错误)
  2. 随机抽样人工复核5-10%
  3. 交叉验证(不同标注员)
  4. 模型验证(训练效果验证)

12. 数据统计来源

  • 分析模式: original
  • 统计时间: 基于完整训练集
  • 3D标注格式: 包含深度、尺寸、朝向、位置等信息
  • 统计方法: 基于百分位数的鲁棒统计

本报告由自动化数据分析工具生成统计数据来源于dataset_profiling_results_original/train/summary.json