NeRF与3D高斯:新一代数字人渲染技术

了解更多

工具简介

NeRF和3D高斯溅射是让手机绕拍一圈就能重建立体人像的新技术。本文用空气里的雾和一群发光椭球两个比喻讲清神经渲染原理,对比它和传统建模的强项与短板,并说明现在真正落地在哪些场景。

假设你想做一个能让人绕着看的数字人分身。按老办法,得请建模师捏上几个星期,一点点调皮肤、调头发。现在有一种技术,你只要举着手机绕着人拍一圈,几十到上百张照片,交给机器算几个小时,就能得到一个可以自由转视角的立体人像。这类技术里最有名的是两个名字:NeRF,和 3D 高斯。

一、难在哪:照片是平的,人是立体的

一张照片记录的是某一个方向看过去的样子,它把深度丢了。你从照片里知道鼻子在脸中间,却不知道鼻尖比脸颊高出多少。想从平面的画面还原立体的形状,本质是解一道反问题:已知很多个角度的投影,反推这东西原本长什么样。人脑其实一直在做这件事,你看两张不同角度的照片,就能大致想象出侧脸的样子。神经渲染要做的,就是把这个想象交给机器,而且算得比人脑准。这里的关键是,机器手里没有标准答案,只有一堆照片,只能靠反复对照来逼近真相。

二、NeRF 的思路:假设空气里处处是雾

NeRF 全称是神经辐射场,名字吓人,思路很朴素。它假设空间里每一个点都在发一点点光和雾,你从某个角度看过去,视线穿过的所有点的光和雾叠加起来,就是你看到的那点颜色。于是问题变成:能不能用一个网络记住整个空间里每个点、每个方向上是什么颜色、有多浓。训练时,机器拿几十张已知角度的照片去对答案,不断修正这份记忆,直到它从任意角度渲染出来的画面都能和照片对上。训练完成之后,你给它一个从没拍过的角度,它就能凭记忆画出那个角度应该看到的样子。

三、3D 高斯:把雾换成一群会拉长的椭球

NeRF 效果好,但算得慢,因为渲染每个像素都要沿着视线累加几百个点。3D 高斯溅射换了个思路:不用处处是雾,而是用几万到几百万个半透明的小椭球把物体包起来,每个椭球有自己的位置、大小、朝向、颜色和透明度。渲染时把这些椭球按远近投影到画面上,像撒了一把会发光的沙子,叠出一张图。因为可以借用显卡画三角形的那套老办法,速度快了几十倍甚至上百倍,能做到实时。代价是占内存大,一个精细场景可能要几百万个椭球,普通显卡装不下。

四、和传统建模比,好在哪差在哪

把两条路的差别列出来,选型的方向就清楚了。

对比项神经渲染传统建模
采集方式手机或相机绕拍一圈手工捏,或扫描后再修
制作周期几小时到几天几周到几个月
能否改造型很难,基本是原样封存想怎么改就怎么改
能否做新动作要另外接一套驱动天然支持骨骼动画

一句话总结这张表:神经渲染擅长把真实世界原样搬进屏幕,传统建模擅长造一个世界上没有的形象。前者像照相机,后者像雕刻刀。所以这两条路不是替代关系,是分工关系。做真人分身,前者更划算;做卡通吉祥物,后者才是唯一选择。也有团队把两者混着用,脸用神经渲染采,身体和衣服用传统建模做。

五、现在真正用在哪些地方

目前落地比较多的是三类。一是文物和展品的数字化,把一尊雕像扫进网页,观众自己转着看,比看照片全面得多。二是虚拟场景搭建,把一间真实的房间扫成可漫游的空间,成本比手工建模低不少。三是数字人的形象采集,用一圈相机把人扫下来,再接到驱动系统上让它说话。要注意这类技术对光很敏感:拍摄时如果光线闪动、有人走动、物体挪了位置,重建结果就会出现鬼影和糊块。真要拍,最好在固定光线下、让人保持不动地绕拍一圈。

如果你只是想做一个坐着说话的口播数字人,这类技术暂时帮不上太多忙,它擅长的是把真实世界搬进屏幕。但如果你需要观众能绕着看、能走进场景,它省下的时间和钱是数量级的差别。下次有人跟你提神经渲染,你就问一句:这东西能不能改。答案基本就决定了它能不能用在你的场景里。