文生视频基础1:sora技术报告学习
sora技术报告学习
- 背景
- 学后理解
- 训练流程
- 技术拆解
- 编码解码
- 扩散模型
- 训练用数据
- 28号直播交流会后的一些想法
- 自身的一点点想法
- 参考
原文地址:Video generation models as world simulators
背景
此项目的背景是基于Datawhale的关于sora技术文档的拆解和相关技术讲解课程。重点在于对于文生视频的技术框架讲解,和项目的实践来帮助理解sora及sora诞生的原因。
学后理解
训练流程
自身对于该流程的理解是:
- 视频是很多帧的具备时间次序的图片组成, 数据来源是不同的,有多种规格,为了数据的统一,在前将原视频数据切分为Patches(一个一个规格相同的视频块),后利用编码器压缩成低维空间表示(降低计算消耗)。
- 中间部分常用DIT完成文本语义和图像语义的映射
- 最后通过解码器恢复成各种规格的视频数据
技术拆解
编码解码
patches操作
- 什么是pathces操作
patches 操作是将图像分割成一系列重叠或非重叠的固定大小的子图像块,这些子图像块通常被用作局部特征的表示。 - einops库
eniops是一个用于操作张量的库,它支持numpy、pytoch、tensorflow等
import einops
import matplotlib.pyplot as plt
from einops import rearrange
import numpy as np
import pandas as pd
import os
from torchvision import transforms
from PIL import Image
import torchimage_path = r".\9.png"
preprocess = transforms.Compose([transforms.Resize((224,224)),transforms.ToTensor()])image = Image.open(image_path).convert("RGB")
tensor_image = preprocess(image)display(tensor_image)patches = rearrange(tensor_image,'c (h p1) (w p2) -> (h w) c p1 p2',p1=16,p2=16)
patches.shapefigure = plt.figure(figsize=(5,5))
for i in range(patches.size(0)):img = patches[i].permute(1,2,0)figure.add_subplot(14,14,i+1)plt.axis('off')plt.imshow(img)
plt.show
理解时空编码(spacetime latent patches)
- 摊大饼法:
从输入视频剪辑中均匀采样n_t个帧,使用与ViT相同的方法独立地嵌入每个2D帧 并将这些token连接在一起 - 立体切割:
将输入的视频划分为若干tuplet,每个tuplet会变成一个token
通过spatial temperal attention进行空间/时间建模获得有效的视频表征token,即上图灰色block。
扩散模型
训练用数据
待补充
28号直播交流会后的一些想法
听了三位大佬的一些关于sora的讨论,认为主要可以归纳为以下几点
- 三位大佬的一个共同点都是对sora使用的训练模型其实并不怎么关注,侧面也说明其实对于数据科学来说,不管是做大模型也好,还是做一些CV、NLP的小项目也好,最关键的,或者说要实现落地,首要考虑的往往不是模型,而是输入
- 数据的来源,训练数据质量的高低怎么保证
- 怎么保证对原数据进行压缩、编码后,其中需求的信息没有、或者较少的丢失
- sora的出现会对现在的一些现有行业造成冲击(如动画、自媒体等),但也谈不上能够摧毁一些行业,大可不必担心工作会丢,它并不算是一个能够取代人类的智能体,只是一个工具,工具要创造价值需要握在人的手上,所以与其焦虑,不如期待怎么使用它来和自己的工作结合
- sora为啥使用DIT 而不是UNET,大佬的意见是结合自己的实际经验来看,transformer比较适合极大的数据集,而基于CNN的模型在小数量集上的表现反而会更好。
- 就基于sora的诞生,对于自己的工作的启发:
- 赵老师认为其实中国对于数据的基础建设这一块当前是欠缺的,不能说能够像水、电这些当做一种资源去利用(感觉蛮有道理,当前中国是有一些专门做数据标注的公司,但并没有体系化,只是从其它公司接外包,然后招一群人做兼职。现在越来越多的AI产品落地,国内对高质量数据集的需求肯定会越来越大的)
- 沈老师认为,当前实现是不要浮躁,其次是现在其实相对于学术成就,会更加认可你自己实现过的项目,我们想要人生过的好,想要选择好方向(不要选择一些明知道以后可能被取代的方向),然后坚持
自身的一点点想法
- 个人比较认同沈老师的观点,当前的这些AI产品,远算不上真正的通用智能体,这些AI工具的最大意义是使一些原本工作量巨大,繁杂的工作变得效率更高,没法想人一样去思考,也没有人的想象力。
- 同时感觉赵老师说的结合自身体会,感觉好像是个可以试试的创业赛道,不过还是得谨慎思考才行。
参考
- Datawhale 202402学习
相关文章:

文生视频基础1:sora技术报告学习
sora技术报告学习 背景学后理解训练流程技术拆解编码解码扩散模型训练用数据 28号直播交流会后的一些想法自身的一点点想法 参考 原文地址:Video generation models as world simulators 背景 此项目的背景是基于Datawhale的关于sora技术文档的拆解和相关技术讲解…...

Linux第68步_旧字符设备驱动的一般模板
file_operations结构体中的函数就是我们要实现的具体操作函数。 注意: register_chrdev()和 unregister_chrdev()这两个函数是老版本驱动使用的。现在新字符设备驱动已经不再使用这两个函数,而是使用Linux内核推荐的新字符设备驱动API函数。 1、创建C…...

23种设计模式——工厂方法模式
定义: 一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其他子类。 工厂方法通用类图: 这个图更好理解 在工厂方法模式中,抽象产品类Product负责定义产品的共性,实现对事物最抽象的…...

水豚鼠标助手 强大的鼠标美化工具
水豚鼠标助手 水豚鼠标助手是一款 鼠标换肤、屏幕画笔、放大镜、聚光灯、屏幕放大、倒计时功能的强大屏幕演示工具。 软件助手获取 水豚鼠标助手1.0.0 安装教程 第一步:下载后,双击软件安装包 第二步:Windows可能会出现提示弹窗ÿ…...

ArrayList集合源码分析
ArrayList集合源码分析 文章目录 ArrayList集合源码分析一、字段分析二、构造方法分析三、方法分析四、总结 内容如有错误或者其他需要注意的知识点,欢迎指正或者探讨补充,共同进步。 一、字段分析 //默认初始化容量。这里和Vector一样,只是…...

循环队列与循环双端队列
文章目录 前言循环队列循环双端队列 前言 1、学习循环队列和循环双端队列能加深我们对队列的理解,提高我们的编程能力。 2、本文循环队列使用的是数组,循环双端队列用的是双向链表 3、题目连接:设计循环队列 ,设计循环双端队列。 …...

https【详解】与http的区别,对称加密,非对称加密,证书,解析流程图
http 和 https 的区别 http 是明文传输,敏感信息容易在传输过程中被劫持https http加密,劫持了也无法解密 https 用到的加密方式 https 同时使用了对称加密和非对称加密,之所以没有全部使用非对称加密,是因为非对称加密的运算更加…...

(C语言)qsort函数模拟实现
前言 我们需先了解qsort函数 qsort函数详解:http://t.csdnimg.cn/rTNv9 qsort函数可以排序多种数据类型,很是神奇,这是为什么,我们在里模拟实现这样的功能 目录 1. qsort函数模拟实现 2. 我们使用bubble_sort函数排序整形数…...

WordPress建站入门教程:如何在本地电脑搭建WordPress网站?
前面跟大家分享了『WordPress建站入门教程:如何安装本地WordPress网站运行环境?』,接下来boke112百科就继续跟大家分享本地电脑如何搭建WordPress网站。 小皮面板(phpstudy)的“软件管理 – 网站程序”虽然可以一键部…...
Vue3教程
1.1 配置环境 vue官网: Vue.js - The Progressive JavaScript Framework | Vue.js 终端 Linux和Mac上可以用自带的终端。 Windows上推荐用powershell或者cmd。Git Bash有些指令不兼容。 安装Nodejs 安装地址: Node.js 安装vue/cli 打开Git Bash&#x…...

Linux系统Docker部署RStudio Server
文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问…...
【C++】每周一题——2024.3.3(手滑再再写一篇)
题目 Cpp 【问题描述】 求N个字符串的最长公共子串,2 < N<=20,字符串长度不超过255。 例如:N=3,由键盘依次输入三个字符串为 What is local bus? Name some local buses. local bus is a h…...

TabLayout与ToolBar、ViewPager的使用
目录 1. 在ToolBar中添加TabLayout 2. 将工具栏设为活动栏 3. 初始化TabLayout 4. TabLayout监听器 可以在ToolBar工具栏中添加TabLayout配合,效果如下图。 1. 在ToolBar中添加TabLayout TabLayout的常用属性有: tabBackground 指定标签的背景 t…...

链表基础知识详解(非常详细简单易懂)
概述: 链表作为 C 语言中一种基础的数据结构,在平时写程序的时候用的并不多,但在操作系统里面使用的非常多。不管是RTOS还是Linux等使用非常广泛,所以必须要搞懂链表,链表分为单向链表和双向链表,单向链表很…...

SAP PP学习笔记05 - BOM配置(Customize)1 - 修正参数
上次学习了BOM相关的内容。 SAP PP学习笔记04 - BOM1 - BOM创建,用途,形式,默认值,群组BOM等_sap销售bom与生产bom-CSDN博客 SAP PP学习笔记04 - BOM2 -通过Serial来做简单的BOM变式配置,副明细,BOM状态&…...

前端从普通登录到单点登录(SSO)
随着前端登录场景的日益复杂化和技术思想的不断演进,前端在登录方面的知识结构变得越来越复杂。对于前端开发者来说,在日常工作中根据不同的登录场景提供合适的解决方案是我们的职责所在,本文将梳理前端登录的演变过程。 1、无状态的HTTP H…...
考研总计划(基础篇)
分为数学,专业课,英语三个部分 数学规划表 高数基础:3月初到4月15号 具体实行计划:分为看课日和写题日 看课日:早上10点到12点半看课,19:30到21:30继续看课。 写题日:早上10点到12点半复习前一天的题目࿰…...

力扣周赛387
第一题 代码 package Competition.The387Competitioin;public class Demo1 {public static void main(String[] args) {}public int[] resultArray(int[] nums) {int ans[]new int[nums.length];int arr1[]new int[nums.length];int arr2[]new int[nums.length];if(nums.leng…...

部署PhotoMaker通过堆叠 ID 嵌入自定义逼真的人物照片
PhotoMaker只需要一张人脸照片就可以生成不同风格的人物照片,可以快速出图,无需额外的LoRA培训。 安装环境 python 3.10gitVisual Studio 2022 安装依赖库 git clone https://github.com/bmaltais/PhotoMaker.git cd PhotoMaker python -m venv venv…...

挑战杯 基于深度学习的中文情感分类 - 卷积神经网络 情感分类 情感分析 情感识别 评论情感分类
文章目录 1 前言2 情感文本分类2.1 参考论文2.2 输入层2.3 第一层卷积层:2.4 池化层:2.5 全连接softmax层:2.6 训练方案 3 实现3.1 sentence部分3.2 filters部分3.3 featuremaps部分3.4 1max部分3.5 concat1max部分3.6 关键代码 4 实现效果4.…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...