CoDeF视频处理——视频风格转化部署使用与源码解析
一、算法简介与功能
CoDef是作为一种新型的视频表示形式,它包括一个规范内容场,聚合整个视频中的静态内容,以及一个时间变形场,记录了从规范图像(即从规范内容场渲染而成)到每个单独帧的变换过程。针对目标视频,这两个场共同优化以通过一个精心设计的渲染流程对其进行重建。我们特意在优化过程中引入了一些正则化项,促使规范内容场从视频中继承语义(例如,物体的形状)信息。
CoDeF 在视频处理中自然地支持图像算法的升级,这意味着可以将图像算法应用于规范图像,并借助时间变形场轻松地将结果传播到整个视频中。CoDeF 能够将图像到图像的转换提升为视频到视频的转换,将关键点检测提升为关键点跟踪,而无需任何训练。更重要的是,由于CoDef的升级策略仅在一个图像上部署算法,与现有的视频到视频转换方法相比,CoDef在处理的视频中实现了更优越的跨帧一致性,甚至成功地跟踪了水和烟雾等非刚性物体。

二、环境配置
Segment-and-Track-Anything
光线追踪、目标分割
conda create -n sta python==3.10
git clone https://github.com/z-x-yang/Segment-and-Track-Anything.git
cd Segment-and-Track-Anything
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.7 -c pytorch -c nvidia
conda install m2-base
bash script/install.sh
git clone https://github.com/IDEA-Research/GroundingDINO.git
pip install weditor==0.6.4

https://huggingface.co/bert-base-uncased/tree/main

一、数据处理
1.剪切视频
把视频剪切成4秒以下的视频
2.拆分视频
使用ffmpeg拆分视频
ffmpeg -r 25 -i all_sequences/mm/mm.mp4 -start_number 0 -pix_fmt rgb24 all_sequences/mm/mm/%5d.png
3.分割目标
使用 Segment-and-Track-Anything进行目标分割
activate sta
python app.py
然后打开http://127.0.0.1:7860

然后加载视频



复制到数据目录

4.生成mask图
执行
python preproc_mask.py

5.生成光线追踪数据
cd data_preprocessing/RAFT
bash run_raft.sh mm


二、模型训练
1. 更改配置文件
在configs目录下创建一个和视频数据一个的目录,在目录下添加一个base.yaml文件

文件内容如下,注意img_wh和canonical_wh这两个参数:
mask_dir: null
flow_dir: nullimg_wh: [720, 1280] #视频尺寸
canonical_wh: [720, 1280] #输出尺寸lr: 0.001
bg_loss: 0.003ref_idx: null # 0N_xyz_w: [8,8,]
flow_loss: 0
flow_step: -1
self_bg: Truedeform_hash: True
vid_hash: Truenum_steps: 10000
decay_step: [2500, 5000, 7500]
annealed_begin_step: 4000
annealed_step: 4000
save_model_iters: 2000
2. 训练模型
新建一个mm_train_multi.sh文件
GPUS=0NAME="$1"
EXP_NAME="$2"ROOT_DIRECTORY="all_sequences/$NAME/$NAME"
MODEL_SAVE_PATH="ckpts/all_sequences/$NAME"
LOG_SAVE_PATH="logs/all_sequences/$NAME"MASK_DIRECTORY="all_sequences/$NAME/${NAME}_masks_0 all_sequences/$NAME/${NAME}_masks_1"
FLOW_DIRECTORY="all_sequences/$NAME/${NAME}_flow"python train.py --root_dir $ROOT_DIRECTORY \--model_save_path $MODEL_SAVE_PATH \--log_save_path $LOG_SAVE_PATH \--mask_dir $MASK_DIRECTORY \--flow_dir $FLOW_DIRECTORY \--gpus $GPUS \--encode_w --annealed \--config configs/${NAME}/${EXP_NAME}.yaml \--exp_name ${EXP_NAME}
运行训练脚本,训练时间大概就几分钟,看GPU的大小:
bash scripts/mm_train_multi.sh mm base

三、测试模型
1.测试数据
在scripts目录下创建一个新的mm_test_multi.sh,文件内容如下:
GPUS=0NAME="$1"
EXP_NAME="$2"ROOT_DIRECTORY="all_sequences/$NAME/$NAME"
LOG_SAVE_PATH="logs/test_all_sequences/$NAME"MASK_DIRECTORY="all_sequences/$NAME/${NAME}_masks_0 all_sequences/$NAME/${NAME}_masks_1"WEIGHT_PATH=ckpts/all_sequences/$NAME/${EXP_NAME}/${NAME}.ckptpython train.py --test --encode_w \--root_dir $ROOT_DIRECTORY \--log_save_path $LOG_SAVE_PATH \--mask_dir $MASK_DIRECTORY \--weight_path $WEIGHT_PATH \--gpus $GPUS \--config configs/${NAME}/${EXP_NAME}.yaml \--exp_name ${EXP_NAME} \--save_deform False
运行脚本文件:
bash scripts/mm_test_multi.sh mm base
四、错误处理
1. windows不支持NCCL backend
Windows RuntimeError: Distributed package doesn‘t have NCCL built in

2. wsgiref-0.1.2
SyntaxError: Missing parentheses in call to ‘print’. Did you mean print(…)?
pip install ./wsgiref-0.1.2

相关文章:
CoDeF视频处理——视频风格转化部署使用与源码解析
一、算法简介与功能 CoDef是作为一种新型的视频表示形式,它包括一个规范内容场,聚合整个视频中的静态内容,以及一个时间变形场,记录了从规范图像(即从规范内容场渲染而成)到每个单独帧的变换过程。针对目标…...
ubuntu server 20.04 备份和恢复 系统 LTS
ubuntu server 20.04 备份和恢复 系统 LTS tar命令系统备份与恢复(还原or新装) 备份系统 cd / su root tar cvpzf backup.tgz --exclude/tmp --exclude/run --exclude/dev --exclude/snap --exclude/proc --exclude/lostfound --exclude/backup.tgz …...
NFC对物联网开发的影响及用途
当谈到NFC对物联网的影响时,不得不提它的几个重要的优势,可能在未来几年影响着物联网的发展方向。 全球智能手机的普及是其中一个重要因素:市面上已有数十亿部支持NFC的智能手机,专家们相信这个数字还会大幅增长。智能手机用户已…...
企业级SQL开发:如何审核发布到生产环境的SQL性能
自从上世纪 70 年代数据库开始普及以来,DBA 们就不停地遭遇各种各样的数据库管理难题,其中最为显著的,可能就是日常的开发任务中,研发人员们对于核心库进行变更带来的一系列风险。由于针对数据库的数据变更是一项非常常见的任务&a…...
linux 手动安装移植 haveged,解决随机数初始化慢的问题
文章目录 1、问题描述2、安装 haveged3、问题解决4、将安装好的文件跟库移植到开发板下 Haveged是一个软件工具,用于生成高质量的熵(Entropy)源,以供计算机系统使用。熵在计算机科学中指的是一种随机性或不可预测性的度量…...
如何使用llm 制作多模态
首先将任何非字符的序列信息使用特殊n个token 编码。 具体编码方法以图像为例子说明: 将固定尺寸图像如256256 的图像分割为1616 的子图像块。 将已知的所有图像数据都分割后进行str将其看做是一个长的字符,而后去重后方式一个词表。 使用特殊1024 个tok…...
k8s(二):Pod
Pod pod 是K8s中最小的可部署单元,用于容纳一个或多个容器。Pod为容器提供了一个共享的环境,包括网络命名空间、存储卷和IP地址。 pod的阶段(phase) Pending: Pod 已被 Kubernetes 系统接受,但有一个或者多个容器尚未创建亦未运行。此阶段包…...
Python 字典详解(dict)
文章目录 1 概述1.1 性质 2 常用方法2.1 以列表返回所有键:keys()2.2 以列表返回所有值:values()2.3 以列表返回所有键值对:items()2.4 返回键对应的值:get()2.5 添加键值对:setdefault()2.6 修改键值对:di…...
IPoIB在国产并行系统上的实现与优化
目录 1 国产异构众核系统 2 相关工作 3 IPoIB在国产并行系统上的实现 3.1 IPoIB协议原理...
东南大学与OpenHarmony携手共建开源生态,技术俱乐部揭牌成立并迎来TSC专家进校园
11月25日,OpenAtom OpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会(以下简称“TSC”)与东南大学携手,于东南大学九龙湖校区金智楼一楼报告厅举办了“东南大学OpenHarmony技术俱乐部成立仪式暨OpenHarmony TSC专家进校园”活动。此次盛会标志着OpenHarmony开源社区和…...
NPU、CPU、GPU算力及算力计算方式
NVIDIA在9月20日发布的NVIDIA DRIVE Thor 新一代集中式车载计算平台,可在单个安全、可靠的系统上运行高级驾驶员辅助应用和车载信息娱乐应用。提供 2000 万亿次浮点运算性能(2000 万亿次8位浮点运算)。NVIDIA当代产品是Orin,算力是…...
华清远见嵌入式学习——C++——作业6
作业要求: 代码: #include <iostream>using namespace std;class Animal { public:virtual void perform() 0;};class Lion:public Animal { private:string foods;string feature; public:Lion(){}Lion(string foods,string feature):foods(foo…...
k8s安装学习环境
目录 环境准备 配置hosts 关闭防火墙 关闭交换分区 调整swappiness参数 关闭setlinux Ipv4转发 时钟同步 安装Docker 配置Yum源 安装 配置 启动 日志 安装k8s 配置Yum源 Master节点 安装 初始化 配置kubectl 部署CNI网络插件 Node节点 检查 环境准备 准…...
RepidJson将内容写入文件简单代码示例
以下是使用RapidJSON将内容写入文件的示例代码: #include <rapidjson/document.h> #include <rapidjson/writer.h> #include <rapidjson/stringbuffer.h> #include <iostream> #include <fstream>using namespace rapidjson;int mai…...
golang构建docker镜像的几种方式
目前docker支持以下几种方式指定上下文来构建镜像 本地项目路径(如:/tmp/xxx)本地压缩包路径(如:/tmp/xxx.tar)docekrfile文本链接(如:https://x.com/xxx/dockerfile)压…...
golang使用sip协议 用户名和密码注册到vos3000
在Go语言中,要使用SIP协议进行注册,您可以使用第三方库,如github.com/cloudwebrtc/sip。以下是一个简单的示例代码,演示如何使用Go语言中的该库进行基本的SIP注册: 首先,您需要安装该库: go ge…...
第4章 互联网
文章目录 4.1 计算机网络基础 94 4.1.1 计算机网络的基本概念 94 4.1.2 局域网的基本原理 96 4.1.3 局域网协议与应用 98 4.2 Internet 100 4.2.1 TCP/IP 101 4.2.2 TCP/IP应用 106 4.2.3 网络操作系统的功能 112 4.2.4 网络安全的概念 116 4.3 计算机软件编程基础 …...
【JavaWeb】前端工程化(VUE3)
前端工程化(VUE3) 文章目录 前端工程化(VUE3)一、概述二、ECMA6Script2.1 es6的变量和模板字符串2.2 es6的解构表达式2.3 es6的箭头函数2.4 rest和spread2.5 es6的对象创建和拷贝2.6 es6的模块化处理 三、前端工程化环境搭建3.1 N…...
JAVA基础知识:异常处理
异常处理是Java编程中至关重要的一部分,它允许程序在出现错误或异常情况时进行适当的处理,以保证程序的稳定性和可靠性。本文将详细介绍Java中的异常处理机制,并提供相关示例代码,帮助读者更好地理解和应用异常处理的概念和技巧。…...
PostGIS学习教程十:空间索引
PostGIS学习教程十:空间索引 回想一下,空间索引是空间数据库的三个关键特性之一。空间索引使得使用空间数据库存储大型数据集成为可能。在没有空间索引的情况下,对要素的任何搜索都需要对数据库中的每条记录进行"顺序扫描"。索引通…...
机器人研发选3D打印还是CNC精密打样?
在机器人(尤其是人形机器人、协作机器人)的研发初期,工程师经常面临一个技术选型:为了验证原型,是直接送去 3D 打印,还是找一家精密零件加工厂做 CNC 打样?这个选择不仅关乎打样费用的支出&…...
Midjourney V6树胶重铬酸盐输出崩溃?紧急修复指南(含--sref自定义光敏响应曲线参数实测数据)
更多请点击: https://intelliparadigm.com 第一章:Midjourney V6树胶重铬酸盐输出崩溃现象与本质溯源 现象复现与触发条件 Midjourney V6 在启用 --style raw 且 prompt 中包含化学术语(如“重铬酸盐”、“树胶”、“potassium dichromate”…...
告别3389端口暴露:零信任防火墙重塑RDP安全访问新范式
1. 传统RDP安全方案的致命短板 每次看到服务器日志里那些密密麻麻的暴力破解尝试记录,我的后颈都会发凉。作为从业十年的运维老兵,我见过太多因为3389端口暴露引发的安全事故。有个客户的数据库服务器,明明设置了16位复杂密码,还是…...
AD21编译报错“contains floating input pins”?别慌,可能是你的元件库电气类型没设对
AD21编译报错“contains floating input pins”深度解析与实战解决方案 当你满怀信心地在AD21中完成PCB设计,点击编译按钮时,突然跳出的"contains floating input pins"报错就像一盆冷水浇下来。这个看似简单的错误提示背后,隐藏着…...
从数据同步工具往后看,NineData 社区版 V5.0.0 这次补齐了什么
从数据同步工具和 ChatDBA 这类能力往后看,V5.0.0 更像一次连续补强,而不是单点加功能。再结合异构数据库迁移工具这类需求,链路扩展、迁移评估和智能诊断一起往前推,社区版的可用边界也随之往前走了一步。落地之前先看这套能力框…...
别再拿冰河木马当玩具了!从一次真实的渗透测试复盘,聊聊Windows XP时代的安全漏洞与防御思路
从冰河木马看Windows XP时代的安全漏洞与现代防御启示 2000年代初的互联网环境与今天截然不同。那时,Windows XP系统占据着绝对市场份额,而安全意识对大多数用户来说还是个陌生概念。正是在这样的背景下,"冰河"这类远程控制工具得以…...
FontForge入门指南:从零开始设计你的第一套字体
FontForge入门指南:从零开始设计你的第一套字体 【免费下载链接】fontforge Free (libre) font editor for Windows, Mac OS X and GNULinux 项目地址: https://gitcode.com/gh_mirrors/fo/fontforge 你是否曾想过亲手设计一套属于自己的字体?Fon…...
WeChatMsg:5分钟轻松掌握微信聊天记录的终极管理方案
WeChatMsg:5分钟轻松掌握微信聊天记录的终极管理方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChat…...
aitextgen与GPT-2-simple对比:为什么aitextgen是更好的选择
aitextgen与GPT-2-simple对比:为什么aitextgen是更好的选择 【免费下载链接】aitextgen A robust Python tool for text-based AI training and generation using GPT-2. 项目地址: https://gitcode.com/gh_mirrors/ai/aitextgen aitextgen是一个强大的Pytho…...
刚刚!西安推拉雨棚厂家测评出炉,陕西中顺雨篷质量优但价格略
本次测评聚焦西安推拉雨棚厂家,旨在为对西安推拉雨棚感兴趣的人群提供客观、真实的数据和信息,帮助大家了解不同厂家的特点。参与本次测评的厂家为陕西中顺雨篷商贸有限公司以及其他西安推拉雨棚厂家。本次测评均基于真实数据与体验,无商业倾…...

