DiffuEraser: 一种基于扩散模型的视频修复技术
视频修复算法结合了基于流的像素传播与基于Transformer的生成方法,利用光流信息和相邻帧的信息来恢复纹理和对象,同时通过视觉Transformer完成被遮挡区域的修复。然而,这些方法在处理大范围遮挡时常常会遇到模糊和时序不一致的问题,这凸显了增强生成能力模型的重要性。近期,由于扩散模型在图像和视频生成方面展现出了卓越的性能,已成为一种重要的技术。在本文中,我们介绍了DiffuEraser,这是一种基于稳定扩散的视频修复模型,旨在以更丰富的细节和更连贯的结构填充被遮挡区域。我们融入了先验信息以提供初始化和弱条件约束,这有助于减轻噪声伪影并抑制幻觉现象。此外,为了提高长序列推理过程中的时序一致性,我们扩展了先验模型和DiffuEraser的时序感受野,并利用视频扩散模型的时序平滑特性进一步增强了一致性。实验结果表明,我们提出的方法在内容完整性和时序一致性方面均优于当前最先进的技术,同时保持了可接受的效率。
图1. 所提模型DiffuEraser与Propainter的性能比较。
(a)纹理质量:与基于Transformer的Propainter相比,DiffuEraser生成的纹理更加详细和精细。(b)时序一致性:与Propainter相比,DiffuEraser在修复内容中展现出了更优的时序一致性。
引言
视频修复旨在用既合理又时序一致的内容来填补被遮挡的区域。以往的视频修复算法主要依赖于两种机制:
1)基于流的像素传播方法,该方法利用光流,通过借鉴相邻帧的信息来恢复纹理细节和对象;以及
2)基于Transformer的视频修复方法,该方法在完善对象的结构方面表现出色[26]。
当前的主流算法通常将这两种方法相结合,包含三个模块或阶段:
1)流完成,
2)特征传播,以及
3)内容生成。
该解决方案将被遮挡的像素分为两类:
1)已知像素,这些像素在某些被遮挡的帧中出现过,并可以通过流完成和特征传播模块传播到其他帧,确保修复后的内容与未遮挡区域的一致性;以及
2)未知像素,这些像素在任何被遮挡的帧中都未出现过,由内容生成模块生成,从而增强结果的结构完整性。
最先进的算法Propainter[46]就是这一方法的例证,它包含三个关键模块:循环流完成、双域传播和掩码引导稀疏Transformer。它有效地将所有帧中的已知像素进行传播,并初步展现出生成未知像素的能力。然而,当遮挡区域较大时,Transformer模型的生成能力显得不足,导致显著的人工痕迹,如图1所示。
因此,需要具有更强生成能力的更强大模型。最近在图像和视频生成领域崭露头角的稳定扩散模型成为了一个有前景的候选者。
在本研究中,我们首先将视频修复任务分解为三个子问题,然后为每个子问题提出相应的解决方案。具体来说,三个关键挑战是:已知像素的传播、未知像素的生成以及修复后内容的时序一致性。我们的主要贡献总结如下:
- 视频修复扩散:我们为基于扩散模型的图像修复模型BrushNet引入了一个运动模块。扩散模型强大的生成能力克服了基于Transformer模型所关联的模糊和马赛克人工痕迹,从而完善了对象结构并生成了更详细的内容。
- 注入先验:我们将先验信息融入扩散模型,使得初始化更容易,以减轻噪声人工痕迹,并作为弱条件来抑制不期望对象的生成。
- 增强时序一致性:我们通过扩展先验模型和扩散模型的时序感受野,提高了长序列推理的时序一致性。此外,我们还利用视频扩散模型的时序平滑特性,进一步增强了片段之间交界的时序连续性。
DiffuEraser的优势主要体现在以下几个方面:
- 详细的纹理和精细的结构:
- DiffuEraser能够生成比基于Transformer的同类算法(如Propainter)更加详细和精细的纹理。这意味着在视频修复过程中,它能够更真实地还原被遮挡或损坏区域的细节。
- 优越的时序一致性:
- 在处理长序列视频时,DiffuEraser能够展示出比传统方法更优越的时序一致性。这对于保持视频整体的流畅性和连贯性至关重要,特别是在需要修复大范围遮挡区域时。
- 结合先验信息:
- DiffuEraser融入了先验信息,这有助于提供初始化和弱条件约束。这种方法有助于减轻修复过程中可能出现的噪声伪影,并抑制幻觉现象,从而提高修复结果的准确性和真实性。
- 扩展的时序感受野:
- 为了进一步提高时序一致性,DiffuEraser扩展了其时序感受野。这意味着它能够更好地捕捉和利用视频帧之间的时间关系,从而生成更加连贯和一致的修复结果。
- 利用视频扩散模型的时序平滑特性:
- DiffuEraser还利用了视频扩散模型的时序平滑特性,这进一步增强了其修复结果的一致性。这一特性有助于在视频修复过程中保持整体的平滑性和连贯性。
- 高效的性能:
- 尽管DiffuEraser在内容完整性和时序一致性方面表现出色,但它仍然保持了可接受的效率。这意味着它能够在合理的时间内完成高质量的视频修复任务。
综上所述,DiffuEraser以其详细的纹理、优越的时序一致性、结合先验信息的能力、扩展的时序感受野、利用视频扩散模型的时序平滑特性以及高效的性能等优势,在视频修复领域具有显著的优势。
DiffuEraser的原理主要基于稳定扩散的视频修复模型。以下是对其原理的详细解释:
一、基于稳定扩散的模型架构
DiffuEraser利用了扩散模型在图像和视频生成方面的优势。扩散模型是一种生成模型,它通过学习数据分布来生成新的样本。在视频修复任务中,DiffuEraser通过稳定扩散的过程,逐步从噪声中生成出与视频内容一致的修复结果。
二、融合先验信息与弱条件约束
在修复过程中,DiffuEraser融入了先验信息来提供初始化和弱条件约束。这些先验信息可能来自于视频的其他部分、相邻帧或外部数据库等。通过利用这些信息,DiffuEraser能够更好地理解视频的整体结构和内容,从而生成更加准确和连贯的修复结果。
三、处理时序一致性问题
为了保持视频的时序一致性,DiffuEraser采用了多种策略。首先,它扩展了时序感受野,以便更好地捕捉和利用视频帧之间的时间关系。其次,DiffuEraser利用了视频扩散模型的时序平滑特性,通过平滑处理来减少帧与帧之间的不一致性。这些策略共同确保了修复后的视频在时序上保持连贯和一致。
四、详细纹理与精细结构的生成
DiffuEraser在生成修复结果时,注重细节和结构的完整性。它利用扩散模型的生成能力,逐步填充被遮挡或损坏的区域,并生成出与周围内容相匹配的详细纹理和精细结构。这使得修复后的视频在视觉上更加真实和自然。
综上所述,DiffuEraser的原理是基于稳定扩散的视频修复模型,通过融合先验信息与弱条件约束、处理时序一致性问题以及生成详细纹理与精细结构等策略,实现了高质量的视频修复效果。
相关工作
扩散模型。扩散模型[14, 32, 34]的出现极大地提升了图像和视频生成的质量和创造性。在图像合成领域,扩散模型推动了包括文本到图像生成[5, 29]、可控图像生成[24, 43]、图像编辑[1, 12, 22]、个性化图像生成[6, 28]以及图像修复[27, 16]在内的多种任务的显著进步。在这些进展的基础上,结合了额外运动模块的视频扩散模型也获得了广泛关注。该领域的关键应用包括文本到视频生成[11, 8, 10, 13, 15, 31]、可控视频生成[3, 4, 36, 39]、视频编辑[19, 23, 38, 21]以及各种无需训练的视频合成方法[44, 25]。
视频修复。视频修复旨在用合理的内容填补视频中的遮挡区域,同时保持时序一致性。基于3D卷积和移位操作的早期方法性能有限。利用光流和Transformer架构的方法的出现显著提高了视频修复的质量。基于流的像素传播方法[7, 41, 42]擅长利用相邻帧的信息来恢复纹理和细节。相比之下,基于Transformer的方法[40, 20, 18, 46]则擅长完善对象的结构。其中,Propainter[46]作为一种代表性方法脱颖而出,它包含了循环流完成、双域传播和掩码引导稀疏Transformer。Propainter有效地将所有帧中的已知像素进行传播,并初步展现出生成未知像素的能力。然而,在处理大遮挡区域时,其生成能力有限,导致明显的人工痕迹。
随着扩散模型的日益流行,基于扩散的视频修复方法也开始出现[17, 37, 30, 9, 45, 47]。这些方法利用扩散模型强大的生成能力来增强修复区域的细节和结构完整性,从而解决了基于Transformer方法中存在的一些限制。BIVDiff[30]是一个无需训练的框架,通过桥接图像和视频扩散模型来实现。AVID[45](此处未提供详细描述,但假设为另一种视频修复方法)……
图2。基于稳定扩散的所提视频修复模型DiffuEraser的概述。主要去噪UNet执行去噪过程以生成最终输出。BrushNet分支从遮挡图像中提取特征,这些特征在经过一个零卷积块后逐层添加到主要去噪UNet中。在自注意力和交叉注意力之后融入了时序注意力以提高时序一致性。
结论与讨论
在本文中,我们介绍了DiffuEraser,一个基于稳定扩散的视频修复模型。我们通过将视频修复任务分解为三个子问题来解决它:已知像素的传播(出现在某些遮挡帧中的像素)、未知像素的生成(从未在任何遮挡帧中出现的像素)以及保持完成内容的时序一致性。针对每个子问题,我们提出了量身定制的解决方案。
对于未知像素的生成,稳定扩散模型强大的生成能力帮助DiffuEraser有效地克服了基于Transformer模型中普遍存在的模糊和马赛克问题。此外,我们通过结合先验信息来减轻稳定扩散模型固有的幻觉问题,确保修复结果更加准确和真实。
在已知像素的传播方面,去噪UNet中的运动模块与先验信息提供的增强传播特性相结合,确保了已知像素在帧之间的充分且一致传播。这避免了完成内容与未遮挡区域之间的冲突,从而提高了结果的正确性和稳定性。
为了解决长序列推理中片段之间的时序不一致问题,我们扩展了先验模型和DiffuEraser的时序感受野,显著增强了所有帧中完成内容的一致性。此外,我们还利用视频扩散模型(VDM)的时序平滑特性,进一步增强片段交界处的时序连贯性。
结合先验信息的概念以及用于长序列推理中提高时序一致性的方法也适用于其他多种视频编辑任务,如对象替换和局部风格化。这些应用将在未来的工作中进一步探索。实验结果表明,DiffuEraser在内容完整性和时序一致性方面均优于最先进的方法,确立了其在视频修复任务中的优越地位。
视频修复
相关文章:

DiffuEraser: 一种基于扩散模型的视频修复技术
视频修复算法结合了基于流的像素传播与基于Transformer的生成方法,利用光流信息和相邻帧的信息来恢复纹理和对象,同时通过视觉Transformer完成被遮挡区域的修复。然而,这些方法在处理大范围遮挡时常常会遇到模糊和时序不一致的问题࿰…...

CentOS/Linux Python 2.7 离线安装 Requests 库解决离线安装问题。
root@mwcollector1 externalscripts]# cat /etc/os-release NAME=“Kylin Linux Advanced Server” VERSION=“V10 (Sword)” ID=“kylin” VERSION_ID=“V10” PRETTY_NAME=“Kylin Linux Advanced Server V10 (Sword)” ANSI_COLOR=“0;31” 这是我系统的版本,由于是公司内网…...

World of Warcraft [CLASSIC] Jewelcrafting Gemstone 2
World of Warcraft [CLASSIC] Jewelcrafting & Gemstone 2 珠宝加工与常用宝石列表(紫色史诗级): World of Warcraft [CLASSIC] Jewelcrafting & Gemstone_wlk宝石属性一览表-CSDN博客...

AI刷题-最小化团建熟悉程度和
目录 问题描述 输入格式 输出格式 解题思路: 状态表示 状态转移 动态规划数组 预处理 实现: 1.初始化: 2.动态规划部分: (1)对于已分组状态的,跳过: (2&…...

一文详解Filter类源码和应用
背景 在日常开发中,经常会有需要统一对请求做一些处理,常见的比如记录日志、权限安全控制、响应处理等。此时,ServletApi中的Filter类,就可以很方便的实现上述效果。 Filter类 是一个接口,属于 Java Servlet API 的一部…...

应用层协议 HTTP 讲解实战:从0实现HTTP 服务器
🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 HTTP 协议 🦋 认识 URL🦋 urlencode 和 urldecode 二:🔥 HTTP 协议请求与响应格式 🦋 HTTP 请求…...

DDD-全面理解领域驱动设计中的各种“域”
一、DDD-领域 在领域驱动设计(Domain-Driven Design,DDD)中,**领域(Domain)**指的是软件系统所要解决的特定业务问题的范围。它涵盖了业务知识、规则和逻辑,是开发团队与领域专家共同关注的核心…...

PHP防伪溯源一体化管理系统小程序
🔍 防伪溯源一体化管理系统,品质之光,根源之锁 🚀 引领防伪技术革命,重塑品牌信任基石 我们自豪地站在防伪技术的前沿,为您呈现基于ThinkPHP和Uniapp精心锻造的多平台(微信小程序、H5网页&…...

纯css实现div宽度可调整
<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>纯css实现div尺寸可调整</title><style…...

C# 中使用Hash用于密码加密
通过一定的哈希算法(典型的有MD5,SHA-1等),将一段较长的数据映射为较短小的数据,这段小数据就是大数据的哈希值。他最大的特点就是唯一性,一旦大数据发生了变化,哪怕是一个微小的变化࿰…...

如何建设一个企业级的数据湖
建设一个企业级的数据湖是一项复杂且系统化的工程,需要从需求分析、技术选型、架构设计到实施运维等多个方面进行综合规划和实施。以下是基于我搜索到的资料,详细阐述如何建设企业级数据湖的步骤和关键要点: 一、需求分析与规划 明确业务需…...

目标跟踪之sort算法(3)
这里写目录标题 1 流程1 预处理2 跟踪 2 代码 参考:sort代码 https://github.com/abewley/sort 1 流程 1 预处理 1.1 获取离线检测数据。1.2 实例化跟踪器。2 跟踪 2.1 轨迹处理。根据上一帧的轨迹预测当前帧的轨迹,剔除到当前轨迹中为空的轨迹得到当前…...

【java数据结构】HashMapOJ练习题
【java数据结构】HashMapOJ练习题 一、只出现一次的数字二 、随机链表的复制三 、宝石与石头四、坏键盘打字五、前K个高频单词 博客最后附有整篇博客的全部代码!!! 一、只出现一次的数字 只出现一次的数字 思路: 先遍历一遍数组…...

Nginx前端后端共用一个域名如何配置
在 Nginx 中配置前端和后端共用一个域名的情况,通常是通过路径或子路径将请求转发到不同的服务。以下是一个示例配置,假设: 前端静态文件在 /var/www/frontend/。 后端 API 服务运行在 http://127.0.0.1:5000。 域名是 example.comÿ…...

SpringBoot3+Vue3开发学生选课管理系统
功能介绍 分三个角色登录:学生登录,老师登录,教务管理员登录,不同用户功能不同! 1.学生用户功能 选课记录,查看选课记录,退选。选课管理,进行选课。通知管理,查看通知消…...

Linux系统 C/C++编程基础——基于GTK+的图形用户界面编程
ℹ️大家好,我是练小杰,今天星期三了,距离除夕又少了一天,新年的钟声就快敲响了😆 本文是有关Linux C/C编程中的基于GTK的图形用户界面编程知识点,后续会不断添加相关内容 ~~ 回顾:【使用make工具和Makefil…...

【Leetcode 每日一题】40. 组合总和 II
问题背景 给定一个候选人编号的集合 c a n d i d a t e s candidates candidates 和一个目标数 t a r g e t target target,找出 c a n d i d a t e s candidates candidates 中所有可以使数字和为 t a r g e t target target 的组合。 c a n d i d a t e s c…...

python 变量范围的定义与用法
文章目录 1. 局部变量(Local Scope)示例: 2. 嵌套函数变量(Enclosing Scope)示例:说明: 3. 全局变量(Global Scope)示例:说明: 4. 内置变量&#…...

TRTC实时对话式AI解决方案,助力人机语音交互极致体验
近年来,AI热度持续攀升,无论是融资规模还是用户热度都大幅增长。2023 年,中国 AI 行业融资规模达2631亿人民币,较2022年上升51%;2024年第二季度,全球 AI 初创企业融资规模为 240 亿美金,较第一季…...

dev c++ ‘unordered_set‘ does not name a type
参考:https://blog.csdn.net/Zaczc/article/details/142531525 启用C11标准步骤 工具->编译选项 勾选编译时加入以下命令 在空白处添加:-stdc11 单击确定,启用成功...

算法每日双题精讲 —— 二分查找(寻找旋转排序数组中的最小值,点名)
🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 别再犹豫了!快来订阅我们的算法每日双题精讲专栏,一起踏上算法学习的精彩之旅吧💪 在算法的…...

three.js+WebGL踩坑经验合集(4.2):为什么不在可视范围内的3D点投影到2D的结果这么不可靠
上一篇,笔者留下了一个问题,three.js内置的THREE.Vector3.project方法算出来的结果对于超出屏幕可见范围的点来说错得相当离谱。 three.jsWebGL踩坑经验合集(4.1):THREE.Line2的射线检测问题(注意本篇说的是Line2,同样也不是阈值…...

Kafka运维宝典 (二)- kafka 查看kafka的运行状态、broker.id不一致导致启动失败问题、topic消息积压量告警监控脚本
Kafka运维宝典 (二) 文章目录 Kafka运维宝典 (二)一、kafka broker.id冲突问题1. broker.id 冲突的影响2. 如何发现 broker.id 冲突3. 解决 broker.id 冲突的方法4. broker.id 配置管理5. 集群启动后确认 broker.id 唯一性6. brok…...

全球AI模型百科全书,亚马逊云科技Bedrock上的100多款AI模型
今天小李哥给大家介绍的是亚马逊云科技上的AI模型管理平台Amazon Bedrock上的Marketplace,这是亚马逊云科技在今年re:Invent发布的一个全新功能,将亚马逊的电商基因带到了其云计算平台,让我们能够通过Amazon Bedrock访问100多种流行、新兴和专…...

微信小程序中常见的 跳转方式 及其特点的表格总结(wx.navigateTo 适合需要返回上一页的场景)
文章目录 详细说明总结wx.navigateTo 的特点为什么 wx.navigateTo 最常用?其他跳转方式的使用频率总结 以下是微信小程序中常见的跳转方式及其特点的表格总结: 跳转方式API 方法特点适用场景wx.navigateTowx.navigateTo({ url: 路径 })保留当前页面&…...

【Elasticsearch】index:false
在 Elasticsearch 中,index 参数用于控制是否对某个字段建立索引。当设置 index: false 时,意味着该字段不会被编入倒排索引中,因此不能直接用于搜索查询。然而,这并不意味着该字段完全不可访问或没有其他用途。以下是关于 index:…...

新版IDEA创建数据库表
这是老版本的IDEA创建数据库表,下面可以自己勾选Not null(非空),Auto inc(自增长),Unique(唯一标识)和Primary key(主键) 这是新版的IDEA创建数据库表,Not null和Auto inc可以看得到,但Unique和Primary key…...

输入带空格的字符串,求单词个数
输入带空格的字符串,求单词个数 __ueooe_eui_sjje__ ---->3syue__jdjd____die_ ---->3shuue__dju__kk ---->3 #include <stdio.h> #include <string.h>// 自定义函数来判断字符是否为空白字符 int isSpace(char c) {return c || c \t || …...

C语言程序设计十大排序—希尔排序
文章目录 1.概念✅2.希尔排序🎈3.代码实现✅3.1 直接写✨3.2 函数✨ 4.总结✅ 1.概念✅ 排序是数据处理的基本操作之一,每次算法竞赛都很多题目用到排序。排序算法是计算机科学中基础且常用的算法,排序后的数据更易于处理和查找。在计算机发展…...

Excel制作合同到期自动提醒!
大家好,我是小鱼。 今天分享一下如何利用Excel制作合同到期提醒表,实现Excel表格自动计算合同到期日和天数,根据合同状态和到期天数自动填充颜色提醒,超实用。先看一下效果,已经到期的合同会自动被填充为红色…...