密集的云细节,好吗?
名称:使用深度金字塔的密集3D点云重建
摘要
本文提出了一种用于点云重建的深金字塔网络模型DensePCR。首先预测一个低分辨率的点云,然后通过聚合全局特征和局部特征来分层增加点云的密度。该模型的一大亮点是分阶段处理点云,而以往基于点云的重建方法都是一个阶段预测点云,这会导致两个问题:
这将显著增加模型的参数。
EMD等损失函数会大大增加计算量。
本文解决了单视图重建的两个重要问题:
给定一张二维图片,是否有足够的信息来预测密集的点云?
如何对稀疏点云进行上采样,以获得更接近物体表面的密集点云?
对于第一个问题,本文使用的是深金字塔结构的网络。首先预测一个低密度的稀疏点云,然后分层增加点云的密度。对于第二个问题,提出了一种机制,通过使用邻域地形信息和全局形状属性来“扭曲”每个点周围的局部网格。
本文的贡献可以概括如下:
提出了一种用于点云重建的深度金字塔网络模型DensePCR,点云的密度通过层次化的步骤逐渐增加。
与以前的网络模型相比,该模型的参数减少了3倍。
该模型的架构如图所示:
DensePCR架构图。训练管道首先预测低分辨率的点云,然后分层增加点云密度。多尺度训练策略用于约束每个中间结构。中间点云(Xp)提取全局(Xg)和局部(Xl)点特征,在每个点周围的坐标网格(Xc)上进行调整,生成密集预测,从而实现超分辨率。
然后分别介绍了多阶段训练、全局特征学习、局部特征学习以及特征聚合和网格条件。
多阶段训练
该网络由几个训练阶段组成。首先将图片通过点网生成低密度点云,然后通过密集的重构网络获得高密度点云。而且每个阶段使用的测距损失函数是不一样的。
如上图A所示,图片通过编解码结构的网络生成稀疏点云X p。由于点云是无序的,设计的损失函数必须能够避免点云的无序带来的结果的不确定性。接下来,引入两个损失函数:倒角距离(CD)和推土机距离(EMD)。
CD的定义如下:
Xp是真正分布式的点云。对于每个预测点,在Xp中找到与该点距离最小的点,然后计算最小距离,对所有预测点进行此操作。依次根据Xp中的每个点,在预测的点云中找出离该点的最小距离,对所有的实点进行这个操作,最后把距离加起来得到最终的距离,就是倒角距离。(注:虽然这种算法简单快速,但是很明显倒角距离算法不能保证两点云分布的一致性。)
EMD定义如下:
EMD可以缓解CD带来的问题,这里?它是一个双射,因为它可以将一个点集映射到另一个点集,从而保证两个点集的一致性,但是EMD有一个显著的缺点,就是时间复杂度太大。(CD和EMD另写文章总结)鉴于此,本文分阶段使用CD和EMD。第一,稀疏点云第一次生成后,EMD既能保持生成的点云与真实点云分布一致,又能减少计算量。然后后续的密集点云都用CD来计算损失。
这里稀疏点云的生成方法是一系列卷积层、batchnorm层和relu层,以及后续的全连通层。通过对后续组件的分析,介绍了密集点云的生成方法。
密集重构网络
密集点云的生成需要全局特征、局部特征、特征聚合和网格坐标调整。
全局特征学习
众所周知,全局特征对于三维重建非常重要。为了提取全局特征,DensePCR采用了与点网和MLP相同的处理方法。
MLP可以通过带* * *参数的感知器层提取点云的全局特征。上图中的maxpool是对称操作。可以看出,虽然通过MLP+最大池的运算可以提取出全局特征,但是由于最大池的存在,物体的局部过特征却被无意中抹去了。
局部特征学习
在点云分割和点云分类领域,局部特征是极其重要的。为了更好地重建物体的细节,点云的局部特征对于重建也是非常重要的。所以DensePCR使用PointNet++网络模型来提取对象的局部结构(关于PointNet++的介绍,请参考我的另一篇文章)。
具体来说,DensePCR在每个点周围构造一个邻域球体,在这个邻域内的全局特征可以通过在每个邻域内使用MLP得到,这也是相对于整个点云的局部特征。那么就可以得到一个n×nl的矩阵,其中n是输入点云的个数,nl是最后一个MLP的输出通道。
特征聚合和坐标网格调节
这时我们已经得到了全局特征和局部特征,所以我们需要一种全局和局部特征与稀疏点云生成密集点云的机制。
为了实现这个任务,DensePCR提出了输出点对应的特征向量,分别由点坐标、全局特征和局部特征组成,表示为[Xp,Xg,Xl],其维数为n×(3+ng+nl)。
n个点怎么变成了4n个点?
DensePCR通过上采样因子将n×(3+ng+nl)平铺为4n×(3+ng+nl)。