推荐使用Labelme2YOLO: 轻松转换您的标注数据集到YOLO格式

推荐使用Labelme2YOLO: 轻松转换您的标注数据集到YOLO格式

Labelme2YOLOHelp converting LabelMe Annotation Tool JSON format to YOLO text file format. If you've already marked your segmentation dataset by LabelMe, it's easy to use this tool to help converting to YOLO format dataset.项目地址:https://gitcode.com/gh_mirrors/la/Labelme2YOLO

在计算机视觉领域,标注数据是模型训练的关键。Labelme是一款强大的图像标注工具,它允许用户以JSON格式保存图像的边界框和分割信息。然而,许多深度学习模型,尤其是目标检测模型,如YOLO,它们依赖于特定的文本文件格式来加载训练数据。这就是Labelme2YOLO的用武之地,一个简洁的Python工具,能够将Labelme的JSON格式无痛地转化为YOLO所需的文本格式。

项目介绍

Labelme2YOLO是一个简单易用的脚本,旨在帮助研究人员和开发者快速将他们的Labelme标注数据转换为适用于YOLO(You Only Look Once)目标检测框架的格式。这个工具不仅支持批量转换整个目录下的JSON文件,还可以按指定比例拆分为训练和验证数据集,甚至可以处理单个JSON文件,灵活性非常高。

项目技术分析

Labelme2YOLO的核心功能在于解析JSON文件,提取边界框信息,并将其转化为YOLO所需的行式文本格式。此外,当使用--seg参数时,该工具还能将标注数据转换为YOLOv5支持的实例分割格式。这一特性使得Labelme2YOLO能兼容各种目标检测和分割任务,极大地扩展了其应用范围。

应用场景

  • 对于正在开发或优化目标检测模型的研究者来说,Labelme2YOLO可以帮助他们快速准备符合YOLO格式的数据集。
  • 教育环境中的学生和教师可以利用这个工具简化数据预处理步骤,专注于理解和实现模型算法。
  • 在企业环境中,团队可以自动化标注数据的转换过程,提高工作效率。

项目特点

  • 简单易用: 只需几行命令,即可完成数据转换,无需复杂的代码编写。
  • 灵活多样: 支持批量转换、按比例划分数据集以及单个文件转换,满足不同需求。
  • 兼容性广: 除了基础的目标检测格式,还支持YOLOv5的实例分割格式,适应更多应用场景。
  • 高效稳定: 已经在Centos 7/Python 3.6环境下测试通过,确保良好的运行效果。

总的来说,Labelme2YOLO是连接Labelme标注和YOLO模型训练之间的理想桥梁,无论你是新手还是经验丰富的开发者,都值得尝试。只需几个简单的步骤,你就可以从繁琐的手动转换工作中解脱出来,更加专注于模型的优化和研究。现在就将你的Labelme项目转化为YOLO数据集,提升你的计算机视觉工作流程效率吧!

Labelme2YOLOHelp converting LabelMe Annotation Tool JSON format to YOLO text file format. If you've already marked your segmentation dataset by LabelMe, it's easy to use this tool to help converting to YOLO format dataset.项目地址:https://gitcode.com/gh_mirrors/la/Labelme2YOLO

以下是一个示例的Python代码,用于对指定类别的labelme标注的语义分割数据进行增强: ```python import os import cv2 import numpy as np def semantic_segmentation_augmentation(directory, save_directory, target_class): # 遍历指定目录下的文件 for filename in os.listdir(directory): if filename.endswith(".json"): # 查找以.json结尾的文件 json_file = os.path.join(directory, filename) image_file = json_file.replace(".json", ".jpg") # 将.json替换为.jpg if os.path.isfile(image_file): # 检查对应的图片文件是否存在 # 读取图片文件 image = cv2.imread(image_file) height, width, _ = image.shape # 读取JSON文件并获取标注信息 with open(json_file, 'r') as f: json_data = json.load(f) # 创建空白的语义分割图像 seg_image = np.zeros((height, width), dtype=np.uint8) # 处理每个标注对象 for shape in json_data['shapes']: class_name = shape['label'] if class_name == target_class: points = shape['points'] polygon_points = np.array(points, dtype=np.int32) cv2.fillPoly(seg_image, [polygon_points], 255) # 将增强后的语义分割图像保存到指定目录 save_path = os.path.join(save_directory, filename.replace(".json", ".png")) cv2.imwrite(save_path, seg_image) print(f"语义分割图像保存成功:{save_path}") else: print(f"找不到对应的图片文件:{image_file}") # 指定包含labelme标注文件的目录和保存增强后数据的目录 directory = "path/to/labelme/files" save_directory = "path/to/save/augmented/data" # 指定目标类别名称 target_class = "class_name" semantic_segmentation_augmentation(directory, save_directory, target_class) ``` 你需要将代码中的`"path/to/labelme/files"`替换为包含标注文件的实际目录路径,将`"path/to/save/augmented/data"`替换为你想要保存增强后数据的目录路径,将`"class_name"`替换为你想要增强的目标类别名称。运行代码后,它会遍历目录中的所有.json文件,读取标注信息并创建相应的语义分割图像,然后将增强后的语义分割图像保存到指定目录。 希望这可以帮到你!如果有任何问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邬情然Harley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

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

抵扣说明:

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

余额充值