***chapter 17 看图说话:将图像转换为文字

2023-05-16

所谓Image Caption,是指从图片中自动生成一段描述性文字,类似于“看图说话”。
本章主要介绍2个内容:
1)Image Caption的技术原理;
2)Image Caption在Tensorflow中的实现;

一、Image Caption综述

本节总结了3篇论文中Image Caption的核心思想。

(一)Show and Tell:A Neural Image Caption Generator。

该篇论文中,Image Caption采用了Encoder - Decoder 模型的思想,区别在于:其Encoder采用CNN(Inception V3)来提取图像特征,Decoder采用LSTM来输出文字,其具体结构如下:

该论文中,只是简单的利用Encoder-Decoder模型的结构,设计了一个Image Caption模型,并没有其他额外的改进。

(二)Show,Attend and Tell:Neural Image Caption Generation with vision attention。

与第一篇文章相比,该论文中引入了“注意力机制”,其核心思想如下:
在第一篇论文中,利用CNN提取了Image固定长度的向量特征;而在本篇论文中,利用CNN提取了image不同部位的向量特征,假设image=(14,14,256),则其位置个数=1414,我们可以利用CNN来提取这1414个位置的向量特征,记为:{a1,a2,…,aL},L=14*14,为每个位置的向量特征均赋予一个权重ati(代表:Decoder中第t阶段的context与Encoder中第i个位置的向量特征之间的关联程度),假设zt为Decoder的context,则有下列关系式:,这与“机器翻译中的注意力机制”类似。
在这里,at,i只与Decoder中的ht-1和Encoder中的第i个向量特征有关,其计算公式如下:在这里插入图片描述
可以利用权重ati,了解Decoder生成word的时候,模型关注了图片的哪一部分,以下为生成某一单词时,模型的关注点示意图:

(三)What value do explicit high level concepts have in vision to language problems?

前2篇论文均是将CNN中分类的layer省去,而直接用之前的卷积层作为“向量特征”,本篇论文认为:CNN最后的分类layer含有大量的语义信息(即:image中含有那些物体的信息),不能轻易舍弃。
实际上,该篇论文把“高层语义”理解为一个“多分类问题”,因此,保留CNN中最后的softmax层,假设一个image中有c个物体,则CNN应该有c个softmax层。这里,假设第i个image的标签yi = {yi1,yi2,…yic},yic={0:没有c物体,1:有c物体},pi={pi1,pi2,…,pic}表示image中是否有物体c的概率,则该CNN的损失函数可以表示为:,通过训练该CNN,将CNN softmax层的输出作为“高层语义表达向量Vatt(l)”,输入Decoder输出各个阶段的word,其结构如下图所示:
在这里插入图片描述
实验证明,使用Vatt(l)代替CNN(I),可以大幅度提高Image Caption模型的效果,下图所示为本片论文模型结构:
其中,左上方的虚线代表前2篇论文使用的CNN(I)特征向量,左下方的实线则为本篇论文Encoder之后输出的context:Vatt(I)。

二、在Tensorflow中实现Image Caption

源码有时间在详读,解析!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

***chapter 17 看图说话:将图像转换为文字 的相关文章

  • Unity3D场景切换

    首先新建两个场景 xff1a Scene 1与Scene 2 在第一个场景Scene 1中加入UI控件Button Text设置为 点击切换场景 xff0c 名称为默认值 Button 新建一个脚本 xff0c 命名为ChangeScene
  • oracle10g后面的聚合运算函数:cube、rollup等

    oracle10g后面的聚合运算函数 xff1a cube rollup及聚合运算sql 看到很多次阅读 xff0c 所以还是过来再写点东西 cube和rollup xff0c 只能配合group by使用的 xff0c 之所以之前没怎么看
  • Ubuntu 14.04利用tasksel安装配置lamp环境

    用 tasksel 可以方便安装dns server lamp kubuntu desktop ubuntu desktop xubuntu之类的软件包 这个软件在server版是预装的 xff0c 而在桌面版里是不预装的 xff0c 想用
  • 设置USB无线网卡为监听模式大学霸IT达人 

    设置USB无线网卡为监听模式大学霸IT达人 当用户实施无线网络渗透时 xff0c 设置无线网卡为监听模式是必不可少的操作 大学霸IT达人信息安全技术大讲堂通常情况下 xff0c 用户会遇到各种问题 xff0c 如网卡不支持 xff0c 网络
  • 判断无线网卡是否支持5GHz频段

    判断无线网卡是否支持5GHz频段 目前 xff0c 无线WiFi网络支持2 4GHz和5GHz两个频段 大学霸IT达人其中 xff0c 5GHz传输速率更高 xff0c 逐步会成为主流 如果要使用或渗透5GHz网络 xff0c 则无线网卡也
  • 嵌入式开发之Vscode实用插件大全

    嵌入式开发之Vscode实用插件大全 Chinese Simplified 简体中文 xff08 神器 xff09 C C 43 43 amp CMake amp C C 43 43 Extension Pack xff08 神器 xff0
  • django将网络中的图片,保存成model中的ImageField

    有这样的情形 xff0c django个人头像在model中是 xff1a class UserProfile AbstractUser 34 34 34 用户 34 34 34 name 61 models CharField max l
  • 【AI视野·今日Robot 机器人论文速览 第九期】Thu, 17 Jun 2021

    AI视野 今日CS Robotics 机器人学论文速览 Thu 17 Jun 2021 Totally 15 papers x1f449 上期速览 更多精彩请移步主页 Daily Robotics Papers Autonomous Nav
  • SpringBoot 集成cas5.3 实现sso单点登录

    博主说明 这篇文章速成cas xff0c 下面包含了cas统一认证登录 xff0c 统一认证登出 有兴趣想了解更多cas内容的可以看看我下面这些文章 springboot 使用cas5 3 sso概念springboot 集成cas5 3
  • UltraVNC 使用,内网局域网远程控制

    介绍 UltraVNC 是客户端 服务器软件 xff0c 允许你经由 TCP IP 连线 xff08 也就是主机都在同一网络环境下 xff09 xff0c 控制远端的电脑 这个版本的开发以 RealVNC 为基础 xff0c 加上了Tigh
  • JS判断一个字符串是否在数组中

    方法1 xff1a arr indexOf 某元素 xff1a 未找到则返回 1 span class token keyword var span number span class token operator 61 span span
  • pb9 数据窗口的计算列

    数据窗口中 xff0c 可以增加计算列 xff0c 进行合计 平均或者其他计算动作 在窗口的按钮 xff0c 或者其他事件中 xff0c 可以对数据窗口的计算列的表达式进行修改 xff0c 这样可以将数据窗口多用 办法 xff1a dw 1
  • tar打包命令(linux)

    1 打包命令 span class token function tar span cvf 归档路径 被打包文件路径 span class token punctuation span c create archive v verbose
  • Python字符串与数组相互转换

    Python中有join 和os path join 两个函数 xff0c 具体作用如下 xff1a join xff1a 连接字符串数组 将字符串 元组 列表中的元素以指定的字符 分隔符 连接生成一个新的字符串os path join x
  • FastApi 文件上传upload

    需要使用的Python包 xff1a fastapi和uvicorn span class token keyword import span time span class token keyword import span uvicor
  • zip/tar 分割压缩和合并解压

    1 zip 分割压缩和合并解压 span class token comment 准备工作 xff1a 将文件或文件夹打包为zip压缩包 span span class token function zip span r src zip s
  • python 创建excel 并保存(两种方法)

    1 概要 python中的包xlwt和xlsxwriter都是比较方便创建excel文件并写入数据的 2 xlwt 创建excel并保存 xlwt中 xff1a 通过xlwt Workbook 来新建工作簿 xff1b 通过 add she
  • Python 保留两位小数几种方法

    一 xff1a 保留两位小数 且 做四舍五入处理 四舍六入五成双 xff0c 四舍六入五凑偶的意思 xff0c 根据百度词条的解释如下 xff08 1 xff09 当精确位后面一位的数字是1 4的时候 xff0c 舍去 xff08 2 xf
  • XSS 攻击常用代码

    1 XSS 攻击常用代码 span class token number 1 span 39 34 span class token punctuation span span class token punctuation span sp
  • xpath 爬虫案例

    1 案例 爬取糗百中的段子内容和作者名称 span class token keyword from span lxml span class token keyword import span etree url span class t

随机推荐

  • Selenium 鼠标滚动操作

    1 JS处理滚动条问题 span class token number 1 span 滚动条回到顶部 xff1a js span class token operator 61 span span class token string 34
  • selenium 定位元素(并集)

    并集 xff1a answer 61 driver find element By CLASS NAME info content and huida con text 1 id 说明 xff1a 通过元素的id属性来定位元素 xff0c
  • 精细粒度访问控制:DBMS_RLS包实现数据库表行级安全控制

    精细粒度访问控制 xff1a DBMS RLS包实现数据库表行级安全控制 这是行级控制 xff0c 并且用的数据库提供的dbms包做的 xff0c 而不是视图或者触发器 xff0c 据说 xff0c 可以对所有的DML起作用 精细粒度访问控
  • java获取json数组格式中的值

    第一种方法 xff1a String str span class token operator 61 span span class token string 34 39 array 39 39 id 39 5 39 name 39 39
  • 程序员面试经历

    现在找工作 已经没有了毕业以后那时候找工作的那种紧张心情 自从在上家公司离职以后 自己进行了一段时间的工作 世界上本来没有面霸 面试的多了 也就成了面霸 不得不承认 一开始自己面试是有些紧张 但是 面试的多了 也就不觉得紧张 反而有些平淡了
  • 宽度优先爬虫和带偏好的爬虫

    互联网可以看成一个超级大的 图 xff0c 而每个页面可以看成一个 节点 页面中的链接可以看成是图的 有向边 因此 xff0c 能够通过图的遍历得方式对互联网这个超级大 图 进行访问 图的遍历可以分为宽度优先遍历和深度优先遍历 xff0c
  • The connection to the server localhost:8080 was refused

    最近在学习安装Kubernetes集群的时候 xff0c 安装完执行sudo kubectl get nodes命令出现这个报错 xff1a 下面是解决方法 Master节点出现这个报错 首先需要检查Master安装完Kubernetes后
  • 给广大学习单片机的同学心得,如何学好单片机

    单片机 Microcontrollers 是一种集成电路芯片 xff0c 是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU 随机存储器RAM 只读存储器ROM 多种I O口和中断系统 定时器 计数器等功能 可能还包括显示驱动电
  • 企业如何实现云计算价值的最大化

    恒天云商业白皮书 xff1a http www hengtianyun com download show id 12 html 企业如何实现云计算价值的最大化 卷首语 虽然中国云计算产业尚处于导入和准备阶段 xff0c 但云产业生态链的构
  • ISP、IAP、ICP、JTAG、SWD的编程特点!种编程方式区别总结

    转载自 xff1a http www eeskill com article id 38434 http bbs ic37 com bbsview 33838 htm 电子工程师都知道 xff0c 半导体技术发展迅猛 xff0c 带动了各种
  • OpenMP 参考(指令详解)

    OpenMP 参考 xff08 指令详解 xff09 翻译 2011年03月21日 17 53 00 标签 xff1a parallel fortran newline list integer 工作 9866 编辑 删除 共享工作 xff
  • yum install brctl报错

    安装brctl xff0c 如果使用下面命令会报错 xff0c 找不到包 yum install brctl 实际应该执行下面的命令 y 表示全部问题自动回答为是 yum install bridge utils y
  • 喵小依踩奶篇

    从刚来到现在 xff0c 喵小依踩奶奶 的瞬间 不甚枚举 xff0c 归纳总结 xff0c 大多出自以下几个意图 xff1a 1 xff0c 喵小依初来咋到时 xff0c 总会一个人出神的抱着自己的小毯子 踩奶奶 xff0c 可能是在怀念呆
  • centos下终端分辨率

    有时候 xff0c 终端分辨率不适合 xff0c 需要修改 xff0c 尤其是虚拟机的时候 在 boot grub grub conf中 kernel 这行增加 vga 61 ask 重启 xff0c 就出现询问要那种显示模式 xff0c
  • Linux:备份你的工作和 系统

    1 xff0c 备份工具 xff1a dump span class token comment 使用dump备份 xff0c 会将原有设备上的数据覆盖掉 span dump 0u f dev nst0 web span class tok
  • Linux:用户与用户组管理

    添加用户 用户组 场景 xff1a john的电脑丢了 xff0c 想借你的电脑用几天 xff0c 但是你的电脑里有一些私人文件不想让john看到 xff0c 于是乎 xff0c 你决定给john建立一个账号 xff1a span clas
  • Linux:/etc/passwd文件

    待更新
  • 赤池信息量准则(Akaike Information Criterion)

    赤池信息量准则
  • tensorflow命令行参数:tf.app.flags.DEFINE_string、tf.app.flags.DEFINE_integer、tf.app.flags.DEFINE_boolean

    tensorflow命令行参数 xff1a tf app flags DEFINE string tf app flags DEFINE integer tf app flags DEFINE boolean
  • ***chapter 17 看图说话:将图像转换为文字

    所谓Image Caption xff0c 是指从图片中自动生成一段描述性文字 xff0c 类似于 看图说话 本章主要介绍2个内容 xff1a 1 xff09 Image Caption的技术原理 xff1b 2 xff09 Image C