实战 | 一行代码让你的电脑可以看图说话

实战 | 一行代码让你的电脑可以看图说话

本篇推文共计1000个字,阅读时间约3分钟。

Image caption(图像描述)顾名思义,就是电脑根据算法让输入的一幅图像自动生成对应的描述性文字。有点类似于人的看图说话,即是让电脑对图像进行理解的过程。

Image Caption 任务是一个需要综合计算机视觉和自然语言处理的任务,需要使用计算机建立某种映射方式,将处于视觉模态当中的数据映射到文本模态当中,即让视觉和文字二者之间产生某种对应关系。

让电脑识别图像里的内容,并将电脑自己对图像的描述生成出来。如下所示。

实战 | 一行代码让你的电脑可以看图说话

总的来说,这样的映射任务需要如下两个基本需求:

1)语法的正确性,映射的过程当中需要遵循自然语言的语法,使得结果具有可读性;

2)描述的丰富程度,生成的描述需要能够准确描述对应图片的细节,产生足够复杂的描述。

本篇文章的主要内容是针对2015Google设计的Im2txt这一图像描述模型所做的实验

实战 | 一行代码让你的电脑可以看图说话

模型论文链接:

https://arxiv.org/abs/1609.06647

实战 | 一行代码让你的电脑可以看图说话

Im2txt模型

该模型是一个encoder-decoder模型。

实战 | 一行代码让你的电脑可以看图说话

encoder是编码器,它是一个CNN模型,常用于图像识别,目标检测等领域。各种常见的卷积网络都可以,比如VGG,Inception,ResNet等等。

decoder译码器,它是一个LSTM模型,常用于语言模型或机器翻译等领域。我们把encoder中输出的固定长度的向量输入到decoder中,获得关于图像的描述。

实战 | 一行代码让你的电脑可以看图说话

电脑环境准备

Python3.6

tensorflow-1.12

(建议使用Anaconda进行Python的安装,下载网站可以关注本公众号浏览上篇推文《你知道这些常用的Python IDE?》获取在这里使用Anaconda的另一个目的是因为,tensorflow框架可以在安装完Anaconda后,使用pip install tensorflow 就可以安装)

实战 | 一行代码让你的电脑可以看图说话

模型和代码准备

关注公众号,后台回复“模型”

即可获得全部代码文件

实战 | 一行代码让你的电脑可以看图说话

这里提供的模型和代码是我已经训练和调试过的,直接下载就可以使用。

im2txt文件夹中是项目主要程序

images文件夹中是需要测试的图片

model文件夹中是训练好的模型

img2txt.py是可以直接执行的python文件

img2txt.ipynbjupyter文件

实战 | 一行代码让你的电脑可以看图说话

在项目文件根目录执行代码python img2txt.py或者用jupyter打开img2txt.ipynb。就可以运行代码,进行实验。

(注意:需要在img2txt.py文件中将代码的模型路径更改为你放置下载模型的路径)

就是此三行代码,注意更改。

实战 | 一行代码让你的电脑可以看图说话

一切准备就绪后即可运行代码

实战 | 一行代码让你的电脑可以看图说话

运行结果

实战 | 一行代码让你的电脑可以看图说话

1.0 电脑识别图片生成语言描述测试一

实战 | 一行代码让你的电脑可以看图说话

1.1 电脑识别图片生成语言描述测试二

实战 | 一行代码让你的电脑可以看图说话

1.2 电脑识别图片生成语言描述测试三

综上来看,该模型基本实现了让电脑进行看图说话的能力,但是在准确性和适用性上还尚有欠缺,有很多可以去修改和完善的空间。

从近年发表的论文和科研研究成果来看

实战 | 一行代码让你的电脑可以看图说话

实战 | 一行代码让你的电脑可以看图说话

实战 | 一行代码让你的电脑可以看图说话

实战 | 一行代码让你的电脑可以看图说话

实战 | 一行代码让你的电脑可以看图说话

实战 | 一行代码让你的电脑可以看图说话

作者们是在此基础上不断改进模型结构,增强数据集,以此增强识别准确度,让电脑逐步变成一个真正的“人”。

可以说人工智能离我们越来越近了。

你害怕吗?

实战 | 一行代码让你的电脑可以看图说话

END

实战 | 一行代码让你的电脑可以看图说话

图片|网络

编辑|一个码农

实战 | 一行代码让你的电脑可以看图说话

喜欢本文的话麻烦你点个“关注”加“在看”

觉得写得不错的话可以点击下方“赞赏”

你的支持是我不断前行的动力