助力全息通信技术!GPS-Gaussian实现2K实时人体新视点合成

论文标题:

GPS-Gaussian: Generalizable Pixel-wise 3D Gaussian Splatting for Real-time Human Novel View Synthesis

论文作者:

Shunyuan Zheng, Boyao Zhou, Ruizhi Shao, Boning Liu, Shengping Zhang, Liqiang Nie, Yebin Liu

项目地址:

https://shunyuanzheng.github.io/GPS-Gaussian

【关于作者】

本文由原paper一作郑顺源博士全权翻译写作,郑顺源博士就读于哈尔滨工业大学,师从张盛平教授,主要研究方向为三维人体建模与渲染。在顶级会议SIGGRAPH和CVPR都发表过多篇paper。

个人主页:https://shunyuanzheng.github.io

导读:

虽然3DGS分钟级的训练速度与基于NeRF的方法相比已经得到了巨大提升,但是逐帧的优化过程仍然限制其在全息通讯等交互式场景中的应用。如何利用大规模数据先验,构建具有泛化能力的3D高斯表示,避免原始3DGS的逐帧优化过程,实现高动态交互式场景下的实时新视点合成,正是GPS-Gaussian研究的核心创新之处。在人体新视点合成任务中,以稀疏相机视点为输入,GPS-Gaussian能够以25FPS的效率对走入场景中的任意表演者实现2K分辨率的自由视点渲染。©️【深蓝AI】

1. 背景简介

新视点合成是经典的计算机视觉和图形学任务,人体新视点合成作为其子任务,在全息通讯、在线教育、赛事转播和舞台特效中具有广泛应用。目前工业界成熟的解决方案需要稠密的相机视点,稠密视点下的新视点合成对算法依赖度较低,通过光场计算即可绘制新视点。但是这样的系统成本高昂,同时也会对传输带来巨大挑战。如何降低对视点数量的依赖是学术界长期关注的热点问题。

神经辐射场(Neural Radiance Field, NeRF) 由于高真实感的渲染质量近年来引起巨大关注,但其本身存在的两个缺陷限制了其在交互式场景中的直接应用,一方面是神经辐射场需要稠密地对空间进行采样,导致渲染速度较慢;另一方面是它需要逐场景、逐个体优化。虽然有许多优秀的工作在加速和提升泛化性方面做出巨大贡献,但是离实际应用仍有一定距离。

基于深度的图像绘制(Depth Image Based Rendering, DIBR) 是实现高效新视点合成的另一种技术路线。这类方法借助来自深度传感器或MVS得到的几何代理,将源视点像素扭曲并加权融合到新视点上。这类方法速度相对较快,并且都是可泛化的,但是如何获取高质量的几何代理一直在探索中。同时,由于图像扭曲工作在二维图像域,缺乏三维感知,导致在遮挡处效果下降明显。

3D高斯泼溅(3D Gaussian Splatting, 3DGS) 以位置,颜色,旋转,尺度,透明度组成高斯基元,使用多视点图像优化整个场景的三维表达。3DGS的训练和渲染速度都明显快于神经辐射场的方法,并且能取得与其相媲美的渲染质量。作为一种点云表征,由于使用了alpha blending的渲染方式,与之前点云渲染方法相比,梯度传递更加精准。但是,目前而言3DGS仍然存在一些亟待解决的问题,首先是优化过程虽然已极大加速,但是仍然无法避免;其次,稀疏视点下优化得到的3D高斯容易过拟合到源视点上,导致在新视点上存在噪声。

2. 方案提出

在这里插入图片描述
▲图1|GPS-Gaussian实时系统效果展示©️【深蓝AI】

我们这次所提出的可泛化3D高斯表征GPS-Gaussian,希望能在保留「3D高斯渲染速度快」「渲染质量高」这两个特点的同时,避免逐场景优化的过程,以及提升其在稀疏视点下的性能。具备这些特点,便可对走入拍摄场地内的任意人体实现高质量实时自由视点渲染。为了达到这个目标,我们需要利用大规模人体数据进行训练以学习人体先验。在实际应用时,以稀疏视点图像作为输入,前馈式地推理出三维人体高斯表征。即使用先验学习加前馈式推理的方式,代替原始3D高斯逐场景的优化过程。

在这里插入图片描述
▲图2|GPS-Gaussian训练及推断流程©️【深蓝AI】

GPS-Gaussian方法的核心是以像素对齐的方式,将3D高斯定义在源视点2D图像平面上,也就是在像素坐标系上定义5张高斯特征图,分别表示位置、颜色、旋转、尺度和透明度:

G ( x ) = { M p ( x ) , M c ( x ) , M r ( x ) , M s ( x ) , M α ( x ) } \mathbf{G}(x) = \{\mathcal{M}_p(x), \mathcal{M}_c(x), \mathcal{M}_r(x), \mathcal{M}_s(x), \mathcal{M}_\alpha(x)\} G(x)={Mp(x),Mc(x),Mr(x),Ms(x),Mα(x)}

通过计算得到这些特征图后,使用人体掩膜,把人体区域内所有像素上对应的高斯特征取出来,每个像素上的特征即可组成一个高斯基元。把多个源视点上的高斯基元反投影到统一的世界坐标系中,便可构成当前场景内人体的高斯表征。

3. 方法详析

方法流程如图3所示,在以人为中心的稀疏视点场景中,给定源视点RGB视频流以及指定目标新视点位置,GPS-Gaussian的目标是实时合成该目标新视点的人体渲染结果。具体包含以下几个步骤:

在这里插入图片描述
▲图3|GPS-Gaussian方法框架©️【深蓝AI】

■3.1 视点选择与深度估计

首先根据选定的目标视点,找到与其相邻的两个视点构成双目立体图像对,并进行立体校正。使用一个共享权重的图像编码器 E i m g \mathcal{E}_{img} Eimg对两张矫正后的输入图像 I l , I r \mathbf{I}_{l}, \mathbf{I}_{r} Il,Ir进行编码:

⟨ { f l s } s = 1 S , { f r s } s = 1 S ⟩ = E i m g ( I l , I r ) \langle\{\mathbf{f}_l^s\}_{s=1}^S, \{\mathbf{f}_r^s\}_{s=1}^S\rangle = \mathcal{E}_{img}(\mathbf{I}_{l}, \mathbf{I}_{r}) ⟨{fls}s=1S,{frs}s=1S=Eimg(Il,Ir)

然后使用得到的特征图 { f l s } s = 1 S , { f r s } s = 1 S \{\mathbf{f}_l^s\}_{s=1}^S, \{\mathbf{f}_r^s\}_{s=1}^S {fls}s=1S,{frs}s=1S构建代价体积进行特征匹配,从而回归出两个源视点深度。双目立体视觉中,只要找到准确的特征匹配关系,就能根据内外参计算出深度值。并且,立体矫正后的图像对还有一个特点——两张图像上的对应点必定在像素坐标的同一行上,利用这个特点可以进一步减小计算复杂度。深度估计模块在RAFT-Stereo基础上稍作修改,使其在大约10ms的时间内准确地计算出两个源视点的深度图。记深度估计模块为 Φ d e p t h \Phi_{depth} Φdepth,左右视点相机参数为 K l , K r K_l, K_r Kl,Kr,则:

⟨ D l , D r ⟩ = Φ d e p t h ( f l S , f r S , K l , K r ) \langle\mathbf{D}_l, \mathbf{D}_r\rangle = \Phi_{depth}(\mathbf{f}_l^S, \mathbf{f}_r^S, K_l, K_r) Dl,Dr=Φdepth(flS,frS,Kl,Kr)

其中 D l , D r \mathbf{D}_l, \mathbf{D}_r Dl,Dr分别为左右视点深度图。深度图是GPS-Gaussian中的一个重要组成部分。一方面,已知内外参后,二维像素平面上每一点的深度值,通过反投影计算可以直接得到世界坐标系下的三维坐标。因此,深度图可以直接根据内外参转换为位置特征图,这是高斯最重要的特征图,直接决定了每个高斯点的位置,同时也是连接二维图像空间和三维空间的桥梁。另一方面,在回归其他特征图时,深度图可以提供丰富的几何线索。

■3.2 像素级高斯特征图预测

在得到深度图 D \textbf{D} D后,二维图像上位于位置的像素可以根据相机投影矩阵 P \textbf{P} P反投影到三维空间中,即:

M p ( x ) = Π P − 1 ( x , D ( x ) ) \mathcal{M}_p(x) = \Pi^{-1}_\mathbf{P}(x, \mathbf{D}(x)) Mp(x)=ΠP1(x,D(x))

因此,深度图通过反投影计算即可得到高斯位置特征图。考虑到人体表面以漫反射为主,为了简化计算,GPS-Gaussian没有使用原始3DGS中球谐函数的方式表征高斯基元的颜色,而是直接将原始RGB图像作为高斯颜色特征图,即:

M c ( x ) = I ( x ) \mathcal{M}_c(x) = \mathbf{I}(x) Mc(x)=I(x)

我们认为剩余的三个高斯特征图与以下三个部分信息有关:

●像素级局部特征;

●全局人体语义信息;

●空间几何结构。

图像特征提供了前两部分信息,因此设置额外的编码器 E d e p t h \mathcal{E}_{depth} Edepth对深度图进行编码,以此为每个像素提供几何感知。图像特征和空间特征共同送入U-Net结构的编码器 D p a r m \mathcal{D}_{parm} Dparm以回归像素级高斯特征 Γ \mathbf{\Gamma} Γ

Γ = D p a r m ( E i m g ( I ) ⊕ E d e p t h ( D ) ) \mathbf{\Gamma} = \mathcal{D}_{parm} (\mathcal{E}_{img}(\mathbf{I}) \oplus\mathcal{E}_{depth}(\mathbf{D})) Γ=Dparm(Eimg(I)Edepth(D))

为每个高斯特征图设置独立预测头 h h h,分别包含两个卷积层。旋转特征图需要被归一化以表示四元数:

M r ( x ) = N o r m ( h r ( Γ ( x ) ) ) \mathcal{M}_r(x) = Norm({h}_r(\mathbf{\Gamma}(x))) Mr(x)=Norm(hr(Γ(x)))

尺度征图和透明度特征图需要额外的激活函数控制其数值范围:

M s ( x ) = S o f t p l u s ( h s ( Γ ( x ) ) ) \mathcal{M}_s(x) = Softplus({h}_s(\mathbf{\Gamma}(x))) Ms(x)=Softplus(hs(Γ(x))) M α ( x ) = S i g m o i d ( h α ( Γ ( x ) ) ) \mathcal{M}_\alpha(x) = Sigmoid({h}_\alpha(\mathbf{\Gamma}(x))) Mα(x)=Sigmoid(hα(Γ(x)))

■3.3 联合训练与可微渲染

通过以上步骤,我们得到定义在两个源视点上的5张原图分辨率的高斯特征图。然后,我们把每个前景像素取出来组成一个高斯基元,把来自两个源视点的所有高斯基元反投影到空间中即可构成当前时刻三维人体高斯表征,将该表征渲染到目标视点得到新视点渲染图像,整个网络框架是端到端可微的。

联合训练主要包含两个方面,一方面是左右两个视点深度估计的共同优化,因为原本的双目深度估计方法是两个视点独立优化的,导致从预测深度图恢复得到的三维表征可能存在左右视点之间不一致的问题。另一个方面,深度估计和高斯参数预测这两个模块也是联合优化的,高质量的渲染依赖于准确的深度估计,额外的渲染监督也可以使得双目深度估计更加准确。

损失函数与原始高斯相同,使用MAE和SSIM对新视点渲染结果使用真值图像监督。此外还需要对深度估计的结果使用真实深度进行监督,这也是目前GPS-Gaussian的一个不足之处,限制其在更通用场景上的应用。

4. 实验

■4.1 实验设置

为了在大规模数据上学习人体先验,我们分别使用了Twindom和THuman2.0数据集中的1700个和526个人体扫描模型,并随机保留了200和100个模型用于测试。如图3所示,我们在场景中环形均匀布置8个相机,两两之间约为45°,半径为2米。将人体模型渲染到这8个相机作为源视点,在每两台相机之间再随机选择三个视点作为新视点。为了验证在真实场景下的泛化能力,我们在同样相机设置下搭建真实世界8相机采集环境,并在两两相机之间增加一台相机作为新视点用于测试,共采集4个不同的动态人体视频。

对比方法我们选择了可泛化神经辐射场方法ENeRF和IBRNet,以及基于DIBR的人体新视点合成方法FloRen进行对比,所有方法在同样数据集上从头训练,均以两个源视点作为输入,合成一个目标新视点。同时我们还使用全部8个输入视点训练了原始3DGS。需要注意的是,GPS-Gaussian和FloRen使用了深度真值进行监督。

■4.2 数值对比定量实验

表1的定量数值对比结果证明GPS-Gaussian在所有数据集上均同时取得了比现有方法更好的渲染质量和更快的推理速度。

在这里插入图片描述
▲表1|定量数值对比结果。所有方法均在3090上计算推理速度,输入图像均为1k分辨率,GPS-Gaussian和FloRen使用TensorRT进行加速。3DGS需要在场景上进行优化©️【深蓝AI】

■4.3 渲染结果对比定性实验

在这里插入图片描述
▲图4|新视点渲染定性结果对比。GPS-Gaussian保留了更多的细节并且能恢复出更合理的几何结构©️【深蓝AI】

■4.4 高斯特征图可视化

我们认为除了位置特征图决定高斯点位置之外,对高质量渲染起关键作用的是透明度特征图和尺度特征图。透明度特征图可视化结果如图5所示,高斯参数预测网络准确地识别了在源视点深度剧烈变化处出现的噪声点,将他们的透明度设为0,从而不会渲染到最终结果上。

在这里插入图片描述
▲图5|透明度特征图可视化结果。子图(a)和(b)分别是输入视点的颜色特征图和回归出的透明度特征图,子图(c)和(d)是将(a)和(b)渲染到新视点上的结果,子图(e)为最终的新视点渲染结果。热力图中蓝色表示透明度为0,红色表示为1,颜色越冷透明度越小©️【深蓝AI】

尺度特征图可视化结果如图6所示,从热力图和外观可视化可以看到,高斯尺度是由多种因素决定的,比如平坦的地方高斯会大一些,纹理或者几何变化剧烈的地方高斯会小一点来表征更多的细节。远处的高斯比近处的高斯在尺度上也普遍会大一些。自适应的尺度控制,保证了高质量的新视点渲染,避免了此前固定半径的点云渲染中存在的空洞或者模糊问题。

在这里插入图片描述
▲图6|尺度特征图可视化结果。热力图中,越红代表尺度越大,由于尺度没有上限,所以展示时数值经过归一化©️【深蓝AI】编译

5. 应用前景

在合成一个新视点的情况下,我们能做到25fps的效率。但是我们的方法在同时生成多个新视点的情况下优势更加明显。表2中,我们把运行时间对比进一步拆分成在源视点上的耗时和在新视点上的耗时,之前的方法都是在目标视点上计算深度,而GPS-Gaussian深度估计和高斯参数回归都是在源视点上完成,新视点计算仅有0.8ms的渲染时间。假设需要渲染10个新视点,我们的方法需要 T = T s r c + n × T n o v e l = 35 m s T = T_{src} + n \times T_{novel} = 35ms T=Tsrc+n×Tnovel=35ms,而FloRen和ENeRF分别需要124ms和1261ms。

在这里插入图片描述
▲表2|运行时间对比。我们的方法可以实时生成多个新视点©️【深蓝AI】

这个优势使得GPS-Gaussian非常适合在全息显示中应用,因为部分裸眼3d显示器需要在两个源视点之间渲染超过40个新视点,拼成一张大图传到显示器上进行全息显示,以此产生裸眼3d的效果。我们相信GPS-Gaussian在全息通信系统中将有着巨大的落地前景。

在这里插入图片描述
▲图7|GPS-Gaussian配合裸眼3D显示器进行全息显示©️【深蓝AI】编译

6. 总结与展望

本文通过直接回归定义在源视点的像素级高斯特征图,构建了一种可泛化的3D高斯表示,使得稀疏视点下的实时人体新视点合成任务在效率和效果上均取得了巨大的提升,有望作为核心算法助力全息通信技术取得新的突破。

虽然GPS-Gaussian可以合成高真实感的人体新视点图像,但是现阶段还是存在一些缺点。例如,我们的方法需要准确的前景抠图作为预处理,抠图的质量将影响新视点渲染质量。此外,GPS-Gaussian需要使用深度真值进行训练,由于大规模的场景扫描模型难以获取,所以这个不足极大程度限制了我们的方法拓展到更通用的场景中使用。我们相信覆盖更多场景的大规模高质量合成数据将在一定程度上缓解这个问题。

-end-

移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7.无代码爬虫八爪鱼采集器软件——采集规则/项目的创建与网址输入

接上篇 6.零代码网页爬虫软件基础实操——下载与安装八爪鱼采集器 八爪鱼免费爬虫软件下载: 八爪鱼采集器下载 小白数据采集神器​​https://affiliate.bazhuayu.com/retrieve 直接复制粘贴要采集的网站在这里就可以进入采集规则的设计器 自定义任务 通过这个功能…

使用volta管理前端开发环境

背景:公司有新老不同的产品,使用的node版本不一样,每次都要手动切换node版本,对应的项目才能运行。这样很麻烦,有没有好的解决方法,就找到了volta。 1.为什么是volta? 管网介绍:使用…

国内外典型的知识图谱项目

文章目录 早期的知识库项目互联网时代的知识图谱中文开放知识图谱垂直领域知识图谱 从人工智能的概念被提出开始,构建大规模的知识库一直都是人工智能、自然语言理解等领域的核心任务之一。下面分别介绍早期的知识库项目、互联网时代的知识图谱、中文开放知识图谱和…

【论文阅读笔记】PA-SAM: Prompt Adapter SAM for High-Quality Image Segmentation

1.论文介绍 PA-SAM: Prompt Adapter SAM for High-Quality Image Segmentation PA-SAM:用于高质量图像分割的提示适配器SAM 2024年 ICME Paper Code 2.摘要 Segment Anything Model,SAM在各种图像分割任务中表现出了优异的性能。尽管SAM接受了超过10亿…

软考又考了,数据库范式这次一定要弄懂!

0. 引言 今年数据库范式又作为选择题在软考中出题了,范式和反范式同样也在我们日常开发的数据库表设计工作中提供重要理论,今天我们来彻底弄懂几大范式的概念和区别,以及常见的反范式设计方法 1. 定义 1.1 基础概念 在实际讲解之前&#…

终于用上了桌面版本的chatGPT

最近经过不断的探索,也算是用上了桌面版本的chatgGPT,想要用同学,可以关注一下,后面我会出一期教程的~

docker安装elasticsearch8和kibana,带ik分词器

全文目录,一步到位 1.前言简介1.1 专栏传送门 2. elasticsearch和kibana安装2.1 准备工作2.1.1 下载elasticsearch2.1.2 下载kibana镜像 2.2 创建并运行es容器2.2.1 创建es网络2.2.2 创建es容器2.2.3 放行端口2.2.4 访问查看结果> 步骤一: 点击高级, 然后继续访问> 步骤二…

KIVY AliasProperty 运用报错汇总

案例1: 在Kivy中,AliasProperty 允许你创建一个属性的别名,该别名可以基于其他属性计算得到。但是,与普通的Python属性不同,Kivy的Property类(包括AliasProperty)并没有直接提供定义getter和s…

Tensorflow入门实战 T04-猴痘识别

本篇文章主要:tensorflow 运行环境:本地cpu 运行epoch:50 1、tensorflow官网 tensorflow的官网教程。初学者的 TensorFlow 2.0 教程 | TensorFlow Core 官网上有图像分类的相关详细描述还有代码示例。 2、完整代码展示 from tensorflo…

单调队列总结

单调队列的介绍 由于现在我也没接触过正经的单调队列的定义,因而引申为介绍, 单调队列,类似与单调栈,存储在单调队列里面的元素理应都是单调的,单调队列的基础使用deque(双端队列)去实现的&am…

【总线】AXI总线:FPGA设计中的通信骨干

目录 AXI4:高性能地址映射通信的基石 AXI4-Lite:轻量级但功能强大的通信接口 AXI4-Stream:高速流数据传输的利器 结语:AXI总线在FPGA设计中的重要性 大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计…

FlowUs息流开启知识管理的新纪元|FlowUs息流公开知识库

在信息爆炸的时代,如何高效地管理和利用知识成为了一个挑战。FlowUs知识库以其超巨的性价比,为用户带来了全新的解决方案。它不仅仅是一个存储信息的工具,更是一个能够激发创造力和提高生产力的平台。 性价比之选 FlowUs以其合理的价格&…

ChromeDriver新手教程:一步步指导Chrome 114到127版本的驱动安装

114之前版本下载链接在这里 ​​​​​​125以后版本下载链接在此,只有后面status是绿色对勾的才可以下载,驱动大版本一致就可以使用,不需版本号一模一样;下载所需版本只需点击对应的版本名称即可跳转到对应版本的下载位置。 以…

学习笔记——网络管理与运维——SNMP(基本配置)

四、SNMP基本配置 1、SNMP配置举例 整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度&#x…

windows系统把桌面的文件重定向到电脑的其他分区盘

当我们使用windows系统的电脑时,很喜欢把一些常用的文件放到桌面上。而桌面上的文件默认都是设定在C盘下的。时间长了,C盘容易爆红(空间不足)。下面我将介绍一种比较简单快捷的办法来解决这种问题--就是把桌面的文件重定向到电脑的其他分区盘。 首先我们…

[蓝桥杯真题]买二赠一

蓝桥杯真题;买二赠一,要求赠的一价格不能超过买的两者之间最小价格的二分之一 看到这个题的时候我信心满满的一顿操作猛如虎,全部写出来的时候内心想着,稳了!这次绝对稳了!然而。。。答案错误。。。 我只能去看了一下…

2024年春季学期《算法分析与设计》练习15

问题 A: 简单递归求和 题目描述 使用递归编写一个程序求如下表达式前n项的计算结果&#xff1a; (n<100) 1 - 3 5 - 7 9 - 11 ...... 输入n&#xff0c;输出表达式的计算结果。 输入 多组输入&#xff0c;每组输入一个n&#xff0c;n<100。 输出 输出表达式的计…

使用dev_dbg调试

首先内核要使能两个配置才可以使用。一般内核都是打开的。 CONFIG_DEBUG_FSy CONFIG_DYNAMIC_DEBUGy 当编译选项CONFIG_DYNAMIC_DEBUG打开的时候&#xff0c;在编译阶段&#xff0c;kernel会把所有使用dev_dbg()的信息记录在一个table中&#xff0c;这些信息我们可以从/sys/k…

谷歌发布Infini-Transformer模型—无限注意力机制长度,超越极限

Transformer 是一种基于自注意力机制的深度学习模型&#xff0c;最初应用于自然语言处理领域&#xff0c;现已扩展到图像、音频等多个领域。与传统的循环神经网络 (RNN) 不同&#xff0c;Transformer 不依赖于顺序数据处理&#xff0c;能够并行计算&#xff0c;从而显著提高效率…

Havoc工具

Team端 客户端 打开后需要生成监听器和agent 监听 生成payload 最后上线 HTTPS流量 HTTP流量 心跳