如何下载安装以及使用labelme,一个可以打标签的工具,实现数据集处理,详细教程

📌 Labelme安装指南

首先,我们完成Labelme的安装。强烈建议使用Anaconda创建一个独立的Python环境,这样可以避免与电脑上其他项目的软件包发生冲突。

  1. 安装Anaconda :如果你还没有安装,请前往Anaconda官网下载并安装适合你操作系统的版本。

  2. 创建虚拟环境 :打开Anaconda Prompt(Windows)或终端(macOS/Linux),执行以下命令创建一个名为labelme的新环境(推荐使用Python 3.6至3.8版本,兼容性较好):

    bash 复制代码
    conda create --name=labelme python=3.6

    输入y确认安装。

  3. 激活环境 :环境创建好后,使用以下命令激活它:

    bash 复制代码
    conda activate labelme

    命令提示符前的(labelme)字样表示你已进入该环境。

  4. 安装Labelme :在激活的labelme环境中,使用pip安装Labelge及界面依赖:

    bash 复制代码
    # 安装界面依赖的PyQt5
    pip install pyqt5
    # 安装labelme
    pip install labelme

    为了加快下载速度,你可以使用国内的镜像源,例如清华源:-i https://pypi.tuna.tsinghua.edu.cn/simple

验证安装 :在labelme环境中输入labelme并回车,如果能成功弹出图形界面,说明安装一切就绪。

🖱️ 使用Labelme标注图像

安装成功后,我们来学习如何使用Labelme进行标注。整个流程可以概括为:准备图片 -> 启动工具与标注 -> 保存结果 -> 格式转换。下图展示了这一核心流程:
是 否 准备图像数据集 启动Labelme并载入图像 使用多边形工具进行标注 为每个区域输入标签 继续标注? 保存JSON文件 转换JSON为数据集 得到可视化标注图

下面我们来分解图中的关键步骤:

  1. 准备与载入 :首先,将你需要标注的所有图片放在同一个文件夹里。在终端输入labelme启动工具,点击界面上的 Open Dir 按钮,选择这个图片文件夹。
  2. 开始标注 :点击 Create Polygons 按钮,你就可以开始描点勾勒目标的轮廓了。
    • 描点:用鼠标在目标的边缘依次点击,形成一个闭合的多边形。
    • 标注中 :如果某个点标错了,可以按 Ctrl+Z 撤销上一个点。
    • 完成一个目标 :闭合多边形后,会弹出一个对话框,让你输入该目标的标签名称。请确保同类别的标签名称完全一致。
  3. 保存结果 :一张图片上的所有目标都标注完成后,点击 Save 按钮。Labelme会生成一个与图片同名的.json文件,这个文件记录了所有的标注信息。
  4. 格式转换(用于模型训练) :保存得到的JSON文件不能直接用于训练模型,需要转换成模型能识别的格式(通常是像素级的标签图)。
    • 单文件转换 :对于单个JSON文件,可以使用Labelme自带的命令将其转换为带标签的PNG图像:

      bash 复制代码
      labelme_json_to_dataset your_annotation.json

      这会在当前目录生成一个包含标签图像的新文件夹。

    • 批量转换 :如果你有大量的JSON文件需要转换,推荐使用Labelme项目中提供的脚本(如 labelme2voc.py)进行批量处理。你需要先下载Labelme的源码:

      bash 复制代码
      git clone https://github.com/wkentaro/labelme

      然后根据你的任务(语义分割或实例分割)运行相应的脚本,并指定JSON文件所在目录、输出目录和一个定义好所有类别名的labels.txt文件。

💡 实用技巧与注意事项

掌握基础操作后,下面这些技巧能让你的标注工作更高效、准确:

  • 规划标签列表 :在开始大型标注项目前,先预先定义好所有可能的类别名称 (如 cat, dog, road, building),并确保所有标注人员统一使用,避免出现大小写或单复数的混乱。

  • 高效编辑 :如果标注的点位有偏差,可以点击 Edit Polygons 按钮,然后拖动点来进行微调。

  • 处理带洞目标 :如果一个物体内部包含空洞(例如甜甜圈),你需要标注两个多边形:先标注外部轮廓,再标注内部空洞的轮廓,并将内部空洞的标签设置为 _background_,这样转换后空洞区域就会被正确识别为背景。

  • 解决中文乱码(Windows用户) :部分Windows用户可能在查看转换后的可视化图片时遇到标签中文乱码的问题。这是因为Labelme的某个源码文件在读取文件时未指定编码。解决方法是找到 label_file.py 文件,在大约第36行,修改代码为:

    python 复制代码
    with open(filename, 'rb' if PY2 else 'r', encoding='utf-8') as f:

    即添加 encoding='utf-8'

🗂️ 从标注到数据集

完成所有标注和转换后,你应该得到一个结构清晰的数据集文件夹,通常包含以下内容:

  • JPEGImages/:存放所有的原始图片。
  • SegmentationClass/:存放转换后的像素级标签PNG图像。这是语义分割训练最关键的真值文件。
  • class_names.txt:列出数据集中所有的类别名称。

现在,你的自定义数据集已经准备就绪,可以用于训练你自己的图像分割模型了!

相关推荐
HuggingFace7 分钟前
经同意的语音克隆
人工智能
智算菩萨13 分钟前
实战:用 Python + 传统NLP 自动总结长文章
开发语言·人工智能·python
子夜江寒13 分钟前
基于 Python 库使用贝叶斯算法与逻辑森林
开发语言·python·算法
BBB努力学习程序设计18 分钟前
掌握Python中不可变对象与可变对象的深度解析
python·pycharm
whitelbwwww18 分钟前
Pytorch--张量表示实际数据
人工智能·pytorch·python
写文章的大米21 分钟前
10分钟用Python搭个接口,还能自动生成文档?
python·fastapi
roman_日积跬步-终至千里21 分钟前
【人工智能导论】05-学习-机器学习基础:从数据到智能决策
人工智能·学习·机器学习
nice_lcj52021 分钟前
【AI进阶】拒绝“人工智障”:掌握提示词工程(Prompt Engineering)的6大核心技巧
人工智能·prompt
万俟淋曦23 分钟前
【论文速递】2025年第40周(Sep-28-Oct-04)(Robotics/Embodied AI/LLM)
人工智能·深度学习·ai·机器人·大模型·论文·具身智能
jiayong2324 分钟前
Spring AI Alibaba 深度解析(一):框架概述与核心功能
java·人工智能·spring