一、文章背景
文章题目:《Visual Question Answering: Datasets, Algorithms, and Future Challenges》
这篇文章是VQA比较早的综述性文章,作为VQA入门的话值得一看。这篇文章在arXiv上可以看到是2016年10月投递的,后来于2017年被《Computer Vision and Image Understanding》接收。
文章下载地址:https://arxiv.org/abs/1610.01465v4
文章引用格式:K. Kafle, C. Kanan. "Visual Question Answering: Datasets, Algorithms, and Future Challenges." Computer Vision and Image Understanding, 2017
项目地址:暂时没有
二、文章导读
网上没有见关于这篇文章类似的解读,所以就自己记录下。
先给出文章的摘要部分:
Visual Question Answering (VQA) is a recent problem in computer vision and natural language processing that has garnered a large amount of interest from the deep learning, computer vision, and natural language processing communities. In VQA, an algorithm needs to answer text-based questions about images. Since the release of the first VQA dataset in 2014, additional datasets have been released and many algorithms have been proposed. In this review, we critically examine the current state of VQA in terms of problem formulation, existing datasets, evaluation metrics, and algorithms. In particular, we discuss the limitations of current datasets with regard to their ability to properly train and assess VQA algorithms. We then exhaustively review existing algorithms for VQA. Finally, we discuss possible future directions for VQA and image understanding research.
VQA是慢慢发展的一个新领域,这篇文章对于VQA目前的发展阶段,数据集,算法等方面进行调研。
三、文章详细介绍
从2014年起,VQA逐渐发展,其涉及到的主要问题包括:目标识别,目标检测,属性分类,场景分类,计数,除了这些,甚至可以探究图像中目标之间的空间关系,场景原因提问(比如图中的女孩为什么哭?)。
VQA的应用也是非常具有潜力。VQA能够尽可能的帮助盲人来理解世界,也能够以一种自然的方式改变人机交互,甚至可以在没有标签和元数据的情况下进行图像检索。
视觉图灵检测能够评估图像语义分析是否达到人类可以接受的层面,因此这篇文章将对于VQA的一些基本问题展开讨论。
如上图所示,相较于目标检测和语义分割,VQA能够进一步理解场景的上下文信息;与看图说话相比,VQA能更好的理解全局场景信息。
1. 关于VQA的数据集介绍:
从2014年以来,常见的VQA数据集主要有DAQUAR,COCO-QA,The VQA Dataset,FM-IQA,Visual7W,Visual Genome。除了DAQUAR,这些数据集中的图像大多来自COCO(Microsoft Common Objects in Context,包含328,000张图像,91类目标,超过2百万个标签,平均每张图片超过5个描述),另外还有Visual Genome和 Visual7W用了Flickr100M数据集做了补充。一个好的数据集需要有图像,问题,以及现实世界中的概念。
(1)DAQUAR(DAtaset for QUestion Answering on Real-world images):最早也是最小的VQA数据集,包含了6795张训练数据和5673张测试数据,所有图像来自于数据集NYU-DepthV2 Dataset。该数据集质量较差,一些图像杂乱无章,分辨率低,并且问题和回答有明显的语法错误。
(2)COCO-QA:这个数据集是由COCO数据集进行看图说话,并用NLP算法来产生问题和回答。该数据集包含训练数据78736张,测试数据38948张。关于提出的问题,其中69.84%是对于目标提问,16.59%是关于颜色提问,7.74%是关于计数提问,6.10%是关于位置提问。所有答案都是单个词语,一共只有435个独一无二的答案。COC-QA数据集最大的问题在于所有的QA(question-answer)都是通过NLP算法得到,但是这么做的问题就是无法对从句还有语法多样性进行处理,这样就导致了提问中的一些语法错误,另外还有一个问题就是问题只是针对上述4方面而设计。
(3)The VQA Dataset:该数据集由COCO中的图像和一些抽象的卡通图像组成,大多数工作只用了这个数据集中从COCO数据集中选取的图像,这个子集一般称作COCO-VQA。COCO-VQA对于每张图片设计3个问题,对每一个问题设计10个答案,这些问题是由AMT(Amazon Mechanical Turk)的工人做的,然后另一批工人则专门回答问题,每个问题是由10个独立的人回答。该数据集共有614163张图(其中248349张图用于训练,121512张图用于验证,244302用于测试);The VQA Dataset中的另外一部分被称为SYNTH-VQA,该数据集有50000张合成场景,涉及到100种目标,30种动物模型,20种人类卡通模型,一共有150000个QA,每张图同样有3个问题,每个问题有10个回答。COCO-VQA广泛用于模型的评估,但该数据集存在的问题则是,很多问题由于语言的偏向性,使得不同答案变得高度相似统一。另外由于很多问题都是主观的,这就导致提问的过程中存在一定的指向性,比如下面这张图所示:
(4)FM-IQA(The Freestyle Multilingual Image Question Answering):该数据集的提问和回答也都是人工做的,提问和回答是中文,然后翻译成英文,不同前面的数据集的是,回答可以是一个句子。
(5)Visual Genome:该数据的图像来自于COCO和YFCC100M,共108249张图,包括170万个QA pairs,至目前位置(这篇文章的发表年份2016年10月),该数据集是最大的VQA数据集。数据集的提问为6W:What, Where, How, When, Who,
and Why,该数据集答案的多样性要明显好于其他数据集,且答案的词数要多于其他数据集。另外提问没有“是否”的问题。
(6)Visual7W:该数据集是上一个数据集的扩充,7W则指What, Where, How, When, Who, Why, and Which。该数据集包含了47300张图。为了准确回答问题,这里用到了bounding box来圈出可能的4个答案。
(7)SHAPES:该数据集中的提问包括属性,关系,形状的所在位置,涉及244个独一无二的问题,64张图,所有的问题只有“是或否”两个答案。该数据集的图像中都是一些形状,颜色不同的多边形组成,比如:
关于以上7个数据集答案的多样性,可以用下图来表示:
2. VQA的评价指标(Evaluation Metrics):
大概有4种指标:
(1)simple accuracy:优点:易于使用,缺点:小错误和大错误的惩罚项一样。比如树上的“秃鹰”和“鹰”和“鸟”,三者的惩罚项是一样的。
(2)Modified Wu-Palmer Similarity:优点:引入回答与真值之间的相似性机制,并用阈值进行取舍。缺点:相似词汇却表达完全相反意思的情况无法解决,比如“白色”和“黑色”,两者同样表达颜色,相似性高达0.91,但实际意思却截然相反;另外对于语义概念非常苛刻,无法处理句子或短语。
(3)Consensus Metric:优点:简单易行,同一问题的相同答案能够获得更高的分数。缺点:允许一个问题有至少两个答案。
(4)Manual Evaluation:优点:对于单词或者短语句子同样有效。缺点:耗费大量人力物力;人的判断具有主观性,没有具体标准。
3. VQA的算法部分介绍:
目前提出了许多算法,所有的算法都可以概括为以下三个部分:
1) extracting image features (image featurization) (图像特征提取部分,主要用预训练的CNN,包括VGGNet,ResNet,GoogLeNet)
2) extracting question features (question featurization) (问题特征提取部分,主要用BOW(bag-of-words),LSTM,GRU(gated recurrent units),skip-thought vectors)
3) an algorithm that combines these features to produce an answer. (结合两种特征来生成答案的算法,大多数是将VQA视为分类问题)
整体框架如下所示:
关于两种特征结合来生成答案的一般处理方法都包括:
• Combining the image and question features using simple mechanisms, e.g., concatenation, elementwise multiplication, or elementwise addition, and then giving them to a linear classifier or a neural network.(使用一些简单的方法将两种特征结合起来, 比如讲两个特征矩阵连接,矩阵元素点乘,矩阵元素对应相加,然后将合并后的特征输入到一个线性分类器或者神经网络中)
• Combining the image and question features using bilinear pooling or related schemes in a neural network framework. (用双线性池化或者相关机制将两个特征结合起来并输入到神经网络中)
• Having a classifier that uses the question features to compute spatial attention maps for the visual features or that adaptively scales local features based on their relative importance. (使用问题特征的分类器来计算视觉特征的空间注意力图,或则是基于注意力的重要性来获得视觉图像的自适应尺度局部特征)
• Using Bayesian models that exploit the underlying relationships between question-image-answer feature distributions. (使用贝叶斯模型来计算“问题-图像-答案”分布之间的潜在关系)
• Using the question to break the VQA task into a series of sub-problems.(将一个大问题划分为一系列的小问题)
(1)baseline model(基线模型):
前面也提到了,这里常用的思路就是将两个特征用一些简单的方法结合起来,再输送到神经网络中。常用的方法包括矩阵连接,矩阵点积,矩阵相加等。
这里作者给出了两篇[1][2]文献中的方法:[1]中用BOW(bag-of-words)来表示问题,用GoogLeNet来提取视觉特征,然后将两个特征连接,并输入到逻辑回归分类器中。[2]中用skip-thought vectors来表示问题,用ResNet-152来提取图像特征,然后用了两个隐含层的MLP(multi-layer perceptron)模型,输出用了一个线性分类器,但是最后的结果似乎是MLP过拟合了。
[1]B. Zhou, Y. Tian, S. Sukhbaatar, A. Szlam, and R. Fergus, "Simple baseline for visual question answering," arXiv preprint arXiv:1512.02167, 2015.
[2]K. Kafle and C. Kanan, "Answer-type prediction for visual question answering," in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
之后的改进文献中还有一些是用的LSTM来表示问题[3],用GooLeNet来提取图像特征,然后用两个特征向量的乘积输入到两个隐含层的MLP中。
[3]S. Antol, A. Agrawal, J. Lu, M. Mitchell, D. Batra, C. L. Zitnick, and D. Parikh, "VQA: Visual question answering," in The IEEE International Conference on Computer Vision (ICCV), 2015.
(2)Bayesian and Question-Aware Model(贝叶斯问题感知模型):
VQA需要建立图像特征和问题特征之间的关系。比如文献[4],作者用了语义分割来确定目标在图像中的位置,然后训练贝叶斯模型,来对目标的空间关系进行建模,但是该模型的效率很低;另外文献[5],先根据问题来预测答案,然后再处理图像特征和问题特征。
[4]M. Malinowski and M. Fritz, \A multi-world approach to question answering about realworld scenes based on uncertain input," in Advances in Neural Information Processing Systems (NIPS), 2014.
[5]K. Kafle and C. Kanan, \Answer-type prediction for visual question answering," in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
(3)Attention Based Models (注意力模型):
注意力机制能够使我们更快的找到想要关注的区域。VQA中引入注意力机制的思路目前有两种:一是使用空间注意力来提取CNN的区域特征;二是用合并注意力来表达文本中的关键信息。原文中给了很多这方面的参考文献,有兴趣的话可以读读原文推荐的这些文献。
首先是对于用CNN提取图片全局特征,该过程丢失了一些局部特征,因此引入注意力机制,引入的思路也是有两种,一种是将图像均匀的划分为许多网格,每一个网格的位置都代表了图像的局部特征,这一操作常常设置在最后一层卷积之前,直到最终的池化过程。其中每一个网格位置都由一个问题所确定,这个步骤如下图所示:
另一种思路是用空间注意力来生成region proposal(bounding box)搜索框,使用CNN对每一个box进行编码,最后再确定每一个问题所对应的box。例如文献[6]中使用了Edge Boxes来生成搜索框。
[6] K. J. Shih, S. Singh, and D. Hoiem, "Where to look: Focus regions for visual question answering," in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
作者在这一节举了很多关于attention机制用于VQA的模型,这里不多做介绍,只是简单的给出模型的名字:
Focus Regions for VQA,(使用Edge Boxes生成图像的搜索框来作为attention)
Focused Dynamic Attention (FDA) models,(使用搜索框在图像中搜索问题中提到的目标。用word2vec计算问题中关键词和搜索框标签的一致性得分,高于0.5的box输入到LSTM,与此同时,另一个LSTM则用于问题表示,两个LSTM的输出同时输入到全连接层,最后再用softmax来预测答案)
Stacked Attention Network (SAN),(使用了空间网格的可视特征)
Dynamic Memory Network (DMN),(使用了空间网格的可视特征)
Spatial Memory Network model,(通过计算image patch和问题中的关键单词之间的相关性来确定空间注意力)
modified Dynamic Memory Network (DMN),(整合注意力,将模型分成输入模块,情景记忆模块,回答模块)
Hierarchical Co-Attention model,(将注意力同时用于问题和图像)
(4)Bilinear Pooling Methods(双线性池化方法):
这里作者主要介绍了两个模型,这类方法重点还是放在如何结合图像特征和文字特征。
[7]提出的Multimodal Compact Bilinear (MCB) pooling用于结合图像和文字特征,相较于其他如向量点积等操作,该方法的思想是近似图像特征和文字特征的矢量积(outer-product)。如果直接做矢量积的话,那么就会有非常大的维度开销,而MCB则能够在低维度条件下进行矢量积的近似。
[7]A. Fukui, D. H. Park, D. Yang, A. Rohrbach, T. Darrell, and M. Rohrbach, "Multimodal compact bilinear pooling for visual question answering and visual grounding," in Conference on Empirical Methods on Natural Language Processing (EMNLP), 2016.
由于上述模型的计算开销仍然比较大,作者又在[8]提出了multi-modal low-rank bilinear pooling (MLB) scheme,这里用到了Hadamard乘积和线性映射来实现近似双线性池化。
[8]J.-H. Kim, K.-W. On, J. Kim, J.-W. Ha, and B.-T. Zhang, "Hadamard product for low-rank bilinear pooling," arXiv preprint arXiv:1610.04325, 2016.
(5)Compositional VQA Models(组合VQA模型):
这类模型用于将问题分割为多个小问题来处理,比如“图像中马的左边是什么?”,那么分割问题后,应该先定位到“马”,然后再找该目标左边的目标。这类思路就用组合VQA模型来解决,比较有名的模型是The Neural Module Network (NMN)和Recurrent Answering Units (RAU)。
NMN将问题分解为子问题(sub-tasks),然后将这些问题再送到子网络(neural sub-networks)中进行处理,每一个子网络只处理一个小问题。常用的模块包括查找(find),描述(describe),测量(measure),转换(transform)。最后再将这些模块集成到一个图层中。
RAU不需要任何外部语言分析就能够进行模块的组合。模型使用独立(self-contained)的回答单元(answering unit)来解决VQA的子问题,这些独立的回答单元以循环的形式排列,每个链上的回答单元都用注意力机制来驱动。
(6)Other Noteworthy Models(其他有价值的模型):
先验知识库(knowledge bank)能够很好的改善实验效果,比如如果数据库中记录了某种动物的颜色,生活习惯,大小等信息,那么针对该动物的提问则能够获得更准确的答案。比如在全连接层前引入Dynamic Parameter Prediction layer;基于ResNet改进的Multimodal Residual Networks (MRN)。
(7)What methods and techniques work better?(哪种方法的表现更好):
前面也提到了这么多方法,那么究竟哪种方法比较好呢,作者基于COCO-VQA数据集做了比较:
另外,实验结果表明,ResNet的图像特征提取比VGG或GoogLeNet的表现更好,ResNet-101比VGG-16大概会有2%的性能提升;空间注意力能一定程度上的提升性能;贝叶斯和组合VQA模型实际上并没有显著提高性能。
4.关于VQA未来的挑战
(1)VQA中的视觉和语言:
图像和文本是VQA中两个截然不同的数据流,根据一些简化研究(Ablation studies),问题模型要比图像模型的表现好很多;另外,问题和答案之间还存在非常明显的偏执(bias),比如下面这张图,两个问题表达的同一个意思,但是回答却完全相反:
因此今后要解决的问题,就是减少数据集中问题和答案之间的bias(making datasets less biased)以及对图像内容的精细分析。
(2)VQA中注意力机制的作用:
目前很难评价注意力机制在VQA中的作用。
有简化研究表明,去掉注意力机制的模型的性能会降低;目前在COCO-VQA数据集上表现最好的模型也用到了空间注意力结构,但是也有一些很简单的没有使用注意力机制的模型性能反而超过了复杂注意力机制的模型性能;还有没有使用注意力的模型对图像特征和问题特征进行向量的点积,也取得了比注意力模型更好的性能;当然也有文献表明,注意力机制收到问题偏执(bias)的影响,有时候是不能够定位到准确区域的。比如我想找图像中的窗帘,由于注意力机制会从底开始寻找,所以大概率会定位到床而不是窗,这是因为窗帘在注意力机制中会定位到bedroom。
(3)Bias Impairs Method Evaluation(偏执损害方法的评估):
主要面临的问题有两个:一是很多问题中带有很强的bias,很多问题都直接涉及到目标或场景的属性;二是一些复杂问题,比如“为什么。。。。”,目前对这类问题很难评估。
(4)Are Binary Questions Sufficient(二值型问题(只回答是或否)是否充分):
目前的一个讨论是二值型问题是否会造成问题复杂性的缺失。一方面,二值型问题易于评估和处理;另一方面,二值型问题是VQA数据集中重要的一类问题,一旦问题偏执(bias)能够被控制,那么这类问题就可以被完全接受。
(5)Open Ended vs. Multiple Choice (开放式还是多选式):
开放式的问题评估目前还是非常有挑战的,多选式的问题目前是VQA数据集评估的一种有效方法。但是多选式的评估,最大问题在于是用缩小到一定范围的选项来确定最终的答案而不是真正的回答问题。目前大多还是做得多选式问题,这样做还不够充分,不是我们想要的开放式回答,但是目前是VQA的重要组成部分。
5. 未来VQA数据集的建议
直接给出作者的建议:
Future datasets need to be larger.
Future datasets need to be less biased.
Future datasets need more nuanced analysis for benchmarking.
简单的说,就是更大、更少bias,更细化(例如早起的数据集只有针对目标,颜色,计数,位置等问题,今后的数据集应该针对更广泛的类别设计)
四、小结
1. 这里用到的文献先列出来:
[1]B. Zhou, Y. Tian, S. Sukhbaatar, A. Szlam, and R. Fergus, "Simple baseline for visual question answering," arXiv preprint arXiv:1512.02167, 2015.
[2]K. Kafle and C. Kanan, "Answer-type prediction for visual question answering," in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
[3]S. Antol, A. Agrawal, J. Lu, M. Mitchell, D. Batra, C. L. Zitnick, and D. Parikh, "VQA: Visual question answering," in The IEEE International Conference on Computer Vision (ICCV), 2015.
[4]M. Malinowski and M. Fritz, \A multi-world approach to question answering about realworld scenes based on uncertain input," in Advances in Neural Information Processing Systems (NIPS), 2014.
[5]K. Kafle and C. Kanan, \Answer-type prediction for visual question answering," in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
[6] K. J. Shih, S. Singh, and D. Hoiem, "Where to look: Focus regions for visual question answering," in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
[7]A. Fukui, D. H. Park, D. Yang, A. Rohrbach, T. Darrell, and M. Rohrbach, "Multimodal compact bilinear pooling for visual question answering and visual grounding," in Conference on Empirical Methods on Natural Language Processing (EMNLP), 2016.
[8]J.-H. Kim, K.-W. On, J. Kim, J.-W. Ha, and B.-T. Zhang, "Hadamard product for low-rank bilinear pooling," arXiv preprint arXiv:1610.04325, 2016.