从标注小白到专家:Labelme图像标注全流程实战指南

从标注小白到专家:Labelme图像标注全流程实战指南

【免费下载链接】labelme Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation). 【免费下载链接】labelme 项目地址: https://gitcode.com/gh_mirrors/la/labelme

Labelme是一款基于Python的图像多边形标注工具(Image Polygonal Annotation with Python),支持多边形、矩形、圆形、线条、点和图像级标记等多种标注形式。无论是语义分割、目标检测还是图像分类任务,Labelme都能提供高效直观的标注解决方案。本文将从安装到高级应用,带你全面掌握这款强大工具。

核心功能概览

Labelme提供了丰富的标注功能,满足不同计算机视觉任务需求:

  • 多样化标注工具:支持多边形(Polygon)、矩形(Rectangle)、圆形(Circle)、线条(Line)和点(Point)等基本形状标注
  • 图像分类标注:通过标记(Flag)功能实现整图分类或筛选
  • 视频标注支持:专为序列图像设计的视频标注工作流
  • 自动化处理:支持标注文件转VOC/COCO等标准数据集格式
  • 自定义配置:可预设标签列表、自动保存、标签验证等个性化设置

标注功能展示

不同标注任务的效果展示: 语义分割示例 边界框检测示例 分类标注示例

快速安装指南

方法一:Python pip安装(推荐)

最简单的安装方式是使用pip:

pip install labelme

如需安装最新开发版本,可直接从仓库安装:

pip install git+https://gitcode.com/gh_mirrors/la/labelme

方法二:独立可执行程序

对于非开发用户,可选择下载独立可执行程序,无需安装Python环境。

方法三:Linux系统包管理器

部分Linux发行版可通过系统包管理器安装:

# Ubuntu/Debian示例
sudo apt-get install labelme

基础操作教程

启动标注工具

安装完成后,在终端输入以下命令启动Labelme:

labelme

单图像标注

以教程示例图像为例,执行以下命令开始标注:

cd examples/tutorial
labelme apc2016_obj3.jpg

这将打开标注界面,你可以使用左侧工具栏选择标注工具,在图像上绘制区域并添加标签。

标注界面

批量标注目录

要标注整个目录中的所有图像,使用以下命令:

labelme data_annotated/ --labels labels.txt

其中labels.txt是包含预设标签的文本文件,格式为每行一个标签名。

命令行参数详解

常用参数说明:

  • --output:指定标注文件保存位置
  • --config:使用自定义配置文件
  • --labels:指定标签列表文件
  • --nodata:不在JSON中存储图像数据(仅保存路径)
  • --nosortlabels:保持标签显示顺序与定义一致

完整参数说明可通过labelme --help查看。

标注流程详解

单个图像标注步骤

  1. 打开图像:通过File > Open或命令行参数指定图像
  2. 选择工具:在左侧工具栏选择合适的标注工具
  3. 绘制区域:在图像上绘制需要标注的区域
  4. 添加标签:完成绘制后输入标签名称
  5. 保存结果:标注文件将保存为JSON格式,包含图像路径、形状、标签等信息

标注过程

标注文件结构解析

标注结果以JSON格式保存,包含以下关键信息:

  • version:标注格式版本
  • flags:图像级标记(用于分类)
  • shapes:标注形状列表,每个形状包含:
    • label:标签名称
    • points:坐标点列表
    • shape_type:形状类型
  • imagePath:图像路径
  • imageData:Base64编码的图像数据(可选)

示例标注文件:apc2016_obj3.json

高级应用:标注转数据集

转VOC格式数据集

以语义分割为例,将标注文件转换为VOC格式:

cd examples/semantic_segmentation
python labelme2voc.py data_annotated data_dataset_voc --labels labels.txt

转换后生成的VOC格式数据集结构:

VOC数据集可视化

转COCO格式数据集

实例分割标注可转换为COCO格式:

cd examples/instance_segmentation
python labelme2coco.py data_annotated data_dataset_coco --labels labels.txt

转换结果将生成标准COCO格式的annotations.json文件。

视频标注工作流

Labelme提供专门的视频标注解决方案,适合序列图像标注:

cd examples/video_annotation
labelme data_annotated/ --labels labels.txt

视频标注会为每一帧图像生成单独的标注文件,并保持帧间标注的连贯性。

视频标注结果

视频标注工具源码:labelme2voc.py

实用技巧与FAQ

标注文件转numpy数组

使用教程中提供的方法将JSON标注转换为numpy数组:

# 参考[load_label_png.py](https://link.gitcode.com/i/560dcbecfacf989479ca1ebbe2a5c9b1)
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))  # 输出标签值列表

查看标注PNG文件

使用内置工具可视化标注结果:

labelme_draw_label_png apc2016_obj3/label.png

标注PNG可视化

自定义配置

首次运行Labelme后,会在用户目录创建配置文件~/.labelmerc,可修改该文件自定义界面行为。

配置文件模板:default_config.yaml

项目结构与扩展

Labelme的核心代码结构如下:

总结与资源

Labelme作为一款开源图像标注工具,以其轻量、灵活和强大的功能,成为计算机视觉研究和开发的重要辅助工具。通过本文介绍的方法,你可以快速掌握从安装到高级应用的全流程。

更多资源:

无论是学术研究、工业应用还是个人项目,Labelme都能为你的计算机视觉任务提供高效准确的标注支持。立即尝试,开启你的标注之旅吧!

【免费下载链接】labelme Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation). 【免费下载链接】labelme 项目地址: https://gitcode.com/gh_mirrors/la/labelme

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值