留个笔记自用
PMP-Net: Point Cloud Completion by Learning Multi-step Point Moving Paths
做什么
Point Cloud Completion点云补全,简单来说,由于扫描限制,扫描得到的结果可能是一个不完整的稀疏点云,任务目标就是保证形状和全局的前提下进行上采样一样的工作,将稀疏点云构造成具有局部信息的稠密点云
做了什么
这里点云补全的方法是来模拟移动行为,将不完整点云中的逐个点进行移动,也就是根据总的点移动距离的约束,为每个点预测唯一的点移动路径,来组成最后的补全点云 并且这里是一个迭代式的步骤
怎么做
整体框架是迭代式结构,P是输入点云,pi∈P,目标点云也就是补全点云P’,pj’∈P’,任务目标是预测每个点的位移能让它从输入点云P到补全点云P’,也就是预测△P={△pi}。迭代分为三步,不同步的预测标记为△pik,上面的图就表示了整体的输入和输出过程,第一步输入原点云,输出第一次位移量,第二次输入第一次位移量和原点云,作为第二次点云,输出第二次位移量,第三步同理。 然后是这里每步的预测模块,PMD 首先,先将输入的点云经过一个feature encoder,这里采用的是PointNet++的提取全局特征,然后通过特征传播模块将全局特征传播到每个点,这里的h就是逐点特征,最后这一步期望输出的逐点位移△由最后一个逐点特征h通过MLP得到,而FP-module是Pointnet++中的结构,可以理解成根据逐点特征求得全局特征 然后是图上的RPA模块,也就是全局特征传播至逐点特征的模块 这个模块可以理解成用于记忆先前路径的信息和推断每个点的下一个位置 这里的输入有一个hk-1也就是上一个step的逐点特征,这里为了将这个先验信息进行选择性记忆和遗忘,模仿了GRU的设计方法进行设计 一个r一个z,设计方法跟GRU中的reset重置门和update更新门一样 然后再通过一个门控计算,计算的是前面step特征到现在这步的信息保留特征 最后就将保留特征和当前全局特征进行计算得到,简单来说,这里由于是迭代式的结构,所以需要用RNN来选择性保留遗忘时序信息,所以设计了一个注重当前输入的结构 至此,就完成了整体框架 接下来是根据输出△来进行LOSS设计和最小化路径,也就是任务目标,首先,定义两个约束 这里的X^是原点云,也就是不完整点云,X是目标点云,也就是完整点云,这个LOSS是EMD LOSS,重建里面常用的了,φ是一个映射函数,最小化点之间的平均距离 简单来说,这个LOSS就是计算的是每个点到另外一个点云的平均距离,希望这个和是最小的 这里可以理解成一个正则化,不仅希望点云和GT间距离最小,也希望变化量的和最小,这俩都可以理解成是约束,防止网络做出冗余决策或者强制决策 标准的chamfer loss 最后
效果
在Completion3D数据集上,通过L2 chamfer距离进行的检测
总结
1.逐步迭代的想法,很多领域都很范用,一步步迭代式的增强效果 2.补全邻域的新的一种做法,相比于点直接生成,采用逐点位移的方式,可以用几何约束进行约束,这块或许可以做成无监督的?
|