高糊视频秒变4K!Facebook发布低分辨率视频实时渲染算法,网友:是好东西,但是玩不起

成本3000美元!

贾浩楠 发自 凹非寺
量子位 报道 | 公众号 QbitAI

还记得那个引来巨大争议,最后把LeCun逼退推特的低分辨率图像还原算法PULSE吗?

PULSE是针对低分辨率图像进行还原的,而就在PULSE问世不久后,一个针对模糊视频进行实时高分辨率渲染的算法问世了。

前几天,Facebook公布了一项在即将举行的SIGGRAPH 2020会议上展示的新论文,提出了一种新的神经网络算法神经超采样

新算法实现了低分辨率视频的4*4的实时渲染,也就是说能把大部分视频分辨率提升16倍,直接变成4K视频!

而1080p的视频渲染延迟更是控制到24.4ms!

除了超低延迟,这种算法的巨大进步在于摆脱了特定硬件和技术的束缚(如虚幻引擎的TAAU和英伟达的DSSL),在PC上就可以实现。

高糊骑兵视频马上变4K!

话不多说,直接上实时渲染效果实测。

下图由上至下,分别是低分辨率输入视频、神经超采样算法(分辨率提高16倍)渲染结果、离线渲染目标视频截图。

可以看出,“神经超采样”算法的实时渲染输出,视频细节的精度已经高度接近目标渲染视频。

这样的优秀表现引来网友一片惊叹,尽管Facebook方面认为这项技术未来主要用于游戏开发和实时VR技术,但网友们纷纷喊话FB,希望看到这项技术用在早年的3D游戏重置上,比如三角洲部队放逐等等。

尽管有些游戏已经有了重制版,但这个算法可以实现自动渲染,极大提升效率。

那么,这种高性能的实时渲染算法到底怎么实现的呢?

秒变4K是如何实现的

神经超采样实时渲染(Neural-Supersampling for realtime rendering)算法构造主要有4个不同功能模块。

首先是特征提取模块,包含3层卷积神经网络。这个子网络单独处理每个输入帧, 并在除当前帧外的所有帧中共享权重。

对于每一帧,特征提取模块将颜色和深度作为输入,并生成8个通道的学习特征,然后与输入的颜色和深度进行连接,从而获得总共12个通道的特征。网络如下图表示。

其次,为了降低重建网络的复杂性,算法应用了时空重投影,通过使用渲染的运动矢量,将前一帧的像素样本和学习的特征投射到当前。

为了充分利用低层像素后向运动矢量,需要在目标(高)分辨率空间进行时空重投影。首先,将输入(低)分辨率空间的像素样本投影到高分辨率空间,采用零上采样的方式,即把每个输入像素分配到其对应的高分辨率像素上,并将其周围所有缺失的像素作为零。

每个输入像素的位置平均落在高分辨率中的𝑠像素之间,其中𝑠为上采样比。之所以选择零上采样,一是为了提高效率,二是为了给网络提供哪些样本有效或无效的信息。

然后,利用运动矢量的片状平滑特性,简单地通过双线性上采样将渲染的低分辨率运动矢量图调整为高分辨率。虽然这种简单的方法会给上采样的运动矢量带来误差,但能够通过这种方法实现对运动矢量的控制。

接下来,进行无采样前帧的后向扭曲,这一步骤使用了向上采样向量,对前一帧进行零向上采样。在翘曲过程中则采用双线插值。

第三部分是特征重新加权

渲染的运动矢量不反映动态不协调或阴影帧之间的变化。因此,扭曲的帧会包含伪影,如在遮挡区域的阴影和在不一致的阴影区域不匹配的像素。

为了解决这个问题,研究人员引入了一个特征重新加权方法模块,以屏蔽掉这些不匹配的样本。

特征重新加权模块是一个3层卷积神经网络。它将当前帧的零上采样的RGB-D、零上采样、扭曲的前一帧同时作为输入,为之前的每一帧生成一个像素加权图,权重值在0到10之间,其中10是一个超参数。

 

超参数的设置是为了让学习到的地图不仅能衰减,而且还能也会放大每个像素的特征。

最后将每个加权图乘以对应前一帧的所有特征。

第四部分是重建,将当前帧的特征和重新加权的先前帧的特征连接起来,并反馈给重建网络,该网络会输出恢复的高分辨率图像。重建子模块采用3级、10层的U-Net,并带有跳过连接。

实验结果

团队的实验条件是英伟达Titan V卡,并使用了Nvidia TensorRT对算法进行了16bit优化。

下图是算法渲染不同分辨率视频所需的运行时间(提升16倍分辨率),单位为ms。其中Ours为基础算法,Ours-Fast是经过简化的快速版本。

这张表表示的是渲染目标为1080p分辨率时,算法不同步骤的运算时间。

与现行的同功能算法相比,4*4超神经采样算法在各个指标都领先。这些结果是在常用的4个视频上经过10次测试得出的。

网友吐槽:不能在通用CPU上运行的实时都不叫实时

尽管4*4超神经采样算法在低分辨率视频实时渲染上有很好的表现,而Facebook官方也宣称这个算法突破了特殊硬件和技术的限制,在PC上就能运行。

但网友们依然吐槽,要达到实验结果展示的“实时”渲染表现,一块英伟达Titan V是必须的。

而现在一块Titan V官方售价3000美元左右,经过不同厂商优化过的,更是价格高昂。

难道“实时”只是有钱人的特权吗?

Reddit网友呼吁,应该建立一个标准,只有在通用CPU上能实现到实时的,才能叫真实时。

那么,你认为这个实时渲染高分辨率算法的价值有多少呢?你愿意付出一块Titan V的成本来实现这一算法吗?

论文地址https://research.fb.com/publications/neural-supersampling-for-real-time-rendering/

成果演示https://research.fb.com/blog/2020/07/introducing-neural-supersampling-for-real-time-rendering/

版权所有,未经授权不得以任何形式转载及使用,违者必究。