既可生成点云又可生成网格的超网络方法 ICML
作者:三弟 3D
来源:公众号@3D视觉工坊
本文发表在 ICML 2020 中,题目是Hypernetwork approach to generating point clouds。利用超网络(hypernetworks)提出了一种新颖的生成 3D 点云的方法。与现有仅学习3D对象的表示形式方法相反,我们的方法可以同时找到对象及其 3D 表面的表示。我们 HyperCloud 方法主要的的想法是建立一个超网络,返回特定(目标)网络的权重,目标网络将均匀的单位球上的点映射到 3D 形状上。因此,特定的 3D 形状可以从假定的先验分布中通过逐点采样来生成,并用目标网络转换。因为超网络基于自动编码器,被训练来重建3D 形状,目标网络的权重可以视为 3D 表面的参数化形状,而不像其他的方法返回点云的标准表示。所提出的架构允许以生成的方式找到基于网格的 3D 对象表示。其实这篇 ICML20 的文章的想法感觉和 ICLR20 的文章 Higher-Order Function Networks for Learning Composable 3D ObjectRepresentations 的想法有些相似,都是通过一个网络学习目标网络的参数,从而将单位球上的点映射到3D 物体表面,这篇文章进一步研究了网格输出的情况。现有的问题点云上的很多工作受到 PointNet 的影响,但是一个问题是模型的输出大小不可变。最近引入的一系列方法通过依赖生成模型来解决此问题,该模型返回对象表面上点的概率分布,而不是精确的点集。遵循此路径的最成功方法之一的是 PointFlow 和 ConditionedInvertible Flow。基于流的模型的主要局限性在于它们繁琐的训练过程,对变换的雅可比行列式有较强约束,不能在 3D 球上训练基于流的模型,输入和输出的维数要求相同,有大量参数需要微调等问题。解决方法本文提出通过引入一种基于 3dAAE 的方法并通过超网络对其进行扩展的新颖架构来解决流模型的上述缺点,输出生成模型(目标网络)的权重。使用目标网络来创建任意数量的点,而不是固定数量点云。图2显示了与基线方法相比我们的方法的大体情况。与基于流的模型相反,我们称为 HyperCloud 的方法在概念上更简单通用,因为它可以适应任何PointNet 模型以生成连续的输出表示形式。此外,它更容易训练,因为它需要较少数量的超参数,并且对输入概率分布及其雅可比行列式没有任何约束。
最终,如下图3所示,我们的方法返回了3D 对象的连续网格表示。
这项工作的贡献:1. 介绍了一种新颖而通用的方法建立不同数量的点云表示,同时重建不同形式不同规格的输出。2. 我们引入的超网络训练的目标网络,通过映射来实现具有生成能力的3D模型的概率分布。3. 我们的方法提供了连续的网格,其可用于渲染 3D对象的表面。超网络超网络定义为产生目标网络权重的神经网络模型,目标网络用于解决特定任务。旨在减少可训练参数的数量通过设计数量较少的超网络参数。超网络也可以用于图像到 3D 的函数表示。在这种概念下,映射 I:R2→R3 是在给定平面上的任意坐标的一个点 (x,y) 返回三维单位空间上 [0,1]3 中的点,RGB 的值表示图像 (x,y) 上的颜色。点云表示受以上方法的启发,我们提出了 HyperCloud 模型,它使用超网络来输出生成网络的权重来创建3D点云,而不是直接通过解码器生成。更具体地说,目标网络将 3D 对象的表面参数化作为函数 S:R3→R3,它从先验分布中给定一个点 (x,y,z) ,返回对象表面上的点。与其产生 3D 点云,我们想产生许多神经网络(每个对象都有一个不同的神经网络)来模拟物体的表面对象。更确切地说,我们对函数 θTθ:R3→R3(具有权重θθ ),它从先验分布 P 中提取元素并将其转移到对象的表面上。在我们的工作中,使用了在3D 单位球,并在对象上均匀分布。这个分配的选择允许创建连续的网格表示。因此,我们可以根据需要生成任意数量的点(可以从单位球上均匀采样)。有了目标网络,我们可以训练我们的点云模型,输出包含不同数量的点的形状。连续网格表示此外,我们可以生成对象的连续网格表示。球中的所有元素均已转换变成 3D 对象。现在我们可以得到无需辅助网格渲染过程的网格。它通过简单地神经网络,映射球形网格的顶点,如图3所示。最终我们获得了3D对象的高质量网格。目标网络并没有直接训练。我们使用一个超网络 θHϕ:R3⊃X→θ ,即点云 X⊂R3将权重 θθ 返回给对应的目标网络 θTθ 。因此,点云 X 有:T((x,y,x);θ)=T((x,y,x);Hϕ(X))要使用上述模型,我们需要训练超网络的权重 ϕ 。为此,我们在训练的点云集上最小化点云之间的距离,例如 CD 或 EMD。更准确地说,我们取一个输入点云 X⊂R3 并将其传递给 Hϕ 。超网络将权重 θθ 返回给目标网络 θTθ 。接下来,将输入点云 X 与目标网络 Tθ 的输出进行比较(我们从先前的分布中采样正确数量的点,并通过目标网络进行传输)。作为超网络,我们使用基于 PointNet 架构的置换不变编码器和改进的解码器来产生权重而不是点。Tθ 的结构包括:编码器 (E) 和解码器 (D) (全连接网络),编码器 (E) 是将数据传输到低维潜在空间 Z∈RD的类似 PointNet 的网络,而解码器 (D) (全连接网络)会将潜在空间传输到目标网络的权重向量。在我们的框架中,超网络 Tθ(X)代表我们的自编码器结构D(EX) 。假设 Tθ(X)=D(EX) ,我们通过最小化损失函数来训练模型。损失函数为:cost(X;E,D)=Err(X;D(EX))+Reg(EX,P)Err 是 CD 或 EMD 距离。Reg 强制潜在空间的分布和某些已知或可训练的分布 P 相近.观察到,当只训练一个神经模型(超网络),这使在测试时我们能够产生各种各样的函数。因此我们期望相似点云的目标网络将相似。我们使用超网络进行光滑插值。实验作者除了考虑 JS 散度、Coverage, MinimumMatching 以外,还考虑了 1-nearest Neighbor Accuracy。1-最近邻居精度(1-NNA)是用于评估GAN的测试过程特征。我们考虑两个集合:由生成的点云组成的集合 Sg 和测试(参考)点云 Sr,我们选择一些从 Sg 生成的点云 X 并找到相应除 X 点云以外的两点云的的最近点云 $S_-X} = S_r \cup S_g-{X} 。是分类器:S_{g\right|+\left|S_r}\right $对于每个样本,1-NN分类器根据最接近样本的标签(从 Sr 或 Sg中)分类。最佳的情况为分类器无法区分真实点云和生成点云,也就是此时表示该分类的值接近50%。生成点云我们将结果与现有解决方案进行比较:raw-GAN(Achlioptas等人,2017),latent-GAN(Achlioptas等人,2017),PC-GAN(Li等人,2018)和 PointFlow(Yang等人,2019)。我们使用ShapeNet数据集中三个类别的点云训练每个模型:飞机,椅子和汽车。我们遵循(Yang等人,2019)中提供的确切评估流程。结果显示在表1中。
HyperNetwork 获得与使用其他模型的模型可比的结果,EMD 重建损失的优势在于采样任意数量的点。该模型的表现优于不使用 EMD 进行重构的 PointFlow,并且其不能直接生成3D网格。生成3D网格与参考的方法相比,我们模型的主要优势是无需任何后处理即可生成3D点云和网格。在图5中,我们展示了点云以及同一模型生成的网格表示。由于在3D球上使用均匀分布,我们可以轻松地构造网格。球中的所有元素均已转换变成3D对象。因此,单位球体将转换为数据集的边界。如前所述我们无需二次网格划分就可以生成网格。它通过目标函数将 3D 单位球传递成三角形的形式,如图3。
为了评估网格表示的质量,我们提出以下实验。我们没有从假设的先验分布中采样点,而是对其从给定曲面进行采样。在下一个实验中,我们计算生成点云的标准质量度量。因为表1中除 PointFlow 以外的所有模型仅能在固定点云数量上处理,因此我们的结果只与 PointFlow 进行比较。如上所述,我们可以使用PointFlow模型以类似的方式通过在球面上进行三角剖分来为目标网络供以生成网格表示。在我们的实验中,与假设检验所使用的标准一致,我们对于 3D 高斯分布使用95%,98%和99%置信度球,如表所示2。如我们所见,默认的高斯先验不适用于生成边界的连续表示。此外,由于 flow 方法将对数似然性用作损失函数,因此看起来正常的正态分布(按照我们的方法)自然地交换为球上的均匀分布将不起作用。插值在我们的模型中,我们可以构造两种类型 插值。由于我们有两个不同的先验分布:超网络架构中的高斯分布(潜空间的自编码器),在目标网络中对单位球面上的均匀分布(参见图2)。首先,我们可以取两个 3D 对象并获得它们之间的平滑过渡,如图4。对于每个点云,我们可以生成网格表示,因此我们也可以产生插值网格。
由于使用了超网络架构,我们可以针对一个对象(单个3D点上的点云分布)进行分析。一种可能的应用是在目标网络,而不是潜空间的经典的自编码器,如图6。通过采样两个在均匀球及其插值上,我们可以构造在对象表面上的点之间的插值。
总结本文还是一篇不错的工作,在这项工作中,提出了一种新颖的方法,代表通过超网络训练的目标网络参数的3D对象点云,作为生成模型。更具体地说,不仅可以在输入点云时构建其大小可变的表示模型,也可以在输出时不受约束。与现有方法相反,我们的方法不受 flow 架构的强制约束。最后,提出的方法提供了一个通用框架,该框架允许适应任何 PointNet 模型以构建输出向量的连续表示。本文仅做学术分享,如有侵权,请联系删文。