目录
一、导言
二、先导知识
1、Frobenius范数
三、相关工作
1、点云配准工作
2、PointNet
3、基于深度学习的点云配准
四、PCRNet
1、PCRNet
2、Iterative PCRNet
3、损失函数
五、实验
一、导言
本论文收录于CVPR2019,本论文提出了一种依赖PointNet网络的点云配准网络。又提出了一种迭代版本的PCRNet,利用对象特性产生更精确的结果,而非迭代版本计算更快。
(1)提出迭代版本的PCRNet网络,来提高精确性
(2)运用EMD作为损失函数,来最小化源点云和模板点云之间的距离
二、先导知识
1、Frobenius范数
Frobenius范数定义为矩阵中所有元素的平方和的平方根。
三、相关工作
1、点云配准工作
ICP问题在于显式计算只能做少部分的点,大量的点云会造成数量巨大,另外ICP不可微不容易对齐点对关系。
关键点方法和局部描述子方法,通常适用于具有独特特征的可识别的点云。
全局最优方法,如Go-ICP,延长了计算时间。
2、PointNet
PointNet被证明对于直接使用点云来进行分类、语义分割、目标检测的任务有用。但没有人使用PointNet做点云配准工作,所以本文采用该网络将其过渡到点云配准工作中。
该论文采用EMD损失来改进PointNet中使用的CE或是BCE等分割检测的损失函数。
3、基于深度学习的点云配准
判别优化和逆组合判别优化均使用特征向量和学习到的特征,但缺点是存在点的二次复杂度,导致缺乏泛化性。
四、PCRNet
1、PCRNet
PCRNet采用Siamese网络结构,包含两个共享权重的多层感知机子网络,这两个网络的权重可以共享,用于提取源点云和模板点云的全局特征。每个MLP包含5个隐藏层,大小为64、64、64、128和1024,最后通过最大池化层得到全局特征向量。之后将源点云和目标点云的特征向量拼接起来通过5个全连接层,输出刚体变换参数。
Siamese网络结构是有两个输入,且MLP的权重可以互相共享的网络。
2、Iterative PCRNet
迭代PCRNet网络保留每个PCRNet的基本结构,但修改了全连接的层数,只有三层全连接层{1024、512、256},输出大小为7,并且在输出层前加dropout防止过拟合。
迭代PCRNet对于每一次迭代的误差变换记作T(i),对于后续的迭代中的目标点云要先对目标点云进行一次误差变换T(i-1),再进行第i次的迭代。最终将每一次迭代的变换组合起来,得到源点云和目标点云的最终变换T。
迭代PCRNet通过降低了每一个PCRNet的隐藏层,但增加了多次迭代,换掉了更大的时间来训练,来维持稳健的配准性能。(一般一般)
3、损失函数
EMD Loss(Earth Mover Distance):最小化源点云与目标点云的距离,其中作为一个最优的姿态。
五、实验
1、在没有噪声的情况下,对比了迭代PCRNet、PointNetLK和ICP在不同物体类别上的性能。结果表明,当训练和测试数据来自同一类别时,迭代PCRNet的性能大幅提高。
2、在加入高斯噪声的情况下,评估了迭代PCRNet、PointNetLK和ICP的鲁棒性。结果显示,迭代PCRNet在训练时观察到的噪声水平下表现最佳,而PointNetLK对噪声非常敏感。
3、比较了不同方法在计算速度和精度上的表现。结果表明,迭代PCRNet的精度接近全局最优方法Go-ICP,但计算速度快了3-5个数量级。
4、在真实世界的室内场景数据上,使用迭代PCRNet进行物体替换,并与ICP和基于混合整数规划的方法进行对比,结果表明迭代PCRNet的性能更优。
论文参考:https://arxiv.org/abs/1908.07906v1
代码指北:GitHub - vinits5/learning3d: This is a complete package of recent deep learning methods for 3D point clouds in pytorch (with pretrained models).