2. 标注工具入门:LabelImg、CVAT、Label Studio 的安装与基础使用

做数据标注,工具选对了,能省一半的力气。我见过不少团队,一上来就自己写标注界面,结果折腾两周,发现开源工具早就把坑填平了。

今天咱们就聊三款主流工具:LabelImg、CVAT、Label Studio。它们各有各的脾气,也各有各的绝活。我会把安装步骤、使用场景、还有我踩过的坑,一股脑儿倒出来。

一句话总结三款工具

  • LabelImg:轻量级,单机跑,适合快速标注少量图片。
  • CVAT:企业级,支持多人协作,适合视频和复杂标注。
  • Label Studio:全能型,文本、图像、音频都能标,配置灵活。
标注工具选型图谱 标注工具选型 LabelImg CVAT Label Studio 轻量 · 单机 · 纯图像 Python 原生 · 快速上手 Web 端 · 多人协作 视频标注 · 自动追踪 多模态 · 配置灵活 ML 辅助标注

2.1 LabelImg:最轻量的图像标注工具

LabelImg 是我最早接触的标注工具。说白了,它就是一个小巧的 Python 程序,专门用来给图片画矩形框。适合做目标检测的数据准备。

安装步骤

我个人习惯用 pip 直接装,干净利落。

# 安装 PyQt5 和 lxml 依赖
pip install pyqt5 lxml

# 安装 LabelImg
pip install labelImg

# 启动
labelImg

如果你在 macOS 上遇到权限问题,加个 --user 参数就行。我曾经在 Windows 上装过一次,记得把 Python 加到环境变量里,不然命令行找不到。

基础使用

  1. 打开图片目录:点击左侧「Open Dir」,选择你的图片文件夹。
  2. 创建矩形框:按 w 键进入画框模式,拖拽鼠标框住目标。
  3. 输入标签名:弹窗里输入类别名称,比如 cat、dog。
  4. 保存标注:按 Ctrl+S,默认生成 Pascal VOC 格式的 XML 文件。

我的小技巧

LabelImg 支持快捷键:d 下一张,a 上一张,Ctrl+u 切换自动保存。我一般把自动保存打开,省得标完一张忘存。

注意

LabelImg 默认输出的是 XML 格式(Pascal VOC)。如果你需要 YOLO 格式的 TXT 文件,记得在菜单栏「View」里勾选「YOLO」模式。我曾经因为没切换格式,导致训练脚本读不到数据,排查了半天。

2.2 CVAT:企业级视频标注利器

CVAT 是 Intel 开源的 Web 端标注工具。我第一次用它标视频的时候,心里想的是:「这才叫生产力工具。」它支持多人同时标注,还有自动追踪功能。

安装方式(Docker 部署)

CVAT 推荐用 Docker 跑。我建议你至少给 Docker 分配 4GB 内存,不然跑起来会卡。

# 克隆仓库
git clone https://github.com/opencv/cvat
cd cvat

# 启动服务
docker compose up -d

# 访问 http://localhost:8080
# 默认账号: admin 密码: admin

嗯,这里要注意。第一次启动会下载好几个镜像,大概 2-3GB。找个网好的时候搞,别在开会前临时装。

基础使用流程

步骤 操作 说明
1 创建任务 上传图片或视频,设置标签列表
2 分配标注员 多人协作时,给每个人分配任务
3 开始标注 画框、画多边形、打关键点
4 导出数据 支持 COCO、Pascal VOC、YOLO 等格式

CVAT 的杀手锏:自动追踪

标视频的时候,你只需要在第一帧画框,然后开启「自动追踪」。CVAT 会用光流法自动跟踪目标,后面几十帧的框就自动生成了。我标过一个 5 分钟的视频,手动只标了 20 帧,剩下的 2800 帧全是自动补的。

2.3 Label Studio:多模态标注的全能选手

Label Studio 是我现在最常用的工具。为什么?因为它什么都能标。文本分类、实体抽取、图像分割、音频转录……一个工具全搞定。

安装方式

Label Studio 安装特别简单,一行命令搞定。

# 安装
pip install label-studio

# 启动
label-studio start

启动后浏览器打开 http://localhost:8080,注册一个账号就能用了。我第一次用的时候,注册完直接创建项目,前后不到 3 分钟。

配置标注模板

Label Studio 的核心是「标注配置」。说白了,就是用一段 XML 描述你的标注界面。

举个例子,做一个图像分类任务:

<View>
  <Image name="image" value="$image"/>
  <Choices name="label" toName="image">
    <Choice value="猫"/>
    <Choice value="狗"/>
    <Choice value="其他"/>
  </Choices>
</View>

这段配置的意思是:显示一张图片,下面给三个选项让标注员选。你想想看,如果要做实体抽取,换成 <Labels> 标签就行。

我的配置习惯

我一般会在项目里先建一个「测试任务」,用 5 条数据跑一遍配置。确认标注界面没问题了,再批量导入数据。这样能避免标到一半发现配置错了,全部重来。

2.4 三款工具怎么选?

我整理了一个对比表,方便你快速决策。

维度 LabelImg CVAT Label Studio
部署方式 本地 Python 程序 Web 端(Docker) Web 端(pip/Docker)
适用场景 小批量图像标注 视频标注、团队协作 多模态、复杂标注
学习成本 低(10 分钟上手) 中(需要熟悉 Web 界面) 中高(需要学配置语法)
输出格式 XML、TXT COCO、VOC、YOLO 等 JSON、CSV、COCO 等
多人协作 不支持 原生支持 企业版支持

避坑指南

我曾经在一个项目里用 LabelImg 标了 5000 张图,后来发现需要多人协作。结果 LabelImg 不支持,只能全部迁移到 CVAT。迁移过程花了两天,还丢了一部分标注数据。所以,开始之前先想清楚你的团队规模和项目周期。