人工智能学习:Microsoft COCO数据集读取(7)
创始人
2024-01-21 15:40:54

Microsoft COCO(Common Objects in Context)是微软研发维护的一个大型的数据集。包含了30多万张图片和91个目标分类。可用于目标识别(Object Detection)、场景感知(Penoptic Segmentation)、语义分割(Stuff Segmentation)、标题生成(Image Captioning)等任务。

1 数据集下载
MS COCO数据集可以通过官方网站下载
https://cocodataset.org/#home

进入下载页面
https://cocodataset.org/#download

2017相关的为最新发布的数据集
在这里插入图片描述
包含三个图像数据文件(Train、Val、Test)和系列标注文件,针对不同的识别任务。

数据下载后解压,产生四个子目录,分别train2017、val2017、test2017和annotations。其中前面三个为训练、评估、测试的图像数据,annotations目录为这些图像的标注信息。包含针对多种任务类型的标注。目录结构如下

train2017			#训练图像目录
val2017				#评估图像目录
test2017			#测试图像目录
annotations 		#标注文件夹├── captions_train2017.json				#图像标题标注(训练集)├── captions_val2017.json				#图像标题标注(评估集)├── instances_train2017.json			#目标检测、语义分割标注(训练集)├── instances_val2017.json				#目标检测、语义分割标注(评估集)├── panoptic_train2017.json				#全景感知标注(训练集)├── panoptic_val2017.json				#全景感知标注(评估集)├── person_keypoints_train2017.json		#人体关键点检测标注(训练集)├── person_keypoints_val2017.json		#人体关键点检测标注(评估集)├── stuff_train2017.json				#目标检测、语义分割标注(训练集)└── stuff_val2017.json					#目标检测、语义分割标注(评估集)

2 数据读取
通过annotations中的文件可以提取图片以及对应的标注信息,以图像标题标注文件为例。
首先,载入需要的模块

import matplotlib.pyplot as plt
import matplotlib.image as mpimgimport json
import random

其中matplotlib用于显示数据集中的图片,以及对应的标注。json用于载入标注文件。random用于从数据中随机选择样本显示。

指定数据目录

# specify paths
data_path = '../data/COCO'
anno_path = f'{data_path}/annotations'
train_path = f'{data_path}/train2017'

然后读取图像标题标注文件

# load json file, caption annotations
json_file = f'{anno_path}/captions_train2017.json'with open(json_file, 'r') as f:json_data = json.load(f)images = json_data['images']
annotations = json_data['annotations']

载入的json数据包含多个成员变量。运行

json_data.keys()

显示

dict_keys(['info', 'licenses', 'images', 'annotations'])

包含info、license、images、annotations四个变量,其中images为图像信息,包含图像的大小、文件名等信息,annotations为标注信息

然后绘制2x2四张图片以及它们所对应的标题标注,代码如下

# lines and columns of subplots
m = 2
n = 2
num = m*n# size of figure
plt.figure(figsize=(12,12))# randomly choose images and plot
for i in range(num):# randomly choose imageimage_item = random.choice(images)image_id = image_item['id']image_file = f'{train_path}/{image_item["file_name"]}'captions = [anno['caption'] for anno in annotations if anno['image_id']==image_id]# subplotplt.subplot(m,n,i+1)img = mpimg.imread(image_file)plt.imshow(img)plt.xticks([])plt.yticks([])plt.xlabel('\n'.join(captions), fontsize=12)plt.show()

首先在图像列表images中随机选择4张图片,对于每一张图片,读取它们的id信息,然后在annotations中查找与这个图片相关的标注。最后绘制图片,并在图片下方显示图片的标题,多个标题以每一行进行分开。

显示结果如下
在这里插入图片描述

随机列出4张图片,每一张图片包含5个标题的标注。

参考链接:
https://blog.csdn.net/qq_44554428/article/details/122597358
https://blog.csdn.net/qq_52053775/article/details/126196060

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
1和0什么意思网络用语 0和1... 最近,有网友给大家出了份考卷,卷面是几位“00后”的QQ对 话:dbq、xswl、nss、nbcs、...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
七大洲八大洋 七大洲简易图三角... 一、北美洲(中北美和加勒比海)北美洲面积约2471万平方公里,居世界第三。人口约5.79亿(2016...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...