Py学习  »  机器学习算法

讲堂 | 童欣:深度学习和人工智能,如何改变图形的生成与创作

微软研究院AI头条 • 3 年前 • 360 次点击  


编者按:9月25日,由北京市委宣传部、北京市海淀区委员会、中国音像与数字出版协会指导,北京市海淀区委宣传部支持,北京海淀中关村科学城电子竞技产业协会、北京时度效文化传播有限公司共同主办的以“科技·创新·未来”为主题的2020 BIGC 北京国际游戏创新大会正式开幕。在此次大会上,微软亚洲研究院首席研究员童欣做了主题为《智能图形生成与创作》的报告,就深度学习和人工智能将如何改变游戏图形的生成与创作进行了分享。


微软亚洲研究院首席研究员童欣


以下是童欣博士的演讲实录:


很荣幸有机会来到这里,向大家介绍一下我们在微软亚洲研究院所做的与游戏相关的一些研究工作。今天我报告的题目叫做《智能图形生成与创作》。首先做一个我所在的研究院的背景介绍:微软亚洲研究院是微软公司在亚太地区设立的研究机构,于1998年成立,主要致力于推动整个计算机科学领域的前沿技术发展。


我所在的研究小组,是网络图形组。我们主要的研究方向,是希望推动三维图形技术和系统方面的创新,比如新的算法和系统。另一方面,我们也希望把我们在图形技术和系统方面的研究成果,应用到微软以及其他图形产品当中去。比如在过去的20年中,我们研究的图形技术已经应用到了第一代 Xbox 上所有水体效果的绘制中,还有《光晕》游戏里所有真实材质的绘制中,而且在光照贴图的压缩中也都使用了我们的技术。同时 Xbox 中向后兼容性的整个图形系统的原型也是由我们微软亚洲研究院研发的。我们研究组一直有一个愿景——希望让每一个用户都可以容易地创建、分享、使用可视图形的内容,实现自己的想象


智能图形生成的背景与介绍


回看过去几十年里计算机游戏中的计算机图形,我们可以发现,游戏中的图形从过去二维的、很简单的像素颗粒级图形,发展到现在,已经完全达到了一个影视级的、非常逼真的三维虚拟世界效果。玩家在游戏里可以感受到栩栩如生的场景和浸入式的体验,充分享受游戏中的故事。如今游戏中的图形技术,也已经应用到了影视内容的制作中,很多影视制作越来越多地采用游戏引擎来制作图形内容。

 

图1:游戏制作图片示例


看完这些生动、逼真的内容以后,我们再来看一看现有三维图形内容生成的手段,你会发现一件很有意思的事情:现在的三维造型软件,在过去的几十年里,其实并没有太多革命性的改变,我们还是通过一个复杂的二维界面和软件工具,来创建三维的内容。我们也确实研发了很多新的三维捕捉设备,比如对形体而言,有三维扫描仪,对材质而言,有光穹,以及大家广泛使用的运动捕捉设备等等。所有这些设备,如果大家曾经使用过的话,就会发现一些问题。


图2:一些三维捕捉设备


首先,这些 设备都非常昂贵,例如一台最低端的三维扫描仪,专业一点的基本也要十万人民币起,更不用说那些几百万的运动捕捉设备了。第二,通常这些设备使用起来非常复杂,它们大多都需要专用的场地、专用的处理,即使获得了数据,也会需要很多手工的工作,经过处理之后,才可能给最终用户使用。所有这些过程需要大量的人力、专业的技能和训练,在这之后,才能创作出想要的内容。


总结一下传统三维图形的创作手段,我们会发现问题在于:第一,它们都是高集中度的,需要专业的生产者经过多年培训之后,才能创作出高质量的内容。第二,整个生产流程实际上是高强度的,需要工作很长时间,很多艺术家和程序员可能需要做一年、两年甚至更长的时间,才能做出一款全新游戏中的图形内容。第三,创造出内容后唯一增长的是这些艺术家以及相关工作人员的经验,很难被其他人使用,或者大量、重复的应用到其他游戏中去,这是一个很浪费的事情。


近年来,随着机器学习技术的发展,在图形学研究中,大家也开始越来越多地探索如何结合人工智能的技术来进行图形内容的生成。总的来说,其基本思路就是廉价设备(如深度摄像头或者彩色摄像头)+智能算法+少量的用户输入,从而可以更加方便的产生出高质量的三维内容。若要实现这个思路,那么就要依赖于已有的大量数据和机器学习技术。


当智能图形生成越来越多地被用于专业的图形内容生产中时,我们会发现,和传统方法相比,图形内容的生成已经从手工驱动或者算法驱动,变成了数据驱动。这意味着,当产生了越来越多的高质量数据时,工作室或者游戏的开发人员就有可能产生出更多好的结果,即高复用度。同时,在整个过程中,手工工作会越来越少,计算会越来越重要。当大量的手工工作变成自动或半自动的时候,大家可以想到,实际上我们对内容创建的集中度的要求降低了,这意味着你可以让很多人来贡献内容。这是一件很好的事情。


接下来,我会主要展示在过去几年中,包括今年,我们所做的一些最新的研究工作。坦白地说,这些研究工作离真正的落地应用,即真正用于游戏创作,可能还有一段距离,但我们希望通过这些技术的展望,能让大家看到技术发展在未来的三到五年内,会给我们的游戏内容或者图形内容的创作,带来哪些新的可能性。


我将从以下几个部分分享,第一个部分是如何通过人工智能技术,结合数据,帮助大家生成传统的图形内容,如三维模型、材质库等等。第二部分是如何结合现在的人工智能技术、机器学习技术,帮助大家更容易地把已有的真实世界的场景、物体高度真实地数字化,放到游戏和计算机里。


智能图形素材生成


首先来看智能图形素材生成这一部分。我们发现艺术家其实很善于画二维的草图。当你看了草图之后,很容易通过草图想象出来一个三维模型。因此,我们想做的一件事情就是当用户脑海里有了一个三维物体,或者他看到一个三维物体之后,他通过勾勒像图3中间这样的草图,让系统自动帮他生成一个很不错的三维形状,或者一个初始的三维形状。有了这个之后,用户可以快速地通过画大量草图来做一个概念设计,之后再把差不多的三维形状放到三维造型软件里做一些细化,这样就可以快速生成他想要的三维内容了。


图3:用户勾勒的二维草图与相关的三维模型


为了实现这个想法,我们采用了最新的机器学习和深度学习的技术。通过产生大量的训练数据,来建立草图和对应三维形状的对应关系。在给出数据之后,系统就建立了一个训练好的神经网络,并根据用户的输入自动预测三维形状。用户可能会说,这个技术听起来很神奇,但是它不一定靠谱吧,因为我给你一个二维草图,我怎么知道你要预测一个什么东西,如果预测的不是我要的怎么办。那也没有问题,因为我们的系统允许用户不断的输入想要的细节来进行修改。系统网络会根据用户添加的输入不断细化形状,最后快速生成你想要的三维结果,比如图4。


图4:用户修改示范


最开始,用户可能画了一个轮廓,我们生成了一个立体的像海星的形状,这时用户说,我希望海星中间凸起的地方,更尖锐一点,用户可以画几道,随着这个改变,系统会自动地细化它的形状,在不断地生成越来越多的细节之后,最后就生成了用户想要的形状。我们现在来看一个 demo。


视频1:用户输入细节草图控制网络不断细化形状的演示


这个 demo 展示了画海星的过程。我们希望整个过程是一个与用户完全交互的过程。我们不仅把这个系统教给一些没有绘画经验的用户使用,同时我们也请了来自北京电影学院动画学院的学生,这些具有一定造型经验的专业用户,来使用。图5的这些结果,是一些比较专业的用户在大概半小时左右的学习,掌握系统之后,通过绘制草图所创作出来的各种各样的三维形状,大家可以看到既有很简单的形状,也有很漂亮复杂的形状。我们希望这样的系统能够很大程度地减轻用户创作大量三维形状、制作概念设计时的负担。


图5:专业用户的作品


第二个工作是我们怎么帮助用户快速生成更加真实的材质贴图的。如果大家对游戏图形创作有一些经验的话就知道,很多时候我们想让一个东西很接近现实,除了三维形状之外,我们还要给它一个很真实的材质贴图,比如木头或者铁,来决定这个物体在不同的光照下的颜色明暗和反光,使它看起来和真实的一样。


以前艺术家是在真实的世界中拍一张图,然后把这张图放到 Photoshop 里,再通过大量的操作来生成它的反射贴图、几何细节、纹理贴图等等,最后交给游戏去使用。我们希望通过我们的研究,用户只需拿一个手机出去,拍几张图片,系统就可以全自动生成逼真的物体效果。如果用户拍一张照片,系统可以生成一个非常相似的材质;如果用户拍了很多张,并且从各个方面仔细地拍摄的话,系统的生成结果质量就会越高,越接近于想要的真实世界的材质。同时,我们还希望算法能够支持任意的分辨率,因为通常用户都希望分辨率越高越好,那么不管是一张小图还是大图,送到算法里,都希望它能够生成很好的结果出来。


图6:材质贴图图片生成


为了做这件事情,我们结合了深度神经网络技术以及传统的反向绘制优化技术,来实现这个优化的过程。基本想法是这样的:首先挑出一张图,结合深度学习网络,预测一个初步的材质结果。这个初步的结果可能看起来还行,但是不太好,没关系。随后我们把它送到一个编码器里,通过优化中间这个编码,使得输出材质绘制结果和原来输入的这张图进行对比差别最小。如果有多张图,我们希望输出的这个材质能够和所有的多张拍摄的图片都一样,那么就可以认为这个材质很合适了。基本上是这样一个过程,整个过程是全自动的,不需要用户任何的手工或者输入。


图7:深度逆绘制技术的应用过程


图8展示了一个结果。这是在我们的办公室里拍的一张贺卡的材质,它表面有一些金属的部分,也有一些纸的部分,同时还有一些凸凹。我们大概拿手机拍了20张左右的图,我比较了最上面,叫做 ground truth 的部分,就是我们的真实贺卡样本、在光照下的结果。如果我只拍一张,大家看到,实际上大部分的结果还是对的,但里面的反光就看着不是太好;如果拍20张左右之后,所产生出来的材质的这个反光,还有所有的细节,基本上就和输入图像的真实材质没有什么差别了。这个办法实际上是一个非常好的办法。即使在时间不允许、条件不允许的情况下,用户只拍了一张,那这个结果也已经基本可用了。你拍多张以后,可以保证这个结果就是你想要的,这就避免了使用专业设备去拍摄很多的东西。


图8:在贺卡上的应用效果


视频2是另外一个结果,这是一个皮革,在这里我们只拍了2张图,大家看到这个皮革具有非常复杂的材质细节外观,它有皮革的部分、有线的部分,有两种材质,同样,它表面有非常丰富的凹凸变化。所有这些变化都能被我们完美地恢复出来,然后我们把它放到一个新的虚拟环境中,当我们进行绘制时,所有的材质都能展示出非常真实的外观、反光等效果。


视频2:在皮革上的应用效果


智能图形数字化


刚才我们讲到了,如何用机器学习和人工智能技术帮助大家生成图形的素材,那我们怎么用这些技术帮助大家去做真实世界的数字化呢?


真实世界数字化的一个任务是通过扫描一个真实世界的物体,生成这个物体高度真实的数字克隆。这个过程,我们希望足够简单,用户拿手机或者一个单反相机,不需要用任何专业的设备,只要绕着物体拍一拍就可以了。同时,我们希望拍摄的结果不是一个只能在原有的视点观看的照片集合,而是用户想从什么角度看,就能从什么角度看的全新的呈现。因为原来在拍摄的时候可能是在一个特定的光照下进行的,那我们希望在任何新的光照下,都能够看到这个物体,不希望对物体有限制。对于玩具猫这种毛茸茸的东西,如果大家知道一些计算机视觉和图形学的知识,就会知道,这样的物体在以前是非常难拍的。我们的技术既能拍半透明的物体,也能拍毛茸茸的物体,还可以拍一些简单的物体,比如茶壶。


同样,我们也希望我们的技术可以结合深度神经网络,建立一个全新的三维物体表达。传统的方式是一个三维的精确的形状加一个材质贴图。然而,这种精确的三维形状加材质对很多物体,比如毛茸茸的物体、半透明的物体,都需要有不同的表达,而这些不同的表达相差甚远,很难用一个统一的方式来进行绘制和建模。所以我们希望结合深度神经网络做一个统一的深度物体表达。我们的物体的几何是物体一个粗略的三维几何,在这个几何上,我们生成了材质贴图,但这种不是物理意义的材质贴图,而是由神经网络生成的,我们叫做深度特征材质贴图。有了这些抽象的材质贴图,再加上三维形状,通过训练好的神经网络进行投影绘制、生成出用户想要的任何图像,这是一个全新的绘制流水线。


有了这个技术,大家可以看到,通过手机所拍摄的图像就可以非常真实地重建出我们现实世界的任何场景、物体。比如图9中最左边的半透明物体,可以看到,把它放到一个新的光照下,这和我们拍摄的光照是完全不同的,但仍可以看到它表面的高光的变化,这些半透明的效果都被完美地重现了出来。图9中间这个物体是毛绒的玩具,几个物体互相之间有遮挡,光照在上面的时候不仅有阴影,还有光在它们之间的一些反射效果,非常复杂。我们的技术可以很真实地再现所有的结果,保证在任何光照和视点下都可以进行非常高度真实感的绘制。图9最右边是一个小玩具,当这个玩具用我们的技术表达了以后,可以把它放到不同的光照环境中去绘制,视点也可以进行远近的调整。大家可以想象一下,这样的技术意味着我们可以快速地把真实世界的任何一个物体融入到游戏里,变成一个道具,同时也方便大家把真实的物体图形传送到其他地方去,比如做一些和增强现实等相关的应用,该技术都可以快速地生成很好的结果。


图9:智能图形数字化的结果展示


刚才讲到了从传统的流水线慢慢地发展,结合深度学习技术,加上传统的三维形状表达来做新的绘制算法,帮助大家生成更加真实的效果。而随着深度学习的发展,未来将可以完全绕开三维形状,直接从大家收集的图像出发,生成高度真实的图像。


以前我们做游戏、做很多图像图形的生成时,最重要的就是要恢复三维形状。那么当你有了这些方法之后,就会带来一种全新的可能性:也许我们只要拍足够多真实世界的图片和视频,我们就可以生成新的内容了,我们可能再也不需要进行三维建模、材质建模了


以上这些是我们在图形方面所做的一些研究成果,其实在微软亚洲研究院,除了我们所做的图形图像方面的工作,还有很多研究组都在对游戏平台做贡献。比如,我们的机器学习组就和 Xbox 的 PlayFab 合作构建智能后台,帮助 Xbox 改进了排行榜的响应时间,通过智能算法和超强的在线数据处理引擎,把它从两分钟一次更新提升到毫秒级的更新。此外,还有我们的语音组等等,都对游戏不同的内容生成做出了技术贡献。


总结与展望



最后总结一下,我刚才讲的是一些例子,通过这些例子我希望阐述的一个观点是:度学习和人工智能,很可能会改变游戏,特别是图形方式产生的开发方式。我们可能不能说一定会改变,但这是很可能会改变的。一个重要的事实是,我们的数据生成方法已经从人力驱动逐渐变成数据驱动,手动算法开发也会优化到基于数据分析的自动算法优化。如果你做神经网络的优化,会看到很多东西已经不是靠人手了,而是靠大量的数据分析,反馈数据的搜索,再做神经网络的优化,整个过程可能全都自动化了。我们甚至可能创造一个全新的方式,彻底抛开已有的传统图形的表达,产生一种基于图像的三维内容的绘制和生产系统,这都是可能的。


往更大的方面讲,我们会看到有三种力量在慢慢地改变我们游戏的开发方式,一个就是云,当我们有了云端游戏(cloud gaming)以后,我们所有的游戏都不在单机上运行,而是在服务器上运行,那么游戏引擎怎么做到可扩展?我们怎么在一台机上运行多个游戏引擎,多个备份,我们一个游戏引擎能运行在50个 GPU 上吗,怎么去做?我们还不知道。


人工智能不仅会改变内容创造的方式,其实它也会改变游戏运行的方式比如,我们可以将深度学习网络运用到现有的图形绘制流水线中去。我们也会有一些新的设备,比如我们的 GPU 有专用的深度学习计算单元,不管你用不用,它都在那儿,那就意味着当你做绘制的时候,如果你也用了这些深度学习的算法,你的代价是零,基本不增加任何的开销。还有一些新的终端设备,像 VR、AR 等等,所有这些硬件的新设备,我们的云的新平台,加上我们人工智能的新技术,我相信会对整个游戏行业的开发、运行、运营都带来一个全新的改变和革命。


一句话:游戏变了,大家准备好了吗?微软愿意和大家一起,为这个即将到来的改变做好准备!


这就是我今天的报告,谢谢大家!





你也许还想看



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/74285
 
360 次点击