**
image caption 的发展历程和最新工作的简要综述 (2010-2018)
**
第一次写image caption简要综述类文章,对image caption任务进行了一个简单调研。如发现某些地方有问题希望大家批评指正,共同进步。
为一张图片产生一个描述被称为image caption任务。在编码端Image caption任务要求我们识别图中重要目标,其属性和相互关系。而在解码端要求我们产生语义和语法和正确的句子。本文对image caption近年发展历程和最新进展做了简单调研,并做一个简单的总结。由于当前深度学习方法在image caption中占主导地位,故本文主要关注基于深度学习的方法。
一. 图像处理方法简历
早期的图像处理方法基于传统机器学习,包括使用一些图像处理的算子来提取出图像的特征,使用支持向量机等进行分类以得到图像中的目标,再将得到的目标及其属性作为生成句子的依据。这样的做法在实际应用中并不理想。具有代表性的做法有Kulkarni et al.[3], Farhadi et al.[4]等较早期的工作。
深度学习促进了计算机视觉的迅速发展。图像编码和特征提取大大受益于CNN的发展。随着VGG等深度CNN编码器的出现,图像识别等任务准确率迅速提高。由于CNN强大的图像特征提取能力,在image caption任务中使用深度CNN网络作为图像特征编码器成为主流的做法。谷歌在2014年提出Neural Image Caption模型算是这种方法的开山之作。随后的Neural Talk等对image caption发展有较大影响的模型几乎都沿用了这个基本框架。
在video caption领域,传统编码端方法大同小异,主要的区别是video caption提取的特征随时间发生变化。除此之外,还有一张被称为3D特征提取[39]的方法,其思想是将视频的每一帧图像在channel维度合并起来,在进行3D的卷积。其主要目的是获得视频不同帧之间的相互关系。
视频还有一个特点就是其包含音频特征。谷歌提供了一个音频特征数据集,可用于这方面的研究。
二. 文字生成方法简历
在上文中提到,解码端主要任务是获得具有正确语法和正确语言的句子。针对这些目标,Image caption任务主要有3种生成文字的方法:基于模板填充的方法,基于检索的方法和基于生成的方法。
基于模板填充的方法主要指的是在人为规定的一系列句法模板中留出部分空白,然后再基于提取出的图像特征获得目标,动作及属性,将它们填充进入空白,从而获得对某一图像的描述。这种方法的代表有Li et al.[1], Kulkarni et al.[2]等。这种方法保证了语义和句法正确性。然而,完全确定的模板无法产生多样性的输入,故现在这种方法使用较少。
基于检索的方法指的是将大量的图片描述存于一个集合,再通过比较带描述图片和训练集中图片描述的相似性获得一个待选句集,再从中选取该图片的描述。这种方法保证了句法正确性,然而无法保证语义正确性,也无法对新图片进行准确的描述。
目前使用较多的是基于生成的方法。基于生成的方法大致流程是先将图像信息编码后作为输入送入语言模型,再利用语言模型产生全新的描述。绝大部分基于深度学习的image caption方法使用基于生成的方法,也是目前效果最好的image caption模型上普遍应用方法。它在句法正确性,语义准确性和对新图片的泛化能力上都达到了较好的效果。
在video caption领域,早期的解码方法基于句法结构,先预测主干关键词,如句子中的实体,动词等,再补全句子。Venugopalan et al.[33] 首次提出基于CNN 和RNN的seq2Seq生成方法,使用LSTM作为解码器获得caption。
三. Image caption代表性工作综述
下面主要按照重要工作和思想的归类对image caption领域具有代表性的工作进行简单总结,总结的重点是基于深度学习的方法。
1. Encoder-Decoder框架
谷歌在2014年提出了Neural Image Caption Generator[5]。不同于以往的基于规则和分类获取特征的方法,其受大获成功的机器翻译的模型影响,将原机器翻译模型中的用于提取原语言特征的RNN改为基于CNN的InceptionNet用于提取图像特征,而使用RNN作为解码器接受CNN提取出的图像,其中RNN也可替换为LSTM 或GRU等,以获得更好的长期记忆。而几乎与其同时提出的还有斯坦福大学的Neural Talk[6], 其基本架构与谷歌的模型几乎一模一样,唯一的区别是其使用的图像特征提取器是VGGnet。
以上两项工作首次提出image caption的编码-解码基本框架,可以被称作相关工作的开山之作。这种Encoder-Decoder模型对图像理解方向的工作影响巨大,向image caption任务中引入这样的架构已成为主流之一。其后有关工作主要是在其基础上作变化和提高。
先介绍一些编码端的主要改进。
微软在2015年提出了一种编码端改进方法,发表在论文From Captions to Visual Concepts and Back[10]中。该方法使用多实例训练训练一个词探测器,用于为每一张图片产生一系列可能出现在caption中的词语。再将获得的词语作为输入使用语言模型产生一系列关于该图片的描述句子,最后从中选择结果句子。这种通过提取关键词作为输入产生句子的方法无疑为接下来介绍的结合图像和语义的编码方法提供了借鉴。
Li et al.[9] 在2018年提出了一种新的特征提取方法。在提取图像特征时,通过目标检测算法获得一系列的目标检测框作为图像特征,并同时以图像特征为输入训练一个属性检测器。属性作为高层语义特征,和提取的图像特征一起作为经过特殊设计的Visual-Semantic LSTM的输入,再进行解码。这种使用目标检测使得输入特征更加“稠密”,而不是像以前直接输入整张图片,从而获得一种类似视觉注意力的效果。2018年发表于CVPR的工作Bottom-Up and Top-Down Attention[8]也使用了类似的编码