看图说话实战教程 | 第一节 | 教程简介及准备工作

引言

看图说话实战教程 | 第一节 | 教程简介及准备工作_第1张图片

从上图中你看到了什么?

你会说"一条站在草地上的小狗"、"草地上的一条白色小狗"等等,这些都是能够描述这张图片传达的信息的。

对我们人类而言,用文字描述图片这项任务非常简单,即使是5岁的小孩子也能非常准确地总结出图片中的信息。但是,对于计算机来说,这项任务并不简单,不仅需要准确理解包含在图片中的内容,而且还需要将这些内容组织成一段语意连贯的文字描述。

我们将这种用一段文字概述图片内容的任务定义为看图说话 (Image Captioning) ,其输入是一张图片,输出是一段文字描述。看图说话是一种结合了计算机视觉 (Computer Vision) 和自然语言处理 (Natural Language Processing) 两大领域的综合性的智能任务,既需要计算机视觉技术来理解图片里面包含的内容,也需要自然语言处理技术来将对图片的理解转换成相应的语意连贯的描述性的文字。

在现实生活中,看图说话有很多的应用场景。比如,用户拍了一张照片后,利用Image Captioning技术可以为其生成合适的文字方便以后检索或省去用户手动配文。此外,它还可以帮助视觉障碍者去理解图像内容。视频解说 (Video Captioning) 任务与看图说话任务相类似,两者不同之处在输入的形式不同。视频解说任务的输入是一段视频,输出是一段对视频的描述。

除了在计算机视觉及自然语言处理领域被广泛使用并取得非常好的效果之外,深度学习方法在看图说话任务上也取得了当前最优的结果。但是,在深度神经网络取得巨大进展之前,即使是最顶尖的计算机视觉研究人员,也无法使用一种行之有效的方法来解决这个难题。有了深度学习方法,这个问题相比过去变得非常容易解决,只要有理想的数据集。深度学习方法为解决看图说话任务带来的一个巨大的优势在于我们不再需要异常复杂的数据处理或者一套精心设计的模型工作流,取而代之的是定义一个端到端模型直接生成一张图片的文字描述。

斯坦福大学李飞飞教授的博士生Andrej Karapathy在其博士论文《Connecting images and natural language》中已经对这个问题进行了详细的研究。建议感兴趣的同学去读一读,加深对这个任务的理解。

教程安排

在这篇教程中,你将会学习到如何从头开始开发并部署自己的基于深度学习技术的看图说话模型。完成这个教程,你将会知道:

  1. 如何准备图片和文本数据用于看图说话模型的训练、评估与测试
  2. 如何设计并训练你的基于深度学习技术的看图说话模型
  3. 如何评估训练好的看图说话模型并用来为新的照片生成准确的文字描述
  4. 如何部署你的看图说话模型

本篇教程将被划分为如下六小节:

第一节:教程介绍及准备工作

第二节:图像及文本数据预处理

第三节:看图说话模型的构建及训练

第四节:看图说话模型评估

第五节:测试及部署你的模型

第六节:模型优化及思路扩展

教程基础

完成这篇教程,你需要有Python编程语言基础,熟悉Python的语法及数据结构,做过文本处理,对Keras、Numpy等框架有所了解,还要了解并熟悉一些深度学习的基本概念,如多层感知器,卷积神经网络,循环神经网络,迁移学习,梯度下降,反向传播,过拟合等。

开发环境配置

这篇教程需要安装Python 3.5及以上版本,Python数值计算库NumPy,以及深度学习库Keras 2.0.6及以上版本。确保你已经在自己的电脑上安装了如下的依赖包:

pip install Keras==2.0.6, numpy=1.18.1, tqdm, Pillow==7.0.0
pip install tensorflow==1.9.0 (如果没有GPU)
pip install tensorflow-gpu==1.9.0 (如果有GPU)

Keras的默认后端计算框架是TensorFlow。

为了能够保证更快地训练本篇教程中的看图说话模型,强烈建议大家使用带有GPU的计算机进行训练。详细的GPU深度学习环境配置,请参考这篇博客《深度学习环境配置》。如果没有GPU计算资源,也不会妨碍完成本教程的学习,安装对应的CPU版本的tensorflow即可。

看图说话数据集

有很多开放的数据集可供使用,比如Flickr8K、Flickr30K以及MS COCO等。在这篇教程中,我们使用伊利诺伊大学香槟分校发布的Flickr8K数据集。之所以选择这个数据集是因为它相对来说比较小,即使没有GPU计算资源,你能在自己的工作机上也能使用CPU构建模型。

Flickr8K数据集包含了约8000张图片,每张图片包含了5条文字描述。其中,训练集、验证集与测试集的大小分别为6000、1000、1000。关于这个数据集更多的细节参见论文《Framing Image Description as a Ranking Task: Data, Models and Evaluation Metrics》。

看图说话实战教程 | 第一节 | 教程简介及准备工作_第2张图片

关注“语言智能技术笔记簿”公众号或扫描博客底部二维码添加关注,回复"Flickr8k"获取下载链接。


想要了解更多的自然语言处理最新进展、技术干货及学习教程,欢迎关注微信公众号“语言智能技术笔记簿”或扫描二维码添加关注。
在这里插入图片描述

你可能感兴趣的:(实战教程,看图说话,Image,Caption,深度学习,Deep,Learning,教程)