文章目录
摘要
本文主要解决从部分点云中恢复完整点云的任务。作者设计了一种新的点云补全模型PoinTr,将点云补全问题转化为集合到集合的平移问题,该模型采用了Transformer编码-解码器架构。通过将点云表示为一组带有位置嵌入的无序点组,将点云转换为一系列点代理,并使用Transformer生成点云。同时作者设计了一个几何感知块来显示地模拟局部几何关系。Transformer地迁移使PoinTr能够更好地学习结构知识,并为点云补全保留详细信息。代码在http://github.com/yuxumin/PoinTr。
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.方法
简单来说,在对点云进行补全时,作者首先对输入的部分点云进行下采样(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={
V1,V2,...,V