将Labelme标注的数据做成COCO格式的数据集(实例分割的数据集)

本文介绍了如何将使用Labelme标注的多边形框数据转换为COCO格式的数据集,适用于实例分割任务。通过运行特定的Python脚本如labelme2coco.py和labelme2cocoGuan.py,将标注的JSON文件和图像整合到COCO标准的结构中,包括annotations和images文件夹。此外,文章还提到了安装pycocotools的注意事项以及转换过程中可能出现的问题和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里说明一下:

Labelme标注数据时候是用的多边形框,关于标注,可以看前面的博客文章

下面制作的COCO数据集是用于实例分割的数据集。

COCO格式数据集的制作

1、labelme标注的数据转coco数据集

Anaconda Prompt里 F:\rockdata 下的目录运行指令:

这里需要注意是在activate labelme后

python labelme2coco.py NoObeject

NoObeject是放json文件和图像的文件夹名字。

下载:labelme2coco.py 代码,运行,无需修改。

运行代码会生成一个文件,trainval.json

 

代码参考:

github.com/Tony607/labelme2coco

视频参考:

labelme转coco与多个coco文件的合并_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1g44y147C9

 2、labelme转coco数据集

源代码运行后,train和val文件夹下为空,原因是:写入图像的路径可能不对,修改源代码后正常:

代码如下:

import os
import json
import numpy as np
import glob
import shutil
import cv2
from sklearn.model_selection import train_test_split

np.random.seed(41)
#rock1
#rock2
#rock3
#rock4
#rock5
#rock6
#rock7
#rock8
#rock9
#rock10
#rock11
#sand_wave1
#sand_wave2
#sand_wave3
#sand_wave4
#sand_wave5
#sand_wave6
#sand_wave7
#sand_wave8
#sand_wave9
#sand_wave10
#sand_wave11

# 0为背景
classname_to_id = {
    "1": 1,
    "2": 2,
 }
#注意这里:yxf
#需要从1开始把对应的Label名字写入:这里根据自己的Lable名字修改

class Lableme2CoCo:

    def __init__(self):
        self.images = []
        self.annotations = []
        self.categories = []
        self.img_id = 0
        self.ann_id = 0

    def save_coco_json(self, instance, save_path):
        json.dump(instance, open(save_path, 'w', encoding='utf-8'), ensure_ascii=False, indent=1)  #
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值