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)要解决的问题。它是一款免费开源的计算机视觉标注平台,基于 Docker 部署在你的机器上,覆盖"导入数据、定义标签、绘制标注、AI 辅助、多人校审、导出 COCO/YOLO 等 20 余种格式"的完整链路。下面按一个真实标注任务的工作流,带你把第一份数据集做出来。
三步跑起来:完成 CVAT 部署
环境要求三样东西:Docker Engine、Docker Compose 和 Git。建议内存 16GB 以上(最低 8GB),磁盘预留 50GB 放镜像和数据。
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/cvat/cvat cd cvat docker compose up -d- 首次启动要拉取一批镜像,等几分钟。用
docker compose ps确认所有容器进入运行状态。 - 创建管理员账号并登录验证:
docker exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser'然后在浏览器打开http://localhost:8080,用刚创建的账号登录。看到 Projects 页面即部署成功。默认用 Chrome 或 Edge 访问,Safari 不受支持。
创建第一个标注项目并导入数据
登录后按"项目 → 任务 → 作业"三层组织数据。项目是容器,任务承载一组媒体文件,作业是标注员实际领取的最小单元。
- 建项目:首页点击 Create new project,输入名称(如"街景车辆检测"),项目只负责聚合任务,本身不存图像。
- 定义标签与属性:新建任务时先填 Labels。点 Add label 逐个添加类别(car、person、bicycle……)。对需要细分的类别展开 Attribute 配置,例如给 car 加"遮挡程度"下拉属性、给所有类别加"是否截断"开关。这一步决定了后面导出结果里包含哪些字段,务必和模型需求对齐。
- 导入数据:在 Select files 区域选择来源——本机上传(支持图像压缩包、视频、点云文件)、远程文件服务或对象存储(S3、Azure Blob 等,先在 Cloud Storage 页面配置凭证)。提交后 CVAT 自动把媒体切分为若干作业。
标签和属性定义好后就不能再改,所以第一遍任务建议先用小批量数据(几十张)试跑一遍流程,确认标签体系没问题再批量导入。
按任务类型选标注工具
进入作业后,左侧工具栏按"你要输出什么"选择工具:
- 矩形框(Rectangle):目标检测任务的首选。画快、信息够用,适合车辆、行人等轮廓近似矩形的目标。
- 多边形(Polygon)/折线(Polyline):需要轮廓级精度时用多边形;道路、车道线这类开放形状用折线。
- 骨架/关键点(Skeleton):人体姿态、面部特征。先在项目设置里定义骨骼点(如肩、肘、腕),画点时按拓扑自动连线。
- 掩码类(Brush/Polygon Fill):实例分割任务。画笔逐像素涂抹,或用多边形填充,导出时转为掩码。
- 3D 立方体(Cuboid):点云与多视角图像场景,对应"视频与 3D 点云"一节。
常用快捷键(默认值,可在界面设置中自定义):
| 操作 | 快捷键 |
|---|---|
| 下一帧 | N |
| 上一帧 | P |
| 撤销 | Ctrl+Z |
| 重做 | Ctrl+Shift+Z |
| 保存标注 | Ctrl+S |
| 取消当前工具/取消选中 | Esc |
两个提效习惯:连续多帧重复选同一类别时,选中对象后复制到其他帧再微调;标注偏离边界时开自动贴边,省去手动对齐。
模型先标、人来校:AI 辅助标注流程
AI 辅助标注的正确用法是"模型出初稿,人做修订",而不是直接采用模型输出。操作分三步:
- 启用模型服务。社区版自动标注基于 serverless 组件,叠加启动:
docker compose -f docker-compose.yml -f components/serverless/docker-compose.serverless.yml up -d- 部署模型函数。用
nuctl部署你需要的预置模型,仓库 serverless/ 目录下按框架(ONNX、OpenVINO、PyTorch、TensorFlow)提供了检测、分割、姿态、跟踪类函数,例如 YOLO v7 检测器、SAM 分割交互器、HRNet 全身姿态估计。 - 在界面触发标注。任务页打开 Auto Annotation,选择模型与要标注的标签范围,对选定作业/帧区间执行,结果以草稿形式落到画布上,你只负责移动边角、删误检、补漏检。
适用边界要心里有数:预置模型在 COCO 类常见类别(人、车、常见物体)上效果可靠,换个领域(工业缺陷、医学影像)误检率会明显上升,此时建议部署自己微调的模型,而不是硬用预置模型。模型结果永远需要经过人工确认再标记为已完成。
视频标注与 3D 点云标注
视频标注不需要逐帧画。做法是:
- 关键帧标注:只在目标进入、消失或形态变化显著的帧上画标注,中间帧交给插值——CVAT 按关键帧自动生成轨迹,你对自动生成的框做小幅修正即可。
- 目标跟踪:给目标建立 Track 后,配合跟踪类模型(如 TransT)可自动外推目标在后续帧的位置,你再校正漂移。
- 长视频自动切成多段作业,多人可并行处理不同时间段。
3D 点云标注面向自动驾驶等场景。导入 Velodyne 点云及对应多视角图像后,画布同时呈现 Top、Side、Front 三个正交视图:在任一视图绘制 3D 边界框(Cuboid),其他视图同步联动,可单独调节尺寸、朝向和外观(按标签/实例着色、透明度、边框高亮)。
多人协作与标注质量控制
团队使用时建议这样组织:
- 组织与角色:创建 Organization 并把成员拉入,用 Viewer、Editor、Admin 等角色控制权限;管理员负责项目与任务,标注员只领作业。
- 任务分配:把作业指派给具体标注员(或开放自选领取),进度在任务页实时可见,谁做了多少、卡在哪个作业一目了然。
- 一致性标准:在项目里统一标签定义与属性规则,用带注释的示例帧作为"标注样例";标注员对模糊案例可用评论和 Issue 功能提出疑问,而不是各自猜测。
- 校审:用 Viewer 角色或评审流程复查已完成作业;对关键类别可启用 Consensus(多人对同批数据独立标注后比对合并),差异大的样本回到标注员处重标。服务端还提供 Ground Truth 与 Honeypot 校验(通过 API 混入已知标准答案的测试题),量化标注员准确率。
导出交付:COCO、YOLO、VOC 怎么选
标注完成、状态标记为 Done 后,在任务或作业上触发数据集导出。CVAT 支持 20 余种格式,实现见 cvat/apps/dataset_manager/formats/。按下游框架选型:
- COCO(JSON):检测和实例分割的通用格式,字段最全(含类别、属性、多目标实例),大多数深度学习框架都能读,拿不准时选它。
- YOLO / Ultralytics YOLO(TXT):每目标一行的轻量文本格式,适合实时检测模型的训练流程。
- PASCAL VOC(XML):经典检测格式,老项目兼容性好。
- KITTI、MOTS、CAMVID、Cityscapes、Open Images等:对应自动驾驶、多目标跟踪、特定数据集的约定格式,按你的 benchmark 要求选择。
导出时注意两个选项:是否包含原始媒体文件(只导标注还是打包整套数据集),以及掩码的编码方式(掩码类任务可选 PNG 或 RLE)。建议第一次导出用一个小任务验证文件结构与字段名,再执行全量导出。
踩坑速查:部署与使用常见问题
| 问题 | 解法 |
|---|---|
| 8080 端口被占用 | 修改 docker-compose.yml 中8080:8080的宿主机端口为空闲端口 |
| 内存不足、容器反复重启 | 升到 16GB 以上内存;用docker compose ps定位挂掉的容器 |
| 拉镜像慢或失败 | 为 Docker 配置镜像加速源后重新docker compose up -d |
| 首次启动长时间无响应 | 属正常现象,首次需拉取并初始化整套服务,耐心等待几分钟 |
| 界面操作异常 | 换用 Chrome 或 Edge,Safari 不受支持 |
| 登录后无法操作 | 确认使用的是createsuperuser创建的管理员账号,且cvat_server容器状态正常 |
下一步
先按本文流程把一个小数据集完整跑一遍:部署 → 建项目 → 标注 → 导出 COCO,熟悉每步的入口。之后再把数据量放大、把 serverless 模型接进来提效,团队协作时补上角色分配与校审环节。遇到具体报错,优先看容器日志和 components/analytics/ 下的监控面板,大多数部署问题都能在那里定位到。
【免费下载链接】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),仅供参考