首页
/ Labelme图像标注工具使用教程:从标注到数据集转换

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

转换过程会生成以下文件:

  1. img.png - 原始图像文件
  2. label.png - 8位无符号整型的标签图像,每个像素值对应一个类别
  3. label_viz.png - 标签可视化图像,便于人工检查
  4. 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生成的标注数据可以直接用于:

  1. 语义分割模型训练
  2. 实例分割任务的数据准备
  3. 目标检测任务的辅助标注
  4. 各种需要像素级标注的计算机视觉研究

最佳实践建议

  1. 标注时保持一致的类别命名规范
  2. 对于复杂场景,建议分层标注不同类别的对象
  3. 定期保存标注进度,避免意外丢失工作成果
  4. 转换数据集前,先用可视化工具检查标注质量
  5. 对于大型项目,考虑编写脚本批量处理多个标注文件

通过本教程,您应该已经掌握了使用Labelme进行图像标注、结果可视化和数据集转换的基本流程。这些功能为计算机视觉研究提供了便捷的数据准备工具链。