如何使用注意力模型生成图像描述?

栏目: 数据库 · 发布时间: 6年前

内容简介:雷锋网按:本文为 AI 研习社编译的技术博客,原标题 Image Captioning with Attention翻译 |  刘娇     整理 |  余杭图像描述类任务就是给图像生成一个标题。 给定一个图像:

雷锋网按:本文为 AI 研习社编译的技术博客,原标题 Image Captioning with Attention

翻译 |  刘娇     整理 |  余杭

图像描述类任务就是给图像生成一个标题。 给定一个图像:

如何使用注意力模型生成图像描述?

图片出处 , 许可证:公共领域

我们的目标是用一句话来描述图片, 比如「一个冲浪者正在冲浪」。 本教程中用到了基于注意力的模型,它使我们很直观地看到当文字生成时模型会关注哪些部分。

如何使用注意力模型生成图像描述?

这个模型的结构类似于论文: Show, Attend and Tell: Neural Image Caption Generation with Visual Attention.

本教程中的代码使用到了  tf.keras eager execution 这两个工具,链接里有详细的内容可以学习。

这个 notebook 展示了一个端到端模型。 运行的时候,它会自动下载 MS-COCO 数据集,使用 Inception V3 模型训练一个编码 - 解码器,然后用模型对新图像进行文字描述。

这篇代码可以在 Colab  中运行,但是需要 TensorFlow 的版本 >=1.9   

本实验对数据进行打乱以后取前 30000 篇描述作为训练集,对应 20000 篇图片(一张图片可能会包含多个描述)。 训练模型的数据量相对较小,因此只用了一个 P100 GPU,训练模型大约需要两个小时。

如何使用注意力模型生成图像描述?

下载 MS-COCO 数据集

MS-COCO  数据集包含 82,000 多张图片,每张图片都是用至少 5 句不同的文字描述的。 下面的代码在运行时会自动下载并且解压数据。

注意: 提前下载好数据,数据文件大小 13GB 。

如何使用注意力模型生成图像描述?

选择是否压缩训练集大小来减少训练时间

本教程中选择用 30000 篇描述和它们对应的图片来训练模型,但是当使用更多数据时,实验结果的质量通常会得到提高。

如何使用注意力模型生成图像描述?

如何使用注意力模型生成图像描述?

Inceptions v3 图像预处理

这个步骤中需要使用 InceptionV3 (在 Imagenet 上训练好的模型) 对每一张图片进行分类,并且从最后一个卷积层中提取特征。

首先,我们需要将图像转换为 inceptionV3 需要的格式:

把图像的大小固定到 (299, 299);

使用 preprocess_input 函数将像素调整到 -1 到 1 的范围内(为了匹配 inceptionV3 的输入格式)。

如何使用注意力模型生成图像描述?

初始化 InceptionV3 & 下载 Imagenet 的预训练权重

将 InceptionV3 的最后一个卷积层作为输出层时,需要创建一个 keras 模型

将处理好的图片输入神经网络,然后提取最后一层中获得的向量作为图像特征保存成字典格式(图名 --> 特征向量);

选择卷积层的目的是为了更好地利用注意力机制,并且输出层的数据大小是8x8x2048;

......

想要继续阅读,请移步至我们的AI研习社社区: https://club.leiphone.com/page/TextTranslation/628

更多精彩内容尽在 AI 研习社。

不同领域包括计算机视觉,语音语义,区块链,自动驾驶,数据挖掘,智能控制,编程语言等每日更新。

手机端可以扫描二维码访问:

雷锋网(公众号:雷锋网 (公众号:雷锋网) )雷锋网

如何使用注意力模型生成图像描述?

雷锋网原创文章,未经授权禁止转载。详情见 转载须知

如何使用注意力模型生成图像描述?

以上所述就是小编给大家介绍的《如何使用注意力模型生成图像描述?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Understanding Computation

Understanding Computation

Tom Stuart / O'Reilly Media / 2013-6-3 / USD 39.99

Finally, you can learn computation theory and programming language design in an engaging, practical way. Understanding Computation explains theoretical computer science in a context you'll recognize, ......一起来看看 《Understanding Computation》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

SHA 加密
SHA 加密

SHA 加密工具