COCO数据集解析生成语义分割mask

COCO数据集解析生成语义分割mask


通过coco数据集的标注文件 — instances_train2014.json / instances_val2014.json 生成语义分割mask存在不同类别区域重叠问题,导致重叠部分像素的数值超出 [0,80] 范围内,模型训练时报错:
103: block: [1,0,0], thread: [448,0,0] Assertion t >= 0 && t < n_classes failed.


coco数据集

将coco数据集用于语义分割需要生成对应的mask,官方下载的coco2014/2017数据集的标注信息:
​​​​图片: Alt
train/val 的注释文件分别有 caption,instance,person_keypoint 这三个任务方向,语义分割注释文件 instances_train2014.json 和 instances_val2014.json ,用于之后的mask提取。

train/val 的 image 文件在 train2014 、val2014、test2014 里,train2014 共有82783张图像,val2014 共有40504张图像。


一、pycocotools — 介绍

COCO是一个大型的图像数据集,用于目标检测、分割、人的关键点检测、实例分割和标题生成。pycocotools 提供了 Matlab、Python 和 luaapi,这些api有助于在COCO中加载、解析和可视化注释。请访问http://cocodataset.org/,可以了解关于COCO的更多信息,包括数据、论文和教程。COCO网站上也描述了注释的确切格式。

linux 安装 pycocotools

pip install pycocotools

因为 pycocotools 并不支持 windows 平台,采用上述命令会安装失败。采用以下方法安装:

  1. 查询 anaconda 对 pycocotools 的支持,点击 https://anaconda.org/search?q=pycocotools 在搜索栏输入 pycocotools :
    在这里插入图片描述
  2. 查看 conda-forge 支持的安装命令:
    在这里插入图片描述
  3. 在终端输入上诉任一命令,安装 pycocotools 包

二、基于 pycocotools 提供的 api 生成 mask 标注

1.引入库

代码如下:

import shutil
import cv2
from PIL import Image
import imgviz
import argparse
import os
import tqdm
import numpy as np
from pycocotools.coco import COCO  # COCO 数据集标注解析库

2.设置数据路径(train / val)

代码如下:

def get_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("--input_dir", default="/home/yc/onionDocument/code/model/MSCOCO2014/", type=str,
                        help="input dataset directory")  # coco数据集路径
    parser.add_argument("--split", default="train2014", type=str,
                        help="train2014 or val2014")  # 解析训练数据(train)或者验证数据(val)
    return parser.parse_args()

2.读入数据生成 mask(train / val)

  • 标注信息保存路径
    annotation_file = os.path.join(args.input_dir, 'annotations', 'instances_{}.json'.format(args.split))  # 标注文件路径
    # 保存方式有两种,一种为灰度模式、一种为调色板模式
    os.makedirs(os.path.join(args.input_dir, 'train2014_annotations'), exist_ok=True)  # 灰度模式
    os.makedirs(os.path.join(args.input_dir, 'Binary_map_aug'), exist_ok=True)  
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值