(ICCV 19) Deep Closest Point: Learning Representations for Point Cloud Registration

(ICCV 19) Deep Closest Point: Learning Representations for Point Cloud Registration

Deeo Closest Point(DCP[1])可以算是小数据集ModelNet40上使用深度学习做配准的开山之作了,首先呈现整体模型架构图:

(ICCV 19) Deep Closest Point: Learning Representations for Point Cloud Registration
总体来说,DCP模型主要由4个部分构成:
1. 初始特征生成(Initial Feature Embedding)
2. 注意力机制模块(Attention)
3. 虚拟点对匹配关系生成(Pointer Generation)
4. SVD求解位姿变换
下面按照这几个模块的顺序依次进行分析:

; Network

  1. Initial Feature Embedding
    对于输入的X X X(source)与Y Y Y(target)点云,首先使用DGCNN[2]架构或者PointNet[3]进行特征提取Feature Embedding,给点云中的所有点生成一个初始的逐点特征,即:
    X → D G C N N F X , Y → D G C N N F Y X\mathop \to \limits^{DGCNN} {F_X},Y\mathop \to \limits^{DGCNN} {F_Y}X →D G C N N F X ​,Y →D G C N N F Y ​
  2. Attention
    由于以上Feature Embeddings F X , F Y {F_X},{F_Y}F X ​,F Y ​的计算是相互独立的,即F X {F_X}F X ​与F Y {F_Y}F Y ​是没有任何交互的,因此进一步为了使两点云的特征能够进行相互感知,DCP使用Attention模块以进行信息交互:
    (ICCV 19) Deep Closest Point: Learning Representations for Point Cloud Registration
    ϕ ( ⋅ ) \phi ( \cdot )ϕ(⋅)即transformer操作,可以看出,上式相当于对F X {F_X}F X ​与F X {F_X}F X ​多加了一个信息余项(residual term)ϕ ( ⋅ ) \phi ( \cdot )ϕ(⋅).

经过以上操作,ϕ X , ϕ Y {\phi _X},{\phi _Y}ϕX ​,ϕY ​为新的X X X与Y Y Y的逐点特征。
3. Pointer Generation
经过以上的Feature Embedding操作,接着给点云X X X中的每一个点,利用点云Y Y Y,生成匹配点对correspondences. 例如对x i ∈ X {x_i} \in X x i ​∈X,生成一个点y ^ i {\hat y_i}y ^​i ​与之形成匹配对关系:

(ICCV 19) Deep Closest Point: Learning Representations for Point Cloud Registration
可以看到,y ^ i {\hat y_i}y ^​i ​的形成相当于对点云Y Y Y中的所有点进行加权求和,即利用点云Y Y Y生成一个对应匹配点,而权重由以下式子生成:
(ICCV 19) Deep Closest Point: Learning Representations for Point Cloud Registration
可以看到,即使用x i {x_i}x i ​的feature与点云Y Y Y的feature做了一个向量内积,接着softmax成概率。
利用以上公式,即可对点云X X X中的所有点x i {x_i}x i ​生成一个correspondence y ^ i {\hat y_i}y ^​i ​.
  1. SVD Pose Estimation
    利用以上得到的点对对应关系:x i ↔ y ^ i {x_i} \leftrightarrow {\hat y_i}x i ​↔y ^​i ​
    利用SVD进行位姿求解,这里文章提到传统SVD是不可微的,因此使用[4]中的SVD,以便于梯度反向传播。

Loss & Supervision

这里使用的loss比较直接,使用gt进行监督即可:

(ICCV 19) Deep Closest Point: Learning Representations for Point Cloud Registration
正则项为了减少模型的复杂程度。

; Experiment

ModelNet40共由40个label下的12311个点云(2048 points)所组成,作者在DCP中将9843/2468个点云划分为训练及测试集。一共进行了三组测试:

  1. Full Dataset Train & Test (9840/2468 for training/testing)
    第一组实验是在全类别下进行,在40个labels下的训练集(大小为9840)下进行网络训练,在测试集(大小为2468)上进行测试,目的是检测DCP在unseen point clouds上的配准效果:

DCP_v2commentrot_MSErot_RMSErot_MAEtrans_MSEtrans_RMSEtrans_MAEpapers1.3073291.1433850.7705730.0000030.0017860.001195dcp_v2.t7provided by author1.2175471.1034250.7502430.0000030.0016960.001170model.best.t7batch_size = 32 GPU = 3 EPOCH=25029.5637115.4372523.5306270.0001770.0133010.009703

  1. Category Split(unseen categories)(5112/1266 for training/testing)
    第二组实验的目的是测试DCP在unseen categories上的配准效果,因此训练集只包括前20个label(大小为5112),测试集只包括后20个label(大小为1266)

DCP_v2commentrot_MSErot_RMSErot_MAEtrans_MSEtrans_RMSEtrans_MAEpapers9.9237013.1501912.0072100.0000250.0050390.003703unseen-clean.t7provided in this
issue

10.9856203.3144562.1532360.0000350.0059310.004376

由于时间久远,之前训练保存的模型已找不到,因此这里并没有在unseen categories这个设定下重新训练,这里只evaluate了RPMNet[4]作者在this issue中提供的权重。

  1. Resilience to Noise(9840/2468 for training/testing)
    第三组实验目的是测试DCP在噪声扰动下的配准效果,使用第一组实验(即在无噪声添加下训练)得到的权重,在添加噪声下的测试集上进行评估

DCP_v2commentrot_MSErot_RMSErot_MAEtrans_MSEtrans_RMSEtrans_MAEpapers1.1693841.0813800.7374790.0000020.0015000.001053dcp_v2.t7provided by author1.1633211.0785730.7325670.0000020.0015050.001056model.best.t7batch_size = 32 GPU = 3 EPOCH=25030.1589205.4917143.5823760.0001750.0132140.009648

Analysis

从复现结果里来看,在setting-1与setting-3下效果都比较差,这里很奇怪,由于DCP的默认batch size = 32,而这在12G显存的显卡上单卡是训不起来的,因此用的是3卡同时训练,但得到的效果并没有文章中的结果那么好,这里作者也提到small batch size可能训不出一个好的结果,也许作者的模型是使用一个大batch size在单卡上训练得到的,这里由于硬件限制就没有继续做实验去探究。
另外关于如何训练得到DCP的pretrained model在这个issue中也提到了一些问题,感觉DCP难以复现的问题并不是一个个例。

Reference

[1] Wang Y, Solomon J M. Deep closest point: Learning representations for point cloud registration[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 3523-3532.

[2] Wang Y, Sun Y, Liu Z, et al. Dynamic graph cnn for learning on point clouds[J]. Acm Transactions On Graphics (tog), 2019, 38(5): 1-12.

[3] Qi C R, Su H, Mo K, et al. Pointnet: Deep learning on point sets for 3d classification and segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 652-660.

[4] Yew Z J, Lee G H. Rpm-net: Robust point matching using learned features[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2020: 11824-11833.

Original: https://blog.csdn.net/dloading7/article/details/122788899
Author: dloading7
Title: (ICCV 19) Deep Closest Point: Learning Representations for Point Cloud Registration

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/528720/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球