Multimodel Image synthesis and editing:The generative AI Era
1.introduction
基于GAN和扩散模型,通过融入多模态引导来调节生成过程,从不同的多模态信号中合成图像;是为多模态图像合成和编辑使用预训练模型,通过在GAN潜在空间中进行反演,应用引导函数,或调整扩散模型的潜在空间和嵌入。
2.modality foundations
每一种信息源或形式都可以成为模态。
2.1 Visual guidance
视觉引导将特定图像属性编码在像素空间中,提供控制。视觉引导编码在2d像素空间中表示为特定类型的图像,因此可以通过多种图像编码策略直接进行编码,由于编码后的特征在空间上与图像特征对齐,可以使用拼接,spade,cross-attention等方式,webui中的图生图,通过autoencoderKL产生init_latent,文本通常会通过cross-attention融合模型,但输入的图像不会。
2.2 Text guidance
clip通过大量的图像-文本对训练产生了信息丰富的文本嵌入,广泛用于文本编码。
2.3 Audio guidance
与文本和视觉指导不同,音频指导提供了可以用于生成动态或连续视觉内容的时间信息。输入音频片段可以由一系列特征表示,这些特征可以是频谱图,fBanks,Mel频率倒谱系数(MFCC)以及预训练的SoundNet模型的隐藏层输出。
2.4 Others modality guidance
3.Methods
多模态图像合成和编辑大致分为5类,1.基于GAN的方法,2.自回归,3.扩散模型,4.Nerf,5.其他。
3.1 GAN-based Methods
3.1.1 Conditional GANs
CGAN通过额外信息来条件化生成过程。将额外信息输入生成器和判别器网络作为额外的指导来实现,生成器学习生成样本,既能欺骗判别器,又能与指定的条件信息匹配。
条件融合:对于目标图像在空间上对准的视觉指导,条件可以直接编码为提供生成或编辑的准确空间指导的2d特征,存在不同视角或严重变形时,编码的2d特征很难捕捉到指导和真实图像之间复杂的场景结构关系,可以使用注意力模块来将指导与目标图像对齐,简单使用深度网络对视觉指导进行编码是次优的,因为在归一化层中部分指导信息会丢失,可以使用SPADE,spatially-adaptive de-normalization来有效注入指导特征。复杂的条件也可以映射到中间表示,以更准确的生成图像,音频片段可以映射到面部特征点或3DMM参数以进行说话人脸生成。
模型结构:
损失函数:gan损失,感知损失,cycle loss,对比损失
3.1.2 Inversion of Unconditional GAN
通过预训练的GAN模型,将给定图像逆向映射到GAN的潜在空间中,称之为GAN逆向。具体而言,预训练的GAN学习从潜在code到真实图像的映射,而GAN逆向则将图像映射回潜在code,通过将潜在code输入预训练GAN并通过优化来重建图像实现,重建度量基于l1,l2,感知损失或lpips,在优化过程中,可以包含面部身份或潜在code的特定约束,通过获得潜在code,可以重建原始图像并在潜在空间中进行逼真的图像操作。
显式跨模态对齐:
隐式跨模态监督:除了将引导模态显式投射到潜在空间中,另一种是通过定义生成结果与引导模态之间的一致性损失来引导合成或编辑。styleclip使用clip表示之间的余弦相似度来监督文本引导的操作。
3.2 Diffusion-based methods
3.2.1 Conditional Diffusion models
可以直接将条件信息集成到去噪过程中来指定条件扩散模型。
条件融合:使用特定条件编码器将多模态条件投影到嵌入向量中,进一步纳入到模型中。特定条件编码器可以随模型一起学习,也可以直接从预训练模型中借用,比如clip,在ldm中,通过cross-attention将条件嵌入映射到扩散模型的中间层。
潜空间扩散:用自编码器学习与图像空间在感知上等价的潜空间,VQ-VAE,dalle2:clip潜空间。
3.2.2 Pre-trained diffusion models
与重新训练扩散模型相反,另一条路是通过适当的简单来引导去噪过程,或者微调。
引导函数方法:导向函数计算xt和y之间的一致性,可以通过某种相似度指标余弦相似度或者l2距离来度量,可以使用clip作为图像编码器和文本导向的条件编码器。
微调:可以通过修改潜在编码或调整预训练扩散模型来实现,为了适应文本引导,先通过正向扩散将输入图像转换为潜在空间,然后通过反向微调扩散模型以生成由目标文本和clip损失驱动的图像,对于预训练的条件模型(通常是文本),类似于GAN反演,可以微调文本潜在嵌入或扩散模型以重构图像。另一种方法是利用逐步扩散采样,在去噪过程的早期阶段提供内容和结构保留的分数引导。
3.3 Autoregressive methods
通过将扁平化的图像序列视为离散标记,可以使用自回归模型,包括第一:向量量化阶段用于产生统一的离散表示并实现数据压缩,第二:自回归建模阶段,该阶段以栅格扫描的顺序建立离散标记之间的依赖关系。
3.3.1 Vector quantization
将所有图像像素直接视为序列进行自回归,消耗太大,因此图像的压缩离散很重要,VQVAE由编码器,特征量化器和解码器组成,图像被输入编码器来学习连续表示,然后通过特征量化器将其量化为最接近码本条目的特征,解码器从量化特征中重建原始图像。
损失函数:gan损失,感知损失,
codebook:普通的VQVAE使用argmin(以获取最近的码本条目)会导致严重的码本坍塌问题,只有少数码本条目被有效利用来量化,引入Gumbel-softmax来替代argmin,Gumbel-softmax允许通过直通梯度估计器以可微的方式对离散表示进行采样,增加码本利用率。
3.3.2 Autoregressive modeling
自回归用于适应序列依赖性,符合概率的链式法则,序列中每个标记的概率都是在先前的所有预测的条件下进行的,得到的序列的联合分布是条件概率的乘积,在推理过程中,每个标记按照顺序进行自回归预测。可以使用滑动窗口策略在利用局部窗口中的预测结果。在多模态图像生成任务中,自回归模型基于一个条件概率分布逐像素生成图像,这个概率分布考虑了先前生成的像素和给定的条件信息,从而使模型能够捕捉到复杂的依赖关系,生成视觉上连贯的图像。
网络结构:PixelCNN、Parti
双向上下文:只关注先前生成结果,这种单向策略,会受到顺序偏差的影响,在自回归接近完成之前忽略了大量的上下文信息,并且忽视了不同尺度上的大量上下文信息,ImageBart。还有双向transformer,伴随着遮蔽视觉标记建模MVTM或遮蔽语言建模MLM机制。
自注意力机制:NUMA
3.4 NeRF-based methods
神经辐射场通过用神经场参数化三维场景的颜色和密度,NeRF中采用了全连接的神经网络,以空间位置(x,y,z)和相应的观察方向(θ,φ)作为输入,以及相应的体积密度和发射辐亮度作为输出。为了从隐式的三维表示中渲染出二维图像,通过数值积分器执行可微体积渲染以逼近难以计算的体积投影积分。
3.4.1 Per-scene NeRF
与原始的NeRF模型一致,每个场景的NeRF旨在通过图像或特定的预训练模型来优化和表示单个场景。
图像监督:通过配对的指导信息和相应的视图图像,可以使用NeRF有条件的训练。AD-NeRF.
预训练模型监督:AvatarCIP,DreamFusion,Magic3D,Ref-NeRF
3.4.2 Generative NeRF
与逐场景优化的NeRF不同,生成式NeRF通过将NeRF与生成模型集成,能够推广到不同场景。
3.5 Other methods
3.6 Comparsion and discussion
GAN在FID和Inception分数上实现高保真度的图像生成,推理速度快,但GAN训练不稳定,容易出现模式崩溃问题,与基于似然的扩散模型和自回归模型相比,GAN更关注保真度而不是捕捉训练数据分布的多样性。此外,GAN通常采用卷积网络,难以推广到多模态,transformer的使用,自回归模型可以以通义的方式处理不同的多模态合成任务,然而,由于自回归模型需要预测标记,因此推理速度较慢,扩散也是推理速度慢。自回归模型和扩散模型是基于似然的生成模型,具有稳定的训练目标和良好的训练稳定性,Dalle2中表示扩散要稍优于自回归模型。
与以上主要针对2D图像并对训练数据要求较少的生成方法不同,基于NeRF的方法处理3D场景,并且对训练数据有较高的要求,基于场景优化的NeRF需要有标准的多视图图像或视频序列。
4.Experimental evaluation
4.1 Datasets
4.2 Evaluation Metrics
Inception Score、FID评估图像质量,LPIPS评估图像多样性。
4.3 Experimental Results
相关文章:
Multimodel Image synthesis and editing:The generative AI Era
1.introduction 基于GAN和扩散模型,通过融入多模态引导来调节生成过程,从不同的多模态信号中合成图像;是为多模态图像合成和编辑使用预训练模型,通过在GAN潜在空间中进行反演,应用引导函数,或调整扩散模型…...
Linux——(第十章)进程管理
目录 一、概述 二、常用指令 1.ps查看当前系统进程状态 2.kill 终止进程 3.pstree 查看进程树 4.top 实时监控系统进程状态 5.netstat 监控网络状态 一、概述 (1)进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体&#…...
【操作系统】聊聊协程为什么可以支撑高并发服务
在实际的业务开发中,比如针对一个业务流程,调用三方,然后存储数据,从oss上获取数据。其实都是进行的同步调用,说白了就是A完成之后,B在继续完成。如果整个过程中A、B、C 分别耗时100、300、200毫秒。那么整…...
算法leetcode|80. 删除有序数组中的重复项 II(rust重拳出击)
文章目录 80. 删除有序数组中的重复项 II:样例 1:样例 2:提示: 分析:题解:rust:go:c:python:java: 80. 删除有序数组中的重复项 II: …...
Vite 完整版详解
1. 打包构建: Vite 使用 Rollup 作为默认的构建工具。通过运行 npm run build 命令,Vite 会将应用程序的源代码打包成一个或多个优化的静态文件,以便在生产环境中进行部署。Vite 的构建过程会根据需要进行代码拆分、压缩和优化,以…...
AI入门指南:探索人工智能的基础原理和实际应用
引言 介绍AI的基本概念:什么是人工智能,为什么它如此重要。 引出博客的主要内容,即AI的基础原理和实际应用。 第一部分:AI的基础原理 什么是人工智能: 解释AI的定义和范畴。 介绍AI的历史和发展。 机器学习入门&#x…...
使用 Webpack 从 0 到 1 构建 Vue3 项目 + ts
使用 Webpack 从 0 到 1 构建 Vue3 项目 1.初始化项目结构2.安装 webpack,补充智能提示3.初步编写 webpack.config.js3.1设置入口文件及出口文件3.2 指定 html 模板位置 4.配置 运行/打包 命令,首次打包项目5.添加 Vue 及相关配置5.1安装并引入 vue5.2 补…...
【Git】Git 分支
Git 分支 1.分支简介 为了真正理解 Git 处理分支的方式,我们需要回顾一下 Git 是如何保存数据的。 或许你还记得 起步 的内容, Git 保存的不是文件的变化或者差异,而是一系列不同时刻的 快照 。 在进行提交操作时,Git 会保存一…...
.NET Upgrade Assistant 升级 .NET MAUI
.NET Upgrade Assistant 是一种可帮助您将应用程序升级到最新的 .NET版本 的工具,并且您可以使用这个工具将您的应用程序从旧平台(例如 Xamarin Forms 和 UWP)迁移到新的平台。此外,这个新版本的工具,可以让您在不更改…...
记一次诡异的Cannot find declaration to go to,Cannot resolve method
记一次诡异的 Cannot find declaration to go to, Cannot resolve method getOnExpressions in Join 对于项目中通常问题,清除缓存,重启idea,或者仔细检查语法通常都能解决问题,但是这次却失效了,以下是原…...
智慧园区:AI边缘计算技术与视频监控汇聚平台打造智慧园区解决方案
一、行业趋势与背景 智慧园区是现代城市发展的重要组成部分,通过智能化技术提高园区的运营效率、降低成本、增强环境可持续性等具有重要作用。在智慧园区中,人工智能和视频汇聚技术是重要的前置技术。人工智能技术可以实现对数据的智能化处理和分析&…...
SpringCloud(17~21章):Alibaba入门简介、Nacos服务注册和配置中心、Sentinel实现熔断与限流、Seata处理分布式事务
17 SpringCloud Alibaba入门简介 17.1 why会出现SpringCloud alibaba Spring Cloud Netflix项目进入维护模式 https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now 说明 Spring Cloud Netflix Projects Entering Maintenance Mode 什么是维护模…...
Jmeter安装与测试
目录 一:JMeter简介: 二:JMeter安装与配置 三:JMeter主要原件 一:JMeter简介: JMeter,一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是功能 …...
java开发环境从0开始 【汇总版】
java开发环境从零开始 第一步:jdk第二步:安装 mysql第三步:安装maven第四步:idea最新免费安装第五步:安装navicate第六步 :安装git, 第一步:jdk 第一步当然是最先安装java开发环境啦。 看这个链…...
线性代数的本质(九)——二次型与合同
文章目录 二次型与合同二次型与标准型二次型的分类度量矩阵与合同 二次型与合同 二次型与标准型 Grant:二次型研究的是二次曲面在不同基下的坐标变换 由解析几何的知识,我们了解到二次函数的一次项和常数项只是对函数图像进行平移,并不会改变…...
STM32WB55开发(4)----配置串口打印Debug调试信息
STM32WB55开发----4.配置串口打印Debug调试信息 概述硬件准备视频教学样品申请选择芯片型号配置时钟源配置时钟树RTC时钟配置查看开启STM32_WPAN条件配置HSEM配置IPCC配置RTC启动RF开启蓝牙开启串口调试配置蓝牙参数设置工程信息工程文件设置Keil工程配置代码配置结果演示 概述…...
云原生服务无状态(Stateless)特性的实现
文章目录 为何要使用无状态服务?无状态服务的实现方法1. 会话状态外部化2. 负载均衡3. 自动伸缩4. 容器编排5. 数据存储6. 安全性 示例:使用Spring Boot实现无状态服务结论 🎉欢迎来到云计算技术应用专栏~云原生服务无状态(Statel…...
zookeeper最基础教程
文章目录 一、简介1、工作机制2、特点3、数据结构4、应用场景5、选举机制 二、软件安装1、单机版安装2、集群安装3、配置参数解读(zoo.cfg)4、ZK集群启动脚本 三、命令行操作1、语法2、使用3、节点相关4、监听器原理5、节点删除与查看 三、写数据流程 一、简介 1、工作机制 官…...
又一重磅利好来袭!Zebec Payroll 集成至 Nautilus Chain 主网
流支付协议 Zebec Protocol 正在积极的拓展自身生态,随着此前其全新路线图的发布,揭示了该生态从 Web3 世界向 Web2 世界跨越的决心。根据其最新路线图,Zebec Protocol 正在从最初构建在 Solana 上的流支付协议,拓展为囊括模块化公…...
NLP模型的tokenize方法中return_tensors参数
NLP模型的tokenize方法中return_tensors参数 在许多NLP模型的tokenize方法中,return_tensors参数可以指定tokenize之后返回的张量类型,常见的可选值包括: ‘tf’: 返回TensorFlow的张量对象Tensor。 ‘pt’: 返回PyTorch的张量对象torch.Tensor。 ‘np’: 返回NumPy的ndarray对…...
模方新建工程时,显示空三与模型坐标系不一致怎么解决
答:检查空三xml与模型的metadata.xml的坐标系是否一致,metadata文件是否有在data目录外面。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.0新增单体化建模模块,…...
氧化锌避雷器绝缘电阻测试
氧化锌避雷器 绝缘电阻测试 试验目的 避雷器绝缘电阻包括本体绝缘电阻和底座绝缘电阻, 主要目的在于初步检查避雷 器内部是否受潮; 有并联电阻者可检查其通、 断、 接触和老化等情况。 试验设备 高压绝缘电阻测试仪 厂家: 湖北众拓高试 试验方法 本体绝缘电阻试验…...
链动2+1系统开发
什么是链动21模式? 链动21主要是一个集团队搭设、快速提升产品销量,与消费者做到合作共赢的一个商业模式,让用户在享受购物折扣的同时,也能获得相对收益,同时公司也能达到产品快速销售这样的一个目的,而链…...
AIGC(生成式AI)试用 4 -- 从模糊到精确
从模糊到精确,也许差异在于 更多的描述,更多的信息更具像的描述,更多的数据,更有效的信息主题明确和目标清晰层次感与条理性更简洁清晰的逻辑 “说清楚点,不太明白,提供更多的信息也许能知道要做什么。” …...
Linux中使用Docker安装ElasticSearch7.10.x集群
使用Docker安装ElasticSearch7.10.x单节点请访问这里 一、集群环境说明 服务器IP地址192.168.137.1,192.168.137.2,192.168.137.3 二、前期准备 1. 拉取镜像 docker pull elasticsearch:7.10.12. 首先需要创建一个用于生成秘钥的初始容器࿰…...
electron 左上角图标 dev(开发环境)可显示 build(打包)后无法显示
先说解决方法,用于作为图标的ico文件需要富集多种尺寸,必须包含256*256,且同时应当包含其他更小的尺寸。 例如: 接下来解释一下这么做的原因 ico是Iconfile的缩写,是Windows计算机中的一种图标文件格式,…...
全球与中国BGO晶体市场:增长趋势、竞争格局与前景展望
BGO晶体,全名为Bismuth Germanate Scintillation Crystal(铋锗酸盐闪烁晶体),是一种用于探测放射性粒子和射线的闪烁晶体材料。它的主要成分是铋氧化物(Bi4Ge3O12),其中铋和锗的特性使得这种晶体…...
华三路由交换技术基础——计算机网络基础
计算机网络: 定义:一组具有自治权的计算机互联的集合 作用: 1.共享信息资源 2.分解式处理信息 4.负载均衡 5.综合信息服务 它是计算机技术与通信技术的两个领域的结合 一,计算机网络中的基本概念: 局域网ÿ…...
Docker搭建RK3568开发环境
推荐:Ubuntu 20.04 版本 Docker加速 # 编辑 Docker 配置文件 $ sudo vim /etc/docker/daemon.json# 加入以下配置项 {"registry-mirrors": ["https://dockerproxy.com","https://hub-mirror.c.163.com","https://mirror.baidu…...
【GAMES202】Real-Time Ray Tracing 1—实时光线追踪1
一、前言 这篇我们开始新的话题—Real-Time Ray Tracing简称RTRT,也就是实时光线追踪,关于光线追踪,我们已经不止一次提到过它的优点,无论是软阴影还是全局光照,光线追踪都很容易做,唯一的缺点就是速度太慢…...
wordpress 国内/潍坊网站建设
总体来说比较简单,按照网上的安装教程一步一步就成功了。 java环境变量配置: 下载JDK,官网地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html。 我是将压缩包解压后放到/user/local/java目录下ÿ…...
网帆网站建设/seo排名怎么做
在本文中,我们向您介绍一些提示和技巧,以帮助您更快地编写代码 Python的可读性和设计简单性是其广受欢迎的两个主要原因。一些常见的Python技巧可以帮助你提高编码速度。在您的日常编码练习中,以下技巧将非常有用。 1.在字符串中查找唯一元素…...
中盛浩瀚建设有限公司网站/指数函数公式
题意:给出sum和n个数,找出满足m(m<n)个数相加等于sum。 思路:dfs. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid1258 View Code 1 #include <cstdio>2 #include <cstring>3 #incl…...
discuz做网站赚钱经历/女装标题优化关键词
### 以下是常用的代码收集,没有任何技术含量,只是填坑的积累。转载请注明出处,谢谢。 #### 1. PC - js- 返回指定范围的随机数(m-n之间)的公式javascriptMath.random()*(n-m)m - [return false](http://stackoverflow.com/questions/1357118/…...
万业网网站建设审核/seo视频网页入口网站推广
如果只考虑有序树的情形,那么具有7个结点的不同形态的树共有【】 A、132 B、154 C、429 D、前三者均不正确 答案:A 解析:具有 n 个结点不同形态的树 和具有 n-1 个结点不同形态的二叉树数量相同。因此本题转换为求 6个结点不同形态的二…...
江苏广兴建设集团网站/厦门网络营销推广
--- **python总结** 一、python中数有四种类型:整数、长整数、浮点数和复数 1.整数 2.长整数 3.浮点数 4.复数 二、字符串运算符 a 值为字符串 "Hello",b 变量值为 "Python": ****:>>>a b HelloPython **重复*…...