适用平台:Tiger AI / CV_PythonVue_TigerPro
入口:AI 智能识别 → 模型训练 → 数据标注 → 标注工具
本文说明三款外接辅助工具:X-AnyLabeling、CVAT、Roboflow Annotate的配置与逐步操作,并举例到「能训练」为止。
配套文档:数据标注功能说明(含内置 Web 画框、抽帧、构建训练集)。
文章目录
- 0. 先搞懂:四套工具各自干什么
- 1. 开始前必做(所有工具通用)
- 1.1 登录与权限
- 1.2 准备一个数据集(举例:停车场车辆)
- 步骤 A:新建数据集
- 步骤 B:准备图片
- 步骤 C:进入标注工具页
- 2. 配置密钥(CVAT / Roboflow 必做)
- 3. X-AnyLabeling(本机桌面)详细步骤
- 3.1 这是什么
- 3.2 本机安装(首次)
- 3.3 在平台上的操作(举例 `parking-demo`)
- ① 导出标注包
- ② 在 X-AnyLabeling 里标注
- ③ 导入回平台
- ④ 回灌到训练目录
- 3.4 举例时间线(X-AnyLabeling)
- 4. CVAT(网页 + API)详细步骤
- 4.1 这是什么
- 4.2 准备账号
- 4.3 在平台上的操作(举例)
- ① 确认已配置
- ② 推送到 CVAT
- ③ 在 CVAT 网页里标注
- ④ 拉取标注
- ⑤ 回灌
- 4.4 举例时间线(CVAT)
- 5. Roboflow Annotate(云端 + API)详细步骤
- 5.1 这是什么
- 5.2 准备账号
- 5.3 在平台上的操作(举例)
- ① 推送到 Roboflow
- ② 在 Roboflow 网页标注
- ③ 拉取版本
- ④ 回灌 → 构建 → 训练
- 5.4 举例时间线(Roboflow)
- 6. 三种工具怎么选(小白决策)
- 7. 完整举例:从 0 到第一次训练(推荐路径)
- 8. 目录对照(方便排查)
- 9. 常见问题(FAQ)
- Q1:点 CVAT/Roboflow 显示未配置?
- Q1b:CVAT 推送 401 Unauthorized?
- Q1d:CVAT 拉取 410 Gone?
- Q1c:Roboflow 推送 422(name is invalid)?
- Q2:推送成功但网页打不开?
- Q3:拉取后「工作区已标」有数,构建仍像没标签?
- Q4:回灌合并和覆盖有什么区别?
- Q5:X-AnyLabeling 类别顺序乱了?
- Q6:Roboflow 拉取报错找不到版本?
- Q7:能否只标一部分图?
- Q8:import 格式数据集?
- 10. 按钮速查表
- 11. 相关链接
0. 先搞懂:四套工具各自干什么
平台同时提供4 套互不影响的标注方式:
| 工具 | 在哪标 | 标签先写到哪里 | 适合谁 |
|---|---|---|---|
| 内置 Web 画框 | 浏览器里拖框 | raw/labels(直接可用) | 少量图、快速试标 |
| X-AnyLabeling | 本机桌面软件 | tools/xanylabeling/labels | 要 AI 辅助(SAM 等)、本机数据不出网 |
| CVAT | 网页(云端或自建) | tools/cvat/labels | 多人协作、视频/审核 |
| Roboflow | 云端网页 | tools/roboflow/labels | 云端 Assist、版本管理 |
重要概念:回灌
- 外接三工具标完后,标签先在各自「工作区」,不会自动进入训练目录。
- 需要在平台点「回灌 raw(合并/覆盖)」,才会写到
raw/labels。 - 之后才能在「数据集管理」里点「构建」→「训练」。
抽帧/上传图片 → 用某一套工具标注 →(外接工具需回灌)→ 构建 → 训练1. 开始前必做(所有工具通用)
1.1 登录与权限
- 启动后端与前端(开发环境常见:后端
5001,前端npm run dev)。 - 使用有模型训练权限的账号登录。
- 确认菜单能打开:模型训练。
1.2 准备一个数据集(举例:停车场车辆)
目标:标注两类目标car、license_plate,约 50~200 张图。
步骤 A:新建数据集
- 打开模型训练 → 数据集管理。
- 点击新建数据集。
- 填写示例:
| 字段 | 示例值 | 说明 |
|---|---|---|
| 名称 | parking-demo | 随便起,好记即可 |
| 格式 | yolo_flat或auto | 推荐扁平 YOLO,方便在线/外接标注 |
| 类别名称 | 每行一个:car/license_plate | 必须填,否则无法标注 |
| 划分比例 | 0.8 | 构建时 80% 训练 / 20% 验证 |
- 保存。
步骤 B:准备图片
任选其一:
- 抽帧:表格行点抽帧→ 选一段监控视频 → 间隔例如
10、最多100张 → 开始抽帧。 - 上传:点上传,选择多张
.jpg/.png。
抽帧成功后,平台通常会自动跳到数据标注。
步骤 C:进入标注工具页
- 模型训练 → 数据标注 → 标注工具。
- 顶部选择数据集选中
parking-demo。 - 点刷新状态,确认显示图片数量。
到这里,三套外接工具的「原料」(图片)都准备好了。
2. 配置密钥(CVAT / Roboflow 必做)
编辑文件:backend/.env(不要提交到 Git)。
# Roboflow:服务端用 Private Key ROBOFLOW_API_KEY=你的私钥 ROBOFLOW_PUBLIC_API_KEY=你的公钥(可选) ROBOFLOW_WORKSPACE=你的工作区slug(可选,不清楚可留空) # CVAT:云端一般为 https://app.cvat.ai ;自建则改成你的地址 CVAT_URL=https://app.cvat.ai CVAT_TOKEN=你的Personal_Access_Token改完后必须重启后端,配置才生效。
如何判断配置成功:
- 打开标注工具,切换到CVAT/Roboflow。
- 卡片右上角标签显示「已配置」(绿色)即表示就绪。
- 若显示「未配置」,检查
.env拼写与是否重启。
X-AnyLabeling不需要API Key,只需本机安装软件。
3. X-AnyLabeling(本机桌面)详细步骤
3.1 这是什么
X-AnyLabeling 是装在电脑上的标注软件,支持 SAM、YOLO 等 AI 辅助。适合:数据敏感、不想上云、需要智能分割/检测辅助。
3.2 本机安装(首次)
- 打开项目主页,按官方文档安装(Windows 可用安装包或 pip)。
- 能正常打开软件即可,不必和平台装在同一台服务器上(标注员电脑也可)。
3.3 在平台上的操作(举例parking-demo)
① 导出标注包
- 标注工具→ 选数据集
parking-demo。 - 切换到X-AnyLabeling。
- 点击导出标注包。
- 浏览器会下载类似
xany_dataset_12.zip的文件。
解压后大致结构:
images/ ← 用软件打开这个目录 classes.txt ← 类别列表(与平台一致) labels/ ← 若之前有续标标签可能存在 README.txt② 在 X-AnyLabeling 里标注
- 启动 X-AnyLabeling。
- 打开目录:解压后的
images/。 - 按
classes.txt配置类别(顺序必须与平台一致,例如先car后license_plate)。 - 逐张画框或使用 AI 辅助生成框,并检查类别。
- 导出为 YOLO 格式标签(得到一批与图片同名的
.txt,或含labels/的 zip)。
小白提示:
- 框尽量贴合目标,不要留过大空白。
- 一张图可以有多个框(多辆车、多个牌)。
- 类别 ID 从 0 开始:
0=car,1=license_plate(取决于你在平台填的顺序)。
③ 导入回平台
- 回到平台X-AnyLabeling面板。
- 点导入 YOLO 标签,选择:
- 含
.txt的zip,或 - 单个
.txt(多文件可多次导入)。
- 含
- 成功后,面板上「工作区已标」数量会增加。
此时标签只在tools/xanylabeling/labels,还不能直接训练。
④ 回灌到训练目录
- 点回灌 raw(合并):同名标签覆盖到
raw/labels,其它图保留。 - 或回灌 raw(覆盖):用本工作区标签整体替换
raw/labels(慎用)。 - 回到数据集管理→构建→ 再去建训练任务。
3.4 举例时间线(X-AnyLabeling)
| 时间 | 动作 | 结果 |
|---|---|---|
| 10:00 | 抽帧 80 张 | raw/images有图 |
| 10:05 | 导出标注包 | 得到 zip |
| 10:10~11:00 | X-AnyLabeling 标完 | 本机有 YOLO txt |
| 11:05 | 导入标签 | 工作区已标 80 |
| 11:06 | 回灌(合并) | raw/labels就绪 |
| 11:10 | 构建 + 训练 | 开始训 YOLO |
4. CVAT(网页 + API)详细步骤
4.1 这是什么
CVAT 是专业在线标注平台。平台通过 API:推送图片 → 你在 CVAT 网页里标 → 再拉回 YOLO 标签。
4.2 准备账号
- 云端:注册 app.cvat.ai,创建 Personal Access Token,写入
.env的CVAT_TOKEN,CVAT_URL=https://app.cvat.ai。 - 自建:Docker 部署后把
CVAT_URL改成例如http://192.168.1.10:8080。
4.3 在平台上的操作(举例)
① 确认已配置
标注工具 → CVAT,右上角应为已配置。
② 推送到 CVAT
- 选中数据集(如
parking-demo)。 - 点推送到 CVAT。
- 等待完成(图片多时可能要几分钟)。
- 成功后会出现「打开 CVAT 任务」链接——点开。
平台会大致创建:
- 项目名类似:
tiger-parking-demo - 任务名带时间戳
③ 在 CVAT 网页里标注
- 浏览器打开任务页。
- 按 CVAT 界面画矩形框,选择标签
car/license_plate(与平台类别一致)。 - 可用快捷键与跟踪辅助(视频场景更有优势)。
- 全部标完后保存(CVAT 通常自动保存,以界面提示为准)。
小白提示:
- 第一次建议只推 20~30 张练手,熟悉后再推全量。
- 不要在平台「再推一次」覆盖混乱前,先确认旧任务是否还要保留。
④ 拉取标注
- 回到平台CVAT面板。
- 点拉取标注。
- 成功后「工作区已标」增加(写入
tools/cvat/labels)。
若 API 导出异常,可用手动导入 YOLO:在 CVAT 里导出 YOLO 1.1 zip,再在平台点「手动导入 YOLO」。
⑤ 回灌
点回灌 raw(合并)或覆盖,再去构建 / 训练。
4.4 举例时间线(CVAT)
| 步骤 | 平台按钮 | CVAT 网页 |
|---|---|---|
| 1 | 推送到 CVAT | — |
| 2 | 打开 CVAT 任务 | 画框、存档 |
| 3 | 拉取标注 | — |
| 4 | 回灌 raw | — |
| 5 | 数据集「构建」 | — |
5. Roboflow Annotate(云端 + API)详细步骤
5.1 这是什么
Roboflow 提供云端标注与数据集版本。平台:上传图片 → 你在 Roboflow 网页标 → 生成版本后拉取 YOLO。
5.2 准备账号
- 打开 Roboflow API Settings。
- 将Private API Key写入
ROBOFLOW_API_KEY。 - (可选)填写
ROBOFLOW_WORKSPACE为工作区 slug。 - 重启后端。
5.3 在平台上的操作(举例)
① 推送到 Roboflow
- 标注工具 → Roboflow,确认已配置。
- 选数据集
parking-demo。 - 点推送到 Roboflow。
- 完成后点打开 Roboflow 标注(若有链接)。
项目名通常类似:tiger-parking-demo。
② 在 Roboflow 网页标注
- 在 Roboflow 中为图片画框、设类别。
- 可使用其 Assist / 自动标注加速。
- 标注到一定数量后,在 Roboflow 中Generate / 创建 Dataset Version(生成带版本号的数据集,如 Version 1、2)。
小白提示:
- 必须先有版本,平台「拉取版本」才有东西可下。
- 版本号在面板里用数字填写(如
1),与 Roboflow 网页上的 Version 一致。
③ 拉取版本
- 在平台 Roboflow 面板,版本号输入框填
1(或你的版本)。 - 点拉取版本。
- 标签进入
tools/roboflow/labels。
也可手动导入 YOLO(从 Roboflow 下载的 YOLO zip)。
④ 回灌 → 构建 → 训练
与前面相同:回灌 raw → 数据集构建 → 新建训练任务。
5.4 举例时间线(Roboflow)
推送 100 张 → 网页标完 → Generate Version 1 → 平台填版本 1「拉取版本」→「回灌 raw(合并)」→「构建」→ 训练 YOLO26n6. 三种工具怎么选(小白决策)
| 你的情况 | 建议 |
|---|---|
| 就想先标 20 张试试 | 内置 Web 画框 |
| 电脑能装软件,要 AI 点选分割/检测辅助 | X-AnyLabeling |
| 多人一起标、要审核、偏视频 | CVAT |
| 接受上云、要云端 Assist 和版本管理 | Roboflow |
| 数据不能出内网 | Web或X-AnyLabeling或自建 CVAT(不要用 Roboflow 云) |
可以混用,但注意:
- 各工具工作区独立;最终以回灌进
raw/labels的那份为准去构建。 - 不要同一批图在三个工具各标一遍又乱回灌,容易覆盖搞混。建议一个数据集主用一套外接工具。
7. 完整举例:从 0 到第一次训练(推荐路径)
场景:小区门禁视频,标注车辆与车牌,先用 X-AnyLabeling。
- 新建数据集
gate-v1,类别:car、plate。 - 抽帧:间隔 15,最多 120 张。
- 标注工具 → X-AnyLabeling →导出标注包。
- 本机 X-AnyLabeling 打开
images/,用 AI 辅助标完,导出 YOLO。 - 平台导入 YOLO 标签→回灌 raw(合并)。
- 数据集管理 →质量检测(可选)看漏标。
- 构建。
- 训练任务:基座选
yolo26n或yolo26s,开训。 - 训练完成后部署到模型管理,再去业务页试用。
若改用 CVAT:第 3~5 步换成「推送 → 网页标 → 拉取 → 回灌」。
若改用 Roboflow:第 3~5 步换成「推送 → 网页标并生成版本 → 拉取版本 → 回灌」。
8. 目录对照(方便排查)
每个数据集在服务器上类似:
backend/uploads/datasets/<数据集ID>/ ├── raw/ │ ├── images/ ← 所有工具共用的图片 │ └── labels/ ← 训练真正读取的标签(Web 直接写;外接需回灌) └── tools/ ├── xanylabeling/labels/ ← X-AnyLabeling 独立工作区 ├── cvat/labels/ ← CVAT 独立工作区 └── roboflow/labels/ ← Roboflow 独立工作区9. 常见问题(FAQ)
Q1:点 CVAT/Roboflow 显示未配置?
检查backend/.env是否填写、是否重启后端。CVAT 还需正确的CVAT_URL。
Q1b:CVAT 推送 401 Unauthorized?
云端 Personal Access Token 必须用Bearer鉴权(平台已自动识别xxxx.yyyy格式)。若仍 401:到 CVAT 重新生成 PAT,更新CVAT_TOKEN后重启后端。旧版自建 CVAT 登录 Token 可设CVAT_AUTH_SCHEME=token。
Q1d:CVAT 拉取 410 Gone?
云端已废弃同步下载GET .../dataset?action=download。平台现使用异步流程:POST .../dataset/export→ 轮询requests→ 下载result_url。请重启后端后再点「拉取标注」。若提示任务不存在,请重新「推送到 CVAT」或确认 CVAT 网页中任务仍在。
Q1c:Roboflow 推送 422(name is invalid)?
Roboflow 项目名不能含中文。平台会自动生成 ASCII 名(如tiger-ds12-ds-xxxxxxxx)。更新代码后重新点推送即可。
Q2:推送成功但网页打不开?
- CVAT:检查 Token 权限、URL 是否可访问。
- Roboflow:检查网络与 API Key 是否为PrivateKey。
Q3:拉取后「工作区已标」有数,构建仍像没标签?
忘记回灌 raw。构建读的是raw/labels,不是tools/.../labels。
Q4:回灌合并和覆盖有什么区别?
- 合并:把工具区的
.txt拷到raw/labels,同名覆盖,其它已有标签保留。 - 覆盖:先清空
raw/labels再拷贝(会丢掉仅存在于 raw、不在该工具区的标签)。
Q5:X-AnyLabeling 类别顺序乱了?
以平台数据集里的类别顺序为准。classes.txt第 1 行是 class_id=0。改顺序后需重新导出/对齐标签。
Q6:Roboflow 拉取报错找不到版本?
先在 Roboflow 网页Generate Version,再在平台填对应版本号拉取。
Q7:能否只标一部分图?
可以。未标的图没有对应.txt时,构建一般只配对「有标签的图」。建议重要类别尽量标全。
Q8:import 格式数据集?
平台说明:import格式不走这套在线/外接工作区,请按外部目录规范自行标注后构建。
10. 按钮速查表
| 面板 | 按钮 | 作用 |
|---|---|---|
| 共用 | 选择数据集 / 刷新状态 | 切换数据、刷新各工具统计 |
| X-AnyLabeling | 导出标注包 | 下载含 images 的 zip |
| X-AnyLabeling | 导入 YOLO 标签 | 写入本工具工作区 |
| CVAT | 推送到 CVAT | API 创建任务并上传图 |
| CVAT | 拉取标注 | API 导出 YOLO 到工作区 |
| CVAT | 手动导入 YOLO | 导出失败时的备用 |
| Roboflow | 推送到 Roboflow | API 上传图片 |
| Roboflow | 拉取版本 | 按版本号下载 YOLO |
| 三者 | 回灌 raw(合并/覆盖) | 写入训练用raw/labels |
11. 相关链接
- 平台内置标注与抽帧:数据标注功能说明
- X-AnyLabeling:GitHub CVHub520/X-AnyLabeling
- CVAT 云端:app.cvat.ai
- Roboflow API:app.roboflow.com/settings/api
最近建了一个AI技术交流群,加我wx:hhhxy666666,备注:AI,即可进群学习和交流;商务合作可私信。
另外文章项目已开源:https://github.com/5758703/CV_PythonVue_TigerPro
觉得不错,Star一下,赏杯咖啡钱
文档版本:与平台「四套独立标注工具」功能配套。若界面按钮文案有少量调整,以实际页面为准,流程不变:选数据集 → 外接标注 → 回灌 → 构建 → 训练。