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

2019-10-08 16:57:32 浏览数 (1)

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

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

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

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

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

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

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

模型论文链接:

ttps://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.ipynb是jupyter文件

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

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

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

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

运行结果

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

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

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

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

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

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

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

你害怕吗?

END

0 人点赞