【CVPR 2018】PU-Net: Point Cloud Upsampling Network 原创

发布于 2023-2-3 12:53
浏览
0收藏

@[toc]

PU-Net: Point Cloud Upsampling Network

网络架构

【CVPR 2018】PU-Net: Point Cloud Upsampling Network-汽车开发者社区

PU-Net有四个组件:patch extraction, point feature embedding, feature expansion和coordinate reconstruct。

patch extraction:从给定的一组先验3D模型中提取不同比例和分布的点块。

point feature embedding:通过分层特征学习和多层次特征聚合将原始3D坐标映射到特征空间。

feature expansion:扩展特征数量。

coordinate reconstruct:用一系列全连接层重建输出点云的三维坐标。

训练数据生成

【CVPR 2018】PU-Net: Point Cloud Upsampling Network-汽车开发者社区

为了学习点云中的局部几何图形,作者采取基于分块的方法来训练网络。首先,在这些对象点云的表面上随机选择$M$个点。然后从每个选定的点开始,在对象上生长出一个曲面分块,使得分块上的任何点都在曲面上与选定点的特定的测地线距离($d$)内。最后,使用Poisson disk采样在每个面片上随机生成$\hat{N}$个点,作为分块上的参考真实点云,而输入点在每个训练时期以$r$的下采样率从真实点集合随机采样。

点特征嵌入

【CVPR 2018】PU-Net: Point Cloud Upsampling Network-汽车开发者社区

分层特征学习:

Pu-Net采用PointNet++中提出的分层特征学习机制作为网络的开端,逐步捕获层次结构中不断增长的尺度特征。

多级特征聚合

Pu-Net首先通过PointNet++中的插值方法从下采样的点特征中恢复所有原始点的特征,等级为$l$的插值点$x$的特征计算为:

【CVPR 2018】PU-Net: Point Cloud Upsampling Network-汽车开发者社区

其中$w_i(x)1/d(x,x_i)$为逆距离权重,$x_1,x_2,x_3$为$x$的三个最近邻点。然后使用1x1的卷积减少不同级别的内插特征到相同维度$C$。最后将各个级别的特征连接,得到最终的点特征$f$

Feature Expansion

【CVPR 2018】PU-Net: Point Cloud Upsampling Network-汽车开发者社区
假使$f$的维度为$N\times\tilde{C}$,$N$为输入点数,$\tilde{C}$为连接的点特征的维度。特征扩展层将输出$rN\times\tilde{C}_2$的特诊$f’$,其中$r$为上采样率.

基于sub-pixel convolution layer,PU-Net的上采样表示为:

【CVPR 2018】PU-Net: Point Cloud Upsampling Network-汽车开发者社区
其中$\mathcal{C}_i^1(\cdot)$(每个特征集共享参数)和$\mathcal{C}_i^2(\cdot)$(每个特征集参数不同)表示对$f$进行的两次1x1卷积。$\mathcal{RS}(\cdot)$将$N\times r\tilde{C}_2$的张量reshape为$rN\times \tilde{C}_2$。

Cfoordinate Reconstruction

使用全连接网络将$N\times \tilde{C}_2$的扩展特征变换为$N\times3$。

【CVPR 2018】PU-Net: Point Cloud Upsampling Network-汽车开发者社区

端到端训练

Joint Loss Function

【CVPR 2018】PU-Net: Point Cloud Upsampling Network-汽车开发者社区

重建损失使用Earth Mover’s distance(EMD):
【CVPR 2018】PU-Net: Point Cloud Upsampling Network-汽车开发者社区

其中$S_{p}$为predicted point cloud;$S_{gt}$为参考点云。$\phi:S_p\rightarrow S_{gt}$为双射映射

尽管具有重建损失的训练可以在基础对象表面上生成点,但生成的点往往位于原始点附近。为了更均匀地分布所生成的点,Pu-Net还包含一个排斥损失,表示为:

【CVPR 2018】PU-Net: Point Cloud Upsampling Network-汽车开发者社区

其中$\hat{N}=rN$为输出点的数目,$K_{i}$为$x_i$k个最近邻点的索引。$||\cdot||$为L2范数。递减函数$\eta®=-r$作为排斥项(距离越小值越大),避免$x_i$离其他点$K_{i}$太近。$w®=e^{-r^2/h^2}$为权重因子。

最终的端到端训练损失函数:

【CVPR 2018】PU-Net: Point Cloud Upsampling Network-汽车开发者社区
其中$\bold{\theta}$为网络参数,$\alpha$和$\beta$为权重。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
收藏
回复
举报
回复