风靡朋友圈的妙鸭相机,到底用了哪些底层技术?

news/2024/5/18 17:32:47

不知道大家近期的朋友圈有没有被和海马体、天真蓝如出一辙的AI写真刷屏!

在这里插入图片描述

这些面若桃花、精致到头发丝、光影充满氛围感的写真都是一款叫“妙鸭相机”的小程序生成的!只要9.9,就能体验999写真!

在这里插入图片描述

虽然只要9.9,但生成的照片真的很逼真!

在大家被ChatGPT和Midjourney所惊艳之后,如今又惊叹于妙鸭相机的写真能力!

它到底用到了什么AI技术才做到这么厉害的呢?

本文就带大家来探索一下!

01
AIGC关键技术

无论是ChatGPT,还是Midjourney、妙鸭相机,都属于人工智能创造内容(AI Generated Content,AIGC)!

AIGC有两项关键技术:

一个是ChatGPT所代表的大模型(Large Language Model,LLM)技术。

另一个是Midjourney、妙鸭相机等AI绘画作图背后的扩散模型(Diffusion Model)技术。

AI绘画、AI对话、AI游戏创作等这些产物的背后是深度生成模型,它可以根据已有的数据和计算机程序生成新的数据。

真实世界的数据是复杂的,其维度高、分布复杂,变量之间还存在非线性关系,例如,图片数据被认为是二维空间的像素点数据,并且图片内容决定了像素点之间有着复杂的交互关系。这对使用传统模型进行拟合数据分布提出了巨大挑战。

此外,我们不仅希望AI生成的内容有真实性,也希望其是新颖的,即可以对问题提出新的解决方案,而不只是复制已有的内容;高效地利用计算机的运算能力,实现高效的自动化生产;根据用户需求提供相应的内容,等等。

在这些需求下,扩散模型能够捕捉复杂的数据分布、产生真实、新颖的内容,并且能够实现个性化的、高效的生产。因此,引起了人们的广泛关注。

深度生成模型源于生成式建模和深度学习。

生成建模认为数据在相应的空间存在着概率密度分布,其目的就是建模和学习这种潜在分布。早期的生成建模如高斯混合模型(GMM),隐马尔可夫模型(HMM)在表达能力和可扩展性方面存在局限性,在现实数据的复杂性面前表现得较为吃力。

VAE将深度神经网络与变分推断技术相结合,学习潜在先验并生成新样本。它们提供了端到端训练的框架,并提供了更灵活的生成建模能力。

GAN在深度生成模型的历史中是另一个重要的里程碑,GAN引入了一种新颖的对抗训练方法,同时训练生成器网络和判别器网络。该架构通过生成器和判别器网络之间的最小、最大博弈来生成高度逼真的样本。

深度生成模型还有基于能量的模型和基于流的模型,等等。

02
扩散模型

扩散模型于2020年被提出,但其发源可以追溯到2015年,理论背景甚至可以追溯到20世纪对于随机过程、随机微分方程的研究。

扩散模型通过向原始数据逐步加入噪声来破坏原始信息,然后再逆转这一过程生成样本。相较于以往的深度生成模型,扩散模型生成的数据质量更高、多样性更强,并且扩散模型的结构也很灵活,这使得扩散模型很快成为了研究和应用的热点。在《扩散模型:生成式AI模型的理论、应用与代码实践》一书中就详细讨论了扩散模型与其他深度生成模型的关系。

我们可以考虑一个物理过程来通俗地理解扩散模型。把真实世界的数据比作空气中的一团分子,它们互相交织,形成了具有特定结构的整体。由于这个分子团过于复杂,我们无法直接了解其结构,但我们可以理解在空气中做无规则运动的某种粒子,即对应着服从标准高斯分布的某个变量。从无规则运动的粒子出发,我们不断变换这些粒子的相对位置,每次只变换一小步,最终将这些粒子的分布状态变换为我们想要的复杂的分子的形态。也就是说,从纯噪声开始,我们进行了很多小的“去噪”变换,逐渐地将噪声的分布转换为数据的分布,这样就可以利用得到的数据分布进行采样,得到新的数据。可以看到,我们需要知道的信息就是——该如何进行每一步的变换。这比直接学习原始数据的分布简单得多,并且朴素地解释了扩散模型的有效性。《扩散模型:生成式AI模型的理论、应用与代码实践》一书会详细、严格地介绍扩散模型的原理和算法。

扩散模型也有其内在的缺点,如采样速度慢、对结构化数据处理能力较差,等等。例如,扩散模型在将噪声分布逐步转换为数据分布的过程中需要大量调用神经网络,这就导致了生成高质量图片时采样时间较长。后续大量的研究就是致力于提升扩散模型各个方面的性能,使扩散模型可以真正帮助人们高效解决现实问题。《扩散模型:生成式AI模型的理论、应用与代码实践》一书将详细分析扩散模型的优缺点,并系统地讲解扩散模型的进一步发展。

03
扩散模型应用

得益于扩散模型的强大性能,图片生成的应用Stable Diffusion、DALLE·2、Midjourney、妙鸭相机等在实际生产中都有利用扩散模型进行创造性内容生成。

这些应用程序利用扩散模型进行条件生成,即基于输入,引导、生成符合条件的内容。这种引导可以是自然语句,可以是部分图像,也可以用低分辨率的图像作为引导,生成高分辨率的图像,等等。

此外还有利用扩散模型生成语音、视频等各种模态数据的应用。艺术创作者们可以使用这些应用进行直接创作,或者使用它来提供灵感。在生成内容上进行修改可以大大提升工作效率。

但同时,扩散模型的强大能力和广泛引用也导致了潜在的负面影响。

AI的高效让部分创作者面临失业的风险;

扩散模型生成的内容存在版权问题、隐私问题和偏见问题;

AI生成的内容可能被用于有害的用途;

……

此外,扩散模型在科学研究领域也有应用,比如分子结构生成、分子动力学模拟。扩散模型可以生成表示分子的3D表示、分子的图结构,或者二者同时生成,以及控制生成分子的性质。这对于AI制药领域是又一大研究贡献。

在工业界的应用有点云生成和补全、异常检测等。

在医学领域的应用包括医学图像重建和病灶检测等。

总的来看,扩散模型在各个领域正处于一个百花齐放的状态。

《扩散模型:生成式AI模型的理论、应用与代码实践》一书也会详细介绍扩散模型在各个领域的应用研究。

为了推进扩散模型的发展和应用,需要多个学科领域的合作,包括机器学习算法、深度生成学习理论、随机分析理论,各领域的应用研究、隐私保护、法律与监管要求等。

目前扩散模型在各领域的发展和应用的介绍分散于论文和网络上,因此有必要在《扩散模型:生成式AI模型的理论、应用与代码实践》这本书中进行系统地介绍。

《扩散模型 : 生成式AI模型的理论、应用与代码实践》是一本从浅入深、全面系统地介绍扩散模型的书籍,其具备丰富的实践案例,以及前沿视角,受到一众专家、学者的认可、推荐。

在这里插入图片描述


http://www.mrgr.cn/p/37621072

相关文章

opencv-24 图像几何变换03-仿射-cv2.warpAffine()

什么是仿射? 仿射变换是指图像可以通过一系列的几何变换来实现平移、旋转等多种操作。该变换能够 保持图像的平直性和平行性。平直性是指图像经过仿射变换后,直线仍然是直线;平行性是指 图像在完成仿射变换后,平行线仍然是平行线。…

海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储

文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131679108 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

服务器 Docker Alist挂载到本地磁盘(Mac版)夸克网盘

1.服务器下载alist 默认有docker环境 docker pull xhofe/alist2.生成容器 -v /home/alist:/opt/alist/data 这段意思是alist中的数据映射到docker 主机的文件夹,/home/alist就是我主机的文件夹,这个文件夹必须先创建 docker run -d --restartalways…

【Python】数据分析+数据挖掘——探索Pandas中的数据筛选

1. 前言 当涉及数据处理和分析时,Pandas是Python编程语言中最强大、灵活且广泛使用的工具之一。Pandas提供了丰富的功能和方法,使得数据的选择、筛选和处理变得简单而高效。在本博客中,我们将重点介绍Pandas中数据筛选的关键知识点&#xff…

ChatGPT结合知识图谱构建医疗问答应用 (一) - 构建知识图谱

一、ChatGPT结合知识图谱 在本专栏的前面文章中构建 ChatGPT 本地知识库问答应用,都是基于词向量检索 Embedding 嵌入的方式实现的,在传统的问答领域中,一般知识源采用知识图谱来进行构建,但基于知识图谱的问答对于自然语言的处理…

Nginx配置WebSocket反向代理

1、WebSocket协议 ​ WebSocket协议相比较于HTTP协议成功握手后可以多次进行通讯,直到连接被关闭。但是WebSocket中的握手和HTTP中的握手兼容,它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。这使得WebSocket程序可以更容易的使用现已存在的…

深度学习——LSTM解决分类问题

RNN基本介绍 概述 循环神经网络(Recurrent Neural Network,RNN)是一种深度学习模型,主要用于处理序列数据,如文本、语音、时间序列等具有时序关系的数据。 核心思想 RNN的关键思想是引入了循环结构,允许…

记一次安装nvm切换node.js版本实例详解

最后效果如下: 背景:由于我以前安装过node.js,后续想安装nvm将node.js管理起来。 问题:nvm-use命令行运行成功,但是nvm-list显示并没有成功。 原因:因为安装过node.js,所以原先的node.js不收n…

CloudStudio搭建Next框架博客_抛开电脑性能在云端编程(沉浸式体验)

文章目录 ⭐前言⭐进入cloud studio工作区指引💖 注册coding账号💖 选择cloud studio💖 cloud studio选择next.js💖 安装react的ui框架(tDesign)💖 安装axios💖 代理请求跨域&#x…

2.获取DOM元素

获取DOM元素就是利用JS选择页面中的标签元素 2.1 根据CSS选择器来获取DOM元素(重点) 2.1.1选择匹配的第一个元素 语法: document.querySelector( css选择器 )参数: 包含一个或多个有效的CSS选择器 字符串 返回值: CSS选择器匹配的第一个元素,一个HTMLElement对象…

Data Structure, Algorithm,and Applications in C++

在学习这本书进阶内容之前,我们可以跟着它的第一章部分再巩固和复习。本书由Sartaj Sahni撰写,由王立柱和刘志红翻译。全书通俗易懂,内容丰富,是巩固C内容的不二选择。希望本文对各位有所帮助。 目录 1.函数与参数 1.1.传值参数…

【Linux】用户相关内容

如果命令ll 出现以上信息,UID为具体的数字,代表之前UID为502的用户被删除了。 更改目录或文件所属用户和所属组 在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户。 更改所属用户 chown 用户名 文件名/目录名 更…

:is()、:where() 和 :has() 伪元素

:is()、:where() 和 :has() 伪元素是 CSS 中用于样式化元素的非常强大的工具。它们是在 CSS 选择器 Level 4 规范中引入的。它们允许我们将样式应用于符合特定条件的任何元素,例如元素的类型、元素的位置和元素的后代。 :is() :is() - CSS:层叠样式表 …

Python 进阶(三):正则表达式(re 模块)

❤️ 博客主页:水滴技术 🌸 订阅专栏:Python 入门核心技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 文章目录 1. 导入re模块2. re模块中的常用函数2.1 re.search()2.2 re.findall()2.3 re.sub()2.4…

开源快速开发平台:做好数据管理,实现流程化办公!

做好数据管理,可以提升企业的办公协作效率,实现数字化转型。开源快速开发平台是深受企业喜爱的低代码开发平台,拥有多项典型功能,是可以打造自主可控快速开发平台,实现一对一框架定制的软件平台。在快节奏的社会中&…

游戏APP开发:创新设计的秘诀

在游戏 APP开发中,创新设计是游戏开发公司的一大追求,为了可以为用户带来更好的游戏体验,这就需要对游戏 APP开发进行创新设计。那么,游戏 APP开发中的创新设计是什么呢?接下来,我们就一起来看看吧。 想要…

基于深度学习的高精度80类动物目标检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度80类动物目标检测识别系统可用于日常生活中或野外来检测与定位80类动物目标,利用深度学习算法可实现图片、视频、摄像头等方式的80类动物目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YO…

Spring MVC异常处理【单个控制异常处理器、全局异常处理器、自定义异常处理器】

目录 一、单个控制器异常处理 1.1 控制器方法 1.2 编写出错页面 1.3 测试结果 二、全局异常处理 2.1 一个有异常的控制器类 2.2 全局异常处理器类 2.3 测试结果 三、自定义异常处理器 3.1 自定义异常处理器 3.2 测试结果 往期专栏&文章相关导读 1. Maven系列…

Linux - make/Makefifile

0.背景 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需…

理解构建LLM驱动的聊天机器人时的向量数据库检索的局限性 - (第1/3部分)

本博客是一系列文章中的第一篇,解释了为什么使用大型语言模型(LLM)部署专用领域聊天机器人的主流管道成本太高且效率低下。在第一篇文章中,我们将讨论为什么矢量数据库尽管最近流行起来,但在实际生产管道中部署时从根本…