PU-Net阅读笔记:点云的上采样
简述
PU-Net在点云上进行上采样,即输入一个点云,输出一个更密的点云,且它落在输入点云隐含的几何体(比如表面)上。点云上采样和图片的超分辨率很像,但因为是三维的点而不是二维的像素,因此也有点云不规则、无顺序的一系列缺陷。PU-Net的核心思想,是学习到每个点多个粒度(从局部到全局)下的特征,再在特征空间中扩大点集,最后将扩大的点集映射回三维。提取特征的方法基于PointNet++。
邻域选择
在模型表面上随机选择个中心点,然后指定一个测地线距离,将范围内的点和中心点一起作为一个Patch。然后,我们使用Poisson disk sampling来随机采样个点,作为ground truth。我们可以改变的大小,从而形成不同尺度、不同密度的patch。
层次特征学习
此部分采用了PointNet++的算法,得到了各个尺度上点的特征。注意这里每层聚类的半径比较小,这样可以保留住更多的局部细节特征。
多层次特征融合
越低层次的特征对应着越局部的特征。对于高层次的特征,PointNet++采用了按归属(连接)关系将它们传递到每个点上。但PU-Net的作者认为这样不是很高效,因此采用了直接加权融合的方法。即
它表示了点在第层的特征为它最临近三个中心点的加权和,其中权重为距离反比。
然后,我们在每个点上将其各层次的特征做一个concatenate,作为该点的特征。
特征展开
令为点的数量,为特征的维度。我们的目标是得到个特征,其中为上采样率。按照代码里的做法,首先将扩展到,然后通过两个各点独立的的卷积核,得到的张量。
坐标重建
最后,通过多个全连接层,将的张量转化为,得到最终的结果。
训练过程
对于一个模型,我们当然事先不知道它上采样的结果。因此训练时,我们首先对模型进行下采样,然后用原模型作为ground truth。
损失函数
重建损失
重建损失测量了生成的点云和ground truth之间的推土机距离EMD(Earth Move Distance),即令生成的点云为,ground truth点云为,则此距离为
其中,是一个从生成点云到ground truth的双射。
另一个常用的点云之间距离的度量方式是CD,Chamfer Distance。和CD相比,EMD可以更好地使点接近模型的隐藏表面。
排斥损失
如果只有重建损失,则从一个点派生出来的个点很可能会聚集在一起。为了使这些点分开一些,作者增加了排斥损失。
其中,,为的近邻。为排斥项,距离越近越大。为权重项,距离越近权重越大。论文里没有提及是什么,感觉是一个权重的超参数。
总损失
其中,最后一项为正则化项。
实验结果
与另一个方法EAR的比较
参考文献
Yu, Lequan, et al. “Pu-net: Point cloud upsampling network.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.