Image Caption(看圖說話,圖像字幕)任務(wù)簡介+neuraltalk2,densecap測試+show and tell論文閱讀

一. Image Caption任務(wù)簡介

1.傳統(tǒng)的計算機視覺任務(wù)

深度學(xué)習(xí)在圖像領(lǐng)域取得了爆炸式的發(fā)展,這些任務(wù)的正確率直逼人類水平,可是:

2.計算機已經(jīng)理解圖像了嗎?


這是faster-rcnn的一個目標(biāo)檢測結(jié)果,看似結(jié)果非常好,可是當(dāng)我們把這張照片輸入到一個計算機里時,它能告訴我們的只是:“這是馬,這是人,這是狗”,這遠遠沒有達到計算機已經(jīng)理解圖像這一個判斷。我們希望的是,當(dāng)輸入這一張照片時,計算機能夠告訴我們:“一個人騎在一匹馬上,他的狗坐在馬前面”。我們甚至希望計算機在看到這幅圖片后能夠說出下面這段話:“在一個陽光明媚的下午,一個穿著藍色衣服的年輕小伙坐在一匹健壯的馬上,他的愛犬坐在馬的前面,他們相互對望著,看起來非常開心”。這樣才能勉強說計算機已經(jīng)理解了圖像。

3.Image Caption涵義

(圖像標(biāo)注 圖像字幕 看圖說話)

本質(zhì)是視覺到語言(Visual-to-Language,即V2L)的問題

這張照片是一年級看圖說話的作業(yè),上面的描述:”圖上是什么時候?都有誰?在哪里?在干什么?在說什么?“ 正好對應(yīng)了image caption任務(wù)的要求:根據(jù)圖像給出能夠描述圖像內(nèi)容的自然語言語句。這對人類來說實在是一個小兒科的任務(wù),但是在計算機視覺領(lǐng)域卻不能不說是一個挑戰(zhàn)。因為這需要在兩種不同形式的信息(圖像信息到文本信息)之間進行“翻譯”。

4.Image Caption 當(dāng)前水平

和人類水平描述差距仍然明顯!


關(guān)于image caption這個topic階段性文章

??Explain Images with Multi modal Recurrent?Neural Networks, Mao et al.

?Deep?Visual-Semantic Alignments for Generating Image Descriptions,Karpathy?and?Fei-Fei

?Show?and Tell: A Neural Image Caption Generator,Vinyalset al.

?Long-term?Recurrent Convolutional Networks for Visual Recognition and Description,Donahue et al.

?Learning a Recurrent Visual?Representation for Image Caption Generation, Chen and?Zitnick

5.Image Caption 實際應(yīng)用

圖像標(biāo)注問題如果能夠得到很好的解決,那么價值是顯而易見的

圖像檢索(更細粒度的搜索)

視力受損人士的生活輔助(計算機成為另一雙眼睛)

6.Image Caption數(shù)據(jù)集

1. Microsoft COCO Caption數(shù)據(jù)集

? 原COCO數(shù)據(jù)集中約330,000張圖像,人工地為每張圖像都生成了至少5句標(biāo)注,標(biāo)注語句總共超過了約150萬句?

? MS COCO C5/C40

2. Flickr8K和30K

? 圖像數(shù)據(jù)來源是雅虎的相冊網(wǎng)站Flickr?

? 數(shù)據(jù)集中圖像的數(shù)量分別是8,000張和30,000張

3. PASCAL 1K

? 大名鼎鼎的PASCAL VOC challenge圖像數(shù)據(jù)集的一個子集

? 20個分類,隨機選出了50張圖像,共1,000張圖像?

7.Image Caption評價標(biāo)準(zhǔn)

BLEU

? 圖像標(biāo)注結(jié)果評價中使用最廣泛,設(shè)計初衷并不是針對圖像標(biāo)注問題,而是針對機器翻譯問題?

? 分析待評價的翻譯語句和參考翻譯語句之間n元組的相關(guān)性


二.Show and Tell: A Neural Image Caption Generator

1.摘要

? 對圖像內(nèi)容的自動描述是一個CV + NLP的AI問題

? 采用基于深度循環(huán)(recurrent)結(jié)構(gòu)的生成模型,融合了近期在計算機視覺和機器翻譯的前沿研究

? 模型學(xué)習(xí)的目標(biāo):給定訓(xùn)練圖像,最大化其對應(yīng)的目標(biāo)描述語句的似然概率

? 結(jié)果:

? BLEU-1 score指標(biāo)

? Pascal數(shù)據(jù)集:state-of-art:25分,該文59分,對比人類69分左右

? Flicker30k: 56分提高到66分

? SBU 19分提高到28分

2.introduction

? 這個任務(wù)比計算機視覺領(lǐng)域通常關(guān)注的圖像分類、物體識別任務(wù)難很多

? 任務(wù)的目的:object detection+ object relation+ object attributes+object activity

? 同時expressed in natural language

? 除了視覺理解模型外,還需要一個語言模型

? 輸入是圖片I,訓(xùn)練的目標(biāo)是最大化似然概率P(S|I),S是目標(biāo)word序列S={S1,S2,…},Si來源固定詞典

? 機器翻譯:Encoder(RNN)+Decoder(RNN)

? 貢獻:

? ?end-to-end系統(tǒng)

? ?state-of-art的sub-network的組合

? ?NIC的效果超出state-of-art

3.model

? NIC類似于將image “翻譯”成語言。最大化獲得正確描述的條件概率(條件是給定input image)


? 是模型的參數(shù),I是image,S是它對應(yīng)的翻譯結(jié)果


? S表示句子,所以長度沒有限制,比較普遍的做法是使用chain rule計算聯(lián)合概率


? 用RNN來model

4.LSTM


? 函數(shù)f的選擇需要考慮它應(yīng)對梯度消失和爆炸的能力

? LSTM的核心是memory cell c,對每個時刻的knowledge進行編碼

? cell的行為是被門“gates”控制的

? 是否forget當(dāng)前cell的值(forget gate f),

? 是否讀取當(dāng)前的輸入(input gate i

? 是否輸出新cell的值(output gate o

5.training



? Input: image I

? ground truth sentence:S=(S0 ,…, Sn)


? St是每個word的one-hot表示,維度等于詞典的大小.

? 圖片和words被映射到相同的空間,image通過CNN映射,words通過一個Word embedding We映射


? Loss是各個時刻上正確word的負log似然之和

? loss在全部參數(shù)(包含LSTM、CNN、We的全部參數(shù))上尋求最小化

6.result



三.neuraltalk2測試

1.torch安裝

$ curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash

$ git clone https://github.com/torch/distro.git~/torch --recursive

$ cd ~/torch;$ ./install.sh# and enter "yes" at the end to modify your bashrc

$ source ~/.bashrc

安裝成功


2.依賴下載

sudo ~/torch/install/bin/luarocks install nn

sudo ~/torch/install/bin/luarocks install nngraph

sudo ~/torch/install/bin/luarocks install image

sudo ~/torch/install/bin/luarocks install hdf5?

sudo ~/torch/install/bin/luarocks install loadcaffe?

sudo ~/torch/install/bin/luarocks install cutorch

sudo ~/torch/install/bin/luarocks install cunn

(luarocks list命令查看是否安裝所有需要的依賴)

3.代碼模型

git clone?https://github.com/karpathy/neuraltalk2(代碼)

http://cs.stanford.edu/people/karpathy/neuraltalk2/checkpoint_v1.zip(模型)

th eval.lua -model model_id1-501-1448236541.t7_cpu.t7 -image_folder ./images/ -gpuid 1

4.結(jié)果


四.densecap 測試

1.依賴下載

luarocks install torch

luarocks install nn

luarocks install image

luarocks install lua-cjson

luarocks install https://raw.githubusercontent.com/qassemoquab/stnbhwd/master/stnbhwd-scm-1.rockspec

luarocks install https://raw.githubusercontent.com/jcjohnson/torch-rnn/master/torch-rnn-scm-1.rockspec

luarocks install cutorch

luarocks install cunn

luarocks install cudnn

2.代碼模型

git clone https://github.com/jcjohnson/densecap(代碼)

sh scripts/download_pretrained_model.sh(模型,可能下載很慢)

th run_model.lua -input_image imgs/elephant.jpg

3.結(jié)果


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容