人工智能学习:Microsoft COCO数据集读取(7)

2023-05-16

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 mpimg

import 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为标注信息

然后绘制一些图片以及它们所对应的标题标注,代码如下

# 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 image
    image_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]

    # subplot
    plt.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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

人工智能学习:Microsoft COCO数据集读取(7) 的相关文章

  • oracle alter system命令使用

    我們可以利用alter system語句在數據庫咝羞 程中修改初始化參數的值 如果instance在啟動時使用的是文本初始化參數文件 那樣我們在利用alter system語句修改的初始化參數僅在當前的instance中有效 并且所做的修改
  • C++11 chrono计时

    我的C 文章列表 C 中Duration Time point和Clocks 万里归来少年心的博客 CSDN博客 time point C 11中的chrono库 实现时间相关的功能 1 time point time point表示一个时
  • vcruntime140_1.dll丢失怎么办?vcruntime140_1.dll丢失最新解决方法

    如果您在使用某些软件或游戏时遇到了 vcruntime140 1 dll丢失 的错误提示 那么您需要采取一些措施来解决这个问题 以下三种解决方案都能解决vcruntime140 1 dll丢失问题 第一种解决方法 直接使用dll修复程序进行
  • CheckNetisolation加速microsoft store访问(需使用代理)

    CheckNetisolation命令行工具 1 通过注册表获取 Microsoft Store 应用的 SID 通过 Win R 快捷键打开 运行 窗口 输入 Regedit 打开注册表编辑器 然后逐级定位到HKEY CURRENT US
  • 【历史上的今天】10 月 2 日:ENIAC 计算机退休;贝尔德发明电视;香港科技大学办学

    整理 王启隆 透过 历史上的今天 从过去看未来 从现在亦可以改变未来 今天是 2021 年 10 月 2 日 在历史上今天发生的科技关键事件不比昨天要少 举世闻名的通用电子计算机 ENIAC 便在今天退休 我国享誉世界的学府香港科技大学正式
  • Dynamics 365应用程序开发 - 6. 使用Microsoft Flow自动化业务流程

    在上一章中 我们了解了如何使用Microsoft PowerApps轻松创建自定义商业应用程序 在本章中 我们将了解Microsoft Flow 它可以定义为一种基于云的服务 使用户能够构建跨多个应用程序和服务自动化不同任务和流程的工作流
  • 注册表常用键值意义

    HKEY CURRENT USER Software Policies Microsoft Internet Explorer Control Panel Internet Explorer选项类 HomePage dword 000000
  • flutter 秒转时分秒

    参考 倒计时工具 class CountdownUtils 补零 static String zeroFill int i return i gt 10 i 0 i 秒转时分秒 static String second2HMS int se
  • 人工智能学习(一)newff函数介绍

    以下是matlab中的newff函数说明 不是neurolab中的newff 两者的参数不同 newff函数 指的是训练前馈网络的第一步是建立网络对象 实质是newff函数的参数 newff函数的格式为 net newff PR S1 S2
  • COCO数据集格式(详解)及COCO标注可视化。json转COCO等代码

    coco数据集JSON文件格式分为一下几个字段 info info dict licenses license list 内部是dict images image list 内部是dict annotations annotation li
  • 如何修改NuGet默认全局包文件夹的位置?

    由于一些历史原因 重装系统成为Windows用户解决疑难杂症的祖传手艺 受此影响 给硬盘分区几乎成为了一种执念 少则C D两个盘 夸张一点的5 6个盘的也不是没有 PS macOS和Linux一直都不鼓励给磁盘分区 虽然不禁止但也不提倡 随
  • 扬帆证券:新三板是在北交所吗?新三板与北交所是一回事吗?

    新三板不在北交所 与北交所不是一回事 新三板是全国中小企业股份转让体系 归于场外商场 不能满意上市要求的中小企业就可以请求在新三板挂牌生意 北交所是中国第一家公司制证券生意所 是场内商场 在北交所的公司是上市公司 新三板 新三板商场分为根底
  • 扬帆证券:北向资金净买入创4个月新高 A股11月结构性走强

    11月最终一个交易日 北向资金净买入额创4个月新高 整个11月 上证指数上涨0 36 扭转了此前连续三个月下跌的趋势 特别是当月北交所股票大幅走强 合计成交1740亿元 较10月成交额添加逾越10倍 A股商场已呈现结构性走强特征 有业内人士
  • Microsoft 365 for Mac:提升您的办公效率的终极选择

    在现代工作环境中 高效的办公软件是提高工作效率和团队合作的关键 Microsoft 365 for Mac 前身为Office 365 是微软为Mac操作系统推出的一套全面的办公软件解决方案 为用户提供了强大的工具和功能 帮助您在任何地方都
  • 扬帆证券:什么是股票股利?它和现金股利之间的区别是什么?

    什么是股票股利 股票股利是公司以其所发行股票作为股利的支付办法 它将发放的分红换算为等值的股份 完结持股人股份的增加 对公司来说 选用股票股利进行无偿增发新股时 既不减少公司现金 又能给予股东利润 值得一提的是 如果公司采取现金股利的分红支
  • 扬帆证券:如何投资股票市场?

    怎么出资股票商场 1 选择公司基本面比较强 盈余安稳的公司个股 上市公司较好的基本面会使商场资金逐渐注重 出资者增多 流入资金增多 带动个股上涨 公司的经营成绩较为安稳 商场震动也不会对它们形成过大冲击 在长期的商场趋势下 出资者可以获得较
  • 全面解析找不到xinput1_3.dll无法继续执行代码的多种解决方案(实用教程)

    xinput1 3 dll文件是什么 xinput1 3 dll是一个动态链接库文件 它是DirectInput的组件之一 DirectInput是微软公司开发的一种输入设备驱动程序 用于处理游戏控制器 键盘 鼠标等输入设备的信号 xinp
  • Microsoft Family Safety Microsoft 家庭安全将人员添加到你的家庭组

    在 创建家庭组 后 通过添加家庭成员来浏览 Microsoft 家庭安全 的功能和权益 如果某人已是家庭组成员 则在加入另一个组之前 他们必须 退出该组或从该组中删除 他们还可以 创建一个新的 Microsoft 帐户 以与新的家庭组相关联
  • 扬帆证券:如何辨别股票基本面的好坏?

    怎样区别股票根本面的好坏 教你轻松区别优劣股 1 市盈率 市盈率是指一个公司股票的价格相对于其每股收益的比率 是衡量一家公司是否被高估或轻视的重要方针之一 2 市净率 市净率指的是每股股价与每股净资产的比率 一般来说市净率较低的股票 出资价
  • 对中国手机作恶的谷歌,印度CEO先后向三星和苹果低头求饶

    日前苹果与谷歌宣布合作 发布了 Find My Device Network 的草案 旨在规范蓝牙追踪器的使用 在以往苹果和谷歌的生态形成鲜明的壁垒 各走各路 如今双方竟然达成合作 发生了什么事 首先是谷歌安卓系统的市场份额显著下滑 数年来

随机推荐

  • 常用Git命令

    通过git命令可以对项目代码库执行克隆 拉取 提交等操作 常用的git命令有如下 git clone 克隆代码库 xff0c 把远程代码库克隆到本机当前目录 xff0c 如 git clone https github com PX4 PX
  • 【Android】原来Toolbar还能这么用?Toolbar使用最全解析。网友:终于不用老是自定义标题栏啦

    一个Toolbar的UI可以做成什么样 xff1f 做出什么效果 xff1f 这是我最近在研究的问题 目录 带导航图标的Toolbar带标题的Toolbar带小标题的Toolbar带Logo的Toolbar带进度条的Toolbar带菜单的T
  • Linux安装Beyond Compare

    Beyond Compare是一款很好用的代码比对软件 xff0c 提供了在Windows xff0c Linux等平台的安装包 在Linux下安装Beyond Compare的方法如下 参考链接 xff1a https www scoot
  • Linux下压缩解压文件和目录的方法(zip, tar)

    Linux下可以用zip命令方便的压缩文件或文件夹 压缩文件 zip data zip data xls zip data zip data1 xls data2 xls 上述命令把一个文件或者多个文件压缩到一个zip文件 压缩目录 zip
  • Jupyter Notebook安装

    Jupyter Notebook是一个非常好用的交互式Python运行的软件 安装方法如下 在命令行输入 pip3 install jupyter 安装后根据提示 xff0c Jupyter相关软件安装在 local bin目录下 xff0
  • Ubuntu添加截屏快捷键的方法

    在Ubuntu下面具有截屏的命令 xff08 gnome screenshot xff09 xff0c 可以通过简单的设置方便的添加截屏快捷键 通过 Settings gt Devices gt Keyboard选项 xff0c 添加快捷键
  • Windows下修改Jupyter Notebook默认字体的方法(custom.css)

    在Windows下Jupyter Notebook代码显示的默认字体为宋体 xff0c 视觉效果不是很好 xff0c 可以通过设置修改默认的显示字体 通过用户目录 C User Administrator jupyter custom 下的
  • Jupyter Notebook添加代码自动补全功能的方法

    Jupyter Notebook成为一款非常受欢迎的交互式Python运行环境的软件 通过如下的方法可以添加代码自动补全的功能 输入命令安装插件 pip3 install jupyter contrib nbextensions 然后运行
  • 修改grub默认启动选项的方法

    在Windows系统基础上 xff0c 再安装Linux xff0c 形成双系统 这样在grub启动菜单中会包含Linux Windows等多个选项 xff0c 默认为第一个选项 xff0c 常规的Linux启动 通过修改配置文件 etc
  • 在云服务器上搭建Jupyter Notebook服务

    Jupyter Notebook提供了远程登录的功能 xff0c 可以在云服务器上配置Jupyter Notebook xff0c 用户可以远程登录和运行Python代码 这里使用的是腾讯云的Ubuntu服务器 xff0c 配置方法如下 1
  • 常用Linux命令

    记录一些常用的Linux命令 1 用户管理 增加用户 useradd lt user name gt useradd g lt group name gt lt user name gt g选项指定新用户所属的用户组 修改用户的组别 use
  • 在云服务器上安装VNC远程桌面服务

    云服务器操作系统通常不包含图形界面 xff0c 通过在服务器上安装VNC服务 xff0c 可以让用户以图形化界面远程登录到云服务器 这里服务器使用的是Ubuntu Server 18 04系统 1 安装图形界面 首先在服务器端安装图形化桌面
  • 【Android】ADB无线连接Android设备

    目录 简介无线连接的条件adb连接设备方法一方法二 修改端口号方法一方法二 辅助工具android toolscrcpy gui 问题集合 简介 Android Debug Bridge xff0c 简称adb xff0c 是一种功能多样的
  • 人工智能学习:载入MNIST数据集(1)

    MNIST数据集是人工智能学习入门的数据集 xff0c 包含了一系列的手写的数字图片 载入MNIST数据集的方法很简单 xff0c Tensorflow集成了载入数据集的方法 首先导入tensorflow模块和matplotlib pypl
  • 人工智能学习:MNIST数据分类识别神经网络(2)

    在MNIST数据集上构建一个神经网络 xff0c 进行训练 xff0c 以达到良好的识别效果 1 导入模块 首先 xff0c 导入必要的模块 span class token keyword import span numpy span c
  • 人工智能学习:NMIST数据分类识别-CNN网络(3)

    这里采用CNN模型 xff08 卷积神经网络 xff09 来进行MNIST数据集的分类识别 1 导入模块 首先 xff0c 导入需要的模块 span class token keyword import span numpy span cl
  • 人工智能学习:CIFAR-10数据分类识别(4)

    与MNIST类似 xff0c CIFAR 10同样是人工智能学习入门的数据集之一 xff0c 它包含飞机 汽车 小鸟等10个类别的图片 xff0c 一共60000张图片 xff0c 其中训练集占50000张 xff0c 测试集占10000张
  • 人工智能学习:CIFAR-10数据分类识别-VGG网络(5)

    这里尝试采用VGG网络对CIFAR 10数据集进行分类识别 1 导入需要的模块 span class token keyword import span numpy span class token keyword as span np s
  • 人工智能学习:PASCAL VOC数据集读取(6)

    PASCAL VOC是一个国际的计算机视觉挑战赛 xff0c 数据集包含了20个分类的3万多张图片 挑战赛及其数据集基础上涌现不少知名的目标检测模型如R CNN xff0c YOLO xff0c SSD等 可以通过下载和读取的方法载入PAS
  • 人工智能学习:Microsoft COCO数据集读取(7)

    Microsoft COCO xff08 Common Objects in Context xff09 是微软研发维护的一个大型的数据集 包含了30多万张图片和91个目标分类 可用于目标识别 xff08 Object Detection