Nvidia开发了一种截然不同的压缩视频通话方式

2020-11-22 00:40:26

上个月,Nvidia宣布了一个名为Maxine的新平台,该平台使用AI增强了视频会议软件的性能和功能。该软件使用神经网络来创建人脸的紧凑表示。然后,可以通过网络发送此紧凑表示,第二个神经网络可以重构原始图像-可能会进行有用的修改。

Nvidia表示,与传统的压缩技术相比,其技术可以将视频会议软件的带宽需求减少10倍。它还可以更改人脸的显示方式。例如,如果某人由于摄像机的位置而显得偏心,则该软件可以旋转她的脸以使其看起来笔直。该软件还可以用动画化身来代替某人的真实面孔。

Maxine是软件开发套件,而不是消费产品。 Nvidia希望第三方软件开发人员将使用Maxine改进自己的视频会议软件。而且该软件具有一个重要的限制:接收视频流的设备需要具有张量核心技术的Nvidia GPU。为了支持没有合适图形卡的设备,英伟达(Nvidia)建议在云中生成视频帧,这种方法在实践中可能会或可能不会很好地起作用。

但是,不管Maxine在市场上的表现如何,这一概念对于将来的视频流服务而言似乎都很重要。不久之后,大多数计算设备将足够强大,可以使用神经网络生成实时视频内容。 Maxine及其类似产品可以以更低的带宽消耗实现更高质量的视频流。

GAN是一个神经网络,它是一个复杂的数学函数,需要数字输入并产生数字输出。对于视觉应用,神经网络的输入通常是图像的逐像素表示。例如,一个著名的神经网络将图像作为输入,并输出图像落入“达尔马提亚”和“蘑菇”等1,000个类别中的估计概率。

神经网络具有数千个(通常是数百万个)可调参数。通过根据实际数据评估其性能来训练网络。网络显示了一个真实世界的输入(如狗的图片),其正确的分类对于训练软件(也许是“达尔马提亚狗”)是已知的。然后,培训软件使用一种称为反向传播的技术来优化网络参数。推动将网络推向正确答案的价值得到提升,而导致错误答案的价值则被重新拨回。在数以千计甚至数百万个示例中重复此过程之后,网络可能会在针对其进行训练的任务上变得非常有效。

培训软件需要知道每个输入的正确答案。因此,经典的机器学习项目通常需要人们手工标记成千上万个示例。但是,如果有一种自动生成训练数据的方法,则可以大大加快训练过程。

生成对抗网络是一种训练神经网络的聪明方法,而无需人工标记训练数据。顾名思义,GAN实际上是两个相互“竞争”的网络。

第一个网络是一个生成器,它使用随机数据作为输入并尝试生成逼真的图像。第二个网络是一个鉴别器,它获取图像并尝试确定它是真实图像还是由第一个网络创建的伪造品。

训练软件可同时运行这两个网络,每个网络的结果将用于训练另一个:

鉴别器的答案用于训练发电机。当鉴别者错误地将生成器创建的照片归类为真实照片时,这意味着生成器在创建逼真的图像方面做得很好,因此可以增强导致该结果的参数。另一方面,如果鉴别器将图像分类为伪造品,则将其视为生成器失败。

同时,训练软件向鉴别器显示生成器生成的真实或随机图像选择。如果鉴别器猜测正确,则视为成功,并且鉴别器网络的参数会更新以反映这一点。

在培训开始时,这两个网络都不适合他们的工作,但是随着时间的推移它们会不断改善。随着生成器图像质量的提高,鉴别器必须变得更加复杂以检测伪造品。随着区分器变得越来越具有区分性,生成网络将受到训练以使照片看起来越来越逼真。

结果可能是惊人的。一个名为ThisPersonDoesNotExist.com的网站确实听起来很像:它生成不存在的人类的逼真的照片。

该站点由Nvidia研究人员开发的称为StyleGAN的生成神经网络提供支持。在过去的十年中,由于Nvidia的图形卡已成为进行神经网络计算的最流行方法之一,因此Nvidia投入了大量资金进行神经网络技术的学术研究。

最早的GAN试图在诸如人脸之类的广泛类别中生成随机逼真的图像。这些称为无条件GAN。最近,研究人员开发了条件GAN(神经网络),先获取图像(或其他输入数据),然后尝试生成相应的输出图像。

在某些情况下,训练算法向生成器和鉴别器提供相同的输入信息。在其他情况下,生成器的损失函数(即网络出于训练目的的良好程度的度量)将鉴别器的输出与其他一些判断输出的输入数据拟合程度的度量结合起来。

这种方法具有广泛的应用范围。研究人员已使用条件GAN从文字描述生成艺术品,从草图生成照片,从卫星图像生成地图,预测人们年纪大后的样子等等。

这使我们回到了Nvidia Maxine。 Nvidia尚未提供有关该技术工作原理的完整细节,但确实向我们指出了2019年的一篇论文,该论文描述了支持Maxine的一些基本算法。

该论文描述了一个条件GAN,它以一个人脸说话的视频和第二人脸的几张照片为输入。生成器创建第二个人的视频,该视频的动作与原始视频中的人物相同。

Nvidia的新视频会议软件对该技术进行了少许修改。 Maxine不用从视频中输入内容,而是从源视频中提取了一组关键点-数据点指定了对象的眼睛,嘴巴,鼻子,眉毛和其他面部特征的位置和形状。与普通视频相比,该数据可以更紧凑地表示,这意味着它可以在网络上以最小的带宽传输。网络还发送高分辨率视频帧,以便接收者知道对象的外观。接收者的计算机然后使用条件GAN重建对象的脸部。

Nvidia研究人员在2019年描述的网络的一项关键功能是,它并非仅针对一张脸。可以训练单个网络,以根据提供的照片作为输入来生成不同人的视频。 Maxine的实际好处是无需为每个用户训练新的网络。取而代之的是,Nvidia可以提供可以吸引任何人的面孔的预训练发电机网络。与从头开始训练新网络相比,使用经过预先训练的网络所需的计算能力要低得多。

英伟达的方法可以轻松地以多种有用的方式来处理输出视频。例如,视频会议技术的一个常见问题是摄像头偏离屏幕中心,从而使人看起来好像在向侧面看。 Nvidia的神经网络可以通过旋转用户面部的关键点使其居中来解决此问题。英伟达并不是第一个这样做的公司。苹果公司一直在为FaceTime开发自己的此功能版本。但是,Nvidia基于GAN的方法可能会更强大,从而可以修饰整个面部而不只是眼睛。

Nvidia Maxine还可以用执行相同动作的动画角色代替对象的真实头部。再说一次,这并不是什么新鲜事-几年前Snapchat推广了这一概念,并且在视频聊天应用程序中已经很普遍。但是Nvidia的基于GAN的方法可以使更真实的图像在更广泛的头部位置上工作。

Maxine不是消费产品。而是一个用于开发视频会议软件的软件开发套件。 Nvidia为开发人员提供了许多不同的功能,并让他们决定如何将它们组合成可用的产品。

至少Maxine的初始版本会有一个重要的限制:它需要在视频流的接收端使用最新的Nvidia GPU。 Maxine建立在张量核心之上,而张量核心则是在最新的Nvidia图形卡中针对计算机学习操作进行了优化的计算单元。这对视频会议产品构成了挑战,因为客户将期望获得对各种硬件的支持。

当我向Nvidia代表询问此事时,他认为开发人员可以在配备必要Nvidia硬件的云服务器上运行Maxine,然后将渲染的视频流传输到客户端设备。这种方法使开发人员可以获得Maxine的部分好处,但并非全部。开发人员可以使用Maxine重新调整用户面部的方向,以改善眼神交流,替换用户背景,并执行诸如将主体的面部变成动画角色的效果。由于Maxine的关键点提取技术不需要Nvidia GPU,因此以这种方式使用Maxine还可以节省用户视频上行链路的带宽。

尽管如此,Maxine最强的卖点可能是其对带宽的要求大大降低。而且只有在客户端设备上生成视频时,才能实现全部带宽节省。这将要求Maxine支持不具有Nvidia GPU的设备。

当我问Nvidia是否计划增加对非Nvidia GPU的支持时,它拒绝评论未来的产品计划。

目前,Maxine处于开发的“早期访问”阶段。 Nvidia提供了一些早期开发人员的访问权限,这些人员正在帮助Nvidia完善Maxine的API。在将来的某个时候(Nvidia不会再说什么时候),Nvidia将向软件开发人员总体开放该平台。

当然,英伟达不太可能在这种视频会议方法上保持垄断。据我所知,其他主要科技公司尚未宣布使用GAN改善视频会议的计划。但是,谷歌,苹果和高通都在致力于开发更强大的芯片来支持智能手机上的机器学习。可以肯定的是,这些公司的工程师正在探索使用神经网络进行类似Maxine的视频压缩的可能性。鉴于其硬件和软件的紧密集成,苹果在开发此类软件方面处于特别有利的位置。