技术领域
[0001] 本申请涉及计算机视觉技术领域,尤其涉及基于高斯泼溅的图像渲染方法、装置、设备、存储介质及程序产品。
相关背景技术
[0002] 新视点合成(Novel View Synthesis,NVS)是计算机视觉、计算机图形学中研究的热点之一。给定一组带有相机参数的照片,新视点合成任务的目标是利用这些已知的信息,重建场景,合成新的视角下场景的照片。
[0003] 目前,神经辐射场NeRF(神经辐射场,Neural Radiance Fields)在新视点合成任务中取得了显著的进展。NeRF是一种用于三维重建的隐式表示,旨在使用多层感知机拟合一组输入图像来表示场景的几何外观信息,最终通过体渲染的方式合成目标新视点。虽然神经辐射场在该领域取得了不错的效果,但是它需要大量的稠密输入视角进行训练。而在实际应用场景如AR/VR,机器人等场景中,我们获得的视角往往是稀疏的。在稀疏输入的情况下,NeRF容易在训练视角上过拟合,最后新视角合成的质量大幅下降。此外,由于NeRF的隐式表示和体渲染,其训练速度和渲染速度非常慢。近来,三维高斯泼溅模型3DGS(三维高斯泼溅模型,3D Gaussian Splatting)在NVS任务上取得了不错的效果。三维高斯泼溅模型是一种基于点的显示场景表示。通过一组参数化为三维高斯分布的点来描述场景中的几何、外观信息,并通过泼溅的方式渲染照片。得益于这种显示的场景表示以及高效的泼溅渲染方式,三维高斯泼溅模型的训练十分快速、高效,且可以做到高分辨率的快速实时渲染。但是三维高斯泼溅模型也需要稠密视角作为输入,当输入视角数量较少时,同样容易在训练视角上过拟合,导致其性能大幅下降。
[0004] 因此,亟需提出一种可以缓解三维高斯泼溅模型输入视角数量少时出现过拟合问题的方案。
[0005] 上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
具体实施方式
[0051] 应当理解,此处所描述的具体实施例仅仅用以解释本申请的技术方案,并不用于限定本申请。
[0052] 为了更好的理解本申请的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
[0053] 本申请实施例的主要解决方案是:获取训练图像,选取其参考视角,通过多视角立体模型得到参考视角下训练图像的多视图立体深度;将多视图立体深度进行过滤融合,生成多视图立体点云;将所述多视图立体点云输入三维高斯泼溅模型,对三维高斯泼溅模型的位置参数进行初始化;将训练图像和多视图立体深度通过前向映射和损失计算,得到训练图像的混合损失;将混合损失传回经过初始化的三维高斯泼溅模型,对三维高斯泼溅模型进行训练更新;给定目标视角及目标视角对应的相机参数,通过训练后的三维高斯泼溅模型进行目标视角下的图像渲染,生成在目标视角下的目标图像。
[0054] 新视点合成NVS(新视点合成,Novel View Synthesis)是计算机视觉、计算机图形学中研究的热点之一。给定一组带有相机参数的照片,新视点合成任务的目标是利用这些已知的信息,重建场景,合成新的视角下场景的照片。
[0055] 目前,神经辐射场NeRF(神经辐射场,Neural Radiance Fields)在新视点合成任务中取得了显著的进展。神经辐射场是一种用于三维重建的隐式表示,旨在使用多层感知机拟合一组输入图像来表示场景的几何外观信息,最终通过体渲染的方式合成目标新视点。虽然神经辐射场在该领域取得了不错的效果,但是它需要大量的稠密输入视角进行训练。而在实际应用场景如AR/VR,机器人等场景中,我们获得的视角往往是稀疏的。在稀疏输入的情况下,神经辐射场容易在训练视角上过拟合,最后新视角合成的质量大幅下降。此外,由于神经辐射场的隐式表示和体渲染,其训练速度和渲染速度非常慢。近来,三维高斯泼溅3DGS(三维高斯泼溅,3D Gaussian Splatting)在新视点合成任务上取得了不错的效果。三维高斯泼溅技术是一种基于点的显示场景表示。通过一组参数化为三维高斯分布的点来描述场景中的几何、外观信息,并通过泼溅的方式渲染照片。得益于这种显示的场景表示以及高效的泼溅渲染方式,三维高斯泼溅技术的训练十分快速、高效,且可以做到高分辨率的快速实时渲染。但是,与神经辐射场类似,三维高斯泼溅技术也需要稠密视角作为输入。当输入视角数量较少时,三维高斯泼溅同样容易在训练视角上过拟合,导致其性能大幅下降。因此,亟需提出一种可以做到高分辨率的快速实时渲染方案。
[0056] 本申请通过前向映射,可以缓解三维高斯泼溅模型在训练时稀疏视角下过拟合的问题;通过多视角立体模型生成多视图立体点云,可以提升点云的质量,提高模型图像渲染的准确性;再将多视图立体点云输入三维高斯泼溅模型,可以提升图像渲染的速率。
[0057] 需要说明的是,本实施例的执行主体可以是一种具有数据处理、网络通信以及程序运行功能的计算服务设备,例如平板电脑、个人电脑、手机等,或者是一种能够实现上述功能的电子设备、基于高斯泼溅的图像渲染设备等。以下以基于高斯泼溅的图像渲染设备为例,对本实施例及下述各实施例进行说明。
[0058] 基于此,本申请实施例提供了一种基于高斯泼溅的图像渲染方法,参照图1,图1为本申请基于高斯泼溅的图像渲染方法第一实施例的流程示意图。
[0059] 本实施例中,所述基于高斯泼溅的图像渲染方法包括步骤S10~S60:
[0060] 步骤S10,获取训练图像,选取所述训练图像的参考视角,通过多视角立体模型得到参考视角下所述训练图像的多视图立体深度。
[0061] 需要说明的是,所述训练图像是指用于训练三维高斯泼溅模型的数据集,这些数据集包含了大量的图像及其对应的标签或注释。在训练过程中,模型会学习这些图像的特征,并根据标签或注释来优化自身的参数,以提高对图像内容的识别、分类、检测或分割等能力。
[0062] 另外地,需要说明的是,所述参考视角是指当前正在被处理或以其为基准进行深度估计的视角。在多视角立体模型MVS成像过程中,为了重建三维场景,需要选择一个视角作为出发点,这个视角就是参考视角;参考视角的图像被用作基准,与其他视角的图像进行比较和匹配,以估计出该视角下每个像素点的深度值。
[0063] 另外地,需要说明的是,所述多视角立体模型是指MVSFormer模型,是一种基于深度学习技术的多视图立体成像新方法。它通过引入预训练的ViT模型来增强特征提取能力,并结合高效的深度预测网络和基于温度的深度估计策略,实现了高精度、高鲁棒性的深度估计。该模型在三维重建等领域具有广阔的应用前景和重要的研究价值。多视角立体模型通过引入预训练的ViT来增强多视图立体MVS(多视图立体,Multi‑View Stereo)的特征提取能力,从而学习更可靠的特征表示,该模型的核心在于其独特的架构设计,包括特征提取、相关体构建和深度估计三个主要部分;多视角立体模型引入了一个深度预测网络,常用的深度预测网络有CNN和Transformer,从相关体中学习并预测每个像素点的深度值。
[0064] 另外地,需要说明的是,所述多视图立体深度是指通过多视角立体模型估计获得图像中像素点的MVS深度。
[0065] 具体地,首先获取训练图像,然后选取训练图像的参考视角,再然后通过多视角立体模型参考视角下目标视点的多视图立体深度。通过多视角立体模型参考视角下目标视点的多视图立体深度的具体步骤包括:
[0066] 第一步,对训练图像进行特征提取:首先通过多视角立体模型对输入的训练图像进行降采样处理,节省计算开销;然后将降采样后的图像送入预训练的视觉转换模型ViT(Visual Transformer)中进行特征提取,可以选择不同类型的模型,如Twins(具有高效注意力机制和不同尺度的鲁棒位置编码)或DINO(自监督预训练的ViT模型);最后提取到的多尺度特征,例如1/8、1/16、1/32、1/64分辨率,随后被用于后续处理。第二步,构建相关体:首先根据预设的初始逆深度值,将特征点从参考视角变换到其他视角,构建特征匹配对;然后计算不同视角之间特征点的相似性或相关性,构建相关体。这个相关体包含了不同深度假设下的匹配成本信息。第三步,进行深度估计:多视角立体模型通过引入一个深度预测网络,常用的深度预测网络有卷积神经网络CNN和转换器Transformer,从相关体中学习并预测每个像素点的多视图立体深度,为了提高深度估计的精度和鲁棒性,多视角立体模型可能采用基于温度的深度预测策略,通过调整温度参数来平衡预测的准确性和平滑性。
[0067] 步骤S20,将所述多视图立体深度进行过滤融合,生成多视图立体点云。
[0068] 需要说明的是,所述多视图立体点云是指通过多视角立体模型MVS得到的点云,利用多视角立体模型得到的点云比三维高斯泼溅模型原始的COLMAP点云质量更高,能够促进后续三维高斯泼溅模型中参数的优化。由于多视角立体模型生成的点云具有较高的密度和精度,因此它能够为三维高斯泼溅模型提供更丰富的输入数据。这些数据不仅可以提高表面重建的精度,还可以帮助优化三维高斯泼溅模型中的参数设置,如高斯分布的尺寸、形状和位置等。在三维高斯泼溅模型中,参数的优化通常依赖于输入数据的准确性和丰富性。使用多视角立体模型生成的点云作为输入,可以使得参数优化过程更加稳定、可靠和高效。通过不断优化这些参数,可以进一步提高三维表面模型的质量和逼真度。
[0069] 具体地,通过多视角立体模型计算目标视点每个参考视角下的多视图立体深度;将所有视角下的多视图立体深度通过几何一致性过滤,生成深度一致性掩膜;根据所述深度一致性掩膜,融合生成所述目标视点的多视图立体点云。
[0070] 步骤S30,将所述多视图立体点云输入三维高斯泼溅模型,对三维高斯泼溅模型的位置参数进行初始化。
[0071] 具体地,首先对多视图立体点云进行去噪平滑等预处理,根据具体实际对点云进行降采样或者上采样,以适应三维高斯泼溅模型的精度需求;然后使用处理后的点云作为输入,初始化三维高斯泼溅模型中的位置参数,每个三维高斯泼溅模型中高斯体的均值(即位置)可以根据点云中的点来设置。
[0072] 步骤S40,将所述训练图像和多视图立体深度通过前向映射和损失计算,得到所述训练图像的混合损失。
[0073] 具体地,首先将通过初始化的三维高斯泼溅模型对训练图像进行渲染,生成渲染图像,然后给定训练图像和训练图像的训练视角,通过前向映射的方式,获取训练图像在该训练视角下的投影图像,根据投影图像获取训练图像在该训练视角下的外观信息,在训练过程中,随机采取一些虚拟视角作为训练视角,获取训练视角下相应的外观信息,再基于外观信息和渲染图像通过混合损失函数生成训练图像的混合损失,该混合损失可以为三维高斯泼溅模型提供额外约束,缓解过拟合问题。
[0074] 步骤S50,将所述混合损失传回经过初始化的三维高斯泼溅模型,对所述三维高斯泼溅模型进行训练更新。
[0075] 需要说明的是,所述反向传播算法是指通过计算损失函数关于网络参数的梯度来更新网络权重,从而最小化损失函数。
[0076] 另外地,需要说明的是,所述三维高斯泼溅模型是指3DGS模型(三维高斯泼溅模型,3D Gaussian Splatting),主要通过使用高斯函数来表示三维空间中的点或体积,进而实现对三维场景的高效和精确表示,具有高效性、细节保留、灵活性、实时性等技术特点。
[0077] 具体地,将所述混合损失通过反向传播算法传回经过多视图立体点云对位置参数进行初始化的三维高斯泼溅模型,对所述三维高斯泼溅模型进行迭代训练更新。
[0078] 步骤S60,给定目标视角及目标视角对应的相机参数,通过训练后的三维高斯泼溅模型进行目标视角下的图像渲染,生成在目标视角下的目标图像。
[0079] 具体地,训练的时候,我们在训练视角以及前向映射的虚拟视角上计算三维高斯泼溅模型相应视角渲染出来的图像和监督信号之间的损失,从而优化高斯模型中的各个参数;在训练完成之后,可以渲染出任意视角的图片。因此给定目标视角以及目标视角对应的相机参数,通过训练后的三维高斯泼溅模型进行目标视角下的图像渲染,生成在目标视角下的目标图像。更具体地,首先进行场景输入生成高斯点,输入的场景通常是静态场景的图像集合,以及由运动恢复结构技术校准的相应相机参数,从这些图像和相机参数中,生成一个稀疏的三维点云,然后,将这些点云转换为高斯点的集合,每个高斯点由位置(均值)、协方差矩阵(表示形状和方向)、不透明度α以及颜色(通过球谐函数SH表示)等参数定义;然后通过多视图立体点云初始化三维高斯泼溅模型中的位置参数,对高斯点进行优化;再然后将优化后的高斯点投影到图像平面上,根据相机的视角和投影矩阵计算每个高斯点在图像上的位置,将每个高斯点的颜色和不透明度等属性累加到对应的像素上,经过所有高斯点的投影和属性累加后,生成最终的渲染图像,即目标图像。该图像包含了场景的三维信息,并以二维图像的形式呈现出来。
[0080] 本实施例通过上述方案,通过前向映射,可以缓解三维高斯泼溅模型在训练时稀疏视角下过拟合的问题;通过多视角立体模型生成多视图立体点云,可以提升点云的质量,提高三维高斯泼溅模型的准确性和丰富度。
[0081] 基于上述实施方案,在一种可行的实施方式中,上述步骤S10中选取所述训练图像的参考视角,通过多视角立体模型得到参考视角下所述训练图像的多视图立体深度可以包括步骤S11~S12:
[0082] 步骤S11,选取所述训练图像的一个视角作为参考视角,选取所述训练图像除参考视角以外的视角作为源视角。
[0083] 需要说明的是,所述参考视角是指当前正在被处理或以其为基准进行深度估计的视角。在多视角立体模型MVS成像过程中,为了重建三维场景,需要选择一个视角作为出发点,这个视角就是参考视角;参考视角的图像被用作基准,与其他视角的图像进行比较和匹配,以估计出该视角下每个像素点的深度值。
[0084] 另外地,需要说明的是,所述源视角是指除了参考视角之外,用于与参考视角图像进行比较和匹配,以提供深度信息的其他视角。在多视角立体模型成像中,通常会有多个源视角的图像,它们共同为参考视角提供深度估计所需的信息;源视角的图像通过与参考视角的图像进行特征匹配和深度估计,为三维重建提供必要的深度信息。这些信息随后被用于构建三维点云或网格,以表示三维场景的几何结构。
[0085] 具体地,训练图像中的目标视点有很多视角,选取其中一个视角作为参考视角,剩下的其余视角作为源视角,通过多视角立体模型计算参考视角下的多视图立体深度;然后选取另外一个视角作为参考视角,剩下的其余视角作为源视角,计算该视角下的多视图立体深度;将所有视角都选定为参考角度,计算该视角下的多视图立体深度。
[0086] 步骤S12,通过多视角立体模型提取所述训练图像在参考视角与源视角下的特征,基于参考视角与源视角下的特征生成训练图像在所述参考视角下的多视图立体深度。
[0087] 具体地,首先对训练图像进行数据准备,确定训练图像以及训练图像的相机参数;然后对训练图像进行降采样处理,再将降采样后的图像通过Vision Transformer(ViT)对训练图像进行特征提取,进而对提取来的特征进行特征降维与上采样;再然后利用上述特征和相关值,构建成本体积,该体积包含了所有源视图在不同深度假设下的投影图像与参考视图之间的相似度或差异度量;最后利用深度神经网络对成本体积进行正则化处理,以估计每个像素点的最优深度,网络通过最小化损失函数(如基于光度一致性的损失函数)来找到最可能的深度值,得到在所确定的参考视角下的多视图立体深度(MVS深度)。
[0088] 基于上述实施方案,在一种可行的实施方式中,上述步骤S20将所述多视图立体深度进行过滤融合,生成多视图立体点云可以包括步骤S21~S23:
[0089] 步骤S21,计算所述训练图像每个视角下的多视图立体深度。
[0090] 具体地,训练图像有很多视角,选取其中一个视角作为参考视角,剩下的其余视角作为源视角,通过多视角立体模型计算参考视角下的多视图立体深度;然后选取另外一个视角作为参考视角,剩下的其余视角作为源视角,计算该视角下的多视图立体深度;将所有视角都选定为参考角度,计算该视角下的多视图立体深度。
[0091] 步骤S22,将所有视角下的多视图立体深度通过几何一致性过滤,生成深度一致性掩膜。
[0092] 需要说明的是,所述深度一致性掩膜是一种用于标识深度图中几何一致性区域的二值图像(或矩阵)。在这个掩膜中,每个像素的值(通常是0或1)表示对应深度图中像素的几何一致性状态。具体来说,如果深度图中某个像素的深度值与其在多个视角下的投影一致,那么该像素在一致性掩膜中对应的值会被设置为1(表示一致),否则会被设置为0(表示不一致)。掩膜的生成通常包括:深度估计、几何一致性检查和掩膜生成三个步骤。
[0093] 具体地,首先计算出所有视角下的多视图立体深度。然后进行几何一致性检查:基于训练图像中所有像素点所有视角下的多视图立体深度,生成训练图像的深度图,通过深度图和相机参数,将二维图像中的像素点反投影到三维空间中,构建出场景的三维点云,对于三维点云中的每个点,检查其在不同视角下的投影是否一致。这通常涉及比较不同视角下相同空间位置的像素点的深度值,考虑到遮挡、噪声和误差等因素,可以设置一定的阈值来判断深度值的一致性。如果两个视角下的深度值之差在阈值范围内,则认为这两个视角下的深度估计是一致的,在检查过程中,记录下所有不一致的像素点或区域。这些区域可能是由于遮挡、光照变化、相机校准误差等原因导致的。最后生成深度一致性掩膜:创建一个与MVS深度图相同大小的二值图像(掩膜),所有像素的初始值都设置为1(表示假设所有像素都是一致的);根据几何一致性检查的结果,将识别出的不一致区域的像素值在掩膜中设置为0(表示不一致);最终输出深度一致性掩膜。这个掩膜可以用于后续的三维重建、场景理解等任务中,以指示哪些区域的深度值是可靠的,哪些区域可能需要进一步处理或忽略。
[0094] 步骤S23,根据所述深度一致性掩膜,融合生成所述目标视点的多视图立体点云。
[0095] 具体地,基于深度一致性掩膜可以获取完成一致性过滤后的多视图立体深度,利用深度图和相机参数,将训练图像中的像素点反投影到三维空间中,生成每个视角下的三维点云,在反投影过程中,应只考虑深度一致性掩膜中标记为一致的像素点,忽略不一致的像素点;对每个视角下的点云进行预处理,包括去噪、滤波等操作,以提高点云的质量;然后将预处理后的每个视角的点云进行融合,生成多视图立体点云。
[0096] 基于上述实施方案,在一种可行的实施方式中,上述步骤S40将所述训练图像和多视图立体深度通过前向映射和损失计算,得到所述训练图像的混合损失包括步骤S41~S44:
[0097] 步骤S41,将通过初始化的三维高斯泼溅模型对训练图像进行渲染,生成渲染图像。
[0098] 具体地,三维高斯泼溅模型将场景中的高斯点参数化一个三维高斯分布,该三维高斯分布的均值为点在世界坐标系下的位置x,其形状和大小用三维协方差矩阵∑来表示,三维高斯分布的表示如下:
[0099]
[0100] 其中,G(X)为三维高斯分布;x为高斯点在世界坐标系下的位置;E为位置x的三维协方差矩阵。
[0101] 其中,三维协方差矩阵可以分解为旋转和缩放来表示三维高斯分布的大小和方向,表示为:
[0102] E=RSSTRT
[0103] 其中,E为位置x的三维协方差矩阵;R是旋转矩阵;RT是旋转矩阵R的转置;S是缩放T矩阵,S是缩放矩阵S的转置。
[0104] 若场景中共有n个高斯点,则完整的三维高斯参数表示为:
[0105]
[0106] 其中,i表示第i个高斯点;α表示高斯点的不透明度;c表示高斯点的颜色;g为高斯点的三维高斯参数;x为像素点在世界坐标系下的位置;S为缩放矩阵;R为旋转矩阵。
[0107] 在做渲染时,将三维的高斯分布投影至二维,具体地,将三维协方差矩阵∑投影至二维的表达式为:
[0108] E'=JWEWTJT
[0109] 其中,J是投影变换的雅可比矩阵;JT是雅可比矩阵的转置;W为雅可比矩阵中的一T个元素,用于在投影过程中调整协方差矩阵的值;W 为W的转置;E是三维协方差矩阵;E’是三维协方差矩阵投影至二维的协方差矩阵。
[0110] 投影后,使用不透明度混合的方式来渲染出当前视角的颜色,渲染当前视角颜色的表达式为:
[0111]
[0112] 其中,Ti为累计不透明度,α表示高斯点的不透明度,c表示高斯点的颜色,C为渲染后的颜色。
[0113] Ti的计算公式为:
[0114]
[0115] 通过上述步骤渲染出一个视角下的渲染图像I'。
[0116] 将渲染图像I'与该视角下真实的照片I计算下述L1和SSIM混合损失,以对三维高斯泼溅模型进行训练,计算混合损失的计算公式为:
[0117] Lphoto=λ1L1(I',I)+(1‑λ1)(1‑SSIM(I',I))
[0118] 其中,Lphoto为混合损失;L1是两个图像像素值差的绝对值之和的平均值;SSIM用于衡量两个图像的视觉影响和结构相似度;λ1是一个介于0和1之间的权重参数,用于平衡L1损失和SSIM。
[0119] 步骤S42,将训练图像通过前向映射,得到所述训练图像的虚拟视角下的投影图像。
[0120] 具体地,设备获取训练图像、训练视角、相机位姿、该训练视角下的多视图立体深度以及该目标视角下的相机位姿,通过前向映射的方式,得到目标视角下训练图像投影后的投影图像Itgt:
[0121]
[0122] 其中,Itgt为投影后的投影图像,Isrc为训练图像, 为该训练视角下的多视图立体深度,Psrc为相机位姿,Ptgt为目标视角的相机位姿,fwd()函数通常指的是一种将图像从一个视角变换到另一个视角的透视变换操作。
[0123] 具体地,投影图像和训练图像之间的坐标关系式为:
[0124]
[0125] 其中,K是相机内参矩阵;ptgt是指通过前向映射投影后的投影图像中的像素坐标;psrc是指训练图像中的像素坐标。
[0126] 步骤S43,根据虚拟视角下的投影图像,获取所述训练图像在虚拟视角下的外观信息。
[0127] 具体地,随机采用一些虚拟视角,并利用得到的多视图立体深度,通过前向映射来获得虚拟视角下的外观信息。
[0128] 步骤S44,基于所述外观信息和所述渲染图像,通过混合损失函数生成混合损失。
[0129] 具体地,基于所述外观信息和所述渲染图像,通过混合损失函数生成混合损失,其中,混合损失函数的计算公式为:
[0130] Lfwd=λ2L1(I'f,If)+(1‑λ2)(1‑SSIM(I'f,If))
[0131] 其中,Lfwd为混合损失,λ2是一个介于0和1之间的权重参数,用于平衡L1损失和SSIM;If为训练图像在虚拟视角下的外观信息;I'f为渲染图像;L1是两个图像像素值差的绝对值之和的平均值;SSIM用于衡量两个图像的视觉影响和结构相似度。
[0132] 本实施例通过上述方案,由于三维高斯泼溅模型也需要稠密视角作为输入,当输入视角数量较少时,三维高斯泼溅模型容易在训练视角上过拟合,导致其性能大幅下降,因此本申请通过基于虚拟视角下的外观信息和渲染图像,通过混合损失函数生成混合损失,可以缓解三维高斯泼溅模型在训练视角上的过拟合问题,可以提升模型的渲染质量。
[0133] 基于上述实施方案,在一种可行的实施方式中,所述将所述训练图像和多视图立体深度通过前向映射和损失计算,得到所述训练图像的混合损失之后还包括步骤S70~S90:
[0134] 步骤S70,通过三维高斯泼溅模型获取训练图像的三维高斯深度。
[0135] 具体地,通过三维高斯泼溅模型渲染获取出训练图像的一个视角下的三维高斯深度,计算公式为:
[0136]
[0137] 其中,d为高斯点的三维高斯深度, 为高斯点的不透明度。
[0138] 步骤S80,基于所述多视图立体深度计算所述三维高斯深度的几何一致损失。
[0139] 具体地,对渲染出来的三维高斯深度施加几何一致损失,几何一致损失的计算公式为:
[0140] LCS=∑|Dr‑Dmvs|⊙M
[0141] 其中,LCS为几何一致损失;Dr为三维高斯深度;Dmvs为多视图立体深度;M为三维高斯泼溅模型中的一致性掩膜;⊙是同或运算符。
[0142] 步骤S90,将所述几何一致损失通过反向传播算法传回三维高斯泼溅模型,对所述三维高斯泼溅模型进行训练更新。
[0143] 具体地,将所述几何一致损失通过反向传播算法传回三维高斯泼溅模型,对所述三维高斯泼溅模型进行迭代训练更新。
[0144] 本实施例通过上述方案,通过计算几何一致损失,将损失传回三维高斯泼溅模型,对模型进行迭代训练更新,可以使得模型的集合信息能够在训练过程中保持视角一致。
[0145] 基于上述实施方案,在一种可行的实施方式中,上述步骤S70后还包括步骤S100~S110:
[0146] 步骤S100,通过预训练模型生成训练图像的单目预测深度,基于所述单目预测深度计算所述三维高斯深度的排序损失。
[0147] 需要说明的是,所述单目预测深度是指从单个摄像头捕获的二维图像中预测出场景中每个像素点的深度信息。
[0148] 具体地,设备通过预训练模型DPT生成训练图像每个训练视角的的单目预测深度,然后计算排序损失。示例性地,每次计算排序损失时,随机采样相同数量(512个)两批不重合的像素点集合S1和S2,计算排序损失的计算公式为:
[0149]
[0150] 其中,Lmono为单目预测深度;Dr(S1)为像素点S1的三维高斯深度;Dr(S2)为像素点S2mono mono的三维高斯深度;M'=∏D (S1)<D (S2)。
[0151] 步骤S110,将所述排序损失通过反向传播算法传回三维高斯泼溅模型,对所述三维高斯泼溅模型进行训练更新。
[0152] 具体地,将所述排序损失通过反向传播算法传回三维高斯泼溅模型,对所述三维高斯泼溅模型进行迭代训练更新。
[0153] 本实施例通过上述方案,通过计算排序损失,将损失传回三维高斯泼溅模型,对模型进行迭代训练更新,可以将单目预测深度作为先验信息作为补充监督,确保过滤后出现缺失的区域深度图依然可以保持完整。
[0154] 需要说明的是,上述示例仅用于理解本申请,并不构成对本申请基于高斯泼溅的图像渲染方法的限定,基于此技术构思进行更多形式的简单变换,均在本申请的保护范围内。
[0155] 本申请还提供一种基于高斯泼溅的图像渲染装置,请参照图2,所述基于高斯泼溅的图像渲染装置包括:
[0156] 深度计算模块201,用于获取训练图像,选取所述训练图像的参考视角,通过多视角立体模型得到参考视角下所述训练图像的多视图立体深度;
[0157] 点云生成模块202,用于将所述多视图立体深度进行过滤融合,生成多视图立体点云;
[0158] 初始化模块203,用于将所述多视图立体点云输入三维高斯泼溅模型,对三维高斯泼溅模型的位置参数进行初始化;
[0159] 混合损失模块204,用于将所述训练图像和多视图立体深度通过前向映射和损失计算,得到所述训练图像的混合损失;
[0160] 训练更新模块205,用于将所述混合损失传回经过初始化的三维高斯泼溅模型,对所述三维高斯泼溅模型进行训练更新;
[0161] 图像渲染模块206,用于给定目标视角及目标视角对应的相机参数,通过训练后的三维高斯泼溅模型进行目标视角下的图像渲染,生成在目标视角下的目标图像。
[0162] 本申请提供的基于高斯泼溅的图像渲染装置,采用上述实施例中的基于高斯泼溅的图像渲染方法,能够解决三维高斯泼溅模型在训练时过拟合的技术问题。与现有技术相比,本申请提供的基于高斯泼溅的图像渲染装置的有益效果与上述实施例提供的基于高斯泼溅的图像渲染方法的有益效果相同,且所述基于高斯泼溅的图像渲染装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
[0163] 本申请提供一种基于高斯泼溅的图像渲染设备,基于高斯泼溅的图像渲染设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的基于高斯泼溅的图像渲染方法。
[0164] 下面参考图3,其示出了适于用来实现本申请实施例的基于高斯泼溅的图像渲染设备的结构示意图。本申请实施例中的基于高斯泼溅的图像渲染设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(Personal Digital Assistant:个人数字助理)、PAD(Portable Application Description:平板电脑)、PMP(Portable Media Player:便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图3示出的基于高斯泼溅的图像渲染设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
[0165] 如图3所示,基于高斯泼溅的图像渲染设备可以包括处理装置1001(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM:Read Only Memory)1002中的程序或者从存储装置1003加载到随机访问存储器(RAM:Random Access Memory)1004中的程序而执行各种适当的动作和处理。在RAM1004中,还存储有基于高斯泼溅的图像渲染设备操作所需的各种程序和数据。处理装置1001、ROM1002以及RAM1004通过总线1005彼此相连。输入/输出(I/O)接口1006也连接至总线。通常,以下系统可以连接至I/O接口1006:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置1007;包括例如液晶显示器(LCD:Liquid Crystal Display)、扬声器、振动器等的输出装置1008;包括例如磁带、硬盘等的存储装置1003;以及通信装置1009。通信装置1009可以允许基于高斯泼溅的图像渲染设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的基于高斯泼溅的图像渲染设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
[0166] 特别地,根据本申请公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置1003被安装,或者从ROM1002被安装。在该计算机程序被处理装置1001执行时,执行本申请公开实施例的方法中限定的上述功能。
[0167] 本申请提供的基于高斯泼溅的图像渲染设备,采用上述实施例中的基于高斯泼溅的图像渲染方法,能解决三维高斯泼溅模型在训练时过拟合的技术问题。与现有技术相比,本申请提供的基于高斯泼溅的图像渲染设备的有益效果与上述实施例提供的基于高斯泼溅的图像渲染方法的有益效果相同,且该基于高斯泼溅的图像渲染设备中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。
[0168] 应当理解,本申请公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0169] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
[0170] 本申请提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令(即计算机程序),计算机可读程序指令用于执行上述实施例中的基于高斯泼溅的图像渲染方法。
[0171] 本申请提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体地例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM:Random Access Memory)、只读存储器(ROM:Read Only Memory)、可擦式可编程只读存储器(EPROM:Erasable Programmable Read Only Memory或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM:CD‑Read Only Memory)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(Radio Frequency:射频)等等,或者上述的任意合适的组合。
[0172] 上述计算机可读存储介质可以是基于高斯泼溅的图像渲染设备中所包含的;也可以是单独存在,而未装配入基于高斯泼溅的图像渲染设备中。
[0173] 上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被基于高斯泼溅的图像渲染设备执行时,使得基于高斯泼溅的图像渲染设备:获取训练图像,选取其参考视角,通过多视角立体模型得到参考视角下训练图像的多视图立体深度;将多视图立体深度进行过滤融合,生成多视图立体点云;将所述多视图立体点云输入三维高斯泼溅模型,对三维高斯泼溅模型的位置参数进行初始化;将训练图像和多视图立体深度通过前向映射和损失计算,得到训练图像的混合损失;将混合损失传回经过初始化的三维高斯泼溅模型,对三维高斯泼溅模型进行训练更新;给定目标视角及目标视角对应的相机参数,通过训练后的三维高斯泼溅模型进行目标视角下的图像渲染,生成在目标视角下的目标图像。
[0174] 可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN:
Local Area Network)或广域网(WAN:Wide Area Network)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0175] 附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0176] 描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
[0177] 本申请提供的可读存储介质为计算机可读存储介质,所述计算机可读存储介质存储有用于执行上述基于高斯泼溅的图像渲染方法的计算机可读程序指令(即计算机程序),能够解决基于高斯泼溅的图像渲染的技术问题。与现有技术相比,本申请提供的计算机可读存储介质的有益效果与上述实施例提供的基于高斯泼溅的图像渲染方法的有益效果相同,在此不做赘述。
[0178] 本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的基于高斯泼溅的图像渲染方法的步骤。
[0179] 本申请提供的计算机程序产品能够解决三维高斯泼溅模型在训练时过拟合的技术问题。与现有技术相比,本申请提供的计算机程序产品的有益效果与上述实施例提供的基于高斯泼溅的图像渲染方法的有益效果相同,在此不做赘述。
[0180] 以上所述仅为本申请的部分实施例,并非因此限制本申请的专利范围,凡是在本申请的技术构思下,利用本申请说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本申请的专利保护范围内。