ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

OccNet实战:OpenOcc数据集完整解读,17类体素标注与下载配置全攻略

2026/8/18 15:28:40 拓冰建站 浏览量
OccNet实战:OpenOcc数据集完整解读,17类体素标注与下载配置全攻略 OccNet实战OpenOcc数据集完整解读17类体素标注与下载配置全攻略【免费下载链接】OccNet[ICCV 2023] OccNet: Scene as Occupancy项目地址: https://gitcode.com/gh_mirrors/oc/OccNetOccNetScene as Occupancy是ICCV 2023提出的自动驾驶3D占用预测occupancy经典工作而OpenOcc数据集正是基于nuScenes打造的大规模体素标注基准。本文将完整解读OpenOcc数据集的17类体素标注体系、核心参数、下载配置步骤与训练评估方法帮助你快速上手自动驾驶占用预测。OpenOcc数据集是什么从场景即占用说起传统的自动驾驶3D感知以3D目标检测为主用一个个方框3D bounding box表示车辆、行人等前景物体。但物体的几何形状复杂方框无法表达精细轮廓而且道路、绿化、建筑等背景信息完全缺失。OccNet提出了场景即占用Scene as Occupancy的思路把整个3D空间体素化voxelization让模型同时预测每个体素的占用状态与语义类别甚至包括运动物体的速度流flow。这种稠密3D预测方式正是端到端自动驾驶感知的重要基础。上图直观展示了OpenOcc数据集的核心思想上半部分是真实城市道路场景下半部分是对应的3D占用网格可视化不同颜色代表不同的语义类别模型需要从环视相机图像中还原出整个3D空间的占用结构。17类体素标注全解析类别清单与语义细节OpenOcc数据集的最大特点就是17类体素标注。与常见的nuScenes 10类检测目标不同这17个类别既包含动态物体也包含静态背景覆盖了自动驾驶场景的完整语义空间类别ID类别名称中文含义类型0car小汽车动态物体1truck卡车动态物体2trailer挂车动态物体3bus公交车动态物体4construction_vehicle工程车辆动态物体5bicycle自行车动态物体6motorcycle摩托车动态物体7pedestrian行人动态物体8traffic_cone交通锥静态物体9barrier护栏静态物体10driveable_surface可行驶路面背景11other_flat其他平坦区域背景12sidewalk人行道背景13terrain地形背景14manmade人造建筑背景15vegetation植被背景16free空闲背景除了体素语义每个样本还包含occupancy flow占用流标注记录动态体素的运动速度信息。在代码中每帧的标签文件labels.npz同时包含semantics语义和flow速度流两个数组这也是评测中占用分数的重要组成。OpenOcc数据集核心参数速览在动手下载之前先花一分钟了解OpenOcc数据集的规模与体素规格这直接关系到你后续的显存规划与模型设计项目数值训练集帧数train28,130验证集帧数val6,019测试集帧数test6,008环视相机数量6体素尺寸voxel size0.4m感知范围range[-40m, -40m, -1m, 40m, 40m, 5.4m]体素网格尺寸volume size[200, 200, 16]类别数0 - 16共17类可以看到感知范围在水平方向是±40米垂直方向从-1米到5.4米对应的体素网格是 200×200×16总共有64万个体素需要预测这正是3D占用预测任务的稠密挑战所在。OpenOcc数据集下载完整步骤下面进入大家最关心的下载配置环节。OpenOcc数据集基于nuScenes构建官方发布的是openocc_v2.1版本注意不是旧的v2版本官方明确要求删除旧版并下载新版。第一步下载nuScenes基础数据集首先下载nuScenes完整数据集包含samples、sweeps、maps以及v1.0-trainval / v1.0-test元数据并将其放入项目的data/nuscenes目录。第二步下载体素标注与信息文件接着下载两个关键压缩包openocc_v2.1.zip体素占用标注与速度流标注即占用GTinfos.zip数据集元信息文件将这两个压缩包也放入data/nuscenes目录并解压。第三步核对目录结构与配置文件解压完成后data/nuscenes目录应呈现如下结构data/nuscenes ├── maps ├── nuscenes_infos_train_occ.pkl ├── nuscenes_infos_val_occ.pkl ├── nuscenes_infos_test_occ.pkl ├── openocc_v2 ├── samples ├── sweeps ├── v1.0-test └── v1.0-trainval其中openocc_v2存放占用GTnuscenes_infos_{train/val/test}_occ.pkl是数据集的元信息文件其余目录来自官方nuScenes数据集。完整的数据加载逻辑可以查看 nuscenes_occ.py其中load_annotations负责读取这些 pkl 文件。数据集配置与训练命令详解数据准备好之后模型配置已经内置在项目中。官方提供的baseline基于BEVFormer核心配置文件是 bevformer_base_occ.py其中已经定义好了17类占用类别occ_class_names、200×200的BEV网格以及体素高度16pillar_h16等关键参数。最快训练方法数据配置完成后执行如下命令即可开始训练8卡分布式./tools/dist_train.sh projects/configs/bevformer/bevformer_base_occ.py 8最快测试方法训练得到权重后用单卡测试即可在验证集上评估效果export CUDA_VISIBLE_DEVICES0 ./tools/dist_test.sh projects/configs/bevformer/bevformer_base_occ.py work_dirs/bevformer_base_occ/epoch_24.pth 1生成比赛提交文件如果你要参加OpenOcc榜单评测可使用测试配置生成submission.gz提交文件脚本会自动将体素预测投影为激光雷达射线格式./tools/dist_test.sh projects/configs/bevformer/bevformer_base_occ_test.py work_dirs/bevformer_base_occ/epoch_24.pth 8 --format-only --eval-options submission_prefix./occ_submission评估指标解读Ray-based mIoU 与占用分数OpenOcc榜单的排名依据是占用分数Occupancy Score由两部分加权组成Ray-based mIoU模拟激光雷达发射查询射线将射线投影到预测的3D占用体积中比较射线首次碰到的表面类别与深度在{1, 2, 4}米三个深度阈值下计算mIoU并取平均。相关实现位于 ray_metrics.py。AVE绝对速度误差对8类动态物体car、truck、trailer、bus、construction_vehicle、bicycle、motorcycle、pedestrian在2米阈值下计算速度误差。最终计算公式为OccScore mIoU × 0.9 max(1 - mAVE, 0) × 0.1可见体素语义的准确性mIoU是占分大头。常见问题与避坑指南最后分享几个实践中的高频问题版本务必使用openocc_v2.1v2.1修复了占用流相关的若干bug旧版与新版混用会导致评测结果不可比请删除旧版。z轴平移缺失问题官方指出nuScenes在z轴平移上存在误差会导致点云跨帧累积时的错位和地面分层这是数据集的已知问题评测时所有参赛者一视同仁。提交格式要规范提交文件必须是一个包含method、team、authors、results等字段的字典每个样本需要pcd_cls类别、pcd_dist深度、pcd_flow速度三个数组格式转换参考 nuscenes_occ.py 中的format_results方法。数据许可提醒OpenOcc数据集采用CC BY-NC-SA 4.0许可使用前需先在官网注册并同意nuScenes的使用条款。以上就是OccNet项目中OpenOcc数据集的完整解读与下载配置全攻略。从17类体素标注体系、数据集核心参数到三步下载流程、训练测试命令与避坑指南相信你已经可以顺利跑通自动驾驶3D占用预测的完整流程。祝你的模型在OpenOcc榜单上取得好成绩【免费下载链接】OccNet[ICCV 2023] OccNet: Scene as Occupancy项目地址: https://gitcode.com/gh_mirrors/oc/OccNet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考