Word2Pix: Word to Pixel Cross Attention Transformer in Visual Grounding,2021

news/2024/7/19 9:23:55 标签: Paper, 计算机视觉, 人工智能, transformer

**本文内容仅代表个人理解,如有错误,欢迎指正**​​​​​​​

1. Problem

本篇论文主要解决的问题:将query编码成一个holistic sentence embedding,忽略了每个词对于Visual grounding框选的重要性,从而降低了模型的performance。

之前的方法(一阶段或两阶段)大多都将Language query编码成一个holistic sentence embedding,这种情况下,所生成的embedding可能会对query中的word没有那么敏感/没有强调每个词的重要性。(而且,之前的一些pre-trained language model在训练时,如果是生成sentence-level的embedding,更多的会去关注名词、动词等的语义特征,冠词、介词等的语义特征可能会被忽略,而在Visual grounding task中,冠词、介词等也有可能是决定框选目标的critical word.) 如图一(a),在将句子"Cat sitting under the chair"中的"under"替换成"on"时,对embedding的影响并不是太大,所以在利用这个embedding进行框选时,可能会产生偏差。

图一

2. Points

1. 提取query中每个word的embedding而非将query编码成一个holistic sentence embedding。

2. 构建word to pixel attention,不断调整word与pixel之间的关系,使得每一个词都可以对模型框选产生影响。

3. Main Components

*本文的主要工作可以分为三个部分 1) Visual Encoding Branch 2) Word to Pixel Attention Branch 3) Targets Prediction

图二

1) Visual Encoding Branch

Visual encoding主要由两部分组成,

1) CNN backbone: 主要用来提取visual feature

2) A stack of transformer encoder layers: 对提取出来的visual feature进行编码

- 可以从图二中看到,给定一张图片,首先使用CNN backbone提取Visual features,然后在spatial方向上进行flatten,形成一系列的vector,作为Transformer encoder的输入。因为transformer中的self-attention是忽略了input sequence的顺序的,所以添加了Spatial positional encoding用来得到sequence之间的空间位置关系。然后输入到a stack of transformer encoder进行编码,得到visual representation,记作F_{v}。(具体的Transformer中Multi-head attention的操作,可以去看原论文)

2) Word to Pixel Attention Branch

1. 给定一个句子,通过Pre-trained BERT得到每个词的word embedding,再加上Positional encoding作为Transformer decoder的sequential输入,记作F_{l}。上述这种处理方式,一是可以保证每个词的重要性,即都可以对后续grounding产生影响;二是通过添加positional encoding可以保证词与词之间的序列关系。

2. 对F_{l}进行self-attention操作,得到具有上下文感知(context-aware)的特征,记作F‘_{l}。

3. 对F‘_{l}与F_{v}进行cross-attention操作,得到输出结果F^{M}_{l}[CLS]作为后续Prediction的输入。

3) Targets Prediction 

- 这个模型不仅做了bbox regression,还对referent object的类别(80个类)和属性(50个属性)进行了预测。但其实,我不是非常理解为什么要对类别和属性进行预测,一方面文中也提到“The ground truth attribute labels is very sparse where the value of most labels is zero for one object, thus the attribute loss is dominated by negative samples. We implement a mean averaged attribute loss to balance the positive and negative labels” 另一方面,从图三的消融实验可以看出,类别loss和属性loss没有让模型有太大的提升。

 图三

从loss来看,Total loss一共有四个部分。依次分别对应预测类别、属性、bbox regression、gIoU。

 4. Experimental Results

- 本文Word2Pix属于一阶段的visual grounding模型,相较于之前的一阶段模型有一定的提升,但本文所提出的模型使用的Backbone是ResNet-101,其网络深度更深(相较于之前一阶段模型所采用的Darknet-53),个人感觉这样比较不是非常公平。相比于两阶段中同采用ResNet-101的模型,更能体现出本文的创新点Word to Pixel的有效性。

 图四

- 图五的对比实验,还蛮有意思的,主要是证明word-embedding更适合Visual grounding task。

其中,Word embedding(Learnt)是指在训练时从数据集的字典里学来的embedding,这当然比不过Pre-trained BERT在大量文本上预训练习得的word embedding,所以第二行相比于第三行会有所降低,合理。

第一行,同样是在pre-trained BERT上得到的sentence-level的embedding,效果比同样在pre-trained BERT上得到的word-level的embedding差,可以理解,文章开头就说了word-level的embedding比sentence-level的embedding更适合visual grounding task,也合理,并且感觉这样对比就足够说明问题了。

但第一行,同样是在pre-trained BERT上得到的sentence-level的embedding,效果居然比Word embedding(Learnt)还要差,就感觉单纯是来拉仇恨的,疯狂鞭尸。

 图五

- 图六的对比实验主要体现了一阶段的模型,相比于两阶段的模型,更适合Visual grounding task。文中有提到,"the visual feature extractor or detector cannot be fine-tuned with visual grounding supervision signals. Instead, their weights are fixed during the training of grounding networks. However, visual features suitable for object classification and detection task may need to be refined for language guided visual grounding task." (大概意思就是说,两阶段的模型里的视觉特征提取器或检测器都不能(为啥不能?)visual grounding训练的时候微调,都fixed住了,然而适合于目标检测或分类的视觉特征如果要用于visual grounding task的话是需要被refined的。)

 图六

- 从图七中可以看出,Word2Pix相比于FAOA和ReSC而言,更能捕捉到query中细小word的变化,并且正确框选出目标。其实,这三个模型在对query的处理上,有递进的意味。在FAOA中,编码为一个holistic sentence embedding;在ReSC中,不断生成Sub-query;在Word2Pix中,直接利用word embedding。

 图七

- 图八是一个Cross-Attention的可视化图,可以看到注意力部分是随着层数的增加更加精准的。

图八

- 图九就正常的实验结果图,下面的图片注释太欢乐了,有点绕,自己看看吧。


图九

 

 


http://www.niftyadmin.cn/n/1700054.html

相关文章

大神手机一周年:崛起了吗?

一年之前,“大神”品牌在北京诞生,今天,它刚过完一周岁生日。对于这个新兴的手机品牌,有人认为它是性价比的开拓者,也有人认为它是硬件参数的堆砌者,而更多的人则表示从未听过这个品牌。在大神成长的一周年…

C++STL基础知识

STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C程序库。它被容纳于C标准程序库(C Standard Library)中,是ANSI/ISO C标准中最新的也是极具革命性的一部…

One-Stage Visual Grounding via Semantic-Aware Feature Filter

**本文内容仅代表个人理解,如有错误,欢迎指正** 隐约感觉到最近看的几篇论文都指出之前One-stage visual grounding methods大多利用pre-trained BERT将query编码为一个holistic vector,比较方便简单。但这样做的话,弱化了query中…

IT十年工作总结之4个单据及其附属对象

为什么80%的码农都做不了架构师?>>> Order //单据、数据项。 OrderItem //具体条目,存现单据内容中数目不定的具体条目信息。 OrderFile //此单据的附件。 OrderPost //审批记录或其他处理信息。-----------------------------------------…

python 共享内存 锁_37. Python 多进程锁 多进程共享内存

Lock组件当我们用多进程来读写文件的时候,如果一个进程是写文件,一个进程是读文件,如果两个文件同时进行,肯定是不行的,必须是文件写结束后,才可以进行读操作。或者是多个进程在共享一些资源的时候&#xf…

Suspected Object Matters: Rethinking Model’s Prediction for One-stage Visual Grounding 2022

图一**本文内容仅代表个人理解,如有错误,欢迎指正** 1. Problem 本文提出的立足点:主要物体间的相关关系对于框选目标物体而言是十分重要的,而当前一阶段的视觉定位方法对于物体之间的关系模拟比较薄弱,使得模型不能…

java for if嵌套_for循环嵌套if语句怎么循环-for 循环嵌套if语句-for循环语句嵌套使用的实例...

for循环嵌套里怎幺用if语句控制外循环?修改如下int Su(int x){int i,j;for(ix;i>2;i--){for(j2;j<i>i>{if(i%j0) {break;} //若能整除任何一个数&#xff0c;说明非素数&#xff0c;跳出内循环&#xff0c;检查下一个i}if(j>i/2) {return i;} //放到内循环之后…

C语言运算符优先级和口诀 (转)

一共有十五个优先级&#xff1a; 1 () [] . -> 2 ! ~ -&#xff08;负号&#xff09; -- &&#xff08;取变量地址&#xff09;* &#xff08;type&#xff09;(强制类型) sizeof 3 * / % 4 - 5 >> << 6 > > < &…