本文提出了一种数据驱动的点云上采样技术,在给定较为稀疏的点云集合的基础上生成更为稠密的点。
通过训练学习隐含的几何特征并利用更为稠密的点表示出来。与图像超分辨类似,但这一问题却需要处理非栅格点云数据;其次生成的点应该描述目标的潜在表面,应该尽量靠近目标表面;最后生成的点应该均匀分布在秒表面,简单插值方法无法有效解决。
为了解决这一问题研究人员提出了数据驱动的方法,在点云片级别提出了鼓励插值点靠近表面并均匀分布的联合损失函数,其关键的思想是为每个点学习多级特征,并在特征空间里通过多分支卷积来拓展点集,拓展r倍。拓展后的特征被重组为多个特征以此来重建上采样点集。
关键思想是学习每个点的多级特征,并通过隐含在特征空间中的多分支卷积单元扩展点集。 然后将扩展的特征拆分为多个特征,然后将其重构为上采样点集。 该网络是在补丁级别应用的,具有联合损失函数,该函数鼓励向上采样的点以均匀分布的形式保留在基础表面上。实验结果表明,本文的上采样点具有更好的均匀性,并且更靠近下层表面。
与之前的工作不同,本文是学习基于点的几何语义然后将学到的知识用于给定点云的上采样,我们网络中输入和输出点的数量是不同的。
制定了两个度量标准,即分布均匀性和与下表面的距离偏差,以定量评估上采样的点集。
网络包含四个组件:
patch extraction(补丁提取), point feature embedding(点特征嵌入), feature expansion(特征扩展), and coordinate reconstruction(坐标重建)。
首先在三维模型上按照不同的尺度提取给定点云的patch,然后通过分层特征学习和特征增强将原始点云坐标映射到特征空间。利用拓展单元将得到的特征进行拓展,并基于它们和一系列全连接层重建出稠密点云的坐标。
1、Patch Extraction
我们收集一组3D对象作为训练的先验信息。这些对象涵盖了多种形状,从光滑的表面到具有尖锐边缘和角的形状。本质上,为了让我们的网络对点云进行上采样,它应该从对象中学习局部几何图形。这促使我们采取基于补丁(patch)的方法来训练网络和学习几何语义。
详细来说,我们随机选择这些物体表面的M个点。以每一个点为中心距离为d内所有的点组成一个一个曲面的补丁(surface patch)即点云片。然后,我们使用Poisson disk采样的方法在每个patch上随机生成N^个点,作为补丁上的真实点分布。在我们的上采样任务中,局部和全局信息被一起用来平滑和统一的输出。因此,我们将d设置为不同尺寸的大小,这样我们就可以在先前的物体上提取不同比例和密度的点云片。
2、Point Feature Embedding
为了能同时从点云片中学习局部和全局几何信息,考虑了两种特征学习策略:层级特征学习和多级特征聚合。
Hierarchical feature learning
使用不断增长的比例来提取局部和全局特征(就是分组半径不断变大,分组所得区域覆盖范围不断变大)。采用PointNet ++ 中提出的分层特征学习机制作为网络中最重要的部分。在每一层中使用相对较小的分组半径,使得新生成的点更多地包含局部信息。
Multi-level feature aggregation
用于将不同级别的特征整合得到更好的上采样结果。直接将不同层级的结果进行聚合以学习每层的特征。网络中的较低层通常对应于较小规模的局部特征,反之亦然。
由于随着特征抽取点云片逐渐下采样,对于每一个层级首先利用PointNet++的插值方法从下采样特征中对原始点云的特征进行重建,随后利用1x1卷积将不同层级的特征压缩到相同维度C上,使得不同层面的特征具有一样的尺寸N×C,最后将这些特征衔接起来获得嵌入特征f。图中红色为直接从各级点云得到的原始特征,绿色为下采样后逐渐重建的特征。
3、Feature Expansion
在point feature embedding后,我们需要在特征空间扩展特征数量,这相当于扩展了点的数量,因为点和特征是可以互换的。即将N个点变为r*N:
假设f的维数是N x C,N是输入点的数量,C是级联嵌入特征的特征维数。特征扩展操作将输出维数为rN x C的特征f′,其中r是上采样率,C2是新的特征维数。本质上,这类似于图像相关任务中的特征上采样,这可以通过反卷积或插值来完成。
然而,由于点的非规则性和无序特性,将这些操作应用于点云并不容易。因此,我们提出了一种基于子像素卷积层的有效特征扩展操作。此操作可以表示为:
其中和是两组分开的1x1的卷积。r则代表进行了r个特征扩展操作。意思就是通过两次卷积操作将N x C˜先变成r个N x C1˜的特征层,再变成r个N x C2˜的特征层,最后拼接成N x rC2˜的特征图。是Reshape操作,将N x rC2˜转换成rN x C2˜。
我们强调,Point Feature Embedding的特征已经通过高效的多级特征聚合封装了来自邻域点的相对空间信息,因此在执行此特征扩展操作时,我们不需要明确考虑空间信息。
但值得注意的是内层的C1卷积得到的特征具有很强的相关性(下图中第二列特征),这会使得重建的点倾向于靠近。为了避免过于拥挤用另一个卷积为r个不同的集合训练了r个卷积来学习尽可能多的信息减小内部相关性。通过使用r个分离的卷积来得到不同尺度的信息,并最终reshape得到新的特征。
4、Coordinate Reconstruction
在这一部分中,我们从尺寸为rN×C2˜的扩展特征重建输出点的3D坐标。具体来说,我们通过一系列全连接层对每个点的特征进行三维坐标重建,即回归出最后的点云位置,特征的维度由rN×C2˜变为rN×3。从这里可以看出上采样率是由特征拓展中拓展的通道数决定的,如果拓展的r倍数越大,最终得到的点云密度也可以越大。
1、Traning Data Generation
训练补丁的参考ground truth点分布是固定的,而输入点是从ground truth点集随机采样的,每个采样时期的采样率为r。 直观上,此方案等效于针对给定的稀疏输入点分布模拟许多可行的输出点分布。另外,该方案可以进一步扩大训练数据集,从而使我们能够依靠相对较小的数据集进行训练。
2、Joint Loss Function
我们提出了一种新颖的联合损失函数,以端到端的方式训练网络。如前所述,该函数应鼓励生成的点以更均匀的分布位于基础对象表面上。因此,我们设计了一个结合重建损失和排斥损失的联合损失函数。
Reconstruction loss
为了将点放在底层物体表面,建议使用Earth Mover’s distance(EMD)作为我们的
重建损失去评估预测点云和实际点云之间的相似性:
其中,表示双射映射。
这个描述分布的距离将不断最小化重建点云和GT点云间的差异。比起ChamferDistance,EMD可以更好地的捕捉形状信息使得点靠近表面。Chamfer Distance(CD)是评估两个点集之间相似性的另一个候选。因此,我们选择在重建损失中使用EMD。
Repulsion loss
尽管重建损失的训练可以在底层物体表面上生成点,但是生成的点往往由于相关性堆积于原始点附近。为了更均匀地分布生成的点,我们设计了排斥损失,表示为:
其中N˜=rN是采样后输出点的个数,K(i)是点x_i的k-nearest neighbors,是L2-norm(二范数),被称为排斥项,它是一个递减的函数,如果x_i距离他的K近邻K(i)过于接近。为了使x_i只有过于接近他的K近邻点的时候才收到惩罚,我们增加了两条约束:(i)只考虑点x_i为x_i的K近邻时的情况;(ii)将快速衰减的权重函数加入排斥损失中。
总而言之,我们通过最小化以下联合损失函数以端到端的方式训练网络:
表示我们网络的参数,用来平衡重建函数和排斥函数,代表重量衰减乘数。为简单起见,我们忽略每个训练样本的索引。
数据集使用了从Visionair repository中选取的60个模型,40个用于训练并从每个模型中剪取了100个点云片。选择随机点的数量为M=4000.测试时测利用蒙特卡洛方法选取5000个点。为了验证模型泛化性,同时在SHREC15和ModelNet40以及ShapeNet上进行了实验。
3、评价指标
在测试模型的结果时研究人员利用了距离偏差来描述生成点云与基准偏移的距离,以及归一化均匀性描述生成点云的均匀性。
其中距离指标是预测点与最邻近mesh点的距离并计算误差的均值和标准差;而针对均匀性则定义了NUC指标:
其中在目标表面放置了D=9000个大小的disk分别计算标准差并在形状个数K上和每个形状的测试数量D上进行了归一化。可以有效表示生成点云在表面分布的均一性。
均匀性的体现,可以看到最后一个具有较好均匀性的点云在真个表面分布较为均匀不会有集中聚集的地方。
与Edge Aware Resampling,EAR1方法相比,发现EAR方法受到半径影响较大。与pointnet++相比效果更好,本方法参数更少,偏差小而且得到的加密点云更为均匀。
两个重建结果,对于光滑曲面和复杂表面的重建效果都很好:
这一模型可以同时处理不同数量的点云输入以及带有噪声的点云数据:
在真实扫描数据集上表现也较好: