图像描述的含义是生成图像的描述,采用注意力机制生成图像标题,图像标题的每个词集中在图像中最相关的部分,并且预测下一个词。

如下图的图像生成:

图像标题:<start>a large airplane flying in the blue sky <end>

图像标题生成框架:

该框架涉及的几个概念:

图像编码(Encoder):将具有3个彩色通道的输入图像编码成具有“学习”通道的较小图像,这些编码图像包含了原始图像的信息。

图像解码(Encoder):将编码图像逐字生成标题。

注意力网络(Attention):编码与词相关的图像,每个标题的词集中在图像最相关的部分。

束搜索(Beam search):解码器逐字生成的标题序列中,束搜索算法得到最优的标题序列。

下面详细介绍这几个概念。

1.图像编码

我们使用ResNet-101网络去编码图像,需要去除最后两层的线性层,因为最后两层的线性层是用于分类任务的,图像编码只需提取特征。

图像编码网络如下图:

ResNet网络编码的结果是由2048个通道大小为14×14图像组成,模型参数通过迁移学习获得。

2.图像解码

解码器是根据编码图像逐字生成标题,这里使用循环神经网络(RNN)生成标题序列,选择的RNN类型为LSTM。

若解码器不使用注意力机制,那么解码器的算法流程是:首先对编码图像所有像素进行平均,得到2048×1的向量,然后无论对该向量是否进行线性变换,都可以将其作为第一个隐藏状态输入解码器,生成第一个单词,并用该单词作为输入生成下一个单词。

若解码器使用注意力机制,那么解码器在生成单词时,需要考虑该单词最相关的图像部分。比如语句序列a man holds a生成单词football时,解码器需要关注图像中足球所在的区域,并给该区域较大的权重。

如下图含有注意力机制的解码器:

解码器网络的输入是前一个RNN单元的输出隐藏层,上一个单词的嵌入向量和注意力网络生成的权重图像,算法代码需要将嵌入向量和注意力网络拼接成一个向量作为输入。

3.注意力网络

注意力网络计算与词相关的像素权重。

凭自己的直觉,如何估计图像某一部分的重要性?若要突出图像某一区域的重要性,那么需要提高该区域的权重。

在图像描述项目中,你需要了解到目前为止生成的序列,根据注意力网络生成像素权重,并决定接下来需要描述什么。

这正是注意力机制所做的——它考虑目前为止所生成的序列,并关注接下来需要描述的图像部分。如下图:

4.图像描述框架

根据前面介绍的编码器,解码器和注意力机制,图像描述框架如下图:

算法流程:

1)编码器编码输入图像的信息,生成1048个通道大小为14×14的图像,编码器采用ResNet-101网络,不包括网络最后两层的线性层。

2)注意力网络根据编码图像和上一层解码器的输出隐藏状态,生成与下一个单词相关的图像。

3)解码器生成图像的标题序列,解码器采用LSTMcell网络。

5. 束搜索(Beam Search)

我们使用线性层将解码器的输出转换为词汇表中每个单词的得分。

最直接和贪婪的方法是选择当前得分最高的单词来预测下一个单词,这种做法很可能生成的不是最佳序列,因为剩下的单词序列取决于你选择的第一个单词。如果第一个单词不是最好的,那么接下来的序列预测都是次优的。

解决方法是:每次解码器都选择最好的3个单词,比如你在第一步选择3个最好的单词,第二步根据第一步的每个单词,都生成3个最好的单词,即第二步共生成9个单词。结合第一步第二步,选择最优的3个单词序列。以此类推,当预测单词为<end>时,标题序列生成结束。

如下图的束搜索算法生成最优标题序列:

由上图可知,最优标题序列为:a man holds a football

参考

https://github.com/sgrvinod/a-PyTorch-Tutorial-to-Image-Captioning

计算机视觉 | 图像描述与注意力机制相关推荐

  1. 计算机视觉中的注意力机制的学习笔记

    1 介绍 关于注意力机制(Attension)的综述请参考博文<综述|计算机视觉中的注意力机制> 关于Attention机制,我总觉得是一个很有趣的话题,因为根据"万能拟合器&q ...

  2. 深度学习 计算机视觉中的注意力机制

    计算机视觉中的注意力机制 前言 self attention 空间域注意力(spatial transformer network, STN) 通道注意力(Channel Attention, CA) ...

  3. 综述:计算机视觉中的注意力机制

    作者|xys430381_1 https://blog.csdn.net/xys430381_1/article/details/89323444 本文仅作学术分享,著作权归作者所有,如有侵权,请联系 ...

  4. 计算机视觉中的注意力机制--attention mechanism

    转载:https://zhuanlan.zhihu.com/p/56501461 张戎 引言 在机器翻译(Machine Translation)或者自然语言处理(Natural Language P ...

  5. 计算机视觉中的注意力机制(Visual Attention)

    ,欢迎关注公众号:论文收割机(paper_reader) 原文链接:计算机视觉中的注意力机制(Visual Attention) 本文将会介绍计算机视觉中的注意力(visual attention)机 ...

  6. 综述|计算机视觉中的注意力机制

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨HUST小菜鸡@知乎 来源丨https://zhuanlan ...

  7. 万字长文解读计算机视觉中的注意力机制(附论文和代码链接)

    文中论文和代码已经整理,如果需要,点击下方公号关注,领取,持续传达瓜货 所向披靡的张大刀 注意力机制是机器学习中嵌入的一个网络结构,主要用来学习输入数据对输出数据贡献:注意力机制在NLP和CV中均有使 ...

  8. 论文--计算机视觉中的注意力机制

    目录 引言 2022-04-09 update 2022-02-02 update 2021-12-15 update CV注意力机制资源汇总 Attention Mechanisms in Comp ...

  9. 2021综述:计算机视觉中的注意力机制(续四):分支注意力

    3.5 Branch Attention Branch attention 可以看成是一种动态的分支选择机制:要注意哪个,与多分支结构一起使用. 3.5.1 Highway networks 受长短期 ...

最新文章

  1. Matlab中fft作频谱横纵坐标
  2. Add Binary - LeetCode
  3. android 菱形布局,Android 设计一个菱形形状的Imageview组件.
  4. liunx mysql模块_linux下安装MySQLdb模块_MySQL
  5. Leetcode12. 整数转罗马数字(C++)
  6. ospf 单区域配置
  7. 根据当前日期返回星期数
  8. SaltStack Syndic配置
  9. 【单片机基础篇】舵机模块使用
  10. 砂.随笔.九.12.14公司停电,冒雨修爪爪
  11. 修改linux文本模式下的分辨率
  12. mysql5.6卸载干净_Mysql完全干净卸载教程
  13. 【京东】scrapy爬虫抓取京东图书详情、评论
  14. 一个霸占程序员休息时间的 APP
  15. 推荐系统[四]:精排-详解排序算法LTR (Learning to Rank): poitwise, pairwise, listwise相关评价指标,超详细知识指南。
  16. 聚点 内部 内点 导集
  17. BZOJ 3875: [Ahoi2014Jsoi2014]骑士游戏 dp spfa
  18. 【构造】Colored Rooks
  19. 在Windows中安装Anaconda、NumPy和Matplotlib软件包
  20. 学习,更需要坚持和耐力

热门文章

  1. 如何利用离散Hopfield神经网络进行高校科研能力评价(1)
  2. Matlab与数据结构 -- 对向量的排序
  3. RANet : 分辨率自适应网络效果和性能的best trade-off | CVPR 2020
  4. TF 2.1.0-rc2发布,2020年停止支持Python 2
  5. 算法人必懂的进阶SQL知识,4道面试常考题
  6. 《请不要回应外星人2019》
  7. AI一分钟 | AI机器人竟混入大学哲学课堂并顺利结业,居然无人察觉!
  8. 天哪,路由器都能跑Docker了!
  9. 2021 最新版 Spring Boot 速记教程
  10. 分库分表之 Sharding-JDBC 中间件,看这篇真的够了!