这里说明一下:
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) #