备注好友:方向-学校/公司-姓名/昵称
【AIGC 先锋科技】交流群
Image
3D GAN反演(3D GAN inversion)将单张图像投影到预训练3D GAN的隐空间中,以实现单张图像的新型视图合成(single-shot novel view synthesis),该任务要求可见区域具有高保真度,而被遮挡区域需具备真实感与多视角一致性。
然而,现有方法主要关注可见区域的重建,而被遮挡区域的生成仅依赖于3D GAN的生成先验。因此,由于低比特率隐码导致的信息丢失,生成的被遮挡区域质量通常较差。
为解决这一问题,作者提出一种“投影-修复”(warping-and-inpainting)策略,将图像修复(image inpainting)引入3D GAN反演过程,并提出一种新型3D GAN反演方法——WarpGAN。具体而言,作者首先利用3D GAN反演编码器将单视角图像映射为一个隐码,作为3D GAN的输入;
随后,基于3D GAN生成的深度图对图像进行视图投影(warping)至新视角;最后,作者设计了一种新型网络SVINet,该网络利用对称性先验(symmetry prior)以及同一隐码下的多视角图像对应关系,对投影后的图像中被遮挡区域进行修复。定量与定性实验表明,08178在多个指标上均持续优于现有最先进方法。
1 引言
GANs [13] 在无条件图像合成方面取得了显著进展。特别是 StyleGAN [20, 21] 在高分辨率图像上实现了逼真的视觉效果。一些扩展工作 [15, 31, 36] 利用潜在空间(即
空间)来控制语义属性(例如表情和年龄)。然而,这些 2D GANs 在生成图像的几何特性控制方面表现较差,导致在视角变换时出现多视角不一致的问题。
近年来,随着神经辐射场(Neural Radiance Fields, NeRF)[27] 在新视角合成(Novel View Synthesis, NVS)领域的快速发展,多种3D生成对抗网络(3D GANs)[2, 5, 6, 14, 29, 39, 41] 被提出,将 NeRF 与基于风格的生成相结合,在生成高度逼真的图像方面取得了显著成功。基于此,3D GAN 反演方法将单张图像投影到预训练的 3D GAN 生成器的隐空间中,获得一个隐码(latent code)。因此,通过改变相机位姿可以调整输入图像的视角,而通过修改隐码则可轻松编辑图像属性。与 2D GAN 反演不同,3D GAN 反演旨在生成既保持输入视角忠实性,又具备高质量新视角的图像。
一方面,现有的3D GAN反演方法仅依赖3D GAN的生成先验来生成新视角中的遮挡区域(即输入图像中不可见的区域),这在复杂场景下导致遮挡区域的重建不够准确。另一方面,针对3D场景生成,一些近期方法采用了一种“扭曲-修复”(warping-and-inpainting)策略。它们[11, 30, 35]首先预测给定图像的深度图,然后基于深度图建立对应关系,将输入图像扭曲至新的相机视角,随后利用2D修复网络(inpainting network)合成扭曲图像中高保真的遮挡区域。
为解决现有3D GAN反演方法在遮挡区域重建能力较差的问题,受3D场景生成中“形变-修复(warping-and-inpainting)”策略成功的启发,作者引入了图像修复(image inpainting)机制到3D GAN反演中。然而,3D GAN反演通常基于单视图数据集进行训练,而上述3D场景生成方法通常需要多视图数据集进行训练。这导致了两个问题:(1) 由于缺乏3D信息(即真实的新视角图像)来指导修复过程,造成多视图不一致性;(2) 在模型训练过程中,无法获得新视角的真实图像作为监督信号以计算损失。
Image
在本文中,作者提出了一种新颖的3D GAN反演方法——WarpGAN,该方法将形变与修复(warping-and-inpainting) 策略融入3D GAN反演过程。具体而言,作者首先训练一个3D GAN反演编码器,将输入图像映射到潜在代码
(位于3D GAN生成器的潜在空间
中)。通过将
输入3D GAN,作者计算输入图像的深度图,用于几何形变,并对形变后图像中的遮挡区域进行初步填充。随后,利用对称性先验 [43, 45] 以及3D GAN中相同潜在代码对应的多视角图像对应关系,作者训练了一个基于风格的新型视角修复网络(SVINet)。该网络能够从原始视角将形变图像中遮挡区域的内容修复至新视角。因此,作者能够合成具有多视角一致性的合理新视角图像。为解决真实图像(ground-truth)不可用的问题,作者将新视角中的图像重新形变回原始视角,并输入至SVINet中。由此,可在修复结果与原始输入图像之间计算损失。图1展示了WarpGAN生成的一些视觉示例。
综上所述,本文的贡献如下:
• 作者提出了一种新颖的3D GAN反演方法——WarpGAN,该方法成功地将变形与修复(warping-and-inpainting)策略引入3D GAN反演,显著提升了新视角合成中被遮挡区域的质量。
• 作者引入了一种基于风格的新型视角修复网络SVINet,充分利用对称性先验以及由3D GAN反演生成的相同潜在代码,在新视角的变形图像中实现了多视角一致性的遮挡区域修复。
• 作者进行了大量实验以验证WarpGAN的优越性,充分展示了变形与修复策略在3D GAN反演中的巨大潜力。
2 相关工作
3D感知GAN。近年来,3D感知GAN [2, 5, 6, 14, 29, 39, 41] 有效地结合了StyleGAN [20, 21] 的高质量2D图像生成能力与NeRF [27] 的多视角合成能力,推动了从2D到3D的高质量图像合成,并实现了多视角图像生成。这些方法通常采用两阶段生成流程:首先渲染低分辨率的原始图像和特征图,随后通过2D CNN层进行上采样以获得高分辨率图像。这种策略确保了多视角之间的一致性几何结构,并实现了出色的逼真度。在本文中,作者采用EG3D [5] 作为作者的3D感知GAN架构,该架构引入了一种混合显式-隐式3D表示(称为三平面,tri-plane)。
GAN反演。尽管近期的2D GAN反演方法[42]在图像编辑性能上取得了令人瞩目的成果,但在编辑3D属性(例如 Head 姿态)时,由于预训练生成器不具备3D感知能力,仍会面临严重的闪烁问题以及不可避免的多视角不一致性。因此,3D GAN反演被提出,以在渲染新视角时保持多视角的一致性。然而,若直接将2D方法迁移至3D而未能有效融入3D信息,必然导致几何结构坍塌和伪影问题。
与2D GAN反演类似,3D GAN反演可分为基于优化的方法和基于编码器的方法。一些基于优化的方法 [23, 43, 45] 从不同视角生成多个伪图像以促进优化过程。例如,HFGI3D [43] 利用可见性分析实现伪多视角优化;SPI [45] 利用面部对称性先验合成伪多视角图像;Pose Opt. [23] 同时优化相机位姿和隐变量编码。此外,In-N-Out [44] 优化一个三平面(triplane)用于分布外物体重建,并采用复合体渲染(composite volume rendering)。基于编码器的方法则将输入图像投影到3D GAN生成器的隐空间中,随后利用3D GAN的生成能力合成新视角图像,同时充分利用输入图像来重建新视角图像中可见区域。例如,GOAE [46] 计算输入图像与重建图像之间的残差,以补充生成器的
空间,并引入一种遮挡感知的混合三平面(occlusion-aware mix tri-plane)用于新视角图像生成;Triplanenet [3] 根据残差计算三平面的偏移量,并提出一种面部对称性先验损失;Dual Encoder [4] 采用两个编码器(一个用于可见区域,另一个用于遮挡区域)进行反演,并引入一种遮挡感知的三平面判别器,以提升重建结果的保真度与真实感。
08178与现有依赖于3D GAN生成先验来生成被遮挡区域的方法有本质区别。作者提出了一种新颖的图像修复(inpainting)网络来填充被遮挡区域,从而促进丰富细节的生成。
基于深度的图像扭曲用于单次新视角合成。一些3D GAN反演方法 [23, 43, 45] 使用基于深度的扭曲来合成伪多视角图像以进行优化。SPI [45] 将输入图像扭曲到相邻视角,以提供伪监督信号。Pose Opt. [23] 将图像从标准视角扭曲到输入视角,以辅助训练。HFGI3D [43] 利用3D GAN将输入视角扭曲后的图像中被遮挡的区域填充,生成多个伪新视角图像。然而,这些方法仅依赖3D GAN来生成遮挡区域,在复杂场景下难以获得令人满意的遮挡区域重建效果。
最近,一些方法在单次拍摄的神经视图合成(NVS)中采用“形变-修复”策略来处理通用场景 [11, 30, 35]。这些方法首先预测输入图像的深度图,然后利用该深度图将输入图像形变到新视角,最后对新视角中的遮挡区域进行修复。该方法能够在有效保留输入图像信息的同时,借助2D修复网络强大的修复能力,为遮挡区域生成合理的内容。受此策略启发,作者通过有效利用对称先验和输入图像的隐空间编码(latent code),将2D修复网络引入3D GAN反演(3D GAN inversion)中。
3 方法论
3.1 概述
Image
如图2所示,作者的WarpGAN由一个3D GAN反演网络(包括一个3D GAN反演编码器和一个3D感知GAN)以及一个基于风格的新型视图修复网络(SVINet)组成。首先,作者利用3D GAN反演编码器
将输入图像
投影到3D GAN生成器的潜在空间
中,得到潜在码
。基于此,作者使用一个渲染解码器生成输入图像
的深度图
和新型视图图像
。在深度图
的引导下,作者将原始视图中的图像
进行几何扭曲,得到扭曲后的图像
,并识别出新型视图中的遮挡区域
,从而实现对遮挡区域的修复。
目标视图(target view),即,
其中
表示相机
与新视角相机
之间的相对位姿,
为相机内参矩阵,warp
为几何映射函数 [28, 35],该函数将输入图像
的像素及其对应的深度图
逆投影至3D空间,并根据
和
重新投影到目标视角。
然后,作者使用
填充
的遮挡区域,作为遮挡区域的初始结果
,可表示为
随后,初始结果
被输入到 SVINet 中进行进一步修复,得到 WarpGAN 的最终输出
。值得注意的是,作者在修复过程中采用感知对称性的特征提取方法,并利用
对修复网络的卷积层进行调制。此外,作者还构建了一种基于风格的损失函数,以确保新视角生成图像与原始视角图像之间的一致性。
3.2 3D GAN Inversion Encoder
与现有的基于编码器的3D GAN反演方法类似,作者的3D GAN反演编码器
将输入图像
与相机位姿
投影到预训练3D GAN的隐空间
中,得到隐码
。随后,作者利用3D GAN的生成器
生成三平面表示,并通过渲染解码器
在指定相机位姿下渲染图像。基于上述过程,通过将相机位姿设为
,作者执行图像重建
。以此方式,作者获得对应于新相机位姿
的新视角图像
。根据NeRF的原理,在渲染过程中,作者将采样点的颜色替换为该点到相机的距离,从而得到深度图
和
。更多实现细节见附录。
受GOAE [46]的启发,作者采用金字塔结构的Swin-Transformer [26]作为编码器的Backbone,并在此基础上,利用不同尺度的特征层生成多层级的潜在编码(latent codes)。
由于作者的数据集仅包含单视角图像,作者使用重建损失
来训练
,该损失包含像素级(MSE)损失
、感知损失
LPIPS [48],以及与预训练 ArcFace 网络 [12] 结合的身份损失
:
其中,
,以及
分别表示
、
和
的损失权重。
3.3 基于风格的新型视图修复网络(SVINet)
由于新视角中存在遮挡区域,扭曲后的图像会包含“空洞”(详见图2)。为了生成高质量的新视角图像,作者提出了一种基于风格的新视角修复网络(SVINet),用于填充扭曲图像中的“空洞”。
如图2所示,作者的SVINet遵循传统的“编码-修复-解码”架构[10, 24, 37],由三个子网络组成:
、
和
。在技术实现上,首先使用
从模型输入中提取特征并进行下采样。随后,通过
在特征空间中执行修复(inpainting)操作。最后,使用
对特征进行上采样,以获得修复后的图像。
3.3.1 对称性感知的特征提取
作者首先使用通过3D GAN反演得到的新视角图像
填补形变后的图像
中的遮挡区域(见式 (1)),得到初始修复结果
(见式 (2))。随后,作者将
输入至
以获取特征
。此外,作者还提出利用面部对称性 [43, 45],通过将镜像输入图像
形变至目标视角
,得到
(
)。该镜像图像随后以与上述相同的方式处理,并输入至
以获得镜像特征
。
随后,作者利用
和
预测尺度图
和平移图
,二者可用于通过特征逐元素线性调制(FiLM)[32] 对
进行优化,得到
,即,
其中,
和
为卷积神经网络;
表示沿第1维(即通道维)进行拼接;
表示哈达玛积(Hadamard product)。
接着,
依次输入至
和
,以获得修复结果
。
3.3.2 基于风格的修复(Style-Based Inpainting)
修复网络通常依赖输入图像中的信息来填充缺失区域。然而,由于单视角图像所包含的信息有限,仅使用这些信息进行修复可能导致多视角不一致的问题。为解决这一一致性问题,作者受到如下事实的启发:在3D GAN中,同一物体从不同视角拍摄的图像共享相同的潜在编码(latent code)。因此,作者引入潜在编码来控制图像修复过程。
从技术上讲,作者使用从
获得的潜在代码
对修复网络中“inpaint”和“decoder”部分的卷积层 [21, 24] 进行调制。这种卷积层的调制使作者能够控制被遮挡区域的修复过程,从而在生成的图像中实现多视角一致性。
具体而言,作者首先采用映射函数
获取风格码
。随后,卷积层的权重
按如下方式被调制:
\begin{array} { r l } & { w _ { i j k } ^ { \prime } = s _ { i } \cdot w _ { i j k } , } \ & { w _ { i j k } ^ { \prime \prime } = w _ { i j k } ^ { \prime } \middle / \sqrt { \sum _ { i , k } { w _ { i j k } ^ { \prime } } ^ { 2 } + \epsilon } , } \end{array}
其中,
表示最终调制后的权重;
表示第
个输入特征图对应的缩放因子;
和
分别枚举卷积的输出特征图和空间感受野。
3.3.3 训练策略
真实数据。由于作者的真实数据集仅包含单视角图像,在从新视角合成图像时,无法使用目标视角图像来计算损失并更新模型参数。为解决这一问题,作者提出将新视角的扭曲图像重新映射回原始视角,然后计算修复结果与输入图像之间的损失。
具体而言,对于输入图像
,首先使用 SVINet 对其进行图像修复(inpaint),得到映射至新视图的图像 $ \mathbf{I}*{\text{novel}}^{\text{warp}}
。
接
着
,
作
者
将
c*{\text{novel}}
重
新
映
射
回
原
始
视
图
,
得
到
\mathbf{I}{c \to c{\text{novel}}}^{\text{warp}}
,
并
对
该
图
像
再
次
进
行
修
复
,
得
到
\hat{\mathbf{I}}^{\text{re-warp}}
。
基
于
上
述
过
程
,
给
定
输
入
图
像
\mathbf{I}
,
作
者
最
终
获
得
两
个
修
复
后
的
图
像
\hat{\mathbf{I}}_{\text{novel}}
和
\hat{\mathbf{I}}^{\text{re-warp}} $,用于后续的损失计算。
合成数据。除了真实数据外,作者还利用合成数据来辅助模型的训练。作者从3D GAN的隐空间中采样一个隐码
,并从不同视角生成两张图像
和
。随后,作者将
从源视角进行几何变换(warp)至目标视角,并将其输入 SVINet 以获得修复后的图像
。最后,作者计算
与
之间的损失。
损失函数。作者的损失函数由三个部分组成:重建损失、一致性损失和对抗损失。重建损失
包括像素级的 MAE 损失
、感知损失
[37] 以及身份损失
[12]:
其中,
和
分别表示
和
的损失权重;
和
分别表示输入图像和生成图像。
为确保多视角一致性,作者引入一致性损失
,该损失计算原始图像与修复后图像的潜在编码之间的均方误差(MSE)。该损失用于控制生成图像的多视角一致性:
为了进一步提升修复图像的质量,作者还使用了对抗性损失(adversarial loss):
其中,
表示真实图像和合成图像(即
和
);
表示修复后的图像(即
、
和
);
表示判别器 [10, 24, 37]。
综上所述,SVINet 的损失函数可表述如下:
其中
表示沿第 0 维(即批次维度)进行拼接;
,以及
分别表示
、
和
的损失权重。
4 实验
4.1 实验设置
数据集。作者的实验主要集中在人脸数据集上。训练阶段作者使用 FFHQ 数据集 [20] 和 10 万对合成数据。合成图像对
由 EG3D [5] 生成,共享相同的隐变量代码
,但采用不同的相机位姿进行渲染。为了评估方法的泛化能力,作者在测试阶段采用 CelebA-HQ 数据集 [19] 和多视角 MEAD 数据集 [40]。作者以与 [5] 相同的方式对数据集中的图像进行预处理,并提取其相机位姿。
实现细节。在所有实验中,作者采用在 FFHQ 数据集上预训练的 EG3D [5] 生成器。对于 3D GAN 反演编码器
,作者将批量大小(batch size)设置为 4,并在 FFHQ 数据集上训练 500K 次迭代。作者使用 Ranger 优化器,该优化器结合了 Rectified Adam [25] 与 Lookahead 技术 [47],其中
的学习率设置为 1e-4。公式 (3) 中的
、
和
分别设置为 1.0、0.8 和 0.1。对于 SVINet,作者将批量大小设置为 2,并在 FFHQ 数据集和合成数据对上分别训练 300K 次迭代。训练过程中新视角的相机位姿(camera poses)从姿态均衡的 FFHQ 数据集 [5] 的相机位姿中采样。作者使用 Adam 优化器 [22],其中 SVINet 和判别器(discriminator)的学习率分别设置为 1e-3 和 1e-4。公式 (6) 中的
、
和
分别设置为 10.0、30.0 和 0.1。公式 (10) 中的
、
和
分别设置为 1.0、0.1 和 10.0。
Baseline 方法。作者将提出的WarpGAN与多种3D GAN反演方法进行比较,包括基于优化的方法(如SG2
[1]、PTI [34]、Pose Opt. [23] 和 HFGI3D [43])以及基于编码器的方法(如pSp [33]、GOAE [46]、Triplanenet [3] 和 Dual Encoder [4])。需要注意的是,Dual Encoder使用了不同于EG3D的3D GAN,并在训练过程中去除了背景。这与作者的实验设置不同,因此作者仅在定性分析中将其纳入比较。
Image
评估指标。作者在 CelebA-HQ 数据集和 MEAD 数据集上进行新视角合成评估。对于 CelebA-HQ 数据集,作者计算原始图像与新视角图像之间的 Fréchet Inception Distance (FID) [17] 和 ID 相似性 [12]。对于多视角的 MEAD 数据集,每个人包含五张不同偏航角(前视、
、
)的面部图像。以正面图像作为输入,合成其余四张视角图像。随后,作者计算合成图像与其对应真实图像之间的 LPIPS [48]、FID 和 ID 相似性。表1中的推理时间(Time)是在单个 Nvidia GeForce RTX 4090 GPU 上测量的。
4.2 与最先进方法的对比
定量评估。如表1所示,作者展示了不同方法在CelebA-HQ数据集和MEAD数据集上的性能表现。可以明显看出,基于优化的方法相较于基于编码器的方法取得了更优的性能,但其推理时间显著增加。其中,HFGI3D通过PTI(分别用于填充形变图像的遮挡区域和进行多视角优化)执行两次优化,表现出显著的性能提升,但推理速度较慢。相比之下,作者的WarpGAN在推理时间上与基于编码器的方法相当,却超越了基于优化的方法的性能。在MEAD数据集上表现出的优异性能表明,08178能够有效保持多视角一致性。
Image
Image
定性评估。作者在图3和图4中提供了新视角合成的可视化结果。通过成功将扭曲-修复(warping-and-inpainting)策略融入3D GAN反演,08178能够更好地保留面部细节,并生成更合理的遮挡区域。此外,08178在新视角中能够更自然地保持3D一致性。
4.3 消融研究
Image
为了探究08178中关键组件的贡献,作者进行了消融实验。在表2中,作者在CelebA-HQ数据集上对比了不同模型变体在新视角合成质量上的表现。
对比“B”和“G”可以清晰地展示SVINet在修复遮挡区域中的重要作用。对比“C”、“D”和“G”表明,通过使用
调制SVINet的卷积操作,并引入
,能够提升08178的性能。对比“E”
Image
其中,“G”表示利用面部对称性先验有助于在新视角中生成被遮挡区域。对比“F”和“G”可知,使用合成数据进行训练可略微提升新视角合成的质量。作者还在图5(a)中对“C”、“D”、“E”和“G”(完整模型)进行了定性比较。将潜在码用于控制SVINet的修复过程,并结合对称性先验,能够提供更多信息,减少模糊和伪影,生成更精细的结果。
4.4 编辑应用
由于作者的WarpGAN通过修补变形图像实现新视角合成,新视角图像中可见部分受到潜在代码的影响最小。因此,仅通过操纵潜在代码无法实现图像的属性编辑。为解决这一问题,作者借鉴HFGI3D [43]的方法,利用WarpGAN合成一系列新视角图像,并将其输入PTI [34]进行优化。
该过程得到优化后的潜在代码
和微调后的3D GAN生成器。通过编辑
[15, 31, 36] 并调整相机位姿
,即可实现输入图像的属性编辑与新视角渲染。如图5(c)所示,作者在输入图像上对“Glasses”、“Anger”、“Old”和“Young”四个属性进行编辑,并与PTI和HFGI3D的结果进行对比。可以观察到,利用WarpGAN合成的多视角图像作为优化辅助所获得的编辑图像具有更高的保真度,且外观更加自然。
5 结论
在本文中,受3D场景生成中“形变-修复”策略成功应用的启发,作者成功地将图像修复技术与3DGAN反演相结合,提出了一种新颖的3DGAN反演方法——WarpGAN,实现了从单张图像高质量的新视角合成。作者的WarpGAN由3DGAN反演网络和SVINet组成。
具体而言,作者首先利用3DGAN反演获取输入图像的深度信息,然后基于深度信息对输入图像进行形变处理,得到形变后的图像,最后使用SVINet填充形变图像中被遮挡的区域。
值得注意的是,作者的SVINet利用对称性先验和潜在码(latent code)实现多视角一致性修复。大量定性和定量实验表明,08178在性能上优于现有的基于优化和基于编码器的最先进方法。
参考
[1]. WarpGAN: Warping-Guided 3D GAN Inversion with. Style-Based Novel View Inpainting.
