专栏首页看那个码农实战 | 一行代码让你的电脑可以看图说话

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

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

本文分享自微信公众号 - 看那个码农(gh_c2cbbe45c86d),作者:看那个码农

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 函数 | Python的内置函数详解(文末有惊喜)

    Python内置的函数及其用法。为了方便记忆,已经有很多开发者将这些内置函数进行了如下分类:

    潘永斌
  • 华为专家亲述:如何转型搞 AI?

    参考塞缪尔. 约翰逊(18 世纪英国文学评论家、诗人,著有《英语大辞典》、《莎士比亚集》)的思路,“当一个人厌倦了学习技术,那他肯定也厌倦了 IT 行业,因为只...

    潘永斌
  • Python解放双手系列——用python自动追踪你的快递

    最近国内疫情状况好转,快递业也逐渐恢复,大家的快递是不是跑起来了?本文就来讲解如何让python自动为你查询快递信息,并在物流发生更新或者到达指定地点时第一时间...

    潘永斌
  • 关键问题答疑:WGCNA的输入矩阵到底是什么格式

    这样的问题我其实被问过好多次了,因为这次是学员提问,虽然已经过了一个月的答疑期,但是情谊还在,所以就系统性的回复一下。

    生信技能树
  • 基本的电脑维修常识

    基本的电脑维修常识 1, 电脑出现蓝屏怎么办? ①如果电脑不常出现蓝屏,直接重启电脑; ②若为内存条故障:很可能是内存条被氧化,用橡皮擦下金手指,或换一下内...

    点云PCL博主
  • CVPR 2020 论文大盘点-图像增强与图像恢复篇

    本文继上一篇 CVPR 2020 论文大盘点-去雨去雾去模糊篇 之后,继续盘点CVPR 2020 中低层图像处理技术,本篇聚焦于图像视频的增强与恢复,含如下四个...

    CV君
  • TensorFlow实战——CNN(LeNet5)——MNIST数字识别

    本文地址: http://blog.csdn.net/u011239443/article/details/72861591

    用户1621453
  • 编译安装 MongoDB PHP 扩展

    cnguu
  • 33. 摄影-怎样对焦才能让不同距离的物体都拍摄清晰?

    怎样对焦,才能让场景中不同距离的每个物体都拍摄清晰?如果你喜欢摄影,在构图和取景时我想这个问题一定困惑过你。如我的文章31. 镜头、曝光,以及对焦(上)所说,镜...

    HawkWang
  • 了解Logstash

    Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。

    java架构师

扫码关注云+社区

领取腾讯云代金券