大家好,欢迎来到IT知识分享网。
一、介绍
在计算预算较低且内存有限的设备上,大尺寸的纹理可能会成为高质量虚拟 3D 场景实时渲染的瓶颈。对纹理贴图进行下采样可以直接解决该问题,尽管会牺牲视觉保真度。传统上,纹理图的下采样是使用双三次插值和 Lanczos 算法等方法执行的。这些方法忽略了网格的几何布局及其 UV 参数化,也没有考虑用于获得用户将体验到的最终可视化效果的渲染过程。为了填补这些空白,我们引入了 GeoScaler,这是一种在合并几何线索的同时对 3D 网格纹理图进行下采样的方法,并通过最大化纹理网格渲染视图的视觉保真度。我们表明,与传统下采样方法生成的纹理相比,GeoScaler 生成的纹理可提供明显更高质量的渲染图像。
纹理网格(Textured meshes)已经被证明在表示密度、量化和渲染的方便性方面提供了三维对象的有效表示。但问题是实时、高质量的图形应用程序仍然很难在低计算设备上实现。这迫使开发人员和图形艺术家要么构建包含较小纹理贴图的网格,要么对其现有的高分辨率纹理贴图进行降采样,从而导致视觉质量上的妥协
目前降采样的方法:双线性,双边形,和随机的重采样[1]是非常常用的降采样纹理。但这些方式更适用于二维平面贴图。
纹理贴图和平面贴图有两种不同之处:它们包含了在UV映射过程中出现的不连续和扭曲伪影,UV映射是将网格的三维表面投影到二维平面上的过程。由于通常不可能在二维平面上压平一个三维表面而不造成重大的扭曲,因此需要将3D表面切割成多个斑块,然后分别将每个斑块压平。图2显示了利用地球球面的不同投影在二维地图上的这两种伪影之间的权衡。
世界地图的墨卡托投影(图2a)通过扩大两极附近的表面区域,比赤道附近的区域更大,显著扭曲了两极附近的区域。相反,Goode同聚苷投影[12](图2b)显著减少了畸变,但引入了显著的不连续性。
通过在图像上应用固定大小的对称核来估计重采样的值。缺陷:在纹理映射上的不连续点处应用简单的插值核会导致模糊和/或边界位移。由于所应用的插值核的局部化性质,在过滤该像素时,可能不涉及位于纹理映射中不连续点上的像素的真实的邻近点。另一个问题来自于标准插值核的对称性质,即所有方向上的像素都被类似地加权。然而,对称距离的假设通常不适用于纹理贴图。
降采样算法应该通过在插值过程中灵活地权衡像素来考虑扭曲,用户还可以以渲染的2D视图的形式查看纹理贴图。证明了网格的几何形状、UV参数化和纹理贴图之间的相互依赖关系。为此,我们创建了GeoScaler,这是一种纹理映射降采样方法,解决了现有方法的缺点。GeoScaler是一种基于深度神经网络(DNN)的降采样模型,它通过优化来最大限度地利用网格的降采样纹理图渲染图像的感知质量。
二、相关工作
由于三维重建技术(SfM)[39,46,47]和[9,34,42]等隐式表示的快速改进,从现实场景中捕获的3D内容也显著增加。虽然有一些方法可以直接用过输入视图生成网格,但大多数这些方法会以点云、体素网格或体积场的形式进行三维重建,这些场必须使用泊松映射[19]和行进立方体[30]等算法转换为纹理网格。
从纹理化的三维网格表面生成纹理贴图时,将执行一个UV参数化过程,其中包括通过生成从其表面上的每个点到二维UV平面的映射来展开三维模型。流行的UV映射技术包括[3,7,38]。为了减少从3D到2D的扁平化过程中出现的扭曲,通常会将每个网格划分为多个补丁,从而在每个补丁上独立地进行扁平化和UV参数化。人们已经提出了多种将网格分解为补丁的方法,即[26,37,40]。
虽然图卷积适用于处理网格的几何形状和连通性,而普通的笛卡尔卷积也适用于二维纹理映射,但目前还没有联合处理它们的框架。人们提出了多种深度模型来从多个[10,11]或单个图像[43,44]中生成三维网格。这些生成模型的一个关键组成部分是可微渲染,它允许使用在渲染的2D视图上进行的测量来更新3D场景的参数。[18,29]提出了大量可微渲染算法,实现可微栅格化[27,28]和路径跟踪[2,24]。
这个模型的构建基于三个主要的基本概念:
1、渲染损失是在从具有原始纹理贴图的网格渲染的视图和由DNN生成的具有降采样纹理贴图的网格之间计算的。此损失可用于优化网络。
2、GeoCoding模块利用网格的几何布局和UV参数化来抵消纹理贴图中的扭曲扭曲和不连续的影响。
3、UVWarper模块计算一个扭曲函数,该功能可以调整网格中所有顶点的UV参数,以获得更有效的纹理布局。在实验中,我们证明了地理标度的意义。
通过对纹理的8倍和4倍的降采样分别提供了高达3 dB和2 dB的下采样,而不是由具有原始纹理的网格生成的渲染视图。
三、本文方法
输入:以纹理化的三维网格为输入 学习最优的纹理降采样函数,并生成最优的降采样纹理。
降采样:传统的降采样在不知道网格几何形状及其UV参数化的情况下进行。
本文的除了利用渲染过程的知识外,还利用这些属性来生成一个最优的降采样纹理贴图,从而最大限度地提高渲染视图的视觉保真度。
几何尺度器如图公式2,其中T为原始纹理图,T↓为降采样的纹理图,M为网格,r(·)为用于将三维网格转换为二维视图的渲染函数。网格M包括顶点位置V,边缘连接E,和所有顶点的UV坐标U。
公式V包含三维空间中N个顶点的位置,公式U是每个顶点对应的UV参数,E是顶点之间连接的邻接列表。
同过训练一个特定于网格的DNN来对其纹理映射进行降采样来计算一个最优的降采样函数。对于每个输入的纹理网格,地理尺度器进行优化深度神经网络的参数,通过迭代的自监督方式对网格纹理降采样,最小化原始网格+纹理和降采样纹理的网格之间的差异。这个过程可以用如下公式表示,在等式中所示(3)和等式 (4) 。
四、模型架构
本文的深度网络架构能够利用来自网格的几何布局和UV参数化的线索来提高降采样性能。
给定一个纹理大小为H×W的输入网格M(T,V,E,U)。
第一步:是将网格的三维几何属性,特别是顶点位置和法线,投影到与纹理贴图对齐的二维贴图上。实现方法:这可以通过利用重心坐标首先平滑地插值网格表面上的几何特征,然后使用UV参数化将它们平化到一个二维特征映射上来实现。
由于使用相同的UV参数化方法将纹理投影到网格的表面上,因此纹理贴图将与几何特征贴图对齐。几何信息转换到二维域允许通过规则卷积层进行过滤。这种将几何信息转换为纹理对齐的二维特征的想法已经成功地应用于三维几何编辑[1]。这些特征映射包含了关于网格的三维属性的丰富信息,在被输入到DNN之前,它们将与纹理映射连接起来。这个简单的步骤允许DNN在以几何感知的方式确定降采样的最佳参数时访问网格的几何属性。
第二步:降采样输入的纹理映射和几何特征通过一个类似编码器的模块进行处理,该模块由卷积层和池化层组成,该模块提取了所期望的H/s×W/s和C1通道的一组深度特征Fe。
第三步:GeoCoding module
它明确地过滤了依据降采样CNN编码器图中的残差块的深度特征,重构扭曲与网格的连通性和布局一致。我们将在以下章节中详细解释这些模块。
由于卷积操作的接受域有限,纹理贴图边界上的像素不会与它们在三维表面上的真实邻近值一起进行过滤。GeoCoding(“几何编码”的缩写)模块旨在解决由于这些纹理贴图的不连续性而产生的工件。
用网格的UV参数化的方法把从纹理编码器获得的特征映射到网格表面上的顶点。对这些映射特征执行图形卷积操作,可以将网格中的几何信息与纹理信息相结合,从而减少了纹理映射不连续处的伪影。然后使用重心坐标插值输出特征,并重新投影回UV平面。
Step1.使用UV参数化(U)在Fe的每个N个网格顶点的位置采样C1维的特征嵌入,这是基于CNN编码器生成的C1×H/s×W/s维特征图。用公式5表示:
Step2.如果一个顶点在UV参数化中出现不止一次,我们对每个位置的样本进行平均。采样后,我们得到一个有N个顶点的图和一个与每个顶点相关联的特征嵌入(fi∈R C1)。与二维特征映射由于UV映射而出现不连续现象不同,这些顶点级特征嵌入(fi)虽然稀疏,但在三维曲面上与它们的真实邻居相邻,并通过网格的边缘与它们相连。
Step3.顶点级的特征嵌入使用简单的图卷积运算构造的残差块进行过滤,用公式6表示:
其中N (i)是i的邻居集合,eij是节点i和节点j之间的权值,θ1和θ2是学习参数。我们指定边的权值eij为等于网格顶点之间的欧氏距离。位于纹理映射的遥远接缝上的特征,在几何域中执行卷积可以确保在网格表面上靠近三维域,被适当地融合在一起。图卷积序列输出一组长度为c2的向顶点方向的特征向量。
Step4.为了从几何过滤后的特征中重建一个二维地图,我们首先使用重心坐标平滑地插值在每个顶点采样的特征。(使用重心坐标在网格的表面上插值特征)
Step5.再使用UV参数化,用于将网格表面上的特征投影到二维UV平面上。在地理编码模块的输出,生成一个大小为C2×H/s×W/s的二维特征图(Fg)。所得到的特征集Fg补偿了纹理映射中出现的几何不连续和失真。如果顶点非常稀疏,并且顶点处的采样向量不能保留足够的信息,则将Fg从Fe种添加一个跳跃残差。
最终获得的是使用UV映射从网格表面平坦到UV平面获得的几何编码特征。
第四步:UV Warper模块:
在重建RGB纹理贴图之前,该模块的估计将应用于纹理贴图和网格顶点的UV参数的扭曲函数。扭曲的目的是使纹理布局和网格的UV映射更有效。
在重建降采样的RGB纹理图之前,估计了一个扭曲函数,旨在完善UV参数化,通过分配更大的区域给更复杂的纹理来优化纹理贴图的布局,使纹理布局和网格的UV映射更有效。
我们通过从几何编码特征Fg的切片推导出纹理映射上每个像素的亚像素偏移来估计曲变形。然后将预测的偏移量应用于Fg的剩余切片,以获得具有优化布局的纹理映射特征Fw。通过对每个原始UV参数(U)应用估计的扭曲函数,还得到了一个新的UV参数化。计算新的UV参数对于将面映射到新的扭曲纹理映射(Fw)中相应的区域是重要的。
最后,利用Fw重建降采样的RGB纹理图。这个降采样纹理贴图通过使用偏移调整的UV参数U’覆盖在网格表面上,产生网格表示M(T↓、V、E、U)作为最终输出。
第五步:渲染损失和优化
为了优化DNN的参数,从原始网格和输出网格生成的渲染视图之间的差异被最小化。在每次训练迭代中,随机从预定义的合理观察条件范围S中随机采样。K个相机姿态的一批Pk,范围S的选择使得所有合理的视角和距离都包含在其中。在每次训练迭代中,从原始网格和处理后的网格中渲染出K幅图像,相机根据采样集放置和定向,如图等式所示(7)
其中r(M(·),P)是渲染函数,将一个纹理网格M(·)投影到一个RGB图像P,以及两个从原始网格和具有下采样纹理的网格渲染的图像集。从这些渲染的图像中,2D损失函数的组合,包括L2损失,SSIM [45]损失,基于VGG-19 [41]的知觉损失,将每对渲染图像的损失求和,得到该迭代的渲染损失,如式所示:
鉴于大量可微渲染算法的可用性,可以选择一个与目标应用程序非常匹配的算法。经过每几次迭代的验证,通过对从一组从Pk中均匀采样出的姿态Q渲染的图像,来计算出的损失进行平均,每隔几次迭代即可验证模型的性能。
五、实验
我们的DNN模型在降采样编码器中包含4个残差块,在地理编码模块中包含2个图残差块。我们选择了C1 = C2 = 64,使网络中的参数总数达到0.57M。为了计算渲染损失,我们使用了在SoftRasterizer[27]中提出的可微渲染器,以及一个Soft Phong Shader[4],其实现可在PyTorch3D [16]中使用。在每次迭代中,我们在计算损失时渲染K = 4个视图。训练DNN超过15000次迭代就足够收敛了。在验证模型时,我们使用Q = 60姿态在相机姿态范围内均匀采样。
参考资料:
论文地址:https://arxiv.org/pdf/2311.16581.pdf
智视图
智视图专注于研究并分享人工智能、计算机视觉和计算机图形学的前沿论文
商务合作:bd@aicvcg.com
招聘:hr@aicvcg.com
欢迎点赞!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/95765.html