TecoGAN视频超分辨率算法

news2024/11/27 11:49:28

1. 摘要

对抗训练在单图像超分辨率任务中非常成功,因为它可以获得逼真、高度细致的输出结果。因此,当前最优的视频超分辨率方法仍然支持较简单的范数(如 L2)作为对抗损失函数。直接向量范数作损失函数求平均的本质可以轻松带来时间流畅度和连贯度,但生成图像缺乏空间细节。该研究提出了一种用于视频超分辨率的对抗训练方法,可以使分辨率具备时间连贯度,同时不会损失空间细节

该研究聚焦于新型损失的形成,并基于已构建的生成器框架展示了其性能。研究者证明时间对抗学习是获得照片级真实度和时间连贯细节的关键。除了时空判别器以外,研究者还提出新型损失函数 Ping-Pong,该函数可以有效移除循环网络中的时间伪影,且不会降低视觉质量。之前的研究并未解决量化视频超分辨率任务中时间连贯度的问题。该研究提出了一组指标来评估准确率和随时间变化的视觉质量。用户调研结果与这些指标判断的结果一致。总之,该方法优于之前的研究,它能够得到更加细节化的图像,同时时间变化更加自然。

2. 模型方法

该研究提出的 VSR 架构包含三个组件:循环生成器、流估计网络和时空判别器。生成器 G 基于低分辨率输入循环地生成高分辨率视频帧。流估计网络 F 学习帧与帧之间的动态补偿,以帮助生成器和时空判别器 D s , t D_s,t Ds,t
训练过程中,生成器和流估计器一起训练,以欺骗时空判别器 D s , t D_s,t Ds,t。该判别器是核心组件,因为它既考虑空间因素又考虑时间因素,并对存在不现实的时间不连贯性的结果进行惩罚。这样,就需要 G 来生成与之前帧连续的高频细节。训练完成后, D s , t D_s,t Ds,t 的额外复杂度不会有什么影响,除非需要 G 和 F 的训练模型来推断新的超分辨率视频输出。

在这里插入图片描述
在这里插入图片描述
图 2:具备动态补偿(motion compensation)的循环生成器。
该研究提出的判别器结构如图 3 所示。它接收了两组输入:真值和生成结果。
在这里插入图片描述
图 3:时空判别器的输入。

3. 损失函数

为了移除不想要的细节长期漂移,研究者提出一种新型损失函数「Ping-Pong」(PP) 损失。
在这里插入图片描述
图 4:a)不使用 PP 损失训练出的结果。b)使用 PP 损失训练出的结果。后者成功移除了漂移伪影(drifting artifact)。

如图 4b 所示,PP 损失成功移除了漂移伪影,同时保留了适当的高频细节。此外,这种损失结构可以有效增加训练数据集的规模,是一种有用的数据增强方式。

该研究使用具备 ping-pong ordering 的扩展序列来训练网络,如图 5 所示。即最终附加了逆转版本,该版本将两个「leg」的生成输出保持一致。PP 损失的公式如下所示:
在这里插入图片描述
在这里插入图片描述
图 5:使用该研究提出的 Ping-Pong 损失, g t g_t gt 和之间的 L 2 L_2 L2 距离得到最小化,以移除漂移伪影、改进时间连贯度。

4. 实验结果

研究者通过控制变量研究说明了 L ( G , F ) L_(G,F) L(G,F) 中单个损失项的效果。
在这里插入图片描述
图 6:树叶场景对比。对抗模型(ENet、DsOnly、DsDt、DsDtPP、TecoGAN)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1349322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu:beyond compare 4 This license key has been revoked 解决办法

https://www.cnblogs.com/zhibei/p/12095431.html 错误如图所示: 解决办法: (1)先用find命令找到bcompare所在位置:sudo find /home/ -name *bcompare (2)进入 /home/whf/.config,删除/bco…

【UnityShader入门精要学习笔记】(1)了解渲染流水线

本系列为作者学习UnityShader入门精要而作的笔记,内容将包括: 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更,有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 渲染流水线什么是流水线什么…

BLP模型

本篇文章是调研了许多资料后对 BLP 模型的一个总结 首发公号:Rand_cs MLS,Multi-level Security,主要关心的是数据机密性 D. Elliott Bell 和 Leonard J. LaPadula 在 1996 年提出了基本的 BLP 模型,主要有两个性质:…

[线代]不挂科猴博士

行列式的性质 行列式的计算及应用 矩阵的运算上(加减,相乘,取行列式) 矩阵的运算下(转置,逆,秩) 向量组与线性空间 解方程组

openGauss学习笔记-182 openGauss 数据库运维-升级-升级前准备与检查

文章目录 openGauss学习笔记-182 openGauss 数据库运维-升级-升级前准备与检查182.1 升级前准备与检查清单182.2 收集节点信息182.3 备份数据182.4 获取升级包182.5 健康检查182.5.1 前提条件182.5.2 操作步骤 182.6 检查数据库节点磁盘使用率182.7 检查数据库状态182.7.1 验证…

exposure_line 是如何曝光的 ?

1、读者提问: exposure_line 是如何曝光的,我看网上说这个代表的是一帧曝光多少行, 那如果一帧 exposure_line 小于frame_length,那一帧后面的行就不曝光吗? 不知道怎么理解,是曝光到1500行,…

动态内存分配函数

malloc void* malloc( unsigned size) 申请size个字节的地址连续的内存单元 成功则返回指向内存块的指针, 失败则返回NULL malloc不对申请的空间初始化 calloc void*calloc(unsigned n,unsigmed size) 申请n* size字节的个地址连续的内…

骑砍战团MOD开发(30)-游戏大地图map.txt

骑砍1战团mod开发-大地图制作方法_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1rz4y1c7wH/ 一.骑砍游戏大地图 骑砍RTS视角游戏大地图 大地图静态模型(map.txt) 军团/城镇图标(module_parties.py). 骑砍大地图的战争迷雾和天气通过API进行管理和控制: # Weather-h…

数据库视图学习

视图 视图(view)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果&…

Zookeeper注册中心实战

Java学习手册面试指南:https://javaxiaobear.cn Spring Cloud Zookeeper通过自动配置和绑定到 Spring 环境和其他 Spring 编程模型习惯用法,为 Spring Boot 应用程序提供Apache Zookeeper集成。通过一些简单的注释,您可以快速启用和配置应用…

一起学Elasticsearch系列-Mapping

本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 文章目录 Mapping 的基本概念查看索引 Mapping 字段数据类型数字类型基本数据类型Keywords 类型日期类型对象类型空间数据类型文档排名类型文本搜索类型 两种映射类型自动映…

IRQ Handler 的使用——以USART串口接收中断分别在标准库与HAL库版本下的举例

前言: 1.中断系统及EXTI外部中断知识点见我的博文: 9.中断系统、EXTI外部中断_eirq-CSDN博客文章浏览阅读301次,点赞7次,收藏6次。EXTI(Extern Interrupt)外部中断EXTI可以监测指定GPIO口的电平信号&…

Group k-fold解释和代码实现

Group k-fold解释和代码实现 文章目录 一、Group k-fold解释和代码实现是什么?二、 实验数据设置2.1 实验数据生成代码2.2 代码结果 三、实验代码3.1 实验代码3.2 实验结果3.3 结果解释 四、总结 一、Group k-fold解释和代码实现是什么? 0,1…

MP4文件中mvhd容器中的“下一个track ID”字段的作用是什么?(下一个轨道id)(新轨道id)

文章目录 mvhd容器中有以下字段其中有个“下一个track ID”字段不知道是干什么用的,它被放在这个mvhd容器的最后“下一个track ID”什么是“下一个track ID”“下一个track ID”的作用唯一性标识轨道管理 “下一个track ID”的必要性命令/代码演示 新轨道ID的含义和…

MySQL8.0 ROW_NUMBER 调用案例

ROW_NUMBER()是一个窗口函数或分析函数,它为从1开始应用的每一行分配一个序号。 创建表和生成所需要的数据 CREATE TABLE chapter11 ( shopname VARCHAR(255) NULL, sales VARCHAR(255) NULL, sale_date DATE NULL ); INSERT INTO chapter11 (shopname, sales, sal…

C语言之scanf浅析

前言&#xff1a; 当有了变量&#xff0c;我们需要给变量输入值就可以使用scanf函数&#xff0c;如果需要将变量的值输出在屏幕上的时候可以使用printf函数&#xff0c;如&#xff1a; #include <stdio.h> int main() {int score 0;printf("请输⼊成绩:");sc…

《2023年企业IoT和OT威胁报告》:物联网恶意软件攻击增长400%

内容概括&#xff1a; 物联网&#xff08;IoT&#xff09;设备无疑改变了我们生活、工作和管理运营技术&#xff08;OT&#xff09;环境的方式。总体而言&#xff0c;到2027年&#xff0c;全球物联网设备数量预计将超过290亿&#xff0c;比2023年的167亿大幅增加。设备和智能技…

中文数字的魅力:古今中外的传承与创新

一、引言 中文数字&#xff0c;作为世界上最古老、最具特色的数字系统之一&#xff0c;已经伴随着中华文化走过了几千年的历史。它既是我们祖先智慧的结晶&#xff0c;也是现代生活中不可或缺的元素。本文将从各个方面介绍和解释中文数字的用途&#xff0c;带领大家领略中文数…

Python编程新技能:如何优雅地实现水仙花数?

水仙花数&#xff08;Narcissistic number&#xff09;也被称为阿姆斯特朗数&#xff08;Armstrong number&#xff09;或自恋数等&#xff0c;它是一个非负整数&#xff0c;其特性是该数的每个位上的数字的n次幂之和等于它本身&#xff0c;其中n是该数的位数。简单来说&#x…

渗透线上下料控制(SCL源代码)

有关渗透线的其它详细介绍请参考下面链接文章&#xff1a; https://rxxw-control.blog.csdn.net/article/details/133611151https://rxxw-control.blog.csdn.net/article/details/133611151这里的渗透线上下料属于整个渗透线流程里的最前端和最后端&#xff0c;分别负责待处理…