从Labelme标注得到的json文件中获取掩码

1、Labelme

      Labelme是深度学习(语义分割、实例分割)需要用到的图像标注软件。在标注好目标后会生成json文件,json文件中包含了标注的坐标点信息,类别信息,原始图像信息。

2、背景

    通常在语义分割或者实例分割中GT(真实掩码)是一个多值(多=class_num+1)数组,实际上json文件清晰友好,但很多网络教程中的解析json文件都过于繁琐,个人觉得没有必要。因此在这里写的简单一些,供大家参考。

3、代码

     argparse是一个命令行解析模块(如果不喜欢可以不用),这里设了两个位置参数,第一个是json的文件目录路径,第二个是npy文件的保存目录路经。其中label_name_to_value是标签的信息,需要自己设置一下。utils.shapes_to_label(img.shape, data['shapes'], label_name_to_value)—>>>能够返回一个真实掩码的数组。

import argparse
import json
from labelme import utils
import numpy as np
import os


def create_npy():
    parser = argparse.ArgumentParser()
    parser.add_argument("json_file",help="input the json files'dir path")
    parser.add_argument("out_npy", help="input the out npy files'dir path")
    args = parser.parse_args()

    json_path = args.json_file
    npy_path = args.out_npy

    name_list=os.listdir(json_path)
    label_name_to_value = {'_background_': 0, "girl": 1, "cat": 2}
    i=0
    for name in name_list:
        if name.split(".")[-1] == "json":
            i += 1
            print("第%d个json文件,名字是:"%i,name)
            per_json=os.path.join(json_path,name)
            data = json.load(open(per_json))
            img = utils.img_b64_to_arr(data["imageData"])
            lbl = utils.shapes_to_label(img.shape, data['shapes'], label_name_to_value)
            base = name.split(".")[0] + ".npy"
            save_path = os.path.join(npy_path,base)
            np.save(save_path, lbl)
if __name__=="__main__":
    create_npy()

4、总结

      。。。。。。有错误的地方希望大家批评指正。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超超爱AI

土豪请把你的零钱给我点

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值