【ICCV2021】PoinTr: Diverse Point Cloud Completion with Geometry-Aware Transformers论文速读

文章目录

    • 摘要
    • 1.介绍
    • 3.方法
        • 3.1. Set-to-Set Translation with Transformers
        • 3.2. 点代理生成
        • 3.3. 几何敏感的Transformer Block
        • Query生成器
        • 多尺度点云生成
        • Loss计算
    • 4.结果
    • 5.总结


摘要

本文主要解决从部分点云中恢复完整点云的任务。作者设计了一种新的点云补全模型PoinTr,将点云补全问题转化为集合到集合的平移问题,该模型采用了Transformer编码-解码器架构。通过将点云表示为一组带有位置嵌入的无序点组,将点云转换为一系列点代理,并使用Transformer生成点云。同时作者设计了一个几何感知块来显示地模拟局部几何关系。Transformer地迁移使PoinTr能够更好地学习结构知识,并为点云补全保留详细信息。代码在http://github.com/yuxumin/PoinTr。
【ICCV2021】PoinTr: Diverse Point Cloud Completion with Geometry-Aware Transformers论文速读_第1张图片

1.介绍

点云重建需要学习点云结构特征和长距离相关性。本文利用Transfomer来学习成对交互和全局相关的结构信息。PoinTr模型具有5个关键组成部分:
1)Encoder-Decoder架构:采用编解码架构将点云补全转换为集合到集合的转换问题。Transformer的self-attention机制模拟编码器中元素之间的所有成对交互进行建模,解码器基于输入点云和查询之间的可学习的成对交互对缺失元素进行推理;
2)点代理:将局部区域的点云集合表示为一个叫做点代理的特征向量。输入点云被转换为点代理序列,这些点代理作为Transformer的输入;
3)集合感知Transformer Block:便于Transformer更好地利用点云3D几何结构的感应偏差;
4)Query Generator:解码器中使用动态query替代固定query,query由query生成模块产生,该模块总结编码器产生的特征,并表示缺失点的初始草图;
5)多尺度点云生成:设计多尺度的点云生成模块,对缺失的点云进行粗到细的恢复。

3.方法

【ICCV2021】PoinTr: Diverse Point Cloud Completion with Geometry-Aware Transformers论文速读_第2张图片
简单来说,在对点云进行补全时,作者首先对输入的部分点云进行下采样(FPS),得到中心点;然后使用一个轻量级的DGCNN来提取中心点周围的局部特征。在局部特征中加入位置嵌入后,我们通过Encoder对点云特征进行编码,通过Query Generator生成异地阶段的点云中心和对应的动态Queries;最后这些Queries通过Decoder被翻译成预测的点代理,点代理经过一个FoldingNet得到相对于特定中心点的偏移量,通过将对应中心进行移动,可以得到某个点代理对应的局部点云。

3.1. Set-to-Set Translation with Transformers

作者方法的主要目标就是利用Transformer的序列到序列生成能力来完成点云补全任务。给定表示部分点云的点代理 F = { F 1 , F 2 , . . . , F n } F=\{F_1, F_2,...,F_n\} F={F1,F2,...,Fn},本文将点云补全过程建模为集合到集合的平移问题:
在这里插入图片描述
其中 M E M_E ME M D M_D MD分别是编码器和解码器, V = { V 1 , V 2 , . . . , V N } V=\{V_1,V_2,...,V_N\} V={V1V2...VN}是编码器的输出特征, Q = { Q 1 , Q 2 , . . . , Q M } Q=\{Q_1,Q_2,...,Q_M\} Q={Q1Q2...QM}是给解码器的动态查询, H = { H 1 , H 2 , . . . , H M } H=\{H_1,H_2,...,H_M\} H={H1H2...HM}是缺失点云的预测点代理, M M M是预测点代理的个数。

3.2. 点代理生成

想要将点云作为Transformer的输入,首先需要将点云处理成一个序列。最简单的想法是将每个点作为序列的一个元素输入,但由于Transformer的计算复杂度与序列长度成平方比,这样会导致不可接受的成本,因此建议将原始点云表示为一组点代理。
首先对点云进行最远点采样(FPS),得到固定的N个中心点 { q 1 , . . . , q N } \{q_1, ..., q_N\} {q1,...,qN},然后,我们使用一个轻量的DGCNN对局部区域进行特征提取,这样我们可以得到N个局部区域的特征 { F 1 ′ , . . . , F N ′ } \{F_1^{'}, ..., F_N^{'}\} {F1,...,FN},其中 F i ′ } F_i^{'}\} Fi}对应了中心点 q i q_i qi的局部特征。最后使用一个MLP网络 φ \varphi φ提取每个局部特征的位置嵌入,相加后得到点代理,即 F i ′ = F i ′ + φ ( q i ) F_i^{'} = F_i^{'} +\varphi({q_i}) Fi=Fi+φ(qi)作为Encoder的输入。

3.3. 几何敏感的Transformer Block

作者设计了一个几何感知模块来模拟几何关系,它可以是一个即插即用模块,可以与任何Transformer架构中的注意块结合在一起。在原本的transformer模块中,网络只使用子注意力机制来挖掘不同部分之间的关系,这其实是一种基于特征相似度的长距离语义关系,为了利用点云数据的归纳偏置,作者将局部几何关系补充到自注意力模块。
【ICCV2021】PoinTr: Diverse Point Cloud Completion with Geometry-Aware Transformers论文速读_第3张图片
作者根据点代理 F i F_i Fi对应的3D点坐标 q i q_i qi,使用KNN模型捕捉点云中的几何关系,再通过线性层和最大池化层学习几何信息,将结果与子注意力机制的结果拼接,这样可以同时挖掘长距离语义相关性,也同时保留了有效的局部几何关系,有效的提高了模型的性能。

Query生成器

Queries是待预测点代理的初始状态,用于指导缺失点云的重建。首先对Encoder的输出特征通过线性层投影到更高维度,再接最大池化操作。类似于,将缺失点云中心点坐标通过线性层得到 { c 1 , c 2 , . . . , c M } \{c_1,c_2,...,c_M\} {c1c2...cM},然后将编码器的全局特征和坐标连接起来,并用MLP生成query。
F i Q = M L P ( c o n c a t ( f g , c i ) ) F_i^Q = MLP(concat(f_g,c_i)) FiQ=MLP(concat(fg,ci))

多尺度点云生成

F i Q F^Q_i FiQ通过解码器被翻译为一个点代理 F i D F^D_i FiD,该点代理对应了以 c i c_i ci为中心的局部点云。作者利用FoldingNet对点代理进行偏移坐标重建,即:
P i = c i + F o l d i n g N e t ( F i Q ) P_i=c_i+FoldingNet(F^Q_i) Pi=ci+FoldingNet(FiQ)
最后将输入点云与预测结果进行拼接,即可以得到最终的预测结果。

Loss计算

点云完成的损失函数应提供输出质量的定量测量。由于点云是无序的,许多直接测量两点之间距离(即“L2距离”)的损失函数不适用。Fan等人[9]引入了对点排列不变性的两个度量,即倒角距离(CD)和土方移动距离(EMD)。我们采用倒角距离作为其O(N logN)复杂度的损失函数。我们使用C表示nC局部中心,P表示完成点云的nP点。给出真实点云G,这两个预测的损失函数可以写成:

注意,我们还连接预测的局部中心和输入点云的中心,以形成整个对象C的局部中心。我们直接使用高分辨率点云G来监督稀疏点云C,以鼓励它们具有类似的分布。我们的最终目标函数是这两个目标J=J0+J1之和。

4.结果

【ICCV2021】PoinTr: Diverse Point Cloud Completion with Geometry-Aware Transformers论文速读_第4张图片
【ICCV2021】PoinTr: Diverse Point Cloud Completion with Geometry-Aware Transformers论文速读_第5张图片

5.总结

在本文中,作者提出了一种新的体系结构PoinTr,将点云补全任务转换为集合转移任务,成功地将Transformer模型应用于这项任务,并取得了最先进的性能。此外,作者为更多样化的点云补全提出了两个更具挑战性的基准。将作者的Transformer架构扩展到其他3D任务可能是一个有趣的未来方向。

你可能感兴趣的:(论文阅读,自然语言处理,深度学习,pytorch)