首页 > 其他分享 >ReferIt3D 论文精读

ReferIt3D 论文精读

时间:2023-03-14 21:25:03浏览次数:38  
标签:精读 物体 论文 场景 DGCNN 这个 文本 ReferIt3D 描述

Scanrefer才是本系列的开山之作,但是提出比较优秀的数据集且后期有一系列完善模型工作的,还是ReferIt3D比较优秀一些,那么ReferIr3D究竟做了些什么呢?跟着小编一起来看一看吧!

 ReferIt3D: Neural Listeners for Fine-Grained 3D Object Identification in Real-World Scenes

Introduction

这篇文章算是对3d VisualGrounding这个领域挖的第二铲子坑,虽然不如第一铲子那么大,但是这第二铲子提供的数据集和模型都还算不错。

这篇文章的贡献主要有三点:

1、介绍了细粒度的分类任务,也就是3d Visual Grounding的任务,毕竟也算挖小坑的工作,因此确实也可以作为一个contribution存在;

2、构建了两个数据集,即Nr3D和Sr3D,其中前者是nature语言构建的,后者是Simple的有结构的语言构建的,相对来说,前者更加贴合现实生活,而我们主要比对的ACC也是前者数据集提供的,后者主要用来帮助模型训练;

3、提出了一个解决3d visual grounding任务的基础架构,使用了动态图卷积神经网络,并借助另外两个模型(RNN和PointNet++)来完成对两种模态的特征提取。

 

DataSet

首先,两个数据集都是基于的ScanNet数据集来构建的,其本质就是一个excel表格,如下:

 

 

 其实本质上,所谓的这两个数据集,没有采集视觉信息的过程,所有的视觉信息都是ScanNet采集的。它们的本质是对ScanNet的场景进行描述(utterance),然后对描述的目标物体在其所处的ScanNet场景中进行标注,并对这个物体的类别进行标注。与此同时,还记录了一些杂七杂八的内容,比如listener和speaker的id,这些在数据使用的时候都用不到了。

其中,被描述的物体需要符合以下标准:

A、这个物体至少出现在5个以上的场景中;

B、每个场景中包含的干扰物(即与目标物体同类的物体)不超过6个;这是为了保证这个任务不会特别难,以至于人类都找不到目标物体;

除此之外,作者还排除了一些比较大的物体或者作为场景元素的物体,如门、衣柜、地板、天花板等等。

Spatial Reference in 3D (Sr3D)

他这个命名就很迷惑,我都不知道S到底是哪个单词,看下来,又是Spatial,又是synthetic,又是simple。但是总之,这是一个基于空间关系的数据集,一共有83572个描述。这些描述全部都是基于模板的,这个模板长这个样子:

 

 

 即,我要描述我的target,那么我就要找到一个anchor,这个anchor不可以是我的target,而且不可以和我的target同类;此外,这个anchor必须是我规定的我要refer的76类物体,或者另外24类我指定的比较大的物体,比如电视机、火炉等等。

举个例子:

 

 

 与此同时,作者定义了五种空间关系,如下:

 

 

 

 

 

 讲道理,这里这儿Context是什么意思,我没搞明白,它和utterance的数量是正好成两倍的关系,这个所谓的通信上下文到底是什么东西?希望有看懂的大神给我讲解一下。

在这里我猜测是,上下文场景?也就是说,大概一个场景中生成了2个句子的意思??

 

 

而后,他们对Sr3D做了进一步的扩充,即选择了不符合上述标准的其他类做了新的标注,但是这些新标注的对象,在场景中都有多于一个的干扰物(与目标类别相同的物体)。

 

Natural Reference in 3D Scenes (Nr3D)

与Sr3D不同的是,Nr3D是没有模板的文本,也就是纯自然语言的文本,而且也不仅仅是根据空间物体关系来refer目标的文本,一共有41503个描述。

这个数据集则是通过一种叫做“reference game”的游戏来构建的,即一个玩家speaker对框起来的物体做描述,然后另一个玩家listener去重新勾画这个box。

其中,这个由于是人类自然的语言,因此可以认为这个数据集相对于Sr3D来说,更加接近于人类语言的分布,而人类refer一个物体的时候常常使用的词汇分布如下:

 

 

 其中,Nr3D有以下几个特点:

1、相对于Nr3D来说,定义了hard和easy的区分;其中,easy表示场景中存在的干扰物不多于2个;

2、所有文本描述的平均长度为11.4,中位数为10,而speaker喜欢使用更长的句子来描述更加复杂的上下文,平均文本长度为12.5个单词;

3、相对来说使用的更多的是空间位置关系,而不是形状和颜色,这也进一步说明了Sr3D在本文中是一个及其相关的数据集,非常有意义;

4、最后的话,就是所谓的场景可发现性以及视角依赖性,直接上图:

 

所谓的场景可发现性,其实就是描述你在文本中有没有明确指出你要的东西是个什么,比如本文的lamp,当然如果你用lamp的同义词也是没有问题的。不然的话,就是用 the one代替,或者直接就像右图第一句话一样没有主语,这都是没有点明我们到底要什么。

而视角依赖性,指的就是你的refer对某个视角的依赖与否,比如closer to the armchair,这个只是单纯地依赖距离关系,也就是说,不管你怎么变换视角,这个距离是不会变换的,因此这个就叫做视角独立,与之相对的,当描述左右的时候,你要规定一个视角,比如looking at bed。

 

Method

让我们直接上图:

 

 上半部分是整个网络的结构框架,下半部分是网络中三个模块的细节。

当然了,也十分的常规,首先仍然是两个特征提取器,其中处理点云的是PointNet++,而处理文本的则是一个RNN网络,当然了,这里的输入仍然不是整个场景,仍然是物体点云本身,我们最终选择的是文本所描述的物体,最后将这个物体在场景中框出来就可以了。而这个物体框起来的大小,如果框对了,那必然是100%与ground truth完全重合,因为我们一开始就默认语义分割任务已经结束了。换句话说,这个任务已经被转换为一个分类任务了,即我使用一个查询文本,去查找M个物体到底哪个与我更加匹配,最后输出匹配度最高的那个物体ID,随后我们将这个物体的点全部显示出来即可。

与Scanrefer一样,ReferIt3D也做了两个有监督的分类器去强化RNN和PointNet++ 的特征提取效果,在图中表现为两个额外的MLP,最终的Loss其实和Scanrefer一样是三个loss的加权和。

提取完视觉和文本特征之后,就是融合模块了,这个融合模块就做的比较有趣了。

在本章节之前,我们介绍了图神经网络、图卷积神经网络,但这里用的其实是动态图卷积神经网络,DGCNN,我们大概理解了,图神经网络往往会输出一个不改变图结构的东西,就类似Transformer的特点一样,而DGCNN是个什么特点呢?我们用原论文的图描述一下:

 

 

 这是DGCNN for PC的introduction之前的一张图,可以看到,DGCNN是一个动态更新边的图,我们关注效果即可,即上半张图,亮色的地方代表和红点距离最近的点,可以看到初始化的时候就是单纯地根据欧氏距离来初始化,但是随着我们EdgeConv的使用,这个点与其他的点的距离的计算不再是根据单纯地欧氏距离,而是将特征计算了进去,比如我们从第三层出来之后,可以看到机身的红点与机身其他点的距离更近,机翼和喷射器同理,这正好是部件分割的结果,这便是DGCNN的特点。

作者呢,将每一个物体的特征当做一个点,然后将这些点的特征与语言特征分别进行concat,随后输入到DGCNN中,待到DGCNN将整这些点全部输出之后,我们再次拼接一下文本特征,对结果直接进行实例分类即可。

 

Experiment

 

 

 

 实验部分也给出来了三个数据集上的结果,其中Sr3D+对部分数据的结果表现有所提升,而对另外一部分有所消耗。

中间的消融实验,比较重要的是A和B,这是在融合模块做的一个实验,到底是先融合,还是后融合?最后的结果表明,都要最好。

其他的,第一个是单独训练两个分类器,先让文本分类器分类,然后就确定了分类结果,再让点云分类器分类,在这个文本分类器结果的类别中选取随机的选取一个结果,作为baseline。

V+L就是让视觉特征和文本特征直接concat,直接用一个分类器分类;

V+L+C就是带上上下文特征,其实就是用PointNet++提取整个场景的特征,在V+L方法分类之前,把这些特征concat到数据后面,再分类。

 

结论

这篇文章做的总结,贡献是两个,一个是提供了一个基本的VG架构,另一个是提供了两个可以使用的数据集、但是文章也说了,本文只是迈出去了第一步,这个领域仍然缺乏数据集,未来想让机器能够达到人类的识别能力还有很长的一段路要走。

 

标签:精读,物体,论文,场景,DGCNN,这个,文本,ReferIt3D,描述
From: https://www.cnblogs.com/loveandninenine/p/17215385.html

相关文章