作者单位:赛峰电子与防务、巴黎萨克雷大学等
论文链接:https://arxiv.org/abs/2112.08950
笔者言: 现有循环VSR对于慢动作的长时间序列的处理并不理想,比如视频监控的应用中。由于不精确隐藏状态叠加,随着时间推移超分辨率结果会产生伪影。针对这个问题,本文从Lipschitz稳定性的角度分析并对VSR进行约束来稳定推理过程。

看点

循环VSR模型在推理小动作范围的长视频序列时(其中一些场景几乎没有移动),循环处理产生偏差导致高频伪影。本文首先构造了一个长时间序列数据集 — Quasi-Static,然后在这个数据集上揭示了这种不稳定性。通过Lipschitz稳定性理论,本文提出了一个稳定且有竞争力的循环VSR网络(Middle Recurrent Video Super-ResolutionM,RVSR)来解决上述问题。

方法

由于计算和内存的限制,以及梯度消失和爆炸,循环VSR模型通常在7到12帧上进行训练。然后它们被用于推理任意长度序列。如下图所示,本文发现当推断低运动的长视频序列时(场景几乎不移动,e.g.准静态的相机),循环VSR网络会产生高频伪影。

这种意想不到的行为对于一些现实应用可能是至关重要的,比如在视频监控中,摄像机和场景都长时间保持静态。

循环VSR的稳定性

先介绍一下Lipschitz连续,满足如下性质的任意连续函数 f ( x ) f(x) f(x)称为L-Lipschitz:
∣ ∣ f ( x 2 ) − f ( x 1 ) ∣ ∣ ⩽ L ∣ ∣ x 2 − x 1 ∣ ∣ ||f(x_2)-f(x_1)||\leqslant L||x_2-x_1|| ∣∣f(x2​)−f(x1​)∣∣⩽L∣∣x2​−x1​∣∣可以看出满足K-Lipschitz的函数在任意两点之间的连线斜率小于等于L,那么也就是函数任意点的导数也小于等于L。VSR中,循环信息 h t h_t ht​和输出图像 y ^ t \hat y_t y^​t​在时间步t更新如下: { h t = ϕ L ( h t − 1 , x t ) y ^ t = ψ ( h t ) \left\{\begin{array}{l} h_{t}=\phi^{L}\left(h_{t-1}, x_{t}\right) \\ \hat{y}_{t}=\psi\left(h_{t}\right) \end{array}\right. {ht​=ϕL(ht−1​,xt​)y^​t​=ψ(ht​)​当 ϕ L \phi^{L} ϕL收缩于 h h h,循环模型被认为是Lipschitz稳定的。假设 ϕ L \phi^{L} ϕL由K个卷积层组成,其中有ReLU相互间隔。每个卷积层都可以用一个权重矩阵进行编码,权重矩阵由该层的核张量得到,是双块循环矩阵的块矩阵。由于ReLU的Lipschitz常数为1,L的数值为所有权重矩阵的谱范数乘积。
约束1:硬Lipschitz约束(HL) : ∀ k ∈ [ 1 , K ] , ∣ ∣ W k ∣ ∣ ≤ 1 ∀k ∈ [1, K], ||W_k|| ≤ 1 ∀k∈[1,K],∣∣Wk​∣∣≤1。上式中的上界大多高估了L。例如, ϕ L \phi^{L} ϕL由权重矩阵 W 1 W_1 W1​和 W 2 W_2 W2​组成,则 L = ∣ ∣ W 1 ∣ ∣ ⋅ ∣ ∣ W 2 ∣ ∣ L = ||W_1||·||W_2|| L=∣∣W1​∣∣⋅∣∣W2​∣∣的唯一情况是 ∣ ∣ W 1 ∣ ∣ ||W_1|| ∣∣W1​∣∣的第一个右奇异向量与 W 2 W_2 W2​的第一个左奇异向量对齐。这种约束过于严格。
约束2:软Lipschitz约束(SL) : ∀ k ∈ [ 1 , K ] , ∣ ∣ W k ∣ ∣ = α > 1 ∀k∈[1,K],||W_k||=α>1 ∀k∈[1,K],∣∣Wk​∣∣=α>1且最小化 s r a n k ( W k ) srank(W_k) srank(Wk​),其中 s r a n k srank srank为稳定秩。稳定秩是秩算子在矩阵的小扰动下稳定的近似。这种软约束在理论上不能保证Lipschitz稳定性,因此验证其不发散性是很重要的。
为了加强这些约束,可以在训练阶段对卷积层应用稳定秩归一化 (SRNL):将该层矩阵的谱范数设置为α,并在训练过程中最小化矩阵的稳定秩β。当β = 1时,相当于对矩阵进行谱归一化。在训练结束后,测试之前需要进行规范化步骤,因此算法在运行时和推断时不会引入任何开销和模型大小。

无约束稳定循环VSR

将SRNL应用于 ( α , β ) = ( 1.0 , 1.0 ) (α,β) =(1.0,1.0) (α,β)=(1.0,1.0)的RLSP,这导致了一个稳定的网络,但VSR性能较差。这是因为最终的架构被限制为全局1-Lipschitz,而一个成功的超分函数不可能是1-Lipschitz的,因为一些频率需要增强。为此,本文定义了一种新的循环VSR网络,该网络在长序列上稳定且具有竞争力,如下: { z t = ξ ( X t ) h t = ϕ L ( h t − 1 , z t ) y ^ t = ψ ( h t ) \left\{\begin{array}{l} z_{t}=\xi\left(X_{t}\right) \\ h_{t}=\phi^{L}\left(h_{t-1}, z_{t}\right) \\ \hat{y}_{t}=\psi\left(h_{t}\right) \end{array}\right. ⎩ ⎨ ⎧​zt​=ξ(Xt​)ht​=ϕL(ht−1​,zt​)y^​t​=ψ(ht​)​其中 z t z_t zt​为特征, ϕ L \phi^{L} ϕL由硬Lipschitz约束。本网络的内部循环的所有层都是收缩的,这保证了它随着时间的推移的稳定性。这种网络在Lipschitz连续性方面不受全局约束,因为它的输入和输出网络是非收缩的,可以保持其充分的表达性。大部分的反卷积任务是通过 ξ ξ ξ和 ψ ψ ψ来完成的。

MRVSR

本文设计了一个新的网络MRVSR来实现上述过程。如下图所示,结构很简单,由卷积和ReLU构成。

Quasi-Static测试集

本文引入了一种新的长序列测试集,其中相机是准静态的,前景物体是移动的。它从vimeo.com和youtube.com下载视频,并提取了4个序列。其中前两个是Full HD和HD Ready,后两个是4K。HD和4K序列分别下采样2和4倍。这4个序列在帧数上分别有以下长度:379,379,379和172。它们构成Quasi-Static测试数据集。此外,第一个序列的视频包含更大数量的帧,称为 1 − X L 1-XL 1−XL,包含8782帧。所有这些序列都可以在https://github.com/bjmch/MRVSR上得到。

实验

在处理的帧数量相对较少之前,现有的循环网络(RLSP, RSDN和FRVSR)的性能是最优的,仍然比基线模型更好。但在某一点上,它们的性能下降,变得比基线模型更差,这表明递归在每一帧都集成了有害信息。

在Vid4上的平均PSNR,模型大小和运行时间,可以看到MRVSR在短时间序列上并不理想

Quasi-Static测试集的第一个序列的第376帧的定性评估

CVPR2022 | 利用Lipschitz约束来稳定循环VSR的推理相关推荐

  1. 关于WGAN的学习总结——Lipschitz约束与正则化

    写在前面的话 真是觉得数学决定了人工智能的上限,不得不佩服数学专业的大佬,WGAN还是比较经典的GAN网络,其结果也蛮好的(跑的MNIST数据集),但是损失看了代码也没看懂咋算的,所以还是得从数学原理 ...

  2. 深度学习中的Lipschitz约束:泛化与生成模型

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 去年写过一篇 WGAN-GP 的入门读物互怼的艺术:从零直达WGAN-GP,提到通过梯度惩罚来为 ...

  3. 利用非约束性委派+Spooler打印机服务 制作黄金票据攻击域控

    目录 前言 攻击过程 Rubeus监听 利用打印服务强制让域控机向本机验证身份 提取TGT 注入TGT票据到当前会话并导出域控中所有用户的hash 制作黄金票据 前言 继上一篇 --> 域渗透- ...

  4. 91.video.ws index php_如何利用videojs实现视频列表循环播放(完整代码)

    本篇文章给大家带来的内容是关于如何利用videojs实现视频列表循环播放(完整代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 庭审直播 .video-js { /* posit ...

  5. 利用c语言设置密码错误循环,c语言运算符优先级与while循环案例

    sizeof可以获取数据类型的内存中的大小(字节) #include #include // standared 标准 // input output 输入/输出 // header 头 .h头文件 ...

  6. 如何利用双休日,每月稳定增加额外1500元收入?

    针对8种不同标签的人群,良心推荐12个稳定增加收入的副业,最短一天就能有收入,月入几千的大有人在! 认真看有干货,很可能会成为你的主业!最好先点赞收藏,以免后面找不到! 不管你是上班族还是学生党,一个 ...

  7. 用python做一个购物车编程_利用python实现简单的循环购物车功能示例代码

    本文主要给大家介绍了关于python实现循环购物车功能的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 示例代码 # -*- coding: utf-8 -*- __author__ = ...

  8. 利用jQuery实现图片无限循环轮播(不借助于轮播插件)

    原来我主要是用Bootstrap框架或者swiper插件实现轮播图的功能,而这次是用jQuery来实现图片无限循环轮播! 用到的技术有:html.css.JavaScript(少).jQuery(主要 ...

  9. JavaScript利用回调函数完成次序循环打印“红黄绿”灯

    var id;function redLight(a,b,time){ ///l1(l2黄,l3绿,2000)console.log("红灯")clearTimeout(id);i ...

最新文章

  1. AlphaFold2爆火背后,人类为什么要死磕蛋白质?
  2. linux时间同步_如何在Ubuntu上使用FreeFileSync同步文件
  3. 用python画立体玫瑰花-Python 玫瑰花绘制
  4. oracle 新建TNS监听,oracle for windows 监听问题之TNS-12545
  5. HDU - 4738 Caocao's Bridges(边双缩点)
  6. rails开发随手记-0
  7. 计算机二级测试试题及答案,2017计算机二级测试题及答案解释
  8. 孤儿进程、僵尸进进程
  9. SpringCloud创建Config多客户端公共配置
  10. Rails运行时sqlite3报错问题的解决
  11. java 字符串拼接_不能用 + 拼接字符串? 这次我要吊打面试官!
  12. 尚硅谷前端视频总结(一)
  13. ARM体系结构与编程-3
  14. 【javascript】字符串逆序输出
  15. 计算机在未来医学中的应用,【-通信传播论文:计算机技术在医学中的应用材料】...
  16. 常用笔刷(blender)
  17. 三角形主机linux,受热捧的三角形主机是什么?我来为你解析
  18. 9.将列表[mo,deng,ge]和[1,2,3] 转换成[(mo,1),(deng,2),(ge,3)]
  19. linux dae文件下载,linux dae命令详解.doc
  20. bzoj4627[BeiJing2016]回转寿司

热门文章

  1. 在线音乐哪个支持linux,网易云音乐上线国内在线音乐应用中首个Linux版
  2. Node 简单搭建服务器
  3. iTunes Connect中的Testflight的使用方法.
  4. 工控软件的授权保护——【在线讲座】
  5. 6※、线程同步、同步锁、同步代码块的使用、同步锁释放的时机、ReentrantLock可重入锁、公平锁与非公平锁的区别、什么是死锁、线程间的通信(生产者和消费者模式)
  6. 几步教会你路径配合动画的制作
  7. listview winfrom 表头_C# 设置Listview的Columns标头颜色和高度
  8. 黑客宣言_创客宣言:你打算做什么?
  9. 0731-并查集-HDU2473
  10. 公式编辑器mathtype中一些符号显示方框,如何解决呢?