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

作者: BookThief | 来源:发表于2017-05-23 11:12 被阅读379次

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

    相关文章

      网友评论

        本文标题:Image Caption(看图说话,图像字幕)任务简介+neu

        本文链接:https://www.haomeiwen.com/subject/glywxxtx.html