当前位置:   article > 正文

对Image caption的一些理解(看图说话)_imagecaption技术讲解

imagecaption技术讲解

1. 背景

​ 在计算机视觉中,图像分类和目标检测任务是比较成熟的领域,已经应用到实际的产品领域。而“看图说话”要实现的功能是,给定一张图像,计算机能告诉我们图片的内容,显然,这会使一个比较复杂的任务,因为它涉及到了如下的子任务:

1)检测图像中的目标;

2)目标的属性,比如颜色、尺寸等;

3)目标之间的关联;

4)语言模型,用于把上面的信息表述成句子;

2. 相关的论文

2.1 “Show and Tell: A Neural Image Caption Generator”

​ 为了实现看图说话的功能,初步的想法是使用多个模型,分别实现上面的各个子任务,然后把每个子任务的结果进行逻辑上的组合。作为谷歌的大作,“Show and Tell: A Neural Image Caption Generator”这一篇论文首次使用端到端的神经网络实现图文转换功能,该网络结构与语言翻译模型的对比如下,

语言翻译模型source sentence —> encoder —>fixed length vector —> decoder —> target sentence

图文转换模型source image —> encoder —>fixed length vector —> decoder —> target sentence

可以看出,它们是很相似的,区别在于输入的不同,语言翻译模型的输入是序列数据,对应的encoder便是RNN了,而图文转换模型的输入是图片,对应的encoder则为CNN网络,具体的网络结构如下,
在这里插入图片描述

在这里插入图片描述

​ 注:引用自论文“Show and Tell: A Neural Image Caption Generator”

在训练阶段,模型经过两大阶段:图像信号的forward propagation和误差信号的back propagation。前向传播的公式表示如下,
在这里插入图片描述
误差信号的定义如下,
在这里插入图片描述
其中, p t ( S t ) = p ( S t ∣ I , S 0 , . . . , S t − 1 ) , L ( I , S ) = − l o g p ( S ∣ I ) p_{t}(S_{t})=p(S_{t}|I, S_{0}, ..., S_{t-1}),L(I, S)=-logp(S|I) pt(St)=p(StI,S0,...,St1)L(I,S)=logp(SI),因此,优化的目标是给定任意输入图像I,输出序列S的联合概率最大化,这里是将联合概率展开成了条件概率的乘积的形式。

2.2 “Captioning Images with Diverse Objects”

​ 上面的文章使用的是有监督的方法,只能识别训练集中出现的目标,因此在应用中是非常受限制的。大牛Lisa Anne在CVPR 2016上发的一篇文章“Deep Compositional Captioning”,第一次解决了描述novel 目标的目的(训练集中不存在该目标),作为一篇oral文章,作者提供了文章的代码,https://github.com/LisaAnne/DCC。

​ 为了优化半监督看图说话模型的效果,作者所在团队在CVPR 2017发了一篇新的文章“Captioning Images with Diverse Objects”,这里主要阐述这篇文章中的思想。

2.2.1 网络结构

​ 文中将所提模型称之为“Novel Object Captioner (NOC)”,其网络结构如下图,它包含了三个子任务:语言建模+目标识别模型+图文生成。从直觉上可见,当联合训练时,模型可以实现下面的目标:(1)生成读起来通顺的文本;(2)识别图像中的视觉目标;(3)生成合理的图片描述。当(2)和(3)互补时,可以使的生成的文本包含(2)的结果,这里(2)为imagenet 1000类的目标,(3)为MSCOCO caption数据集,只包含了80类目标,也即在inference阶段,生成的文本中可以包含其余的920种目标。
在这里插入图片描述

2.2.2 优化的目标函数

​ 模型优化的目的是,在给出图像描述的同时尽可能多地识别图中的物体,包括image caption数据集(paired)中未出现或者很少出现的目标,在训练过程中联合优化Image model、Language model 和 Caption模型,整体的目标函数如下,
在这里插入图片描述

2.2.2.1 Image-specific Loss

​ 与常用的CNN分类模型不同,这里我们希望能够尽可能全地描述出图像中存在的所有目标,所以这里的CNN为一个多标签模型,其cross-entropy 损失如下,
在这里插入图片描述
其中, l l l 表示标签的总个数, z l z_{l} z

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/857267
推荐阅读
相关标签
  

闽ICP备14008679号