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 标注流程
我个人习惯的标注流程是这样的:
- 设置标签文件: 点击左侧
Change Save Dir选择标注文件保存路径,点击Open Dir打开图片文件夹。 - 创建标签列表: 点击
PascalVOC切换到YOLO格式(看你的需求),然后点击Edit→Create RectBox开始画框。 - 画框并标注: 在缺陷区域按住鼠标左键拖动,松开后弹出标签选择框,选对应的缺陷类型。
- 保存: 按
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 本章知识体系
下面这张图帮你梳理了本章的核心逻辑: