新闻资讯 人物专栏

ICEVE 精选 | 童欣:面向普通用户的三维捕获

导语:

本文是由未来影像高精尖创新中心举办的ICEVE2016(第七届北京国际先进影像大会暨展览会)的精华演讲及专访整理而成的系列专题文章,本系列内容涵盖专家专访、大会报道、行业纪实等,致力于梳理和提炼ICEVE大会的精华内容并传播给行业和大众。


blob.png

微软亚洲研究院网络图形组首席研究员 童欣


两年VR和AR设备都变得非常流行。从几千元的Oculus Rift,三千美金的HoloLens,再到大家在淘宝上五到十块钱都可以买到的Cardboard这样的设备。


有了这些设备之后,我们就需要很多的内容来消费。但是我们发现现在所谓的AR或者VR内容的生产方式,还是非常传统的。需要非常专业的艺术家、Game Studio、电影公司,聚集很多人,花费很高的成本,来拍摄一些影片,或者制作一些游戏,产生一些内容,并把这些内容分享给最终用户。目前有上千万的用户来消费这些内容。可以说制作VR或者三维的内容,还是一种非常具有挑战性的工作。


我们组在微软已经成立十几年了,我们的长期目标就是打破真实和虚拟之间的界线,帮助普通用户能够很方便地产生、分享并享受这些三维的内容,同时能够提供很自然的交互方式,帮助大家在真实和虚拟之间进行非常自然的交互,不再需要鼠标键盘这样方式,同时能够实现艺术家和普通用户的一些想象空间。


blob.png

童欣在ICEVE2016


为了实现这件事,我们首先想回答的一个问题,就是如何帮助一个普通的用户很容易地产生三维的内容,从真实世界当中捕捉三维内容。我们想这么做,主要有两个原因,第一个原因是我们的影视制作过程中很大一部分内容是从真实世界中捕捉到的。我们希望能从真实世界中捕捉更多的三维的内容,方便大家去进行编辑和后期制作。第二个原因是因为真实世界本身是三维的,如果我们能够直接捕捉到这些影像,用户就可以在这些基础上很容易地进行创作和修改。这是一个很好的源头。


传统的三维捕捉现状是,在过去的十几年中工业界研发了很多专用的设备。比如说3D扫描仪,或者是运动捕捉设备。所有这些设备都非常广泛地应用于游戏和影视制作流程中,他们可以产生非常高质量的结果。


但是另一方面我们也会发现,第一,这些设备非常昂贵。第二,使用这些设备是非常痛苦的事情,需要专业的人员甚至是一个团队来进行大量的工作。并且在使用过程中需要一块专用的场地,对场地的光照和空间都有很高的要求。但是当我们每个用户都有了手机,或者Kinect这样的深度摄像头,能不能通过这些普通的深度摄像机或者彩色照相机等便宜的设备,能够产生一些高质量的结果呢?我们希望这些设备很容易使用,大家并不需要进行很特殊的设置,在空间中也不需要做特殊的限制,让大家在任意的地方进行捕捉。到底能不能做到?让我们来看一些例子。


首先我想给大家展示的是我们如何捕捉我们周围的环境。我们在捕捉的时候,有三个基本目标,第一个是周围的环境,第二个是一个特定的物体,最后一个就是人,人才是我们最感兴趣的内容。首先我们来看一下对于周围环境的捕捉。


以前我们确实也有一些技术来捕捉环境,比方说通过Kinect Fusion或者其他的技术来捕捉场景的几何。在捕捉到场景的几何之后,我们就可以在场景中自由地漫游了。但是由于设备的限制,我们捕捉到的数据往往质量很差,无法用于影视制作。


还有一些技术,比如光场技术,可以帮助大家捕捉场景中非常真实的光影细节。但是如果在前期不对光照做控制,这些光照效果在后期无法编辑的。并且由于没有三维的信息,这些场景只能在线,但是无法做编辑。


基于图像的光照技术,是基于图像的绘制技术的一种增强:它通过捕捉场景在不同光照下的照片,想办法实现场景在任意光照下的效果。这种技术的特点是并不需要场景的几何或者材质的信息,但是需要大量的图片。


目前已有技术有几个缺点,第一是需要巨量的图片,很多时候需要一个专业设备来捕捉上万张图片才能完成。这会产生大量的数据。第二是设备需要专门化,往往我们需要一个光穹实现,在一个大球上放各种光照的灯,需要在每一个灯下捕捉用户的样子,这个成本将会非常地高。


所以我们就想制作一个便宜的版本,第一,我们想让捕捉尽量简单,就像大家现在看到的一样。我们希望一个普通的用户,拿着一盏灯,随便晃一晃,就可以把场景捕捉下来了。第二,我们希望捕捉的时间足够短。即使我们捕捉的条件已经放宽了,但是告诉用户捕捉过程需要持续两个小时,用户可能也会无法接受。所以我们希望时间尽可能短。


我们希望在捕捉几百张图片之后,就可以在线进行任何光影的编辑了。我们确实做到了这样的效果,大家可以看到我们现在所用的设置是这样的,用户用一盏灯在场景中晃一晃就可以了。


我们在场景中设置了三个台球,用于捕捉灯的位置,然后用一台摄像机把场景在各个位置的光照下的状态捕捉下来。有了这个之后,就可以呈现一个光照效果了。大家可以看到,现在我们的灯可以在三维空间中自由移动了。大家可以看到在场景捕捉当中所有的阴影和高光的细节,包括水杯和瓶子上的高光变化,以及剪刀上的快速光影变化,我们都能够非常真实地再现出来。


让我们再来看另外一个例子,在这个例子中捕捉的图片只是在一个光照下做的,但是现在可以给这个场景打非常丰富的,各种颜色的光。可以看到所有金属部件非常丰富的反光,以及非常复杂的阴影效果,都可以非常真实地再现出来。用户可以自由地编辑光效,包括一个Disco的光照,都可以实现。基于这种技术,我们希望可以帮助用户更容易地生产高质量的内容。


blob.png


刚才讲到了场景捕捉的问题,现在我们来看看物体捕捉的方面。在物体捕捉方面,我们关心两件事情,第一件事情是物体的几何,第二是物体的材质,就是说物体在特别的光照下,究竟是什么样子。当捕捉了这两件事情之后,就可以把这个物体真正地放入任何我们想要虚拟的场景中,再现他真实的外观了。


在传统技术上,为了做这两件事,需要两套设备:首先需要一个三维扫描仪,把物体的几何捕捉下来。当物体的几何形状捕捉下来之后,需要把他放入一个光穹下面,捕捉这个物体在不同光照、不同视点下的样子。有了这些之后,我们可以捕捉到物体的材质信息,之后才可以对物体进行重光照,并把它完全地捕捉下来。大家可以看到这些捕捉过程非常长,设备也都是专有设备。可以说非常麻烦。


我们所做的第一个工作,是使用Kinect或者Intel的RealSense这样的深度摄像头,让用户随便在这个物体周围扫一扫,就能获得物体的三维形状。在这一方面,我们集成了各种技术。这些技术能够更好地帮助我们对相机进行定位。然后把重构出来的物体细节很好地保存下来,同时去除一些噪声,最终获得一个高质量的结果。


blob.png


大家可以看到,虽然我们每一帧获得的深度数据是非常低质量的,但是当把所有的数据都集成在一起,经过处理之后,就获得了一个非常干净、漂亮的三维模型。这个三维模型的几何细节,都得到了很好地保留。用户就可以很自然地把这个三维数据用在游戏和影视制作中了。


blob.png


在材质方面,我们也研发了世界上第一个仅仅依靠视频就能够捕捉物体材质的技术。算法输入很简单,只需要知道物体的形状之后,拍摄一段关于物体的视频,在一个未知光照下,比如自然光下就足够了。当有了这段视频之后,就可以自动地帮你把这个物体表面的所有材质信息恢复出来,之后就可以把这个物体放入一个虚拟环境中,并非常真实地再现出来。所有的表面的反光和材质都是非常真实的。


在这里展示的一些结果。大家可以看到,不仅是杯子这样的物体,酒瓶,生锈的铜茶壶,瓷制艺术品,我们都可以很真实地把材质捕捉下来并再现出来。


blob.png


做一个简单的总结,基于上面这两种技术,我们就可以把这个物体放在HoloLens里面,把一个增强现实的Demo放入一个真实的光照环境里面。这个物体会随着真实的光照环境进行变化。物体反光足够强烈时,用户甚至可以看到自己在这个物体上的倒影。所有这些效果都依赖于非常真实的材质捕捉技术以及几何捕捉技术。在左边和右边,展示了用纹理贴图等传统技术来制作这种效果,可以看到他们的光影效果并不会随着真是环境光照的变化而变化。


1492414207570197.gif

在最近,我们又进一步提高了这种技术。现在不再需要两种单独的方法来分别捕捉几何和材质了。我们从物体出发,希望能够同时恢复物体的几何和材质,只需要捕捉一段视频就可以了,算法会完全自动地把所有的信息都交给用户。


在马上要召开的SIGGRAPH Asia上也会报告我们的成果。下面来展示一些结果。无论是铜质的火锅,还是景泰蓝的艺术品,包括一些雕刻品,所有这些东西的几何,不仅仅是形状,而是包含了上面所有的细节,以及表面材质非常丰富的变化,都可以很自然地恢复出来,同时仅仅需要一段视频输入。


blob.png


刚才讲过了环境和物体,接下来我们看看如何捕捉动态的人。可以说人是我所有艺术创作的中心,是我们最关心的内容。而且观众对于人物的一举一动和所有的细节都是非常敏感的。


当我们想要捕捉人的时候,我们希望两件事情。


第一是希望捕捉到高保真的人,特别是面部表情,这里面包含所有的头发,面部等所有的几何细节。同时,希望捕捉到的不仅是这些静态的细节,更多的是人物在动作的时候,在不同表情的时候,面部所有的几何变化,甚至是头发的运动。这些事情在制作虚拟化身或者虚拟人物都是非常重要的。


另外一件事,我们在进行这些操作的时候,希望是全自动的,而不需要一个普通用户来干预。最后还希望我们所需的输入足够简单,只是基于一个普通的视频。大家可以看到传统上想做这件事情很难。


比如说,想要捕捉一个用户的非常真实的高保真的动态人脸的时候,需要在人脸上贴上很多的点,并放在一个动捕设备里去做捕捉,同时还需要一个控制的光照环境。当捕捉完成后需要很多的用户输入,来把这个结果做得很完美。在头发上,问题就更难了。头发的捕捉一直是一个非常具有挑战性的工作。传统方式需要艺术家很多的手工工作,从开始什么都没有,直到慢慢地把它造型出来。那么怎么样捕捉一个用户的头发?特别是头发的动态,还是目前一个完全没有解决的问题。


现在来看一下我们所做的工作。第一个给大家展示的工作是从视频网站上随便下载一段视频。我们希望我们的算法能够全自动地完全恢复人脸的三维形状,包含所有的皱纹的细节。大家可以看到,左上角是我们输入的视频,右上角是我们的三维形状被投影回视频的时候,这些系统完全是全自动的。


00005_20170330140356.gif


现在来看另一个结果,同样是左上角,是我们输入的视频。右边是我们重构的结果,下面是单独拿出的运算结果。在左下角,把人脸加上了纹理之后,大家可以看到他的样子,我们不仅仅恢复了人脸的形状,同时也包括了运动。我们可以详细地给出面部上的任何一个点在每一帧中的位置。


为了演示这种技术,我们把人脸上贴上棋盘格的纹理,并作出一个运动。大家可以看到在运动中,人脸的动作整体都是非常真实地在变化的。所有的棋盘格都是在随着人脸做很真实的运动,并没有任何一个点的位置出现错误。这对进行视频编辑是非常重要的。


blob.png


有了这种技术之后,我们马上想到可以对视频进行编辑了。而在这一段视频之中,由于有了所有这些内容,用户只需要在第一帧做出一个编辑。然后就什么都不需要做了,剩下所有的事情由算法自动完成。大家可以看到在这段视频中,给这个人添加了胡子。现在这个人的胡子就像是长在连上一样,包括光照效果和运动,都非常自然。也可以对这个人进行美容,比如祛除皱纹,同样的只需要在第一帧进行处理,后面所有帧都会自动的修改这些内容。


1492414470152888.gif

进一步大家可以看到,当有了这些高质量的三维捕捉的结果之后,还可以做另外一件事,我可以把人的动作重定向到另外的一个虚拟角色身上。这里夸张一点,我想控制一只虚拟的狗。那么我就把这个人的动作完全重定向到狗的身上之后,这只狗可以完全跟从人的表情,做出各种拟人化的表情,而不会改变任何形状,表情非常自然。通过我们的技术,同样可以帮助艺术家很自然地实现这种效果,很方便把脸上的皱纹等细节非常自然地传递到狗的身上,让它变得更加自然。


00005_20170330141506.gif


之后来看一看头发的捕捉。这是一件非常困难的事情。我们想从不同的视点捕捉头发运动的视频序列。从这个视频序列出发,希望能够恢复头发的三维的运动关系和形状。大家看到左边是我们捕捉的头发,随着风在飘动,右边是我们恢复出来的头发,每一根头发的三维形状和它的运动都被我们的算法自动恢复出来了。为了做这件事情,我们搭建了一台简易的捕捉设备。在这里面,我们把一个假发放置在里面,在周围放了21个GoPro,这些GoPro用120帧的速率来捕捉头发的快速运动。有了这个之后我们就可以获得21个运动的序列的视频,分别是从不同的视点捕捉到的。


blob.png


有了这些视频之后,算法就开始尝试恢复头发的三维形状和它的运动关系。现在可以看到结果。左边是我们的视频,右边就是我们恢复出来的结果。由于我们恢复了形状,大家可以从任意视点看它,并且可以把它放置在任何的光影环境下进行渲染。也可以放置在任何人的头上来模拟风吹头发的摆动效果。都可以做的非常好。让我们再来看另外一个序列。这个序列是短发正在摆动,这同样是一个慢镜头。大家可以看到我们可以把头发非常复杂的运动完全再现出来。大家可以看到实际的运动速度是非常快的,即使是这么快的速度,我们也可以非常好地重建出来。


00005_20170330141913.gif


做一个总结,我们希望这些技术可以帮助大家更加容易地生产一些三维内容。我们会发现在这两年或者今后,很快VR和AR就会变成一个新的平台给大家。这个平台会重新定义所谓的真实世界,计算机和人之间的关系。因为所有的交互方式,体验事情的方式,真实世界和虚拟世界之间的界线都会完全打破。


第一次,真实世界和虚拟世界的许多信息通过很好的方式更加紧密地结合在一起。而在内容产生方面,有了这些工具之后,我们希望可以把内容产生的代价和门槛进一步降低。能够有更多的艺术家或者普通用户想要创造这些内容的时候,能够用这些工具更加容易地生产出三维的内容。再通过计算机中这些虚拟的人工智能系统地结合,我们可以让我们的系统更加真实、自然。在将来,当所有这些技术结合在一起的时候,我们能有一个超现实的世界存在,在这个世界中,我们无须区分哪个是真实的,哪个是虚拟的,所有的事物都是很自然地混合在一起呈现给大家的。