coco关键点标注json_coco标注信息与labelme标注信息的详解、相互转换及可视化

引言

在做实例分割或语义分割的时候,我们通常要用labelme进行标注,labelme标注的json文件与coco数据集已经标注好的json文件的格式和内容有差异。如果要用coco数据集的信息,就要对json文件进行修改和转换。本博客提供两种格式的具体内容及含义以及两种格式相互转换的代码,并对两种格式的json标注信息进行可视化。

1.coco格式的json标注信息详解及可视化

从coco官网下载coco的数据集里面,关于实例的标注信息在“annotations_trainval2017.zip”压缩文件里面的“instances_train2017.json”和“instances_val2017.json”里面,分别是训练集和验证集的标注信息。

下载地址:

训练集图片:http://images.cocodataset.org/zips/train2017.zip

验证集图片:http://images.cocodataset.org/zips/val2017.zip

测试集图片:http://images.cocodataset.org/zips/test2017.zip

训练集、验证集标注信息:http://images.cocodataset.org/annotations/annotations_trainval2017.zip

http://images.cocodataset.org/annotations/stuff_annotations_trainval2017.zip

http://images.cocodataset.org/annotations/panoptic_annotations_trainval2017.zip

由于“instances_train2017.json”里面把所有训练集图片的标注信息整合到一个文件了,文件非常大,不太好查看内部具体内容。我从这个文件中提取出一张图片的信息保存成一个新的json文件。

json文件内主要字段:

代码如下:

#-*- coding: utf-8 -*-

from __future__ importprint_function"""Created on Thu Aug 15 13:58:40 2019

@author: Taoting"""

'''从coco的标注文件里提取一张图片对应的json信息,并保存成新的json文件(以instance为例,其他的类似)。'''

importmatplotlib.pyplot as pltimportos, sys, zipfileimporturllib.requestimportshutilimportnumpy as npimportskimage.io as ioimportpylabimportjsonfrom pycocotools.coco importCOCO

pylab.rcParams['figure.figsize'] = (8.0, 10.0)

json_file='../../../coco dataset/annotations_trainval2017/instances_val2017.json' ## Object Instance 类型的标注#json_file='./annotations/person_keypoints_val2017.json' # Object Keypoint 类型的标注格式#json_file='./annotations/captions_val2017.json' # Image Caption的标注格式

data=json.load(open(json_file,'r'))

data_2={}

data_2['info']=data['info']

data_2['licenses']=data['licenses']

data_2['images']=[data['images'][0]] #只提取第一张图片

data_2['categories']=data['categories']

annotation=[]#通过imgID 找到其所有instance

imgID=data_2['images'][0]['id']#print(imgID)#397133#initialize COCO api for instance annotations

coco=COCO(json_file)

img=coco.loadImgs([imgID])#print(img)#[{'license': 4, 'file_name': '000000397133.jpg', 'coco_url': 'http://images.cocodataset.org/val2017/000000397133.jpg',#'height': 427, 'width': 640, 'date_captured': '2013-11-14 17:02:52', 'flickr_url': 'http://farm7.staticflickr.com/6116/6255196340_da26cf2c9e_z.jpg', 'id': 397133}]#print(img['file_name'])#load and display image

I = io.imread('../../../coco dataset/val2017/%s' % img[0]['file_name'])#use url to load image#I = io.imread(img['coco_url'])#plt.axis('off')#plt.imshow(I)#plt.show()

for ann in data['annotations']:if ann['image_id']==imgID:

annotation.append(ann)

data_2['annotations']=annotation#保存到新的json</

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值