2. 标注工具入门:LabelImg、CVAT、Label Studio 的安装与基础使用
做数据标注,工具选对了,能省一半的力气。我见过不少团队,一上来就自己写标注界面,结果折腾两周,发现开源工具早就把坑填平了。
今天咱们就聊三款主流工具:LabelImg、CVAT、Label Studio。它们各有各的脾气,也各有各的绝活。我会把安装步骤、使用场景、还有我踩过的坑,一股脑儿倒出来。
一句话总结三款工具
- LabelImg:轻量级,单机跑,适合快速标注少量图片。
- CVAT:企业级,支持多人协作,适合视频和复杂标注。
- Label Studio:全能型,文本、图像、音频都能标,配置灵活。
2.1 LabelImg:最轻量的图像标注工具
LabelImg 是我最早接触的标注工具。说白了,它就是一个小巧的 Python 程序,专门用来给图片画矩形框。适合做目标检测的数据准备。
安装步骤
我个人习惯用 pip 直接装,干净利落。
# 安装 PyQt5 和 lxml 依赖
pip install pyqt5 lxml
# 安装 LabelImg
pip install labelImg
# 启动
labelImg
如果你在 macOS 上遇到权限问题,加个 --user 参数就行。我曾经在 Windows 上装过一次,记得把 Python 加到环境变量里,不然命令行找不到。
基础使用
- 打开图片目录:点击左侧「Open Dir」,选择你的图片文件夹。
- 创建矩形框:按
w键进入画框模式,拖拽鼠标框住目标。 - 输入标签名:弹窗里输入类别名称,比如
cat、dog。 - 保存标注:按
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。迁移过程花了两天,还丢了一部分标注数据。所以,开始之前先想清楚你的团队规模和项目周期。