语义分割数据集制作利器:Labelme使用指南

作者:很菜不狗2024.04.02 17:56浏览量:25

简介:本文将详细介绍如何使用开源工具Labelme来制作语义分割数据集。通过简单的步骤和实例,让读者轻松掌握Labelme的使用技巧,为深度学习项目提供高质量的数据支持。

一、引言

深度学习中,语义分割是一项重要的任务,旨在将图像中的每个像素划分为预定义的类别。为了训练语义分割模型,我们需要大量的标注数据。Labelme是一个开源的图像标注工具,可以方便地用于制作语义分割数据集。本文将指导读者如何使用Labelme来标注图像并生成语义分割数据集。

二、Labelme安装与配置

  1. 安装Labelme

Labelme基于Python和Qt,因此需要先安装Python和PyQt5。然后,通过pip安装Labelme:

  1. pip install labelme
  1. 配置Labelme

Labelme的配置文件位于~/.labelme目录下。可以通过编辑labelme.ini文件来设置默认的标注类别等。

三、使用Labelme标注图像

  1. 启动Labelme

在命令行中输入labelme,即可启动Labelme界面。

  1. 导入图像

点击左上角的“Open Dir”按钮,选择包含待标注图像的文件夹。Labelme将自动加载文件夹中的所有图像。

  1. 创建标注

选择一张图像,点击“Create RectBoxes”按钮,开始创建多边形标注。在图像上点击鼠标左键,绘制多边形的顶点。完成绘制后,双击鼠标左键结束标注。在弹出的对话框中,输入标注的类别,并点击“OK”保存。

  1. 保存标注

完成所有标注后,点击左上角的“Save”按钮,将标注信息保存到JSON文件中。Labelme会为每张图像生成一个独立的JSON文件,其中包含标注的多边形顶点坐标和类别信息。

四、生成语义分割数据集

  1. 转换标注格式

Labelme生成的标注文件是JSON格式,而许多深度学习框架需要COCO或VOC格式的标注数据。因此,我们需要将JSON格式的标注转换为COCO或VOC格式。这里以转换为COCO格式为例:

首先,安装json-coco-format库:

  1. pip install json-coco-format

然后,使用json_to_coco.py脚本将JSON格式的标注转换为COCO格式:

  1. python json_to_coco.py --json_dir /path/to/json/files --output_dir /path/to/output/dir --class_list /path/to/class_list.txt

其中,--json_dir参数指定JSON文件所在的文件夹,--output_dir参数指定输出文件夹,--class_list参数指定类别列表文件。

  1. 生成图像列表文件

为了训练模型,我们还需要生成图像列表文件,其中包含所有图像的路径和对应的标注文件路径。可以使用以下Python代码生成图像列表文件:

  1. import os
  2. import json
  3. # 标注文件夹路径
  4. annotation_dir = '/path/to/annotation/dir'
  5. # 输出文件夹路径
  6. output_dir = '/path/to/output/dir'
  7. # 获取所有标注文件
  8. annotation_files = os.listdir(annotation_dir)
  9. # 生成图像列表文件
  10. with open(os.path.join(output_dir, 'image_list.txt'), 'w') as f:
  11. for annotation_file in annotation_files:
  12. # 提取图像文件名
  13. image_file = os.path.splitext(annotation_file)[0] + '.jpg'
  14. # 构建图像路径和标注路径
  15. image_path = os.path.join('/path/to/image/dir', image_file)
  16. annotation_path = os.path.join(annotation_dir, annotation_file)
  17. # 写入图像列表文件
  18. f.write(f'{image_path} {annotation_path}
  19. ')

其中,/path/to/image/dir是图像文件夹的路径。

五、总结

本文介绍了如何使用Labelme制作语义分割数据集,包括Labelme的安装与配置、使用Labelme标注图像以及生成语义分割数据集。通过遵循这些步骤,读者可以轻松地制作自己的语义分割数据集,为深度学习项目提供高质量的数据支持。

六、附录

  1. Labelme官方文档

[Labelme官方文档链接]

  1. json-coco-format库

[json-coco-