Google基于CNN+RNN开发了一个Image Caption Generator: http://bengio.abracadoudou.com/cv/publications/pdf/vinyals_2015_cvpr.pdf
自动描述图像内容的应用:帮助视力有缺陷的人更好的理解网络上的图片。
这个任务比计算机视觉领域通常关注的图像分类、物体识别任务更难。任务的目的:object+object relation + object attributes + activity involved in 同时expressed in natural language,这就要求除了视觉理解外,还需要一个语言模型。已有的一些方法,主要是将上述子问题的解决方案融合在一起,来实现图片到描述的生成。相反,本文希望提出一个单一的模型,输入是图片I,训练的目标是最大化似然概率P(S|I),S是目标word序列S={S1,S2,…},Si来源固定词典。
本文的主要思路来自于近期在机器翻译上的进展,即通过最大化P(T|S)序列的似然概率,实现源语言S到目标语言T的序列翻译。近些年机器翻译可以通过采用RNN(Recurrent Neural Network)来简单的达到state-of-art水平。主要结构是Encoder(RNN)+Decoder(RNN)实现。
在本文中,基本保持了这套方法,只是把Encoder中的RNN替换成了CNN。通过CNN,输入image可以被embedding为a fixed-length vector。因此,通过预训练一个CNN的图片分类任务,可以得到image encoder,之后用最后一个隐层(hidden layer)作为RNN decoder的输入,来产生sentence。这个模型被称为Neutral Image Caption(NIC)。
本文的主要贡献:1)end-to-end 系统;2)模型是对state-of-art的sub-network的组合,这些子网络可以在其他的大规模语料上充分的预训练;3)NIC的效果超出state-of-art。BLEU在Pascal dataset上,得分对比是59/25,human得分69。
参考:
这篇论文的中文翻译:http://www.jianshu.com/p/3330a56f0d5e
注意:虽然没有找到这篇论文的源代码,但是Moses Soh的文章实现了类似的架构。
Moses Soh 的文章“Learning CNN-LSTM Architectures for Image” 实现了类似的架构。
文章的下载地址:https://cs224d.stanford.edu/reports/msoh.pdf
视频: https://www.youtube.com/watch?v=XgJGvhkv_Mo
代码: https://github.com/mosessoh/CNN-LSTM-Caption-Generator