4、标注工具入门:LabelImg、CVAT等工具的安装与界面介绍

好,我们正式开始动手了。前面三章讲了缺陷分类、标注规范和格式标准,都是理论。从这一章开始,我们要真刀真枪地干活——装工具、开界面、点鼠标。

材料缺陷标注,说白了就是在一张图上一块一块地框出缺陷区域,再告诉电脑“这是裂纹”、“这是气孔”。你想想看,没有趁手的工具,光靠画图软件一个个像素抠,那得累死。我当年刚入行的时候,就干过这种傻事,用Photoshop手动画矩形框,画完还得自己算坐标……嗯,不提了。

4.1 主流标注工具概览

目前工业界和学术界用得最多的,就是下面这三类。我按自己的使用经验排了个序:

工具 适用场景 我的评价
LabelImg 单机小批量、快速标注 轻量、免费、上手最快,适合个人或小团队
CVAT 团队协作、大规模标注 功能全面、支持多人协同,但部署稍麻烦
Label Studio 多模态、复杂标注需求 灵活度高,但学习曲线陡一些

咱们这门课主要讲材料缺陷标注,所以我会重点带你把 LabelImg 和 CVAT 这两个吃透。前者帮你快速上手,后者帮你应对真实项目中的团队协作场景。

核心观点: 工具只是手段,标注规范才是灵魂。但工具用不顺,规范也执行不下去。所以这一章,咱们先把工具磨利。

4.2 LabelImg:最轻量的入门之选

4.2.1 安装方法

LabelImg 是个 Python 写的桌面应用,安装方式有两种。我个人推荐用 pip 安装,干净利落。

方式一:pip 安装(推荐)

pip install labelImg
labelImg

就这么两行,搞定。如果你用的是 Anaconda,建议先建个虚拟环境:

conda create -n labelimg python=3.8
conda activate labelimg
pip install labelImg
labelImg

方式二:源码安装

如果你需要二次开发或者定制功能,可以拉源码:

git clone https://github.com/tzutalin/labelImg.git
cd labelImg
pip install -r requirements/requirements-linux-python3.txt
make qt5py3
python labelImg.py

小提示: 我在项目中遇到过一个问题——Windows 下用 pip 安装后,有时候会报 No module named 'PyQt5'。别慌,手动装一下 PyQt5 就行:pip install PyQt5。

4.2.2 界面速览

装好之后,在终端敲 labelImg,界面就弹出来了。我带你快速过一遍核心区域:

  • 左侧工具栏: 打开文件夹、保存、下一张、上一张、画框、删除框等核心操作都在这里。
  • 中央画布区: 显示图片,你就在这里画矩形框。
  • 右侧标签列表: 显示当前图片的所有标注框和对应的标签名。
  • 底部状态栏: 显示当前图片路径、标注文件保存状态。

嗯,这里要注意:LabelImg 默认只支持 矩形框(Bounding Box),不支持多边形、关键点等复杂形状。对于材料缺陷标注来说,矩形框其实够用了——裂纹、气孔、夹杂物,大部分都能用矩形框框住。

4.2.3 标注流程

我个人习惯的标注流程是这样的:

  1. 设置标签文件: 点击左侧 Change Save Dir 选择标注文件保存路径,点击 Open Dir 打开图片文件夹。
  2. 创建标签列表: 点击 PascalVOC 切换到 YOLO 格式(看你的需求),然后点击 Edit → Create RectBox 开始画框。
  3. 画框并标注: 在缺陷区域按住鼠标左键拖动,松开后弹出标签选择框,选对应的缺陷类型。
  4. 保存: 按 Ctrl+S 保存,按 D 切换到下一张。

避坑指南: 我曾经因为忘记设置 Change Save Dir,标注了100多张图,结果发现标注文件全部存到了默认路径,跟图片混在一起,整理起来简直噩梦。所以,开工前一定先设好保存路径。

4.3 CVAT:团队协作的利器

4.3.1 安装方法

CVAT 是个 Web 应用,需要部署在服务器上。官方推荐用 Docker 部署。我第一次部署的时候也折腾了一会儿,但用顺了之后真香。

Docker 部署(推荐)

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

# 启动 Docker 容器
docker compose up -d

# 创建超级用户
docker exec -it cvat_server bash -c "python manage.py createsuperuser"

等几分钟,打开浏览器访问 http://localhost:8080,用刚才创建的账号登录,就搞定了。

小提示: 如果你的机器没有 GPU,可以在 docker-compose.yml 里把 GPU 相关的配置注释掉,不然启动会报错。我踩过这个坑。

4.3.2 界面速览

CVAT 的界面比 LabelImg 复杂不少,但功能也更强大。核心区域有:

  • 项目面板: 创建项目、管理任务、分配标注员。
  • 任务列表: 每个任务包含一批图片,可以指定标签类型和标注规范。
  • 标注工作区: 画布区支持矩形、多边形、关键点、线条等多种标注形状。
  • 标签面板: 显示当前任务的标签列表,支持颜色区分。
  • 作业管理: 可以查看每个标注员的进度、审核标注结果。

说白了,CVAT 就是一个完整的标注管理系统。项目经理创建任务,标注员领任务干活,审核员检查质量,全流程都在一个平台上。

4.3.3 核心功能对比

功能 LabelImg CVAT
标注形状 仅矩形 矩形、多边形、关键点、线条、椭圆
多人协作 不支持 支持,有角色权限管理
自动标注 不支持 支持(集成深度学习模型)
数据格式 Pascal VOC、YOLO COCO、Pascal VOC、YOLO、TFRecord 等
部署方式 单机桌面应用 Web 服务,需服务器

4.4 工具选择建议

你可能会问:那我到底该用哪个?我的建议很简单:

  • 个人学习、小批量验证(几十到几百张图): 用 LabelImg,装得快、学得快、用得也快。
  • 团队项目、大规模标注(上千张图、多人协作): 上 CVAT,管理功能能帮你省下大量沟通成本。

我自己做项目的时候,通常是先用 LabelImg 快速验证标注方案是否合理,确认没问题之后,再迁移到 CVAT 上大规模铺开。这样既灵活又规范。

一句话总结: LabelImg 是“单兵作战”的利器,CVAT 是“集团军作战”的平台。两个都学会,你就能应对从个人实验到工业级项目的所有场景。

4.5 本章知识体系

下面这张图帮你梳理了本章的核心逻辑:

标注工具入门知识体系 标注工具 LabelImg CVAT 特点 轻量、单机、矩形框 适合个人/小批量 特点 Web协作、多形状、自动标注 适合团队/大规模 选择建议:个人学习用 LabelImg,团队项目用 CVAT 先用 LabelImg 验证方案,再迁移到 CVAT 大规模铺开