cover_image

让物体在视频中消失的魔法-基于Transformer的视频修复技术

一点技术团队 赛博大象技术团队
2022年03月30日 00:30
一、引言
曾看过《哈利波特》系列电影的朋友们都知道,哈利有一件“祖传”的魔法道具:隐形斗篷,只要一穿上它就可以在众人面前瞬间消失,现在这些电影大片里的“隐身魔法”(图1)可以通过AI视频修复算法轻松实现。
视频修复是指用视频中的可信内容来填补视频帧中的缺失区域。视频修复通常可用于多种应用场景,比如损坏视频的恢复、无用目标的去除、视频重定向以及欠曝光或过曝光图像的恢复等。高质量的视频修复仍然面临着巨大的挑战,比如缺乏对视频的高层次理解和高复杂度计算、难以保全时序连续性、难以在高分辨率下实现修复、更难以降低视频对计算的开销。

图片

图1 AI隐身衣


二、研究现状

传统视频修复方法有两种:

第一种是现在比较流行的以光流边缘进行引导的光流补全技术(Flow-edge Guided),再利用补全的光流完成视频补全的算法,但是补全后的光流难以做到分段光滑,并且很难在高分辨率下实现修复。

第二种是3D 卷积和循环网络,通过聚合来自附近帧的信息来填充缺失区域。然而,由于有限的时间感受野,它们会导致视频模糊和时间伪影。为了解决上述挑战,最先进的方法应用注意力模块来捕获远程对应关系。其中一种方法通过对齐帧进行加权和来合成缺失的内容。另一种方法是从每一帧的缺失像素边界逐渐向内部填充。但这些方法有两个主要限制,一个限制是这些方法通常假设全局均匀运动,这使得它们难以对复杂的运动进行建模,另一个限制是所有视频都是逐帧处理的,没有专门设计的时序性优化,并且处理极为耗费时间与机器资源。为了解决这个问题使用时空联合Transformer(Spatial-Temporal Transformer Network,STTN)进行视频修复,利用自注意同时填充所有输入帧的缺失区域,使用时空对抗损失优化STTN。


三、基于时空Transformer的视频修复模型STTN

3.1 视频修复模型STTN

由于视频当前帧中的某些被遮挡区域可能会在远处帧的区域中显现,尤其是当遮罩很大或移动缓慢时。为了填补目标帧中的缺失区域,以相邻帧和远处帧为条件,从整个视频中借用有用的内容更为有效。为了在单个前馈过程中同时完成所有输入帧,我们基于马尔科夫假设将视频修复描述为一个“多对多”问题。

图片


其中,图片 表示取样率为s的远处帧,图片 表示以时间t为中心,n为半径的相邻帧。

为了填补每一帧的缺失区域,Transformer通过基于patch的多尺度注意力模型从所有帧中沿着空间和时间两个维度搜索一致的内容。也就是从所有帧中提取不同尺度的patch去覆盖复杂运动引起的不同的画面变化,其中大尺寸帧的patches主要是为了完成复杂的静态背景,小尺寸的patches主要是为了捕获整个视频中移动前景的深层关系。Transformer的不同的头计算不同尺度上空间块的相似度,聚集来自不同头的注意力结果,能够检测到与缺失区域最相关的那些块。此外,通过多层叠加可以充分利用时空转换,从而在更新区域特征的基础上改进缺失区域的注意力结果。STTN模型的概述如图2所示。帧级编码器由几个二维卷积层叠加而成,用于将每个视频帧的底层像素信息编码为深层特征。类似地,帧级解码器将特征解码回视频帧。时空Transformer是该算法的核心部分,起到生成器的作用,在深度编码空间中对缺失区域学习联合时空Transformer,目的在于搜寻缺失区域在其他视频帧中信息。

图片

图2 STTN模型网络结构


3.2 STTN具体网络结构

图片

表1 STTN架构详细信息

 “2dConv”表示 2D 卷积层,“Transformer × 8”表示将提出的时空Transformer堆叠八层。一个transformer层涉及1×1和 3 × 3 卷积。我们会对特征图上的所有上采样操作使用双线性插值(Bilinear UpSample),并且显示非线性列中是否使用以及使用什么非线性层。STTN 能够利用多尺度上下文并多次更新features来提高效果。


3.3 判别器

研究表明对抗训练能够确保高质量内容的生成。受此启发,使用Temporal Patch-GAN(T-PatchGAN)作为判别器。这种对抗损失在视频修复中能增强感知质量和时空一致性。T-PatchGAN由6层3D卷积层组成,如表2所示。

图片

表2 T-patchGan架构

它可以学习区分每个时空特征的真假,因此,真实数据的时空一致性以及局部和全局的感知细节能够被STTN建模。T-PatchGAN鉴别器的详细优化函数如下:

图片

其中,图片 表示对应的T个原始的不需要修复的视频帧,图片 表示对应的生成的T个视频帧。


3.4 损失函数

为了保证修复视频像素重建的准确性、感知合理性和时空一致性,使用L1损失和时空对抗损失作为优化目标。使用生成的视频帧和原始的不需要修复的视频帧计算L1损失,用于确保像素重建的准确性。缺失区域和正常区域分别计算L1损失。

图片

图片

其中,图片 表示对应的T个逐帧掩膜,图片 表示受损视频对应的原始视频帧,图片表示受损视频经过模型修复生成的T个视频帧。

STTN的对抗损失为:

图片

综合上述三种损失,总的损失函数为:

图片

其中,图片 =1图片 =1图片 =0.01


四、数据集及训练方式介绍

4.1 数据集

训练集是使用视频修复常用的数据集Youtube-VOS,此数据集中包含了卧室、街道等各种场景的视频,共有4453个。Youtube-VOS数据集的视频平均长度约为150帧。将数据集按照训练、验证和测试进行分割,训练数据的数量是3471条。


4.2 训练方式

为了贴合工程上的应用,我们生成固定掩膜和动态掩膜这两种类型的掩膜来训练模型,通过贝塞尔曲线生成随机形状的掩膜,用来模拟实际应用场景中遮罩物体的情况。具体来说,在一个单元周围随机生成一组控制点,然后通过三次贝塞尔曲线将这些点平滑地连接成一个闭合的循环轮廓,如图3。通过随机数来控制固定掩膜和动态掩膜的随机使用,当使用动态掩膜时,用随机的角度和随机的移动模拟物体的移动。

图片

图3 随机掩膜

为了保持视频的纵横比并考虑到GPU 的显存瓶颈限制,我们将所有视频帧的大小resize为432 x 240,batch size设为8,学习率从1e-4开始衰减,每150,000次迭代衰减0.1。


五、 模型训练结果

去掉视频中的飞剪遮罩区域。原始视频帧和结果视频帧对比。

图片


图片

图4 模型修复结果1


图片


图片

图5 模型修复结果2




文章来自一点资讯内容中台-音视频研发部

继续滑动看下一个
赛博大象技术团队
向上滑动看下一个