3、标注工具入门:LabelImg、CVAT、Label Studio 安装与基础使用
做数据标注这几年,我见过不少团队在工具选型上栽跟头。有人装了半天环境跑不起来,有人标到一半发现工具不支持导出格式。说白了,工具选对了,效率翻倍;选错了,返工到崩溃。
这一章,我带你过三款主流标注工具:LabelImg、CVAT、Label Studio。它们分别代表了轻量级、企业级、全能型三种路线。我会从安装到基础操作,把我在项目中踩过的坑一并告诉你。
3.1 LabelImg:轻量级图像标注利器
LabelImg 是我最早接触的标注工具。那时候团队就两个人,标几千张检测图,用它最顺手。它就是一个 Python 写的桌面应用,不需要搭服务器,装好就能用。
安装步骤
我个人习惯用 pip 安装,干净利落。如果你用 Windows,记得先装 Python 3.8 以上版本。
# 方式一:pip 安装(推荐)
pip install labelimg
# 方式二:源码安装(适合二次开发)
git clone https://github.com/tzutalin/labelImg.git
cd labelImg
pip install -r requirements/requirements-linux-python3.txt
make qt5py3
python labelImg.py
基础操作流程
- 打开图片目录:点击「Open Dir」选择存放图片的文件夹。
- 设置保存目录:点击「Change Save Dir」指定标注文件输出位置。
- 创建矩形框:按
w键进入绘制模式,拖拽鼠标框选目标。 - 输入标签名:弹窗中输入类别名称,比如
cat、dog。 - 保存标注:按
Ctrl+S,默认生成 XML 文件(Pascal VOC 格式)。 - 切换下一张:按
d键或点击 Next Image。
| 快捷键 | 功能 | 备注 |
|---|---|---|
w |
创建矩形框 | 最常用 |
d / a |
下一张 / 上一张 | 批量标注必备 |
Ctrl+S |
保存当前标注 | 建议每标完一张就按 |
Ctrl+Z |
撤销上一个框 | 标错了别慌 |
Delete |
删除选中框 | 配合鼠标点击使用 |
3.2 CVAT:企业级 Web 标注平台
CVAT 是 Intel 开源的标注平台,我第一次用的时候就被它的功能密度惊到了。它支持多人同时标注、任务分配、自动标注插件,适合团队作战。不过部署起来比 LabelImg 复杂不少。
安装方式对比
| 方式 | 难度 | 适用场景 | 我的建议 |
|---|---|---|---|
| Docker Compose | 中等 | 正式团队使用 | 最推荐,稳定可控 |
| 在线体验版 | 低 | 快速尝鲜 | cvat.ai 直接注册 |
| 源码编译 | 高 | 二次开发 | 不熟悉 Docker 的别碰 |
Docker 部署(推荐)
# 克隆仓库
git clone https://github.com/opencv/cvat
cd cvat
# 启动服务(第一次会下载镜像,耐心等)
docker compose up -d
# 创建超级用户
docker exec -it cvat_server bash -c "python manage.py createsuperuser"
# 访问 http://localhost:8080
基础使用流程
- 创建任务:登录后点击「Create New Task」,填写任务名称。
- 上传数据:拖拽图片或视频文件到上传区域。
- 配置标签:在「Labels」中添加类别,比如
car、person。 - 分配标注员:在「Assignees」中选择团队成员。
- 开始标注:进入任务,使用矩形框、多边形、关键点等工具标注。
- 提交审核:标注完成后点击「Submit」,等待审核。
CVAT 的标注工具比 LabelImg 丰富得多。除了矩形框,还支持多边形、折线、关键点、语义分割掩码。我做过一个车辆检测项目,用 CVAT 的多边形工具标车轮廓,精度比矩形框高不少。
3.3 Label Studio:多模态标注全能选手
Label Studio 是我最近一年用得最多的工具。它不仅能标图像,还能标文本、音频、视频、时间序列。说白了,如果你的项目涉及多种数据类型,Label Studio 是首选。
安装方式
# pip 安装(单机使用)
pip install label-studio
# 启动
label-studio start
# 访问 http://localhost:8080
# Docker 部署(团队使用)
docker run -it -p 8080:8080 -v $(pwd)/data:/label-studio/data heartexlabs/label-studio:latest
核心概念:项目与标注配置
Label Studio 的灵活之处在于它的「标注配置」系统。你可以用 XML 模板定义标注界面。举个例子,图像分类的配置长这样:
<View>
<Image name="image" value="$image"/>
<Choices name="label" toName="image">
<Choice value="cat"/>
<Choice value="dog"/>
<Choice value="other"/>
</Choices>
</View>
这个配置告诉 Label Studio:显示一张图片,下面给三个分类选项。你想想看,如果换成文本分类,只需要把 <Image> 换成 <Text> 就行。这种设计让 Label Studio 几乎能适配任何标注场景。
基础操作流程
- 创建项目:点击「Create Project」,输入项目名称。
- 导入数据:支持 CSV、JSON、文件夹批量导入。
- 设置标注模板:选择预设模板或自定义 XML 配置。
- 分配任务:可以按比例分配给多个标注员。
- 开始标注:根据模板类型进行标注操作。
- 导出结果:支持 JSON、CSV、COCO、Pascal VOC 等多种格式。
3.4 三款工具横向对比
| 维度 | LabelImg | CVAT | Label Studio |
|---|---|---|---|
| 部署方式 | 桌面应用 | Web 服务 | Web 服务 / 桌面 |
| 标注类型 | 矩形框 | 矩形、多边形、关键点、分割 | 图像、文本、音频、视频、时间序列 |
| 多人协作 | 不支持 | 支持(任务分配+审核) | 支持(企业版) |
| 自动标注 | 无 | 内置插件 | ML 后端接入 |
| 导出格式 | XML、TXT | COCO、Pascal VOC、YOLO、TFRecord | JSON、CSV、COCO、Pascal VOC 等 |
| 学习成本 | 低(10分钟上手) | 中(需要理解任务流程) | 中高(配置灵活但复杂) |
| 适合场景 | 个人快速标注 | 团队协作标注 | 多模态、复杂标注需求 |
- 如果你只是自己标几百张检测图,用 LabelImg,别折腾。
- 如果团队有 3 人以上,需要任务管理和审核流程,上 CVAT。
- 如果项目涉及图像+文本+音频混合标注,或者需要自定义标注界面,选 Label Studio。
3.5 避坑指南
做标注工具选型这几年,我总结了几条血泪教训:
- 不要高估团队的部署能力。我曾经在一个项目里强行上 CVAT,结果团队里没人会 Docker,折腾了两天还没跑起来。后来换成 LabelImg,当天就开工了。
- 标注格式要提前统一。不同工具导出的格式不一样。LabelImg 默认是 XML,CVAT 可以导出 COCO JSON,Label Studio 默认是 JSON。如果后续要训练模型,提前确认模型需要的输入格式。
- 数据备份要勤快。CVAT 的数据存储在 Docker 卷里,如果不做持久化,容器删了数据就没了。我吃过这个亏,标了一周的成果差点全丢。
- 小团队别追求大而全。Label Studio 功能确实强,但配置复杂。如果只是标矩形框,用 LabelImg 就够了。杀鸡用牛刀,反而降低效率。