CVAT 全景解析:平台形态、数据格式支持、标注工具体系与 AI 自动标注架构
2026/9/14 11:24:59 网站建设 项目流程

CVAT 全景解析:平台形态、数据格式支持、标注工具体系与 AI 自动标注架构

【免费下载链接】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 官方文档中的 Overview 章节为主体,系统梳理 CVAT 作为计算机视觉数据标注平台的三大核心能力:三种产品形态与定位、对图像/视频/3D 数据及主流标注格式的支持、手动标注的模式与几何工具体系,以及基于无服务器架构的 AI 自动标注方案。读完后,你可以基于当前仓库中的格式注册器、MIME 类型表、serverless 模型函数与部署脚本,快速验证这些能力在源码层面的落地方式,并据此选择合适的部署与集成路径。

产品与服务的分层设计

CVAT 定位为面向计算机视觉应用的高质量视觉数据集管理平台,提供图像、视频与 3D 标注工具、内建质量保障(QA)、自动化能力与安全的团队协作机制。官方文档将其划分为三个版本与一项标注服务:

产品/服务部署方式核心特征
CVAT Community自托管(本地或自有云)免费版本,包含完整标注工具集、导入/导出格式与核心工作流,适合有基础设施管理能力的技术团队
CVAT Online托管云自动更新与维护、托管基础设施,提供 Free / Solo / Team 多档订阅,面向快速上手与协作场景,内置灵活存储
CVAT Enterprise托管或私有云/本地部署面向大型组织与受监管环境,提供 SSO/LDAP、审计日志、专属支持与定制 SLA 等高级能力
Labeling as a Service由 CVAT 团队提供专家标注服务,跨项目规模化标注,内置 QA 与报表看板,适合一次性标注项目与常态化工作流

对于开发者而言,本仓库对应的就是 CVAT Community 代码库:所有标注引擎、格式转换、AI 集成与 REST API 均以开源形式提供,Enterprise 与 Online 版本在此代码库之上叠加商业功能与托管服务。

支持的数据类型与格式

Overview 文档声明的输入数据能力如下:

  • 图像:所有 Python Pillow 库支持的格式,包括JPEGPNGBMPGIFPPMTIFF
  • 视频:ffmpeg 支持的所有格式,包括MP4AVIMOV
  • 3D.pcd.bin点云数据。

源码层面的格式证据

仓库内有一份直接参与上传解析的 MIME/扩展名映射表 media.mimetypes,它由系统 mime 数据库生成,可以验证上述声明的实际覆盖面:

  • 视频段涵盖mp4movavimkvwebmm2tsmpegflv等(第 3–64 行),与“ffmpeg 支持的所有格式”的表述一致;
  • 图像段涵盖jpeg/jpgpngbmpgifppmtif/tiffwebp以及多种 RAW 格式(第 66–200 行);
  • 3D 段显式登记了image/x-point-cloud-data pcd(第 109 行)与image/x.kitti-velodyne bin(第 110 行),对应文档中.pcd.bin的 3D 输入能力;
  • 归档段还支持ziprar7ztar.*等压缩包(第 201–224 行),这是批量上传数据集时的实际入口。

导入/导出格式注册器

除原始媒体输入外,CVAT 的标注数据还可通过一套格式注册体系在不同标准之间转换。核心实现位于 registry.py:

  • ExporterImporter两个基类定义了格式的可调用接口(第 21–28 行);
  • exporter()/importer()装饰器将具体格式以DISPLAY_NAME为键注册进全局字典EXPORT_FORMATS/IMPORT_FORMATS(第 81–123 行),并支持按 2D/3D 维度(DimensionType)区分格式适用性;
  • 文件末尾的导入块(第 134–156 行)一次性挂载了仓库实际提供的全部格式模块。

对照 formats 目录 中的实现文件,仓库内置的格式覆盖包括:

类别格式实现
CVAT 原生cvat.py(CVAT 1.1 XML,分图像/视频两种)
检测/目标识别coco.pyyolo.pypascal_voc.pyopenimages.pyimagenet.pylabelme.py
语义分割mask.pycamvid.pycityscapes.py
3D 点云pointcloud.pyvelodynepoint.pykitti.py
视频多目标跟踪mot.pymots.py
行人再识别/人脸market1501.pyvggface2.pywiderface.pylfw.py
文本识别icdar.py
音频audio_tsv.py
通用框架datumaro.py(对接 Datumaro 生态)

注册器中还有一个值得注意的默认行为:format_for()函数(第 71–78 行)显示,当未显式指定导出格式时,图像任务默认回落到 “CVAT for images 1.1”,视频任务回落到 “CVAT for video 1.1”,即 CVAT 原生 XML 始终是最稳的交换格式。

手动标注体系

CVAT 的手动标注体系由两个正交维度组成:标注模式决定工作区的可用操作集,几何工具决定对象的空间表示。两者共同约束编辑器的行为、图形创建方式与可用的几何类型。

标注模式

模式行为
Standard(标准模式)完整访问所有标注工具与对象编辑能力
Attribute annotation mode(属性标注模式)仅编辑对象属性(颜色、尺寸等),不改动几何形状
Single shape mode(单形状模式)绘制一个形状后自动退出绘制状态,适合逐帧快速框选
Tag annotation mode(标签模式)为帧添加帧级标签,不绘制形状
Review mode(审核模式)审阅并校验已有标注,用于 QA 流程

从源码结构看,这些模式在前端有对应的状态管理实现:cvat-ui/src/reducers/ 目录下除通用的 annotation-reducer.ts 外,还单独维护了 review-reducer.ts 用于审核流,与文档中的 Review mode 声明相印证。

Shape 与 Track:几何对象的时间维度

在帧上绘制对象时,可以选择对象在时间轴上的行为:

  • Shape(形状):仅在当前帧创建单个形状;
  • Track(轨迹):将多个帧上的形状链接为同一对象,形成跨帧序列,支持插值(interpolation)与外推,是视频标注的核心抽象。

绘制方式上,CVAT 同时支持“由两个对角点定义”与“通过四个角点放置”两种方式以获得更细的控制。这一抽象在 cvat-core/src/annotations-objects/ 中体现得非常直接:每种几何类型都有一对*-shape.ts*-track.ts文件,例如rectangle-shape.ts/rectangle-track.tscuboid-shape.ts/cuboid-track.tsskeleton-shape.ts/skeleton-track.tspolygon-shape.ts/polygon-track.ts等,统一继承自shape.tstrack.ts基类。

形状工具与适用场景

文档给出的形状类型与用途对照表如下(继承自 Overview 原文):

形状适用场景
Rectangles(矩形)简单目标检测,对象呈盒状,如建筑物中的窗户
Polygons(多边形)图像中复杂形状,如地图地理特征、精细产品轮廓
Polylines(折线)线性对象,如道路、路径或姿态估计中的肢体
Ellipses(椭圆)圆形/椭圆形对象的分割掩码,如盘子、球、眼睛
Cuboids(长方体)3D 分割掩码,捕获对象体积与位姿,用于自动驾驶与机器人
Skeletons(骨骼)关节结构的分割掩码,用于人体姿态估计、动画与运动分析
Brush Tool(刷笔工具)自由形态像素级分割掩码,如医学影像
Tags(标签)图像/视频分类任务,如场景或主题识别

2D 标注绘制引擎位于 cvat-canvas/ 包(drawHandler.tseditHandler.tsmasksHandler.ts等),3D 标注则由独立的 cvat-canvas3d/ 包承担(canvas3d.tscuboid.ts等),两者分别对应表格中 2D 形状与 Cuboids 的实现载体。

自动化标注:AI Agent 与无服务器模型函数

CVAT 的自动标注通过一组 AI 工具实现,用于在图像和视频上自动检测、分割或跟踪对象。这些工具分为三类来源:

  1. 内置模型:如 SAM/SAM2 交互分割模型;
  2. 原生集成平台的预训练模型:如 Hugging Face、Roboflow(CVAT Online 能力);
  3. 自部署的自定义或第三方模型(即 CVAT AI Agent 机制):涵盖 YOLO 等框架,以 Nuclio 函数形式运行。

官方内置模型清单

Overview 文档列出了完整的内置模型支持矩阵:

算法类别框架CPUGPU
Segment AnythingInteractor(交互器)PyTorch支持支持
Faster RCNN (inception_resnet_v2)Detector(检测器)OpenVINO支持
Mask RCNN (inception_resnet_v2)DetectorOpenVINO支持
YOLO v3DetectorOpenVINO支持
YOLO v7DetectorONNX支持支持
Object ReidentificationReID(再识别)OpenVINO支持
Semantic Segmentation for ADASDetectorOpenVINO支持
Text Detection v4DetectorOpenVINO支持
SiamMaskTracker(跟踪器)PyTorch支持支持
TransTTrackerPyTorch支持支持
Inside-Outside GuidanceInteractorPyTorch支持
Faster RCNN (inception_v2_coco)DetectorTensorFlow支持支持
RetinaNet (r101)DetectorPyTorch支持支持
Face Detection (0205)DetectorOpenVINO支持

仓库中的模型函数布局

当前仓库的 serverless/ 目录承载了其中一部分模型的 Nuclio 函数实现,目录结构按“框架/作者/模型”组织:

模型仓库路径
SAM (ViT-H)serverless/pytorch/facebookresearch/sam/nuclio/
TransTserverless/pytorch/dschoerk/transt/nuclio/
RetinaNet r101serverless/pytorch/facebookresearch/detectron2/retinanet_r101/nuclio/
IOG (Inside-Outside Guidance)serverless/pytorch/shiyinzhang/iog/nuclio/
HRNet32 (mmpose)serverless/pytorch/mmpose/hrnet32/nuclio/
YOLOv7serverless/onnx/WongKinYiu/yolov7/nuclio/
Faster RCNN (inception_v2_coco)serverless/tensorflow/faster_rcnn_inception_v2_coco/nuclio/
Mask RCNN / Face Detection (OpenVINO)serverless/openvino/omz/

以 SAM 为例,其函数声明文件 function.yaml 展示了 AI Agent 的元数据约定:metadata.annotations中的type: interactor声明模型类别,spec字段(min_pos_points: 0startswith_box_optional: true)描述前端交互约束(最少正/负点数、是否允许从框开始),help_message则直接渲染为界面提示。构建部分通过 Nuclio 的directives在安装 PyTorch、segment-anything 源码并下载sam_vit_h_4b8939.pth权重,HTTP 触发器将请求体上限设为 32MB。

部署流程:deploy 脚本

仓库提供了 deploy_cpu.sh 与 deploy_gpu.sh 两个部署脚本。CPU 脚本的执行逻辑(deploy_cpu.sh)为:

  1. 构建 OpenVINO 基础镜像cvat.openvino.base
  2. nuctl create project cvat --platform local在本地平台创建 Nuclio 项目;
  3. 以 glob 遍历**/function.yaml,对含Dockerfile的函数目录先构建专属基础镜像;
  4. 逐个执行nuctl deploy,注入CVAT_FUNCTIONS_REDIS_HOST=cvat_redis_ondiskCVAT_FUNCTIONS_REDIS_PORT=6666环境变量(模型函数通过 Redis 与后端交换任务状态),并将函数挂载进cvat_cvat容器网络。

这套“脚本 + Nuclio + Redis 状态通道”的组合,就是 CVAT 将任意第三方模型接入为 AI Agent 的标准路径:为模型编写main.py(HTTP handler)与model_handler.py,描述好 function.yaml,再经由脚本部署到与 CVAT 后端同网络内的 Nuclio 实例即可。

开发者生态与关键资源

Overview 文档的 “Useful links” 一节指引了从安装到开发接口的完整资源链。结合当前仓库,这些能力的落地位置如下:

资源说明仓库位置
自托管安装Community 版本地/自有云部署(含 AWS 部署指南)根目录 Dockerfile、docker-compose.yml、docker-compose.dev.yml
数据集管理框架基于 Datumaro 的构建、转换与分析 CLI,是构建/转换/分析数据集的核心工具cvat/apps/dataset_manager/ 及 utils/dataset_manifest/
Server REST API客户端(CLI、浏览器、脚本)通过 HTTP 与 CVAT 交互的完整接口契约cvat/schema.yml(OpenAPI 规范)、cvat/urls.py
Python SDK提供服务器交互与数据校验、序列化等附加功能的 Python 库cvat-sdk/(含 cvat_sdk/core/client.py 及 examples/ 实战脚本)
命令行工具管理 CVAT 任务的轻量 CLI,具备成长为完整管理工具的潜力cvat-cli/(入口 cvat_cli/main.py)
XML 标注格式CVAT 原生标注数据的格式规范,理解数据结构与兼容性的基础cvat/apps/dataset_manager/formats/cvat.py
测试体系REST API、SDK、CLI 的端到端验证tests/python/(含 rest_api/、sdk/、cli/)

SDK 一栏特别值得一提的是 examples/ 目录下的脚本集合,覆盖了创建项目、导入/导出标注、自动标注、Webhook 注册与资源监控等典型工作流,是理解 REST API 实际用法的最佳入口。

生态集成

CVAT 作为全球化标注平台,文档列出了与其生态紧密关联的三方服务:

服务可用范围集成说明
Human ProtocolOnline / Community / Enterprise在 Human Protocol 框架内集成 CVAT,增强其数据标注能力
FiftyOneOnline / Community / Enterprise开源数据集管理与模型分析工具,与 CVAT 深度集成以强化标注能力与标签精修
Hugging Face / RoboflowOnline可将 Hugging Face 与 Roboflow 的模型添加到 CVAT Online 中以增强计算机视觉任务

许可证信息

CVAT 采用多许可证并存的策略,Overview 文档给出的完整清单为:

许可证类型适用范围说明
MIT LicenseCommunity、Enterprise宽松自由软件许可证,允许广泛使用、修改与分发(见根目录 LICENSE 及源码文件头部的SPDX-License-Identifier: MIT声明)
LGPL License (FFmpeg)Online、Community、Enterprise内嵌 FFmpeg 项目的 LGPL 组件;用户应自行确认 FFmpeg 的使用是否触发额外许可义务,CVAT.ai 公司不提供该许可且不对相关许可费用负责
Commercial LicenseEnterpriseEnterprise 商用方案适用单独的商务许可证,面向企业与客户组织
Terms of Use全部产品规定使用条款与保密信息处理框架
Privacy Policy全部产品规定访问与使用服务过程中的信息收集、保护与披露规则

联系与支持渠道

咨询类型适用对象渠道
Commercial InquiriesOnline、Enterprise、Labeling Services咨询 Enterprise 报价、Online Team 订阅或订购标注服务
General Inquiries全部产品与服务洽谈合作、联合营销或投资机会
CVAT Online Customer SupportOnline(Pro 与 Team 计划)产品支持、账单问题与功能反馈
CVAT Community Customer SupportCommunity在项目代码库的 Issues 渠道报告缺陷或提交功能请求

小结

Overview 文档勾勒出的 CVAT 能力版图,在当前仓库中均有对应的源码落点:media.mimetypes与格式注册器证实了从图像、视频、点云到 COCO/YOLO/PASCAL VOC/KITTI 等标准格式的完整 I/O 能力;cvat-corecvat-canvas/cvat-canvas3d的 shape/track 双轨抽象支撑了全部八类标注工具;serverless/下的 Nuclio 函数与部署脚本则展示了将 SAM、YOLOv7、TransT 等模型接入为 AI Agent 的工程路径。沿着这些入口深入,即可把 Overview 中的产品描述转化为可直接操作、可验证的技术方案。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询