铁丝网厂家
免费服务热线

Free service

hotline

010-00000000
铁丝网厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

如何使用注意力模型生成图像描述_[#第一枪]

发布时间:2021-06-07 13:19:35 阅读: 来源:铁丝网厂家

按:本文为 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 研习社。

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

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

雷锋网

液压手术台价格

食品包装设计批发

家用缸

欧式起重机批发