ImageCaption深度学习·神经网络·计算机视觉机器学习与计算机视觉

Image Caption(看图说话,图像字幕)任务简介+neu

2017-05-23  本文已影响379人  BookThief

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

上一篇下一篇

猜你喜欢

热点阅读