3D-SPS论文阅读

VG:输入点云(包含3D坐标、RGB、法向量等信息)通过W个label得到的文本描述D,基于与物体相关的语言描述来完成目标的定位。

习惯上先看abstract和conclusion还有图表,看下来主要针对于两个模块:

首先先提取它的点云特征(用backbone得到点云种子)-->DKS粗略找到描述的物体的点 --> 

TPM精细选择目标keypoint -->  选取置信度最高的keypoint来回归检测框。

在进入该篇论文解读之前,作者先引出现阶段研究很多基于two stage[更多集中工作于二阶段]:

1.detection:传统的3D目标检测器去生成一堆的proposal。

2.matching:将描述的物体与proposal相匹配。 

一、motivation

1.twosatge在选择proposal上不好,如图所示,(a)sparse容易漏检,(b)dense会造成proposal太多太复杂而难以区分优化。(其实这个说法在二维的目标检测中也很常见)

2.two stage的一阶段常使用的FPS的采样是和语言无关的,而是覆盖整个场景中较多的物体,从而目标采样点所占比例也相对较小了,不利于预测。但VG本身只是关注于想要的目标,两个任务是分离的所以不明智。

总的来说就是以往用的two stage是先检测后匹配,而在匹配阶段中没有利用语言上下文来专注特定关键点--> 单阶段并且用文本来指导筛选关键点

二、innovation:

single stage 3D VG:弥补检测和匹配的gap,简单来说就是把问题变成找到关键点,根据置信度直接回归得到预测框的单阶段问题,任务中心在于关键点的选择。

1.DKS:基于文本对关键点进行粗略采样

2.TPM精细挖掘跨模态信息,找到检测目标

【跟人识别物体一样,根据文本粗略的选择一些候选集,然后再精细判断所需目标对象】

三、architecture

(1)backbone抽出点云特征得到Pseed; 上面用language encoder得到文本描述的的特征L0

(2)Pseed和L0输入DKS中得到跟描述有关的所有关键点P0

(3)文本特征L0和关键点P0输入TPM(多层跨模态的transformer)中??

(4)得到Pt和Lt后放入MLP中算置信度S

(5)最后根据置信度再对应关键点进行回归得到目标物体的预测框。


接下来详细介绍一下DKS、TPM

1.DKS(Description-aware Keypoint Sampling):

innovation:就是前面提到的二阶段中的检测是检测全局物体,因此两阶段任务其实是分离的。作者提出直接利用词特征粗略筛选文本相关的关键点。

(1)将seed输入MLP得到S0来筛选topK0个有物体的关键点Pobj,可以看到图去掉了灰色的no-object的点。

(2)[蓝色部分]word feature经过Maxpooling后进入MLP得到置信度Sd,筛选TopK个得到下标,通过下标在Pobj去选取,可以看到删去了橘色的表示与词无关的点,只得到和词特征相关的关键点。

经过以上两步后得到的P0的信息就不仅仅是目标对象,还包含与目标对象有关的信息(可以用来指导选出最终的target)。

2.TPM(Target-oriented Progressive Mining)

逐层丢掉和目标无关的关键点

1.

(1)keypoint自注意力[深蓝色框],可以改善point的feature并且利用其空间特征

(2)keypoint的cross-attention[紫红色框],这一步还蛮巧妙的,将之前与文本无关的点也放进来作为K/V(就是在DKS之前的Pseed),这样就有了全局特征【如果只有与文本有关的关键点,那么"in the center/corner of room"这种方位信息很难定位,因为没有全局特征】

2.language的self-attention[浅蓝色框],结合上下文信息。

3.language和keypoint跨模态的cross-attention:language分支帮助keypoint找到target;keyponit分支帮助language更好的去理解融合场景信息。

4.交叉注意力图:表示关键点对目标a的重要性,做平均池化?后选择topk个关键点

四、LOSS

1.LVG:最主要的损失,训练阶段用target来监督Pt中的Sr,推理阶段用Pt中SR最高的来回归检测框,置为1

2.LDKS:

3.Det:算是辅助损失,由cls、obj、center、box的损失构成(就是目标检测用到的常规损失),当然这里训练时时TMP的multi,推理时是Sr中的top。

4.Llang:也是辅助损失,每一层TMP得到的language feature中多类别和target做loss。

Global Loss

L = α1LVG + α2LDKS +α3LDet + α4Llang

五、实验

1、experience

(1)Scanrefer

可以看到不管是在3D还是2D+3Dacc都提点,但是其中TGNN和instanceRefer用的是分割,所以在acc@0.5中instanceRefer更高。

(2)Nur3D& Sur3D

+2.3     +4.7

查一下这个languageRefer

(3)analysis

 另外作者也给了以twostage为baseline的对比,感觉可以用来解释为什么3D-SPS效果更好:如图(a),twosatge随keypoint的增加acc先增加后下降,而3D-SPS随keypoint增加而增加;由(b)也知,是因为3D-SPS的target在采样点中的比例随keypoint增加而增加,有利于更好的检测target,accjiu增加了。

2、Ablation

(1)探究DKS采样策略

(2)探究TMP的layer

文章中解释K>4可能会丢掉一些target的keypoint,导致漏掉了最好的box??

(3)探究TMP渐进关键点的选择

【分析】w/o就是只有跨模态的self/cross attention,没有keypoint的进一步选择(即下面的红框部分),所以keypoint的数量是没有减少的;由table5可以看出,在没有TPM渐进选择下随keypoint增多acc先升高后下降[这个是因为target的点比例降低];有TMP渐进选择可以让acc升高。

 

3、可视化效果

(1)3D-SPS先关注文本相关点,后选择target点;而Two-stage采样点覆盖整个场景,检测和匹配分离,导致最后框错目标。

(2)第二个可视化算是对上一个可视化的进一步解释,即3D-SPS在筛选描述相关的keypoint的表现,可以看上面,左边有提到windows于是Po关注在tavble和windows,右边没有提window,就没有关注windows了;下面的shelf也是同理。



BASIC

一、数据集

1、Nr3D&Ns3D【基于Scannet,一个真实世界的3D场景数据集,有语义标注】:将语言和几何信息(以3D点云的形式)结合起来,即描述以object的语言文本,在3D场景中识别target

参考Sr3D & Nr3D

二、FPS最远点采样:

有一篇解释的很好的博客链接,指路:通俗易懂地解释FPS

让采样点尽可能地覆盖整个场景

通俗来讲就是先随机选一个点P0 --> 算P0和其他点的欧氏距离,选择距离最远的点为P1  --> 分别算剩下的点和P0、P1的距离,选小的值来代表该点到P1、P2的距离 --> 然后选择距离最大的... 重复后两步以此类推,得到的就是较离散、覆盖较全面的点集。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值