助力全息通信技术!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】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值