news 2026/9/10 15:37:36

如何用CVAT做数据标注:从部署到导出的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用CVAT做数据标注:从部署到导出的完整指南

如何用CVAT做数据标注:从部署到导出的完整指南

【免费下载链接】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)就是为这件事而生的开源标注平台——它把"建任务、导入数据、画标注、质检、导出训练格式"串成一条完整的流水线,支持多人协作,还能接入你自己的检测或分割模型来预生成标注。

下面按一条真实业务流走一遍:先把服务跑起来,完成第一个标注任务,再按你的数据类型选功能,最后讲清楚质检标准和导出格式怎么选。

在自己机器上跑起CVAT

环境要求与最小化部署

环境要求只有一行清单:Docker Engine + Docker Compose,8GB 以上内存(建议 16GB),50GB 磁盘。默认部署不需要数据库和外部依赖,PostgreSQL、Redis 都包含在 Compose 栈里。

git clone https://gitcode.com/GitHub_Trending/cvat/cvat && cd cvat docker compose up -d docker exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser'

第一条命令拉取代码(详见仓库 README.md),第二条启动全部容器,第三条创建管理员账号。等 1~2 分钟后,浏览器打开http://localhost:8080,用刚创建的用户登录。如果你的部署环境需要绑定特定 IP 或域名,在启动前设置CVAT_HOST环境变量即可,路由会自动指向它。

判断服务是否就绪

首页能正常显示登录框即服务就绪。后台容器包括 server、UI、多个 worker 和调度器,首次启动拉取镜像较慢,属正常现象;日志中 worker 全部显示 RUNNING 后再开始上传大文件。

走通第一个标注任务

创建任务并定义标签

登录后进入 Tasks 页,点击 "Create a new task"。创建页分三步:

  1. Basic configuration:填任务名,选它所属的 Project(可先建一个空项目),用 Add label 定义标签,如carperson
  2. 标签属性:给标签加属性(如occlusion的 0/25/50/100),标注时每个对象都会带上这些字段,导出后直接可用。
  3. Select files:支持本机上传、挂载的共享目录、远程 URL 和云存储(S3/Azure)四种来源,图片、视频、压缩包都接受。

完成一轮标注并保存

提交后 CVAT 按帧数把任务拆成若干 Job,进入第一个 Job 开始标注:

  • 左侧工具栏选择标注类型:矩形框、多边形、折线、关键点、立方体等,对应不同任务需求。
  • 右键画布可切换标签和颜色,右侧面板可编辑对象的属性、score 和所属 track ID。
  • 逐帧标注完点 Save 提交,进度自动记录在 Job 上;下一张/上一张帧用快捷键 N/P 切换,比点按钮快得多。

一个任务的完整业务流就是:建任务 → 定标签 → 导入数据 → 逐帧/逐图标注 → 保存提交 → 导出。走通这一遍后,后续所有场景差异只是"换一种数据类型"和"加一层质检"。

按场景选能力

静态图像批量标注

图像任务的技巧在"复制"上:框完一个对象后,复制该 shape 到相邻帧或相邻图像,微调位置即可。CVAT 的 shape 支持"复制到所有帧",适合目标几乎不动的序列图。属性配置放在标签上(而不是每个对象手填),批量效率差异明显。

视频任务:关键帧 + 插值 + 跟踪

视频是 CVAT 的主场,三层机制叠加使用:

  • 关键帧标注:只在全局关键帧(Global keyframe)上画标注,不用逐帧画。
  • 插值(Interpolation):在两个关键帧之间,CVAT 按几何关系自动生成中间帧的标注位置,画完首尾两帧后中间几十帧自动补全。
  • 跟踪器:对连续运动的目标,可在 shape 上用 MIL 等内置跟踪器把标注"跑"过一段帧序列,减少手工拖拽。

3D 点云任务

自动驾驶、机器人场景用点云任务:导入 PCD 文件或带多相机图像的点云包,画布提供 Top/Side/Front 多视角联动,标注对象是 3D 立方体(cuboid),可拖动调整长宽高和朝向。仓库内置的 KITTI、Velodyne 点云导出格式就是为这类场景准备的。

用模型预生成标注

CVAT 的自动标注走"接入你自己的模型"路线:启动 serverless 组件(Compose 栈附带的 serverless/ 目录提供了 SAM、YOLOv7、RetinaNet、HRNet 姿态估计等预置函数模板),部署后在创建任务页选择模型,提交时系统对全部帧跑一遍推理,标注以"待确认"状态落画布,人工只做修正。对大规模数据集,这一步通常能省掉一半以上的手动框选。

多人协作与分工

团队场景用 Project + Organization:任务拆成 Job 后指派给不同标注员,各自独立提交;用 Comments 和 Issues 对具体 shape 或帧发起讨论、报 bug。对需要高一致性的数据,开启 Consensus 模式:同一 Job 生成多份副本由不同人标注,最后按投票规则合并,减少单人偏差。

质检与数据导出

怎么算合格

项目级 Quality control 面板允许设置验收规则:选定目标度量(如 Accuracy)和阈值(如 70 分),系统按帧比较不同标注员的结果,低于阈值的 Job 会被标出。它支持勾选是否比较属性、是否要求空帧也必须标注,还可以按 Job 过滤范围。配合前文的 Issues 机制,返工范围可以精确到单个对象。

导出什么格式、给谁用

在 Job 或 Task 页选 "Export annotations",CVAT 提供 20+ 种格式,按下游框架选:

下游用途推荐格式
通用检测训练(PyTorch 生态)COCO (JSON)
YOLO 系列训练YOLO (TXT)、Ultralytics YOLO (TXT/YAML)
经典检测基线Pascal VOC (XML)
自动驾驶点云/标定KITTI、Velodyne 点云
多目标跟踪MOT、MOTS
语义/实例分割Mask 格式(含类别掩码与实例掩码)
其他平台互通Datumaro、LabelMe

格式决定字段结构(比如 COCO 带完整图像尺寸与 category 映射,YOLO 只有归一化坐标),选格式前先确认训练脚本读什么,比标注完再转换省事。导出是异步任务,完成后页面提供下载链接。

三个高频问题

问:打开 8080 端口一直转圈或 502?容器还没起完。用docker compose ps确认 server、ui 都是 Running 再刷新;远程访问时记得先设置CVAT_HOST,否则路由只认 localhost。

问:自动标注页面没有模型可选?社区版默认不部署任何模型。需要先加入 serverless 组件启动栈,再用 nuctl 把某个模型函数部署上去,模型才会出现在下拉框里。不需要自动标注的团队可以完全跳过这一步。

问:机器内存吃紧、上传视频卡住?8GB 是底线。降低内存占用的直接手段:不装 serverless 组件、减少同时上传的大视频、把视频任务帧率/分辨率调低。worker 数量可按需缩减。

小结

回看整条业务流,要点是:

  • Docker Compose 一条命令起服务,8080 端口 + superuser 登录
  • 任务 = 标签定义 + 数据源 + 拆分 Job,走通一次即可复用
  • 视频用"关键帧 + 插值 + 跟踪",3D 用多视角 cuboid,规模大再接入模型预标注
  • 验收靠 Quality control 的指标阈值 + Consensus 合并,导出格式对齐下游框架

数据标注没有捷径,但工具链选对之后,剩下的工作量是线性可预期的。CVAT 把这条链路里的每一步都落在了本地环境里,数据不出内网,格式直接对接训练侧——这正是自托管开源版相对托管服务最实际的价值。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 15:37:00

Tracy 性能分析器跨平台部署:三大系统一次跑通

Tracy 性能分析器跨平台部署:三大系统一次跑通 【免费下载链接】tracy Frame profiler 项目地址: https://gitcode.com/GitHub_Trending/tr/tracy Tracy 是纳秒级精度的实时帧分析器,追踪 CPU/GPU 执行、内存分配与锁竞争。本教程给出 Windows、L…

作者头像 李华
网站建设 2026/9/10 15:36:18

AI 创作歌曲网站整理

deepseek: 写歌词 [final vocal mix] makebestmusic: https://makebestmusic.com/ 制作歌曲 分离工程文件splitter:https://vocalremover.org/splitter-ai 分轨:https://emastered.com/ https://viggle.ai/home https://suno…

作者头像 李华
网站建设 2026/9/10 15:34:54

昇腾CANN/GE:获取隐藏输入地址类型API

GetHiddenInputSubType 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Ten…

作者头像 李华
网站建设 2026/9/10 15:34:39

CANN/ge字符串列表转换API

ConvertToListAscendString 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、…

作者头像 李华
网站建设 2026/9/10 15:34:27

CANN/ge节点构建器类

CompliantNodeBuilder 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Tens…

作者头像 李华