DS-NeRV:基于静态和动态代码分解的隐式神经视频表示-2024CVPR

paper:https://arxiv.org/abs/2403.15679

code:DS-NeRV: Neural Video Representations with Decomposed Static and Dynamic Codes

摘要:隐式神经视频表示(NeRV)是近年来发展起来的一种高质量视频表示方法。然而,现有的作品采用单一的网络来表示整个视频,这隐含地混淆了静态和动态信息。这导致无法有效地压缩冗余的静态信息和缺乏显式建模的全球时间一致的动态细节。为了解决上述问题,我们提出了DS-NeRV,它将视频分解为稀疏可学习的静态代码和动态代码,而不需要显式的光流或残差监督。通过为两个码设置不同的采样率,并应用加权和和插值采样方法,DS-NeRV有效地利用冗余的静态信息,同时保持高频细节。此外,我们设计了一个跨信道注意力(CCA)的融合模块,有效地融合这两个代码的帧解码。由于采用了分离的静态和动态编码表示,我们的方法仅用0.35M参数就实现了31.2 PSNR的高质量重建,并且在许多下游任务中优于现有的NeRV方法

引言

2022年上半年,视频流量占整体网络流量的65. 93%,在晚高峰时段占总下行流量的比例高达80%[1,2]。这对网络通信和存储造成了巨大的压力。因此,探索更有效的视频压缩表示至关重要。

近年来,隐式神经表征(INR)由于其表现不同形式信号的显着能力而成为一种有前途的解决方案[9,34,38,41]。随着INR的发展,它已被应用于视频表示任务,如NeRV [9],它将视频压缩的挑战转化为模型压缩的问题。此外,与传统视频压缩方法[13,22,43,47]和基于学习的视频压缩方法[3,14,26,28,52]相比,基于INR的视频表示通常表现出更简单的训练过程和更高的解码速度[11]。

通常,基于INR的视频表示可以分为两种类型:(1)基于索引的[4,9,25]方法,将视频建模为神经网络,其中帧索引的位置编码作为输入以重建相应的帧。(2)基于混合的方法[11,54],其采用编码器-解码器结构,其中它们将每个帧输入到编码器中以获得相应的嵌入,然后将其转发到解码器进行重构。与基于索引的方法的内容无关性相比,基于混合的方法利用帧嵌入来封装帧信息,从而提高重建质量。然而,上述两种方法将视频作为整体进行建模,混淆了模型参数中隐含的视频内的静态和动态信息。因此,他们不能有效地压缩静态冗余信息和模型的全局一致的动态元素在视频中。

通常,视频由时不变的静态元素和时变的动态元素组成。如图1(左)所示,背景中的草地和岩石要么保持静止,要么变化很小,而兔子的姿势随着时间的推移表现出明显的变化。因此,为了减小视频INR的大小,压缩这些冗余静态信息是有益的。另一方面,动态元素需要在整个视频中进行平滑建模,以保留高频细节。

在本文中,我们从上述见解的启发,并提出DS-NeRV,一种方法,将视频分解成稀疏的可学习的静态代码Cs和动态代码Cd,分别代表视频中的静态和动态元素。可学习代码的设计与生成潜在优化GLO [7]中使用的可学习噪声向量相似。通过为两个代码分配不同的采样率和采样方法,DS-NeRV有效地分解了视频的静态和动态分量,而无需显式的光流或残差监督,并压缩了冗余的静态信息,同时保留了高频动态细节。对于给定的帧索引t,我们通过找到两个最接近的静态码cs i和cs j来计算对应的静态码,然后基于它们的距离执行加权和。通过将动态代码Cd内插到视频的长度上,然后选择具有索引t的对应代码来获得对应的动态代码。此外,我们提出了一个跨信道注意力(CCA)的融合机制,有效地融合静态和动态代码。

我们的贡献概括如下:

  • 我们提出了DS-NeRV,一种新的视频INR,将视频分解为稀疏的可学习的静态和动态代码,分别表示视频中的静态和动态元素。这种分解不需要显式的光流或残差监督。
  • 我们精心设计了不同的采样率和采样策略,两个代码,以有效地利用视频的特性。此外,我们开发了一个跨信道的注意力为基础的融合模块,融合静态和动态代码的视频解码。
  • 我们在三个数据集和各种下游任务上进行了广泛的实验,以验证DS-NeRV的有效性。实验结果表明,DSNeRV实现了更有效的视频建模比现有的INR方法,通过分解的静态和动态代码表示。

相关工作

隐式神经表示:INR的目的是通过函数F对各种信号进行建模,该函数F将输入坐标θ映射到相应的值y = F(θ),θ ∈ Rn,y ∈ Rm。从NeRF [34]开始,INR结合神经渲染方法在静态[5,6,8,19,35]和动态[16,17,38,45]场景的新视图合成以及3D重建[33,36]领域发展迅速。近年来,INR越来越多地应用于视频表示中。与Siren [41]将帧像素坐标映射到其对应的RGB不同,NeRV [9]引入了一种将帧索引直接映射到对应视频帧的方法,从而提高了效率和性能。NeRV的提议促进了视频INR的发展[4,10,11,18,20,21,25,30,54]。与现有的将视频作为一个整体进行建模的研究不同,DS-NeRV将视频分解为可学习的静态和动态代码,两者都是在训练过程中共同学习的。因此,DS-NeRV可以被视为视频的新型INR。

视频压缩:传统的视频压缩方法(例如H.264 [47],HEVC [43])利用预测编码架构来编码视频的运动信息和残差数据。随着深度学习的发展,基于神经网络的视频压缩算法[12,23,27,28,39,42,49,52]受到了极大的关注。然而,这些方法仅限于传统的视频压缩工作流程,严重影响了它们的性能。在NeRV类方法中,视频压缩问题可以转换为模型压缩问题。通过模型修剪、模型量化和熵编码等技术,DSNeRV实现了与传统视频压缩方法和其他INR方法相当的性能。

用于表示学习的潜在优化:潜在优化用于生成对抗网络(GAN),以提高样本z的质量[50]。GLO [7]为数据集中的每个图像构建了一个可学习的噪声向量,从而为图像生成提供了一种新的方法。这种方法也被引入到新的视图合成领域。为了提高重建质量,[24,31,44]参数化场景运动和外观变化与一组紧凑的潜在代码。受GLO的启发,DS-NeRV使用类似于GLO中可学习噪声向量的可学习代码对视频的静态和动态元素进行建模。通过这种方式,DS-NeRV可以以端到端的训练方式实现更高的性能,这要归功于代码更强的表达能力。

方法

Overview:给定视频序列V = {vt}T−1 t=0 ∈ RT×H×W×3,我们的目标是基于帧索引t重建帧vt。为了实现这一点,我们将视频分解为可学习的静态代码Cs ∈ Rls×hs×ws×dims和动态代码Cd ∈ Rld×hd×wd×dimd。给定帧索引t,通过加权求和得到相应的静态码ecs t,通过插值得到相应的动态码ecd t。然后将所获得的ecs t和ecd t转发到融合解码器模块以重构帧Vt,如图2所示。

视频建模

传统的视频压缩管道[43,47]使用Iframe(帧内)和P帧(预测帧)进行有效的视频编码和解码。前者包含完整的信息,独立于其他帧,作为视频序列中的关键参考点。另一方面,后者存储运动和残差数据,依赖于先前解码的I帧或P帧作为参考来解码。

受此设计概念的启发,我们利用具有低采样率rs的静态码Cs来表示视频中可以共享的静态元素以压缩冗余,而使用具有相对高采样率rd的动态码Cd来表示丰富的动态信息。

Static Codes.如图2(顶部)所示,静态码Cs = {cs 0,· · ·,cs i,· · ·,cs ls-1}沿沿着时间轴以间隔zs均匀分布。因此,给定采样率rs,静态码的长度被定义为ls = T · rs,ls = T,并且间隔被计算为zs = T/ls。

根据E-NeRV [25],在NeRV块之前用于特征图初始化的MLP通常会导致大参数。为了解决这个问题,我们更喜欢将每个静态代码cs i存储在维度为hs × ws × dims的3D向量中,而不是将被上采样以初始化特征图的1D向量,如[9,11]中所采用的。3D矢量设计消除了与NeRV块之前的MLP相关联的参数开销。在我们的实验中,对于960 × 1920 × 3的视频帧,我们将每个静态代码cs i的大小设置为4 × 8 × 64。

两个相邻静态代码之间的帧可以类似地被认为是HEVC中的GOP(图片组)[43],包含可以共享的大量冗余静态信息。因此,为了有效地利用静态代码中存储的信息,我们设计了一种创新的采样方法来获得与帧索引t相对应的静态代码ecs t。给定t,而不是仅仅依赖于最近的静态代码来获得静态信息,我们整合了来自两个相邻静态代码的信息,通过它们各自到t的距离加权求和

如图2所示,对于给定的帧索引t,我们首先获得两个相邻的静态码索引i和j(0 ≤ i < j < ls),然后根据它们到t的距离计算它们对应的权重wi和wj

基于权重和索引,我们然后执行加权求和以获得最终静态代码ecs t,如下所示:

以这种方式,可以为每个帧索引计算相关联的静态内容,从而有效地在整个视频中共享静态信息。此外,稀疏码的设计也有助于压缩冗余的静态信息。

Dynamic Codes.为了表征视频中丰富的动态信息,动态码的长度为ld = T · rd,具有较高的采样率rd。与静态代码表示类似,我们将每个动态代码存储为3D向量以减少参数。因此,我们将整个动态代码Cd设置为ld × hd × wd × dimd的大小。在我们的实验中,对于960 × 1920 × 3的视频帧,我们默认将每个动态代码的大小设置为20 × 40 × 2。

与静态码的采样方法不同,我们通过插值动态码Cd up得到相应的动态码ecd t。插值采样方法通过内部交互在动态代码之间建立全局时间相干性,与真实的世界中运动的感知连续性对齐。

具体来说,我们首先插值动态代码以匹配原始视频的长度,同时保持通道的高度,宽度和数量不变。

我们随后从索引为t的内插的一个Cd中检索动态代码ecd t,如图2所示。

我们的动态代码表示提供了低的存储开销,避免每帧的代码存储,同时保持紧凑的总大小,并实现了通过插值的全局动态信息的建模。此外,插值能够生成在训练期间看不到的帧,从而支持平滑和有意义的帧插值[7,20]。

融合解码器

Pipeline.由于获得的静态码ecs t和动态码ecd t具有不同的高度和宽度,因此我们首先采用NeRV块来对齐它们的空间维度,如图3(a)所示。然后将它们转发到基于跨信道注意力(CCA)的模块进行融合。一旦融合模块整合了来自ecs t和ecd t的信息,融合后的代码就由堆叠的NeRV块处理,以逐渐上采样到对应的帧。

CCA Fusion.当考虑融合时,融合ecs t和ecd t的一种自然方式是简单地将它们加在一起。然而,这不是一种合适的方法[18],因为它们编码来自不同域的特征,其中静态代码捕获静态信息,而动态代码表示与运动相关的信息。为了有效地融合这两种类型的信息,受交叉注意[55]和通道注意[48]的启发,我们设计了一个基于跨通道注意机制的CCA融合模块。

与更常用的空间注意力[15]相比,我们选择通道注意力,因为在CCA融合阶段,ecs t和ecd t的空间维度相同,但它们的通道不同。我们可以认为,在两个码中的相同空间位置(u,v)处,每个码代表原始帧中对应于相同区域的静态或动态信息。因此,在视频表示任务中,我们不关注两个代码中不同位置(u1,v1)和(u2,v2)之间的相互作用,因为这种相互作用对具有相同空间分布的两个特征之间的融合没有贡献。相反,我们优先考虑两个代码的不同通道之间的相互作用,因为它们具有不同的通道结构。因此,我们选择跨信道注意捕捉信息之间的相互作用的两个代码进行有效的融合。

具体地,如图3(B)所示,我们将静态代码ecs t中的每个通道视为查询,并将动态代码ecd t中的每个通道视为键值对。为了实现这一点,我们首先利用三个卷积从ecst和ecd t中提取查询、键和值组件。随后,我们将这些分量沿着空间维度展开以进行通道关注,如下所示:

在注意力机制之后,我们通过剩余连接将静态代码ecs t整合到所获得的注意力输出中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值