当前位置:网站首页>Paparazzi: Surface Editing by way of Multi-View Image Processing
Paparazzi: Surface Editing by way of Multi-View Image Processing
2022-08-05 03:55:00 【华璃】
这里写目录标题
摘要
图像处理管道拥有各种各样的复杂的过滤器和效果。将一个单独的效果转化为对三维表面几何的操作,不可避免地会产生一个定制的算法。相反,我们提出了一个通用的后端优化,允许用户通过简单地选择一个现成的图像处理过滤器来编辑一个输入的三维表面。我们通过构建一个可微分的三角形网格渲染器来实现这一点,通过该渲染器,我们可以将图像域中的变化反向传播到三维网格顶点位置。给定的图像处理技术通过形状的随机快照应用于整个形状:因此,我们称我们的方法为Paparazzi。我们提供了简单而重要的设计考虑,以构建Paparazzi渲染器和优化算法。这种基于渲染的表面编辑的力量通过我们应用的各种图像处理过滤器得到了证明。每个应用都使用了现成的图像处理方法的实现,而不需要对核心的Paparazzi算法进行修改。
CCS的概念。- 计算方法 → 网格模型。
其他关键词和短语:几何处理、表面编辑、基于图像的建模、几何变形、逆向图形
1 INTRODUCTION
几十年来的数字图像处理研究,最终产生了大量复杂的过滤器和效果。这些滤镜不仅是图像处理管道中其他技术的前处理和后处理,也是图形设计者的有用工具,为消费者和社交媒体用户提供满意的效果。许多这样的过滤器在很大程度上依赖于像素网格的规则结构。例如,卷积神经网络利用这种规律性来实现高层次的高级过滤操作,如神经风格转移。
虽然一些简单的图像处理滤波器(如拉普拉斯平滑法)可以直接用于三维几何处理,但建立更复杂的滤波器的类似物往往需要特殊情况的处理,以适应三维表面数据中的任意拓扑结构、弯曲度量和不规则三角形网格组合。此外,许多图像处理方法很难为三维几何形状重新定义。例如,绘画的艺术风格可以被有效地捕捉到并在图像间转移,但如何将二维绘画的风格转移到三维表面却不是很清楚。
在本文中,我们开发了一种新的机械,即Paparazzi,以同时将大量的图像编辑技术推广到三维形状中。其关键思想是通过对形状的许多渲染快照应用所需的图像处理技术来修改输入的三维表面网格(因此称为Paparazzi)。Paparazzi的核心是我们的可微分渲染过程,它允许将图像领域的变化传播到网格顶点位置的变化。我们首先构建了一个随机的多视图优化算法,用于概括基于能量最小化的图像处理技术。然后,我们进一步推广这一算法,以适应通用的迭代式图像处理滤波器。渲染器及其参数是精心构建的,以考虑视图采样、观察和阴影的模糊性。我们优化的中间网格和输出的三角网格都经过过滤,以确保水密性,便于下游的几何处理应用,如3D打印(见图1中3D打印的L0平滑蛙的插图)。我们展示了Paparazzi的多功能性和即插即用的特性,将少数图像过滤技术推广到3D形状,包括引导式过滤器、量化、超级像素、L0平滑和神经风格转换。有了Paparazzi,我们通过简单地插入现有的实现,将这些图像滤波技术推广到几何图形中。
图1. Paparazzi在三维形状上实现了即插即用的图像处理算法。例如,超级像素产生一个马赛克风格的形状;L0规范使形状成为片状平面,但保留了鼻子等特征;风格转移将绘画的艺术风格合成到几何体上。请注意,这些图片只是为了展示2D效果,它们不在Paparazzi的优化循环中。
2 RELATED WORK
我们的工作涉及视觉计算的主题,包括渲染、计算机视觉和几何处理。我们将讨论的重点放在方法论或应用上类似的方法上。
差异化渲染。 渲染是给定场景几何、材料、照明和观察条件的信息,对图像进行合成的前向过程。解决这个逆向问题就等于解决了计算机视觉。Loper和Black[2014]提出了一个完全可微分的渲染引擎,OpenDR,使用自动微分。他们的渲染器对任何输入参数都是可微分的–不仅仅是几何,因此比我们的更通用。尽管他们在对许多网格顶点进行微分时,表现出比天真的有限差分有相当大的速度,但在本文考虑的情况下,我们的分析导数比他们的方法有数量级的速度提升(见图2)。Liu等人[2017]提出了一个神经网络架构来近似正向图像形成过程,并从单一图像中预测内在参数、形状、光照和材料。这种神经网络方法是可分的,并利用现有的数据来实现合理的材料编辑结果。然而,它是近似的,对于每个任务和每个渲染参数,都需要大量的训练工作。许多其他可微分或可反转的渲染器已经被构建出来,用于估计材料/微几何[Gkioulekas等人,2013;Zhao 2014]或照明条件[Marschner和Greenberg 1997;Ramamoorthi和Han- rahan 2001]。虽然我们的照明条件和材料是相当温和的(三个方向的平坦阴影),但我们在所有的网格顶点位置上对整个图像进行区分。
图2. 我们比较了我们的方法与两种基于自动识别的方法的每次迭代的运行时间(256×256图像)。我们的方法更快,扩展性更好。
我们的分析导数比现有的自动分化框架更快、规模更大。OpenDR(正向模式)[Loper和Black 2014]和TensorFlow 3D Mesh Renderer(反向模式,又称反向传播)[Genova等人,2018]。在一台机器上,Paparazzi可以处理超过100,000个变量的问题,但是OpenDR和TensorFlow分别在几千个和几百个变量的问题上耗尽了内存。在图2中,我们的运行时间(在256×256的图像上)要快几个数量级。
基于图像的表面编辑。 在几何建模中,许多以前的方法提出了交互式或自动的方法,通过直接指定其渲染的外观来编辑一个形状[Kerautret等人,2005;Tosun等人,2007;Van Overveld,1996]。例如,Gingold和Zorin[2008]允许用户在一个用单一光源渲染的表面上画出变暗和变亮的笔画。为了克服阴影的模糊性–这是所有从阴影中获得形状的方法所共有的棘手问题–他们选择了对现有表面变化最小的变形。相反,我们通过增加照明的复杂性来克服这种模糊性。Schüller等人[2014]利用Lambertian表面的bas-relief模糊性来创建有界厚度的表面,这些表面从特定的视角看与给定的表面具有相同的外观。我们工作的一个独特贡献是,我们使用随机梯度下降法在一个表面的所有视图上优化所需的外观。
基于图像的方法被广泛用于网格简化和加速渲染[Weier等人,2017]。这些方法重新简化多边形网格以提高渲染效率,但保留其感知外观[El-Sana等人,1999;Hoppe,1997;Lindstrom和Turk,2000;Luebke和Erikson,1997;Luebke和Hallen,2001;Williams等人,2003;Xia和Varshney,1996] 。图像驱动简化的成功表明了图像驱动方法的力量,但只是作为一种衡量标准。我们的方法更进一步,利用渲染相似性,将大量的图像处理技术推广到表面编辑。
Kato等人[2017]通过在渲染图上应用图像风格转移,将神经风格转移推广到三维网格。在高层次上,他们的方法与Paparazzi相似,因为他们将图像梯度传播到几何体上,但他们的导数是近似的,而我们的导数是分析的。特别是,他们考虑的是一个像素是否被某个三角形所覆盖,这就需要在三维中对网格顶点的运动进行近似的非微分步骤函数。相反,我们考虑三角形的方向(每个面的法线)在网格顶点的无限小的扰动下如何变化。这可以捕捉到每个像素颜色的连续变化,并实现分析性导数。Kato等人[2017]没有防止在大变形过程中不可避免地出现的自交接(见上面的红色)。自交接可能导致分歧或 次级优化结果。这些差异使Paparazzi成为一个 这些差异使得Paparazzi成为一种更普遍的图像驱动的方法,用于创建高质量,甚至是可制造的三维物体。可制造的三维物体。
阴影中的形状。 从拍摄的(或渲染的)图像中恢复几何形状被称为 "从阴影看形状 "问题。这个子领域本身就很广泛,所以我们遵从现有的调查[Prados和Faugeras 2006;Zhang等人1999],专注于最相关的方法。在数据不足或不可靠的情况下,来自阴影的形状算法通常会退回到规则化的假设,如表面光滑度[Barron和Malik 2015],并因此产生不太详细的模型。在存在每像素深度信息的情况下,单视图的阴影形状问题变得更加容易,在这种情况下,逆向渲染可以用来细化深度几何,以匹配阴影图像[Or-El等人,2016;Wu等人,2014] 。如果给定来自不同视图的多个深度和阴影图像,基于阴影的深度细化可以扩展到全形状重建细化[Choe等人,2017;Robertini等人,2017;Wu等人,2011] 。Gargallo等人[2007]精确区分了关于未知表面的重投影误差函数。Delaunoy和Prados[2011]将其扩展到最小化基于图像的正则化项,以帮助多视图表面重建。所有这些从阴影中获取形状的方法都是基于这样的假设,即输入的数据是由一个完全实现的物理形状捕获的–无论多么不可靠。我们的问题类似于基于多视角阴影的几何精化,但有一个主要的区别–我们可以获得一个一般的底层几何表示。我们利用这个通道来开发一个更强大的框架,将各种图像处理直接推广到三维,而不仅仅是几何精炼。
单一用途的几何图形处理过滤器。 在我们的成果中,我们展示了通过简单地将Paparazzi附加到现有的图像处理代码(例如Skimage [Van der Walt et al. 2014]),将各种过滤器应用于几何的例子。我们的结果表明,我们成功地转移了这些效果:例如,[Xu等人,2011]创建了片状恒定的图像,通过Paparazzi,我们使用他们的方法来创建片状恒定的外观几何(见图3的单视图例子)。我们用于演示的一些图像处理过滤器
我们用于演示目的的一些图像处理滤波器以前已经被转化为三角形网格的单一用途的滤波器。例如,He和Schaefer[2013]引入了一个新颖的基于边缘的拉普拉斯,将L0正则化应用到网格中。同样,为了给网格创建一个三维类似的引导式滤波器[He等人,2010],Zhang等人[2015]设计了一个专门为引导式滤波器定制的三角形聚类方法。将纹理合成扩展到三维几何体一直是一个活跃的研究领域[Dumas等人,2015;Gu等人,2002;Knöppel等人,2015。Lai等人,2005;Landreneau和Schaefer,2010;Turk,1991;Wei和Levoy,2001],典型的挑战在于对曲率和不规则网格离散的考虑。
图 3. Bunny 进行了优化,因此其单个视图的渲染图像梯度在 L0 意义上是最小的。
我们的技术贡献不是为任何特定的网格过滤器或应用(如去噪)增加技术水平,而是提供一套算法,以提供一个通用的、即插即用的机器,直接将大量的图像处理过滤器应用于3D。我们根据Paparazzi在输入几何体上正确应用图像处理效果的程度来评估我们的结果。
3 OVERVIEW
Paparazzi是一个通用的机器,它允许用户将图像处理过滤器应用于三维几何体,而不需要对曲面重新进行过滤,甚至不需要为三角形网格实现新的代码。我们的方法的输入是一个非自相交的曼尼三角网格和一个指定的图像处理技术。输出是这个网格的非自交变形,其外观经过了特定的处理。其核心观点是,如果我们能够将梯度从渲染的图像拉回到顶点,那么我们就可以对顶点位置进行基于梯度的优化。我们首先描述了一个很好的方案,其中指定的图像处理技术被描述为图像域中的能量优化。随后,我们表明,对我们基于能量的方法稍作修改,我们就可以推广到迭代图像处理技术的范畴。
3.1 基于能量的图像过滤器
许多图像编辑算法可以被表述为微分的、图像领域的能量E的最小化。在理想情况下,我们将任何这样的能量最小化扩展到表面,考虑这个能量的积分适用于所有可能的相机 "视图 "空间的渲染图像。
其中 Ri 是将具有顶点 V 的网格映射到图像的函数。
使用链式法则,最小化可以直接写成关于顶点的梯度下降:
视图的空间可以被调整以满足特定问题的需要。例如,它可以小到一个正面的摄像机,或者大到所有摄像机的空间,其中有一定数量的几何图形是可见的。我们将对一个好的默认选择的讨论推迟到第6节。
考虑一下图4中可见的基于能量的图像编辑算法的玩具例子,其中能量E仅仅是与另一个形状的渲染的L2距离。在优化过程中,我们只考虑一个球体的单一视图。在梯度下降之后,球体的几何形状被变形,从而使这一个视图与源图像难以察觉地相似。对于单一视图,我们的方法只改变影响该视图渲染的顶点,这使得这个结果看起来像贴花。
图4. 一个球体被变形以匹配来自摄像机的源图像I ′。
图5. 在多视图优化中,我们每次迭代都对一个视图进行采样。
Jacobian ∂Ri/∂V的存在暴露了渲染器R的主要要求:相对于顶点位置的可微分性。在本文中,我们提出了一个尽可能简单的渲染器,它在温和的假设下是可分析的,并能有效地生成高质量的几何图形(见第5节)。
3.2 随机多视图优化
当我们查看单个视图时,解析导数 ∂R/∂V 可以通过方程 (1) 将图像处理算法直接推广到几何形状,但是在连续空间或视图分布上评估这种积分是具有挑战性的。
我们通过借用机器学习界的工具来处理这个问题,他们在训练深度网络时已经广泛地将梯度下降应用于涉及积分或大和的能量[Bottou等人,2016;Ruder 2016]。我们没有试图精确计算综合梯度,而是利用随机梯度下降(SGD),用一小部分视图的梯度来更新几何,少则一个。正如在机器学习文献中常见的那样,我们应用动量来规范使用随机梯度引入的噪声,并使用Nesterov-Adam方法[Dozat 2016]来提高一般性能,该方法是梯度下降的变体,结合了动量和Nes-terov的加速梯度。我们的随机多视图优化在算法1中进行了总结。
随着网格根据优化变形,三角形的质量可能会降低,并且可能(并且不可避免地会)发生自相交。我们在 4.3 节讨论了在优化循环中交错网格质量改进阶段的重要性。
3.3 迭代图像过滤器
只需稍作修改,我们就可以将我们的方法从基于能量的变形推广到迭代过滤器的领域,一般定义为在图像领域中的迭代过程。
我们通过将导数 ∂E/∂R 替换为差 ΔR :=f − R 来用滤波器的单次迭代引起的更新来替换能量梯度。网格顶点位置的更新变为:
当迭代滤波的单个应用没有对图像进行过多的修改时,这种概括就会起作用。在我们的实验中,这已经足够接近平滑度,允许我们的方法收敛到一个与不同视图中的过滤器结果相匹配的几何图形1。如果单次应用滤波器产生了戏剧性的效果,那么我们的优化可以通过使用较小的步长γ来适应。因此,生成的算法是算法 2。
在展示结果之前(第7节),我们将介绍我们在设计渲染器和参数时所作的考虑。
4 设计注意事项
通过处理几何图形的渲染,图像处理技术可以以其原生形式应用于像素的渲染图像。这使得 Paparazzi 可以立即推广到一大类图像处理技术,但将负担转移到设计渲染设置上,该设置忠实地捕捉几何形状并以有意义的方式将其呈现给图像处理技术。我们渲染几何图形的位置和方式将对结果的质量产生很大影响。
4.1 相机采样
一个好的相机放置策略应该以相同的概率 "看到 "表面的每个部分。一个从未被任何摄像机看到的表面补丁将不会被改变。另一方面,一个被太多相机看到的表面斑块会比其他表面区域更新得更快,并导致表面斑块之间的不连续性。
根据这两个标准:全覆盖和均匀采样,Paparazzi在距离σ的偏移面上均匀地对摄像机进行采样,其点与给定的形状有一个固定的距离,沿着向内的垂直法线朝向。这种安排保证了我们对某些视图的偏见较少,在尖锐的边缘有平滑的相机视图,并且对大多数形状有全面的覆盖。由于我们使用的是正交相机,因此增加和减少σ只影响近平面。我们将σ设置为小规模变形时形状边界盒直径的5%,大规模变形时为25%(每个实验的数值见第6节)。
4.2 光照和阴影
我们的图像驱动的曲面编辑器被设计成输入和输出都是三维形状,因此中间的渲染质量只在我们实现所需的输出几何形状时才重要。我们为Paparazzi提出了一个尽可能简单的默认渲染器,但要特别注意避免光照和阴影的模糊性,以免在优化过程中造成伪影。
阴影的模糊性。 众所周知,单一方向的光线不足以区分凸凹形状和坡度方向(见,例如,[Liu and Todd 2004])。正如这种阴影的模糊性会迷惑人类观察者一样,它也会迷惑Paparazzi的优化。一个原因是,单一方向的光线不足以区分凸/凹形状和坡度方向(见图6)。
图6. 阴影的模糊性。凸/凹形状在单一方向的灯光下可能会产生相同的图像(中间)。增加照明的复杂性可以解决阴影模糊的问题。
我们的简单解决方案受光度立体 [Woodham 1980] 的启发,是增加照明的复杂性。通过分别指定三个具有 R、G、B 颜色的轴对齐方向灯,我们有效地渲染了表面法线向量的图像。这避免了阴影模糊。
Gouraud模糊性。 如果我们遵循计算机图形学中常见的平滑和插值三角形内每顶点光照/常数的做法,就会出现一个更微妙,但却很关键的模糊性。当渲染一个三角形网格时(尤其是在低分辨率的情况下),Gouraud着色[1971]或Phong着色[1975]会使形状看起来比实际的片状线性几何形状更平滑。虽然这种错觉对于高效的渲染很方便,但其固有的平均性会导致一种模糊性。一个几何形状粗糙的表面在Gouraud阴影下仍然可以产生平滑的渲染。我们将此称为Gouraud模糊性。在Paparazzi的优化过程中使用Gouraud阴影会立即产生一个空的空间,导致数值问题和不良的凹凸几何形状2(见图7)。相反,我们建议使用平面阴影。从某种意义上说,这是对三角形网格分段线性几何最真实的渲染。
图7. Gouraud模糊性。给定一个凹凸不平的球体(左),我们在Gouraud阴影下最小化im- age Dirichlet能量,得到平滑的球体(中)。比较平滑区域的渲染,我们观察到Gouraud模糊性,即非平滑球体的渲染与平滑球体的渲染非常相似(左栏),但平坦的阴影显示了差异(右栏)。
4.3 网格质量
到目前为止,我们的渲染选择足以让Paparazzi对表面的几何形状进行小的改变,但是随着网格的不断变形,单个三角形的质量会下降,甚至退化。此外,还可能出现局部和全局的自相交错。对于我们考虑的许多图像处理过滤器,我们希望在表面变形过程中出现尖锐的折痕和转角,这在不重新网格化的情况下可能无法实现。
这些挑战和规范与表面跟踪流体模拟期间所需的重新划分网格相似。我们从该社区借用了一个最先进的工具 El Topo [Brochu and Bridson 2009],这是一个使用三角形网格进行鲁棒显式表面跟踪的包。它使 Paparazzi 能够在没有自相交的情况下生成多种防水网格,并在高曲率区域细化网格,这使我们能够引入尖锐的特征而不必担心网格锁定。在图 8 中,我们可以看到形状优化需要 El Topo 来减轻网格质量差和自相交的问题,即使渲染结果具有可比性。
图8. 没有El Topo的形状优化(底部)可能会导致自我交叉(红色),尽管事实上,渲染结果与使用El Topo的相似(顶部)。此外,使用El Topo的优化结果是较低的误差(左边)。请注意,图中的峰值是我们进行El Topo的地方。
El Topo处理两类对Paparazzi的成功至关重要的操作:那些对维护流形、非相交网格的关键操作和那些与三角形质量相关的操作。我们向El Topo提供当前非自交网格的顶点和面,以及新的期望顶点位置。El Topo检查三角形是否会在从当前位置到期望位置的连续运动中发生碰撞或变得过于接近。这可能导致排斥力或拓扑结构的变化,这取决于用户定义的阈值。为了提高网格的质量,从而提高碰撞检测的鲁棒性,El Topo进行了标准的网格改进操作,如边缘分割和边缘翻转,在不影响网格整体拓扑结构的情况下提高三角形的纵横比。El Topo还对网格进行细分和分化,通过将边缘角度保持在用户定义的区间内,分别提高高曲率和低曲率区域的网格质量。
重塑和碰撞处理对于在优化期间和之后保持高质量的网格至关重要,但是它也很耗时–特别是与我们的导数计算相比。这在图9中可见,我们可以看到El Topo在总的运行时间中占主导地位。因为任何单独的迭代之间的变形一般都很小,在实践中我们每30次迭代就调用一次El Topo,在计算时间和优化性能之间提供一个经验确定的平衡。
图9. 我们显示了我们的总运行时间的分解,不包括图像处理部分。上半部分是导数计算的时间;下半部分是El Topo运行时间的1/30。
5 可区分的渲染器
到目前为止,我们已经讨论了Paparazzi的设计考虑。由于中间渲染不是输出,我们可以灵活地设计一个合适的渲染器,解决上述挑战,更重要的是,它是可微的。特别是我们提出了一个可微分的渲染器,使我们能够分析计算∂R/∂V,并将图像处理推广到三维几何。
5.1 可见性
在远离剪影和遮挡轮廓的地方,带有平面阴影的三角形网格的渲染是连续的。它几乎在任何地方都是可微的:在图像平面上位于三角形内的所有点,但不包括三角形边缘或顶点(一个度量为零的集合)。因此,我们假设表面点的微小变化不会改变可见度,因为在实践中我们在计算机上只有有限的图像分辨率。
在我们的优化循环中最终产生的大顶点扰动下,可见性可能会发生变化。幸运的是,由于实时渲染引擎OpenGL中的Z-buffering的效率,更新可见性可以通过每次迭代重新渲染形状来有效处理。
5.2 解析导数
鉴于我们对局部照明和朗伯表面的设计选择,我们用相应的 RGB 颜色 {cRi ,cGi ,cBi } ∈ [0,1] 渲染由方向 ^ℓi (R3 中的单位向量)指向的 m 个定向光,输出颜色像素 p 处的 {r Rp ,r Gp ,r Bp } ∈ [0,1] 由下式计算
其中,ˆnj是R3中的一个单位向量,代表三角形网格V的第j个面的法线,第j个面是像素p下最近的面。
在不失一般性的情况下,我们在推导中只写红色部分r Rp,因为r Gp ,r Bp有相同的表述。我们可以根据顶点位置对这个公式进行分析微分,形成稀疏雅各布矩阵的每一行∂r Rp /∂V∈R3 |V |。只有每个顶点vk∈R3在第j个三角形的角上的位置才有贡献。
最后,三角形顶点vk ,nj^hjk vk上的面法线的3×3雅各布系数ˆnj,可以用分析法计算。请注意,在三角形的平面内移动vk不会改变ˆnj。另外,在极限情况下,沿ˆnj移动只改变ˆnj在hjk方向的位置,其中hjk∈R3是 "高度 "向量:从对边线到角vk的最短向量。这意味着Jacobian必须是hjk ˆnTj的某个标量倍数。这个变化与vk到对边的距离∥hjk ∥成反比,这意味着。
6 实施
在我们的实验中,我们将形状归一化以适合以原点为中心的单位半径立方体,并对形状进行上样,以达到105-106个顶点,从而捕捉几何细节。默认情况下,我们使用一个正方形的、具有0.5宽视场的相机,放置在σ=0.1的偏移处,其中单位是OpenGL标准视图体积。偏移的表面网格有103-104个顶点。默认情况下,我们沿每个本地摄像机轴线分别使用红、绿、蓝三种颜色的定向灯,这相当于在摄像机帧中渲染表面法线。
我们在Python中使用向量Numpy操作和调用OpenGL进行渲染和栅格化来实现我们的导数计算。我们使用libigl [Jacobson et al. 2016]和Mesh- mixer [Schmidt and Singh 2010]进行网格升采样和偏移面计算。我们在装有英特尔至强3.5GHz CPU、64GB内存和NVIDIA GeForce GTX 1080 GPU的Linux工作站上测试我们的实现。
6.1 现成的图像处理过滤器
我们将Paparazzi设计成与现有的图像处理过滤器即插即用。我们能够以最小的努力使用开放的、现成的图像空间滤波器的实现。为了评估我们的方法,我们使用了一些现成的图像过滤器。我们使用快速引导滤波器的Python实现[He and Sun 2015],可以在github.com/swehrwein/python-guided-filter找到。对于SLIC超级像素[Achanta等人,2012],我们使用流行的Python图像处理库Skimage中的实现。我们将github.com/soundsilence/ImageSmoothing中的Matlab实现的L0-smoothing的图像平滑[Xu等人,2011]翻译成Python。对于神经风格的转换[Gatys等人2016],我们遵循相应的PyTorch[Paszke等人2017]教程,并稍加修改以提取∂E/∂Ri梯度。我们自己实现了带有固定调色板的简单图像量化(见[Ozturk等人,2014]中的评论)。
将这些过滤器应用于三维几何,不需要修改Paparazzi算法。调用者要么提供∂E/∂Ri梯度以使用算法1的基于能量的方法,要么提供过滤器f作为一个函数句柄以使用算法2的迭代方法。从用户的角度来看,尝试各种过滤器是很容易的。在图10中,我们展示了Paparazzi如何为我们测试的各种平滑型过滤器产生不同的结果。每个结果都尊重特定的图像处理过滤器的意图,但现在应用于一个三维表面。
图10. Paparazzi允许将图像处理直接泛化到三维,因此不同的图像编辑效果可以直接转化为三维形状。
7 评估与讨论
在表1中,我们以子程序的形式分解了我们的运行时间:导数计算、图像处理和使用El Topo清理网格。我们的导数计算比以前的方法快几个数量级(见图2)。网格清理是高分辨率网格的瓶颈(见图9)。由于我们的多视图运算多次处理局部斑块的渲染,特定的输入图像处理方法的运行时间性能被我们的方法放大了(例如,简单的量化比神经风格转移快得多)。
对于基于能量的过滤器,评估综合的多视图能量需要从所有可能的摄像机视图中进行渲染和评估。即使用有限数量的视图在每次迭代中进行近似计算,也是太昂贵了。相反,为了评估收敛行为,我们可以在一个固定的视图上设置一个摄像机,并在多视图优化随机地减少(未测量的)综合能量时评估其可见能量。特定渲染的能量并不代表多视图能量的值,但收敛行为意味着多视图能量的收敛。在插图中,我们显示了神经风格转移能量的收敛情况。
7.1 图像过滤器的评估
我们根据Paparazzi重现二维过滤器对三维形状的影响的能力来评估它,而不是根据它在任何具体应用(例如去噪)的特定领域的成功。在图10中我们看到,改变图像处理滤波器确实会改变所产生的编辑形状。导向滤波器正确地实现了保留边缘的平滑效果;量化使表面补丁与预定义的法线3对齐;超级像素创建了超级面;L0-平滑的结果是片状的平面几何形状。我们可以看到,这些过滤器以即插即用的方式正确地转移到三维几何体中。同时,我们的重塑技术确保了输出的网格是无懈可击的。
我们首先考虑一个简单而强大的可微分能量——L2 像素差。因为它的导数 ∂E/∂R 是已知的,所以我们应用算法 1 将这种能量推广到 3D 形状。通过缓存一个几何体的渲染,我们可以使用这种能量最小化将其外观转移到另一个几何体。与专用的网格传输工具(例如,[Takayama et al. 2011])相比,我们不需要源几何体是另一个三角形网格:只需我们可以渲染的任何东西。在图 11 中,我们可以通过最小化 L2 图像差异∥R (P )-R (V )∥2 将细节从点云 P 转移到三角形网格 V。我们使用简单的 splat 渲染,但这个示例将立即适用于更高级的点云渲染(例如,参见 [Kobbelt and Botsch 2004])。
图11. 我们通过渲染R (P )点云,将几何细节从输入点云P转移到输入形状V。
源几何体可能是一个具有缺陷的网格,如自交和孔。在图12中,我们将三角汤的外观转移到使用健壮的有符号距离抵消[Barill等人,2018]创建的光滑表面重建之上。结果是一个新的不漏水的网格,具有混乱的输入的外观,以前的网格修复方法很难保留这种外观[Attene 2010, 2016]。这个网格现在适合用于3D打印。
图12. 我们可以通过创建一个粗略的代理,然后应用细节转移来修复一个有断开部分和自交点的网格。这些缺陷在MeshmMixer[Schmidt和Singh 2010]中是可视化的,并被证明对专门的网格清理方法是有难度的。
在下面的图13-17中,左边的图像是作为参考来显示相应的图像处理,并不用于制作表面编辑结果。根据结构,我们的三维输入和输出反映了Hertzmann等人[2001]的 “类比”,但与该方法不同的是,我们可以直接访问底层图像处理算法。
我们现在探索一种更复杂的能量–神经风格能量。最近,受卷积神经网络(CNN)的力量启发[Krizhevsky等人,2012],神经风格转移已经成为一种流行的工具,用于将艺术风格从绘画转移到其他图像[Gatys等人,2016]。目标是给定一个内容图像和一个参考风格图像来生成一个风格化的图像。Gatys等人[2016]将总能量定义为内容和风格能量的总和,其中内容能量鼓励风格化的输出图像具有与内容图像类似的图像结构,风格能量鼓励输出图像具有与参考风格图像类似的特征。请注意,这些特征是用CNN不同层的过滤器响应来定义的。
将艺术风格转移到三维几何体是一个挑战,因为二维绘画风格在三维上的重新定义是不明确的。有了Paparazzi,我们可以通过在渲染图上应用图像神经风格转移来概括它。因为图像梯度可以通过区分CNN来实现,我们可以使用算法1来生成风格化的形状。在图13中,Paparazzi通过增长的几何纹理将二维绘画的风格转移到三维(我们在附录A中提供了关于图像神经风格的实施细节)。
图13. 我们通过操纵顶点位置,使局部渲染的风格能量最小化,将神经风格转换推广到三维。
很大一部分图像处理算法不是基于能量最小化,而是应用迭代程序。这些算法可能没有一个明确的能量,或者即使有,也可能没有一个容易计算的梯度。幸运的是,Paparazzi提供了一种毫不费力的方法来概括使用算法2的各种迭代图像过滤器。高层次的想法是在渲染时进行一次图像更新,并根据图像更新引起的图像变化来更新一次形状。
导向滤波器[He等人,2010]通过考虑引导图像的内容来计算过滤后的图像输出,引导图像可以是另一幅图像或输入本身。He等人[2010]表明,引导滤波器在各种图像处理应用中都很有效,包括边缘感知平滑、细节增强、图像羽化等等。在图14中,我们用[He and Sun 2015]中提出的加速方法来应用边缘感知平滑引导滤波器。我们设置引导图像为输入,滤波器参数为r =4,ε =0.02。通过将这个滤波器插入算法2中的滤波函数f,我们可以看到,引导式滤波器可以平滑三维形状并保留尖锐的特征。
图14. 我们将快速引导滤波器推广到三维,并实现了边缘保护的平滑效果。
除了保留边缘的平滑,我们对利用图像过滤器在几何图形上创造不同的视觉效果感兴趣。一个简单的风格选择是图像量化,这是一种图像压缩技术,将一系列的颜色值压缩到一个单一的值,只用一小部分颜色来表示图像[Ozturk等人,2014]。同样,通过改变算法2中的过滤器f,我们可以用预先定义的颜色集4对3D形状进行量化(见图15)。请注意,这些颜色是在世界坐标中编码的,因此形状量化是依赖于方向的,需要在世界坐标中渲染法线,这与其他在局部坐标中渲染法线的过滤器不同。
图15. 图像量化被应用于几何图形,并使表面斑块朝向预先定义的调色板
另一种像素分割方法,但同时基于颜色和空间信息,是超级像素。在图16中,我们使用简单线性迭代聚类(SLIC)[Achanta等人,2012],它适应k-means来分割像素,在形状上创建 “超级脸”。
图16. SLIC超级像素方法应用于三维物体,结果在形状上出现了小的表面斑块
最后但并非最不重要的是,我们考虑的是使图像梯度的L0准则最小化的滤波器[Xu et al. 2011]。几十年来,L0准则一直是图像和信号处理的流行工具,因为它是信号稀疏度的直接衡量标准。然而,由于L0准则的离散性和组合性,它可能难以优化。Xu等人[2011]提出了一种迭代的图像优化方法,以最小化L0梯度,并产生保留边缘的、片状常数的过滤效果。通过算法2,我们可以简单地应用这种迭代程序,将L0准则的效果推广到三维形状,并使其成为片状平面,这就是图像中片状常数的三维类似物。图像中的三维模拟(见图17)。
图 17. 我们最小化图像梯度的 L0 范数,并鼓励输出形状(蓝色)是分段平面的。
8 限制和未来工作
Paparazzi为摄像机的位置采样一个预先计算的偏移表面。这意味着严重遮挡或紧密的表面内腔将不会收到编辑(例如,在鳄鱼的嘴里)。这也意味着形状被隐含地困在它原来的偏移表面笼子里。去掉这个笼子的约束并预测可见度的变化将有助于创造大的形状变形。对于一个更严格和更确定的 图像能量,重要的是对准摄像机的方向,以鼓励重叠区域内各视图的一致性。同时,我们只提出了平面阴影三角形网格的分析导数;类似的导数可以推导出其他表现形式,如细分曲面或NURBS模型。Paparazzi的微分法比以前的工作要快几个数量级。之前的工作快了几个数量级。在未来的工作中,我们希望进一步提高 在未来的工作中,我们希望通过利用随机多视图优化的并行性和改善Paparazzi的性能来进一步提高其性能。我们希望通过利用随机多视图优化的并行性和改进动态网格划分所需的碰撞检测来进一步提高Paparazzi的性能。 动态网格划分所需的碰撞检测(目前,El Topo–作为一个黑盒子使用–主导着Paparazzi的性能。目前,El Topo–作为一个黑盒子–主导着我们的运行时间,见图9)。
在其核心部分,Paparazzi是一个可微调的渲染器,具有随机的多视角梯度白化程序,可以将图像变化反向传播到三维表面。Paparazzi对二维滤镜进行了三维解释,但它可以成为研究其他没有直接三维解释的滤镜的一个有用工具。将Paparazzi扩展到与全局照明和纹理以及更复杂的照明模型一起操作,可能对需要现实渲染的应用有益,例如图像分类。在我们的神经风格转移实例中,我们只展示了Paparazzi在将基于图像的深度学习的成功转移到三维表面几何方面的更大可能性的一个小迹象。Paparazzi展示了渲染的效用,不仅是为了可视化,而且也是一种编辑三维形状的方法。考虑Paparazzi能够影响几何处理管道并与之互动的其他方式是令人兴奋的。
边栏推荐
- 运维监控系统之Open-Falcon
- UE4 后期处理体积 (角色受到伤害场景颜色变淡案例)
- iMedicalLIS监听程序(2)
- 数据库设计的酸(ACID)碱(BASE)原则
- [GYCTF2020]EasyThinking
- The sword refers to Offer--find the repeated numbers in the array (three solutions)
- BI业务分析思维:现金流量风控分析(二)信用、流动和投资风险
- UI自动化测试 App的WebView页面中,当搜索栏无搜索按钮时处理方法
- Hard power or soft power, which is more important to testers?
- UE4 通过重叠事件开启门
猜你喜欢
[MRCTF2020]PYWebsite
UE4 第一人称角色模板 添加生命值和调试伤害
35岁的软件测试工程师,月薪不足2W,辞职又怕找不到工作,该何去何从?
【8.1】代码源 - 【第二大数字和】【石子游戏 III】【平衡二叉树】
UE4 第一人称角色模板 添加蹲伏功能
[Paper Notes] MapReduce: Simplified Data Processing on Large Clusters
UE4 opens doors with overlapping events
Industry Status?Why do Internet companies prefer to spend 20k to recruit people rather than raise their salary to retain old employees~
36-Jenkins-Job迁移
[极客大挑战 2019]FinalSQL
随机推荐
UE4 第一人称角色模板 添加生命值和调试伤害
UE4 opens doors with overlapping events
Static method to get configuration file data
iMedicalLIS listener (2)
[MRCTF2020]Ezpop(详解)
GC Gaode coordinate and Baidu coordinate conversion
国学*周易*梅花易数 代码实现效果展示 - 梅花心易
用Unity发布APP到Hololens2无坑教程
Android interview question - how to write with his hands a non-blocking thread safe queue ConcurrentLinkedQueue?
UE4 在游戏运行时更改变量 (通过鼠标滑轮来更改第一人称角色的最大行走速度)
mutillidae下载及安装
Initial solution of the structure
Spark Basics [Introduction, Getting Started with WordCount Cases]
cross domain solution
[BSidesCF 2019]Kookie
测试薪资这么高?刚毕业就20K
The most effective seven performance testing techniques of software testing techniques
【8.3】代码源 - 【喵 ~ 喵 ~ 喵~】【树】【与】
Thinking (88): Use protobuf custom options for multi-version management of data
Industry Status?Why do Internet companies prefer to spend 20k to recruit people rather than raise their salary to retain old employees~