VQA簡單綜述


VQA簡單綜述

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

最近對VQA (Visual Question Answering,視覺問答) 問題產生了一定的興趣,於是,參考吳琦等人的綜述性論文Visual Question Answering: A Survey of Methods and Datasets對該領域進行了大致的了解,雖然是淺嘗輒止,但也收獲了不少,整理如下。

概述

VQA指的是,給定一張圖片和一個與該圖片相關的自然語言問題,計算機能產生一個正確的回答。 顯然,這是一個典型的多模態問題,融合了CV與NLP的技術,計算機需要同時學會理解圖像和文字。正因如此,直到相關技術取得突破式發展的2015年,VQA的概念才被正式提出。

可見,VQA仍然是一個非常新穎的研究方向,但它很容易讓人聯想到其他兩個已經被研究較久的領域:文本QA和Image Captioning。

文本QA即純文本的回答,計算機根據文本形式的材料回答問題。與之相比,VQA把材料換成了圖片形式,從而引入了一系列新的問題:

  • 圖像是更高維度的數據,比純文本具有更多的噪聲。
  • 文本是結構化的,也具備一定的語法規則,而圖像則不然。
  • 文本本身即是對真實世界的高度抽象,而圖像的抽象程度較低,可以展現更豐富的信息,同時也更難被計算機“理解”。

與Image Captioning這種看圖說話的任務相比,VQA的難度也顯得更大。因為Image Captioning更像是把圖像“翻譯”成文本,只需把圖像內容映射成文本再加以結構化整理即可,而VQA需要更好地理解圖像內容並進行一定的推理,有時甚至還需要借助外部的知識庫。 然而,VQA的評估方法更為簡單,因為答案往往是客觀並簡短的,很容易與ground truth對比判斷是否准確,不像Image Captioning需要對長句子做評估。

總之,VQA是一個非常具有挑戰性的問題,正處於方興未艾的階段,有許多“坑”正等着未來的研究者去填。

常用方法

吳琦等人的綜述發表於2016年,所以僅能對2015至2016年的相關工作進行總結。即便如此,我們還是能看到,短短兩年的時間,VQA領域就涌現了不少的成果。 吳琦等人把這些方法分為四大類,分別是Joint embedding approaches、Attention mechanisms、Compositional Models和Models using external knowledge base 。

Joint embedding approaches

Joint embedding是處理多模態問題時的經典思路,在這里指對圖像和問題進行聯合編碼。該方法的示意圖為:

img

首先,圖像和問題分別由CNN和RNN進行第一次編碼得到各自的特征,隨后共同輸入到另一個編碼器中得到joint embedding,最后通過解碼器輸出答案。 值得注意的是,有的工作把VQA視為序列生成問題,而有的則把VQA簡化為一個答案范圍可預知的分類問題。在前者的設定下,解碼器是一個RNN,輸出長度不等的序列;后者的解碼器則是一個分類器,從預定義的詞匯表中選擇答案。

Attention mechanisms

attention機制起源於機器翻譯問題,目的是讓模型動態地調整對輸入項各部分的關注度,從而提升模型的“專注力”。而自從Xu等人將attention機制成功運用到Image Captioning中,attention機制在視覺任務中受到越來越多的關注,應用到VQA中也是再自然不過。下面就是將attention機制應用到上個方法中的示意圖。

img

相關的工作表明,加入attention機制能獲得明顯的提升,從直觀上也比較容易理解:在attention機制的作用下,模型在根據圖像和問題進行推斷時不得不強制判斷“該往哪看”,比起原本盲目地全局搜索,模型能夠更有效地捕捉關鍵圖像部位。

Compositional Models

Compositional Models的核心思想是將設計一種模塊化的模型。

這方面的一個典型代表是Andreas等人的Neural Module Networks。其最大的特點是根據問題的類型動態組裝模塊來產生答案。

img

比如,在上面的例子中,當面對 What color is his tie? 這個問題時,模型首先利用parser對問題進行語法解析,接着判斷出需要用到attend和classify這兩個模塊,然后判斷出這兩個模塊的連接方式。最終,模型的推理過程是,先把注意力集中到tie上,然后對其color進行分類,得出答案。

img

而在另一個例子中,當面對 Is there a red shape above a circle? 這種更為復雜的問題時,模型選擇的模塊也自動變得復雜了許多。

吳琦等人列舉的另一個典型代表是Xiong等人的Dynamic Memory Networks。該網絡由四個主要的模塊構成,分別是表征圖像的input module、表征問題的question module、作為內存的episodic memory module和產生答案的answer module。 模型運作過程如下圖。

img

Models using external knowledge base

雖然VQA要解決的是看圖回答問題的任務,但實際上,很多問題往往需要具備一定的先驗知識才能回答。例如,為了回答“圖上有多少只哺乳動物”這樣的問題,模型必須得知道“哺乳動物”的定義,而不是單純理解圖像內容。因此,把知識庫加入VQA模型中就成了一個很有前景的研究方向。 這方面做得比較好的工作是吳琦作為一作發表的另一篇論文Ask Me Anything: Free-form Visual Question Answering Based on Knowledge from External Sources。 該工作的模型框架如下。

img

模型雖然看似復雜,但理解起來不外乎以下幾個要點:

  • 紅色部分表示,對圖像進行多標簽分類,得到圖像標簽(attribute)。
  • 藍色部分表示,把上述圖像標簽中最明顯的5個標簽輸入知識庫DBpedia中檢索出相關內容,然后利用Doc2Vec進行編碼。
  • 綠色部分表示,利用上述圖像標簽生成多個圖像描述(caption),將這一組圖像描述編碼。
  • 以上三項同時輸入到一個Seq2Seq模型中作為其初始狀態,然后該Seq2Seq模型將問題進行編碼,解碼出最終答案,並用MLE的方法進行訓練。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM