如何用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 的自动标注功能把这件事交给预训练模型:选一个检测器、对齐标签、点一下 Annotate,模型先画好初稿,你只负责检查和修正。这条流程跑通后,人工标注的时间主要花在质量把关上,而不是从零开始画框。
⚡ 效果速览
自动标注的本质是"模型出初稿、人工做终审"。模型在后台对每一帧做推理,结果直接落进任务里,进度条实时可见,随时可以中止。
它能覆盖的场景包括:
- 检测类模型:YOLO v7、Mask RCNN、RetinaNet、Faster R-CNN、人脸检测,输出框或多边形
- 交互式模型:SAM、Inside-Outside Guidance(IOG),点几下就能生成精细掩码
- 视频跟踪模型:TransT、SAM 2 Tracker,关键帧标一次,后续帧自动跟
- 数据格式:单张图片、视频文件、含多张图片的压缩包都支持上传
模型来源有三类:实例内置的 Nuclio 函数、Hugging Face / Roboflow 等第三方模型、以及自建的 native 函数。详见 官方文档:AI models。
开工前自查三件事
- 实例里得有模型。至少要有一个 detector 或 reidentifier 类型的模型可用。社区版里通常是管理员部署的 Nuclio 函数,源码仓库的 serverless/ 目录提供了 YOLO、Faster R-CNN 等预定义函数可直接部署。
- 任务已建好且素材已上传。数据可以来自本地电脑、挂载的文件共享、远程地址或云存储。
- 标签体系想清楚了。每个模型只认识自己训练数据集里的类别,比如模型只会输出
car,如果你的任务里叫vehicle,需要在标注前做好对应关系,否则结果落不进来。
数据准备:先建好任务,再定好标签
进入创建任务页面后,在 Labels 区域切换到Constructor模式,在 "Select a model to pick labels" 下拉框里选一个模型(例如 Human pose estimation),对应的标签(body、feet、face、hands)会自动填充进来,点Done确认。这样标签从一开始就和模型的输出能力对齐,后面匹配省事很多。
标签确认后,在文件选择区用 My computer 拖入图片、视频或压缩包,其余配置用默认即可,提交创建任务。
触发自动标注:从任务列表进入
打开顶部菜单的Tasks,找到目标任务,点任务卡片右侧的Actions下拉菜单,选择Automatic annotation。
弹出 Automatic annotation 对话框后,在Model下拉框里选一个模型,界面会立即列出该模型支持的全部标签。
标签对齐:把模型的类别映射到任务标签
对话框中部是 "Setup mapping between labels and attributes" 区域。左侧是模型的输出类别,右侧是任务的标签,逐行做对应:
- 模型标签
person→ 任务标签person,直接选同名即可 - 模型标签
car→ 任务标签vehicle,在右侧下拉框里手动指定 - 每一行右侧的垃圾桶图标用于删除多余映射行,问号图标用于新增一行
有一个硬性规则:如果任务里存在某个标签,而模型根本不会输出这个类别,这一行是配不上的。所以映射前先确认模型的类别清单。
运行监控与结果落位
参数确认后,点右下角的Annotate按钮。任务卡片上会出现进度条,显示整体推进情况,随时可以点取消中止。模型返回的结果会按全图坐标写回任务,直接打开任意一帧就能看到生成的框或多边形,逐个检查、移动、改标签、删除误检即可。
对于 2D 检测模型,对话框里还有Region of interest四个输入框(x、y、width、height)。填入数值后,CVAT 只把该区域裁出来发给模型,结果再按原始坐标贴回全图。适合只关心画面某一局部、或者想降低推理量的场景。注意两点:该功能不支持跟踪类和 ReID 模型;做全任务标注时,所有帧的分辨率必须一致,且区域要落在每一帧内。
参数与配置参考
| 参数 | 推荐取值 | 适用场景 |
|---|---|---|
| Model | 按数据选类别覆盖度高的模型,如通用场景选 YOLO v7 | 所有自动标注任务的第一步选择 |
| Threshold(置信度阈值) | 留空用模型默认值;探索阶段取 0.3–0.5,质检阶段取 0.7–0.9 | 阈值越高误检越少、漏检越多,先低后高分两轮跑 |
| Convert masks to polygons | 掩码类模型(如 Mask RCNN、SAM)建议开启 | 下游训练需要多边形而非像素级掩码时 |
| Clean old annotations | 重跑同一任务时开启,首次运行保持关闭 | 避免上一轮结果与新结果叠加重复 |
| Region of interest | 填 x / y / width / height 四个像素值 | 目标集中在画面局部、或想省推理开销时 |
常见坑位
标签配不上,映射行是灰的。现象是对话框里某个任务标签无法选中对应关系。原因是模型训练时没见过这个类别。解法只有两条:换任务里的标签名称去贴近模型输出,或者换一个类别覆盖更全的模型。别在映射上花时间硬凑。
结果框明显偏多且杂。通常是阈值留得太低。先用模型默认阈值跑一遍,误检多就把 Threshold 调到 0.7 以上重跑,记得开启 Clean old annotations,否则两轮结果会叠在一起。
ROI 填了却报错或不生效。全任务标注要求所有帧分辨率一致,区域必须能装进每一帧;跟踪类和 ReID 模型也不支持 ROI。视频分辨率混用时,先统一再跑。
模型列表里找不到想要的模型。社区版能看到的模型取决于管理员实际部署了哪些 Nuclio 函数,找不到就找管理员对照 serverless/ 目录里的预定义函数部署,或在 Hugging Face / Roboflow 注册第三方模型(后两者适用于支持第三方函数的版本)。
收尾
自动标注的价值不在"全自动",而在把机械的第一遍画框压缩到几分钟,把你的精力留给判断。一个务实的起步路径:先用默认阈值和低门槛跑通全流程,确认标签映射没有错,再针对误检调高阈值重跑一遍。两轮下来,初稿质量基本够训练数据预处理用了。更多细节可查阅 自动标注官方文档。
【免费下载链接】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),仅供参考