• labelme标注格式的数据集转COCO格式脚本


    1. MyEncoder 类
       - 这是一个自定义的 JSON 编码器类,用于处理 NumPy 数据类型。
       - 当将 NumPy 数组或其他 NumPy 数据类型转换为 JSON 格式时,默认的 JSON 编码器无法正确处理。这个自定义的编码器可以解决这个问题。

    2. labelme2coco 类
       - 这是执行从 Labelme JSON 格式到 COCO JSON 格式转换的主要类。

      __init__
         - 初始化类实例,传入 Labelme JSON 文件列表和保存 COCO JSON 文件的路径。

        - **data_transfer**:
         - 处理每个 Labelme JSON 文件,提取图像信息、类别信息和标注信息。

       - **image、categorie、annotation**:
         - 分别从 Labelme JSON 文件中提取图像信息、类别信息和标注信息。

       - **getcatid**:
         - 根据标签获取类别 ID。

       - **getbbox、mask2box**:
         - 计算给定点集或掩码的边界框。

       - **polygons_to_mask**:
         - 将多边形转换为掩码。

       - **data2coco**:
         - 将提取的信息组合成 COCO 格式的字典。

       - **save_json**:
         - 将 COCO 格式的字典保存为 JSON 文件。

    3. **主代码块**:
       - 从 `D:\\desktop\\2023\\Pigseg\\images` 目录下获取 Labelme JSON 文件列表。
       - 调用 `labelme2coco` 类,将 Labelme JSON 文件转换为 COCO JSON 格式,并保存到 `D:\\desktop\\2023\\Pigseg\\train.json` 路径下。

    ,这个脚本的主要功能是将 Labelme 标注格式的 JSON 文件转换为 COCO 标注格式的 JSON 文件,以便在 COCO 数据集框架下使用这些标注数据。这种转换对于将Labelme 创建的标注应用于 COCO 数据集相关的计算机视觉任务非常有帮助。
     

    如果要分为训练集train、验证集val,按一定的比例如7:3,

    我数据集中是一张图片对应一个json文件,则把70%的json文件和图片放到一个文件夹train,把剩下的30%的json文件放到val.下面的脚本文件需要放置对应的路径,记得分别修改路径和对应的train.json和val.json.

    脚本运行后则会生成train.json和val.json两个文件夹,这两个文件夹中对应的就是整合的每张图片的大的json文件,之后就可以到coco格式的模型上进行训练,还需要修改部分函数如coco.py,num_classes.py等。

    如果数据集图片是png,则修改一下脚本中的相应位置即可。

    1. # coding=gbk
    2. import argparse
    3. import json
    4. import matplotlib.pyplot as plt
    5. import skimage.io as io
    6. import cv2
    7. import labelme.utils as utils
    8. import numpy as np
    9. import glob
    10. import PIL.Image
    11. import os
    12. # import PIL
    13. #
  • 相关阅读:
    竣达技术 | 8路IO模块模拟量采集 通讯信号检测 继电器输出控制 可接入漏水和声光
    【JavaWeb从入门到实战】揭开JDBC的神秘面纱之上篇
    spring boot项目生成容器并运行
    web前端大一实训 HTML+CSS+JavaScript王者荣耀(60页) web课程设计网页规划与设计 HTML期末大作业 HTML网页设计结课作业
    Mac下安装与配置Jenkins
    基本知识:block/sleep/hang/宕机/hook/stub/offload/overhead/watermark
    前端拿到url地址拼接的参数
    ADB调试--详细教程(附华为手机无法显示设备解决方法)
    leetcode 50. Pow(x, n)
    数据科学AB测试(说人话系列)
  • 原文地址:https://blog.csdn.net/qq_53682472/article/details/139331253