这篇文章只讲下VQA的文件结构和文件内容,官方工具的用法及一些小技巧。

VQA数据集概况

其实VQA有很多种数据集,比较常用的有VQA v1.0、 VQA v2.0、Visual7W等。这篇文章中使用的数据集主要是VQA v1.0(其实和2.0差不多,读取方式没变,只是优化了内容,让模型更加不容易通过蒙来答对问题)。

直接开始吧。

VQA V1.0结构及内容概要

VQA v1.0的数据集内容如下1

VQA的结构:

以上图片截图自VQA官网

总之就是每张图片对应3个以上的问题(平均5.4个),每个问题对应10个正确答案和3个可能是正确的答案。

VQA文件结构

VQA文件主要分为图片、Questions和Annotations,test数据集没有Annotations文件。文件格式为json。

截图自官网

用到的数据主要是上图中框出来的部分(至少要下载框中的文件,旁边的Tools可以下可以不下,但是建议下载)。有些图片是单通道的(即黑白图片),这点可能在编写预处理程序的时候需要注意下。数据分为train、val、test、test-dev(test和test-dev的区别是:最后需要生成答案上传到服务器,test-dev可以上传9999次,每天最多上传10次,test总共只能上传5次,每天只能上传1次),各个集合的问题和答案(test不公布答案)分别存放在单独的json文件中。

大概就是上图的样子,通常只用“OpenEnded”部分(2.0版本VQA只有OpenEnded部分,没有MultipleChoice,所以接下来只讲OpenEnded部分)。“Annotations”就是答案,要搭配train和val的questions文件使用。

文件内容结构

Questions

train、val、test、test-dev的JSON文件内容结构都是一样的,这里就拿train的内容为例。

OpenEnded_mscoco_train2014_questions.json的内容结构如下:

info|-description|-url|-version|-year|-contributor|-date_created
task_type
data_type
license|-url|-name
data_subtype
questions(最重要的部分)注意,questions下的内容为listlist中保存着多个“图片id-问题-问题id”组成的dict类型数据以下key为每条dict类型数据中的keys|-question(问题内容)|-image_id(图片id)|-question_id(问题id,用来查找对应的答案)

注意,JSON读取出来的内容是字典格式,所以可以用Python内置的.keys()来显示Key:

Annotations

mscoco_train2014_annotations.json内容结构如下:

info|-description|-url|-version|-year|-contributor|-date_created
data_type
license
data_type
license|-url|-name
annotations(类似上面的questions的内容)|-question_type|-multiple_choice_answer|-answers|-image_id|-answer_type|-question_id

使用官方工具来搜索问题对应的答案

因为原文件中图片id、问题、问题答案之间的关系不是一一对应关系,所以官方提供了工具来读取原文件内容。工具下载页面为:工具的GitHub页面。因为工具是用Python 2编写的,所以如果需要用Python 3的话就要用Python内置的工具2to3来进行转换,具体操作就是2to3 -w 脚本名。转换之后可能需要改动一些细节才能成功使用。用到的脚本为PythonHelperTools/vqaTools/vqa.py,其他的可用可不用。

具体用法:

from vqa import VQAtrain_a_json = '到答案JSON文件的路径'
train_q_json = '到问题JSON文件的路径'train_vqa = VQA(train_a_json, train_q_json)# 获取问题ID
train_question_ids = train_vqa.getQuesIds()
# 获取图片ID
train_image_ids = train_vqa.getImgIds()# 通过train_vqa.qa获取问题对应的所有答案及图片ID
print(train_vqa.qa[train_question_ids[0]])

更多用法请参考VQA官方工具的GitHub页面。

参考

VQA官网
VQA官方工具的GitHub页面


  1. 资料来自VQA官网 ↩︎

VQA(图像问答)数据集结构及大致内容相关推荐

  1. ITK:对图像中的结构进行分割

    ITK:对图像中的结构进行分割 内容提要 输出结果 C++实现代码 内容提要 根据用户提供的边缘电势图对图像中的结构进行分割. 输出结果 使用的参数: 左心室:81114 5.0 1.0 -0.5 3 ...

  2. 【文献阅读】FloodNet——洪水灾害的VQA问答数据集(M. Rahnemoonfar等人,ArXiv,2020)

    一.背景 文章题目:<FloodNet: A High Resolution Aerial Imagery Dataset for Post Flood Scene Understanding& ...

  3. Stacked Attention Networks for Image Question Answering(用于图像问答的堆叠注意力网络)

    Stacked Attention Networks for Image Question Answering Abstract 1.introduction 2. 相关工作 略 3.堆叠注意力网络( ...

  4. ACL2022 | 面向中文真实搜索场景的开放域文档视觉问答数据集

    每天给你送来NLP技术干货! 论文名称:DuReadervis: A Chinese Dataset for Open-domain Document Visual Question Answerin ...

  5. 电子科大(申恒涛团队)京东AI(梅涛团队)提出用于视频问答的结构化双流注意网络,性能SOTA!优于基于双视频表示的方法!...

    本文分享论文『Structured Two-stream Attention Network for Video Question Answering』,由电子科大(申恒涛团队)&京东AI(梅 ...

  6. 开源开放 | 计算机科学示意图问答数据集CSDQA(CCKS2021)

    OpenKG地址:http://openkg.cn/dataset/csdqa 开源地址:http://zscl.xjtudlc.com:888/CSDQA/ 开放许可协议:CC BY-SA 4.0 ...

  7. 深度学习中的VQA(视觉问答)技术

    视觉问答(Visual Question Answering,VQA)是一个需要理解文本和视觉的新领域.由于深度学习技术显著地改善了自然语言处理和计算机视觉结果,我们可以合理地预期VQA将在未来几年变 ...

  8. 【阿里云课程】图像翻译GAN结构与应用

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第11课中的一节,介绍如下: 图像翻译GAN结构与应用 本次课程是阿里天池联合有三AI推出的深度学习系列课程第11期,深度生 ...

  9. yolo v3制作自己的数据_【手把手AI项目】五、自己制作图像VOC数据集--Objection Detection(目标检测)...

    文章首发于我的个人博客 [手把手AI项目]五.自己制作图像VOC数据集--用于Objection Detection(目标检测)​blog.csdn.net 喜欢手机观看的朋友也可以在我的个人公号: ...

最新文章

  1. github一些常见命令
  2. 学习编写用例是开发者走向项目经理的必经之路(《编写有效用例》书评) ——“Jolt大奖精选丛书”有奖征文...
  3. 讲oracle个阶段书籍6,经典图书推荐系列-之六
  4. python之路----验证客户端合法性
  5. (水题)洛谷 - P1603 - 斯诺登的密码
  6. 使用ACME部署生成阿里云免费HTTPS证书
  7. EntityFramework进阶——数据编辑与维护
  8. 容器编排技术 -- Kubernetes kubectl delete 命令详解
  9. 【报告分享】2020中国低代码平台指数测评报告.pdf(附下载链接)
  10. jboss7的服务器开启和关闭命令
  11. 利用CEF山寨一个翻译器
  12. ARDUINO使用GPRS发送GPS数据到OneNet测试
  13. fatal error: alsa/asoundlib.h: 没有那个文件或目录
  14. 用于热水器行业气密性检测的五款快速密封接头
  15. 【转】全国最佳医院排名
  16. 年轻时放纵享乐,不要指望年老时一念向善
  17. 小波变换第2讲:尺度函数与小波函数
  18. 一起来学SpringBoot(十)缓存的使用
  19. esp8266接入天猫精灵教程,附开源app控制
  20. Spark Shuffle源码分析系列之UnsafeShuffleWriter

热门文章

  1. SDU程序设计思维Week6-限时模拟 掌握魔法の东东II
  2. 解决 “/lib64/libc.so.6: version `GLIBC_2.18‘ not found (required by /lib64/libstdc++.so.6)“
  3. 很棒的 Django 应用程序、项目和资源的精选表单
  4. 使用throttlestop超频,解除锁频和温控
  5. Linux服务器监控cpu数据shell脚本
  6. 如何抓到入侵网站的黑客?
  7. GBASE 8s DB-Access菜单选项说明
  8. 从产品经理能力评估维度,掌握产品经理技能
  9. 基于pytorch实现Word2Vec(skip-gram+Negative Sampling)
  10. AI云边端EasyCVR平台新功能解析:支持为角色选择多级分组