【生成式人工智能-十二-影像生成原理】

news2024/12/28 3:48:07

文字生成影像的原理

  • 影像生成的应用
  • 影像 是怎么生成的
    • 图片生成图片:
    • 影像生成影像
    • 文字生成图片
      • 按照文字AT的方式生成
      • NAT
    • 文字生成视频
  • 怎么评价影像生成的好坏
    • 引入CLIP模型
    • 文字生成图片的难点
    • 文字生成视频的难点
      • 解决办法
        • 减少attention数目
        • 分迭代生成

前段时间sora生成的视频爆火,下面是它生成视频的一个截图,它不仅可以生成日常见到的,甚至可以创造出图像出来,虽然视频中有瑕疵,但不影响其立体震撼的效果。

在这里插入图片描述

影像生成的应用

  • 影像生成影像
    可以输入一段影像,让模型生成剩下的一部分

  • 风格转换
    输入一段影像,让模型转换一下视频风格

  • 视频质量提升
    一段不清晰的影像,把画质提升

  • 音频+图片 talking head
    目前比较常用的应用,给他一段音频,给他一个图像,就会配合语音且嘴型会变化的talking head
    在这里插入图片描述
    Paper: https://arxiv.org/abs/2403.17694
    免费的Demo: https://huggingface.co/spaces/ZJYang/AniPortrait_official

  • 文字生成影像
    给一段描述,生成一张图片,图片是由像素构成,像素越多,越清晰。10241024个像素比肯定比1616描述的同一张图片清晰的多
    给一段描述,生成一段视频,实际上视频是由图片构成的,视频中的图片,叫做帧,每秒内包含的帧数叫FPS,通常FPS在24以上才会清晰流畅一些,游戏通常就需要更高的FPS

影像 是怎么生成的

图片生成图片:

图片比文字来说信息量很大,所以需要先切分成一小块 一小块(也叫一个patch)的,然后把这些块输入到编码器进行压缩,最终生成压缩后的向量,然后拉伸成一排向量后,输入给解码器,解码器再生成图片

影像生成影像

影片相对于图片,是进行更多的压缩,比如把时间上相邻的图片,切成一个块,然后进行压缩,然后这一段时长的影片,通过encoder压缩,最后拉伸成一排向量后,输入给解码器,解码器生成视频,下面图片摘自sora的论文:
在这里插入图片描述

文字生成图片

描述一段文字,生成一张图片。有个大规模的资料集 LAION ,包括文字叙述和对应的图片,可以用来作为训练数据。

按照文字AT的方式生成

在这里插入图片描述
AT就是AutoRegressive 的方式,也就是类似文字生成方式,生成一块图片之后,要把这块作为输入一起生成下一个图片块(patch)

NAT

也就是Non-AutoRegressive的方式,毕竟图片处理量不比文字,所以实际上上面生成的时候,一次性生成多个输出,并行操作。
在这里插入图片描述

也就是说位置p1等所有的位置的patch 同时生成出来,因为内部可以用attention,所以可以记住一些关联信息,当然这还完全不够。

文字生成视频

视频就是由图片组成的,所以按照道理来说,我们就按照上面生成图片的方法,生成多个图片不就行了?
在这里插入图片描述

当然不会有这么简单,下文会介绍文字生成视频的难点

怎么评价影像生成的好坏

引入CLIP模型

clip这个模型的训练,就是从大量的资料中训练的开源模型,如果描述和图片相符就给高分,相反就给低分。所以CLIP模型用来评价模型生成的好坏。

文字生成图片的难点

一张图的描述可能用很多种方式来描述,所以要生成你脑中一模一样的图片就很难。但是有一种解决方式就是,你上传图片给模型,告诉模型这张图片用s表示(注意找一个不常用的标识),然后每次生成就告诉它,按照s的方式生成图片,比如按照s的坐姿,画一张s的油画等等

在这里插入图片描述

文字生成视频的难点

按照生成图片的方式生成视频的难点在哪里呢?
假设视频 1s 24帧,一帧有64*64个patch块,一分钟的视频就有1440帧,600万个patch块,因为每个patch块要做attention,也就是600万的平方,也就是36兆次,运算量实在是太大了

解决办法

减少attention数目

600万个patch不一定都有会关系,我们就减少attention的数量:比如只关注临近的patch的attention,只考虑空间的attention(attention的次数就变成了64641440帧 约240亿),或者只考虑时间的attention(1440144064*64 约85亿次),或者空间和时间的attention

分迭代生成

我们不要一次都生成全部生成,分多次生成,逐步提高frame,清晰度等等,感兴趣的可以看看google公开的Imagen Video 的论文

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

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

相关文章

前端字体没有授权,字体版权检测(是否为方正字体)

1.截图系统中的首页和登录页面,主要是有字体的地方 2.在线字体版权检测地址:字体版权自动检测-求字体网 3.上传照片,开始对图片进行检测,每个账号有三次免费次数 4.检测完,直接查看检测报告即可, 报告中…

[Spring] Spring事务与事务的传播

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

借助 Aspose.Words,在 Word 文档中创建表格

Word 文档中的表格是一种强大的工具,可用于以清晰、结构化的格式组织和呈现数据。表格由行和列组成,行和列相交形成可包含文本、数字、图像或其他元素的单元格。在本文中,我们将学习如何使用 C# 以编程方式在 Word 文档中创建表格。本文通过代…

虚幻5|高级运动实现基础的翻滚Roll 基础篇

一,调整项目设置——输入 1.我设置了翻滚是同时按W+Shift按键,如果你有更好的按键安排,评论区留言 二,打开角色蓝图,打开图表—基础移动(你的放图表就行了,我这里是安排了很多排版的…

LDRA Testbed(TBrun)软件单元测试_实例讲解(局部静态变量)

系列文章目录 LDRA Testbed软件静态分析_操作指南 LDRA Testbed软件静态分析_自动提取静态分析数据生成文档 LDRA Testbed软件静态分析_Jenkins持续集成(自动静态分析并用邮件自动发送分析结果) LDRA Testbed软件静态分析_软件质量度量 LDRA Testbed软件…

使用Hugging Face构建大型语言模型应用

在本文中,我们将介绍如何使用Hugging Face的大型语言模型(LLM)构建一些常见的应用,包括摘要(Summarization)、情感分析(Sentiment analysis)、翻译(Translation&#xff…

初步融合snowboy+pyttsx3+espeak+sherpa-ncnn的python代码

在前文《将Snowboy语音唤醒的“叮”一声改成自定义语言》中,我已经实现唤醒snowboy后,树莓派会说一句自定义文本。今天,会在此基础上增加ASR的应用(基于sherpa-ncnn)。 首先,编写一个asr.py的程序&#xf…

手撕快排——三种实现方法(附动图及源码)

🤖💻👨‍💻👩‍💻🌟🚀 🤖🌟 欢迎降临张有志的未来科技实验室🤖🌟 专栏:数据结构 👨‍💻&…

【C++】STL——list

前言 本篇博客我们接着来理解一个STL库里的list链表的结构,根据前面数据结构的铺垫,理解这个结构相对比较容易。我们来一起看看吧 💓 个人主页:小张同学zkf ⏩ 文章专栏:C 若有问题 评论区见📝 &#x1f38…

中国与中南半岛国家多国语言系统开发i18n配置老挝、柬埔寨语言配置

前言 当下中国与中南半岛国家经济合作密切,同时也需要软件系统,多国使用系统需要实现多语言,我们团队最近也接到一个中、老、柬三国的业务软件,需要将软件做成三个国家语言。然后我们网上收i18n的老、柬的语言包命名,…

计算机毕业设计 美妆神域网站 美妆商城系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

j2:基于pytorch的resnet实验:鸟类分类

基于pytorch的resnet实验:鸟类分类 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 Ⅰ Ⅰ Ⅰ Introduction: 本文为机器学习使用resnet实现鸟类图片分类的实验,素材来自网…

跟李沐学AI:目标检测的常用算法

区域神经网络R-CNN 使用启发式搜索算法来选择锚框 -> 使用预训练模型来对每个锚框抽取特征 -> 训练一个SVM对类别进行分类 -> 训练一个线性回归模型来预测边缘框偏移 锚框大小不一,如何将不同的锚框统一为一个batch? -> 兴趣区域池化层 兴趣区域(RoI…

界面优化 - QSS

目录 1、背景介绍 2、基本语法 3、QSS 设置方式 3.1 指定控件样式设置 代码示例: 子元素受到影响 3.2 全局样式设置 代码示例: 使用全局样式 代码示例: 样式的层叠特性 代码示例: 样式的优先级 3.3 从文件加载样式表 代码示例: 从文件加载全局样式 3.4 使用 Qt Desi…

最新UI六零导航系统源码 | 多模版全开源

六零导航页 (LyLme Spage) 致力于简洁高效无广告的上网导航和搜索入口,支持后台添加链接、自定义搜索引擎,沉淀最具价值链接,全站无商业推广,简约而不简单。 使用PHPMySql,增加后台管理 多模板选择,支持在…

MySQL基础练习题46-每位经理的下属员工数量

目录 题目 准备数据 分析数据 总结 题目 我们将至少有一个其他员工需要向他汇报的员工,视为一个经理。 返回需要听取汇报的所有经理的 ID、名称、直接向该经理汇报的员工人数,以及这些员工的平均年龄,其中该平均年龄需要四舍五入到最接近…

【网络】IP分片与路径MTU发现

目录 MTU值 IP分片与重组 路径MTU发现 路径MTU发现原理 个人主页:东洛的克莱斯韦克-CSDN博客 相关文章:【网络】从零认识IPv4-CSDN博客 MTU值 由于物理层的硬件限制,为了使网络性能最优,在数据链路层会有一个MTU值&#xff0…

算法【Java】—— 双指针算法

双指针算法 常见的双指针有对撞指针,快慢指针以及前后指针(这个前后指针是指两个指针都是从从一个方向出发,去往另一个方法,也可以认为是小学学习过的两车并行,我也会叫做同向指针),在前后指针…

Python3网络爬虫开发实战(10)模拟登录(需补充账号池的构建)

文章目录 一、基于 Cookie 的模拟登录二、基于 JWT 模拟登入三、账号池四、基于 Cookie 模拟登录爬取实战五、基于JWT 的模拟登录爬取实战六、构建账号池 很多情况下,网站的一些数据需要登录才能查看,如果需要爬取这部分的数据,就需要实现模拟…

KNN图像识别实例--手写数字识别

目录 前言 一、导入库 二、导入图像并处理 1.导入图像 2.提取出图像中的数字 3.将列表转换成数组 4.获取特征数据集 5.获取标签数据 三、使用KNN模型 1.创建KNN模型并训练 2.KNN模型出厂前测试 3.使用测试集对KNN模型进行测试 四、传入单个图像,使用该模…