无闪视频风格切换新思路

2023-11-04

近段时间,视频风格切换应用的热度逐渐上升,包括已经成熟应用的gen,还有Ebsynth等,但是这些视频的切换都有一个通病就是视频会出现闪烁,导致最终的切换效果不佳。最近,有开源项目CoDeF提供了一种新的思路来解决这种闪烁的问题。

从已经的公布的paper来看,主要的思路如下:

根据论文,CoDeF的具体方法可以概括如下:

1、首先是视频的表示,包含Canonical content field和 Temporal deformation field两部分。Canonical content field使用2D哈希表表示视频中的全部静态内容信息。而 Temporal deformation field使用3D哈希表表示从canonical image到每个帧的变形信息。

2、其次是模型的结构,每个字段都使用多分辨率哈希编码,以便能够捕捉高频细节,并且利用两个小的MLP分别实现canonical field和deformation field。

3、然后就是训练过程,训练目标是重构输入视频。通过引入flow-based consistency loss来正则化deformation field的平滑性。 使用annealed hash encoding策略,从低频到高频逐步训练以获得语义合理的canonical image。

4、最后就是视频的处理,在优化canonical image后得到的图像上应用图像算法。然后利用deformation field将效果传播到整个视频从而实现视频任务

所以通过这四步,CoDeF通过内容场和变形场的表示,实现了图像算法到视频任务的无缝迁移。

e0cf0764b25389243fd9401e5b9f4c31.png

具体效果怎么样呢,我们也来一探究竟:

需要注意的是现在代码好像只能在linux系统下跑,所以用WSL就成了很好的选择,至于如何通过WSL安装ubuntu,可以参照WSL | Ubuntu来进行安装。安装好以后,我们进行如下步骤:

首先我们进入git仓库qiuyu96/CoDeF: Official PyTorch implementation of CoDeF: Content Deformation Fields for Temporally Consistent Video Processing (github.com),将代码clone下来,然后安装python环境,大家如果图省事可以使用anaconda来进行安装。

由于CoDeF需要获取图像的mask,所以使用了另外的工具z-x-yang/Segment-and-Track-Anything: An open-source project dedicated to tracking and segmenting any objects in videos, either automatically or interactively. The primary algorithms utilized include the Segment Anything Model (SAM) for key-frame segmentation and Associating Objects with Transformers (AOT) for efficient tracking and propagation purposes. (github.com),同样我们安装好Segment-and-Track-Anything,根据要求安装好环境。启动python app.py

033c2bce8d4f8b8facead25239d48495.png

然后将视频帧导入到image seq,通过click选择需要分割的对象,

cf784ec80dd8bf9f951b0cecec908dcb.png

然后点击

d5ad3c0b992b9ac580c4d934041cdf20.png

这样我们就得到想要的mask

8674d39d157e87e1a26f65513d3d17bd.png

再将mask文件放到CoDeF目录下的all_sequences中,all_sequences/{YOUR_SEQUENCE_NAME}/{YOUR_SEQUENCE_NAME}_masks

然后还需要将视频流转换成光流,需要用到RAFT,所以需要先下载好模型,我们找到RAFT的仓库,clone下来,然后运行./download_models.sh,就可以下载好模型了,最后将下载好的模型放到CoDeF目录下的data_preprocessing/RAFT/models中。然后运行如下指令

cd data_preprocessing/RAFT

./run_raft.sh

完成上述的步骤后,就可以训练自己的数据了。

我们直接运行./scripts/train_multi.sh,注意需要修改脚本中的数据名称,当然如果你嫌麻烦,也可以修改脚本,添加一个变量来获取参数,从而修改数据名称

0a520814d14aa72d5124e646e172b760.png

接下来就可以进行视频重建测试了./scripts/test_multi.sh,注意你训练的模型的名称还需要修改下,或者修改脚本中模型的名称和脚本中的名称保持一致。

最后在进行视频风格转换,这里需要注意的是,你需要一帧已经转换过风格的图像,这个就需要用到SD搭配ControlNet来实现了,可以翻看我之前的图文来完成,将转换后的图像放到数据文件中的base_control文件夹下,没有这个文件夹的可以自己新建一个,这是我使用的水墨画风格。

bcbe848ac890bdb8a99c41984bdae078.png

最后运行./scripts/test_canonical.sh,同样需要修改脚本中的数据名称以及模型名称。

最终效果确实没有闪烁,但是感觉感觉视频有一点飘的感觉。有兴趣的可以自行尝试下哦

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无闪视频风格切换新思路 的相关文章

  • 启动其他APK的Activity方法

    启动其他APK的Activity方法 有两个app 分别叫做App1和App2 App1包含两个Activity 分别叫做App1 A和App1 B 其中App1 A是入口Activity 也就是App1 A设置intent filter
  • .NET 5.0发布,你的代码保护工具还够用吗?

    NET是程序员比较钟爱的一款编程工具 但它有一个致命的缺点 编译好的程序集很容易反编译成源代码 一旦被反编译 软件开发者的辛苦劳动将付诸东流 选择一款合格的 NET保护工具是非常重要的 如今 NET 5 0已经发布 你是如何评价的呢 无论怎
  • 【教程汇总】如何选择合适的坐标系及投影

    总结 considerations for choosing the coordinate system map purpose map extent map orientation latitude range national coor
  • QC11 premier Edition 安装注意事项

    安装环境 Windows Server 2003 SQLServer 2005 系统环境需求可查看 https h10078 www1 hp com cda hpms display main hpms content jsp zn bto
  • 深圳拟重点扶持12大数字经济产业:区块链、金融科技在列

    伴随着数字经济的高速增长 深圳市数字经济产业发展迎来政策春风 近日 深圳市工业和信息化局发布了关于公开征求 深圳市数字经济产业创新发展实施方案 征求意见稿 下称 实施方案 意见的通告 表示将努力建成全国领先 全球一流的数字经济产业创新发展引
  • OpenCV—基本数据结构与示例

    https blog csdn net iracer article details 51292349 OpenCV中强大的Mat类型大家已经比较熟悉了 这里梳理一些在工程中其他经常用到的几种基本数据类型 包括 Vec Scalar Poi
  • MSP430F5529输出PWM

    msp430f5529产生4路PWM波 改变占空比从而改变电机 直流减速电机 的速度 驱动电机必然会用到驱动模块 接下来就介绍一下驱动模块 L298N L298N驱动 若要对直流电机进行PWM调速 需设置IN1和IN2 即确定电机的转动方向
  • Java集合-List

    一 List集合概述 java util List接口继承自Collection接口 是单列集合的一个重要分支 习惯性地会将实现了List接口的对象称为List集合 在List集合中允许出现重复的元素 所有的元素是以一种线性方式进行存储的
  • ic卡校验码计算软件_CRC校验码简介及CRC16的计算方法

    点击上方 嵌入式从0到1 选择 置顶 星标公众号 干货福利 第一时间送达 什么是CRC校验 CRC即循环冗余校验码 Cyclic Redundancy Check 是数据通信领域中最常用的一种查错校验码 其特征是信息字段和校验字段的长度可以
  • 法师康的工人--计蒜客

    三个法师康的工人每天早上6点到工厂开始到三条产品生产线上组装桔子手机 第一个工人在200时刻开始 从6点开始计时 以秒作为单位 在生产线上开始生产 一直到1000时刻 第二个工人 在700时刻开始 在1100时刻结束 第三个工人从1500时
  • 在Docker上用3个Nacos1.3容器+一个MySQL5和8容器+一个Nginx容器进行集群的具体操作(Nacos集群版)

    在Docker上用Nacos1 3容器连接MySQL5 6和8 0 18容器进入持久化的具体操作 Nacos单机版 这里直接在linux中启动三个Nacos容器 文章目录 3个Nacos1 3容器 一个MySQL5 6容器 一个Nginx容
  • pytest---usefixtures简单使用

    前面介绍的fixture都是通过函数的方式进行传参的 如果遇到一个class中都需要传入一个fixture 那一个个写进函数中 太麻烦 今天安静介绍一种方法 通过class直接传入fixture usefixtures usefixture
  • 报错解决:pandas的依赖项openpyxl

    问题 使用pandas包 没有使用openpyxl包 但是报错 ImportError Missing optional dependency openpyxl Use pip or conda to install openpyxl 翻译
  • 使用@ConfigurationProperties映射配置项到实体类

    1 创建配置文件 七牛云相关 qiniu accessKey accessKey secretKey secretKey CDN加速域名前缀 cdnDomainPrefix cdnDomainPrefix 2 添加映射配置 项目添加相关依赖
  • Nginx安全控制

    安全隔离 通过代理分开了客户端到应用程序服务器端的连接 实现了安全措施 在反向代理之前设置防火墙 仅留一个入口供代理服务器访问 使用SSL对流量进行加密 常用的http请求转变成https请求 因为http协议是明文传输数据 存在安全问题
  • Java堆、栈和常量池以及相关String的详细讲解(经典中的经典)

    一 在JAVA中 有六个不同的地方可以存储数据 寄存器 register 这是最快的存储区 因为它位于不同于其他存储区的地方 处理器内部 但是寄存器的数量极其有限 所以寄存器由编译器根据需求进行分配 你不能直接控制 也不能在程序中感觉到寄存
  • 使用MotionLayout 实现启动页动画 Splash

    效果图 项目地址 具体代码实现 activity splash xml
  • Ubuntu安装Tango Control教程

    文章目录 环境 步骤 其他指令 参考 环境 虚拟机 VMware Ubuntun 20 04LTS Tango 9 3 4 步骤 为tango controls安装 sudo apt get install g openjdk 8 jdk
  • 中国C-V2X SPDU格式解读

    1 SPDU简介 SPDU即Secure Protocol Data Unit 是在V2X设备之间进行传输的消息结构 结构如下 SecuredMessage SEQUENCE version Uint8 版本号 当前为2 payload P
  • Highcharts+NodeJS搭建数据可视化平台

    前一段时间完成了一个数据可视化项目 由后台NodeJS Highcharts框架进行搭建 下面分享一下整个开发过程的流程 以及使用Highcharts框架的经验 一 数据的读取 由于数据库使用的是Mysql数据库 在NodeJS中 可以使用

随机推荐

  • 最新类ChatPDF及AutoGPT开源18大功能平台——闻达手把手超详细环境部署与安装——如何在低显存单显卡上面安装私有ChatGPT GPT-4大语言模型LLM调用平台

    目录 前言 闻达框架简介 前期准备 电脑要求 安装anaconda 安装相应版本的CUDA 配置ChatGLM 6B Conda环境 安装pytorch 类ChatPDF及AutoGPT开源模型 闻达环境部署及安装 相关代码及模型下载 解压
  • 【狂神说】Spring学习笔记(全)

    狂神说 Spring5最新完整教程IDEA版参考链接 https www bilibili com video BV1WE411d7Dv 狂神说 Java学习完整路线https www bilibili com read cv5702420
  • 【OpenGL进阶】05.绘制3D模型

    这篇文章来绘制3D模型 添加了model h和model cpp文件 model h pragma once include ggl h include vertexbuffer h include shader h class Model
  • ES6学习

    阮一峰讲解非常清晰 通俗易懂 https es6 ruanyifeng com https wangdoc com es6
  • h5跳转小程序页面url_微信小程序页面跳转方法

    我所知道的 微信小程序页面跳转有以下方法 下面分情况说明下 一 利用小程序提供的 API 跳转 1 简单page页面之间跳转 保留当前页面 跳转到应用内的某个页面 使用wx navigateBack可以返回到原页面 注意 调用 naviga
  • 数字模拟转换DAC

    数字模拟转换DAC 1 局限性 只有大容量的STM32F10x才具有DAC功能 2 数模转换原理 STM32的DAC模块 数字 模拟转换模块 是12位数字输入 电压输出型的DAC DAC可以配置为8位或12位模式 也可以与DMA控制器配合使
  • 【计算机网络】我与张三的 DNS 解析过程,浏览器中输入URL 回车后发生了什么

    视频解析 方便大家理解 我在 b 站发布了一期视频 欢迎大家查收 计网 浏览器输入url按下回车后发生了什么 计算机网络DNS工作流程详解 解析 hello 家好 我是 up主黎明 菜 今早我正打开b站刷剧 突然想到了 个问题 我们在浏览器
  • 一名系统研究者的攀登之路-陈海波-

    陈海波 原复旦大学Pa ra lle l Proc e s s ing Institute实验室的牛人 在sosp EuroSys等世界最顶级会议上发表过论文的大牛人 不过 现在被上交软件学院给挖走了 哈哈 1 引言 写好计算机系统领域的研
  • Mysql用同一张表查询的结果删除此表的数据报错

    DELETE FROM study name WHERE name id IN SELECT name id FROM study name WHERE name id 20221209 执行会报错如下 DELETE 0 row s 0 0
  • LaTex学习笔记(三):矩阵的输入

    矩阵的输入类似于表格 在latex中输入矩阵有多种方式 1 left begin array clr 4343 434 235 45 3232 34 56 232 3467 end array right 2 begin bmatrix 不
  • Excel 两列数据中相同的数据进行同行显示

    一 要求 假设您有两个列 分别是A列和B列 需要在C列中找出A列对应的B列的值 二 方案 方法1 寻常思路 凸显重复项 对A列单独进行筛选 按颜色进行排序 然后升序 对B列重复上述操作即可 方法2 两个公式 VLOOKUP 纵向查找函数 语
  • HDFS操作

    1 使用oiv命令查看hadoop 的镜像文件 hadoop s201 hadoop dfs name current hdfs oiv Usage bin hdfs oiv OPTIONS i INPUTFILE o OUTPUTFILE
  • Python处理缺失数据

    目录 1 缺失原因 2 缺失类型 3 处理方法 3 1 删除 3 1 1 统计每列缺失值的个数 3 1 2 直接删除含有缺失值的行 3 1 3 直接删除含有缺失值的列 3 1 4 只删除全是缺失值的行 3 1 5 保留至少有4个非缺失值的行
  • 51单片机(STC)串口无阻塞发送函数

    目录 一 简介 1 1 开发环境 1 2 功能描述 二 串口程序 2 1 串口配置 2 2 变量定义 2 3 中断函数 2 4 发送函数 一 简介 1 1 开发环境 KeilC51 单片机型号STC15F2K60S2 1 2 功能描述 使用
  • Hutool导出Excel,导多个Sheet页

    重要方法 指定要写出的 Sheet 页 bigWriter setSheet sheet getSheetName 工具类 public class HuExcelUtils 导出多个 Sheet 页 param response para
  • 零售业未来如何破局?抓住数智化经营的两把利刃!

    导语 数字化转型浪潮席卷了千行百业 有人从中看出了汹涌的挑战 也有人从中嗅出了美妙的商机 对于零售企业而言 当前数智经营进入了哪个阶段 未来的破局之道又在何方 我们邀请到了广东省 CIO 协会消费品与零售行业分会会长 腾讯云 TVP 行业大
  • Unity3D

    Cheer Up 游戏说明 除了音效 游戏地图上的元素有 草丛 玩家可以躲进去 敌人攻击不到 河流 双方都过不去 但是子弹可以穿过 铁墙 坦克和子弹都过不去 砖墙 一发子弹摧毁后坦克可以过去 空气墙 围在地图周围 防止出界 敌方大坦克 打两
  • 介绍几款Python科学计算发行版

    目前比较流行的Python科学计算发行版 主要有这么几个 Python x y GUI基于PyQt 曾经是功能最全也是最强大的 而且是Windows系统中科学免费Python发行版的不二选择 不过今时已不同往昔 PythonXY里面的许多包
  • 在Excel中使用SQL

    说明 Excel中许多函数虽然能代替SQL的功能 但是比起SQL 还是有一些逊色 特意做了这个教程 主要有 分组统计 Excel中用数据透视表 SQL中用Group By 去重 Excel中可以用条件标识功能 开始 gt 条件标识 SQL中
  • 无闪视频风格切换新思路

    近段时间 视频风格切换应用的热度逐渐上升 包括已经成熟应用的gen 还有Ebsynth等 但是这些视频的切换都有一个通病就是视频会出现闪烁 导致最终的切换效果不佳 最近 有开源项目CoDeF提供了一种新的思路来解决这种闪烁的问题 从已经的公