CVPR 2023 | 一键去除视频闪烁,该研究提出了一个通用框架

news2024/12/24 7:33:06

该论文成功提出了第一个无需额外指导或了解闪烁的通用去闪烁方法,可以消除各种闪烁伪影。

高质量的视频通常在时间上具有一致性,但由于各种原因,许多视频会出现闪烁。例如,由于一些老相机硬件质量较差,不能将每帧的曝光时间设置为相同,因此旧电影的亮度可能非常不稳定。此外,具有非常短曝光时间的高速相机可以捕捉室内照明的高频率(例如 60 Hz)变化。

将图像算法应用于时间上一致的视频时可能会带来闪烁,例如图像增强、图像上色和风格转换等有效的处理算法。

视频生成方法生成的视频也可能包含闪烁伪影。

由于时间上一致的视频通常更具视觉上的吸引力,从视频中消除闪烁在视频处理和计算摄影领域中非常受欢迎。

该 CVPR 2023 论文致力于研究一种通用的闪烁去除方法:(1)对于各种闪烁模式或水平均具有较高的泛化性(例如,旧电影、高速相机拍摄的慢动作视频),(2)仅需要一段闪烁视频,并不需要其他辅助信息(例如,闪烁类型、额外的时间一致视频)。由于该方法没有过多假设,它具有广泛的应用场景。

论文标题:

Blind Video Deflickering by Neural Filtering with a Flawed Atlas

论文链接:

https://arxiv.org/pdf/2303.08120.pdf
代码链接:

https://github.com/ChenyangLEI/All-in-one-Deflicker
项目链接:

https://chenyanglei.github.io/deflicker

一、方法

通用的闪烁去除方法很具有挑战性,因为在没有任何额外指导的情况下很难强制整个视频的时间一致性。

现有的技术通常为每种闪烁类型设计特定的策略,并使用特定的知识。例如,对于由高速摄像机拍摄的慢动作视频,之前的工作可以分析照明频率。对于通过图像处理算法处理的视频,盲目视频时域一致性算法可以利用时域上一致的未处理视频上作为参考,从而获得长期的一致性。然而,闪烁类型或未经处理的视频并不总是可用的,因此现有的特定于闪烁的算法无法应用于这种情况。

一个直观的解决方案是使用光流来跟踪对应关系。然而,从闪烁视频中获得的光流不足够准确,光流的累积误差也会随着帧数的增加而增加。

通过两个关键的观察和设计,作者成功提出了一个通用的、无需额外指导的通用去闪烁方法,可以消除各种闪烁伪影。

一种良好的盲去闪烁模型应该具有跟踪所有视频帧之间对应点的能力。视频处理中的多数网络结构只能采用少量帧作为输入,导致感知野较小,无法保证长期一致性。研究者观察到神经图集非常适合闪烁消除任务,因此将引入神经图集到这项任务中。神经图集是视频中所有像素的统一且简洁的表示方式。如图 (a) 所示,设 p 为一个像素,每个像素 p 被输入到映射网络 M 中,该网络预测 2D 坐标(up,vp),表示像素在图集中对应的位置。理想情况下,不同帧之间的对应点应该共享图集中的一个像素,即使输入像素的颜色不同也应该如此。也就是说,这可以确保时间一致性。

其次,虽然从共享的图层中获取的帧是一致的,但图像的结构存在缺陷:神经图层不能轻松地建模具有大运动的动态对象;用于构建图层的光流也不完美。因此,作者们提出了一种神经过滤策略,从有缺陷的图层中挑选好的部分。研究者们训练了一个神经网络来学习两种类型的失真下的不变性,这两种失真分别模拟了图层中的伪影和视频中的闪烁。在测试时,该网络可作为过滤器很好地工作,以保留一致性属性并阻止有缺陷的图层中的伪影。

二、实验

研究者构建了一个包含各种真实闪烁视频的数据集。广泛的实验表明,在多种类型的闪烁视频上,研究者的方法实现了令人满意的去闪烁效果。研究者的算法甚至在公共基准测试中优于使用额外指导的基线方法。

研究者提供了 (a) 处理的到的闪烁视频和合成的闪烁视频的定量比较,研究者的方法的变形误差比基线要小得多,根据 PSNR,研究者的结果在合成数据上也更接近于真实值。对于其他真实世界视频,研究提供了 (b) 双盲实验以进行比较,大多数用户更喜欢研究者的结果。

如上图所示,研究者的算法可以很好的去除输入视频中的闪烁。注意,第三列图片展示了神经图层的结果,可以观察到明显的缺陷,但是研究者的算法可以很好的利用其一致性又避免引入这些缺陷。

该框架可以去除老电影、AI生成视频中包含的不同类别的闪烁。

作者:雷晨阳

来源:机器之心

Illustration by IconScout Store from IconScout

-The End-

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

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

相关文章

字符函数和字符串函数(二)

目录 1.strncpy 2.strncat 3.strncmp 4.strstr 5.strchr 6.strtok 7.strerror 1.strncpy ok,在上一篇博客的讲解中,我们谈到了strcpy这个函数,并且了解到了这个函数的功能是将源字符串的内容复制到目标字符串里,并且我们还知道了在C语…

字符函数和字符串函数(三)

1.字符分类函数 在我们的日常代码生活中,经常会遇到一类问题,比如说判断一个字母的大小写,或者标点符号等。因此,我们需要用到一些字符分类函数 函数 如果他的参数符合下列条件就返回真 iscntrl 任何控制字符 isspace 空白字符&…

使用GPT4做Leetcode第 102 场双周赛

虽然一次周赛的几个题目说明不了太多问题,比如这个周赛的Hard题目就是板子题,算不上Hard,也许把第三题和第四题的顺序换一下比较合适。但是,GPT4的表现已经严重超出了我的预期。对于这次周赛的四个题目,GPT4的表现如下…

说走就走的接口自动化测试脚本:快速提高测试效率的秘密武器

目录 摘要: 环境准备 编写测试用例 运行测试脚本 总结 摘要: 作为一名测试工程师,我们常常需要进行接口测试,目的是验证接口是否符合规范并且稳定可靠。然而,手动测试难免会出现疏漏和人为错误,因此…

K_A35_003 基于STM32等单片机采集矩阵按键模块值 串口与OLED0.96双显示

K_A35_003 基于STM32等单片机采集矩阵按键模块值 串口与OLED0.96双显示 所有资源导航一、资源说明二、基本参数引脚说明 三、驱动说明模块工作原理:对应程序: 四、部分代码说明1、接线引脚定义1.1、STC89C52RC矩阵按键模块1.2、STM32F103C8T6矩阵按键模块 五、基础知识学习与相…

把一个长方形平均分为4份,我想了几十种方法,不服来挑战

这是学习笔记的第 2455篇文章 这个事情的源头是在前几天哄孩子睡觉前,我和她聊分数的事情,一般为了便于理解我会拿披萨来举例,比如把一个披萨分成2份,分成3份,分成4份等,似乎顺着圆心我们可以想到既定的方案…

2023/4/25总结

刷题&#xff1a; 第一周任务 - Virtual Judge (vjudge.net) 1.这一题的思路就是先排除前面和后面相等的&#xff0c;然后找到不等的情况&#xff0c;不等情况的下标开始前后都走&#xff0c;看看是不是和b数组构成了一个升序数组即可。 #include<stdio.h> #define Ma…

50+常用工具函数之xijs更新日志(v1.2.4)

xijs 是一款开箱即用的 js 业务工具库, 聚集于解决业务中遇到的常用函数逻辑问题, 帮助开发者更高效的开展业务开发. 接下来就和大家一起分享一下v1.2.4 版本的更新内容以及后续的更新方向. 1. dom分类添加xss函数 该模块主要由 Kevin 贡献, 具体介绍如下: 使用方式: import { …

游戏有延迟?如何获得一个好的Ping

在多人游戏世界中,玩家要想获得良好的游戏体验,需要做很多事情——尤其是如果这种良好的体验取决于你的想法。 在线多人游戏,如FPS(第一人称射击游戏)、赛车和一些MMORPG类型的游戏,尤其取决于玩家对游戏反馈的及时有效反应。这个反馈和反应链有很多环节,其中一个环节是…

【Python】matplotlib画散点图,并根据目标列的类别来设置颜色区间(含源代码及参数解释)

最近在进行绘图时&#xff0c;遇到了matplotlib画散点图&#xff0c;并根据目标列的类别来设置颜色区间的问题&#xff0c;但是实现的过程较为艰辛。 文章目录 一、数据准备二、第一次尝试&#xff08;失败及其原因&#xff09;2.1 失败2.2 原因 三、第二次尝试&#xff08;成功…

详解客户关系管理系统

一、客户关系管理系统的重要性 客户关系管理系统&#xff0c;是指利用软件、硬件和网络技术&#xff0c;为企业建立一个客户信息收集、管理、分析和利用的信息系统。以客户数据的管理为核心&#xff0c;记录企业在市场营销和销售过程中和客户发生的各种交互行为&#xff0c;以…

Multisim电路仿真与实验:包含连续时间系统的模拟、周期信号频谱分析、组合逻辑电路:竞争冒险、数字锁

Multisim电路仿真与实验&#xff1a;包含连续时间系统的模拟、周期信号频谱分析、组合逻辑电路&#xff1a;竞争冒险、数字锁 文章目录 Multisim电路仿真与实验&#xff1a;包含连续时间系统的模拟、周期信号频谱分析、组合逻辑电路&#xff1a;竞争冒险、数字锁连续时间系统的…

JVM内存区域划分,类的加载过程 以及 双亲委派模型总结

目录 JVM内存区域划分 Java类的加载过程 双亲委派模型 JVM内存区域划分 JVM中的内存区域共划分为五大部分&#xff0c;分别为虚拟机栈、堆、程序计数器、本地方法栈和方法区&#xff0c;如下边这张图所示&#xff1a; 其中&#xff0c;每个内存区域主要存放的数据及功能如下…

Visual Studio C# WinForm开发入门(4):概述

目录 一.Winform入门1.WinForm项目结构2.窗口设计与控件布局3.窗口事件4.时间显示器小练习 二.WinForm布局开发1.手动布局解决自适应问题2.WinForm布局属性3.WinForm布局器 三.WinForm常用控件1.界面展示2.实体类 Student(封装信息)3.逻辑事件代码Form.cs 四.图片框与项目资源1…

大数据电商数仓相关脚本

文章目录 前言一、群起集群1. sc 脚本2. cluster 脚本3. myhadoop 脚本4. zk.sh 脚本5. kf.sh 脚本6. f1.sh 脚本7. f2.sh 脚本 二、简便使用脚本1. xsync 脚本2. jpsall 脚本3. xcall.sh 脚本4. lg.sh 脚本 三、数据传输相关脚本1. mysql_to_hdfs.sh 脚本2. hdfs_to_ods_db.sh…

《JavaEE初阶》HTTP协议和HTTPS

《JavaEE初阶》HTTP协议和HTTPS 文章目录 《JavaEE初阶》HTTP协议和HTTPSHTTP协议是应用层协议:使用Fiddler抓取HTTP请求和响应:Fiddler的下载和基本使用:Fiddler的中间代理人身份:其他抓包工具: 先简单认识HTTP请求与HTTP响应:HTTP请求:HTTP响应: HTTP请求详解:首行&#xff1…

分享10个精美可视化模板,解决95%的大屏需求!

前段时间和朋友一起喝茶&#xff0c;我吐槽着excel表格做报表的繁琐&#xff0c;他惊讶的问我竟然不知道大屏模板这种东西&#xff0c;说是直接套用数据就可以&#xff0c;我震惊的同时吃下了这个安利。 回来之后&#xff0c;我好好研究了一番这个叫可视化大屏的“新鲜玩意儿”…

模块化编程原理示意图--CommonJS 模块编程--ES6 模块编程思路分析/图解--三种导出形式--全部代码示例

目录 模块化编程 基本介绍 模块化编程原理示意图 模块化编程分类 CommonJS 模块编程 介绍 应用实例 1. 需求说明 2. 思路分析/图解 3. 代码实现 function.js use.html use.js ES6 模块编程 介绍 需求说明 思路分析/图解 代码实现 common.js use_common.js …

MySQL入门到精通——进阶篇(基础篇——进阶篇——运维篇)本文以MySQL8.0版本以上为例

文章目录 前言MySQL——进阶篇一、存储引擎1.存储引擎-MySQL体系结构2.存储引擎-简介3.存储引擎-InnoDB介绍4.存储引擎-MyISAM和Memory5.存储引擎-选择 二、索引1.索引-概述2.索引-结构2.1.索引-结构-介绍2.2.索引-结构-Btree2.3.索引-结构-Btree2.4.索引-结构-hash 3.索引-分类…

【Java-02】深入理解关键字和代码块

1 关键字 2 代码块 1 Java中的关键字 1.1 static关键字 static关键字 : 静态的意思 , 可以修饰变量 , 也可以修饰方法 , 被static修饰的成员 , 我们叫做静态成员 static特点 : 静态成员被所类的所有对象共享随着类的加载而加载 , 优先于对象存在可以通过对象调用 , 也可以通…