本次分享的是3D高速扩建高新作为一种新的可微渲染技术,将逐渐取代其他可微渲染方法,成为学术界和产业界的研究热点,研究比较多的是通过高斯泼溅新的技术实现的数字化身3D 的数字化身。
一、数字化身3D技术的应用与挑战
3D 高斯泼溅是去年发表的一个最佳论文候选,它与NeRF神经渲染方式相比,它实现更高真实感的渲染,并且其速度很快,它是显示的一个表达方法,可以做到端到端的可微的优化实时的去交互渲染。在这个技术中它使用了高斯传统点云的拓展,每个点云有独立的位置,还有高斯的一个形状,通过高斯的形状扩展了传统3D 点云的一些属性,其中包括斜方差,透明度以及大小尺度的一些参数,通过这样的一个体渲染公式,就可以得到右边非常真实的这个效果。整个这高斯表达,可以做到端到端的优化,去给进多相机多视点的图像,可以进行可微的优化后,获得这样表达。
二、3D重建与实时优化技术应用
在讲数字人之前,我讲一些3D 重建的内容。3D 重建其实很多时候需要去通过多视点的数据,以便进行重建。现在在已有的3D 表征,也需要引入三级表征,不管是 mesh 、NeRF还是3D高斯核心它们都是三级表征,然后进行优化,把通过这样的多视点数据来监督达到优化场景的3D的目的。
表征优化一般需要多长时间呢,最早的3D 高斯需要几分钟,那么第一个工作就是说怎么样去做实时的优化,就可以在针对类别的对象,对人体这个类别来进行这个3D 高斯学习,也就是说人体的三维模型可以投影出两幅图像,可以去学习它如何通过这两幅图像来通过单向的神经网络,也就是一个前会的神经网络,然后我们就可以测试出两个视点的3D 高斯点云,也就可以做到只要有新有这两幅图像,立马就可以前会式的生成高斯点云,就回避了传统3D高斯,已有的3D高斯则需要去用几分钟数据优化的过程,其实就是说把表达定义在输入的两幅图像。
每一个像素是3D 高斯球,用神经网络去回归出这个3D 高斯球的各个通道的属性,这样就可以输入这两幅图像以及它的相机参数。通过前会网络就可以实时出来3D高斯的两片点云。如果需要拖动一个新视点,那便重新选择两个相邻的视点图像,去实时的绘制出来,是在大规模的人体3D 数据上进行训练,可以实现泛化性的拓展。即使是一个新的人进入也可以实时出新的视点,在这样的一个场景,一圈16个相机,然后可以实时的插值出新的视点,用3D 高斯表达,在这里面其实就是已有的技术其实之前也是看过的,包括做子弹时间,但是可以减少相机的数量。
大概增加四到五倍的相机数量,就可以进行实时的插值。在这里面可以看到通过大规模的学习,可以获得在图像层面就是2d 的层面,可以获得多通道的这样的一个高斯球的属性,包括透明度,还有大小,可以看到一些纹理的细节,可以体现纹理细节的地方高斯球会更小。也以拓展一个带背景的一个效果,就需要在尽可能多的背景环境下训练带背景的场景。把整个放到一些全息的显示屏上,便可以很快制作并且比传统的这个相机数量少,还可以测试出自由视点的一个效果。
三、数字化身的构建与应用
这样可泛化的高斯,说我们可以拓展到这样的一个人与场景的一个交互的case。今年西瓜在其中也做了一篇文章,就是做半身的,然后在全息显示器上,我们用四个 RGB 相机来进行应用,因为传统全息的方式,很多时候需要深度相机,但深度相机的一个缺点就是我们很多时候不知道这些深度相机的特性,就是很多时候我们很难仿真出,因为深度相机不管是结构光还是 TOF 我们很难在不同环境下做那个虚拟数据的仿真。所以很难获得大规模的数据去训练新视点的生成。
所以用纯 RGB 的方案,这样可以做得更加通用,因为它可以在各种光照的条件下都存在可以比较好的泛化。我们采集了4000个高精度的人体坐姿的模型来进行学习。因为四个视点的在相机屏幕上的布置大概是左右各两个,那左右这两个我们插着出这两个的一个新的视点那这样的话,其实左右这两个视差是比较大的,维持引入一些特征编码的方式,结合3D 高斯,使得这个算法更好的克服一些大视差和一些遮挡的效果。
在一个全息显示屏上做到大概 2K分辨率实时的新视点生成,这个是在一个京东方的全息显示屏上,它可以根据人眼的位置,去生成对应的双目视点。既可以看到立体的效果又能自由视点的观看整个端到端的双方通信。回到主题数字化身,刚才做的重建是不可以泛化到新的表情和新的动作,拍摄的人物是什么样的表情和动作,就反映出什么样的表情和动作。但数字化身的概念是希望能泛化出这个人物在新的动作,新的行为,新的表情下的图像。
其实就可以简单理解这个事情,就像 NeRF 是一个神经网络去回归的给定空间中五维的一个位置,光线的一个位置。就回归出 RGB 和透明度。在数字人加入了两部分的参数,一部分就是表情,一部分是动作,然后去回归神经网络。用3D 高斯的方式也是类似的,我们需要在多视点的环境下拍摄人物,左边是数字人的建模阶段,通过动作捕捉,表情捕捉,然后去学在已给定的动作和表情下。
给进动作表情和视点情况下,这个图像是长什么样的,然后我们通过这些数据去回归,这样的话我们就可以生成新的视点,新的动作,新的表情。这样的渲染的图像,全自动的生成,那其实左边就是获得它的一个数字化身的一个网络模型。后续就可以进行语音驱动,结合其他的多模态大模型语音驱动,然后生成动作,生成表情,文本驱动,生成动作生成表情来驱动我们的数字化身。
在今年的 CVPR 发表的工作。目前应该是国际上最有效的,通过多视点的相机做到3D 高斯的数字化身。整个是针对人体的,核心是首先把建模这个人体的一个粗略的、大概的几何,在 TP 下的一个几何模板。有几何模板就可以更好的刻画。一些针对服饰的特性。可以把这个几何模板投影到正面和背面,通过正面和背面的两个高斯平面,来表达整个高斯数字化身。通过学习正面和背面每个像素如何在 pose 的 condition 下高斯参数的表达,多通道高斯参数的一个属性。我们是采集了这个很多不同的多视点图像下它的很多不同的动作,然后这些动作作为condition 。 我们希望知道新的 pose 下两个高斯平面的表针怎么样去变化。每一个高斯 map 的每一个像素是一个3D 高斯球,所以这个是一个二维的神经网络的一个问题。
四、数字人身的创建与应用
后续有了两个面的高斯球就可以通过 LBS 然后 skin 到一个采集的姿态下,通过体渲染公式获得这个清晰的图,然后在训练阶段作为监督,上述是我们出获得的一些效果,就是每一个数字人和每一个人物,是一个真实的人物在大概16个相机一圈的环境下拍摄大概一到两分钟的数据。然后训练时间大概现在全自动的训练需要两天的时间,这样的话我们就可以得到全身可驱动的3D 高斯数字化身。
通过这个可以看到三D数字人是同样的一个动作去驱动,做相同的动作可以更好的去模拟出服装的褶皱,变化。如果是跟传统的图形学相比,需要针对这些服装去单独的做服装的3D 动画仿真,可以通过端到端的网络就可以来处理这样的事情。可以看到我们通过其他的驱动,是一个 mas 的动作库,用标记点捕捉出来的动作,然后映射到这些数字人身上,真实感和分辨率都还比较高的。
这些工作的光影都比较单一的原因是在恒定的比较均匀的光照下拍摄的,那应该怎么样去做才能看到一个虚拟的以及一个环境下能更好的跟光影去兼容呢?这就需要去求分解我们每一个高斯球的光影的属性,包括它的 LRoughness normal 包括 occlusion 等等信息,所以我们把正面和背面的两个高斯 map ,每一个像素的属性进行拓展,去学习更多的这样的一个这个属性。需要对这个拍摄的光照条件进行估计进行重构学习。在这里就是涉及的高出参数和几何材质,最终也是通过这个 PVR 的渲染来进行这个光影的渲染的一个公式,使得作为这个能量函数,然后来进行Minimize 对拍摄图像的 error 来优化这些参数,可以看到求解出来左边是最右边当采集光照下重建的效果,中间是优化出来的。
虽然在恒定光照下拍摄,但其实它恢复的效果比较好的,这里展示的就是数字化身,在新的动作下,放到不同的一个环境的光照下生成的一个图像的效果。这是一运动的视频也是变化视点的效果。全身的分辨率还是不太够的,再针对脸部,如果拉远景对身体还可以,但是如果拉近景,希望看到人脸的一个比较好的表情,就需要进行单独的数字化身的建模。那么同样的在今年的 CVPR 也做了一个3D 高斯的数字化身的人头的工作。需要优化一个人头的一个模板,然后进行把三级高斯定义在人头的这些 mesh 的顶点上,去优化这个每一个三级高斯求随着表情参数的 condition 下的生成。
这可以展示正面涵盖大概120度,然后放置六到八个相机,采集了一到两分钟的表情的数据,训练时间大概是两天,然后可以得到它全自动的人头的数字化身。相比于这种传统美工,要去建模这个人头,它这种3D 高斯的这个建模真实感会更强,它可以反映出像牙齿这些,包括表情的一个精细的特点,它比美工的电影特效做出来的美工的数字人头还真实,现在3D 高斯里,我们一看就感觉它是3D 的,又又感觉是真实的,这个是其他的一个数据,德国的一套数据我们也是用他的六个视点去做他的人头的数字化身,然后中间是一个表情的驱动。这些是因为里面嵌套了人头的表情的模板,所以也是可以用语音来驱动来,然后做一些说话的效果。
那我们可以把这个接上这种语音驱动的一个模型,放到一个全息的显示屏,因为它是3D 的国家重点研发计划,全新媒体去计算技术与应用,我们这个表情的完美,而且跟随着你的视点去运动,它的好处就是它的分辨率很高,细节处理的很好,特别是在这种4k 的屏上,表情还是很精细,就是分辨率还是很精细的,所以这种是一个技术平台,可以替代传统的这种美工,需要很多经验去实现这个真实感的人头。
五、3D高斯人头模型的构建与应用
高斯的表达也可以放放到头发上。把三级高斯去表达头发的一个属性头发的一个三级高斯厂,需要把人脸跟头发去分割出来,然后头发受到这个人头动作的一个控制,因为这个头发的飘动大部分是跟人头运动的幅度相关,所以看到这是相当于在这种表情在头的动作驱动下,重构出来的自由视点的效果,左边是头部的驱动,然后去驱动右边,左边相当于是动作的驱动,右边是生成的数字化身头部相应的飘动,所以可以看到能做出这个服装头发的一些随着动作的一个变化,传统需要研究,对发丝进行建模。
这个工作是没有这样精细的操作,他只是认为它是高斯球的一个表达,所以三级高斯还是可以做的比较通用的一些场景。人头需要去建模,拍摄两分钟的数据,而且是多视点的数据,还需要训练时间,大概针对这样的一个人头化身需要两天时间,是严重影响技术的推广。
六、3D高斯人头表达与数字人研究
所以希望能做到可参数化的3D 高斯的人头模型,通过单个照片或者单个视频来生成无中生有的3D 高斯的人头。并且能用图像去做 condition 生成一个真人的人头。所以它是需要我们收集各种训练数据,包括这种3D 的不同 ID 、不同表情的一个3D 人头数据,然后用3D 高斯的方法来学出我们的一个。
表达也是 CE CCV 的一个工作,这里学出就是可以把表情和 ID 来进行分解。然后可以做到单图像驱动的应用。收集数据,因为我们知道这些数据哪一帧具有相同的ID ,哪一帧具有相同的表情,所以我们就可以去通过数据去学这个 id 和表情的分解。把I D 的 latent feature 可以学习表情的 latent feature ,先去分离 ID ,再分离表情,通过这个表情和 ID 去合成出图像,最后监督数据来进行优化比对。
密码是我们的能量函数,我们可以做到表情的差值,就是说相同的这个是 ID 的差值,在相同的表情下我们可以去插值出不同的 ID ,所以它可以生成在已有的数据里去生成新的人物。表情的插值,它可以做的是同样保持这个 ID ,然后去生成这个人的不同的一个表情。拥有这个能力可以更好的操作,也就是单图像的复原,就是输入一幅图像,然后怎么去获得他的一个人头的3D 高斯,那这个是相当国内外也有。一些相关的工作用 nerve 操作的比较多,我们的这个性能 PS LFID 这样的数值都会比现有的好。
这里就展示了3D 高斯这种表达在可泛化的这种参数化的人头模型上可以做的更好。当图像很多时候不仅很难去精细的,还很难去更好的去还原这个人物。所以如果你用的是一段视频,能更好的保保持这个人物的ID 。那所以我们如果输入一段单视频。我们除了去优化刚才的这个表情和 ID 参数之外,中间这个就是用一个表情参数和 ID 参数来优化。优化后,为了更精准的还原个人的属性,需要去微调这个3D高斯的细节,它的几何和颜色。
微调大概需要几分钟,大概全自动的经过大概10到20分钟的时间,就可以获得3D 高斯的这样的一个数字人头的化身。这里展示的是刘德华的视频,我们利用了他的一个采访的数据,然后用了全自动的方法优化出他的一个高斯人头的一个表达。因为这个视频里其实没有太多的转动,但是还是可以把它的侧面都可以优化出来,生成右边的自由视点的效果,然后在一个给定输入表情驱动下的效果的展示。这是另外一个效果,可以看到他的 ID 的还原是比较好的,人物的特点的还原。
综上所述,第一,把重光照人体,人脸,单独做人手的高斯化身的工作。把这些不同的部位结合在一起。结合从光照结合人跟物体的交互结合运动生成,然后去做一个整体的这个高知素质人的一个平台。第二,希望可以做到更灵活的编辑,人头,身体可泛化性,或者说单图像就可以生成,可泛化性就是要做的更好。第三,就是可以灵活的去做编辑,换人头,换发型,换这个服装等等,需要这个学术界做很多工作,它跟传统美工的 mesh 的制作是可以用的,增加端到端的的效果,当然就是要怎么去提高它的可控性的问题。另外也在结合视频生成大模型来做研究。视频生成怎么跟3D 高斯的方式融合,做出一个3D 的数字人,也是我们正在做的工作。