***chapter 17 看图说话:将图像转换为文字

所谓Image Caption,是指从图片中自动生成一段描述性文字,类似于“看图说话”。
本章主要介绍2个内容:
1)Image Caption的技术原理;
2)Image Caption在Tensorflow中的实现;

一、Image Caption综述

本节总结了3篇论文中Image Caption的核心思想。

(一)Show and Tell:A Neural Image Caption Generator。

该篇论文中,Image Caption采用了Encoder - Decoder 模型的思想,区别在于:其Encoder采用CNN(Inception V3)来提取图像特征,Decoder采用LSTM来输出文字,其具体结构如下:

该论文中,只是简单的利用Encoder-Decoder模型的结构,设计了一个Image Caption模型,并没有其他额外的改进。

(二)Show,Attend and Tell:Neural Image Caption Generation with vision attention。

与第一篇文章相比,该论文中引入了“注意力机制”,其核心思想如下:
在第一篇论文中,利用CNN提取了Image固定长度的向量特征;而在本篇论文中,利用CNN提取了image不同部位的向量特征,假设image=(14,14,256),则其位置个数=1414,我们可以利用CNN来提取这1414个位置的向量特征,记为:{a1,a2,…,aL},L=14*14,为每个位置的向量特征均赋予一个权重ati(代表:Decoder中第t阶段的context与Encoder中第i个位置的向量特征之间的关联程度),假设zt为Decoder的context,则有下列关系式:,这与“机器翻译中的注意力机制”类似。
在这里,at,i只与Decoder中的ht-1和Encoder中的第i个向量特征有关,其计算公式如下:在这里插入图片描述
可以利用权重ati,了解Decoder生成word的时候,模型关注了图片的哪一部分,以下为生成某一单词时,模型的关注点示意图:

(三)What value do explicit high level concepts have in vision to language problems?

前2篇论文均是将CNN中分类的layer省去,而直接用之前的卷积层作为“向量特征”,本篇论文认为:CNN最后的分类layer含有大量的语义信息(即:image中含有那些物体的信息),不能轻易舍弃。
实际上,该篇论文把“高层语义”理解为一个“多分类问题”,因此,保留CNN中最后的softmax层,假设一个image中有c个物体,则CNN应该有c个softmax层。这里,假设第i个image的标签yi = {yi1,yi2,…yic},yic={0:没有c物体,1:有c物体},pi={pi1,pi2,…,pic}表示image中是否有物体c的概率,则该CNN的损失函数可以表示为:,通过训练该CNN,将CNN softmax层的输出作为“高层语义表达向量Vatt(l)”,输入Decoder输出各个阶段的word,其结构如下图所示:
在这里插入图片描述
实验证明,使用Vatt(l)代替CNN(I),可以大幅度提高Image Caption模型的效果,下图所示为本片论文模型结构:
其中,左上方的虚线代表前2篇论文使用的CNN(I)特征向量,左下方的实线则为本篇论文Encoder之后输出的context:Vatt(I)。

二、在Tensorflow中实现Image Caption

源码有时间在详读,解析!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sarah ฅʕ•̫͡•ʔฅ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值