2019年, image captioning论文汇总
目錄
- CVPR2019:UIC
- CVPR2019:SGAE
- CVPR2019:RND
- ICCV2019:CNM
- ICCV2019:Graph-Align
CVPR2019:UIC
- 題目
Unsupervised Image Captioning
下載鏈接
出自騰訊AI實驗室
模型名稱UIC我自己起的,文中沒給出模型名稱。 - 動機
已有的模型都需要標注好的image-sentence數據進行訓練,需要高昂的人力進行數據標注。
- 貢獻
- 方法
方法的整體框架如圖所示:
具體流程為:首先,輸入image,經過CNN提取特征。然后,將得到的特征輸入到Generator中,得到sentence。最后,將生成的sentence輸入Discriminator,判斷sentence是否合理。
在訓練過程中,提出三個訓練目標:1. 通過Generator生成的sentence要human-like,這一點通過Discriminator實現,Discriminator會判斷生成的sentence是出自Generator還是網上爬取的語料庫。2. 由于使用的sentences是從網上爬取的,和image沒有什么關聯,通過visual concept將二者關聯起來。先使用visual concept detector得到image的concept,然后判斷Generator生成的sentence中是否包含image的concept,如果包含,就給予concept reward。3. image captioning模型應該能理解更多的image中的語義concept,且目前為止,生成的sentence的質量只由visual concept detector決定,故作者使用了Image Reconstruction和Sentence Reconstruction來讓生成的sentence和image更貼近。具體的方法如下圖所示,其實就是無監督中常用的重構,雙向反復重構。
- 實驗
本文模型生成的sentence如下圖所示:
下面是實驗結果:
訓練過程中,生成正確concept個數的趨勢。可以看出,初始化與否,在經過一定的iterations后,模型的能力不會差太多。
CVPR2019:SGAE
- 題目
Auto-Encoding Scene Graphs for Image Captioning
下載鏈接
南洋理工大學張含望老師組的工作. - 動機
在已有的image captioning工作中,模型生成的sentences不夠human-like。本文提出了共享字典,將共享字典在文本語料庫上預訓練,并與captioning模型結合,引入共享字典的先驗知識。這相當于在模型中結合了inductive bias,使其能生成更加human-like的sentences。
- 貢獻
-
方法
傳統方法(top)和本文方法(bottom)的對比如下圖所示:
在上圖中,我們可以很清楚的看出,對于傳統方法而言,生成sentences的過程遵循公式(1)。而對于本文提出的方法,生成sentences的過程遵循公式(4)。其中,字典D是在文本語料庫上預訓練得到的,來幫助MGCN對image feature進行re-encode,降低vision和language之間的gap。
對于SGAE部分,實際操作形如公式(5)。
關于G←SG \leftarrow SG←S,文中給出了一個圖片的例子,如下圖所示。將每個object、attribute和relation都視為node。如果object具有某種attribute,則將兩個節點連接一條有向邊;如果兩個object之間具有某種relation,則每個object和該relation連接一條有向邊。關于X←GX \leftarrow GX←G,文中使用的是embedding,也是如下圖所示。這一步的目的是,讓原始的三類node轉化到context-aware的embedding空間XXX。
關于re-encoder部分,即公式中的R()R()R(),直觀的表現如下圖所示。途中紅線代表未經過re-encode生成的sentence,綠線代表經過re-encode生成的sentence。可以看出,經過re-encode后,確實更human-like。
-
實驗
MS-COCO Karpathy split
使用不同語料庫
使用不同場景圖的實驗結果,和captions展示
online MS-COCO test server
結果展示
CVPR2019:RND
- 題目
Reflective Decoding Network for Image Captioning
下載鏈接
香港科技大學+騰訊 - 動機
已有的image captioning方法大多關注于提升visual feature的質量,而忽略了language的固有屬性,本文以此為切入點,提出RDN方法。 - 貢獻
- 方法
本文方法的整體框架如下圖所示。
整體上來看,本文方法共包括兩個主要部分,分別是:Object-Level Encoder和Reflective Decoder。前者通過Faster R-CNN實現,對于image III,獲得其regional visual representation RI={ri}i=1kR_I=\{ r_i \}_{i=1}^{k}RI?={ri?}i=1k?。后者用于解碼,獲得sentences (captions)。
Reflective Decoder共包含三個部分,分別是:Attention-based Recurrent Module(基于注意力的循環模塊)、Reflective Attention Module(反射注意模塊,ps:姑且這么叫)和Reflective Position Module(反射定位模塊)。其中,Attention-based Recurrent Module指的是圖中的第一個LSTM層(圖片下方的那個)和AttvisAtt_{vis}Attvis?層,用于自上而下地計算visual attention。Reflective Attention Module指的是圖中的第二個LSTM層和AttrefAtt_{ref}Attref?層(圖中的RAM層),用于輸出language description。Reflective Position Module指的是圖中的RPM層,用于注入每個單詞的位置信息,通過最小化IrtI_r^tIrt?和IptI_p^tIpt?之間的差距來達到,IrtI_r^tIrt?是作者為每個單詞的位置設計的標簽,IptI_p^tIpt?代表Reflective Position Module的輸出,具體的定義形如公式(8)。
- 實驗
MSCOCO Karpathy test split, single model.
MSCOCO Karpathy test split, ensemble models. 本文方法使用6個single modle進行ensemble。
COCO Leaderboard
在hard cases上的對比
captioning結果展示
對Reflective Position Module的結果進行可視化
ICCV2019:CNM
- 題目
Learning to Collocate Neural Modules for Image Captioning
下載鏈接
南洋理工大學張含望老師組的工作. - 動機
動機可以用下圖表示. 由于在訓練過程中, 數據集內不同單詞的出現頻率并不相同, 會導致學到的模型存在bias, 即: 預測訓練集中出現頻率多的詞的概率較大.
- 貢獻
- 方法
本文的整體框架如圖所示:
對于輸入的image, 首先使用CNN進行特征提取, 然后將CNN特征轉化到四個不同的特征集, 分別是: Object, Attribute, Relation, Function. 其中, Object中包含物體的類別, Attribute包含一些形容詞, Relation包含一些物體之間的相互作用, 如: on, between等, Function包含一些功能詞, 如: a, an等.
然后,將轉化后的四類特征輸入到Controller, 其內部具體的操作如下圖所示:
首先, 使用三個網絡結構相同, 但不共享權值的網絡得到三類Attention, 具體的操作如公式(7)所示. 然后, 經過LSTM和Softmax對四類轉化特征生成weights, 即上圖中的"Soft weights generation"部分, 這部分的具體操作如公式(8)所示, 其中, c代表RNN網絡的輸出. 最后, 即得到了融合后的特征.
和VQA任務不同的是, 在image captioning任務中, 只有partially observed sentences是可見的. 為了更好的進行reasoning, 將decoder部分重復M次, 盡量觀察到更多的sentences, 來得到和圖片信息更加相關的caption. - 實驗
本文存在的問題
ICCV2019:Graph-Align
- 題目
Unpaired Image Captioning via Scene Graph Alignments
下載鏈接
本文作者是南洋理工大學的博士生顧久祥。 - 動機
和UIC的動機一樣,標注image-sentence pair需要大量的人力,作者提出一種基于場景圖的方法,用于unpaired image captioning。 - 貢獻
- 方法
本文方法的整體框架如圖所示:
測試時的具體步驟為:首先,將給定的image輸入Image Scene Graph Generator,得到image的場景圖;然后,對image場景圖進行編碼,得到image特征;然后,使用Feature Mapping將image特征映射到sentence空間,得到sentence特征;最后,使用解碼器對sentence特征進行解碼,得到sentence。
傳統的基于“編碼-解碼”的方法中,captioning的整個過程如公式(1)所示。對image III編碼得到VVV,然后對VVV解碼得到sentence SSS。本文方法的流程遵循公式(2)和(3),首先基于image III得到其場景圖,然后將場景圖映射為Sentence空間的場景圖,最后在解碼得到Sentence。在Mapping的過程中,實際上可以將公式(3)進一步分解為公式(4),其中P(fS∣fI)P(f^S|f^I)P(fS∣fI)代表跨模態Mapper。
其實本文需要著重理解的便是如何進行跨模態Mapping,這部分又是如何訓練呢?作者給了下面這個圖,其實質是使用了CycleGAN。CycleGAN是2017年提出的,用來做圖片風格遷移,可以將unpaired圖片從一個領域遷移到另一個領域。這么一說,是不是通了,作者使用CycleGAN將unpaired數據從image領域遷移到sentence領域。關于這部分的損失設定,大家可以參考原論文,這里不貼出了。
- 實驗
MSCOCO test split。表中,Avg表示在進行Object (Relation or Attribute) Embedding的時候使用平均值,Att*表示對Object, Relation and Attribute添加相同的注意力,Att表示對Object, Relation and Attribute添加不同的注意力。
特征可視化:
在GAN部分,使用不同損失對實驗結果的影響:
使用不同的mapping方法,在MSCOCO test split上得到的實驗結果。其中,Shared GAN表示對于三種特征(object, relation, attribute)共享參數,Single GAN表示將三種特征進行concatenate后再進行mapping。
實驗結果展示:
一些failed結果:
總結
以上是生活随笔為你收集整理的2019年, image captioning论文汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机视觉 - 知识点总结(面试、笔试)
- 下一篇: 2019年, VQA论文汇总