本文记录简单了解VQA的过程,目的是以此学习图像和文本的特征预处理、嵌入以及如何设计分类loss等等.

参考资料:

https://zhuanlan.zhihu.com/p/40704719

https://www.youtube.com/watch?v=ElZADFTer4I

https://www.youtube.com/watch?v=cgOmpgcELPQ https://tryolabs.com/blog/2018/03/01/introduction-to-visual-question-answering/

https://tryolabs.com/blog/2018/03/01/introduction-to-visual-question-answering/

VQA定义:

给定一张图像和一个相关文字问题,从若干候选文字回答中选出正确答案.

常用策略是CNN提取图像特征,RNN提取文本特征,将图像特征和文本特征进行融合,然后通过全连接层进行分类.关键在于如何融合这两个模态.

Visual Question Answering (VQA) by Devi Parikh

Why Words and Pictures?

  • Applications.应用场景很广.

  • Measuring and demonstrating AI capabilities.通过对image和language的理解,衡量并展现AI的能力.

  • Beyond “bucket” recognition.跳出通常的对于AI任务的分类.

Image captions即为图片加上文字描述,可能存在的问题是,文字描述太过通用,无法详细地描绘出图像中的细节.

构建VQA:

  • 创建数据集,包括coco数据集中的254721张图片、50000张卡通,从Amazon Mechanical Turk为每张图片收集3个问题,每个问题收集10个回答.

  • 38%的问题是binary yes/no, 99%的问题有着<=3个单词的答案.这使得评估变得可行.

  • Input: image和question Output: answer.

  • Image用CNN, Question用RNN和LSTM, 输出是1 of K个最可能的答案.

What such a model can‘t do?

  • 例如“pizza box中剩下了几片菜叶子“的问题.因为该模型不具有计数的功能,

Introduction to Visual Question Answering: Datasets, Approaches and Evaluation

A multi-discipline problem:

  • VQA是跨学科的,至少需要NLP、CV、Knowledge Representation & Resoning等知识.

Available datasets:

  • 好的datasets结合恰当的评估方法是解决许多问题的关键.

  • VQA非常复杂,因此一个好的dataset要足够大,能包含尽可能多种类的图片和问题.许多datasets从COCO(Microsoft Common Objects in Context)数据集中获取图片.

  • COCO数据集大大简化和加速了VQA dataset的构建过程,但仍存在问题.例如收集广泛的、恰当的、没有歧义的probelm,以及可能被利用的biases.

  • The DAQUAR dataset是第一个重要的VQA dataset.全称是DAtaset for QUestion Answering on Real-world images.它的图片基于NYU-Depth V2 Dataset, 包含6974个training问答和5674个testing问答.它的缺点是只包含了室内图像,并且光照条件使得很难回答问题.

  • The COCO-QA dataset包含123287张图片, 78736个training问答和38948testing问答.值得注意的是它的所有答案都是一个单词.缺点是由于问题是由nlp生成的,因此存在一些奇怪的内容,并且只包含目标、颜色、计数和定位的问题.

  • The VQA dataset包含204721张COCO中的图片和50000张卡通图片.每个图片对应3个问题,每个问题对应10个答案.

Current Approaches:

  • VQA所需要的方法大致是:从问题中抽取特征、从图片中抽取特征、将两种特征结合来生成答案.

  • 对于text features,有BoW, LSTM encoders等方法.

  • 对于image features, 有pre-trained CNNs on ImageNet是最常用的.对于Answer, 模型一般会将问题视作一个分类任务.

  • 不同方法的主要区别就是如何结合textual and image features.

  • 一个不好的baseline很可能会给出最频繁出现的答案,或者是随机挑选答案.因此baseline的设计很关键.比较常用的方法是训练一个线性分类器或是网络,将features作为input.

  • Attention-based approaches是让算法专注于最相关的部分.例如“What color is the ball”的关键词就是“color”和“ball”,图像也会认为ball是最重要的一块区域.应用在VQA中,一般会使用spatial attention来生成区域特定特征,用于训练CNN.

  • Bayesian approaches的思想是对于问题和图像特征中同时出现的数据进行建模,作为一种推理关系的方式.

Evaluation metrics:

  • 传统的classic accuracy对于有选项的回答系统不错,但是对于开放式回答系统起不到作用.

  • WUPS估计一个回答和标准答案的语义距离,结果在0和1之间.使用WorldNet来计算语义树中的距离,从而衡量相似性.另外还会将相似性较低的答案的得分额外下降.缺点是太依赖WorldNet.

VQA视觉问答基础知识的更多相关文章

  1. CSS基础知识—【结构、层叠、视觉格式化】

    结构和层叠 选择器的优先级顺序: style[内联元素]选择器>Id选择器>类选择器 属性选择器>元素选择器>通配器选择器 重要性:@important 有这个标记的属性值,优 ...

  2. 【论文小综】基于外部知识的VQA(视觉问答)

    ​ 我们生活在一个多模态的世界中.视觉的捕捉与理解,知识的学习与感知,语言的交流与表达,诸多方面的信息促进着我们对于世界的认知.作为多模态领域的一个典型场景,VQA旨在结合视觉的信息来回答所提出的问题 ...

  3. 【自然语言处理】--视觉问答(Visual Question Answering,VQA)从初始到应用

    一.前述 视觉问答(Visual Question Answering,VQA),是一种涉及计算机视觉和自然语言处理的学习任务.这一任务的定义如下: A VQA system takes as inp ...

  4. 大数据基础知识问答----spark篇,大数据生态圈

    Spark相关知识点 1.Spark基础知识 1.Spark是什么? UCBerkeley AMPlab所开源的类HadoopMapReduce的通用的并行计算框架 dfsSpark基于mapredu ...

  5. JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  6. java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**

    在上篇博文(java中文乱码解决之道(一)-----认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述字符集.字符编码等基础知识和ASCII.GB的详情. 一.基 ...

  7. WCF入门教程:WCF基础知识问与答(转)

    学习WCF已有近两年的时间,其间又翻译了Juval的大作<Programming WCF Services>,我仍然觉得WCF还有更多的内容值得探索与挖掘.学得越多,反而越发觉得自己所知太 ...

  8. WPF Step By Step -基础知识介绍

    回顾 上一篇我们介绍了WPF基本的知识.并且介绍了WPF与winform传统的cs桌面应用编程模式上的变化,这篇,我们将会对WPF的一些基础的知识做一个简单的介绍,关于这些基础知识更深入的应用则在后续 ...

  9. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**

    原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)—–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...

随机推荐

  1. Ansible17:Playbook之tags

    目录 简介 为task打tag 使用tag 执行指定tag的task 排除指定tag的task 查看playbook中的所有tag 打tag的几种方式 ansible内置tag 简介 在大型项目当中, ...

  2. 循环节 + 矩阵快速幂 - HDU 4291 A Short problem

    A Short problem Problem's Link Mean: 给定一个n,求:g(g(g(n))) % 1000000007 其中:g(n) = 3g(n - 1) + g(n - 2), ...

  3. [Python学习笔记-008] 使用双向链表去掉重复的文本行

    用Python处理文本文件是极方便的,当文本文件中有较多的重复的行的时候,将那些重复的行数去掉并打印诸如"...<repeats X times>..."有助于更好的浏 ...

  4. 两数相加II--链表

    题目 给定两个非空链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储单个数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 进阶: ...

  5. 前端学习:HTML的学习总结(图解)

    .html 文件代码笔记 前端学习:HTML的学习总结(图解) HTML简介 HTML基本标签 HTML表单标签 HTML内联框架标签和其他

  6. IDEA 调试 JAVA ConcurrentLinkedQueue

    调试ConcurrentLinkedQueue 源码 poll() 方法时 ,出现了比较奇怪的现象,当时队列里有两个元素,如下截图, 但执行完 p.casItem(item, null)后,出现了令人 ...

  7. redis集群cluster简单设置

    环境: 这里参考官方使用一台服务器:Centos 7  redis-5.0.4    192.168.10.10 redis集群cluster最少要3个主节点,所以本次需要创建6个实例:3个主节点,3 ...

  8. Spring扩展点之BeanFactoryPostProcessor

    前言 BeanFactoryPostProcessor接口是Spring中一个非常重要的接口,它的接口定义如下 public interface BeanFactoryPostProcessor { ...

  9. NI CWGraph 显示波形图

    ptrWaveBox.Axes(1).Maximum = 1000 ptrWaveBox.Axes(2).Maximum = 20 ptrWaveBox.Axes(2).Minimum = 0 Dim ...

  10. itextpdf使用中文字体的三种方式

    使用itextpdf时,默认的字体没有中文,总结了一下使用中文字体的方式. 1.使用windows系统下的字体,该种方式的具体操作可以看另一篇博客:https://www.cnblogs.com/wh ...