A survey of deep learning-based 3D shape generation
1. Abstract
In this survey, we comprehensively review works on deep-learning-based 3D shape generation by classifying and discussing them in terms of the underlying shape representation and the architecture of the shape generator.
在这篇综述中,我们从底层形状表示和形状生成器的体系结构两个方面对基于深度学习的3D形状生成工作进行了分类和讨论。
2. Geometry and learning background
2.1 Shape representations for deep learning
a. Voxel representation
b. Point cloud representation
c. Mesh representation
d. Implicit representation
e. Structure-based representation
2.2 Neural networks for data generation
2.2.1 Types
From a 3D generation perspective, we can divide standard neural networks into two differen types. The encoder–decoder type, mainly like an autoencoder [153], is usually used in a supervised learning task such as generating 3D shapes from inputs in forms such as images or incomplete point clouds. The generative model type includes popular models for generation tasks such as GANs [154] and VAEs [155]. Moreover, some models share elements of both of the above types.
- Encoder-decoder type
主要类似于自编码器,通常用于监督学习任务,如从图像或不完整点云等形式的输入生成3D形状。如从图像或不完整点云等形式的输入生成3D形状。 - Generative model
生成式模型类型包括GANs和VAEs等用于生成任务的流行模型。
下面将对两种类型的模型进行较为详细地阐述
2.2.2 Encoder-decoder
编码器-解码器网络可以分为两个部分,正如名称所暗示的那样。首先,编码器通常将输入数据编码为潜在空间中的向量。作为生成器,以反卷积或全连接层结尾的解码器常用于形状生成或重建。这种类型的生成器可以在训练有素的自编码器中实现良好的性能。大多数有监督的生成任务,如从单幅图像进行三维重建,都使用这种类型的生成器。
2.2.3 Generative models
在种类繁多的生成模型中,GANs、VAEs和基于流的模型是最常用的三维形状生成模型。
3 Learning to generate 3D shapes
In this section, we comprehensively review use of deep learning to generate 3D shapes. We first categorize existing works based on the 3D shape representation employed, including voxels (Section 3.1), point clouds (Section 3.2), meshes (Section 3.3), implicit representations (Section 3.4), and structure-based representations (Section 3.5). Then we make further classifications depending on the type of generator used for 3D shape generation. A brief summary of generator types and works reviewed in this survey are listed in Table 1. For each representation, we also provide an overview timeline of representative methods.
在本节中,我们全面回顾了使用深度学习生成3D形状的方法。 我们首先根据所使用的三维形状表示对现有工作进行分类,包括体素( 3.1节)、点云( 3.2节)、网格( 3.3节)、隐式表示( 3.4节)和基于结构的表示( 3.5节)。然后我们根据用于3D形状生成的生成器的类型做了进一步的分类。表1列出了本次调查中所回顾的生成器类型和工作的简要总结。对于每一种表示,我们还提供了代表性方法的概览时间线。
本节以五种图形表示方式为出发点,每个表示方式都包含Encoder-decoder、Generative models两种机器学习模型。
3.1 Voxel-based shape generation
图3给出的是基于体素表示的形状生成方法的发展时间线。
3.1.1 Basics
体素表示采用规则的格子划分三维空间:每个体素的尺寸越小,体素所表达的形状细节越精细。网格表示可以通过移动立方体等方法从体素表示中提取。体素表示最显著的优点是其规则的结构。由于体素是像素的直接扩展,许多在2D图像上使用的深度学习方法可以直接扩展到3D体素形状。
3.1.2 Encoder–decoder
TL-Net
TL-Net是一种基于图像先验的三维形状生成方式,如上图所示,TL-Net可分为T-Net和L-Net两部分。
T-Net 是一种基于 3D 卷积的自动编码器,它学习渲染图像的 3D 形状嵌入特征和 2D 嵌入特征。
L-Net使用2D编码器和3D解码器来推断输入图像的输出。
欧氏距离损失被应用于从相应的3D形状和2D图像对齐嵌入向量。
此外,sigmoid交叉熵损失被应用于重建监督。
3D-R2N2
3D循环重建神经网络(3D-R2N2),是另一种常见的用于生成3D体素的基准方法,它在2D-CNN编码器和基于3D反卷积的解码器之间应用了标准的长短期记忆(LSTM)机制作为3D卷积LSTM。
MarrNet
MarrNet通过2.5 D草图将输入解耦为法线、深度和轮廓。然后使用自动编码器从上述信息中估计形状。
.....................
.....................
Mem3D
Mem3D杨等人研究了如何使用形状先验和图像中的隐藏信息来帮助生成更好的 3D 形状。 提出了一种称为 Mem3D 的稳健方法,该方法可以从遮挡或嘈杂的背景图像生成 3D 形状。 通过以“图像-体素”对结构化学习的形状先验,Mem3D 不仅包括传统图像编码器和 3D 体积解码器,还包括记忆网络和 LSTM 形状编码器。这个记忆网络帮助检索与输入图像最接近的3D卷,并将其发送给LSTM形状编码器。形状编码器利用LSTM机制将形状转换为具有形状先验的向量。这样一个与图像特征串联的先验向量可以提供关于图像中看不见的部分的隐藏信息,以改善生成的结果。
3.1.3 Generative models
AutoSDF
AutoSDF采用自回归模型,VQ-VAE学习图像的量化和紧凑的潜在表示,Esser等人从离散的VQ-VAE学习自回归生成,AutoSDF将Esser等人的方法扩展到三维形状领域,但具有一般的非序列自回归先验。该方法可以分别通过ResNet或BERT作为编码器,从图像和文本作为条件生成形状。
自回归模型(Autoregressive Model)是一种时间序列预测模型,它基于过去的观测值来预测未来的观测值。在自回归模型中,当前时刻的观测值被认为是过去时刻观测值的函数。
自回归模型的核心思想是利用时间序列数据中的自身依赖性。它假设当前观测值与之前的一些观测值之间存在某种关联关系,通过建立这种关系来进行预测。一般来说,自回归模型可以描述为如下形式的方程:
其中,表示时间点处的观测值,表示前面个时刻的观测值,(f)是一个函数,表示观测值之间的关系,是一个误差项。
具体而言,自回归模型可以有不同的形式,如一阶自回归模型(AR(1)),二阶自回归模型(AR(2)),或更高阶的自回归模型。在建模过程中,常常使用最小二乘法或最大似然估计等方法来估计模型的参数。
自回归模型在时间序列预测、金融市场分析、天气预测等领域具有广泛应用。它能够利用过去的观测值来捕捉数据的动态特征,提供对未来观测值的预测。然而,自回归模型也有一些限制,例如对数据的平稳性和线性关系的假设,对较长时间跨度的预测可能存在较大的误差等。因此,在实际应用中,需要根据具体情况选择合适的模型和方法。
3.1.4 Summary
在直接扩展图像生成的基础上,利用体素进行形状生成,使研究者受益于体素的规则结构。基于体素的形状生成器在整体结构和损失函数方面与基于像素的图像生成器类似。规则的表示方式使得生成器很容易将形状输出为三维体网格数据。为了生成最终结果,大多数工作使用了类似于3D CNN网络中的上采样和上卷积等操作。然而,由于维度的增加,这类形状生成器需要大量的内存,因此生成高质量的3D形状具有挑战性。如何降低内存成本仍然是一个重要的研究问题。
3.2 Point-cloud-based shape generation
图8给出的是基于点云表示的形状生成方法的发展时间线。
3.2.1 Basics
利用点云进行三维形状生成的优点在于其几何图元的简洁性、整体结构的简洁性以及三维获取的便捷性。主要弊端在于点云缺乏规则的结构,因此无法轻易地拟合到利用空间规律性的卷积网络架构中。
3.2.2 Encoder–decoder
Folding Net
FoldingNet是一种基于深度学习的三维形状生成方法,用于将点云数据转换为三维网格表示。它的设计灵感源于纸张折叠的过程,通过学习几何变换参数来实现形状的折叠和展开。
FoldingNet的核心思想是使用卷积神经网络(CNN)来学习点云数据的局部和全局特征,并通过学习可学习的变换参数来实现形状的折叠。它由两个主要部分组成:折叠网络(Folding Network)和展开网络(Unfolding Network)。
在折叠网络中,点云数据首先经过一系列的卷积和池化操作,提取局部和全局特征。然后,通过学习的变换参数对点云进行形状的折叠,将点云转换为三维网格表示。这个过程类似于将纸张进行折叠的过程,通过变换参数将点云的位置和形状进行调整。
在展开网络中,折叠后的三维网格通过一系列的卷积和解卷积操作,逐步还原为点云数据。展开网络的目标是通过学习逆变换参数,将折叠后的形状重新展开成原始的点云形式。
FoldingNet的优点在于能够处理不完整和噪声的点云数据,并生成高质量的三维网格表示。它可以用于3D形状重建、形状编辑和形状生成等任务。通过学习折叠和展开的变换参数,FoldingNet能够从点云数据中捕捉形状的局部和全局特征,并将其转换为可操作和可控的三维网格表示。这使得它在计算机图形学、计算机辅助设计和虚拟现实等领域具有广泛的应用潜力。
3.2.3 Generative models
WarpingGAN
WarpingGAN是一种基于生成对抗网络(GAN)的图像编辑方法,用于实现图像的形状变换和编辑。它通过学习变形映射函数来实现图像的形状变换,从而能够将图像中的对象进行形变、旋转、扭曲等操作。
WarpingGAN的核心思想是通过生成器网络和判别器网络的协同训练来学习变形映射函数。生成器网络负责生成形状变换后的图像,而判别器网络则负责区分生成的图像是否真实。在训练过程中,生成器网络通过最小化与真实图像的差异来优化变形映射函数,而判别器网络则通过最大化生成图像的真实性来提供反馈信号。
WarpingGAN的输入通常是一对图像,包括源图像和目标图像。通过学习变形映射函数,WarpingGAN能够将源图像中的形状变换为目标图像中的形状,实现形状的对应和变换。例如,可以将一个人的脸部形状从一张图像转换为另一张图像,实现面部表情的变化或风格的迁移。
WarpingGAN的优点在于能够实现精细的形状变换和编辑,而不仅仅是简单的像素级操作。它可以处理复杂的图像变形和形状变换任务,并生成具有高质量和真实感的结果。此外,WarpingGAN还具有较强的泛化能力,可以在不同场景下适应不同的形状变换需求。
WarpingGAN在计算机视觉、图像编辑和计算机图形学等领域具有广泛的应用潜力。它为图像形状的变换和编辑提供了一种有效的方法,可以用于人脸表情合成、虚拟形象生成、风格迁移等应用场景。
3.2.4 Summary
在经典的点云生成模型中,生成器很可能是基于点网络的解码器架构,往往会生成固定序列的三维点坐标。倒角距离和动土距离是评价点云差异最常用的度量指标。得益于
PointNet和PointNet++,全连接层和反卷积层是生成器产生无组织点序列最常用的方法。
3.3 Mesh-based shape generation
图13给出的是基于网格表示的形状生成方法的发展时间线。
3.3.1 Basics
网格作为计算机图形学中最流行的三维形状表示,不仅包含三维表面几何信息,还包含拓扑信息。
3.3.2 Encoder–decoder
3.3.3 Generative models
TM-Net
TM-Net的核心思想是将纹理信息和三维形状信息结合起来,通过卷积神经网络(CNN)进行端到端的训练,以生成具有纹理的三维形状。它包括两个主要的组件:纹理编码器和网格解码器。
纹理编码器负责将输入的图像纹理转化为低维的纹理特征表示。它采用卷积层和池化层来提取图像的纹理特征,并通过全连接层将这些特征映射到一个低维的纹理编码向量。
网格解码器接收纹理编码器生成的纹理编码向量,并将其解码成三维形状。它通过反卷积层和上采样操作逐渐生成高分辨率的三维网格,并通过输出层产生最终的三维形状表示。
TM-Net的训练过程是端到端的,通过最小化生成的三维形状与真实形状之间的距离来优化模型参数。这可以通过使用欧氏距离或其他形状相似性度量来实现。
TM-Net的优点在于能够实现高质量的纹理映射和三维形状生成。它能够从输入的纹理图像中学习纹理特征,并将其映射到生成的三维形状上,使得生成的形状具有逼真的纹理。此外,TM-Net还能够处理具有不同拓扑结构的三维形状,并生成多样性和个性化的结果。
3.3.4 Summary
网格是计算机图形学中最流行的三维形状表示方法,其优点是具有网格连通性所隐含的额外拓扑信息。然而,这也是基于深度学习的网格生成任务中的主要缺陷。如何在克服网格拓扑约束的同时不引起形状生成过程中的几何和拓扑错误是需要解决的关键问题。相比之下,体素、点云、隐函数等其他形状表示在形状拓扑方面更加灵活,为形状生成提供了更多的自由度。
3.4 Implicit-representation-based shape generation
图15为基于隐式表示的形状生成方法的发展时间线。
3.4.1 Basics
虽然隐式表示不能显式地显示底层形状,但Marching Cubes算法提供了一种将隐式表示转换为显式表示的通用方法。
同时,精确的几何表示和灵活的拓扑结构在很大程度上有利于三维形状的生成。
3.4.2 Encoder–decoder
IMLSNet
IMLSNet的核心思想是基于Moving Least Squares(MLS)方法,将其与深度学习相结合。MLS是一种经典的数据拟合方法,用于从离散的点样本中重建曲面或曲线。IMLSNet利用MLS方法将点云数据转换为连续的隐式函数,然后使用深度学习模型来学习和优化隐式函数的参数。
IMLSNet的网络结构通常由编码器和解码器组成。编码器接收输入的点云数据,并通过一系列卷积和全连接层将其转换为低维特征表示。解码器接收编码器的特征表示,并使用反卷积和上采样操作逐步重建三维形状。在解码器中,隐式函数的参数通过最小二乘法和梯度下降等方法进行优化,以最大程度地拟合输入点云数据。
IMLSNet的优点在于能够从离散的点云数据中重建出平滑而精细的三维形状。它可以处理复杂的形状,并能够从输入点云数据中恢复出细节信息。IMLSNet还具有较好的泛化能力,可以适应不同形状和拓扑结构的三维物体。
D2IM-Net
D2IM-Net用于从二维图像生成形状,该隐式函数可以解耦细节和全局特征。基于CNN的编码器从输入图像中提取全局和局部特征。当全局特征被输入到一个解码器中与查询点一起生成一个粗形状作为SDF时,另一个解码器为局部特征生成两个位移图(后部和前部),用于在粗形状上生成细节。
3.4.3 Generative models
shapeFormer
Yan等人提出了ShapeFormer,这是一种基于Transformer架构的方法,通过来自编码器的量化特征序列来建模条件分布。
CLIP-Forge
CLIP-Forge它由三部分组成。首先,训练一个由体素编码器和隐式解码器组成的自编码器。其次,使用预训练的CLIP图像编码器训练一个包含图像潜在信息和上述自编码器的条件归一化流模型。在最后的推理部分,通过预训练的CLIP文本编码器对文本输入进行编码,并输入到第二部分训练好的流模型中。流模型的可逆性使其容易产生相应的潜在信息,这些信息可以通过第一部分训练的解码器解码成3D形状。需要注意的是,编码器和解码器是可互换的,以适应不同的输出表示,比如点云。
3.4.4 Summary
由于其连续且有规律的定义,隐式表示与深度学习具有很好的兼容性。在三维形状生成任务中,我们也可以在隐藏空间中进行连续平滑的插值。可以发现,训练一个基于隐式表示的编码器-解码器结构往往会得到一个平滑且连续的潜在空间。虽然隐式表示并不是直观的(无法显式可视化和修改),需要额外的工作将其转换为显式表示,但使用隐式表示生成的三维形状仍然是灵活的且质量较高。
3.5 Structure-based shape generation
图18为基于结构化表示的形状生成方法的发展时间线。
3.5.1 Basics
基于结构的模型由于其独特的特性,最近在3D形状生成方面取得了更高的性能和质量。形状基元常用于基于结构的表示,通过使用简单的基元(如方向包围盒)来描述三维形状。尽管这种表示方法对细节关注较少,但对全局形状结构的关注较多。
3.5.2 Encoder–decoder
PQ-Net
PQ-Net(Pose Quality Network)是一种用于姿态估计的深度学习模型。它旨在解决三维姿态估计问题,即从二维图像中推断出物体的三维旋转和平移信息。
PQ-Net的设计基于卷积神经网络(CNN)和全连接层组成的深度神经网络。它的输入是一个包含物体图像的二维图像,经过卷积和池化等操作,提取出图像的特征表示。然后,这些特征通过全连接层进行处理,以输出物体的姿态信息。
PQ-Net的主要创新点在于引入了姿态质量评估模块。除了估计物体的姿态,PQ-Net还能够估计姿态的质量或准确度。通过学习姿态质量评估,PQ-Net可以对姿态估计的可靠性进行量化,提供更准确和可信的姿态结果。
PQ-Net的训练过程通常需要标注的姿态数据集作为监督信号。通过最小化姿态估计误差和姿态质量评估误差之间的损失函数,PQ-Net可以学习到有效的姿态估计和质量评估能力。
3.5.3 Generative models
DSG-Net
DSG-Net使用VAEs作为其生成器来限制插值空间,并在几何和结构生成和解耦方面提供了出色的结果。DSG-NET基于循环解缠机制,将形状分解成两个不同的解耦潜空间。它可以在控制结构和几何形状的同时合成形状。
3.5.4 Summary
基于结构的方法由于使用图元来建模详细的形状结构,通常可以生成质量良好的3D形状。但是,成本也是相当可观的。首先,形状分割通常需要额外的标注,这使得形状分割对数据集内部的形状噪声以及数据集之间的形状变化非常敏感。而且,一些方法在组成最终形状之前使用生成式模型生成零件,往往会出现生成零件质量不高的问题。尽管一些方法在细粒度层次上利用形状变形,但它们只能处理装配过程中的全局拓扑结构,而不能处理基元层次的拓扑结构。因此,生成的形状只能满足全局结构要求,而缺乏对零件几何形状的精细控制。最后,它们所能处理的形状基元数量往往受到网络有限参数的限制,从而影响生成形状的复杂度。
4. Datasets for 3D generation
Here we summarise widely-used datasets for deep 3D shape generation; we also include self-contained image data which can be used for image-based 3D shape generation. A summary of dataset statistics can be found in Table 2.
在这里,我们总结了用于深度3D形状生成的广泛使用的数据集;我们还包括自包含的图像数据,可用于基于图像的3D形状生成。数据集统计汇总见表2。
5. Discussion
After the review of existing work on deep-learningbased 3D shape generation, in this section, we discuss several potential directions that hopefully can inspire future work in this area.
在本节中,我们讨论了几个潜在的方向,希望能对未来这方面的工作有所启发。
5.1 Multi-representational learning
不同的3D形状生成表示方法包括体素、点云、网格、隐式函数和基于结构的表示。然而,每种表示方法都有其局限性,影响了几何细节、形状结构或限制了整体生成网络的设计总而言之,发挥不同表征的优势,弥补不同表征的不足,将是一个值得探索的方向。
5.2 Higher quality 3D shape generation
现有的工作虽然生成了具有良好特性的3D形状,但仍然缺乏生成几何细节的能力。
we believe there is still a need for more research on how to better control the quality of generated shapes and how to enable the generator to learn more precise details while capturing overall shape features.
我们认为,如何更好地控制生成形状的质量,以及如何使生成器在捕获整体形状特征的同时学习更精确的细节,仍然需要更多的研究。
5.3 Larger 3D scene generation
5.4 3D backbone network design
3D shape generation benefited from the development of backbone networks for different shape representations and will also inspire exploration of more generalized and effective 3D backbone network design.
3D形状生成得益于针对不同形状表示的骨干网络的发展,也将启发探索更通用和有效的3D骨干网络设计。