segmentation后 mask图片数据转换成coco对应的json格式

这篇具有很好参考价值的文章主要介绍了segmentation后 mask图片数据转换成coco对应的json格式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

segmentation后
mask二值图片数据转换成coco对应的json格式

import os, json, numpy as np
from tqdm import tqdm
from imantics import Mask, Image, Category, Dataset
import cv2

dataset = Dataset('foot') # 先定义一个数据库对象,后续需要往里面添加具体的image和annotation

path1 = r'\\10.214.150.97\Public\datasets\real_foot\real_foot_2021_03' # image对应的mask的文件路径
for index, j in enumerate(tqdm(os.listdir(path1))):
    if str(j)[-1] == 'r' or str(j)[-1] == 'l':
        path = os.path.join(path1, j, 'masks')
        if not os.path.exists(path):
            path = os.path.join(path1, j, 'mask')
        for index, i in enumerate(tqdm(os.listdir(path))):
            mask_file = os.path.join(path, i)
            name = i.split('.')[0]
            file = os.path.join(path1, j, '{}.jpg'.format(name))

            image = cv2.imread(file)[:,:,::-1]
            image = Image(image, id=index+1) # 定义一个Image对象
            image.file_name = '{}.jpg'.format(name) # 为上面的Image对象添加coco标签格式的'file_name'属性
            image.path = file # 为Image对象添加coco标签格式的'path'属性

            mask = cv2.imread(mask_file, 0)
            ret, mask = cv2.threshold(mask, 0, 255, cv2.THRESH_BINARY)
            t = cv2.imread(file)
            if t.shape[:-1] != mask.shape:
                h, w, _ = t.shape
                mask = cv2.resize(mask, (w, h), cv2.INTER_CUBIC)

            mask = Mask(mask) # 定义一个Mask对象,并传入上面所定义的image对应的mask数组

            categ = 'foot'
            t = Category(categ) # 这里是定义Category对象
            t.id = 1
            image.add(mask, t) # 将mask信息和类别信息传给image
            dataset.add(image) # 往dataset里添加图像以及gt信息

t = dataset.coco() # 将dataset转化为coco格式的,还可以转化为yolo等格式
with open('foot.json', 'w') as output_json_file: # 最后输出为json数据
    json.dump(t, output_json_file)

转出来之后的json数据中segmentation部分会有一些问题,它不是一个1 * n维度的数据 而是包含了很多段,需要合并
如图:
合并之前:
mask转coco,数据集相关,json,opencv,python
合并之后,所有的边缘点在一个list中:
mask转coco,数据集相关,json,opencv,python
最终转好的格式如下图:
mask转coco,数据集相关,json,opencv,pythonmask转coco,数据集相关,json,opencv,python

合并代码:文章来源地址https://www.toymoban.com/news/detail-655456.html

import os
import json
import numpy as np
from tkinter import _flatten

with open('foot1.json','r') as f:
    load_dict = json.load(f)
    list1 = load_dict["annotations"]
    for i in range(0, len(list1)):
        a = list(_flatten(list1[i]["segmentation"]))
        b = np.asarray(a).reshape(1, len(a)).tolist()
        load_dict["annotations"][i]["segmentation"] = b

    # print(len(list1))
    # print(np.asarray(list1).shape)

with open("test.json",'w',encoding='utf-8') as f:
    json.dump(load_dict, f,ensure_ascii=False)

到了这里,关于segmentation后 mask图片数据转换成coco对应的json格式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 代码实现如何将yolov5数据格式转换为coco格式

    很多训练算法使用coco格式,而原版的数据集可能采用yolov5的数据格式,故写个简单的教程; yolov5数据集的目录格式:  images存放的图像,例如 1.jpg,2.jpg. labels存放的是对应图片的标注信息,例如 1.txt,2.txt. txt 中信息是这样的: (框高)每一行对应一个bbox框信息,分别是cla

    2024年02月12日
    浏览(25)
  • Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集

    由于本人水平有限,难免出现错漏,敬请批评改正。 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看 YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制 YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层 YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU YOLOv7训练自己的数据集(口罩检测)

    2024年02月15日
    浏览(21)
  • 数据集格式相互转换——CoCo、VOC、YOLO、TT100K

    将annotations目录下的所有xml标注文件按coco格式写入了json文件中。 此处得到的是全部的标签信息,可根据如下代码进行train、val和test的比例划分: train和val同理。 train、val和test分别执行一次即可。 以上代码参考自博文数据转换。

    2023年04月09日
    浏览(26)
  • 100种目标检测数据集【voc格式yolo格式json格式coco格式】+YOLO系列算法源码及训练好的模型

    提示:本文介绍并分享了应用于 各行业 、 各领域 非常有用的 目标检测数据集 (感谢您的关注+三连, 数据集持续更新中… ),其中绝大部分数据集作者 已应用于各种实际落地项目 ,数据集 整体质量好 , 标注精确 ,数据的 多样性充分 , 训练 模型拟合较好 ,具有较高

    2023年04月09日
    浏览(34)
  • 使用LabelMe标注目标检测数据集并转换为COCO2017格式

    当你安装好labelme启动后,open dir开始标注,选择Create Rectangle 拖拽画框,然后选择类别(没有就直接输入会自动新建),标注好一幅图后点击next image会弹框提示保存json文件,保存即可。 当你将所有图像标注完后,点击Next Image是没有反应的(因为没有Next图了),此时直接x掉

    2024年02月11日
    浏览(27)
  • 利用pycocotools库计算MAP:生成coco格式 json文件数据集和计算map值

    在目标检测任务中,需要通过Map指标判断模型的精度。为了测试engine文件推理结果的精度,本文介绍了如何使用pycocotools库计算Map,在此之前需要根据coco格式生成json文件。 必须按照coco格式生成json,顺序都要保持一致才行,否则报错不通过。 在做验证时,需要提前划分好v

    2024年02月06日
    浏览(41)
  • 将YOLO数据集转成COCO格式,单个文件夹转为单个json文件,例如.../images/train转为instance_train.json

    参考链接 :objectdetection-tricks/tricks_4.py 相关视频教学:tricks_4 用于yolov5和v7中的yolo格式转换coco格式的脚本.(如何在v5和v7中输出ap_small,ap_middle,ap_large coco指标) 还可以参考相关的VOC转COCO的方式:damo-yolo/voc2coco.py 代码效果 :将数据集转成COCO格式, 单个文件夹 转为 单个json 文件

    2024年02月01日
    浏览(35)
  • VOC/YOLO/COCO数据集格式转换及LabelImg/Labelme/精灵标注助手Colabeler标注工具介绍

    数据集格式:VOC(xml)、YOLO(txt)、COCO(json) 本文主要对 Label格式 ,以及 LabelImg、Labelme、精灵标注助手Colabeler 这常用的三种数据标注软件进行介绍。 LabelImg是目标检测数据标注工具,可以标注标注两种格式: VOC标签格式,标注的标签存储在xml文件 YOLO标签格式,标注的标签存储在

    2023年04月22日
    浏览(72)
  • Mask图像与json文件相互转换

    做机器学习处理图像时,需要标注图像,其中一种标注是标出图像中的某些区域,生成Mask图像或记录下这些区域的轮廓点坐标。通常,标注直接生成其中一种文件,即只生成json文件或只生成Mask图像。故在此贴出Mask图像与json文件相互转换的Python代码。 mask_to_json json_to_mask 使

    2024年02月15日
    浏览(29)
  • 语义分割中mask二值图转json格式

    本次文章针对mask黑白图转json格式进行分析 主要分两个步骤: 1、将mask二值图中的目标区域轮廓 ,按照每个点之间的步长进行选取保存,并将每个轮廓的点坐标信息保存至csv文件中。 csv文件格式如下图所示: 程序如下所示: 使用时,注意修改路径:

    2024年02月09日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包