用Python玩百变人脸!趣味容颜,ALAE 人脸玩出新高度!

制作CelebA-HQ数据集(所有文件全在百度网盘,永久可用) 目录1、下载img_celeba.7z2、下载 list_landmarks_celeba.txt3、下载celeba-hq-deltas文件夹4、下载python文件5、在命令行里面运行程序生成图像整个文件夹的目录如下:CelebA img_celeba.7z img_celeba img_celeba list_landmarks_celeba.txt celeba-hq-deltas C 阅读详情

1

人脸

人脸乃人之门面,在这看「颜」的时代,「颜」即正义。

出门前,都会特意看看自己的脸打扮得是否满意,而没有人会特意看看自己的脚趾窝是否干净。

生活中,人脸是人们关注的重点。技术上,人脸同样也是研究者关心的话题。

因为人脸,包含了太多有价值的信息。

颜值高低,相貌美丑,喜怒哀乐,爱恨情仇,尽在其中。

人脸识别、人脸检测、情绪分析、人脸搜索、人脸比对、颜值评分,这琳琅满目的人脸技术,逐渐走进人们的生活。

百变的人脸,也是百变的人生。

仪表堂堂也好,样貌平平也罢,每个人脸的背后,都有一段段岁月,一段段风光,还有那独一无二的人生。

但,你有没有想过,你看到的一张人脸,可能从未存在于这个世界。

「This person does not exist.」

2

ALAE

高清「人脸生成」算法,你知道多少?

曾经风靡一时的 StyleGAN,给人们带来很多震撼,逼真的肖像,你根本分不清,哪张图片是算法生成的。

看一下 StyleGAN v2 人脸生成的效果:

这些人脸,都是算法随机生成的。

有人还特意用 StyleGAN v2 做了一个酷炫的网站,随机生成百变的人脸。

你每刷新一次网页,它都会给你一张随机生成的人脸肖像。

URL:

https://thispersondoesnotexist.com/

StyleGAN 很酷炫,但它并不是今天的主角。

最近,刚刚开源,并被 CVPR 2020 顶级会议收录的 ALAE 才是。

ALAE 是一种新型自编码器,全名叫「Adversarial Latent Autoencoder」。

它与 StyleGAN 一样,都是一种无监督方法。不同的是,ALAE 采用的是自编码器(AE),StyleGAN 采用的是生成对抗网络(GAN)。

ALAE 不仅可以随机生成肖像,它甚至可以编辑生成肖像的人脸属性。

你可以改变图像中人脸的性别、年龄、笑容、发质,也可以改变他们的性感程度、丰满程度、嘴唇和鼻子的大小等等。

没错,这是 ALAE 生成的人脸,我们可以调整肖像的性别,看下她的“亲兄弟”可能张什么样?

你甚至可以“控制”她的喜怒,秒变严肃脸或大笑脸。

更妙的是,秒变年龄,看看这美貌容颜。

当然,这属性也不能调节的太“过”,容易出“事故”。

我“裂开”了!

想玩 ALAE 吗?

算法原理、环境搭建、算法测试,一条龙服务,尽在下文!

3

算法原理

想要了解 ALAE,那必须先知道什么是自编码器。

自编码器是一种能够通过无监督学习,学到输入数据高效表示的人工神经网络。

输入数据的这一高效表示称为「编码」,其维度一般远小于输入数据,使得自编码器可用于降维。

更重要的是,自编码器可作为强大的「特征检测器」,应用于深度神经网络的预训练。

此外,自编码器还可以随机生成与训练数据类似的数据,这被称作「生成模型」。

编码(就是输入数据的高效表示)是自编码器在一些限制条件下学习恒等函数的副产品。

举个高效的数据表示的例子:

下面有两组数字,哪组更容易记忆呢?

  • 40, 27, 25, 36, 81, 57, 10, 73, 19, 68

  • 50, 25, 76, 38, 19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20

乍一看可能觉得第一行数字更容易记忆,毕竟更短。

但仔细观察就会发现,第二组数字是有规律的:偶数后面是其二分之一,奇数后面是其三倍加一(这就是著名的hailstone sequence)。

如果识别出了这一模式,第二组数据只需要记住这两个规则、第一个数字、以及序列长度。如果你的记忆能力超强,可以记住很长的随机数字序列,那你可能就不会去关心一组数字是否存在规律了。

所以我们要对自编码器增加约束来强制它去探索数据中的模式。

记忆、感知、和模式匹配的关系在 1970s 早期就被 William Chase 和 Herbert Simon 研究过。

他们发现国际象棋大师观察棋盘5秒,就能记住所有棋子的位置,而常人是无法办到的。

但棋子的摆放必须是实战中的棋局(也就是棋子存在规则,就像第二组数字),棋子随机摆放可不行(就像第一组数字)。

象棋大师并不是记忆力优于我们,而是经验丰富,很擅于识别象棋模式,从而高效地记忆棋局。

和棋手的记忆模式类似,一个自编码器接收输入,将其转换成高效的内部表示,然后再输出输入数据的类似物。

自编码器通常包括两部分:encoder(也称为识别网络)将输入转换成内部表示,decoder(也称为生成网络)将内部表示转换成输出。

如下图所示,左侧为象棋大师的记忆模式,右侧为一个简单的自编码器。

ALAE 就是基于这种原理的新型自编码器。

ALAE 将生成器 G 和判别器 D 分别分解成两个网络:F、G 和 E、D。

同时,参考 StyleGAN,设计了 StyleALAE,也就是我们用于生成人物头像的那块网络结构。

要想更详细的了解 ALAE 的原理,那就得“啃”论文了。

论文地址:

https://arxiv.org/pdf/2004.04467.pdf

这里就不堆公式了,容易看困。

4

环境搭建

ALAE 完全开源,可以放心“食用”。

项目地址:

https://github.com/podgorskiy/ALAE

可以直接下载 ALAE 项目的 ZIP 包。

或者使用 git clone 下载。

git clone https://github.com/podgorskiy/ALAE

源码下载完成后,开始配置开发环境。

环境搭建,强烈建议使用 Anaconda,无论你是做爬虫也好,还是做深度学习算法也罢,选它准没错!

Anaconda 是一个针对 Python 的开源的包、环境管理器,用了它,安装各种第三方库,一切都变得很简单,再也不必为 pip 安装缺少依赖而头疼。

人生苦短,我用 conda 。

Anaconda 的使用,这里就不多介绍了,毕竟本文不是针对 conda 使用的教程,不懂的读者,可以搜搜 Anaconda 的安装和使用教程。

回归正题。

ALAE 对机器有一定的要求。

首先,你的机器必须有 GPU,并配置好 GUDA 和 cuDNN。

安装 CUDA 需要去官网,找到 NVIDIA 官网,找匹配机器显卡的 CUDA 安装。

CUDA 下载地址:

https://developer.nvidia.com/cuda-downloads

比如,我的系统是 Windows,显卡是 RTX 2060 super。那么,我就可以下载并安装 CUDA10。

安装好 CUDA 后,可以在 Anaconda 环境中,直接安装 cuDNN。

conda install cudnn

很简单是吧?

需要注意的是,ALAE 运行需要图形界面,所以如果是 Linux 系统,需要是 Ubuntu 这类有操作界面的。

一个标准的开源项目,都有会 requirements.txt,这里有你需要安装的依赖说明。

ALAE 的依赖:

可以看到,这个项目是使用 pytorch 1.3.0 以上的版本,还用了很多 numpy、sklearn 这些常规库。

这些都很好安装,只需要使用 conda install 安装即可,也可以用 pip install 安装。

这里面有一个“坑”,就是安装 bimpy,bimpy 是 ALAE 运行的图形界面,需要一些系统环境的依赖。

bimpy 项目地址:

https://github.com/podgorskiy/bimpy

Windows 需要安装 MSVC 14.0,我已放到我的百度云(提取码:vjw9 ):

链接:

https://pan.baidu.com/s/1BbM5jeTc2b7OxYzsxQK3mw

安装好 MSVC 14.0 后,就可以顺利安装 bimpy。

Linux 直接使用 apt-get 安装即可:

sudo apt-get install mesa-common-dev libxi-dev libxinerama-dev libxrandr-dev libxcursor-dev

环境配置完成,就可以开始测试了!

5

算法测试

算法学习,从做好「调包侠」开始。

环境搭建、算法跑通,是「调包侠」的基本素养。

深度学习算法,怎么能少得了 「pre-trained model」。

想要跑效果,还得下载开源的预训练模型。

如果配置了 VPN,采用全局模式,可以直接从 Google Drive 或 备用源下载预训练模型。

在项目工程目录里,直接运行如下命令:

python training_artifacts/download_all.py

可以看下这个下载代码:

可以看到,一共需要下载 7 个 model。如果不能从 Google Drive 下载,会通过 亚马逊 AWS 服务器下载。

但遗憾的是,国内从 AWS 下载可能仅 10 KB。

我把这些 model 上传到了我的百度云(提取码:in5l):

链接:

https://pan.baidu.com/s/19GFKLTWu00jB3Qp4lsyAYw

有百度云会员的读者,可以下载。

一共有 4 种预训练模型,bedroom、celeba、celeba-hq256、ffhq,这是针对 4 种数据集的模型。

预训练模型下载好,放到 training_artifacts 下对应的文件夹内即可。

至此,预训练模型准备完毕。

在工程目录,使用如下命令,即可运行项目:

python interactive_demo.py -c ffhq

-c 后接的参数就是选择哪个模型,一共有 bedroom、celeba、celeba-hq256、ffhq 四种可选。

运行之后,你可能看到这样的结果:

结果就是一小条,这是 bimpy 窗口大小的设置问题。

运行一次 interactive_demo.py 之后,工程目录下会生成一个 imgui.ini 文件。

修改 Size 大小到 1500,1024 即可。

运行界面说明:

选择的图片是输入图片,可以理解为「初始化模板」,ALAE 算法会根据「初始化模板」的特征,随机生成一个人物图片。

现有的模板库里,都是外国人,咱们可以自己选一些中国名人的头像,裁剪成 1024 * 1024 的图片。

比如我将刘亦菲的头像,放到了 dataset_samples/faces/realign1024x1024 目录下。

这样算法就可以用刘亦菲的头像作为「初始化模板」,随机生成一个人物图片。

点击「Display Recontruction」生成人物头像。

没看出来哪里像,竟然还有点怪怪的。

而巨石强森,就很神似!有木有!

往期热门:

你点的每个“在看”,我都当成了喜欢
盘点那些被AI换脸、一键“脱”衣所滥用的AI模型 上周作者发布了一篇有关AI换脸的教程,不过令笔者始料未及的是一石激起千层浪,竟然有不少网友留言求所谓一键“脱”衣的教程。 虽然笔者对于技术的滥用深恶痛绝,但技术本身是中性的,并无好坏之分,从我上篇博文中也能看到“AI换脸”的门槛越来越低,目前其应用已经发展到几乎是随便什么人有个教程就能操作的地步了,所以想阻止这些滥用的技术,单靠封杀是不起了什么作用的,所以本文就回归... 阅读详情

相关推荐

Python输入音频wav同步嘴型源码方案

这是由ACM MM2020发表了的一篇论文,提出一个AI模型,只需要一段人物视频和一段目标语音,就能够让音频和视频合二为一,人物嘴型与音频完全匹配。 【订阅栏目 获取全部的源码方案】 选一张蒙娜丽莎的照片和一段简短的音频,就可以让嘴唇同步,这是静态的照片,所以照片中的人物头部没有任何动作,它还能让视频中的人物与输入的音频同步。我们来看一段视频吧。 其实它的应用非常广,比如好莱坞可以用它来制作多国语音的电源,毫无违和感。然后最近流行的虚拟主播,也是广泛的使用嘴型同步。这个源码它就是通过训练模型,

softboy安卓软件 4541

30秒掌握一些python的高级用法,让旁人羡煞不已

1.数组再分组 对一个列表根据所需要的大小进行细分: 效果如下: EXAMPLES chunk([1,2,3,4,5],2)# [[1,2],[3,4],5] return中,map的第二个参数是一个列表,map会将列表中的每一个元素用于调用第一个参数的 function 函数,返回包含每次 function 函数返回值的新列表。 2.数字转数组 同样是一则关于map的应用,将整形数字拆分到数组中: def digitize(n): return list(map.

Python_kele的博客 619

Python让AI虚拟主播接入微软Azure语音合成并精准嘴型同步

上一篇文字中讲了利用Python实现利用微软Azure无限免费将文本转mp3格式的音频文件并下载到本地。微软Azure TTS的优点不用多说,今天将讲如何利用Python将其接入到虚拟主播中来。 订阅专栏,我将免费向您提供具体的方案。 看过专栏其他文章的朋友,一定知道,我们使用的虚拟主播软件为Motionface,其支持一些简单好用的接口。我们先看看Motionface的效果: 我们看到了其要求是需要wav格式的音频来驱动嘴型同步,但是微软Azure语音合成为mp3格式,这时,我们需要将mp3音频

softboy安卓软件 6804

树莓派上利用python+opencv+dlib实现嘴唇检测

树莓派上利用python+opencv+dlib实现嘴唇检测树莓派上利用python+opencv+dlib实现嘴唇检测1、安装相关库文件1.1 安装opencv1.2 安装numpy1.3 安装dlib2、代码部分3、实验效果 树莓派上利用python+opencv+dlib实现嘴唇检测 项目的目标是在树莓派上运行python代码以实现嘴唇检测,本来以为树莓派的硬件是可以流畅运行实时检测的,但是实验的效果表明树莓派实时检测是不可行,后面还需要改进。 实验的效果如下: 1、安装相关库文件 这里需要用的库有

weixin_43977647的博客 6319

CelebA-HQ数据集下载【详细明了版】分辨率包括【64,128,256,512,1024】

CelebA-HQ 是在ICLR2018上,nVidia发表了一篇名为Progressive Growing of GANs for Improved Quality, Stability, and Variation的论文,文中通过训练高分辨率GAN生成了一个新的人脸数据集CelebA-HQ.CelebA是港科大汤晓鸥组收集的人脸数据集(总共200k图片),包括了人脸特征点(landmark),人脸属性(attribute)等信息,详细介绍参考链接[1]和[2]

zik的博客 1万+

MATLAB算法实战应用案例精讲-【深度学习】使用Pytorch和OpenCV实现视频人脸替换

一部分从两个视频中提取人脸并构建标准人脸数据集。第二部分使用数据集与神经网络一起学习如何在潜在空间中表示人脸,并从该表示中重建人脸图像。最后部分使用神经网络在视频的每一帧中创建与源视频中相同但具有目标视频中人物

qq_36130719的博客 393

照片美妆--人像变老算法研究

人像变老技术可以把一张小孩子的照片或者年轻人的照片转换为变老以后的样子,目前市面上已有相应的应用,这里本人先放两张效果,然后分析算法:这个效果是本人算法的效果,现在我们来分析一下人像变老的技术情况。人像变老算法很早之前就有学者研究,论文举例如下:PAMI 2010 A Compositional and Dynamic Model for Face AgingICCV 2015  Personal...

Trent1985的专栏 9812

基于Swfit 实现人脸变老

自己实现的一个人脸变老的方案,项目代码和算法相关均由Swift实现人脸变老的方案有很多,本人提出的方案,优点在于不用考虑原图人脸的肤色、亮度等因素,一张预制的皱纹脸皮即可适用于大多数的人的图片,缺点则在于变老的效果仅体现在于有更多的“皱纹”,整体效果离真实变老有不少的差距。

神仙别闹的自留地 767

60年后的你长什么样?人脸老化三大技术探秘

通过计算机视觉技术模拟出人老了的样子,这样的应用实际上并不新奇。这些年,类似的场景可谓层出不穷,有的App可以通过夫妻的样貌预测出孩子的模样,有的App可以通过用户上传的照片还原你小时候的样子和老了之后的样子,甚至还有一些App可以通过一两张照片生成出一段短视频,展示用户一生的样貌变化,让使用的人颇有沧海桑田之感。 而我们这次的“当你老了”项目的着眼点...

weixin_34129145的博客 638

c语言串口编程详解

串口: 一种异步通信接口,通常用于低速数据传输。RS-232: 最常见的串口标准,定义了电气特性、连接器和信号线。UART: 通用异步收发传输器,是实现串口通信的硬件模块。通过以上内容,你应能够理解并实现C语言在Windows和Linux平台上的串口编程。希望这本手册能帮助你在实际项目中顺利进行串口通信开发。如果有任何疑问或需要进一步的帮助,请随时提问。

jkzyx123的博客 2224

Palantir 产品架构深度解析:从本体到AI的决策智能平台

本文深度解析了Palantir决策智能平台的核心产品架构。其核心在于构建企业级的“本体”(Ontology),即业务世界的“数字孪生”,通过数据、逻辑、操作三层抽象统一语义。平台以此为基础,通过Foundry构建数字孪生,并通过AIP(人工智能平台)实现本体增强生成(OAG),将AI深度融入业务,形成从数据感知、智能分析到行动执行的完整决策闭环。

ooo22的博客 735

FaceFusion人脸老化/年轻化功能实测效果惊艳

FaceFusion推出高精度人脸老化/年轻化功能,基于连续年龄控制与双轨身份保护技术,在保持身份特征的同时实现生理合理的面容变化。支持实时交互、多场景应用,并注重隐私与伦理设计。

weixin_35879493的博客 1169

【Ubuntu】SMBus Host controller not enabled(虚拟机进入不了图形界面)

SMBus Host controller not enabled(虚拟机进入不了图形界面)

Cappuccino Blog 4万+

FaceFusion年龄变化功能实测:一键实现年轻化与老化效果

FaceFusion通过深度学习实现自然的人脸年轻化与老化效果,基于隐空间解耦技术,在保留身份特征的同时精准模拟面部结构变化。支持本地运行、免费开源,兼具高真实感与隐私安全性,适用于影视、社交、教育等多场景。

weixin_42153793的博客 1385

Score Matching(得分匹配)

Score Matching(得分匹配)是一种统计学习方法,用于估计概率密度函数的梯度(即得分函数),而无需知道密度函数的归一化常数。这种方法由Hyvärinen在2005年提出,主要用于无监督学习,特别是在密度估计和生成模型中。

weixin_39699362的博客 2167

什么是 SAPGUI 里的 Logon Group/Server

这意味着,不同的用户连接可以被分配到不同的应用服务器,以实现均衡的资源利用和降低某一服务器的负载压力。在这种配置下,欧洲的用户登录时选择“EUROPE_GROUP”,系统将自动选择一个位于欧洲的数据中心的服务器进行连接,这样不仅减少了网络延迟,还实现了服务器间的负载均衡。用户在 SAPGUI 中登录时,只需选择相应的 Logon Group(例如“FIN_GROUP”),系统就会自动将他们的连接请求分配到当前负载最小的应用服务器上,这种动态分配大大提升了系统的响应速度和稳定性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1069

【免费下载】 CelebA-HQ数据集:高质量人脸图像的宝库

CelebA-HQ数据集:高质量人脸图像的宝库 【下载地址】CelebA-HQ数据集下载指南 CelebA-HQ数据集是一个高质量的人脸图像数据集,包含30,000张分辨率为1024x1024的图像。该数据集是CelebA数据集的升级版,适用于人脸识别、图像生成和计算机视觉等领域的研究和应用 ...

gitblog_06571的博客 2768

基于深度学习的AI生成式人脸图像鉴别

AIGC(AI内容生成)技术的快速发展确实为创作者提供了高效生产力工具,但同时也引发了一些问题和挑战。这些技术可以生成以假乱真的图像、视频换脸等,给不法分子提供了滥用的机会。其中,一些不法分子可能利用AIGC技术制造虚假新闻、违反版权、绕过活体身份验证、散布谣言和诽谤他人、进行敲诈勒索等非法活动,以谋取不当利益。这些行为给社会造成了严重的负面影响,破坏了信息的真实性和可信度。因此,我们需要认识到AIGC技术的潜在风险,并采取相应的措施来应对。

mingo_敏 4496

图像修复(Image Restoration)算法数据集详细介绍

图像修复(Image Restoration)算法数据集详细介绍:人脸数据集【1.Helen Face 2.CelebA (Celebrity Attribute) 3.CelebA-HQ 4.FFHQ(Flickr-Faces-HQ)】场景数据集【1.MS COCO (Common Objects in Context) 2.ImageNet 3.Places2】街景数据集【1.Paris StreetView 2.Cityscapes】纹理数据集DTD、建筑数据集Façade。下载地址制作机构

qq_45790998的博客 1万+

uniapp [安卓苹果App端] - 详细实现自定义水印相机功能,调用手机摄像头打开相机并在周围悬挂自定义水印,使用相机拍照后添加水印文字或样式,uniapp APP端水印相机完整源码,兼容强大可靠

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果app,水印相机,uniapp水印相机,Uniapp安卓app实现水印相机,uniapp苹果ios水印相机,打开系统相机拍照添加水印,地点打卡相机,水印相机(水印照片,图片加水印),uniapp自定义水印相机,制作水印相机给图片添加水印并且保存图片至本地,uniapp拍照图片加水印,水印相机功能,手机调起摄像头拍照时自动插入文字、图片动态水印效果,支持水印显示拍摄者当前城市定位、自由调整水印大小和位置,手机拍照时

🏆 前端领域优质创作者 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

人脸变老算法

人脸变老算法 人脸变老算法在博客中主要使用图层的方法实现的。在分图层以及图片处理的过程中使用的方法较为粗糙。还有很多需要改进的地方 先上原图 变老后的图 博客使用python 实现的所有的代码都放到了github上面。 转载需带有本博客地址。 手打不易,如果感觉还不错请在github上给项目打星谢谢。 Github地址: https://github.com/10...

qq_38284961的博客 3063

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

在pycharm上部署基于python的AI换脸技术live直播换脸项目最新效果超好,超详细保姆级GitHub项目手把手部署,可以AI转换视频也可以摄像头直接实时(速度效果取决于GPU,笔者3050)

纯技术教学分享!!自己动手GitHub项目部署全过程!!!!纯技术教学分享!!自己动手GitHub项目部署全过程!!!!

m0_64534287的博客 2800

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[GAN]CelebAMask-HQ数据集处理、划分

CelebAMask数据集是2020年MaskGAN这篇文章一起提出的,这篇文章主要讲了利用用户修改后的语义分割信息来引导图像编辑。 港中文和商汤合作的,还是蛮不错的一篇文章。 文章链接:MaskGAN: Towards Diverse and Interactive Facial Image Manipulation 本篇博客只讲文章对于CelebAMask数据集补充的部分(因为博主目前更关心这部分哈哈哈啊哈!) 💡CelebAMask简介 MaskGAN作者们构造一个名为CelebAMask-HQ.

“知识最大的敌人不是无知,而是错觉” 1万+
上一篇: 腾讯的技术到底有多强?
下一篇: 恕我直言!你对Python里的import一无所知
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值