3D-STMN论文阅读

论文的开始之前,先介绍一下3D Vision Grouding:

分为3D-RES  &  3D REC即vision detection(eg.SPS)

3D-RES(3D Referring Expression Segmentation)引用表达式分割:

输入点云和描述,输出对应的target掩码。不同于3D检测任务输出预测框,RES需要更强大的理解能力,在稀疏点云找到target并得到target掩码

一、MOTIVATION

1、传统的two-stage【TGNN】,先分割出proposals,把instance proposals和Textural feature 放入GNN中得到二者关系后匹配得到target,存在问题:

(1)解耦/任务分离,[这个跟3D检测同理],一阶段的分割与文本无关,而一阶段的漏检或者误检会导致后面匹配阶段的错误。

(2)在文本的层次结构和上下文联系理解不佳,导致在定位和分割的错误。

(3)一阶段多层聚类来提高第二阶段召回率,速度下降

准确度和推理速度都受限于分割模型

下面以TGNN为例介绍tow-stage方法【详情请看底下的BASIC】

2、直接把3维点云和text对应[该种广泛应用于2D,当然提一嘴,2D也有一些single stage的方式],但是在3D中点云稀疏且复杂会导致较低的recall

--->对于这种方法,3D-SPS利用文本来逐步筛选关键点,并用最高置信度的关键点直接回归box。但是,作者认为这种方法因为关注的是关键点box的回归,二分割任务需要连续的表面分割,SPS的方法可能导致分割掩码连续,mask无法覆盖整个目标物体,不适用与分割任务。

二、INNOVATION

1.端到端、超点文本对的多模态对齐【在此之前超点更多的是纯粹用于视觉任务中,而在这篇paper中将超点和文本对齐,也挖掘了超点在多模态中的潜能,即在这里超点可以覆盖整个全局场景,而TGNN的一阶段生成instance proposal是找到场景中可能的物体,全局覆盖不如STMN】

2、DDI先验知识引导文本flow,增强分割

--->性能更好、速度更快

超点用聚类算法获得,从而得到细粒度的语义单元。

三、网络架构

1、点特征分支:

(1)followTGNN,将Pcloud输入Sparse 3D U-Net去抽出逐点点云特征P'

(2)同时对Pcloud进行over-segmentation得到超点Ns[如下每个超点为点Ki的集合]

          

(3)将P‘和Ns输入超点池化层[超点平均池化操作]得到S,即超点特征【这一部分可以参考超像素的池化操作】:

我们知道,一个超点是一堆点Ki的点集,在这里用平均池化操作把一个点集中每个点的特征变为一个点集的特征,即超点的特征;【类似于超像素池化通过average/max的池化操作把每个像素的特征聚合变为一个超像素的特征】

[Si表示第i个超点,Ki表示第i个超点中包含的点集]

(4)S通过线性映射得到S^,这一步是为了和词特征在同一维度。

      

(5)Sample【描述引导的超点采样,其实这里就跟上次说到的SPS操作类似,选出和描述相关的point,在这里选出来的是超点,所以这里顺带提一嘴,最后要算Lrel的损失】,由S^和词特征选TopKrel个得到描述相关超点S^rel

1.算超点特征和词特征的attentionA[这一步的公式可以联想到transformer的crossattention计算注意力] 

2.Sir表示第i个超点和词特征的置信度

 3.从S^中选取topKrel个,然后和全局特征拼接起来得到S^rel [因为引入全局特征所以S^rel的维度为Krel+1]  【这里引入全局超点特征是为了更好的获取整个场景的空间信息,类似于SPS,在处理“in the center of the room”】

2、词特征分支

(1)Description放入BERT中得到word-level embedding Ew和description-level embedding[即BERT的CLS]

Nw个单词的目标对象的文本表达{ci}Nwi=1,   Nw个label ,C为关于label的描述,一共Nw个;所以词特征Ew的维度 ∈ RNw ×Ct,文本描述级别的特征d0 ∈ RCt,即每个文本描述C的[CLS]token。

(2)第一次的时候词特征和随机初始化的ROOT构成依赖树

[ ||代表concate ]

但当L>0时为上面发光的蓝色箭头

(3)依赖树经过DDI

       或者  


3、汇合

ok上面的词特征和超点特征的采样处理的差不多之后就进入SWA和红框部分了

1)AWS

AWS处理,细化超点-文本的多轮模态交互,通过超点-文本多模态特征来进一步更新词特征,即聚合超点信息,让每个词特征吸收对应的超点的视觉信息

然后上面的SWA[通俗理解就是用transformer decoder算cross-attention]详细介绍如下:

【但是这里我按自己的理解跟论文有出入,后附上原论文有关这部分的描述】

算E^l+1如下面公式,红框部分很好理解,就是算词特征El+1跟描述相关的超点特征S^rel的attention,即注意力层的K*Q;

后面蓝框部分我就存疑了,attention乘的是S^rel???可是这里要进行更新的难道不是词特征吗,那不应该乘的El+1吗??

紫框部分不理解各位看官请稍安勿躁哈,待会解释,别别别别急!

关于这里的解释原论文是这样的,他把E^l+1作为cross-attention,但是这跟网络结构图不太符合呀

紫框部分Al】如下面公式,其实就是表示第i个单词和第j个超点是否对齐;若对齐(Ml >= τ) 则为0不改变上面AWS的cross-attention,若没有对齐(otherwise)则为 −∞ ,即抑制上面的cross-attention。  我想这也就是AWS为什么adaptive吧。

 2)Map

这里先大概介绍一下map这么得到的:用与描述相关的超点S^和词特征E做矩阵乘法然后softmax得到注意力图【其实可以联想到SPS的交叉注意力图】

然后就要有后续的map了:

(1)算文本相关超点和词特征的attention

(2)通过attention来计算置信度,如下面公式,所有文本相关超点对第i个词的置信度,即第i个单词的视觉相关分数。

(3)选择置信度最大的作为最后的mask的map【但是其实这里我有点不明白,为什么时选取某个置信度最高的token的map,这样万一置信度最高的那个单词不是target呢?eee但是也有可能是目标label会利用上下文语义更好地定位到了目标单词上,置信度最高的map通常集中于label上】


DDI模块

(1)构造依赖树

给定target的文本描述:由Nt个句子组成,共Nw个单词;每个句子为一棵树则有Nt棵,然后用ROOT把所有树合为一棵,即有Nw+1个节点,Nw条边。

(2)Graph Transformer Layer

1.

节点特征:词特征根据索引直接得到节点特征

边特征:边特征βij表示第i和j节点之间边的特征,边特征进行线性投影映射到D维

2.节点特征要加上position[拉普拉斯]

1)首先把预先计算好的拉普拉斯position encoding进行线性映射到所需维度

2)然后让节点特征加上position【上标0在这里是第0层的意思】

3)得到节点特征和边特征后就是transformer了,即更新操作【这部分读不懂的话建议去了解一下graphtransformer,移步原论文A Generalization of Transformer Networks to Graphs】

然后图注意力常规操作Norm和GeLU激活,但是不一样的是节点特征处理里除了图注意力意外还加入自注意力机制SA[论文里说是为了克服图注意力中缺乏长距离连接]

4)最后就得到DDI的输出最终的词特征【||表示concate】

四、LOSS

1、BCE二元交叉熵损失

2、前景和背景样本不匹配???

3、描述性相关的【类似SPS】:Lrel

4、最后分割proposal预测的损失,保证最后分割的质量,比较mask与GT的IOU(阈值0.5)

所以Global Loss【λbce =1,λdicee = 1,λrel = 5,λscore = 0.5】就是:

五、实验

1、和其他网络[当时对于3D-RES只有TGNN一种网络]比较,精度提高的同时推理速度也提升,其中可以看到无论用的BERT还是GRU特征性能都上升,证明模型鲁棒性

2、消融实验

1)超点探究:

当没有DDI即直接CLS分割,超点可以提点;当有DDI,不管是什么分割内核都提点,说明依赖驱动对于细粒度的可识别

2)分割内核策略【依赖驱动如何构建内核进行分割??】:

选择最有效的Tok1

 

3)DDI的结构:

GA:提点,说明图注意力,依赖驱动交互的重要性

加了SA(SA-GA/GA-SA):SA的有效性

GA||SA:并行,效果最佳

4)依赖图:

双向:边缘数量加倍信息混乱;向前:从根节点自上而下,上层节点更新慢;反向:自下而上汇总更新,叶节点流向更高级别信息流,作者认为这样更符合我们人类的句子理解过程;反向最佳。

5)超点采样:

512最佳,并且优于w/o,即使用全部超点。



BASIC

1、3D U-net

2、TGNN图神经网络:

网络结构如下图:

实例分割

(1)把Pcloud扔到3D-UNet中得到语义、point离实例中心的offset、feature embedding。 

(2)由上面(1)的输出得到预测的mask,即点云都被分配为某一个实例;

(3)根据预测对point进行聚类[获得实例级特征],即 将同一实例的点云聚合,得到分割结果。

匹配

(1)language embedding用language encoder[上图用到是GLoVE]得到

(2)把instance 的center[中心点对象]和feature以及(1)得到的词特征送到文本引导的图神经网络TGNN[聚合多模态特征]

(3)最后输出预测结果

3、超点:类似于超像素superpixel

介绍超点之前,先介绍 超像素:博客指路超像素

超像素:

1、概念:简单来说就是有类似特征的像素组成小区域,一张图上多个小区域,构成超像素;可以理解为分割的预处理,类似降维操作,即在保留了分割需要的信息(不破坏边界信息)的前提下,减小图像处理的复杂度。/ 用少量超像素代替大量图片的原像素。

2、方法:过度分割得到【over-segmentation】;图论:带权无向图  &  聚类

超点也是类似,将点云划分为几块简单但是有意义的形状,即一些几何分区。在这篇文章中,用到生成superpoint的方法是过分割。其实就可以把每个超点看作是一堆类似的点的集合

本文旨在探讨超点与文本的关系,即超点在跨模态中的优势。

4、BERT:自监督模型,非常贴切的说法就是完形填空

在这里其实BERT就是12层的transformer的encoder去提取文本特征

MLM:采用mask策略【但是也暴露了BERT的缺点,mask之间相互独立与现实情况不符】

NSP:判断两个句子的关系【CLS】

关于上图的input请看下图的例子就可以有较好的理解

5、图神经网络

每个点的更新特征就是由自己的特征和邻居的特征共同决定的

 6、图transformer【A Generalization of Transformer Networks to Graphs】

这部分可以去看原论文或者B站上的一个汇报视频,虽然只讲解左半边但讲的蛮详细可以举一反三一下右半边graph transformer

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值