Facebook基于球体可微渲染器Pulsar可大量应用于三维重建、神经渲染
使用球体作为场景表示,在避免拓扑问题的同时可以获得前所未有的速度。
(映维网 2021年07月14日)对于根据图像观察学习3D场景表示的所有现代神经渲染方法而言,可微渲染管道都是基础。最近,神经渲染已经赋予了大量的应用,例如视图合成、面部再现和三维重建。现代神经渲染可分为三个部分:1.三维神经场景表示;2.从三维数据到一致二维表示的投影(投影步骤);以及3.使用统计模型(通常是神经网络)处理投影数据以生成最终图像(神经着色步骤)。
这个策略结合了经典渲染和神经网络的优点。通过投影步骤,可以生成场景的一致几何表示,而神经着色步骤可以通过利用最新的生成性神经网络来生成逼真的图像。其中,神经网络可以近似复杂的自然图像形成现象,无需显式建模。
理想情况下,这种神经渲染方法可以以端到端的方式联合训练:学习场景的3D表示并通过投影和着色步骤发送。生成的图像可以与ground truth观测值进行比较,从而为优化过程提供信息。这不仅可以在着色步骤中改进生成模型,同时可以联合学习场景的表示和投影步骤中潜在的未知参数。这个过程需要以可缩放的方式通过整个管道高效地计算梯度,这样即使对于以真实世界分辨率渲染的复杂详细场景的几何体,其都可以实现高性能。
在名为《Pulsar: Efficient Sphere-based Neural Rendering》的论文中,Facebook Reality Labs的研究员克里斯托弗·拉斯纳(Christoph Lassner)和迈克尔·佐尔赫费尔(Michael Zollhofer)提出了一个基于球体的可微渲染器Pulsar。由于与PyTorch紧密集成,它比竞争技术快几个数量级,模块化,且易于使用。微分渲染是现代神经渲染方法的基础,因为它能够实现从图像观察到的三维场景表示进行端到端训练。然而,基于梯度的神经网格、体素或函数表示的优化面临多重挑战:拓扑不一致、内存占用高或渲染速度慢。为了缓解这些问题,Pulsar采用了:1)基于球体的场景表示,2)高效的可微渲染引擎,3)神经着色。使用球体作为场景表示,在避免拓扑问题的同时可以获得前所未有的速度。Pulsar完全可微,所以可以实现从三维重建到一般神经渲染的大量应用。
Pulsar是一个高效的、基于球体的、可微分的渲染模块。从场景表示的设计到底层数据的并行优化,其目标是通过各种措施来满足要求。首先,团队选择一个完全基于球体的三维数据表示。每个球体都由其在空间中的位置及其半径参数化。另外,每个球体具有指定的不透明度,并且可以具有任意向量作为有效载荷,例如颜色或一般隐特征向量。图像形成是基于一个体三维合成模式,从后向前聚合有效载荷以形成最终图像或屏幕空间特征图。这使得直接处理来自3D传感器的点云数据变得容易,允许在不改变拓扑的情况下优化场景表示(就像网格存在的那样),并且比基于体三维网格等最新方法更有效地实现渲染。
另外,研究人员基于球体的表示消除了对加速结构(如八叉树)的需要,所以可以支持动态场景。然后,它同时提供了一个简单的渲染和混合函数,可以在无需近似的情况下进行微分。团队故意将照明计算与几何投影步骤分开,因为它可以在单独的步骤中轻松处理。最后,研究人员将Pulsar与PyTorch优化框架相结合,从而利用自动微分,并简化与深度学习模型的集成。
上述策略允许Pulsar通过图像形成来为消费者图形硬件渲染和微分具有数百个球体的3D场景。对于1024×1024像素的图像分辨率,它可以实时渲染和更新多达1024个球面(执行C++代码渲染的时间小于一百万毫秒,而梯度计算小于6毫秒)。
尽管已经演示了具有数百万球体的复杂场景的高性能渲染和优化,但团队表示这个方法依然受到一定的限制。例如,计算屏幕空间中小于几个像素的球体的位置和半径梯度是一个挑战;以及目前不可编程等等。对于这一点,研究人员表示希望在未来予以解决。
Pulsar开源,这样研究人员就能够独立解决各种各样的研究问题。总之,团队的主要技术贡献是:
- 一个快速、通用、基于球体、可微分的渲染模块,它紧密集成在PyTorch中,能够对具有几何体和投影组件的深层模型进行端到端训练。
- Pulsar的执行速度比现有技术快几个数量级,并允许实时渲染和优化数百万个球体的表示。
- Pulsar可以处理大量的应用,例如三维重建、模拟逼真的人头、以及新颖场景视图合成。
更多关于论文的研究说明和公式实验请参阅《Pulsar: Efficient Sphere-based Neural Rendering》。