【制作自己的COCO数据集用于Mask_rcnn模型训练与预测推理】

在这里插入图片描述
   导师优快云:太阳花的小绿豆、哔哩哔哩:霹雳吧啦Wz
   优快云-Mask rcnn代码及详解链接: link
   所有基础分类、检测、分割代码都可至霹雳吧啦Wz的GitHub获取 link

一、Mask_rcnn训练COCO数据集介绍:

   1、mask_rcnn路径下data数据集构成如下:

在这里插入图片描述
   其中,annotations为训练集的标注信息,train2017为训练图片,val2017为验证图片,分别如下所示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
   对coco数据集不了解的朋友,可以点击链接: link

二、准备自己的数据集,然后进行labelme标注:

1、通过labelme.exe对自己准备的数据集进行标注,如下所示:
在这里插入图片描述
   将标注的图片及对应json文件随意对应选取一部分用于训练,另一部分用于验证(可以通过代码随机挑选,也可以自己复制粘贴进行分离)

三、自行分离数据

在这里插入图片描述
在这里插入图片描述
   将对应的训练集和验证集图片及json文件放至自己建立的文件夹下,切记不要错乱了。最后,还有标注文件的处理,第四点讲解。

四、labelme标注json文件转coco数据集标注json文件

    提示:因为labelme标注生成的json文件信息与coco数据集标注json文件信息有所差异,Mask_rcnn训练以及推理需要coco数据集json格式。
   如下图所示,将第三点中分离的train训练图以及对应的json文件放入如下文件夹内:
在这里插入图片描述
在这里插入图片描述
   通过lableme2coco.py代码,将自己标注的数据集转成coco需要的格式,验证集也是如此,lableme2coco.py代码如下。
   下面展示一些 内联代码片

// An highlighted block
import json
import glob
import PIL.Image
import PIL.ImageDraw
import os
import base64
import io
import numpy as np
import PIL.ExifTags
import PIL.Image
import PIL.ImageOps
import shutil


def img_b64_to_arr(img_b64):
    f = io.BytesIO()
    f.write(base64.b64decode(img_b64))
    img_arr = np.array(PIL.Image.open(f))
    return img_arr


def img_arr_to_b64(img_arr):
    img_pil = PIL.Image.fromarray(img_arr)
    f = io.BytesIO()
    img_pil.save(f, format='PNG')
    img_bin = f.getvalue()
    if hasattr(base64, 'encodebytes'):
        img_b64 = base64.encodebytes(img_bin)
    else:
        img_b64 = base64.encodestring(img_bin)
    return img_b64


def img_data_to_png_data(img_data):
    with io.BytesIO() as f:
        f.write(img_data)
        img = PIL.Image.open(f)

        with io.BytesIO() as f:
            img.save(f, 'PNG')
            f.seek(0)
            return f.read()


def apply_exif_orientation(image):
    try:
        exif = image._getexif()
    except AttributeError:
        exif = None

    
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值