CVAT 3D 点云标注:从 LiDAR 数据到自动驾驶数据集的完整链路
【免费下载链接】cvatComputer Vision Annotation Tool (CVAT) is a leading platform for building high-quality visual datasets for vision AI. It offers open-source, cloud, and enterprise products, as well as labeling services, for image, video, and 3D annotation with AI-assisted labeling, quality assurance, team collaboration, analytics, and developer APIs.项目地址: https://gitcode.com/GitHub_Trending/cvat/cvat
CVAT(Computer Vision Annotation Tool)的 3D 标注能力,让你在浏览器里完成 LiDAR 点云标注的完整链路:服务端自动识别 .pcd 点云与 Velodyne .bin 数据并统一转换,cvat-canvas3d/ 前端画布提供透视加三个正投影的同步编辑,cuboid 标注配合 Track 插值,把原始点云变成 3D 检测与跟踪数据集。值得关注的是,它把点云标注纳入了和 2D 任务相同的项目、质检与团队协作体系,而不是一个孤立的桌面工具。
🧭 快速认知:3D 标注链路如何组成
核心组成可以拆成四层:
- cvat-canvas3d/:TypeScript 编写的 3D 画布模块,负责点云渲染与 cuboid 绘制编辑,对外暴露 perspective、top、side、front 四个视图节点。
- cvat/apps/engine/media_extractors.py:后端媒体抽取器,上传时自动检测数据维度,并把 Velodyne 的 .bin 点云转换成 .pcd 统一处理。
- 上下文图像机制:数据集中带同步相机图时,透视窗口可并排显示 context image,帮助判断点云里的物体类别。
- cvat-sdk/:Python SDK,覆盖建任务、传数据、导入导出标注的全流程,支持脚本化批处理。
技术栈上,前端是 TypeScript 加 WebGL 渲染,多视图状态由同一个 3D 模型对象维护,任一视图的编辑都会同步到其他视图。
🚀 上手路径:从点云归档到第一个 3D 标注
第一步,按目录结构组织点云归档。创建 3D 任务时,归档必须是下面四种结构之一,且 2D 与 3D 数据不能混在同一个任务里:
| 数据格式 | 目录结构 | 适用说明 |
|---|---|---|
| Velodyne | velodyne_points/data/.bin + data/.png | 原始 LiDAR 二进制数据,服务端自动转 pcd |
| 3D pointcloud | pointcloud/.pcd + related_images/ | 点云与上下文图像分开组织 |
| 3D Option 1 | data/image.pcd + image.png | 点云与图像同名配对 |
| 3D Option 2 | data/image_1/image_1.pcd + context_*.png | 点云同目录放多张上下文图 |
第二步,创建任务。在 Tasks 页面点 +,上传归档,Dimension 选择 3D;CVAT 会根据点云文件自动确认数据维度。
第三步,画第一个 cuboid。在 Objects 面板选择 Draw new cuboid,选标签,选 Shape 或 Track;光标会跟随一个立方体,放到场景中后,用投影窗口微调位置和尺寸,拖动中点旋转朝向。
第四步,熟悉导航。Shift+方向键旋转相机,Alt+J/L、Alt+U/O 平移,Alt+K/I 缩放;投影窗口支持直接保存或拷贝当前视图截图。
第五步(可选),本地部署。克隆仓库后,用仓库根目录的 docker-compose.yml 通过 docker compose 拉起服务端:
git clone https://gitcode.com/GitHub_Trending/cvat/cvat cd cvat docker compose up -d如果想跳过 UI 用脚本建任务,SDK 的调用骨架如下:
from cvat_sdk import make_client client = make_client(host="https://your-cvat-server", token="<token>") task = client.tasks.create(name="urban_lidar_01") task.upload_data("scenes.zip")🔍 能力拆解:多视角同步标注与 cuboid 工具集
四视图画布:透视为主,投影微调
- 透视(Perspective)是主工作窗口,提供点云场景的 3D 空间感知,也是放置、旋转 cuboid 的主要操作面。
- Top / Side / Front 三个投影绑定在当前选中的 cuboid 上:选中后投影以该物体为中心,把它呈现为一个 2D 矩形,此时在投影里拖拽就等于在 3D 空间里精确调整。
- 投影只显示选中的那个物体,在遮挡严重的城市街景里,这一点比纯 3D 拖拽更容易对齐。
Shape 与 Track:单帧标注与序列跟踪
| 模式 | 工作方式 | 适用场景 |
|---|---|---|
| Shape | 每帧独立标注,无连续性 | 物体只出现一帧、或需要逐帧校验位置 |
| Track | 基于插值预测后续帧位置,唯一 ID 贯穿序列 | 同一物体跨帧跟踪,减少重复劳动 |
Track 模式下,你在第 1 帧放好 cuboid,前进几帧后它会出现在对应位置(插值结果),只需微调,不用每帧重画。对一条行车轨迹来说,工作量差距是明显的。
cuboid 还提供两个细节能力:一是 objects 侧边栏的 details 面板可以手动输入 X(长)、Y(宽)、Z(高)三个尺寸数值,适合车辆这类尺寸已知的物体;二是外观选项里可以开关 cuboid 朝向箭头(X 红、Y 绿、Z 蓝),俯仰角对齐时更直观。另外,cuboid 支持 Shift+N 剪切、Ctrl+C/V 复制粘贴,粘贴时需要双击把物体放到 3D 空间里,批量摆放重复物体时会用到。
LiDAR 加相机多模态联动
当归档里带同步相机图(related_images 目录或点云同目录的图像)时,透视窗口会自动带出 context image。点云擅长几何与位置,但类别区分(车、人、骑行者)有时看不清,标注员对照相机帧判断类别,这是 CVAT 提升点云标注准确率的关键机制。
⚙️ 质量与效率:从个人速度到团队产出
效率侧有三个主要抓手:
- 分段并行:高级配置里的 Segment size 可以把大集拆成多个段落,分配成不同 job 给多名标注员,同一任务上并发标注。
- 插值减负:Track 模式标注关键帧,中间帧由插值补齐,单个物体的手工标注帧数大幅下降。
- 在线处理:任务创建时开启 Use cache 后,数据 on-the-fly 处理并缓存,减少任务创建前的等待时间。
质量侧,cvat/apps/quality_control/ 提供了系统化的质检机制:
| 机制 | 作用 |
|---|---|
| 一致性检查 | 比较同一物体不同帧标注的几何差异,IoU 不达标即标记 |
| 属性比对 | 校验同一物体跨帧的属性值是否一致 |
| 质量报告 | 生成质检报告,定位需要返工的帧与物体,可导出复查 |
建议的流程是:先在项目里配好质量需求(consistency、属性比对规则),标注员按 job 分段标注,质检报告出来后再定向返修,而不是全量人工复审。批量场景下,cvat-sdk 与 cvat-cli 都支持脚本化导入导出,质检后的修正标注可以走同一套 API 回写。
🏁 落地参考:自动驾驶 LiDAR 标注场景
典型配置思路:把街景按片段组织归档,每段一个 .pcd 配同步相机帧,Dimension 建为 3D;标签体系定义 car、pedestrian、cyclist 等类别,并为标签配置 occluded、truncated 属性;用 Track 模式完成整条轨迹跟踪,投影窗口负责精细对齐,质量报告负责收尾抽查。
几个实际限制要提前知道:
- 2D 与 3D 数据不能混在同一任务。想同时标注相机图,走 context image 机制,而不是再建一个 2D 任务去对齐。
- .bin 仅支持 Velodyne 目录结构,服务端会将其转为 .pcd;其他原始格式建议先转成 .pcd 再上传。
- 点云渲染和传输受浏览器与网络带宽约束,超大场景建议用分段把单任务规模压下来。
- 团队协作依赖 job 分配与质检流程,权限、任务分配建议在标注员入场前配好,避免事后返工。
🔭 延伸与展望
- 自动化预标注:仓库提供 components/serverless/ 的 serverless 部署配置,把预训练模型挂成服务后,可先跑预标注再人工修正。
- 数据集对接:数据集导出支持多种格式,dataset_manifest.md 中专门描述了 3D 点云数据,可直接对接下游训练管线。
- 开发者接口:REST API 加 cvat-sdk,标注平台可以嵌进自己的 CI/数据处理流水线。
CVAT 的 3D 标注不只是一个浏览器里的 3D 工具,而是把点云数据、渲染、质检、协作放进同一条流水线:数据层统一 pcd 与 bin,渲染层是四视图同步画布,质量层是 quality_control,出口是 SDK 与多格式导出。如果团队正在启动自动驾驶数据标注,建议先用小规模场景跑通"归档 → 3D 任务 → Track 标注 → 导出"四步,验证格式和标签体系,再放大分段规模并接入质检流程。
【免费下载链接】cvatComputer Vision Annotation Tool (CVAT) is a leading platform for building high-quality visual datasets for vision AI. It offers open-source, cloud, and enterprise products, as well as labeling services, for image, video, and 3D annotation with AI-assisted labeling, quality assurance, team collaboration, analytics, and developer APIs.项目地址: https://gitcode.com/GitHub_Trending/cvat/cvat
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考