大多数三维形状补全方法在很大程度上依赖于部分-完整的形状对,并以全监督的方式进行学习。尽管它们在域内数据上的表现令人印象深刻,但当归纳到其他形式的残缺形状或现实世界扫描的残缺形状时,由于域的跨越,它们往往获得不令人满意的结果。与之前的全监督方法相比,本文中我们提出了ShapeInversion,它首次将生成对抗网络(GAN)逆映射引入到形状补全任务中。ShapeInversion使用一个在完整的形状上预训练的GAN,学习一个潜在代码,该潜在代码能够给出一个完整的形状,从而ShapeInversion能最好地重建给定的残缺输入。通过这种方式,ShapeInversion不再需要成对的训练数据,并能够纳入训练有素的生成模型中捕获的丰富先验。在ShapeNet基准上,拟议的ShapeInversion优于SOTA无监督方法,并与使用配对数据学习的有监督方法相媲美。它还展示了显著的泛化能力,对现实世界的扫描和各种形式的残缺输入以及各种不完整程度给出了稳健的结果。重要的是,由于预训练的GAN的参与,ShapeInversion自然地实现了一系列额外的能力,例如为一个模糊的部分输入产生多个有效的完整形状,以及形状操作和内插。
三维形状补全从残缺点云形状的部分形状中估计出完整的几何形状,这对许多下游任务非常重要,如机器人导航和场景理解。大多数用于形状补全的工作是以全监督的方式用成对的部分-完整数据对进行训练。虽然他们在域内数据上获得了很好的结果,但这些方法要推广到域外数据是很有挑战性的,这些数据是现实世界的扫描或具有不同残缺形式的数据,如图1(a)-(d)所示。
我们在本研究中采取了一种无监督的方法。受GAN逆映射在图像修复和编辑等二维任务中的成功启发,我们首次提出将GAN逆映射应用于三维形状的补全,我们将其称为ShapeInversion。具体来说,给定一个残缺输入,ShapeInversion在GAN的潜在空间中寻找一个潜在代码,该潜在空间能够给出了一个完整的形状,而潜在代码可以最好地重建残缺输入形状。通过包含存储在预训练的GAN中的先验知识,不需要对输入的残缺形状进行假设(即一种条件假设),因此ShapeInversion对各种残缺形状的输入和现实世界的扫描具有良好的通用性。此外,GAN在ShapeInversion中的参与带来了一些副作用,包括为一些残缺输入提供多个合理的完整形状,以及形状抖动和形状操作。虽然ShapeInversion与二维图像的GAN逆映射方法有一些相似之处,但由于三维数据的性质,前者拥有几个内在的挑战。
(1) 与遵循网格状结构的二维图像不同,像素的位置是明确的,不同三维形状的点云是高度非结构化的。通常情况下,在三维形状上训练的GANs会产生具有明显不均匀性的点云,即点在形状表面的分布不均匀。这种不均匀性可能会导致形状有不想要的洞,破坏了我们预测的完整性。
(2) 点云的无序性使得完成任务与二维图像修复有很大的不同。在二维图像修复中,鉴于网格式对齐的像素对应关系,人们可以很容易地测量部分输入的可见区域和预测输出之间的重建一致性。这种比较在三维形状完成中是具有挑战性的,因为两个三维形状的相应区域可能位于三维空间中的不同位置。如果没有准确的点对应关系,GAN逆映射将受到不良重建的影响,并反过来危害到形状补全任务。
我们提出了两个新的模块来解决这些独特的挑战。首先,为了提高估计的点云的均匀性,我们引入了一个简单而有效的均匀损失–PatchVariance。该损失在物体表面对小斑块进行采样,以确保平面假设,并对斑块中心与各自最近的邻居之间的平均距离方差进行惩罚训练。与现有方法不同的是,我们的方法通常是在斑块层面上进行的,我们的方法是一个软的正则器,在训练GAN时,在物体层面上即时增强均匀性。因此,我们在所有类别中实现了更好的统一性,从大块结构到精细结构,同时保留了形状的合理性和多样性。第二,我们设计了一个有效的Mask机制,k-Mask,以估计残缺输入和预测形状之间的点对应关系。为了减轻点云的无序性造成的模糊对应关系,我们的方法让残缺输入中的每个点从预测的形状中寻找它的k-最近的邻居。所有这些k-近邻的指数定义了可见区域的Mask,我们可以从中计算出重建损失。我们的方法是动态的,因此比使用预定义体素或距离阈值的基线方法表现更好。即使在残缺输入和预测形状之间的语义部分在空间中不在一个接近的范围内,它也显示出高鲁棒性。
ShapeInversion在不同场景下展示了令人信服的形状补全性能。首先,在一个源自ShapeNet的通用基准上,它比SOTA的无监督方法pcl2pcl要好得多,并与各种监督方法相媲美。第二,当涉及到现实世界的扫描或部分形式和不完整性水平的变化时,我们的方法显示出相当的泛化能力和鲁棒性,而监督方法由于领域不匹配而表现出明显的性能下降。第三,鉴于更极端的不完全性导致的模糊性,我们的方法能够提供多种有效的完整形状,所有这些形状都忠实于残缺形状输入中的可见部分。
三维形状补全。
三维形状补全在机器人学[11, 24]和感知[9, 14]方面发挥了重要作用。自从开创性的工作PCN[35]以来,基于点云的形状补全与其他表示形式如网格和体素网格相比有了很大的发展,这是因为它作为一种原始数据格式的灵活性和普及性。大多数现有的方法是以全监督的方式对特定形式的残缺形状进行训练[10, 15, 7, 23, 31, 36],并对完整形状进行配对。由于从粗到细的策略[27, 21, 15, 29, 33],它们在域内数据上取得了令人印象深刻的结果,但可能无法充分推广到现实世界的扫描或其他形式的局部形状。最近,pcl2pcl[7]提出了一种无监督的方法,使用非配对数据,例如,从三维模型和现实世界的残缺扫描中获得的完整形状。它训练了两个独立的自动编码器,分别用于重建完整形状和残缺形状,并学习了从残缺形状的潜在空间到完整形状的映射。考虑到高不完整度下的模糊性,其后续工作[32]能够输出多个可信的完整形状,并以从高斯分布中提取的额外潜在向量为条件。
我们的方法也处于无监督状态,并且由于预训练的GAN的参与,也能给出多个合理的完整形状。此外,我们取得了更忠实的结果,特别是对于真实扫描。
GAN反转。
最先进的GANs,例如BigGAN[4]和StyleGAN[16],通常是在大量的图像上进行训练,并捕获丰富的图像知识,包括低级别的统计、图像语义和高级别的概念。GAN逆映射使用训练有素的GAN作为有效的先验,以高保真的方式重建图像。GAN先验的这种吸引人的性质已经在各种图像修复和处理任务中得到了广泛的利用[3, 2, 25, 13]。一般来说,该方法的目的是找到一个潜在向量,用预先训练好的GAN对给定的图像进行最佳重建。通常,潜在向量可以基于梯度下降进行优化[22, 20],或者通过一个额外的编码器从图像空间进行投影[38, 17]。此外,引入的编码器可以在梯度下降之前作为一个更好的初始化[2]。Zhu等人[37]学习了一个领域指导的编码器,它被用来对语义编辑的潜在向量优化进行规范化。虽然主流方法在逆映射过程中固定了生成器的参数,但最近的方法选择在更新潜在向量时对生成器进行扰动[3]或微调[25],以解决近似流形与真实流形之间的差距。我们的方法是第一个将GAN逆映射应用于形状补全任务。与基于图像的任务不同的是,退化转换通常是直截了当的,在三维空间中将一个完整的形状转换为一个残缺的形状是不合适的。
一个在特定类别的3D形状上训练有素的GAN,例如椅子或汽车,可以捕捉到丰富的形状几何学和这种分布的语义。在这项研究中,我们希望将训练有素的GAN作为形状补全的有效先验,特别是处理广泛种类的残缺形状,并将其推广到未见过的形状。GAN先验可以通过GAN逆映射来利用。尽管它在各种图像修复和处理任务中取得了显著的成功,但它在形状补全方面还没有被探索过。
在此,我们正式介绍GAN逆映射在我们任务中的应用。在参数为θ的生成器对点云形式的三维形状进行训练后,它可以从潜在向量z∈Rd生成形状xc∈ Rm×3。GAN逆映射的目的是找到潜在向量,用G来最好地重建一个给定的形状xin:(这里z* 代表找到的最好的重建潜在向量,训练中会调整z直到得到z*)
主流方法通常在反转过程中固定生成器,而我们遵循最近的方法[25,3],在实时更新潜伏向量的同时微调生成器,这被证明可以改善GAN反转的结果。因此,该公式变成了:
逆映射过程从初始化阶段开始,对数百个潜在向量进行随机采样,并选择L值最小的z作为微调的初始值。然后,根据公式(2),通过梯度下降更新z和θ。在形状补全的情况下,我们的目标是从一个给定的残缺形状xin推断出一个完整的形状xc,其中距离是在观察空间计算的,也就是说,我们需要通过退化函数M将一个完整的形状转换成一个残缺形状,如公式(3)所示。
因此,为了准确的重建损失,M必须提供精确的点对应关系。反演阶段如图2所示。
与图像相比,生成的像素是以规则的格子排列的,而三维形状是由连续的三维空间中的点表示的,没有共同的结构。因此,3DGANs经常产生具有明显不均匀性的点云,其中的点往往不均匀地分布在形状表面。鉴于每个点云中的点的数量是固定的(现有的GANs通常为2048个),这种不均匀性对形状的完成是不利的:点集中在一个区域不可避免地导致其他区域的稀疏甚至空洞。 tree-GAN作为一个案例。最新的最先进的点云生成方法tree-GAN[26],采用了树状结构图卷积网络(Tree-GCN)作为生成器,其中信息从祖先节点而不是邻居节点传递。由于Tree-GCN中每两层之间都有分支,共享同一父节点的子节点之间的几何关系会更密切。虽然它在保真度和覆盖率方面优于以前的方法[1,28],但非均匀性问题仍未解决,如图3(a)所示。
为了更清晰的可视化,我们根据点在Tree-GCN上的相对关系对其进行着色。这表明具有远距离关系的点可能会在三维空间中杂乱无章。如果没有适当的正则化,不同分支的点会倾向于形成类似高斯的分布,如更多的点聚集在物体的几何中心或不同语义部分的连接处,导致高度不均匀的形状。形状的点云的非均匀性是一个长期存在的问题。点云上采样的研究[18, 34]提出了一些形式的均匀性损失,如点云斑块上的排斥性损失。此外,MSN[21]提出了扩展惩罚来减少表面元素的重叠。
然而,这些方法分别对形状的每一部分进行规范化处理,而没有在所有部分强制达成共识以实现整体的均匀性。鉴于它们的弱点,我们提出了一个新的统一损失,即PatchVariance,在树状网络训练过程中对整个形状的统一性进行规范化,此外还有其对抗性损失。
具体来说,我们通过最远点取样(FPS)对物体表面的n个种子位置进行随机取样,然后通过包括每个种子的k个最近邻居来形成小斑块。不管是精细的还是大块的结构,这些小斑块的散布都是相似的。因此,我们计算每个种子与其k个最近邻居之间的平均距离,并对所有斑块的平均距离的方差进行惩罚,如公式(4)所示。
如图3(b)所示,PatchVariance明显改善了生成形状的均匀性。更多的评估和与其他均匀损失的比较将在消融研究中涉及。请注意,所提出的均匀损失是通用的:它直接作用于生成的形状,并且对GAN架构是不变的。PatchVariance在r-GAN上的交叉验证[1](有基于MLP的生成器)可以在补充材料中找到。
对于形状的补全,我们定义了一个退化变换模块M,以最佳地逼近从生成的完整形状xc=G(z)到残缺形状xp的变换,这样xc和给定的残缺形状xin之间的相应区域可以被精确比较计算。我们发现,由于点云独特的非结构化性质,定义这样一个退化函数是不合适的。人们可以直观地将其与图像修复任务联系起来,在图像修复任务中,通常提供一个二进制掩码m,通过元素相乘将完整的图像退化到观察空间:xmasked = x ⊙ m,给定任何图像对之间的像素对应关系与像素位置一致。相反,两个三维结构的对应区域可能位于三维空间的不同位置,而直接将xin体素化以形成表明体素占有率的三维张量将不可避免地导致信息损失。更重要的是,由于xc很可能与xin有很大的不同,特别是在早期的GAN反转阶段,相应的语义部分并不属于同一个体素,因此会导致问题的退化。见图4(e)和(f)的说明。
在这项工作中,我们引入了一个准确而稳健的掩码作为退化函数M,我们称之为k-Mask。准确和稳健的退化应基于对xin和一般xc之间的对应点的了解。事实上,点的对应关系是模糊的,远没有那么直接,而且对不同的生成的形状有变化。为此,我们根据欧氏距离,动态地获得xin和特定xc之间的点对应关系。考虑到对应关系的模糊性,我们选择了多个对应点来进行稳健设计。具体来说,对于xin中的每个点pi,我们从xc中寻找其k个最近的邻居,表示为N xc k (pi)。因此,如公式(5)所示,xp可以通过这些最近的邻居的联合来构建。
Alternative Design Variants.
我们还提供了其他可供选择的掩码以供比较。如上所述,voxel-Mask是一个直观的设计,它直接将二维二进制掩码扩展到三维领域。xin的体素化给出了它的体素占有率,这样xp就简单地由xc的所有点组成,这些点对应于xin中的体素占有率。 τ-Mask根据预定义的阈值确定相应的区域。公式(6)描述了xp,它由xc的所有点组成,其中与其最近的邻居的L2距离在阈值τ之内。
如图4所示,k-Mask提供了一个准确和稳健的退化,而其他掩码未能同时实现这两个目标。这是因为voxel-Mask和τ-Mask都利用了基本固定的距离阈值,因此无法适应某些区域内点密度的变化。这一观察结果与流行的点特征提取器中k-NN比球查询更受青睐的情况是一致的[30, 19]。
Chamfer Distance(CD)和Earth Mover’s Distance(EMD)是形状补全中最常用的结构损失,后者对细节和密度分布更加敏感[21]。然而,与测量两个完整形状之间的距离的典型的监督形状完成训练过程不同,我们的GAN反转过程将特定的退化形状与给定的残缺形状进行比较,后者可能包含不同数量的点,从而使EMD不可行。我们遵循CD-T的变体[29, 27],计算平方的L2距离,如公式(7)所示。
由于结构性损失通常只关注点云的低层次规律性,我们也在观测空间进行特征匹配,希望在语义上更多地调整几何形状。按照最近的做法[25],我们利用鉴别器,一个在预训练期间与生成器一起训练的网络。我们从中间层的最大池化后立即提取特征,这可以捕捉到更多的几何细节,并计算L1距离作为特征距离损失,如公式(8)所示。
整体损失函数如公式(9)所示,它被用于形状完成和完整形状的重建。
我们从一个消融研究开始(第4.1节),然后通过广泛的实验评估ShapeInversion。除了在虚拟扫描基准上的形状完成(第4.2节),我们还在跨域残缺形状(第4.3节)和真实世界的残缺扫描(第4.4节)上与其他方法比较其通用性。此外,我们还提供了关于模糊性下的多个有效输出的定性结果(第4.5节)和对已完成形状的形状操作(第4.6节)。
数据集:为了便于综合评价,我们对合成的和真实世界的部分形状都进行了实验。以下三种形式的合成局部形状是:a)虚拟扫描(例如在PCN[35]和CRN[29]中)b)球状局部形状(例如在PF-Net[15]中)c)语义部分级不完整(PartNet[23])如图1(a)-(c)所示。它们都是由ShapeNet[6]衍生出来的。
对于现实世界的扫描,我们对从三个来源提取的物体进行评估:i)KITTI(汽车)[12],ii)ScanNet(椅子和桌子)[8],以及iii)MatterPort3D(椅子和桌子)[5],如图1(d)所示。请注意,我们遵循形状补全领域的标准做法,即假设输入总是规范的。
评价指标:在第4.1节中,我们使用最小匹配距离-地球移动者距离(MMD-EMD)[1, 26]来评估生成的形状集与测试集中的形状的保真度和一致性。EMD对均匀性有很强的指示作用,因为它对两个点云之间的点进行了偏向性匹配。在第4.2节和第4.3节中有了地面实况,我们按照pcl2pcl[7]的方法用CD和F1得分来评估形状完成度的性能,其中F1是准确度和完成度的谐波平均值。在第4.4节中,如果没有地面真相,我们使用单向倒角距离(UCD)和单向豪斯多尔夫距离(UHD)[7, 32]从残缺输入xin到生成的形状xc。
实施细节:在所有的实验中,ShapeInversion使用相同的树形干网,该干网在ShapeNet训练集上进行了预训练,用于生成完整的形状。尽管树形网能够生成多类三维点云,但我们遵循pcl2pcl和MPC[32],为每个类训练单类模型以获得更好的保真度。在以下所有的实验中,预测的完整形状的分辨率为2048。更多细节可以在补充材料中找到。
我们首先研究我们框架中每个模块的优点,包括预训练和GAN逆映射阶段。
PatchVariance的有效性:我们将我们的PatchVariance与扩张惩罚[21]和排斥损失[34]进行比较。如表1所示。
PatchVariance在所有类别中都取得了最好的结果。
从图5中,我们可以看到,扩展惩罚导致了更多的不均匀分布的点云,而它惩罚了分支的扩展,排斥损失只在局部区域执行统一性,而PatchVariance则获得了全局统一性。k-Mask和特征距离的有效性。
表2显示了K-Mask和Feature Distance在GAN反演阶段的的消融研究。用其他替代退化函数代替k-Masks显示出明显的退化。残缺形状中的点的k-近邻的选择提供了一个准确和稳健的退化,并且更好地适应局部点密度的变化。使用特征距离提供了更多的语义信息来补充结构损失,大大提升了性能。
我们在由PCN[35]首次提出的ShapeNet生成的普通虚拟扫描基准上与现有的有监督和无监督的方法进行了比较。为了进行公平的比较,所有的基线方法都是用CRN[29]提供的虚拟扫描来训练的(与ShapeNet训练集中相应的完整形状)。
表3显示,ShapeInversion比CRN[29]提供的虚拟扫描训练得更好,显示了ShapeInversion在所有八个类别中都以较大的优势胜过其他无监督方法pcl2pcl,并且与各种监督方法相当。请注意,各种监督方法令人印象深刻的性能部分归因于从粗到细的策略,其中一些方法甚至在精炼阶段用部分输入来校准粗略的输出[21, 29]。相比之下,ShapeInversion在单一阶段进行完成,并取得了相当的结果。除了图1(a),更多的定性结果可以在补充材料中找到。
为了模仿残缺形状的各种原因,如闭塞和自闭,在不同的作品中考虑了各种部分形式,如球状的部分形状和虚拟扫描。
我们在表4中展示了ShapeInversion在三种不同的局部形式下的稳健性,有监督的方法可能会偏向于在训练对中看到的残缺形式,反过来在域外数据上的结果也很差,即使有辅助的对抗性损失(如CRN)。无监督的pcl2pcl比有监督的方法表现得更好。对于ShapeInversion,GAN只用完整的形状进行预训练,在反演阶段通过k-Mask进行的退化对部分形状的变化是不变的。通过这种方式,ShapeInversion在几乎所有的领域都取得了最好的结果。
定性结果见图6和图1(a)-(c)。请注意,PF-Net被训练成只为球状局部形状生成缺失区域,这与其他具有多个缺失区域的局部形式不兼容;尽管MPC鉴于局部形状的模糊性能够给出多个输出,但为了公平比较,我们报告其单一输出的结果。为了进一步保证公平性,我们从PartNet测试分割中删除了ShapeNet训练集中存在的形状。
我们在从MatterPort3D、ScanNet和KITTI提取的真实世界数据上进一步研究ShapeInversion的通用性。除了与虚拟扫描的领域差距外,这些真实的扫描往往更嘈杂,更不完整,例如KITTI汽车。
我们在表5中对ShapeInversion和pcl2pcl的性能进行了定量评估,使用了UCD和UHD。尽管pcl2pcl是用真实世界的扫描数据重新训练的,但我们的方法在UCD方面明显优于pcl2pcl,并且考虑到pcl2pcl是通过UHD训练的,因此实现了相当的UHD。随着在损失函数中进一步加入UHD,ShapeInversion在对UCD性能稍有妥协的情况下取得了更好的UHD结果。图8中的完成结果显示,pcl2pcl倾向于忽略部分形状中的几何细节,而我们的结果仍然是高度可信的和忠实的。
在更严重的不完整输入下,有不止一个完整的形状是有意义的。我们的框架可以自然地给出多个有效和多样化的输出,因为我们可以从多个z的初始值进行反演,这些初始值是通过FPS从数百个初始值中选出的,但损失L必须小于阈值τL。
如图1(e)和图9所示,ShapeInversion提供了多个合理的输出,其中每个都忠实地反映了部分形状的细节。在输出形状的多样性和保真度之间存在着一种权衡。与MPC[32]相比,其中的权衡是在训练期间由不同损失的权重预先定义的,我们的框架提供了一个更灵活的多样性-保真度权衡,例如,我们可以通过简单地选择一个大的τL和减少反转的迭代次数,为一个特定的局部形状选择更高的多样性。
形状操纵可以实现有趣的应用,如生成式设计。我们表明,ShapeInversion可以很容易地扩展到随机抖动和变形,分别给出可信的新形状和从一个形状到另一个形状的声音过渡,如图7所示。
这些都可以在形状重建时有效地实现:一个给定形状的抖动是通过在潜伏空间中引入扰动来实现的;两个给定形状之间的变形是通过它们相应的潜伏向量z和发生器参数θ之间的内插来实现的。
我们介绍了ShapeInversion用于无监督的点云完成。ShapeInversion通过GAN反演解决了虚拟和真实世界部分扫描之间以及各种模拟部分形状之间的领域差距。作为第一个用于三维形状完成的GAN反演方法,我们引入了两个新的组件来解决点云的性质所带来的独特挑战:一个有效的均匀损失,PatchVariance,以及一个精确和稳健的退化函数,K-Mask。由于纳入了训练有素的GAN中捕获的丰富的形状几何和语义知识,它对现实世界的扫描和各种形式和不完整程度的部分输入实现了显著的泛化。此外,我们的框架还带来了几个副作用,包括为一个部分输入提供多个合理的完整形状,以及形状抖动和形状插值。到目前为止,形状完成和操作都是在一个用单一类别预训练的模型上进行的。未来的工作可以专注于提高多类模型的保真度,这可以提供更多的可能性,如通过条件GAN进行跨类形状完成。致谢。这项研究是与SenseTime合作进行的。这项工作得到了A*STAR通过产业对接基金–产业合作项目资助的支持。