百度最强中文AI作画大模型

news2024/11/24 16:05:25

前言

最近文生图领域的发展可谓是分生水起,这主要是得益于最近大火的扩散模型,之前笔者也写过一篇关于文本生产3D模型的文章,大家感兴趣的可以穿梭:

https://zhuanlan.zhihu.com/p/570332906

今天要给大家介绍的这一篇paper是百度最新的文生图佳作:ERNIE-ViLG 2.0,其在diffusion的model基础上进行了两方面设计:融入语言和图像知识进行增强、混合降噪专家网络。

ERNIE-ViLG 2.0目前在文本生成图像公开权威评测集 MS-COCO取得了SOTA, 尤其是在中文领域展现出了超强优势。

论文链接:https://arxiv.org/pdf/2210.15257.pdf

体验链接:https://wenxin.baidu.com/ernie-vilg

demo

在开始之前先给大家展示几个demo,感受一波,学起来更有动力~

alt
alt
alt
alt
alt

可以看到不论是轮廓还是上色都是很棒的,而且很细节的描述都能捕捉到,比如最后一幅画中的光从右边打来。

更多的demo大家感兴趣的话可以自己去体验体验~

方法

整体框架如下

alt
  • 扩散模型

在开始介绍作者提出的创新点之前,不得不先介绍下扩散模型,作者是在其基础上针对性的设计了两点。

要详细介绍扩散模型的话,其实设计到很多数学知识,而他的思想逻辑实际上很好理解,基本上两句话就可以介绍清楚。

关于扩散模型这里就按照本篇paper中的介绍方式给大家从大的逻辑上介绍一下吧,如果有同学还是对细节更感兴趣,还是建议去看扩散模型的原paper或者其他大牛的讲解,现在扩散模型很火,网上资料多多,笔者就不再叙述了,也怕从根源上误导到大家。

它的过程大致就是:给图片不断的加噪声,然后再不断的去噪声。而这个噪声就是人为的取了一个最常见的数学分布:高斯噪声。

alt

x就是图片的表征,每一步t都是在不断的叠加一个噪声,经过不断的叠加噪声(从高斯分布随机采样),图片就是越来越模糊。那么很明显,如果我们能够得到每一步的确切噪声,那么就能够回推出一开始的图片,也就是复原。

再解释一下这个逻辑:在随机叠加噪声的时候是随机采样的,而为了复原,我们需要训练一个去噪网络,而这个所谓的网络其实就是在拟合每一步这个随机采样的噪声值,因为拿到了噪声值就可以一步步往回推理直到复原。

alt

好了现在的重点变成了:怎么能够精确得到这些噪声呢?

那就是直接监督训练吧:

alt

可以看到直接设计一个网络,然后每一步监督训练,具体的这个网络的输入是当前这一步对应的图片表征,输出就是这一步采样叠加的噪声。

有了这个训练好的模型,inference的时候便可以推理得到图片在t步的预测值

alt

具体到没一步的推理往回推理公式:

alt

上面就是扩散模型的去噪过程。

那上面说的“直接设计一个网络”中的网络是什么网络呢?答案是:U-Net。

它的核心是一个cross-modal attention网络

alt

(x,y)分别代表一对图文训练pair,可以非常清晰的看到K、V是图文的concatenated表征,Q是图片的表征。

  • 融入语言和图像知识进行增强

再经过前面的解释,这里我们正式的看一下作者提出的第一个设计:

(1)文本知识

alt
alt

通过公式(8)可以看到在计算attention的时候,作者多加了一个权重W项,具体的它是一个可学习网络矩阵,其中的每一个具体元素值ij,代表着image tokens i和 text tokens j的权重。

可以看到如果是非关键token,它的值是1,如果是关键token那么就会累积一个可学习的权重。

具体的什么是关键token呢?作者这里考虑了形容词和名词,凡是形容词和名词的,会在对应的输入开头拼接一个[a]和[n],如上图中的“灰色的”和“猫”的开头。

(2)视觉知识

视觉知识这里,作者具体是采用了目标检测手段。

具体的融合手段是放在了上述拟合高斯噪声loss那里,如下:

alt

在之前的基础上,又是同样的手段即多加了一个权重W,同理如果对应的image和text token是关键物体(目标检测),那么就要着重惩罚此时的loss,也就是说这是关键物体,一定得给我画出来呀。

说到这里,就会遇到另外一个问题:图片中目标检测出来的物体,文本中没有对应的描述,这个时候怎么办?

那就强行在文本后面append追加上这个目标,如上图框架中的“碗”。

除此之外,为了进一步增加泛化性,作者还用了一个images-text的模型,通过图片生成对应的文本,用这个文本随机代替原先给扩散模型训练(images,text)pair中的text。

这样的话文本中会包含一些图片中的重要目标。

  • 混合降噪专家网络

接下来接着第二点设计

这里就更好理解一点,看到扩散模型去噪那里,每一步都是用的同样的模型或者说同一套参数,这里其实每一步应该关注的点是不一样的,所以说应该个性化。

具体的作者这里每一步都对应自己的参数,而是进行了分组,每一组其实就是连续的几步step,同一个组内对应一套参数。

那具体多少组呢?也就是paper中提到的MoDE,多专家网络,其实就是多少组,可以想象得到理论上来说越多越个性化,越效果好。

实验

paper也做了很多实验和case分析,大家感兴趣的可以去详细看看,这里给一下设计的两个点的对应消融实验结果吧

alt

总结

融入知识是ERNIE系列的老手段了,也是起家的本领,怎么把更多更细粒度的知识融入到模型是ERNIE一直坚持创新的点,其已经在各个领域模型发光发热,大家对模型感兴趣的可以持续关注~

欢迎关注,下期再见啦~

知乎,csdn,github,微信公众号

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AXI协议详解(10)-非对齐传输

非对齐传输 本章介绍 AXI 协议如何处理未对齐的传输。 它包含以下部分: • 未对齐的传输 • 示例 10.1 关于未对齐传输 AXI 协议使用基于突发的寻址,这意味着每个事务由多个数据传输组成。 通常,每个数据传输都与传输大小对齐。 例如&…

Linux入门

Liunx 一计算机发展历史第一台计算机的诞生时代背景线计算机的发展线国家线时间线收束Liunx诞生操作系统简述购买云服务器以及登录增加用户总结学习的同时别忘了每天运动! 身体才是革命的本钱 计算机发展历史 第一台计算机的诞生 第一台计算机在1946年2月14日在美国…

webpack学习踩坑笔记(持续更新中...)

目录 学习内容: 1.5使用plugin 1.6 使用DevServer 学习内容: 《深入浅出webpack》 深入浅出Webpack Dive Into GitBook 因为很多内容书上已经写了,这里主要是记录一下个人看书过程中遇到的坑 1.5使用plugin 这一部分介绍了一个可以把…

vue3事件处理

获取到用户点击或者勾选的值 <li click“clici(item)” v-for"item in data" :key"id"> {{item}}</li> <script> clici(item){ } </script> v-model 实现数据的双向绑定 v-model.lazy 只有当用户提交或enter键后才触…

【数据结构】动态顺序表(C语言实现)

文章目录0. 前言1. 线性表2. 顺序表2.1 概念及结构3. 动态顺序表的实现3.1 定义结构3.2 接口函数总览3.3 初始化3.4 检查增容3.5 尾插3.6 尾删3.7 头插3.8 头删3.9 查找3.10 指定下标位置插入3.11 指定下标位置删除3.12 修改3.13 打印3.14 销毁4. 完整代码SeqList.hSeqList.cte…

HTML常见标签总结

目录 1.标题标签 2.段落标签 3.字体修饰标签 4.图片标签 5.超链接标签 6.表格标签 7.列表标签 8.表单标签 9.下拉菜单 10 多行文本框 1.标题标签 一级标题是<h1></h1>中间填上标题的内容,一共可以设置六级标题,数字越小,标题就越大越粗 我们测试一段代码 …

深度残差收缩网络(Deep Residual Shrinkage Networks for Fault Diagnosis )

摘要-本文开发了新的深度学习方法&#xff0c;即深度残余收缩网络&#xff0c;提高来自高噪声振动信号的特征学习能力&#xff0c;并实现较高的故障诊断准确性。软阈值作为非线性转换层插入到深层体系结构中&#xff0c;以消除不重要的特征。此外&#xff0c;考虑到通常为阈值设…

大数据编程实验一:HDFS常用操作和Spark读取文件系统数据

大数据编程实验一&#xff1a;HDFS常用操作和Spark读取文件系统数据 文章目录大数据编程实验一&#xff1a;HDFS常用操作和Spark读取文件系统数据一、前言二、实验目的与要求三、实验内容四、实验步骤1、HDFS常用操作2、Spark读取文件系统的数据五、最后我想说一、前言 这是我…

Swift基础——字典

Swift基础——字典 嗯。。。前面我们已经学习了数组&#xff08;相关文章地址&#xff09;&#xff0c;我们知道了在Swift中&#xff0c;苹果提供了两种集合类型来存储集合的值即Array和Dictionary。 Dictionary字典 字典&#xff1a;一种存储多个相同类型值的容器&#xff…

谈谈Java对象的生命周期

经过前面的分析 &#xff0c;我们现在来看一下创建的对象到底是什么东西&#xff0c;并且完整的总结一下一个对象从创建到回收到底经过了哪些阶段。 1 对象的创建 对象创建的主要流程: 1.类加载检查 虚拟机遇到一条new指令时&#xff0c;首先将去检查这个指令的参数是否能在常…

【趣学算法】贪心算法、海盗古董装船问题

14天阅读挑战赛 努力是为了不平庸~ 算法学习有些时候是枯燥的&#xff0c;这一次&#xff0c;让我们先人一步&#xff0c;趣学算法&#xff01; 文章目录贪心本质贪心选择最优子结构最优装载问题sort函数总结贪心本质 一个贪心算法总是做出当前最好的选择&#xff0c;也就是说…

R语言“优雅地“进行医学统计分析

本文首发于公众号&#xff1a;医学和生信笔记&#xff0c;完美观看体验请至公众号查看本文。 医学和生信笔记&#xff0c;专注R语言在临床医学中的使用&#xff0c;R语言数据分析和可视化。 文章目录主要函数描述性统计比较均值增强R中的ANOVA事后检验&#xff08;post-hoc&…

嘉立创EDA的一些使用技巧

立创EDA专业版-使用教程 (lceda.cn):https://prodocs.lceda.cn/cn/faq/editor/index.html绘制板框&#xff1a;https://blog.csdn.net/gutie_bartholomew/article/details/122936253和 mil 的切换&#xff0c;按【Q】切换单位测量 AltM&#xff0c;方便地测量物件之间的距离。按…

MySQL调优之索引在什么情况下会失效?

MySQL中提高性能的一个最有效的方式是对数据表设计合理的索引。索引提供了高效访问数据的方法&#xff0c;并且加快查询的速度&#xff0c;因此索引对查询的速度有着至关重要的影响。 使用索引可以快速地定位表中的某条记录&#xff0c;从而提高数据库查询的速度&#xff0c;提…

Spring JdbcTemplate.queryForObject()

Spring JdbcTemplate 是JDBC核心包中的中心类。它简化了 JDBC 与 Spring 的使用&#xff0c;并有助于避免常见错误。在此页面上&#xff0c;我们将学习使用它的queryForObject 方法。 JdbcTemplate.queryForObject不同参数的方法。1. <T> T queryForObject(String sql, …

继承-安全-设计模式

继承 与 原型、原型链 1. 继承是什么&#xff1f; 继承就是一个对象可以访问另外一个对象中的属性和方法 2. 继承的目的&#xff1f; 继承的目的就是实现原来设计与代码的重用 3. 继承的方式 java、c等&#xff1a;class**javaScript&#xff1a; 原型链 ** ES2015/ES6 中…

数据导入与预处理-拓展-pandas可视化

数据导入与预处理-拓展-pandas可视化1. 折线图1.1 导入数据1.2 绘制单列折线图1.3 绘制多列折线图1.4 绘制折线图-双y轴2. 条形图2.1 单行垂直/水平条形图2.2 多行条形图3. 直方图3.1 生成数据3.2 透明度/刻度/堆叠直方图3.3 拆分子图4. 散点图4.1生成数据4.2 绘制大小不一的散…

自动化测试的使用场景有哪些?如何正确使用?

目录 前言 什么是自动化测试&#xff1f; 自动化测试的使用场景有哪些&#xff1f; 自动化测试有什么好处&#xff1f; 总结 前言 本文将通过介绍 自动化测试是什么 &#xff0c; 哪些场景适用于自动化测试 &#xff0c; 自动化测试的好处 &#xff0c; 以及通过 具体的自…

vue如何二次封装一个高频可复用的组件

在我们的业务里&#xff0c;我们通常会二次封装一些高频业务组件&#xff0c;比如弹框&#xff0c;抽屉&#xff0c;表单等这些业务组件&#xff0c;为什么要二次封装&#xff1f;我们所有人心里的答案肯定是&#xff0c;同样类似的代码太多了&#xff0c;我想复用组件&#xf…

2004-2020中小企业板上市公司财务报表股票交易董事高管等面板数据

1200变量&#xff01;中小企业板上市公司面板数据大全 2004-2020年 1、时间&#xff1a;2004-2020年 2、数据范围&#xff1a;共计973家上市公司 3、数据指标&#xff1a;包括财务报表、股票交易、董事高管等1200变量 4、用途&#xff1a;进行上市公司高管股权激励与公司绩…