标注工具使用:Label Studio、Doccano、CVAT 实战指南

专栏:人工智能训练师三级备考全攻略
所属模块:卷三·知识体系 — 数据标注与处理
考试关联度:⭐⭐⭐⭐(高频考点,侧重工具选型和基本操作,约 5~8 题)


前言:工欲善其事,必先利其器

标注工具是人工智能训练师的"生产力工具"。选对工具、用好工具,可以让标注效率提升 3~5 倍。但工具种类繁多,如何选择和使用是一门学问。

本文重点讲解三款最主流的开源标注工具:Label Studio(通用多模态)、Doccano(文本专用)、CVAT(计算机视觉专用),以及工具选型的核心方法。


一、标注工具全景对比

1.1 主流工具一览

标注工具生态图:

  ┌──────────────────────────────────────────────────────────┐
  │                  标注工具分类                             │
  ├──────────────┬───────────────────────────────────────────┤
  │  通用多模态   │  Label Studio、Prodigy、Amazon SageMaker GT│
  ├──────────────┼───────────────────────────────────────────┤
  │  文本专用     │  Doccano、BRAT、WebAnno                   │
  ├──────────────┼───────────────────────────────────────────┤
  │  图像/视频   │  CVAT、LabelImg、LabelMe、VGG Annotator   │
  ├──────────────┼───────────────────────────────────────────┤
  │  语音/音频   │  Praat、ELAN、Audacity(辅助)、WebAnno   │
  ├──────────────┼───────────────────────────────────────────┤
  │  国产平台     │  百炼数据标注、飞桨EasyDL、讯飞开放平台    │
  └──────────────┴───────────────────────────────────────────┘

1.2 核心工具对比

工具 支持模态 部署方式 协作 学习成本 适合人群
Label Studio 文本/图像/音频/视频/多模态 本地/云端 多人 中大型项目,需要灵活配置
Doccano 文本(NER/分类/Seq2Seq) 本地/云端 多人 纯文本标注,快速上手
CVAT 图像/视频(检测/分割) 本地/云端 多人 图像视频标注专业场景
LabelImg 图像(目标检测) 本地桌面 单人 很低 入门/小批量图像检测
LabelMe 图像(多边形分割) 本地桌面 单人 图像分割小批量
Praat 语音(音素/韵律) 本地桌面 单人 学术研究、语音学专业

二、Label Studio 实战指南

2.1 Label Studio 简介

Label Studio 核心特性:

  ┌──────────────────────────────────────────────────────────┐
  │                                                          │
  │  🏷️ Label Studio — 最受欢迎的开源标注平台                  │
  │                                                          │
  │  核心优势:                                               │
  │  · 支持几乎所有数据类型(文本/图像/音频/视频/HTML)        │
  │  · 灵活的标签模板系统(JSON/XML 配置)                    │
  │  · 内置 ML 预标注支持(连接 ML 后端)                     │
  │  · 多人协作 + 审核工作流                                  │
  │  · 丰富的导出格式(COCO/VOC/YOLO/CSV/JSON)              │
  │                                                          │
  │  安装命令(pip):                                         │
  │  pip install label-studio                                 │
  │  label-studio start                                       │
  │                                                          │
  │  默认访问地址:http://localhost:8080                       │
  │                                                          │
  └──────────────────────────────────────────────────────────┘

2.2 Label Studio 使用流程

Label Studio 标注项目标准流程(8步):

  Step 1:创建项目
  ┌──────────────────────────────────────────────────────────┐
  │ 登录 → 点击"Create Project"                               │
  │ 填写:项目名称 + 描述(建议填写任务目标和标注规范摘要)    │
  └──────────────────────────────────────────────────────────┘
            ↓
  Step 2:配置标注界面(Labeling Interface)
  ┌──────────────────────────────────────────────────────────┐
  │ 选择模板 或 自定义 XML 配置                               │
  │                                                          │
  │ 常用模板:                                               │
  │ · Text Classification → 文本分类                         │
  │ · Named Entity Recognition → NER 标注                    │
  │ · Image Classification → 图像分类                         │
  │ · Object Detection → 目标检测(边界框)                   │
  │ · Image Segmentation → 图像分割                           │
  │ · Audio Transcription → 音频转写                         │
  └──────────────────────────────────────────────────────────┘
            ↓
  Step 3:导入数据
  ┌──────────────────────────────────────────────────────────┐
  │ 支持多种导入方式:                                        │
  │ · 本地文件上传(CSV / JSON / 图片 / 音频)                │
  │ · URL 链接导入                                           │
  │ · 云存储(AWS S3 / GCS / Azure Blob)                    │
  │ · API 导入(批量导入)                                    │
  └──────────────────────────────────────────────────────────┘
            ↓
  Step 4:邀请标注成员
  ┌──────────────────────────────────────────────────────────┐
  │ 通过邮件邀请 或 在本地创建账号                            │
  │ 角色分配:                                               │
  │ · Admin(管理员):完全权限                              │
  │ · Manager(项目管理员):管理项目                         │
  │ · Annotator(标注员):只能标注分配给自己的任务           │
  │ · Reviewer(审核员):复核标注结果                        │
  └──────────────────────────────────────────────────────────┘
            ↓
  Step 5:分配任务
  ┌──────────────────────────────────────────────────────────┐
  │ 手动分配 或 自动分配(按比例随机分配)                    │
  │ 可设置每条数据需要几人标注(对齐标注/专家核验)            │
  └──────────────────────────────────────────────────────────┘
            ↓
  Step 6:执行标注
  ┌──────────────────────────────────────────────────────────┐
  │ 标注员登录 → 进入任务列表 → 逐条标注                     │
  │ 快捷键:                                                 │
  │ · 1-9: 快速选择标签                                      │
  │ · 空格: 下一条                                           │
  │ · Ctrl+Z: 撤销                                          │
  │ · Ctrl+S: 保存                                          │
  └──────────────────────────────────────────────────────────┘
            ↓
  Step 7:质量审核
  ┌──────────────────────────────────────────────────────────┐
  │ Reviewer 登录 → 进入 Review 页面 → 逐条审核              │
  │ · 通过 → 标记为已审核                                    │
  │ · 拒绝 → 退回标注员修改                                  │
  │ · 修改 → Reviewer 直接修改                               │
  └──────────────────────────────────────────────────────────┘
            ↓
  Step 8:导出数据
  ┌──────────────────────────────────────────────────────────┐
  │ Export → 选择格式 → 下载                                  │
  │ 支持格式:JSON / CSV / COCO / VOC / YOLO / CoNLL          │
  └──────────────────────────────────────────────────────────┘

2.3 Label Studio XML 配置示例

<!-- 情感分类任务配置 -->
<View>
  <Text name="text" value="$text"/>
  <Choices name="sentiment" toName="text" choice="single">
    <Choice value="正面" hotkey="1"/>
    <Choice value="中性" hotkey="2"/>
    <Choice value="负面" hotkey="3"/>
  </Choices>
</View>

<!-- NER 实体识别任务配置 -->
<View>
  <Labels name="label" toName="text">
    <Label value="人名" background="blue"/>
    <Label value="地名" background="green"/>
    <Label value="机构" background="orange"/>
    <Label value="时间" background="purple"/>
  </Labels>
  <Text name="text" value="$text"/>
</View>

<!-- 图像目标检测任务配置 -->
<View>
  <Image name="image" value="$image"/>
  <RectangleLabels name="label" toName="image">
    <Label value="" background="red"/>
    <Label value="" background="blue"/>
    <Label value="自行车" background="green"/>
  </RectangleLabels>
</View>

2.4 Label Studio 与 ML 后端集成(半自动标注)

# Label Studio ML 后端示例(连接预标注服务)
# 将此服务地址配置到 Label Studio 的 ML Backend 设置中

from flask import Flask, request, jsonify

app = Flask(__name__)


@app.route("/predict", methods=["POST"])
def predict():
    """Label Studio 调用此接口获取预标注结果"""
    data = request.json
    tasks = data.get("tasks", [])
    predictions = []

    for task in tasks:
        text = task["data"].get("text", "")

        # 调用你的模型进行预测(此处为示例逻辑)
        # 实际中替换为真实的模型推理
        if "好" in text or "棒" in text or "赞" in text:
            label = "正面"
            score = 0.9
        elif "差" in text or "烂" in text or "坏" in text:
            label = "负面"
            score = 0.9
        else:
            label = "中性"
            score = 0.7

        predictions.append({
            "id": task["id"],
            "result": [
                {
                    "from_name": "sentiment",
                    "to_name": "text",
                    "type": "choices",
                    "value": {"choices": [label]},
                    "score": score
                }
            ]
        })

    return jsonify({"predictions": predictions})


if __name__ == "__main__":
    app.run(port=9090)

三、Doccano 实战指南

3.1 Doccano 简介与适用场景

Doccano 核心特性:

  ┌──────────────────────────────────────────────────────────┐
  │                                                          │
  │  📝 Doccano — 最易上手的文本标注工具                       │
  │                                                          │
  │  核心优势:                                               │
  │  · 界面极简,上手时间 < 30 分钟                           │
  │  · 专为文本标注优化(NER / 文本分类 / Seq2Seq)           │
  │  · Docker 部署简单                                        │
  │  · 多语言支持(中文友好)                                  │
  │                                                          │
  │  适合场景:                                               │
  │  ✓ 命名实体识别(NER)标注                                │
  │  ✓ 文本情感/意图分类                                     │
  │  ✓ 文本摘要/机器翻译语料                                  │
  │  ✗ 不适合图像/音频标注                                    │
  │  ✗ 不适合需要复杂工作流的项目                             │
  │                                                          │
  │  Docker 安装:                                            │
  │  git clone https://github.com/doccano/doccano.git        │
  │  cd doccano && docker compose up                          │
  └──────────────────────────────────────────────────────────┘

3.2 Doccano 三种项目类型

项目类型 适用任务 标注方式
文本分类(Text Classification) 情感分析、意图识别、主题分类 选择类别标签
序列标注(Sequence Labeling) NER、分词、词性标注 选中文字,拖动高亮,选标签
Seq2Seq 机器翻译、文本摘要、对话生成 输入原文,标注员填写对应输出

3.3 Doccano NER 标注操作

Doccano NER 标注操作步骤:

  界面布局:
  ┌──────────────────────────────────────────────────────────┐
  │  [← 上一条]  [序号 23/500]  [下一条 →]  [保存 Ctrl+S]   │
  ├──────────────────────────────────────────────────────────┤
  │                                                          │
  │  张明昨天从北京飞到了上海,入住了华尔道夫酒店              │
  │                                                          │
  │  [人名] [地名] [机构] [时间]   ← 标签按钮                 │
  │                                                          │
  └──────────────────────────────────────────────────────────┘

  操作步骤:
  1. 用鼠标选中要标注的文字(如"张明")
  2. 选中后自动弹出标签菜单,或点击左侧标签按钮
  3. 选择对应标签(如"人名")
  4. 文字变色表示已标注
  5. 点击保存,进入下一条

  快捷键:
  · 选中文字后按 1~9 数字键直接选对应标签
  · Ctrl+S 保存并跳转下一条
  · Delete 删除选中的标注

四、CVAT 实战指南

4.1 CVAT 简介

CVAT(Computer Vision Annotation Tool):

  ┌──────────────────────────────────────────────────────────┐
  │                                                          │
  │  🖼️ CVAT — 最专业的开源视觉标注工具                        │
  │                                                          │
  │  核心优势:                                               │
  │  · 专为图像/视频标注打造                                  │
  │  · 支持边界框/多边形/折线/关键点                          │
  │  · 视频标注支持目标跟踪(半自动)                          │
  │  · 内置 AI 辅助标注(SAM 分割模型)                       │
  │  · 支持3D点云标注                                        │
  │  · 可部署为独立服务,支持团队协作                          │
  │                                                          │
  │  适合场景:                                               │
  │  ✓ 大规模图像目标检测/分割                               │
  │  ✓ 视频中的目标跟踪标注                                  │
  │  ✓ 自动驾驶、安防等专业场景                              │
  │  ✗ 不适合纯文本标注任务                                   │
  └──────────────────────────────────────────────────────────┘

4.2 CVAT 标注操作要点

CVAT 核心操作:

  工具栏(左侧):
  ┌─────────┐
  │  ▭ 边界框  │ 矩形框标注(目标检测)
  │  🔷 多边形  │ 多边形标注(图像分割)
  │  ── 折线   │ 折线标注(道路线/边缘)
  │  · 关键点  │ 点标注(人体骨架)
  │  🪣 SAM分割 │ AI辅助一键分割(需配置)
  └─────────┘

  边界框标注步骤:
  1. 选择"矩形框"工具
  2. 在目标左上角按下鼠标
  3. 拖拽到目标右下角释放
  4. 在弹出框中选择类别标签
  5. Ctrl+S 保存

  多边形标注步骤:
  1. 选择"多边形"工具
  2. 逐点单击目标轮廓
  3. 双击最后一点封闭多边形
  4. 在弹出框中选择标签
  5. 按 N 开始下一个目标

  快捷键:
  · N:新建目标(开始标注)
  · F:完成/保存当前标注
  · Esc:取消当前操作
  · Ctrl+Z:撤销
  · 空格:下一帧(视频)
  · 滚轮:缩放图像
  · 按住鼠标中键拖拽:平移视图

五、LabelImg 快速上手

5.1 LabelImg 简介

LabelImg — 最轻量的图像目标检测标注工具:

  安装:pip install labelImg
  启动:labelImg

  ┌──────────────────────────────────────────────────────────┐
  │  界面布局:                                               │
  │  ┌────┬───────────────────────────────┬────────────┐    │
  │  │工具│                               │  标签列表   │    │
  │  │栏  │       图片显示区域              │            │    │
  │  │    │   ┌──────────────────┐       │  ┌─────┐   │    │
  │  │[▭] │   │   ████ cat       │       │  │ cat │   │    │
  │  │    │   │   ████ dog       │       │  │ dog │   │    │
  │  │    │   └──────────────────┘       │  └─────┘   │    │
  │  └────┴───────────────────────────────┴────────────┘    │
  │                                                          │
  │  支持格式:PASCAL VOC(XML)和 YOLO(TXT)               │
  │                                                          │
  │  核心快捷键:                                             │
  │  · W:创建新矩形框                                       │
  │  · D:下一张图片                                         │
  │  · A:上一张图片                                         │
  │  · Del:删除选中的框                                     │
  │  · Ctrl+S:保存                                         │
  └──────────────────────────────────────────────────────────┘

六、标注工具选型指南

6.1 选型决策树

标注工具选型决策树:

  开始
    ↓
  是否需要多人协作?
  ├─否→ 是图像检测? → 是 → LabelImg(最轻量)
  │           ↓否
  │      是图像分割? → 是 → LabelMe
  │           ↓否
  │      是文本标注? → 是 → Doccano(本地单机)
  └─是→ 主要是图像/视频?
      ├─是→ CVAT(专业视觉标注)
      └─否→ 多模态/需要灵活配置?
            ├─是→ Label Studio(通用推荐)
            └─否→ 纯文本? → Doccano(多人协作)

6.2 选型对比矩阵

需求维度 Label Studio Doccano CVAT LabelImg
文本 NER ✓✓ ✓✓✓
文本分类 ✓✓✓ ✓✓✓
图像检测 ✓✓ ✓✓✓ ✓✓
图像分割 ✓✓ ✓✓✓
音频标注 ✓✓✓
视频标注 ✓✓ ✓✓✓
多人协作 ✓✓✓ ✓✓ ✓✓✓
AI预标注 ✓✓✓ ✓✓✓
上手难度 中等 容易 中等 很容易
适合规模 中大型 小中型 中大型 小型

七、考试高频考点速记

序号 考点 关键内容 易错点
1 Label Studio 适用场景 通用多模态,文本/图像/音频/视频全支持 不是只做图像的
2 Doccano 适用场景 纯文本标注(NER/分类/Seq2Seq) 不支持图像
3 CVAT 适用场景 图像/视频专业标注,支持视频跟踪 不适合文本
4 LabelImg 特点 最轻量,只支持图像检测,单机使用 只支持YOLO和VOC格式
5 Label Studio 配置方式 XML 配置界面,灵活定制标签体系 不是用 JSON 配置
6 Label Studio 角色 Admin/Manager/Annotator/Reviewer 四种角色 Annotator只能标注分配给自己的
7 半自动标注集成 Label Studio 可连接 ML 后端进行预标注 需要额外配置 ML 后端服务
8 Doccano 序列标注 选中文字直接拖动高亮即可标注 操作比Label Studio更直观
9 CVAT SAM 功能 AI 辅助一键分割,大幅提升分割效率 需要额外配置才能使用
10 工具选型原则 按任务类型+团队规模+上手成本综合选择 没有万能工具,按需选择

本篇知识点思维导图

标注工具使用

Label Studio

适用场景

通用多模态

文本图像音频视频

核心功能

XML配置界面

ML后端预标注

多人协作审核

操作流程

创建项目

配置界面

导入数据

邀请成员

分配任务

标注执行

质量审核

导出数据

角色体系

Admin管理员

Manager项目管理

Annotator标注员

Reviewer审核员

Doccano

适用场景

纯文本NER

文本分类

Seq2Seq

三种项目类型

文本分类

序列标注

Seq2Seq

操作特点

界面极简

选中即标注

上手快

CVAT

适用场景

图像视频专业

视频跟踪

3D点云

标注工具

边界框

多边形

折线

关键点

SAM分割

LabelImg

最轻量图像检测工具

支持格式

PASCAL VOC

YOLO

单机使用

选型指南

文本任务首选Doccano

图像视频首选CVAT

通用多模态首选Label Studio

小批量检测用LabelImg


本文小结

四大主流标注工具各有所长:Label Studio 通用全能,支持多模态,有 ML 预标注,适合中大型项目;Doccano 专注文本,界面极简,上手最快;CVAT 专攻图像视频,支持视频跟踪和 SAM 智能分割;LabelImg 最轻量,仅用于图像目标检测的本地单机场景。选工具的原则:按任务类型选,按团队规模选,不追求大而全

下一篇:《数据清洗与预处理技术》——原始数据到可用训练数据的关键环节。


最后更新:2026年5月 | 专栏:人工智能训练师三级备考全攻略

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐