把视频变慢动作你可能会想到插帧的方法,但这种方法无法处理高速运动的物体,可能会导致模糊、过曝等问题!华为在CVPR2021发表了一篇文章,同时使用事件相机和普通相机进行插帧,画质提升到新高度!
如何把一段正常的视频变慢?
常见的方法就是插帧,在视频的关键帧之间预测图像中的物体运动状态生成中间帧。
在缺少额外信息的情况下,必须借助光流(optical flow)进行一阶近似(first-order approximations),但这种方法能够建模的物体运动类型比较少,从而可能导致在高度动态的场景下插帧错误的情况。
事件相机(event camera)是一种新型传感器,可以通过在帧间的盲时间(blind-time)内提供辅助视觉信息来解决这一限制。通过异步测量每个像素亮度的变化,事件相机能够以高时间分辨率(temporal resolution)和低延迟来实现这种效果。
事件相机不同于传统相机拍摄一幅完整的图像,事件相机主要拍摄的是事件,可以理解为像素亮度的变化就是一个事件。
传统相机的拍摄过程需要一个曝光时间,这个帧率极大的限制了事件捕获的延迟,即便帧率达到1000Hz,仍然存在1ms的延迟,对于拍摄慢动作来说这个延迟已经很高了。如果物体存在高速运动,就会产生模糊。
并且过曝现象也比较常见,在光线极差或者亮度极高时,相机获取的信息有限,丢失了应有的细节。
事件相机从硬件的设计上来解决上述问题,它的原理就是当某个像素的亮度变化累计达到一定阈值后,输出一个事件,这个阈值是相机的固有参数。
事件相机中的事件具有三要素:时间戳、像素坐标与极性,也就是在什么时间,哪个像素点,发生了亮度的增加或减小。
当场景中由物体运动或光照改变造成大量像素变化时,会产生一系列的事件,这些事件以事件流(Events stream)方式输出。事件流的数据量远小于传统相机传输的数据,且事件流没有最小时间单位,所以可以做到非常低的延迟。
在事件相机眼中,世界只有明暗的变化,如下图红色和蓝色分别表示当前像素亮度的增加或减小,也是一组事件流积累获得的一组事件。
事件相机具有低延迟(<)、高动态范围()、极低功耗()等特性。
然而事件相机也并非万能,虽然这些方法可以捕捉非线性运动,但它们会受到重影的影响,并且在事件较少的低纹理区域中表现不好。
所以基于合成和基于流的方法应当是互补而非对立的。
针对这个问题,华为技术(Huawei Technologies)在苏黎世的研究中心研究院在CVPR 2021 上发表了一篇文章,介绍了一个新模型Time Lens,能够同时利用两种相机的优点。
Time Lens是一个基于学习的框架,由四个专用模块组成,这些模块互相之间可以进行补充插值,能够同时进行基于warping和合成的插值。
1、基于warping的插值模块(Interpolation by synthesis),通过使用从各个事件序列估计的光流warping边界RGB关键帧来估计新帧;
首先通过反转事件序列,分别使用事件的边界关键帧I0和I1之间的新帧估计光流。使用计算出的光流,使用可微干涉在时间步长τ中warping边界关键帧,从而产生两个新的帧估计值。
与传统基于warping的插值方法主要区别在于后者使用帧本身计算关键帧之间的光流,然后使用线性运动假设近似潜在中间帧和边界之间的光流。当帧之间的运动是非线性的且关键帧受到运动模糊的影响时,此方法不起作用。
相比之下,论文的方法计算来自事件的光流,因此可以自然地处理模糊和非线性运动。尽管事件是稀疏的,但只要产生的流足够密集,尤其是在具有主要运动的纹理区域就很有效,这对于插值也最为重要。
2、warping refinement模块通过计算剩余光流来改进这种帧估计;
通过估算剩余光流,细化模块能够基于warping之间的插值结果计算细化的插入帧。然后通过估计的剩余光流再次测量τ。细化模块的灵感来源于光流和奇偶性细化模块的有效性,也来源于研究人员观察到的合成插值结果通常与实际标注真值新框架完全一致。除了计算剩余流外,warping细化模块还通过填充对值附近的阻塞区域进行修复。
3、合成插值模块通过直接融合来自边界关键帧和事件序列的输入信息来估计新帧;
在给定左帧I0和右帧I1的RGB关键帧和事件序列E0的情况下,直接回归新帧。该插值方案的优点在于处理照明变化的能力,如水反射和场景中新对象的突然出现都能有效处理。与基于warping的方法不同,它不依赖于亮度恒定性假设。但主要缺点是,当事件信息因高对比度阈值而有噪声或不足时,图像边缘和纹理会失真。
4、基于注意力的平均模块结合了基于warping和基于合成的插值结果。
注意力平均模块,以像素方式混合合成和基于warping的插值结果来获得最终插值结果。利用基于warping和合成的插值方法的互补性,其PSNR比两种方法的结果高1.73 dB。
其他的研究使用了类似的策略,但是这些工作仅混合了基于warping的插值结果以填充遮挡区域,而这篇论文中混合了基于warping和合成的结果,因此也可以处理光线变化。使用一个以插值结果为输入的张力网络来估计混合系数,光流结果和双线性系数τ取决于新帧作为具有常量值的通道的位置。
Time Lens的框架能够使生成的插入帧成为具有颜色和高纹理细节的新帧,同时能够处理非线性运动、光线变化和运动模糊。在整个工作流中,所有的模块都使用相同的骨架结构沙漏网络(hourglass network),沙漏网络能够在收缩和扩张部分之间进行跳跃连接(skip connections)。
在用于编码事件序列的学习表示时,所有模块都使用voxel grid表示。
在三个合成基准和两个真实基准上对的方法进行评估后,实验结果显示,与最先进的基于帧和基于事件的方法相比,PSNR指标提高了5.21 dB,画质有所提升。
除此之外,研究人员还在高动态的场景中发布了一个新的大规模数据集,使用一个事件相机和RGB相机同时拍摄,记录室内和室外各种条件下的数据。序列记录在室外的曝光时间低至100μs,在室内曝光时间为1000μs。
该数据集的帧速率为160 FPS,相比以往的数据集要高得多,并且使用真实彩色帧创建更大的跳帧。该数据集包括具有非线性运动的高度动态近距离场景和主要以cam时代自我运动为特征的远距离场景。
对于遥远的场景,立体校正足以实现良好的每像素对齐。对于每个序列,根据深度通过立体校正或使用基于特征的单应估计来执行对齐。在RGB图像和E2VID重建之间执行标准立体校准,并相应地校正图像和事件。对于动态近景,还通过匹配这两个图像之间的SIFT特征来估计全局同调。