一、文章背景
文章題目:《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.