type
status
date
slug
summary
tags
category
icon
password

一. 引言

视频inpainting的任务是需要保证视频的时间一致性空间一致性的前提下,填充视频中缺失的部分,包括移除画面中移动的目标物体和去除画面中固定的物体,比如运动中的人和嵌入视频中的明水印。
  • 时间一致性:相邻帧之间运动物体的变化是连续且平滑的,不会出现“跳帧”的情况。比如固定视角画面中,一辆车从左开到右,它的移动是平滑的。(E2FGVI的解释是填充的区域,每一帧应该是相同的东西)
  • 空间一致性:单帧内修复的区域与周围区域的结合是自然的,而不会引入伪影或者不一致。比如在一帧画面中,填充的区域应该和周围物体融合地很自然。
notion image
notion image
 
流传播flow-based propagation时空transformer 是两个在视频inpainting领域中流行的方法,除此之外还有3D CNN、video internal learning等方法。作者将流传播中的图像传播和特征传播方法结合为双域传播dual-domain propagation,除此之外,作者还将基于mask引导的video transformer 与之结合,成为ProPainter。

1. 关于propagation方法

propagation:利用视频信息的手段(来自同一个团队的论文BasicVSR),根据图像中mask区域以外的信息来填充mask的区域的操作。在本论文中,指的是将上一帧修复的图像、光流信息与本帧图像进行结合,以此迭代从而达到修复本帧图像的目的。
基于propagation方法有两个分支,分别为image propagationfeature propagation
1. image propagation通过复原的光流信息进行双向的全局传播(对所有帧操作),直接对像素层面进行操作,能够填充图像中大部分的缺失,但是别的方法在此之后需要再接一个额外的图像/视频inpainting网络去填充剩余的缺失部分,两个分开的步骤会使得结果出现不好的伪影和纹理不对齐的情况。 2. feature propagation在特征层面进行双向的局部传播操作,它融合image propagation的两个步骤为一个end-to-end的框架,缺点是由于对光流信息进行了下采样,因此使得填充的区域模糊化,并且feature propagation的计算量和内存消耗巨大。
💡
由于image和feature的propagation单独使用都有一些毛病,那就将两者做一个结合,取长补短从而实现1+1>2 → dual-domain propagation,最后效果不错。
几个重要的组件:
  • Efficient GPU-based propagation with reliability check
    • 以前的image propagation都是在CPU上算的,计算复杂且耗时大,作者提出通过光流一致性检验(flow consistency check)将全局的图像传播在GPU上实现。这个组件可以插在 inpainting network 的前头并且可以与传播模块一起训练,因此,传播模块就可以纠正一些 propagation error 和从全局信息的传输中收益。
  • Improved feature propagation
    • 采用基于光流的可变性对齐(flow-based deformable alignmeng)来提高对遮挡和光流不准确问题的鲁棒性。
  • Efficient flow completion
    • 由于图像的复杂性、噪声和遮挡等影响,使得光流信息并不完整,flow completion就是通过算法或模型来填补这些缺失的光流信息。这里作者提出一种更高效的光流填补方法,能够又快效果又好。
 

2. 关于transformer方法

经典的transformer模型的计算量会根据video token的数量呈指数上升,因此无法处理高清和长时间的视频。作者提出的 efficient transformer 删掉了很多跟mask区域无关的窗口,以及只关注与交替一定间隔的视频帧,使得计算复杂度和占用内存大大下降。
💡
灵感来自:视频mask的区域只是一小部分,跟没有mask的远距离区域关系很小;此外,相邻帧之间有很大的冗余信息。

二. 早期实现方法

在作者之前,前人对视频inpainting的处理通常使用以下四种方法:3D卷积、internal learning、flow-guided propagation 和 video transformer。

1. 3D 卷积

受限于在时间和空间维度上小范围的感受野,并且容易在相邻帧之间出现不对齐的情况,3D卷积在视频inpainting方向的应用比较少。

2. Internal learning

内部学习指的是网络在训练过程中完全不使用外部数据,对某一视频修补的过程就是一个仅利用该视频数据从头开始训练的过程。

3. Flow-guided propagation

光流和单应性变换通常用于对齐相邻帧,用来加强时间一致性(coherence)和聚合(aggregation),然而光流信息会由于图像的复杂性、噪声和遮挡等影响导致光流信息的缺失,在后续会导致出现图像不对齐的情况,因此光流信息的复原是十分重要的。因此作者提出一种结合光流复原、image propagation、feature propagation的方法。

4. Video transformer

attention 和 transformer 模块通过使用时空注意力来寻找视频中重复的纹理结构,以此填补缺失区域。但是transformer对内存空间和计算复杂度要求非常高,因此作者提出一种高效的transformer方法。
 

三. 模型网络思想

受到《Towards An End-to-End Framework for Flow-Guided Video Inpainting》这篇论文E2FGVI的启发,原先image propagation很多都是需要进行手工处理的,因此需要与后续的image hallucination分开进行,因此网络并不是端到端的,而E2FGVI就提出一个端到端的网络,直接一体成型,简化了网络的流程。本论文的模型结构有很大一部分参考E2FGVI。
  E2FGVI网络结构图
E2FGVI网络结构图

1. 论文的思想:

(1)直接对视频RGB图像进行恢复的难度比恢复光流大,因此借助恢复的光流信息对视频inpainting进行辅助是一个很好的想法。
(2)以前的image propagation方法需要手工处理、feature propagation 和 transformer处理视频需要消耗很大的内存和计算资源,因此作者将image propagation、feature propagation、transformer进行一定的改动,使他们既可以用网络训练,也可以节约计算资源。

2. 网络流程:

(1)由于从masked video中的光流信息是不完整的,所以如果直接使用会导致后续propagation的结果会变得很差,因此首先需要进行光流信息的复原。
(2)利用复原好的光流信息先后应用到图像(像素)propagation 和 特征propagation,可以得到一定程度上恢复的视频。
(3)将特征propagation的结果输入进Mask-guided sparse video transformer中进行视频纹理的修复,然后经过decoder生成最后的inpainting视频。
 Propainter网络结构
Propainter网络结构

四. 实现细节

Recurrent Flow Competition → Image Propagation → Feature Propagation → masked Transformer

1. Recurrent Flow Completion

此模块是pre-trained module,如果flow completion模块和inpainting一起学习会导致光流信息复原结果一般且最终视频结果是次优解。
此外,模块是将masked video中抽取的不完整的光流进行复原,模块的输入的正向、反向两种光流,输出为复原的正向、反向光流(训练时每轮只抽取十帧做复原,还会计算光流边缘信息)
notion image
光流的抽取方法有两种,一种是顺着抽取(i→i+1,正向光流),另一种是反着抽取(i+1→i,反向光流)。无论复原的是正向光流还是反向光流,在扔进Recurrent Flow Completion模块时,都会进行双向的feature propagation,首先是进行反向的propagation,其次是将反向propagation处理过的特征送进正向的propagation中(如上图),参考自BasicVSR的IconVSR。
                                 光流复原模块示意图,以反向(特征)传播为例
光流复原模块示意图,以反向(特征)传播为例
notion image
其中,指的是抽取的有损光流进行采样率为8的下采样的特征(1,9,3,240,432)→(1,9,128,30,54)。将恢复的下一帧光流与当前帧有损光流进行concat后输入到轻量级conv layers,得到DCN的weight mask 和 offsets两个参数,然后送进DCN网络训练后与当前帧的有损光流进行残差连接,通过一个conv layers得到本帧恢复的光流,然后向前以此循环。
But,上图是一阶段的马尔科夫链,实际上是二阶段的(参考BasicVSR++),second order alignment module将前两帧恢复的flow和当前的flow 进行concat成为condition pool,通过DCN模块得到的feature与当前帧的feature做concat(对于光流的正向传播,还需要额外concat反向传播处理好的光流feature),最后再送进conv层(backbone)得到真正处理好的当前帧的feature,公式如下:
notion image
 p=1,2;σ表示sigmoid计算;C表示卷积操作;c表示在通道数上叠加
p=1,2;σ表示sigmoid计算;C表示卷积操作;c表示在通道数上叠加
DCN:deformable convolutional network 经典的卷积神经网络采样方式是通过一个固定的卷积核进行滚动采样,而可变形卷积可以通过学习适合的采样方式,从而能增强网络的特征提取能力。offsets的作用是使网络在提取特征时更多的把注意力聚焦到和训练目标有关的位置上,可以更好的覆盖不同尺寸和形状的目标。
notion image
notion image

2. Dual-domain Propagation

Dual-domain Propagation 包括 local image propagation 和 global feature propagation,这里的propagation都是进行双向传播。

2.1 Image Propagation

采用基于光流的图像变换,只有当前帧的像素同时 三个条件才能够进行图像的恢复。表示光流的有效性检验reliability check,只有通过检测才能说明该帧的光流信息的有效的;表示只关注有mask的像素区域;表示关注相邻帧非mask区域。
图像 warping 利用光流场,预估下一帧/上一帧的视频帧
💡
使用的前向光流,那么只能使用backward warp,即 (本例) 使用的反向光流,那么只能使用forward warp,即
notion image
notion image
notion image
notion image
notion image
notion image
💡
简单来说,当前帧通过相邻帧和修复的光流信息来对mask区域进行填充,填充的mask区域需要满足光流有效、相邻帧该位置无mask。

2.2 Feature Propagation

Feature Propagation也是使用了DCN这一个结构,这一部分受论文E2FGVI的影响,在它的基础上进行了一定的修改,在condition pool中额外添加了由image propagation中的consistency check计算而来光流有效图、原始的Mask 和经过了 image propagation 的Mask。
                                                      有光流信息引导的deformable module
有光流信息引导的deformable module
notion image
 

3. Mask-Guided Sparse Video Transformer

首先从字面上理解mask-guided sparse video transformer,mask-guided指的是这一模块使用了mask图像引导特征层面上修复,使用交叉注意力机制,其中mask作为Query,而特征作为KeyValue。sparse指的是在进行attention计算时不是对整个特征图做attention,而是将多余的窗口丢弃,从而简化计算的复杂度。
  • sparse mask将所有mask进行数值叠加,然后再划分窗口,只要窗口中有数值大于零的点,那么该窗口就设为1,其他设为0,最后丢弃设为0的窗口,从而能够降低attention运算时的复杂度。
    • 直观理解:只保留mask周围的区域,因为距离mask越近关系越紧密,距离越远关系就越疏远。
  • 由于相邻帧之间的信息差距很小,因此为了简化计算,将只取奇数的特征图进行下一步的计算。
notion image

五. 实验

1. 数据集

数据集使用YouTube-VOS和DAVIS,与E2FGVI保持同步,数据集中视频分辨率为432×240,时长为3~6秒,由于DAVIS数据集比较少,因此只用来进行测试,而YouTube-VOS既用来测试,也用于训练。
notion image

2. 评估指标

评估的指标有三个方面,分别是重构表现reconstruction performance、输入输出之间的感知相似度和时间序列上的平滑性,如下图。
notion image

3. 实验结果

从性能和效率两个方面进行测试,结果均为最佳
从性能和效率两个方面进行测试,结果均为最佳
 在光流恢复模块的性能和效率两方面进行测试,效果也很好
在光流恢复模块的性能和效率两方面进行测试,效果也很好

六. 总结

  • 提出一个将视频inpainting领域流行的方法整合成一个统一的框架,包含flow completion、propagation和transformer。
  • 将image/feature propagation两个方法结合,在多个指标评估上做到更好。
  • 提出mask-guided sparse transformer,在精确度不影响的情况下,提高了模型的运行效率。
SAVITI3D网络
Hidragon
Hidragon
我唯一知道的是我一无所知
公告
type
status
date
slug
summary
tags
category
icon
password
追风赶月莫停留,平芜尽处是春山