产品概览
平台将数据资产、标注生产、质量审核、模型训练和模型注册统一在一个系统中。项目负责人负责定义任务类型和标签体系,标注人员在作业中生产标注,算法工程师从已标注任务创建训练并将训练产物注册到模型库。
统一数据资产
项目、任务、作业和数据集形成清晰层级,支持本地文件、共享目录和云存储等数据来源。
2D 与 3D 标注
覆盖分类、检测、分割、关键点、OCR、深度估计、3D 目标和点云等视觉任务。
多模型训练
按项目模型类型筛选可用模型,统一管理训练参数、运行日志、进度、历史和产物。
私有化与可追溯
支持组织角色、资源分配、操作日志和异步请求追踪,数据保留在企业受控环境。
核心概念与角色
资源层级
| 资源 | 用途 | 典型操作 |
|---|---|---|
| 项目 Project | 统一模型类型、标签体系和多批数据 | 创建标签、导入/导出项目数据集、查看训练 |
| 任务 Task | 一批待处理媒体数据及其数据配置 | 上传图片/视频/点云、分配人员、拆分作业 |
| 作业 Job | 实际分配给标注员或审核员的工作单元 | 标注、保存、切换阶段与状态、提交审核 |
| 模型 Model | 管理基础权重或训练产物 | 上传、关联项目/训练、导出、删除 |
| 训练 Training | 基于项目和数据任务执行模型训练 | 开始、暂停、恢复、查看日志、登记模型 |
人员角色
| 角色 | 建议职责 |
|---|---|
| 系统管理员 | 用户、全局配置、模型环境、异步队列和系统日志管理。 |
| 组织 Owner / Maintainer | 管理组织成员、项目资源、云存储和 Webhook。 |
| Supervisor / 项目负责人 | 建立项目、维护标签、分配作业、审核质量和启动训练。 |
| Worker / 标注员 | 完成被分配作业中的对象绘制、属性录入与保存。 |
| 算法工程师 | 维护基础模型,配置训练参数,分析训练结果并登记模型产物。 |
菜单可见不代表一定拥有资源修改权限。项目、任务、作业和模型操作同时受系统角色、组织角色、资源归属和分配关系约束。
快速开始
- 登录平台。打开部署方提供的系统地址,输入账号和密码。首次登录后建议在个人资料中确认姓名、邮箱和默认语言。
- 创建项目。进入“项目”,选择“创建新项目”,填写名称并选择模型类型。模型类型创建后作为项目数据契约使用,在项目详情页只读显示。
- 定义标签。为项目添加类别名称、颜色和属性。系统会按项目模型类型限制可创建的标签形状。
- 创建任务并上传数据。进入“任务”或项目详情页,选择“创建新任务”,关联项目后上传本地媒体或选择共享/云端数据。
- 等待异步处理完成。数据上传后可在“请求”页面查看进度。任务由 排队中 转为可用后再打开作业。
- 标注并保存。打开作业,选择标签和绘制工具,在画布中完成标注;使用顶部保存按钮或快捷键保存。
- 完成作业并训练。将作业状态更新为“已完成”,在“新增训练”中选择项目、数据任务、基础模型与参数,提交后查看训练日志。

项目与标签
创建项目
- 进入顶部导航“项目”,点击“创建新项目”。
- 填写项目名称、简介,选择组织(如适用)。
- 选择模型类型。该类型决定允许的标签形状,也用于训练模型联动筛选。
- 添加至少一个业务标签,例如“划痕”“缺角”“晶圆”。根据需要增加枚举、数字、文本或复选属性。
- 提交后进入项目详情页。后续可编辑名称、简介和标签,但模型类型保持只读。
任务类型与标签形状
| 项目模型类型 | 固定/允许的标签形状 | 典型模型 |
|---|---|---|
| 2D 图像分类 | Tag | MobileNet、ResNet、VGG、ConvNeXt、YOLO 分类 |
| 2D 目标检测 | Rectangle | YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOv9、YOLOv10、YOLOv11、RT-DETR、Faster R-CNN、MMDetection |
| 2D 实例分割 | Mask、Polygon | Mask R-CNN、YOLO Seg、SAM/SAM2 |
| 2D 语义分割 | Mask、Polygon | U-Net、DeepLabV3+、MMSegmentation |
| 2D 关键点检测 | Skeleton | MMPose、YOLO Pose |
| OCR | Rectangle、Polygon | PaddleOCR、MMOCR |
| 深度估计 | Tag | Depth Anything、MiDaS |
| 视觉特征/检索、多模态 | Tag | DINOv2、CLIP、OpenCLIP |
| 3D 目标检测 | Cuboid | MMDetection3D、OpenPCDet、BEVFusion、CenterPoint |
| 3D 点云分割 | Mask、Tag | PointNet/PointNet++ |
| 3D 点云分类 | Tag | PointNet/PointNet++ |
标签名称和模型类型会进入数据集与训练流程。正式生产前先用少量样本验证标签结构、导出格式和训练命令,避免大规模标注后再修改数据契约。
任务与作业
创建任务
任务是一批媒体数据的容器。填写名称并关联项目后,可从本地文件、服务器共享目录或云存储添加数据。提交时平台先接收数据,再由异步队列生成媒体块、预览图和作业。
- 本地上传:适合中小批量图片、视频或压缩包,上传期间不要关闭创建窗口。
- 共享目录:适合服务器已存在的大型数据,避免浏览器重复传输。
- 云存储:适合对象存储中的长期数据资产,需管理员提前配置连接与清单。
页面出现“任务已加入导入队列”表示提交成功,不表示媒体处理已完成。请在“请求”页面确认 import/chunks 请求完成,再打开作业。
分配和跟踪作业
- 打开任务详情,在作业列表中找到待分配记录。
- 设置负责人;如果启用组织协作,负责人必须是组织内有权访问该资源的成员。
- 按流程更新“阶段”和“状态”。阶段用于说明工作环节,状态用于表示当前完成情况。
- 任务列表进度根据已标注帧/图片和作业完成情况统计;保存标注后刷新列表查看最新进度。
| 字段 | 常用值 | 说明 |
|---|---|---|
| 阶段 | 标注、验证、验收 | 表示作业所处业务环节。 |
| 状态 | 新建、进行中、已完成、已拒绝 | 表示该阶段的处理结果。 |
| 负责人 | 用户账号 | 决定谁负责处理该作业。 |


标注工作台
标注页由左侧绘制工具、中间画布、顶部帧与保存控制、右侧对象/标签/组面板组成。画布负责绘制和选择,右侧面板用于定位对象、切换可见性和编辑属性。
基本操作
- 选择标签。先从标签选择器选择业务类别,再选择矩形、多边形、点、折线、椭圆、骨架、画笔/Mask 或 3D Cuboid 工具。
- 绘制对象。矩形按下并拖动;多边形逐点单击;画笔按住左键绘制、释放结束笔划;3D 任务在点云视图中建立长方体。
- 完成当前对象。多边形、折线等多点工具使用界面“完成”按钮或当前快捷键配置中的完成键结束。默认配置通常使用 N。
- 编辑和选择。在画布中单击已有对象,或从右侧对象列表选中;拖动控制点调整形状,在对象详情中设置属性、遮挡和分组。
- 保存标注。点击顶部保存按钮。离开页面前确认保存状态已完成,不要在“正在保存”时关闭标签页。
常用工具
矩形 / 多边形
目标检测使用矩形;实例与语义分割可使用多边形。绘制结束后检查标签、边界和遮挡状态。
画笔 / Mask
用于像素级分割。可调整笔刷大小并使用擦除模式,复杂边缘建议放大后处理。
OpenCV 智能剪刀
在目标边缘放置控制点,算法根据图像边缘生成路径。使用前确保 OpenCV.js 已加载且画布图像可见。
图像外观
网格、亮度、对比度、饱和度和伽马仅改变显示效果,不修改原始图片与导出数据。
质量建议
- 标签边界应紧贴目标,不应包含无关背景;同类目标使用一致的几何标准。
- 分类任务每张图确认 Tag;检测任务检查漏标、错标和重叠框;分割任务检查孔洞和断裂边缘。
- 关键点按骨架顺序标注,被遮挡点按项目规则设置可见性或遮挡属性。
- 完成当前作业后更新状态,由审核人员在验证阶段处理 Issue 和 Comment。
数据导入与导出
导入标注或数据集
- 从项目、任务或作业操作菜单选择“导入数据集/上传标注”。
- 选择与压缩包实际结构一致的格式,如 COCO、YOLO、ImageNet 或 CVAT 格式。
- 选择文件并提交。大型文件可能使用分片上传,随后进入异步导入队列。
- 在“请求”中确认完成;若失败,打开请求详情读取具体错误,不要重复导入同一文件。
向作业导入时,压缩包中的图片集合必须与该作业媒体匹配;面向整个任务或项目的数据集应从对应层级导入。目标不匹配会提示“Imported annotations do not match the target”。
导出标注或数据集
- 从资源操作菜单选择“导出标注”或“导出数据集”。
- 选择格式、文件名以及是否包含图片。
- 提交后在“请求”页面等待 export 请求完成。
- 使用平台提供的下载按钮获取文件。不要直接复制后端本地文件路径。
| 场景 | 建议格式 | 注意事项 |
|---|---|---|
| 目标检测训练 | Ultralytics YOLO、COCO | 检查类别编号、data.yaml 和图片路径。 |
| 图像分类训练 | ImageNet 1.0 | 支持类别目录或 train/val 文本清单结构。 |
| 实例/语义分割 | COCO、Mask/Polygon 对应格式 | 确认 Mask 与 Polygon 转换策略。 |
| 平台备份迁移 | CVAT Backup | 用于完整保留标签、属性和资源配置。 |
模型管理
“模型”页面统一管理基础模型和训练产物。模型记录包含名称、文件格式、视觉任务类型、模型家族、模型文件、关联项目、训练 ID、Runner、运行环境和下载状态。
添加模型
- 进入“模型”,点击添加。
- 先选择视觉任务类型,再选择与该类型联动的模型家族。
- 填写模型名称,选择文件格式(例如 PT、ONNX、TRT、PTH、BIN)。
- 上传模型文件;训练产物可选择关联项目和训练历史。
- 无关联项目的官方或通用权重可标记为基础模型。
模型目录与能力
平台目录覆盖 YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOv9、YOLOv10、YOLOv11、RT-DETR、OpenMMLab、PaddleOCR/MMOCR、SAM/SAM2、DINOv2、CLIP/OpenCLIP、Depth Anything、MiDaS、OpenPCDet 和 PointNet 等系列。模型是否可用于当前项目由以下条件共同决定:
- 模型的任务类型与项目模型类型匹配。
- 基础权重已下载或已上传。
- 对应 Runner 和依赖环境处于可用状态。
- 当前模型已实现真实训练命令,而非仅提供 Smoke 链路验证。
“已下载”只代表权重文件存在;“可训练”还要求源码、Python 环境、数据格式适配和 Runner 全部可用。请以模型卡片中的训练支持与环境状态为准。

模型训练
创建训练任务
- 选择项目。项目模型类型只读显示;数据集任务下拉仅显示所选项目内的任务。
- 选择数据任务。选中具体任务后设置训练集、验证集和测试集比例,三者总和应为 100%。
- 选择基础模型。列表只显示与项目模型类型匹配且可用的模型。选择已有基础权重可缩短收敛时间。
- 设置公共参数。填写训练名称、Epochs、Batch Size、图像尺寸和设备。CPU 使用 cpu,单卡通常使用 0。
- 设置高级参数。不同 Runner 显示不同参数,例如 weights、optimizer、lr0、patience、workers、cache 和 amp。
- 提交并监控。提交后任务自动进入训练队列。打开训练详情页查看参数、数据集数量、进度和实时日志。

状态与操作
| 状态 | 含义 | 可用操作 |
|---|---|---|
| 新建 | 训练记录已创建,尚未进入执行。 | 开始、删除 |
| 排队中 | 已提交到 train 队列,等待 Worker。 | 查看日志、取消 |
| 训练中 | Runner 正在执行并更新轮次进度。 | 暂停、查看日志 |
| 已暂停 | 训练进程已停止,保留可用 checkpoint。 | 恢复、删除 |
| 已完成 | 训练成功,产物和指标已登记。 | 查看结果、添加到模型、删除 |
| 失败 | 命令、数据、依赖或资源发生错误。 | 查看日志、修复后重试、删除 |
训练结果与模型登记
训练详情页显示总数据量、训练/验证/测试数量、轮次进度、运行日志、配置文件 HTTP 地址和评价结果。训练完成后,从训练历史选择“添加到模型”,平台会预填模型名称、类型、模型家族、项目和训练 ID;确认文件格式后提交即可进入模型库。

质量、请求与日志
质量控制
从项目或任务操作菜单进入质量控制,配置验证帧、目标指标阈值、重叠率、关键点相似度和属性比较规则。
Issue 与 Comment
审核人员可在标注页对问题区域创建 Issue,并通过评论说明修正要求;标注员修改后关闭问题。
请求中心
统一查看导入、导出、数据块、质量报告、训练和自动标注等异步任务的排队、执行、完成或失败状态。
系统日志
管理员可按用户、时间、范围和来源查询事件,查看负载详情并导出 CSV,用于审计与故障定位。

异步请求处理原则
- 提交导入、导出或训练后,先在“请求”中找到对应记录。
- 若长期停留在排队中,联系管理员检查对应 Worker 队列是否启动。
- 若状态失败,优先阅读请求错误详情和训练日志,再决定是否重试。
- 不要连续重复点击提交;重复请求会增加磁盘、Redis 和 Worker 负载。
用户、组织与云存储
用户和组织
系统管理员在“用户”页面管理账号。需要团队隔离时创建组织,并为成员分配 Owner、Maintainer、Supervisor 或 Worker 角色。项目、任务和云存储可归属组织,组织上下文会影响资源列表和接口权限。
云存储
- 进入“云存储”,选择创建。
- 选择 S3、Azure Blob 或 Google Cloud 等提供商,填写显示名称、桶/容器和认证参数。
- 按需配置 Endpoint、区域、前缀和 Manifest。
- 保存后先执行连接测试,再在创建任务时选择该存储。
生产环境优先使用最小权限的服务账号或访问密钥。不要在项目简介、任务名称、日志截图或导出文件名中暴露密钥。
常见故障排查
任务上传后一直停留在队列中
先到“请求”查看 import/chunks 状态。若一直排队,通常是异步 Worker 未启动或未监听对应队列;若失败,检查磁盘空间、上传文件结构和错误详情。
作业打开后图片不显示或数据接口返回 500
确认任务数据处理已完成,再检查作业 data/meta、preview 和 chunk 请求。管理员应同时检查媒体文件是否存在、缓存目录权限、Redis 状态和后端日志。
标注完成后无法保存
确认所用形状符合项目模型类型,标签仍然存在且当前用户拥有作业权限。查看 annotations PATCH 请求的响应详情;不要刷新页面,先保留当前页面并联系管理员查看服务端日志。
智能剪刀点击后无路径或提示画布忙
退出其他绘制/缩放交互,确认图片已显示并重新选择 OpenCV 智能剪刀。若 OpenCV.js 未加载或背景画布元素缺失,刷新页面后重试并检查浏览器控制台。
导出成功但下载提示未认证或网络错误
必须从已登录的平台页面使用下载按钮,不要在新窗口直接打开未携带凭据的后端本地地址。确认导出请求完成且下载 URL 使用当前前端代理域名。
训练一直排队或进度不变化
检查 train Worker、Runner 环境和日志是否持续输出 epoch。进度依赖模型 Runner 解析轮次日志;没有真实 epoch 输出的 Smoke 任务仅用于链路验证。
模型显示已下载但开始训练失败
权重存在不等于环境可训练。继续检查模型源码目录、独立虚拟环境、Python 依赖、数据集适配和 Runner 配置;错误详情通常会给出缺少的模块或配置键。
删除项目、任务或模型返回 500
资源可能仍被作业、训练历史、模型记录或其他关联数据引用。先停止相关异步任务并按“训练历史/作业 → 任务 → 项目”的依赖顺序清理;管理员应根据 request_id 查询后端 IntegrityError 详情。