论文分享——Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering

2023-05-16

文章目录

  • 文章简介
  • 1、背景介绍
    • 研究背景
    • 概念介绍
    • 问题描述
    • IC与VQA领域的主要挑战
  • 2、相关研究
    • CNN+RNN体系架构
    • Attention mechanism
    • Bottom-Up and Top-Down Attention
    • Bottom-Up Attention
    • Bottom-Up and Top-Down Attention
    • Faster RCNN
  • 3、本文方法
    • Overview of the proposed captioning model
    • Overview of the proposed VQA Model
  • 4、实验
    • Datasets & Metrics
    • ResNet Baseline
    • Image Captioning Results
    • VQA Results
    • Qualitative Analysis
  • 5、小结

文章简介

文章发表于CPVR 2018,成为经典范式

Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering - Anderson P et al, CVPR 2018.

code

作者个人主页:https://panderson.me/

1、背景介绍

研究背景

在这里插入图片描述

随着NLP和CV领域技术的发展,视觉和文本数据融合的多模态技术逐渐引起重视,如图片描述( image captioning [4],IC)和视觉问答(visual question answering (VQA) [12] )等。

概念介绍

Image caption的任务就是给定机器一张图片让机器感知图像中的物体并捕捉它们的联系,然后生成一段描述性的语言。
Visual question answering是指给定一张图片及其相关问题,根据图片信息做出相应回答。

问题描述

在这里插入图片描述

IC与VQA领域的主要挑战

  • 评价指标不准确:由于该领域评价非常困难与主观,而且该领域的自动评价指标许多是照搬机器翻译领域的,与人工评价仍有诸多不符。

  • 数据量大,训练困难:该领域涉及CV和NLP,需要大量的数据进行神经网络的训练,这对于机器资源和训练时间有一定的要求。

  • 描述局限性:对应的描述风格单一,对图片的描述不够详尽以至于遗漏关键信息,描述的语言和背景单一等等。

2、相关研究

CNN+RNN体系架构

IC领域借鉴了机器翻译领域的Encoder-Decoder架构,即使用CNN提取图像特征喂给RNN,后者再根据这些图像信息以及其它额外信息生成对应的文字。
由于RNN无法处理较长上下文的信息,而且还会出现梯度消失或者梯度爆炸的情况,所以LSTM后来被引进替代RNN。
在这里插入图片描述

但是图像中的不同内容对于caption中的各个词的贡献是不同的,人们更关心那些重要的关键词,所以之后Attention机制又被引入,这也是本文涉及的主要内容。
在这里插入图片描述

Attention mechanism

注意力模型(AM)最初被用于机器翻译[Bahdanau et al., 2014],现在已成为神经网络领域的一个重要概念。注意力机制可以利用人类视觉机制进行直观解释。例如,我们的视觉系统倾向于关注图像中辅助判断的部分信息,并忽略掉不相关的信息[Xu et al., 2015]。
sequence-to-sequence模型由编码器-解码器体系结构[Cho et al., 2014b]组成,这种架构在机器翻译领域很流行,但是存在一些问题:定长的中间向量c限制了模型性能;输入序列的不同部分对于输出序列的重要性不同。
之后注意力机制被引用解决这些问题。解码器中的每个时刻不是输入固定的c,而是输入不同的ci;每个时刻的c自动选取与当前输出最相关的上下文。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

C是语义编码,权重aij表示target输出第i个单词yi时source输入句子中第j个单词xj的注意力分配系数;hj是source输入句子中第j个单词的语义编码;Tx表示句子长度;
计算每个hj对于hi‘的影响程度eij并归一化得aij

Bottom-Up and Top-Down Attention

Top-down attention由当前任务所决定,它会根据当前任务(生成caption或者是VQA中的问题),聚焦于与任务紧密相关的部分。Bottom-up attention指的是我们会被显著的、突出的、新奇的事物给吸引。
以前的方法用到的visual attention mechanisms大都属于top-down类型,即取问题作为输入,建模attention分布,然后作用于CNN提取的图像特征(image features)。然而,这种方法的attention作用的图像对应于下图的左图,没有考虑图片的内容。对于人类来说,注意力会更加集中于图片的目标或其他显著区域,所以作者引进Bottom-up attention机制,如下图的右图所示,attention用于object proposal。
在这里插入图片描述

Bottom-Up Attention

本文采用Faster R-CNN [33]来实现Bottom-Up attention机制,Faster R-CNN 是一种object detection模型,旨在识别属于某些类的对象实例并使用边界框对其进行定位。 Top-down的机制使用特定于任务的上下文来预测图像区域上的注意力分布。然后将参与的特征向量计算为所有区域的图像特征的加权平均值。

这篇工作中,采用基于ResNet-101 [14] 的Faster R-CNN 来提取图像特征,然后采用NMS对候选框进行筛选,此处Faster R-CNN 发挥着‘hard’ attention的作用,从大量的边界框中选择了少部分值得特别注意的候选框,大大减轻了后续模型处理的难度。相应的模型参数使用在ImageNet [38]上的分类模型参数进行初始化,然后再在Visual Genome数据库 [47]上进行微调。
在这里插入图片描述

Bottom-Up and Top-Down Attention

在这里插入图片描述
“自下而上”(bottom-up)和“自上而下”(top-down)的注意力调控途径示意图。蓝色、红色和绿色的箭头分别表示”自下而上”、”自上而下”的信号处理通路和眼睛运动相关的信号传递过程。注意力的认知神经机制是什么? - 东华君的回答 - 知乎 https://www.zhihu.com/question/33183603/answer/150792028

Faster RCNN

Faster RCNN于16年被提出,它是该系列的集大成者,将特征抽取(feature extraction),proposal提取,bounding box regression(rect refine),classification都整合在了一个网络中使得综合性能有较大提高,在检测速度方面尤为明显。

在这里插入图片描述

Faster RCNN基本结构如图所示。

  • Conv layers。Faster RCNN首先使用一组基础的conv+relu+pooling层提取image的feature maps。该feature maps被共享用于后续RPN层和全连接层。
  • Region Proposal Networks。RPN网络用于生成region proposals。该层通过softmax判断anchors属于positive或者negative,再利用bounding box regression修正anchors获得精确的proposals。
  • Roi Pooling。该层收集输入的feature maps和proposals,综合这些信息后提取proposal feature maps,送入后续全连接层判定目标类别。
  • Classification。利用proposal feature maps计算proposal的类别,同时再次bounding box regression获得检测框最终的精确位置。

3、本文方法

Overview of the proposed captioning model

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Overview of the proposed VQA Model

在这里插入图片描述
在这里插入图片描述

4、实验

Datasets & Metrics

Visual Genome[47] Dataset:该数据集包含108K图像,使用包含对象、属性和关系的场景图进行密集注释,以及170万个视觉问题答案。该数据集在文中主要用来预训练bottom-up attention model以及在训练VQA模型时进行数据增强。

Image Caption:
MS-COCO captions 数据集 [23] 的‘Karpathy’ splits [19]版本:此拆分包含 113,287 个训练图像,每个图像带有 5 个标题,并且分别包含 5K 个用于验证和测试的图像。
Image caption的自动衡量指标有𝑆𝑃𝐼𝐶𝐸 [1],𝐶𝐼𝐷𝐸𝑟 [46], 𝑀𝐸𝑇𝐸𝑂𝑅 [8], 𝑅𝑂𝑈𝐺𝐸-𝐿 [24] 𝑎𝑛𝑑 𝐵𝐿𝐸𝑈 [32]。

VQA:
VQA v2.0 Dataset[12]:用于评估VQA模型,包含与 MSCOCO images 相关的 110 万个问题和 1110 万个答案。
为了评估VQA答案质量,本文采用标准 VQA 指标 [2] 报告准确度,该指标考虑了注释者之间对ground truth答案的occasional disagreement。

ResNet Baseline

为了衡量Bottom-up attention机制的影响,还进行了一组baseline模型实验以便于对照,在每种情况下,基线 (ResNet) 都使用在 ImageNet [38] 上预训练的 ResNet [14] CNN 来编码每个图像,并使用bottom-up的注意力机制。
在这里插入图片描述

在表 1 中展现了本文完整模型、 ResNet baseline模型与(SCST) [37] 方法在Karpathy splits数据测试部分的性能比较,可见由下至上的注意力机制的作用明显,而本文提出的Up-Down模型更是取得了显著的优越性。

Image Captioning Results

如表 2 所示,自下而上注意力的贡献是广泛的,通过在识别对象、对象属性以及对象之间的关系方面提高性能能够说明。
在这里插入图片描述
表 3 报告了在官方 MS-COCO evaluation 服务器上使用 CIDEr 优化训练的 4 个集成模型的性能,以及之前发布的最高排名结果。可以看到本文的方法在所有报告的评估指标上的表现优于所有其他模型。
在这里插入图片描述

VQA Results

在这里插入图片描述
由表 4 可见,本文完整的 Up-Down VQA 模型相对于 VQA v2.0 验证集上的几个 ResNet baselines 的单个模型性能。尽管 ResNet (14*14)使用了大约两倍的卷积层,但自下而上的注意力的添加显着改善了所有问题类型的最佳 ResNet 基线。

在这里插入图片描述
表 5 展示了 30 个集成模型在官方 VQA 2.0 上的性能,可以看到本文方法优于其他模型。

Qualitative Analysis

在这里插入图片描述为了定性地比较注意力方法,本文可视化由字幕模型生成的不同单词的显著图像区域。在同一时间步骤 [29, 52] 中直接可视化与词yt相关的注意力权重是常见的做法。在图 5 中,我们说明了 ResNet baseline 和我们在同一图像上的完整 Up-Down 模型的注意力权重。

可以看到,图片中没有toilet,但是baseline模型产生错误caption,而top-down attention能够看到object周围的区域,它的边界框较baseline更为有效,能够同时考虑与一个object有关的所有信息。

在这里插入图片描述
可以看到up-down attention机制可以很好地关注到各个粒度的图片区域与细节

5、小结

本文提出了一种结合bottom-up attention和top-down attention的视觉注意力机制,它能够更有效地关注场景的结构,也具有更好地可解释性。并且本文用大量实验验证了该方法的优越性与可解释性。
文中的bottom-up attention机制就是提取出用户感兴趣的候选框,这样的目标检测算法还有很多,可以尝试进行替换。
文中的整体结构是经典的CNN-Attention+LSTM-Attention,具体实施有不同细节。

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

论文分享——Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering 的相关文章

随机推荐

  • 最简单的方式解决ubuntu 16.04 屏幕亮度问题

    本教程不需要修改grub xff08 因为我的ubuntu 没有 sys class backlight intel backlight brightness 这个目录 xff09 xff0c 我也装过brightness indicato
  • 按列合并两个.txt 文件

    一颗行走的大白菜 转载请标明出处 网上给出了好多答案 xff0c 动辄几十行的python 脚本让人好烦 xff0c 然后我们的linux仅仅需要一条命令就能解决 xff1a 先给出截图 xff1a 我要合并read txt read1 t
  • python: np.pad() 函数的用法

    在卷积神经网络中 xff0c 为了避免因为卷积运算导致输出图像缩小和图像边缘信息丢失 xff0c 常常采用图像边缘填充技术 xff0c 即在图像四周边缘填充0 xff0c 使得卷积运算后图像大小不会缩小 xff0c 同时也不会丢失边缘和角落
  • matlab 如何使用mex

    MATLAB与C语言混合编程接口 MATLAB是一种解释性语言 xff0c 不需要编译 xff0c 调试比较方便 xff0c 但是缺点是速度慢 这一点在执行复杂的科学算法的时候体现极为明显 而C语言虽然相对比 较复杂 xff0c 但是执行效
  • 关于在终端能到import模块 而在jupyter notebook无法导入的问题

    这个问题让我查了许多天才解决 xff0c 为了避免后面的人重复走弯路 xff0c 记录下来 问题描述 xff1a 我在ubuntu 下编译安装了caffe xff0c 在命令行模式下可以import caffe xff0c 但是在jupyt
  • PCA原理

    版权声明 xff1a 本文为博主原创文章 xff0c 未经博主允许不得转载 https blog csdn net zhongkelee article details 44064401 转载请声明出处 xff1a http blog cs
  • 当表格太大超过一栏时

    表格大小的调整 当表格太大超过一栏时 xff0c 可以调节 首先文章导言区加入 usepackage graphicx 然后在要缩小的位置加入语句 resizebox 0 5 textwidth 要缩小的表格 要注意的是要把待缩小的表格放到
  • 安装了keras,报错 importerror: no module named kears

    原因可能如下 xff1a 你使用的python 默认是2 7 或者是3 6 xff0c 而keras 安装到了python3 5或python 3 6 的路径下 xff0c 此时 xff0c 你需要重新安装keras并指定安装路径 可以测试
  • module.exports、exports和export、export default的区别,import和require的区别

    在vue及其他模块化开发中 xff0c 经常会用到这些输出和引用的语句 xff0c 那么 xff0c 怎么在合适的时候用合适的语句呢 xff0c 怎么区分它们呢 xff1f 一 理论区别 首先 xff0c module exports和ex
  • Linux docker 安装

    先执行wget qO https get docker com sh 命令安装docker 执行该命令可能会出现wget命令找不到的问题 xff0c 那我们就先要执行yum install wget 命令安装wget 安装完后就可以使用wg
  • ITK和VTK比较

    概念比较安装步骤遇到的问题 概念比较 基本概念ITK xff08 Insight Segmentation and Registration Toolkit xff09 VTK xff08 visualization toolkit xff
  • 关于12864液晶屏汉字显示问题

    在我们学习或者开发12864显示屏 xff08 带字库 xff09 的过程中 xff0c 可能大家会遇到我这样的情况 如下 xff1a 第三行的 数学 两字显示不出来 xff1f 而第四行却可以 xff0c 为什么 xff1f 答案显而易见
  • IOS10-IOS13屏蔽系统更新描述文件|去除‘设置’①小红点教程

    大家都知道在iPhone系统更新的时候都会提示咱们进行更新 xff0c 但是有些小伙伴不想更新 xff0c 但是不更新有一个小红点1这样人很烦躁 xff0c 对于强迫症的人实在是忍不了 xff0c 今天我就给大家分享一个方法 xff0c 只
  • iOS13屏蔽系统自动更新,去除①红标,这个文件复活了!

    iPhone手机系统每一次发布新版本 xff0c 大家经常会接收到系统自动推送的升级提示 xff0c 经常会在大家不知情的情况下系统就在后台自动把系统升级包给自动下载下来了 xff0c 经常会弹出一个提示窗提醒升级 xff0c 这对于一些不
  • AC代码

    此处省略一万分AC代码 加油咯 xff01 xff01 xff01 代码还是尽量自己写 xff0c 看别人的博客不是不可以 xff0c 看别人的代码也不是不可以 xff0c 如果你不看比人的博客 xff0c 不看别人的代码 xff0c 不看
  • Oracle group by 扩展函数详解(grouping sets、rollup、cube)

    文章目录 1 概述2 分组函数2 1 group by xff1a 一起分组 xff08 1 xff09 2 2 grouping sets xff1a 单独分组 xff08 N xff09 2 3 rollup xff1a 累计累加 xf
  • Oracle 索引详解(index)

    文章目录 1 概述2 索引管理2 1 创建索引2 2 删除索引2 3 修改索引2 4 查询索引 3 索引类型3 1 B Tree 平衡树索引3 2 bitmap 位图索引3 3 反向键索引3 4 基于函数索引 4 扩展4 1 走不走索引的情
  • Windbg调试(使用方法)

    一 Windbg版本信息 Windbg分32位和64位版本 xff0c 32位程序应使用32位Windbg调试 xff0c 64位程序应64位Windbg调试 若想使用64位的Windbg分析32位的程序 使用如下命令进行CPU模式的切换
  • Hi3861开发环境搭建 ||避坑指南|| [适用于几乎所有以Hi3861为主控的开发板]

    Hi3861开发环境搭建 避坑指南 适用于几乎所有以Hi3861为主控的开发板 前言 xff1a 这几天为了搭建Hi3861的开发环境 xff0c 看了不少官方文档和视频 xff0c 但是依然折腾了很久才配置好编译 上传都能正常的环境 xf
  • 论文分享——Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering

    文章目录 文章简介1 背景介绍研究背景概念介绍问题描述IC与VQA领域的主要挑战 2 相关研究CNN 43 RNN体系架构Attention mechanismBottom Up and Top Down AttentionBottom U