PCRNet: Point Cloud Registration Network using PointNet Encoding

在这里插入图片描述
PCRNet算是在ModelNet40这种object-centric数据集上用deep-learning做配准最好入手的一篇文章了,整体架构涉及简洁明了,一句话描述就是简单粗暴,话不多说,直接上网络架构图:
在这里插入图片描述

Work Flow:

  1. 首先对输入source ( N × 3 N \times 3 N×3)与template ( M × 3 M \times 3 M×3)进行PointNet操作,即MLP + max-pooling后,分别得到描述各自点云的维度为1024的global feature vector: Φ ( P S ) , Φ ( P T ) \Phi ({P_S}),\Phi ({P_T}) Φ(PS),Φ(PT).
  2. 此时可以粗略的认为 Φ ( P S ) , Φ ( P T ) \Phi ({P_S}),\Phi ({P_T}) Φ(PS),Φ(PT)分别encode了 P S {P_S} PS P T {P_T} PT 各自的位置信息,接着进行concatenate拼接操作将两个1024维向量拼成2048维。
  3. 接着直接将配准问题建模为一个简单的回归问题,将concatenate输出了2048维向量应用FC层投影成最终的7维向量输出:前三维代表translation vector,后四维代表rotation matrix转化成的四元素表示。

简单的模型可想而知带来的就是效果不可能会很好,因此一次不行就来多次,反正模型简单做一次inference时间会很快,因此最后使用时是以迭代形式 (Iterative PCRNet)呈现:
在这里插入图片描述

Loss:

这里使用的loss是点云配准中不经常出现的Earth Mover Distance (EMDLoss):
在这里插入图片描述
我觉得这种做一般了解就好,毕竟不是Registration中的主流loss.

Code:

代码使用的是发哥代码,整体代码是比较易于阅读的,这里直接贴出我复现的结果:

Methodisotropic Risotropic tanisotropic(mse, mae)anisotropic(mse, mae)training_modeepochstrainset/testsettesting with noise/partial
Iter-PCRNet6.770.0910.30(3.23)0.13(0.04)clean6009840/2468N/N
Iter-PCRNet7.010.099.94(3.41)0.13(0.04)clean6009840/1266N/N
Iter-PCRNet27.550.3928.17(15.47)0.30(0.19)clean6009840/2468N/Y

分别测试了default、unseen、以及partial三种setting下的表现。

Summary

感觉PCRNet里面真正值得研究的东西没多少,但是作为一种在ModelNet40上深度学习配准的入门文章与代码,还是挺不错的。

Pretrained Model can be found at here:link

Done

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值