视觉问答项目

news/2024/11/9 10:06:30/

视觉问答项目

1. 项目地址

本笔记项目包括如下:

  • MCAN(Deep Modular Co-Attention Networks for Visual Question Answering)用于VQA的深层模块化的协同注意力网络

    • 项目地址:MCAN_paper
    • 代码地址:MCAN_code
  • murel(Multimodal Relational Reasoning for Visual Question Answering)视觉问答VQA中的多模态关系推理

    • 项目地址:murel_paper
    • 代码地址:murel_code
  • block(Multimodal Relational Reasoning for Visual Question Answering)用于VQA的双线性超对角融合模型

    • 项目地址:block_paper
    • 代码地址:block_code
  • ReGAT(Relation-Aware Graph Attention Network for Visual Question Answering)关系感知图注意力网络来提高VQA对图像中复杂语义的理解

    • 项目地址:ReGAT_paper
    • 代码地址:ReGAT_code
  • CMR(Cross-Modality Relevance for Reasoning on Language and Vision)语言和视觉推理的跨模态关联

    • 项目地址:CMR_paper
    • 代码地址:CMR_code

2. 项目具体

2.1 MCAN项目

作者认为协同注意力只能够学习到多模态之间粗糙的交互,而且也不能进行图像和问题关键词之间的关系推断,为了解决协同注意力不能够进行多模态之间的充分交互问题,目前提出了两个密集协同注意力模型(dense co-attention model)——BAN和DCN。有趣的是,这两个模型是可以串联在一起解决更深层次的视觉推理。但是这两个模型相较于浅层模型却仅有很小的性能提升,作者认为原因在于这两个模型没有同时在每一个模态中对密度自注意力建模

作者提出了深层协同注意力网络MCAN(由协同注意力模块MCA层串联构成)。每一个MCA层都能够对图像和问题的注意力进行建模。一个自注意力单元(self-attention (SA) unit)进行模态内部交互和一个导向注意力单元(guided-attention (GA) unit)进行模态之间交互。之后再用一个协同注意力模块层(Modular Co-Attention (MCA) layers)将两个单元串联起来,最后将多个模块层串联起来,组成MCAN网络(Modular Co-Attention Network (MCAN)

2.1.1 MCAN项目架构

在这里插入图片描述

2.1.2 MCAN项目数据集

MCAN数据集也是采用Bottom up处理好的图像特征不过这里不是tsv文件格式也不是pth文件格式也不是hdf5文件格式,而是转换成npz文件格式。如下:
在这里插入图片描述

2.1.3 MCAN项目模型

在这里插入图片描述

2.2 block项目

block项目是关于视觉问答的多模态融合策略开发的,作者认为多模态如果仅经过简单的内积会产生非常高维度的权重张量,为了解决这个问题,作者引入新的多模态融合策略,它基于块-超对角张量分解技术。它使用了块项秩(block-term ranks)的概念,能够对张量的“秩”和“模态秩”的概念进行泛化,已多用于多模态融合

2.2.1 block在VQA中应用的框架

在这里插入图片描述

2.2.2 block数据集

block项目作者为了比较其性能,分别在VRD和VQA任务上都做了实验,本文只针对VQA进行讲解。
在这里插入图片描述

  • 数据集下载:
    • coco:MSCOCO原始图像数据集

    • vqa2:VQA相关的原始json文件
      在这里插入图片描述
      经过数据预处理后的文件:
      在这里插入图片描述

    • coco_extract_rcnn:根据MSCOCO原始数据集以及其annotations的json文件并添加了注意力信息后,利用faster-r-cnn提取的图像特征提取的包含图像空间位置特征等信息的图像特征。
      在这里插入图片描述

2.2.3 block模型

模型中传入需要用到的特征

    def forward(self, batch):v = batch['visual']q = batch['question']l = batch['lengths']q = self.process_question(q, l)v = self.attention(q, v)logits = self.fusion([q, v])out = {'logits': logits}return out

2.3 murel项目

murel项目是在VQA任务中引入一个MUREL,一种能够在真实图像中学习端到端推理的多模态关系网络,作者认为虽然目前注意力机制在VQA中表现了很好的效果,但是这种简单的机制不足以处理复杂的推理特征。

VQA任务的关键是解决两种特征向量的高层次相关性的表示,在目前的多模态融合方法里面,比较有效的是二阶交互或张量分解,在VQA关系推理中,目前多用的是软注意力机制,根据问题,模型会对每个区域进行重要性评分,然后再用权重求和的池化方法进行可视化表示,多重注意力可以通过并行或者顺序计算。

本文贡献:本文作者移除了传统的注意力结构,采用了向量化表示,对每个区域的视觉内容和问题之间的语义进行建模,此外作者还在表示中加入了空间和语义上下文的概念,即通过视觉嵌入和空间坐标之间的交互来表示成对的图像区域。

2.3.1 murel在VQA中应用的框架

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

2.3.2 murel数据集

Murel用的数据集同block相同,murel数据集中图像的特征不仅只是像素还包括了位置信息。提取一个batch时采用如下:

2.3.3 murel模型

模型需要传入的特征如下(发现比block多了个 c = batch[‘norm_coord’])

 def forward(self, batch):v = batch['visual']q = batch['question']l = batch['lengths'].datac = batch['norm_coord'] #规范化目前坐标q = self.process_question(q, l)bsize = q.shape[0]n_regions = v.shape[1]q_expand = q[:,None,:].expand(bsize, n_regions, q.shape[1])q_expand = q_expand.contiguous().view(bsize*n_regions, -1)# cellmm = vfor i in range(self.n_step):cell = self.cell if self.shared else self.cells[i]mm = cell(q_expand, mm, c)if self.buffer is not None: # for visualizationself.buffer[i] = deepcopy(cell.pairwise.buffer)if self.agg['type'] == 'max':mm = torch.max(mm, 1)[0]elif self.agg['type'] == 'mean':mm = mm.mean(1)if 'fusion' in self.classif: #如果存在融合策略,则融合logits = self.classif_module([q, mm])elif 'mlp' in self.classif: #如果存在mlp,则采用感知器logits = self.classif_module(mm)out = {'logits': logits}return out

2.4 ReGat项目

作者认为只是考虑显示关系或者隐式关系是不够的,为了充分理解图像中的视觉场景,特别是不同对象之间的交互,我们提出一个关系感知图注意网络:它将每幅图片编码成一个图,并通过图注意机制建立多类型的对象间关系模型,以学习问题自适应关系表示,同时探讨了两种视觉对象关系:(1)表示对象之间几何位置和语义交互的显示关系。(2)捕捉图像区域之间隐藏动态的隐式关系。

2.4.1 ReGAt项目框架

在这里插入图片描述

在这里插入图片描述

2.4.2 ReGAt项目数据集

ReGAt项目也是用到了bottom-up attention features ,如下:
在这里插入图片描述
下载后会得到trainval_resnet101_faster_rcnn_genome_36.tsv行式的tsv文件,其中文件中包含如下内容:

FIELDNAMES = ['image_id', 'image_w','image_h','num_boxes', 'boxes', 'features']
其中item['boxes']为对应检测框的位置信息 x,y,w,h
item[''boxes'].shape=(num_boxes,4)
item['features']为对应检测框 在pool5_flat 层的特征
item['features'].shape=(num_boxes, feature_dim)
item['num_boxes'] 为该张图片对应的检测框数目

注意到源码中写到

 return {'image_id': image_id,'image_h': np.size(im, 0),'image_w': np.size(im, 1),'num_boxes' : len(keep_boxes),'boxes': base64.b64encode(cls_boxes[keep_boxes]),'features': base64.b64encode(pool5[keep_boxes])}   所以在读取 .tsv文件是,需要用到base64.decodestring()解码

不过本文在作者提供下载的链接中是下载了已经通过读取tsv文件转换成hdf5文件的格式。

图像:
在这里插入图片描述
问题:
在这里插入图片描述
答案:
在这里插入图片描述
glove数据集
在这里插入图片描述
处理好的图像id:
在这里插入图片描述

预训练模型
在这里插入图片描述

预训练模型需要的pickle缓存
在这里插入图片描述

2.4.3 ReGat模型

在这里插入图片描述
(模型图:后续补上)

3. 项目总结

这几个项目所用到的都是Bottom up提取好的图像特征,只是存储方式不同,具体如下

项目图像特征格式数据集
MCAN****.img.nbz36个固定区域特征
block****.img.pth36个固定区域特征
murel****.img.pth36个固定区域特征
ReGattrain.hdf5,test.hdf5,val.hdf536个固定区域特征和10-100自适应特征

http://www.ppmy.cn/news/917730.html

相关文章

QA智能问答

是基于检索的还是基于生成式回答的是开放领域的还是限定领域的 问答系统分为开放领域和限定领域的智能问答系统 面向学生的智能聊天机器人 包含以下两个部分 问答模块聊天对话模块解决学生提出的问题与学生闲聊基于规则实现基于深度学习实现数据库为15个关于新生的问题公开…

2021问答年终总结

2021年,CSDN问答团队为大家交付了2071个需求,以始为终,我们一直致力于帮助IT技术人解决问题。 截止今天,每天CSDN新增的问题中,50%的问题在10分钟内被回复,25%的问题在5分钟内被回复。 (图表注…

医疗问答机器人项目部署

医疗问答机器人项目部署 文章目录 医疗问答机器人项目部署1. 拉取TensorFlow镜像2. 配置系统环境2.1 更换软件源2.2 下载vim2.3 解决vim中文乱码问题2.4 安装Neo4J图数据库2.5 安装网络工具包 3. 运行项目3.1 拷贝项目到容器中3.2 安装项目所需的工具包3.3 导入数据3.4 打开实体…

问答系统技术--DeepQA

文章目录 1、概念与特点2、微信搜一搜中的DocQA路线2.1、语义检索2.2、答案抽取 3、QQ浏览器问答技术中的DeepQA路线3.1、系统性解决方法3.2、query理解3.3、意图识别3.4、MRC抽取3.5、答案融合与排序 4、美团智能问答技术中的DocQA路线4.1、MRC模型4.2、多文档MRC任务 5、总结…

知识图谱问答

公众号 系统之神与我同在 基于知识图谱的问答形式 基于知识图谱的问答 基于模板的方法 跨垂域粗粒度的语义解析方法 基于路径匹配的方法 基于模板的方法 基于模板的方法—模板挖掘方法 带约束的问答—世界之最 问题1. 属性归一化 解决方案:同义词、词向量、句对…

知识问答

本节对知识问答的概念做一个概述并介绍KBQA实现过程中存在的挑战,而后对知识问答主流方法做一个介绍。 知识问答简介 知识问答简单流程与分类KBQA的基本概念和挑战 问答系统的基本组件技术挑战知识问答主流方法介绍 基于模板的方法 模板定义模板生成模板匹配与实例化…

PR模板-33组故障干扰文字标题动画 Motion Glitch Typography

Motion Glitch Typography包含33组故障干扰文字标题动画pr模板。不需要任何插件或脚本,只需点击几下,您的视频就有很酷的故障标题动画,适用于预告片、宣传片或任何类型的视频。 适用软件:Premiere Pro 2020 或更高版本 分辨率&a…

论文综述:问答系统综述

PS:这是我的文献阅读大作业~ 文章目录 问答系统综述报告1. 摘要2. 引言3. 基于文本的问答3.1 数据集与评价指标3.1.1 数据集3.1.2 评价指标 3.2 基于文本的问答的主要框架3.4 从深度学习角度的代表工作3.5 基于文本的问答小结 4. 基于知识库的问答4.1 数据集4.2 基于知识库问答…