视频超分|SOF-VSR
paper: https://arxiv.org/abs/2001.02129
code: https://github.com/LongguangWang/SOF-VSR
Abstract
视频超分旨在生成具有与LR时序一致性且视觉效果更好的高分辨率图像。视频超分的关键挑战在于:如何更有效的利用连续帧间的时序信息。现有的深度学习方法通常采用光流方法从LR图像上估计时序信息,低分辨率的光流会影响HR图像的细节复原效果。
该文提出了一种端到端的视频超分方法,它同时对光流与图像进行超分,光流超分开源提供更精确的时序信息进而提升视频超分的性能。作者首先提出一种光流重建网络(OFRNet)以“自粗而精”的方式预测HR光流,然后采用HR光流进行运动补偿编码时序信息,最后采用补偿后的LR图像送入超分网络(SRNet)生成超分结果。
作者通过充分的实验验证了HR光流对于超分性能提升的有效性,所提方法在Vid4与DAVIS10数据集上取得了SOTA性能。
该文的贡献包含以下几点:
- 将光流与图像的超分集成到统一的SOF-VSR框架中,光流超分有助于提升图像超分性能;
- 提出一种OFRNet采用“自粗而精”的方式从LR图像中预测HR光流,它有助于重建更精确的时序信息;
- 在公开基准数据集(Vid4,DAVIS10)上,所提SOF-VSR取得了SOTA性能。
Method
OFRNet
为降低模型大小以及训练难度,作者采用了尺度递归架构,见上图。在前两级作者采用递归模块估计不同尺度的光流信息,在第三级作者首先采用递归架构生成深度表达,然后引入SR模块重建HR光流。这种尺度递归架构有助于OFRNet处理复杂的运动,同时使得模型更轻量。
Motion Compensation Module
通过OFRNet得到HR光流后,作者通过space-to-depth
变换对HR光流与LR图像进行桥接,见下图。注:光流的幅值需要除以s以匹配LR图像的空间分辨率。
Loss Function
作者分别针对SRNet和OFRNet设计了损失函数,它们分别是:
Experiments
训练数据:作者选用了CDVL,测试数据为Derf4、Vid4以及DAVIS。评价准则:PSNR、SSIM以及MOVIE。下图给出了所提方法在Vid4上的参数量与FLOPS以及指标。
下表给出了所提方法与其他视频超分方法的在Vid4数据集上性能对比
下表给出所提方法与其他视频超分方法在DAVIS10数据集上的性能对比。
全文到底结束,更多详细实验分析建议查看原文,不再赘述.
- JavaWeb三大组件之Servlet学习
- Android App瘦身实战
- [先行者周末课程] 日历组件的开发思路讲解&&日历组件在实际工作中的使用方式
- Batik渲染png图片异常的bug修复
- SpringMVC支持跨域的两种姿势
- SpringMVC返回图片的几种方式
- Redis实现分布式锁相关注意事项
- React Native调用Android相机图库
- SpringMVC之请求参数的获取方式
- 糖大夫--测量流程性能监控自动化方案设计
- ReactNative调用Android原生模块
- jvm调优的工具介绍
- Python时间序列预测案例研究:巴尔的摩年度用水量
- [一对一课程] 之 设计并实现第一个JS模块?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用CloudFlare来为网站开启客户端证书验证
- 浅解shallow copy、deep copy
- Kubernetes 1.19.0——服务svc(1)
- 为什么不推荐使用PHPicker
- 【C语言简单说】一:第一个C语言程序
- 【C语言简单说】二:第一个C语言程序详解(1)
- 【C语言简单说】二:第一个C语言程序详解(2)
- 【C语言简单说】二:第一个C语言程序详解(3)
- 【C语言简单说】三:整数变量和输出扩展(1)
- 【C语言简单说】三:整数变量和输出扩展(2)
- 【C语言简单说】三:整数变量扩展和输出扩展(3)
- 【C语言简单说】三:浮点数变量和字符变量(4)
- 【C语言简单说】三:变量总结ASCII码扩展(5)
- 【C语言简单说】四:常量
- 【C语言简单说】五:常用运算符