PAniC-3D: Stylized Single-view 3D Reconstruction from Portraits of Anime Characters

摘要

我们提出了PAniC-3D系统,可以直接从插画(肖像)中重建具有风格化的3D角色头部。我们的动漫风格领域对于单视角重建提出了独特的挑战;与人类头部的自然图像相比,角色肖像插画具有更复杂和多样化的头发和配件几何形状,并且使用非真实感轮廓线进行着色。此外,缺乏适合训练和评估这个模糊的风格化重建任务的3D模型和肖像插画数据。面对这些挑战,我们提出的PAniC-3D架构通过线条填充模型跨越插画到3D领域的差距,并使用体积辐射场来表示复杂的几何形状。我们使用两个新的大型数据集(11.2k Vroid 3D模型,1k Vtuber肖像插画)来训练我们的系统,并在新的AnimeRecon基准测试中进行评估。PAniC-3D显著优于基线方法,并提供数据来建立从肖像插画进行风格化重建的任务。

introduction 和 相关工作

随着AR/VR应用的兴起,不仅对高保真度的人类化身有了增加的需求,还对非真实感的3D角色有了更多需求,特别是在“动漫”风格中。大多数角色设计师通常首先创建概念插画,使他们能够表达复杂和高度多样化的特征,如头发、配件、眼睛、皮肤、头形等。不幸的是,将插画概念艺术转化为AR/VR-ready 3D资产的过程是昂贵的,需要受过专业培训的3D艺术家使用专业建模软件。虽然基于模板的创作者在一定程度上使3D化身民主化,但它们通常受限于与特定身体模型兼容的3D资产。

我们从插画(肖像)中直接构建一个风格化的3D角色头部。我们将问题分为两个部分:1)隐式单视图头部重建,2)跨越插画-3D领域差距。总结我们的贡献:

• PAniC-3D:一个系统,可以从单个基于线条的肖像插画中重建出一个风格化的角色头部的3D辐射场。
• Vroid 3D数据集包含11.2k个角色模型和渲染图,是动漫风格领域中第一个提供多视图渲染的3D资产数据集。
• Vtuber数据集包含1.0k个易于重建的肖像(对齐、面向正前方、中性表情),通过从绘图中去除线条的新任务,跨越插画渲染领域差距。
• AnimeRecon基准测试包含68个对齐的3D模型和相应的插画,可对风格化重建的图像和几何度量进行定量评估。

隐式三维重建

虽然已经有很多关于从图像中基于网格的重建工作[23],但这些系统不足以捕捉我们的三维角色极其复杂和多样化的拓扑结构。受到最近生成高质量三维辐射场成功的启发[4,5,25,39],我们转向使用隐式表示方法。然而,为了获得高质量的结果,最近的隐式重建工作如PixelNerf [40]往往仅从2D图像中操作,因为缺乏公开可用的高质量三维数据。像Pifu [31]这样使用复杂三维资产的隐式重建系统,已经显示出一定的成功,但需要谨慎的点采样技巧和损失平衡。

也有一些关于基于草图的建模的研究,其中通过轮廓图像恢复3D表示。例如,Rui等人[24]使用多视图解码器预测草图到深度和法线,然后用于表面重建。Song等人[44]还尝试通过学习重新对齐输入来补偿多视图绘图的差异。虽然与我们的单视图肖像重建问题相关,但这些方法需要难以一致地绘制多视图草图,并且不能处理彩色输入。
对于我们的情况,即具有复杂高质量3D资产的情况,我们展示了可微分体积渲染在重建中的优越性。我们建立在最近的无条件生成工作(EG3D [4])之上,将重建问题作为有条件的生成问题进行了公式化,提出了几种架构改进,并应用了我们的3D数据集所提供的直接2.5D监督信号。

在这里插入图片描述图1 :贡献概述。我们的(A) PAniC-3D系统能够直接从基于线条的人像插画重建3D辐射场。为了跨越插画-渲染领域差距并监督重建,我们收集了一个新的(B) Vtuber插画数据集和© Vroid 3D模型数据集。为了评估效果,我们提供了一个新的(D) AnimeRecon基准,其中包括成对的插图和3D模型,建立了动漫角色的风格化单视角重建的新任务。(补充材料中的艺术品归属)

日本动漫风格的3D头像和插画

对于3D角色艺术家来说,从肖像插图中制作3D模型是一个相当常见的任务。然而,从计算机图形学的角度来看,这种风格化的重建设置为已经存在的不适定问题增加了额外的模糊性。此外,虽然在流行的动漫/漫画领域有一些使用3D角色资产的工作(例如,姿势估计[18]、重定向[17, 20]和重定位[22]等),但缺乏具有多视角渲染的公开可用的3D角色资产,从而无法实现可扩展训练(表1)。针对这些问题,我们提出了AnimeRecon(图1d)来规范化配对的插图到3D基准测试,并提供Vroid数据集(图1c)的3D资产以实现大规模训练。
在样式化重建问题中,我们解决了从插图中移除轮廓线的任务。有很多关于线提取[21, 38]、草图简化[33, 34]、基于线条的重建[11, 24]、艺术图像的线条应用[6, 41]和划痕线条的去除[8, 27, 29, 32, 35]的研究;然而,从基于线条的插图中删除线条的工作却鲜有研究。我们在将绘图调整为类似渲染的图像以便于进行3D重建的上下文中研究了这个删除轮廓线的任务;我们发现简单的图像到图像的转换[19, 45]不适合该任务,提出了一个简单而有效的带有面部特征感知的对抗性训练设置。最后,我们提供了一个Vtuber数据集(图1b),用于训练和评估用于3D重建的轮廓线移除。

方法

PAniC-3D由两个主要组成部分组成(图1a):一个3D重建器,直接监督从给定的前向渲染中预测辐射场,以及一个插图到渲染模块,将图像转换为重建器的训练分布。这两个部分是独立训练的,但在推理时按顺序使用。

3D重建模型

3D重建模块如图3所示,通过直接监督训练将前置渲染反演为体积辐射场。我们借鉴了最近无条件生成的工作(EG3D [4]),将重建问题作为有条件生成问题来定义,提出了几种体系结构改进,并应用了我们的3D数据集所提供的直接2.5D监督信号。

条件输入:要重建的正面正交视图被调整大小并附加到 Stylegan2 骨干网中间的特征图中。此外,在最早的特征图上,我们将预训练的 Resnet-50 动漫标记器的倒数第二个特征连接到模型中,从而为输入提供高级别的领域特定语义信息。该标记器提供了适用于调节生成器的高级语义特征。它是由先前的工作[7]在1062个相关类别(如蓝色头发、猫耳朵、双辫子等)上进行预训练的。

特征池化:由于空间特征图要像 EG3D [4] 一样被重塑成三维图层,我们发现沿图像轴对每个特征图的部分通道进行池化有益于提高性能(见图3左)。这种简单的技术有助于沿着共同的三维图层轴分布信息,从而改善几何度量性能。

多层三面体:如同并行工作中提出的[1],我们通过在每个平面上堆叠更多的通道(见图3中央)来改进EG3D三面体。该方法可以解释为三面体和体素网格之间的混合形式(如果层数等于空间大小,则它们是等效的)。将每个平面设置为三层可以在双线性采样体积时更好地进行空间消歧,特别是有助于我们的模型生成更合理的头部背面(EG3D所面临的挑战之一)

损失函数:我们充分利用我们拥有的 3D 资产提供的地面真实 2.5D 表示。我们的重建损失包括:RGB L1,LPIPS [42],轮廓线 L1 和深度 L2;这些应用于正面、背面、右面和左面的正交视图,如图 3 所示。还应用鉴别性损失来提高细节质量,并保持生成方向。我们还保留了 EG3D 训练中的 R1 和密度正则化损失。我们的 2.5D 表示和对抗性设置使我们能够超越类似的单视图重建器,如 PixelNerf [40],它仅使用颜色损失。

后处理:我们利用前视正交视图作为输入的假设,在推断过程中将给定的输入拼接到生成的辐射场中。每个像素的xy坐标在体积中的交点用作采样输入的uv纹理映射;我们从每个交点投射几条额外的光线,以测试从前面的可见性,并相应地应用重新纹理。这种简单而有效的方法在几乎没有成本的情况下提高了来自输入的细节保留。

插画到渲染模块

为了去除输入插图中存在但散射照明辐射场中不存在的非现实轮廓线,我们设计了一个插图到渲染的模块(图4)。假设可以访问不成对的插图和渲染图像(我们的Vtuber和Vroid数据集),该浅层网络重新生成绘画中线附近的像素颜色,以对抗地匹配渲染图像分布。

类似于像CycleGAN和UGATIT [19,45]这样的非配对图像到图像模型,我们还施加了一个小的身份损失。虽然这在我们的填充情况下可能看起来是不起作用的,因为身份在非生成区域中得到保留,但我们发现这可以稳定GAN的训练。请注意,我们的设置也不同于其他填充模型,因为我们对接不同于输入的分布进行修复。
我们遵循之前从基于线条动画中提取草图的工作[6],使用高斯差分(DoG)算子,以防止在每个笔画周围提取两条线。
虽然绘画中的大多数线条应该被删除,但是某些关键面部特征周围的线条必须保留,因为它们确实出现在渲染中(眼睛,嘴巴,鼻子等)。我们使用现成的动漫面部标志检测器[16]在关键结构周围创建凸包,禁止填充。
我们展示了这个线条移除模块确实实现了更接近渲染效果的外观。在AnimeRecon数据集上进行评估时,相比于基准方法,它能更准确地执行图像转换(见表4),并且从最终的辐射场渲染结果中移除了线条瑕疵(见图6)。

数据

除非另有说明,我们使用80-10-10的数据集分割用于训练、验证和测试。

Vroid 3D 数据集

我们从 VroidHub 收集了一个包含 11.2k 个 3D 动漫角色的大型数据集,用于训练 PAniC-3D 的重建和图像翻译模块。与以前使用 MikuMikuDance PMD/PMX 模型的 3D 动漫领域的工作不同[17, 18, 20],Vroid VRM 模型符合 GLTF2 标准[15]并具有多种扩展[37],使我们能够使用 ModernGL[10,12] 进行渲染。由于数据是众包的,我们会过滤出各种不良属性,例如:纹理损坏、透明度过高或过低、角色大小极端、缺失骨骼等。我们使用的 11.2k 渲染图像代表了我们原始的 16.0k 抓取模型的 70% 保留率。

我们所有的图像数据都是在离 VRM 的“颈部”骨骼一个单位距离处渲染的(例如仅使用漫反射表面颜色),采用 ModernGL[10,12] 进行渲染。我们只使用漫反射照明的选择是由于经常采用将高光作为纹理绘制的艺术决策(表4第2行,头发和眼睛的高光在漫反射渲染上)。在绘制高光的情况下添加镜面渲染将引入不一致的照明效果。线性混合蒙皮用于将角色的手臂从休息的T姿势向下偏移60度。我们以1024像素的超采样分辨率进行渲染,然后进行双线性降采样以达到512像素,用于训练和测试。

PAniC-3D的重建模块数据集包括用于对抗训练的随机透视视图和用于输入和重建损失的固定正交视图。每个3D模型从8个随机透视视图进行渲染(360度方位角均匀采样,20度标准差正态采样仰角,固定30度的全视场角);这样可以得到共89.6k个透视图像,每个图像都有已知的摄像机参数。四个正交视图分别从正面、侧面和背面固定90度角拍摄。用于图像对图像转换模块的不成对3D数据仅为每个角色身份的前置正交视图。

Vtuber肖像数据集

我们从VirtualYoutuber Fandom Wiki收集了1004个头像作为我们的图像转换模块的非配对插画数据集。这些头像是从15.2k个抓取的图像中手动筛选出的,具有所需的属性,例如高分辨率、正面朝向、中性表情、未裁剪等。为了模拟Vroid渲染的正交前视图像分布,我们使用Chen等人的角色分割器 [7]将背景涂白,并选择最大的连通组件。此外,我们使用预训练的YOLOv3 [16,28]提取每个插画的面部关键点,并将其对齐以匹配Vroid渲染中的关键点检测高度和比例分布。

虽然我们可以人为地添加线条,但我们发现卡通着色器 [9, 14] 无法很好地模拟放置在复杂角色上的艺术判断(图2)。为避免这些伪影,我们设计了一个数据驱动的Illustr2Render模块来训练真实艺术家绘制的线条。

AnimeRecon Benchmark

我们通过找到68个既有3D模型又有紧密对齐插图的角色,收集了一个风格化重建的基准测试集。具体来说,我们从3D手机游戏《原神》(Genshin Impact)和虚拟才艺经纪公司Hololive中获取了数据(其中一些成员既有3D角色又有Fandom Wiki插图)。由于两个来源的原始3D数据都是MMD格式,因此我们使用DanSingSing转换器将其转换为VRM格式。渲染过程与Vroid相同。

通过手动决定的YOLOv3面部关键点[16,28]和ORB检测,将肖像与其对应的前视正交渲染图对齐。我们使用与Vtuber肖像相同的模型[7]和过程,将背景分割出来。为了与训练数据保持分离,我们从Vtuber肖像数据集中删除了所有在此基准测试集中出现的Hololive身份
不可避免地,一些插画与对应的渲染图并不完全对齐,而且许多原神插画在对齐时被裁剪了。为了进行更合理的评估,我们还为每个对齐对标记了一个感兴趣区域(ROI),在其中对齐是适当的。在计算所有2D图像和3D几何度量时,都限制在ROI内进行。

结果和验证

在本节中,我们提供了重建和图像到图像翻译性能的细分,包括与其他基准线的定性和定量比较。

4.1 3D重建结果
4.1.1 指标

在本节中,我们提供了对重建和图像到图像转换性能的详细分析,包括定性和定量与其他基准方法的比较。

如表3所示,我们使用2D图像和3D几何度量来评估我们的新的AnimeRecon基准集。所有插画输入都经过我们的插画到渲染模块处理,然后才被馈送给各自的方法;我们认为这是一个更公平的比较,因为所有的重建器都是在渲染图像上进行训练的。

图像度量是通过将预测的辐射场的集成图像与相同摄像机视角的地面真实渲染进行比较来测量的。我们展示了这样的度量结果,包括前面的正交视图(应该与输入匹配),后面的正交视图以及沿着角色以30度间隔循环的12个透视相机的平均值。对于前面和后面的视图,我们限制评估范围为AnimeRecon ROI(图1d);对于12个循环视图,我们将其裁剪到水平边界框内。

我们展示了标准的颜色度量,如PSNR,但由于AnimeRecon插画-渲染对中难免存在不完美之处(甚至在ROI内),感知度量,如CLIP图像余弦相似度[26]和LPIPS[42]通常更相关。

几何度量在表3的右侧。我们从地面真实3D资产和预测的辐射场中提取网格(通过行进立方体),并删除顶点在ROI注释定义的矩形棱柱体之外的面(参见图1d顶部)。然后我们从每个网格子集中随机采样10k个点,以计算5cm和10cm处的点云chamfer距离和F-1分数[13]。为了更好地理解F-1,平均Vroid头宽为25.5cm(实际头宽为14cm)。F-1总体较低,由于更大的比例和具有大表面积的突出的头发/配件。
尽管Mesh R-CNN也提出了法线一致性指标[13],但对于我们的数据,很难获得,因为存在地面真实法线破损的模型(零值、反向网格等)。我们可以通过重新估算所有法线来计算粗略的一致性,结果为:Ours 75.6,PixelNerf 77.5,Img2SG 73.0,PTI 72.7,Pifu 77.3。我们观察到这些近似测量值与视觉质量不匹配,但为了完整性将其包含在此

4.1.2 baseline

本节中,我们展示了我们的方法与其他几种隐式重建方法之间的比较(如图5所示)。在所示的方法中,只有Pifu [31] 接收点级信号进行优化;我们发现这对其有害,因为接近表面的点采样策略会使模型偏向某些几何结构(例如经常从脸上突出的黑色睫毛)。其他使用体积渲染的方法固有地对监督信号进行加权,以使最终渲染出的产品一致。Image2stylegan [2] 和 Pivotal Tuning Inversion [30] 是基于优化的单视图重建方法,后者在 EG3D 中用于演示通过投影进行重建 [4]。我们训练了一个与我们重建模块中使用的 Stylegan2 骨干网络类似的 EG3D,允许这两个基线在先验中优化特征/权重以匹配给定的输入。不幸的是,EG3D 先验不足以正则化优化,导致结果不合理;虽然 PTI 在 EG3D 上工作得相当好,但在我们必须将头部后面也投影的设置上,它可能效果不好。最后,我们将我们的模型与 PixelNerf [40] 的单视图设置进行比较。这种比较的关键区别在于 PixelNerf 不使用对抗性的、也不使用 2.5D 的重建损失(为了更公平地与我们进行比较,我们使用了 LPIPS 来训练 PixelNerf,除了 L1,结果使结果明显不那么模糊)。我们发现,在没有可用的 3D 资产提供的这些信号的情况下,细节和几何质量的质量不及 PAniC-3D。

4.1.3 消融实验

根据表3和图7,我们得出结论,我们的架构决策提高了我们的重建系统的定性和定量性能。结果表明,特征汇聚能够沿着三面轴向传播信息,以改善生成的几何形状,多层三面增加了额外的模型容量,进一步消除了特征位置的歧义,并且添加固定的侧面/背面视图损失显著提高了几何和纹理。可以预期,删除2.5D监督也会导致性能下降。

4.2 渲染结果

如图 4 和图 6 所示,我们的插图到渲染模型能够有效地去除在渲染中不会出现的轮廓。我们在表 4 中评估了翻译后的插图与 AnimeRecon 基准测试中其渲染对应物(仅限于 ROI 注释)的相似程度,并发现我们能够显著地优于朴素的修补 [36] 和现成的图像到图像翻译系统 [19, 45]。其他系统难以保留关键的语义结构如眼睛/嘴巴,并且经常无法保留原始的身份特征。

在图 6 中,展示了去除线条确实减轻了插图和其预测的辐射场之间的域转移效应。使用我们的去线策略显著减少了肩膀上的额外轮廓和带状物等伪影。

5.限制条件和未来工作

从比较真实的3D模型渲染和生成的辐射场的图表中可以看出,这个任务非常困难。尽管PAniC-3D表现比其他基准方法好,但我们的重建质量与真实角色资产之间仍存在很大差距;这在后部遮挡区域以及连接前部和后部的耳朵周围的区域尤其明显。我们的模型通常能够防止面部出现在背面,但仍然在很大程度上依赖于复制配件的可见部分以覆盖遮挡部分。将来,我们可能会探索以物体为中心的方式分解辐射场,并通过一个更具表现力的过程生成配件。这项工作的一个明显扩展是对全身角色进行建模,并利用Vroid数据集提供的更多机会,支持混合形状的面部表情,发丝物理,全身绑定等。

总之,我们提出了PAniC-3D,这是一个直接从动漫角色插画重建风格化3D角色头部的系统。与人类头部的自然图像相比,我们的动漫风格域提出了单视图重建的独特挑战,例如更复杂和多样化的发型和配件几何形状以及非照片现实的轮廓线条。此外,缺乏适用于训练和评估这个模糊的风格化重建任务的3D模型和插画数据。面对这些挑战,我们提出的PAniC-3D架构通过线条填充模型跨插图到3D域,并用体积辐射场表示复杂的几何形状。我们使用两个新的大型数据集(11.2k Vroid 3D模型,1k Vtuber肖像插图)训练系统,并在新颖的AnimeRecon插图到3D对的基准测试中进行评估。 PAniC-3D显着优于基准方法,并可以从单个输入绘图生成合理的全纹理几何形状。我们希望我们提出的系统和提供的数据集可以帮助建立风格化重建任务。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【视频教程】Hands-on Three.js 3D Web Visualisations-September 16, 2019.part2.rar Hands-on Three.js 3D Web Visualisations September 16, 2019 English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 3h 46m | 968 MB eLearning | Skill level: All Levels Create stunning visualizations and 3D scenes using the Three.js library Three.js is the most popular JavaScript library for displaying 3D content on the web, giving you the power to display incredible models, games, music videos, and scientific/data visualizations in your browser and even on your smartphone! This course begins with a 3D beginner-level primer to 3D concepts and some basic examples to get you started with the most important features that Three.js has to offer. You’ll learn how to quickly create a scene, camera, and renderer and how to add meshes using the Geometry primitives included with the library. You’ll explore troubleshooting steps that will focus on some of the common pitfalls developers face. You’ll learn the very sophisticated animation system included with the library. The course concludes by introducing post-processing, essentially adding filters to your rendered scene, and GLSL, the shading language that is used by all materials included with the library. You’ll see how creating your materials is easier than you’d imagine using GLSL. By the end of this course, you’ll be able to quickly add advanced features to your 3D scenes, improve the way users interact with them, and make them look stunning. Learn Learn the basics of 3D applications: vertices, faces, meshes, cameras, and renderers Learn how to set up a Three.js web app: the scene, camera, and renderer Master the scene hierarchy and child-parent relationships, and how they affect the final location and orientation of objects Explore simple mesh shapes (such as boxes, spheres, cylinders, planes, and cones) using the Three.js library Learn how to source, create, and load complex assets, including textures Discover how to use the brilliant animation system that is part of the THREE.js library Add a post-processor to a rendered image, to make it look like an old film or a dot screenprint + Table of Contents 1 The Course Overview 2 Introducing the THREE.js website 3 D Basics 4 Your first THREE.js web page` 5 The THREE.js Editor 6 Debugging Your Pages 7 Let’s Keep It Simple – Starting with a Box 8 Materials One – Basic and Wireframe 9 Spheres and Cylinders 10 Materials Two – Lambert and Phong 11 Cones and Tori 12 Scene Hierarchy 13 Perspective Camera 14 Orthographic Camera 15 Dummy Cameras and Lerping 16 Complex Camera Paths 17 Ambient and Hemisphere Lighting 18 Directional and Point Lighting 19 Spot and RectArea Lighting 20 Adding Shadows to Your Scenes 21 Physically Correct Lighting 22 Online Sources of 3D Assets 23 Using Blender with THREE.js 24 The GLTFLoader Class 25 The FBXLoader Class 26 LatheGeometry and ExtrudeGeometry 27 The Basics of the Animation System 28 Skinned Meshes 29 Switching and Blending Animations 30 Splitting an Animation Clip 31 A WASD Control System for a Player Character 32 THREE.js Post Processing 33 Introducing GLSL – ShaderMaterial 34 Introducing GLSL – Vertex Shaders 35 Introducing GLSL – Importance of Noise Function 36 Introducing GLSL – Textures

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值