【生成式AI】ProlificDreamer论文阅读
ProlificDreamer 论文阅读
Project指路:https://ml.cs.tsinghua.edu.cn/prolificdreamer/
论文简介:截止2023/8/10,text-to-3D的baseline SOTA,提出了VSD优化方法
前置芝士:text-to-3D任务简介
text-to-3D Problem
text-to-3D 解决的问题就是给定一段话,生成视角一致的3D场景,如果了解过这个领域的可以略过不看

研发路线大概是dreamfeild->dreamfusion->polificdreamer
Diffusion Model
text-to-image领域Diffusion Model很厉害,所以基本上就是Extend Diffusion Model to 3D,想看Diffusion Model简介可以看我之前的博文:
生成模型的Basic Idea就是真实图片作为随机分布,每个text是条件。
- Diffusion Model训练出了一个条件分布 p ( x ∣ y ) p(\mathbf x|y) p(x∣y),x是图片,y是条件(text),其Loss Function可以表达为 L D i f f ( ϕ ) : = E x 0 ∼ q ( x 0 ) , t ∼ U ( 0 , 1 ) , ϵ ∼ N ( 0 , 1 ) [ w ( t ) ∥ ϵ ϕ ( α t x 0 + σ t ϵ ) − ϵ ∥ 2 2 ] \mathcal L_{Diff}(\phi) := \mathbb E_{x_0\sim q(x_0),t\sim \mathcal U(0,1),\epsilon \sim \mathcal N(0,1)}[w(t)\|\epsilon_\phi(\alpha_tx_0+\sigma_t\epsilon)-\epsilon\|^2_2] LDiff(ϕ):=Ex0∼q(x0),t∼U(0,1),ϵ∼N(0,1)[w(t)∥ϵϕ(αtx0+σtϵ)−ϵ∥22]
text-to-3D 基本思路
- θ \theta θ是3D表达的参数, c c c是参数,那么3D渲染的本质是 x = g ( θ , c ) \mathbf{x}=g(\theta, c) x=g(θ,c),如果过程是可微的,称为DIP(differentiable image parameterization)
- 对于2D, x 0 ∼ q ( x 0 ) x_0\sim q(x_0) x0∼q(x0)代表Sample过程,是真实图片的分布,而text-to-3D就是把Loss变成 L D i f f ( ϕ , x = g ( θ , c ) ) \mathcal L_{Diff}(\phi,\mathbf{x}=g(\theta, c)) LDiff(ϕ,x=g(θ,c)),去优化 θ \theta θ
Prolific Dreamer Basic Idea
符号
- prolific dreamer这篇文章进一步研究,认为一个合理的3D表达也是一个分布,也就是 θ ∼ μ ( θ ∣ y ) \theta\sim \mu(\theta|y) θ∼μ(θ∣y)
- 渲染出来的图片: q 0 μ ( x 0 ∣ c , y ) : = ∫ q 0 μ ( x 0 ∣ c , y ) p ( c ) d c q_0^\mu(x_0|c,y):=\int q_0^\mu(x_0|c,y)p(c)dc q0μ(x0∣c,y):=∫q0μ(x0∣c,y)p(c)dc
- diffusion model渲染出来的图片: p 0 ( x 0 ∣ y ) p_0(x_0|y) p0(x0∣y)
优化目标
优化一个参数分布,使得它和Diffusion Model生成的结果接近(pretrained)
min μ D K L ( q 0 μ ( x 0 ∣ y ) ∥ p 0 ( x 0 ∣ y ) ) \min_\mu D_{KL}(q_0^\mu(x_0|y)\| p_0(x_0|y)) μminDKL(q0μ(x0∣y)∥p0(x0∣y))
算法
Loss Function
根据上述优化目标,可以提出如下的Loss

BTW,为什么这个等号成立我是不太理解的(原论文说是KL Divergence的性质),占个坑
我认为这个步骤其实就是cover Diffusion Model的步骤, q t μ ( x t ∣ y ) : = ∫ q 0 μ ( x 0 ∣ c , y ) p t 0 ( x t ∣ x 0 ) d x 0 q_t^\mu(x_t|y):=\int q_0^\mu(x_0|c,y)p_{t0}(x_t|x_0)dx_0 qtμ(xt∣y):=∫q0μ(x0∣c,y)pt0(xt∣x0)dx0,也就是给定camera,把某张图片渲染出来之后拿去上t步高斯噪声的分布,让这个分布和Diffsuion Model 第t步的图片分布尽可能接近。
这已经是一个非常形式化的优化目标了。接下来考虑优化手段。
Optimization
采用Wasserstein gradient flow of VSD,简单理解就是,用 { θ } i = 1 n \set\theta_{i=1}^n {θ}i=1n这n个参数“粒子”去模拟 μ ( θ ∣ y ) \mu(\theta|y) μ(θ∣y),然后优化的时候就是优化每个粒子参数。
基于此,问题转化解如下的一个ODE:

第一项是Diffusion Model生成的带噪音的真实图片的score function,所以它由预训练好的 ϵ p r e t r a i n ( x t , t , y ) \epsilon_{pretrain}(x_t,t,y) ϵpretrain(xt,t,y)生成
第二项是渲染出来图片生成的带噪声的图片的score function,它由根据一个新网络 ϵ ϕ ( x t , t , c , y ) \epsilon_\phi(x_t,t,c,y) ϵϕ(xt,t,c,y)生成,这个网络采用LoRA 技术,微调 ϵ p r e t r a i n \epsilon_{pretrain} ϵpretrain再embedding一个c进去。
所以进一步转化:

并得到了如下的算法


这篇文章的做法到这里介绍完毕。
数学原理
占坑代填,孩子暂时不会泛函推不了
相关文章:
【生成式AI】ProlificDreamer论文阅读
ProlificDreamer 论文阅读 Project指路:https://ml.cs.tsinghua.edu.cn/prolificdreamer/ 论文简介:截止2023/8/10,text-to-3D的baseline SOTA,提出了VSD优化方法 前置芝士:text-to-3D任务简介 text-to-3D Problem text-to-3D…...
C++元编程——模拟javascript异步执行
javascript有一个期约调用,就是利用内部的一种协程机制实现的类似并行的操作。以下是用ChatGPT搞出来的一块演示代码: // 异步任务 function asyncTask() {return new Promise((resolve, reject) > {setTimeout(() > {const randomNumber Math.f…...
【JavaEE】懒人的福音-MyBatis框架—复杂的操作-动态SQL
【JavaEE】MyBatis框架要点总结(3) 文章目录 【JavaEE】MyBatis框架要点总结(3)1. 多表查询1.1 映射表resultMap1.2 只有部分属性跨表查询1.2.1 依照常规去写代码1.2.2 用标签去实现接口 1.3 分多步的解决方案1.4 与多线程的结合 …...
Springboot 默认路径说明
Spring Boot基本上是Spring框架的扩展,它消除了设置Spring应用程序所需的样板配置,极大的方便了开发者,其默认识别路径如下: Spring Boot 作为Spring默认将 /** 所有访问映射到以下目录: 1、classpath:/static 用于加…...
springboot注册拦截器与返回统一标准响应格式
响应对象ResultVO package com.example.poi.utils;import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable;/*** A…...
卷王特斯拉又全网降价了,卷死车企们
哈喽,大家好,今天媒介盒子小编又来跟大家分享软文推广的干货知识了,本篇分享的主要内容是:特斯无孔不入的营销手段。 1、特斯拉Model Y降价 车企要打架 自2023 年 8 月 14 日起,Model Y 长续航版起售价从 31.39 万元调整为 29.99 万元,Mode…...
wiley:revision 流程
1 上传修改后的word文件 注意:包括没标注修改位置的word文件和标注了修改位置的word文件 2 上传response回复文件 Your Author Response should include relevant comments that you have copied from the decision letter, along with your comments detailing …...
【论文阅读】基于深度学习的时序预测——Pyraformer
系列文章链接 论文一:2020 Informer:长时序数据预测 论文二:2021 Autoformer:长序列数据预测 论文三:2022 FEDformer:长序列数据预测 论文四:2022 Non-Stationary Transformers:非平…...
玩转IndexedDB,比localStorage、cookie还要强大的网页端本地缓存
随着浏览器的功能不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少从服务器获取数据,直接从本地获取数据。 现有的浏览器数据储存方案,都不适合储存大量数据:Cookie 的大小不超过 4K…...
RedisDesktopManager连不上redis问题解决(小白版)
常见问题就是 redis.conf配置文件 a.将port 127.0.0.1这一行注释掉 b.protected-mode保护模式改为no 这个可以看到很多博主都说了,相信都搜到这里来了你们都弄了,我就不详细说了 防火墙开放端口 我说明我自己的问题以及解决方法 1、执行telnet 虚拟…...
蓝帽杯 取证2022
网站取证 网站取证_1 下载附件 并解压 得到了一个文件以及一个压缩包 解压压缩包 用火绒查病毒 发现后门 打开文件路径之后 发现了一句话木马 解出flag 网站取证_2 让找数据库链接的明文密码 打开www文件找找 查看数据库配置文件/application/database.php(CodeI…...
MyBatis and or使用列表控制or条件
背景:最近项目需要,师傅可以查找订单,而师傅是指定可以服务2到3个区域,故需要使用到and, or条件的组合,以下记一下代码。 最重要的代码是: 1、构建List<Consumer<LambdaQueryWrapper<T>>&g…...
C语言刷题训练【第11天】
大家好,我是纪宁。 今天是C语言笔试刷题训练的第11天,加油! 文章目录 1、声明以下变量,则表达式: ch/i (f*d – i) 的结果类型为( )2、关于代码的说法正确的是( )3、已知有如下各变…...
正则表达式的使用
1、正则表达式-教程 正则表达式:文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为元字符)。 正则表达式使用单个字符串来描述,匹配一系列匹配某个句法规则的字符串。 2、…...
PHP 求解两字符串所有公共子序列及最长公共子序列 支持多字节字符串
/*** 获取两字符串所有公共子序列【不连续的】 例:abc ac > ac** param string $str1 字符串1* param string $str2 字符串2** return array*/ function public_sequence(string $str1, string $str2): array {$data [[-1, -1, , 0, ]]; // 子序列容器【横坐标 …...
linux内核bitmap之setbit汇编实现
内核版本:kernel 0.12 首先看一段代码,下面这段代码来自内核版本0.12的mm/swap.c中: // mm/swap.c #define bitop(name,op) \static inline int name(char * addr,unsigned int nr) \ { \int __res; \__asm__ __volatile__("bt" …...
Golang设计模式
Golang设计模式 Golang设计模式简介Golang工厂设计模式Golang单例设计模式Golang抽象工厂设计模式Golang建造者模式 (Builder Pattern)Golang 原型模式(Prototype Pattern)Golang适配器模式Golang 桥接模式(Bridge Pattern)Golang装饰器模式(Decorator …...
leetcode151. 反转字符串中的单词
题目:leetcode151. 反转字符串中的单词 描述: 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结…...
【BASH】回顾与知识点梳理(十七)
【BASH】回顾与知识点梳理 十七 十七. 什么是 Shell scripts17.1 干嘛学习 shell scripts自动化管理的重要依据追踪与管理系统的重要工作简单入侵检测功能连续指令单一化简易的数据处理跨平台支持与学习历程较短 17.2 第一支 script 的撰写与执行撰写第一支 script 17.3 撰写 s…...
时序预测-Informer简介
文章目录 Informer介绍1. Transformer存在的问题2. Informer研究背景3. Informer 整体架构3.1 ProbSparse Self-attention3.2 Self-attention Distilling3.3 Generative Style Decoder 4. Informer的实验性能5. 相关资料 Informer介绍 1. Transformer存在的问题 Informer实质…...
批量下载功能解决B站视频资源管理难题:从混乱到有序的高效工作流
批量下载功能解决B站视频资源管理难题:从混乱到有序的高效工作流 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水…...
别再傻傻翻文档了!用这个API一键获取Prometheus里所有监控指标(附Node Exporter实战清单)
高效掌握Prometheus监控指标的实战指南 当你第一次登录到公司的Prometheus监控系统,面对成千上万的指标名称,是否感到无从下手?作为运维工程师,我们经常需要在短时间内理解一个全新系统的监控状况,而直接翻阅Exporter…...
大白话讲清楚什么是LLM、Agent、Token、Skill
AI不再是一个聊天框。它已经进化成你的数字化同事。而你需要学会和它相处的"行话"。 引言:你的AI同事已经到岗 还记得2023年人们第一次用ChatGPT的时候吗?大家的反应是:"哇,AI能写诗和画画!"然后就…...
AI时代的算法思维:大经典排序学习矩
引言 在现代软件开发中,性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序,性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言,性能优化涉及多个层面&#x…...
STM32CubeMX 6.4+ 配置FreeRTOS+LWIP避坑实录(正点原子探索者V2 + LAN8720A)
STM32CubeMX 6.4高版本FreeRTOS与LWIP配置全攻略:从PHY复位到网络调试 最近在给正点原子探索者V2开发板移植FreeRTOSLWIP时,发现网上大部分教程都停留在CubeMX 5.x时代。当我用6.4版本按照老教程操作时,从时钟配置到PHY复位处处碰壁。经过三天…...
革新性动物森友会存档编辑工具:NHSE全流程定制指南
革新性动物森友会存档编辑工具:NHSE全流程定制指南 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE NHSE(Animal Crossing: New Horizons save editor)是一款专业…...
IOFILE结构体的介绍与House of orange媚
认识Pass层级结构 Pass范围从上到下一共分为5个层级: 模块层级:单个.ll或.bc文件 调用图层级:函数调用的关系。 函数层级:单个函数。 基本块层级:单个代码块。例如C语言中{}括起来的最小代码。 指令层级:单…...
电解除湿器ROSAHL (电解质膜)的工作原理是什么?电解除湿器推荐?
ROSAHL电解除湿器的核心是固态聚合物电解质(SPE)膜技术,这是一种通过电化学反应实现除湿的创新方法,它的工作原理可以用"三步走"来概括:① 电解捕获:在3V直流电作用下,除湿器内侧的水…...
为什么92%的.NET团队在AI推理上卡在.NET 6/7?揭秘.NET 11新增AOT+TensorRT绑定+动态图编译三大硬核能力(附架构图对比表)
第一章:.NET 11 AI模型推理加速架构全景概览 .NET 11 将原生 AI 推理能力深度集成至运行时与 SDK 层,构建起端到端的高性能、跨平台模型执行栈。该架构摒弃传统“模型导出外部引擎调用”的松耦合模式,转而采用统一张量抽象( Tenso…...
3步终极解决方案:免费Windows系统清理工具让C盘重获新生
3步终极解决方案:免费Windows系统清理工具让C盘重获新生 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否也遇到过Windows系统C盘突然爆红的尴尬…...
