Image Caption(看图说话,图像字幕)任务简介+neuraltalk2,densecap测试+show and tell论文阅读

一. Image Caption任务简介

1.传统的计算机视觉任务

深度学习在图像领域取得了爆炸式的发展,这些任务的正确率直逼人类水平,可是:

2.计算机已经理解图像了吗?


这是faster-rcnn的一个目标检测结果,看似结果非常好,可是当我们把这张照片输入到一个计算机里时,它能告诉我们的只是:“这是马,这是人,这是狗”,这远远没有达到计算机已经理解图像这一个判断。我们希望的是,当输入这一张照片时,计算机能够告诉我们:“一个人骑在一匹马上,他的狗坐在马前面”。我们甚至希望计算机在看到这幅图片后能够说出下面这段话:“在一个阳光明媚的下午,一个穿着蓝色衣服的年轻小伙坐在一匹健壮的马上,他的爱犬坐在马的前面,他们相互对望着,看起来非常开心”。这样才能勉强说计算机已经理解了图像。

3.Image Caption涵义

(图像标注 图像字幕 看图说话)

本质是视觉到语言(Visual-to-Language,即V2L)的问题

这张照片是一年级看图说话的作业,上面的描述:”图上是什么时候?都有谁?在哪里?在干什么?在说什么?“ 正好对应了image caption任务的要求:根据图像给出能够描述图像内容的自然语言语句。这对人类来说实在是一个小儿科的任务,但是在计算机视觉领域却不能不说是一个挑战。因为这需要在两种不同形式的信息(图像信息到文本信息)之间进行“翻译”。

4.Image Caption 当前水平

和人类水平描述差距仍然明显!


关于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 实际应用

图像标注问题如果能够得到很好的解决,那么价值是显而易见的

图像检索(更细粒度的搜索)

视力受损人士的生活辅助(计算机成为另一双眼睛)

6.Image Caption数据集

1. Microsoft COCO Caption数据集

• 原COCO数据集中约330,000张图像,人工地为每张图像都生成了至少5句标注,标注语句总共超过了约150万句 

• MS COCO C5/C40

2. Flickr8K和30K

• 图像数据来源是雅虎的相册网站Flickr 

• 数据集中图像的数量分别是8,000张和30,000张

3. PASCAL 1K

• 大名鼎鼎的PASCAL VOC challenge图像数据集的一个子集

• 20个分类,随机选出了50张图像,共1,000张图像 

7.Image Caption评价标准

BLEU

• 图像标注结果评价中使用最广泛,设计初衷并不是针对图像标注问题,而是针对机器翻译问题 

• 分析待评价的翻译语句和参考翻译语句之间n元组的相关性


二.Show and Tell: A Neural Image Caption Generator

1.摘要

• 对图像内容的自动描述是一个CV + NLP的AI问题

• 采用基于深度循环(recurrent)结构的生成模型,融合了近期在计算机视觉和机器翻译的前沿研究

• 模型学习的目标:给定训练图像,最大化其对应的目标描述语句的似然概率

• 结果:

  BLEU-1 score指标

  Pascal数据集:state-of-art:25分,该文59分,对比人类69分左右

  Flicker30k: 56分提高到66分

  SBU 19分提高到28分

2.introduction

• 这个任务比计算机视觉领域通常关注的图像分类、物体识别任务难很多

• 任务的目的:object detection+ object relation+ object attributes+object activity

• 同时expressed in natural language

• 除了视觉理解模型外,还需要一个语言模型

• 输入是图片I,训练的目标是最大化似然概率P(S|I),S是目标word序列S={S1,S2,…},Si来源固定词典

• 机器翻译:Encoder(RNN)+Decoder(RNN)

• 贡献:

   end-to-end系统

   state-of-art的sub-network的组合

   NIC的效果超出state-of-art

3.model

• NIC类似于将image “翻译”成语言。最大化获得正确描述的条件概率(条件是给定input image)


• 是模型的参数,I是image,S是它对应的翻译结果


• S表示句子,所以长度没有限制,比较普遍的做法是使用chain rule计算联合概率


• 用RNN来model

4.LSTM


• 函数f的选择需要考虑它应对梯度消失和爆炸的能力

• LSTM的核心是memory cell c,对每个时刻的knowledge进行编码

• cell的行为是被门“gates”控制的

• 是否forget当前cell的值(forget gate f),

• 是否读取当前的输入(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在全部参数(包含LSTM、CNN、We的全部参数)上寻求最小化

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.结果


四.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.结果


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容