Labelme图像标注工具使用教程:从标注到数据集转换
2025-07-06 01:51:06作者:毕习沙Eudora
工具概述
Labelme是一款开源的图像标注工具,专门用于计算机视觉领域的图像分割任务。它允许用户通过图形界面轻松地创建多边形标注,并将标注结果保存为JSON格式,便于后续转换为各种深度学习框架所需的数据格式。
基础标注流程
1. 启动标注工具
要开始标注单张图像,只需在命令行中执行以下命令:
labelme apc2016_obj3.jpg
执行后,工具会打开图形界面,用户可以在图像上绘制多边形区域来标注目标对象。标注过程中,系统会提示为每个多边形区域指定类别标签。
2. 标注技巧
- 使用鼠标左键点击创建多边形顶点
- 右键点击完成当前多边形绘制
- 中键拖动可以移动图像视图
- 滚轮可缩放图像
标注结果可视化
完成标注后,Labelme会生成一个JSON文件,包含了所有标注的几何信息和类别标签。为快速查看标注结果,可以使用内置的可视化工具:
labelme_draw_json apc2016_obj3.json
这个命令会显示标注后的图像效果,包括所有标注区域的边界线和填充颜色。
数据集转换
1. 转换为标准格式
Labelme提供了将JSON标注转换为标准数据集格式的功能:
labelme_export_json apc2016_obj3.json
转换过程会生成以下文件:
- img.png - 原始图像文件
- label.png - 8位无符号整型的标签图像,每个像素值对应一个类别
- label_viz.png - 标签可视化图像,便于人工检查
- label_names.txt - 标签名称与数值的对应关系文件
2. 标签文件处理注意事项
处理生成的label.png文件时需要特别注意:
- 避免使用scipy.misc.imread或skimage.io.imread等常见图像读取方法
- 推荐使用PIL.Image.open来确保正确读取标签值
示例代码:
import numpy as np
import PIL.Image
label_png = 'apc2016_obj3/label.png'
lbl = np.asarray(PIL.Image.open(label_png))
print(lbl.dtype) # 应为uint8
print(np.unique(lbl)) # 查看包含的标签值
print(lbl.shape) # 查看图像尺寸
3. 标签可视化检查
Labelme还提供了专门的工具来查看标签PNG文件:
labelme_draw_label_png apc2016_obj3/label.png
这个命令会显示标签图像的可视化效果,不同类别会以不同颜色显示,便于验证标注结果的正确性。
应用场景
Labelme生成的标注数据可以直接用于:
- 语义分割模型训练
- 实例分割任务的数据准备
- 目标检测任务的辅助标注
- 各种需要像素级标注的计算机视觉研究
最佳实践建议
- 标注时保持一致的类别命名规范
- 对于复杂场景,建议分层标注不同类别的对象
- 定期保存标注进度,避免意外丢失工作成果
- 转换数据集前,先用可视化工具检查标注质量
- 对于大型项目,考虑编写脚本批量处理多个标注文件
通过本教程,您应该已经掌握了使用Labelme进行图像标注、结果可视化和数据集转换的基本流程。这些功能为计算机视觉研究提供了便捷的数据准备工具链。