文章目录

  • NIC
  • LSTM
  • Coding
  • Beam Search

NIC

图片标题生成器是基于CNN+LSTM的一种神经网络系统,以文献《Show and Tell: A Neural Image Caption Generator》为参考,作者构造了一种叫做NIC(Neural Image Caption)神经网络系统,以CNN提取图片特征,最后一个隐藏层(hidden layer)作为LSTM的输入。

LSTM

LSTM(Long Short-term Memory)是一种特殊的RNN(Recurrent Neural Network).

最后达到的效果是对于任意一张图片,可以生成对应的一句话标题。

有关这篇文献的实现在GitHub上有很多,有一些基于MSCOCO数据集,有一些基于Fliker8k或者Flikr39k数据集,MSCOCO数据集的train、valid、test图片都要远多于另外两个。本文我们采用数据集Fliker8k实现。

Coding

environment
tensorflow

这份代码把 train and val 放在一起,由于数据集较小,训练比较容易一点。

config文件用来调整各种参数,由于train总共6000张图片,原始配置是epoch= 20,batch_size = 64,batch_size(批大小)与显存有关,batch_size越大训练速度会加快,但是很耗费显存,batch_size越小会很耗时间。实际情况下我们按自己的需要来确定批大小。
本次我们使用batch_size = 10,所以6000张图片,需要处理600次。

Python 3.5.6 |Anaconda, Inc.| (default, Aug 26 2018, 16:05:27) [MSC v.1900 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.IPython 5.8.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.
600/600 [==============================] - 4547s 8s/step - loss: 1.6872 - val_loss: 3.36240%|          | 0/1000 [00:00<?, ?it/s]
Epoch 00020: val_loss did not improve from 3.13169
Model trained successfully. Running model on validation set for calculating BLEU score using BEAM search with k=3
100%|██████████| 1000/1000 [30:41<00:00,  1.84s/it]
BLEU Scores :
A perfect match results in a score of 1.0, whereas a perfect mismatch results in a score of 0.0.
BLEU-1: 0.586872
BLEU-2: 0.328000
BLEU-3: 0.221105
BLEU-4: 0.107791


训练完成后,在model_data文件夹下会产生一系列HDF5文件,此时我们可以打开test.py文件,测试最终的效果。
生成的图片和原始图片都在test_data文件夹内。


Beam Search

Beam Search(集束搜索)是一种启发式图搜索算法,通常用在图的解空间比较大的情况下,为了减少搜索所占用的空间和时间,在每一步深度扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较高的结点。这样减少了空间消耗,并提高了时间效率,但缺点就是有可能存在潜在的最佳方案被丢弃,因此Beam Search算法是不完全的,一般用于解空间较大的系统中。

Beam Search 等于1的时候就退化到了贪心算法,在BLEU指标上贪心的Beam Search要比Beam Search = 20时评分低2个BLEU点。

We used the BeamSearch approach in the following experiments, with a beam of size 20. Using a beam size of 1 (i.e.,greedy search) did degrade our results by 2 BLEU points on average.

https://www.cnblogs.com/sddai/p/10552592.html

项目所用代码链接
https://download.csdn.net/download/weixin_46530492/13986124

图片标题生成器(literature:Show and Tell: A Neural Image Caption Generator)相关推荐

  1. 【Paper】CNN-LSTM:Show and Tell: A Neural Image Caption Generator

    论文期刊:CVPR 论文年份:2015 论文被引:3390(04/22/20) 论文下载:点击此处 文章目录 Abstract 1. Introduction 2. Related Work 3. M ...

  2. Show and Tell: A Neural Image Caption Generator 翻译

    摘要 自动描述图像的内容是连接计算机视觉和自然语言处理的人工智能中的一个基本问题.在本文中,我们提出了一个基于深度重构架构的生成模型,它结合了计算机视觉和机器翻译方面的最新进展,可以用来生成描述图像的 ...

  3. Show and Tell: A Neural Image Caption Generator(图文转换)

    在"Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Challenge."这篇论文中用Te ...

  4. Show, Attend and Tell: Neural Image Caption Generation with Visual Attention

    显示,参加和讲述:具有视觉注意的神经图像字幕生成 Abstract 原文 Inspired by recent work in machine translation and object detec ...

  5. 图像标注:Show, Attend and Tell: Neural Image Caption Generation with Visual Attention

    这篇文章是2015年ICML上的一篇文章,把attention机制引入到图像领域的文章,作者Kelvin Xu .Yoshua Bengio等人,来自多伦多大学和蒙特利尔大学. Image capti ...

  6. 计算机视觉经典论文整理

    经典论文 计算机视觉论文 ImageNet分类 物体检测 物体跟踪 低级视觉 边缘检测 语义分割 视觉注意力和显著性 物体识别 人体姿态估计 CNN原理和性质(Understanding CNN) 图 ...

  7. 在Tensorflow中使用深度学习构建图像标题生成器

    by Cole Murray 通过科尔·默里(Cole Murray) 在Tensorflow中使用深度学习构建图像标题生成器 (Building an image caption generator ...

  8. (zhuan) Recurrent Neural Network

    Recurrent Neural Network 2016年07月01日 Deep learning Deep learning 字数:24235 this blog from: http://jxg ...

  9. A Critical Review of Recurrent Neural Networks for Sequence Learning-论文(综述)阅读笔记

    A Critical Review of Recurrent Neural Networks for Sequence Learning 阅读笔记 //2022.3.31 下午15:00开始 论文地址 ...

最新文章

  1. 《评人工智能如何走向新阶段》后记(再续26)
  2. Android 8.0 运行时权限策略变化和适配方案
  3. JS实现全选、反选、不选
  4. 在SAP WebClient UI里显示倒数计时的UI
  5. datatable绑定comboBox显示数据[C#]
  6. python写入数据的一种措施_Python 文件数据读写的具体实现
  7. Python 第三方模块之 matplotlib - 绘图库
  8. (八)构建一个Docker容器来训练Deep Fake Autoencoders
  9. css样式,后代选择器
  10. 用SQL语句操作数据
  11. 试试既然没人玩,没得试验了
  12. 机器学习基础(五十)—— Gini Impurity(基尼不纯度)与香浓熵(Shannon Entropy))
  13. 【渝粤教育】国家开放大学2018年春季 7396-21T法学基础知识 参考试题
  14. MySQL基础知识系统学习
  15. Android 基于阿里云播放器实现仿抖音播放(一)
  16. 自制纯正弦波 12V转220V 1000瓦逆变器做家用太阳能电源
  17. 深度学习(5)之---目标检测综述:R-CNN、mask-RCNN、YOLO、SSD原理详解
  18. SpringMVC表单标签简介
  19. ecshop mysql密码忘记_ECSHOP后台密码忘记了怎么办
  20. 我们为什么要做智慧社区,智慧社区主要服务在哪些行业

热门文章

  1. 基础知识 十进制转二进制
  2. Google地球(GPS)坐标之地图坐标偏移
  3. springboot 拦截器 及 可能失效原因
  4. SpringBoot学生成绩管理系统
  5. 薛家计算机培训,薛家ug编程网络培训
  6. InteliJ IDEA社区版 两款插件变身旗舰版
  7. UE4 插件Water系统
  8. python第三方库安装最常用的方式是_Python安装第三方库常用方法
  9. MyBatis逆向工程--MyBatis Generator (MBG)代码生成工具的使用
  10. liquibase编写sql脚本