0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AI换脸的基本原理

新机器视觉 来源:新机器视觉 2023-05-26 14:45 次阅读

前不久,社交媒体平台上一款名为“蚂蚁呀嘿”的特效火爆全网,许多网友都将自己的照片导入换脸软件Avatarify中,照片便可以被算法驱动,生成一段表情夸张扭曲且跟着节奏晃动的换脸短视频。

魔幻的特效让这类的视频迅速侵袭社交平台,网友惊呼:简直就像捅了蚂蚁窝。

例如:马云、马化腾、马斯克等大佬们,正在集体演唱神曲《蚂蚁呀嘿》。

例如,李开复老师便友情上演了一首《Only You》。

这项技术可以完成在给定一张源图片和一个目标动作视频,将目标视频的表情和动作迁移到源图片上,使得源图片中的人物做出目标视频相同的表情动作。

Faceswap

这种换脸的算法,其实有很多。 例如 Faceswap 、DeepFaceLab、Faceswap-GAN 等等。 本文以 star 量最多的 Faceswap 为例,进行说明。

4989cfa8-fb83-11ed-90ce-dac502259ad0.jpg

算法原理

Faceswap 是一个名为 deepfakes 的 Github 用户开源的项目。 Deepfake 就是“Deep Machine Learning”(深度学习)和“Fake Photo”(假照片)组合而成的。 早期技术可以追溯到 2018 年,当时在构建模型的时候使用了 Encoder-Decoder 自编解码架构。 而 Faceswap 算法,在此之上又引入 GAN(生成对抗网络)技术,显著提升了换脸的效果。 总体上,「Faceswap」换脸主要分为以下三个过程:

人脸检测

特征提取

人脸转换

人脸检测 想要替换人脸,那首先得找到人脸的位置,这就需要用到人脸检测算法。

Faceswap 算法采用了 SSD 这类比较成熟的检测框架,同于提取面部图像。 与传统人脸检测略有不同的,Faceswap 算法需要裁剪的人脸边界框(bouding box, bbox)是正方形的,同时还会适当的向外扩充一些,以保证人脸都在 bbox 内。 特征提取 检测到人脸后,需要提取人脸的特征。 首先要做的就是,人脸关键点检测,也就是 landmark。

这些关键点,抽取了人脸的表情特征,同时大致描述了人脸的器官分布。 我们可以直接通过 dlib 和 OpenCV 等主流的工具包直接提取人脸的关键点。 当然,为了取得更好的定位精度,也可以使用 CNN 训练一个人脸关键点检测模型,简单好用。 人脸转换

人脸转换的思想,就是采用编码器的原理。 简单来讲,就是将人脸图像压缩到短向量,再由短向量恢复到人脸图像。这些短向量包含了人脸的主要信息,例如该向量的元素可能表示人脸肤色、眉毛位置、眼睛大小等等。

49a4d230-fb83-11ed-90ce-dac502259ad0.png

所以如果我们用某个编码器学习所有人,那么它就能学习到人脸的共性;如果再用某个解码器学习特定的某个人,那么就能学习到这个人的特性。 简单而言,当我们用通用编码器编码人脸 A,再使用特定解码器 B 解码短向量,那么就能生成出拥有 A 的人脸表情,但却是 B 人脸的图像。 就好比,你摆出一个表情,我根据你睁眼的大小嘴巴咧开的大小等面部特征,模仿出你的表情。 我们表情一样,但长相不一样。 人脸转换,除了自编码器的方法,还有一种 GAN 方法。 GAN 会利用提取的人脸特征点,使用生成器直接生成对应的目标人脸图像,这跟 StyleGAN 人脸生成算法很类似,但不同的是需要生成指定表情的人脸。 在生成的图片后,会接一个判别器,判断图片的逼真程度。

49aba772-fb83-11ed-90ce-dac502259ad0.png

上述算法都是针对单张图片而言的,对于视频而言,就是多了一个视频拆分成图片,图片拼接成视频的过程。 DeepFakes 技术发展已久,2020 年有一篇发表的综述论文,包含了各种 DeepFakes 算法的概述,想了解更多的读者,可以去“啃”一下论文了。 论文地址: https://arxiv.org/pdf/2001.00179.pdf 预处理和后处理 大致思路就是这样,里面还有很多细节,我们称之为 Tricks ,这就需要通过阅读源码去学习了。 比如,在进行提取人脸特征之前,需要进行图像的预处理。 对数据进行规范化(Normalization),使训练的图像的分布信息尽可能相近:

训练的数据集是分为 A 数据集和 B 数据集的,如上图,A 数据集为川普,B 数据集为凯奇。 我们可以将 A 数据集(川普)加上两者数据集的平均差值(RGB三通道差值)来使两个输入图像图像的分布尽可以相近,这样我们的损失函数曲线下降会更快些。 用代码表示就是:

images_A+=images_B.mean(axis=(0,1,2))-images_A.mean(axis=(0,1,2))
再比如,换脸之后,需要进行图像的后处理。 为了是生成的人脸效果更加,会进行诸如边缘融合、色彩均衡等处理方法。 想要了解算法背后的实现方法,那就得耐着性子看源码了。

最后我们再简单解释一下换脸的基本原理:提取两个例子,分为A&B,进行以下三步:1.人脸侦测和识别。2.确定变换矩阵。3.人脸替换。对于视频中的每一帧信息重复以上操作直至结束即可!

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    67

    文章

    4350

    浏览量

    85644
  • AI
    AI
    +关注

    关注

    87

    文章

    26472

    浏览量

    264106
  • 源码
    +关注

    关注

    8

    文章

    574

    浏览量

    28592

原文标题:带你揭开AI换脸技术的原理

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    步进电机基本原理

    本帖最后由 eehome 于 2013-1-5 09:48 编辑 步进电机基本原理
    发表于 08-16 16:17

    串联谐振逆变器的基本原理

    串联谐振通常伴有逆变器。该组合称为串联谐振逆变器。什么是基本原理?让我简要介绍串联谐振逆变器的一些基本原理。]首先给你看一张图片:
    发表于 11-07 10:21

    电流检测电阻的基本原理

    电流检测电阻的基本原理简单采样电路的实现
    发表于 01-29 06:26

    IC测试基本原理是什么?

    IC测试基本原理是什么?ATE测试向量是什么?
    发表于 05-07 06:43

    IC测试的基本原理是什么?

    本文详细介绍了芯片开发和生产过程中的IC测试基本原理
    发表于 05-08 07:33

    TSP控制的基本原理是什么?

    TSP控制的基本原理是什么?
    发表于 05-11 06:39

    什么是PWM?PWM的基本原理是什么?

    什么是PWM?PWM的基本原理是什么?PWM输出配置有哪些步骤?
    发表于 06-30 07:39

    电机转动的基本原理是什么?

    电机转动的基本原理是什么?电机运动的基本原则有哪些?
    发表于 07-21 07:59

    线性电源的基本原理是什么

    多路线性电源 AC-DC稳压电源 低纹波电源 可调线性电源 原理图PCB目录多路线性电源 AC-DC稳压电源 低纹波电源 可调线性电源 原理图PCB基本原理芯片选型原理图&3D-PCB具体
    发表于 07-30 07:47

    无线充电的基本原理是什么

    一 、无线充电基本原理无线充电的基本原理就是我们平时常用的开关电源原理,区别在于没有磁介质耦合,那么我们需要利用磁共振的方式提高耦合效率,具体方法是在发送端和接收端线圈串并联电容,是发送线圈处理谐振
    发表于 09-15 06:01

    RAID技术的基本原理是什么

    RAID技术的基本原理是什么?RAID技术有哪几个优势?
    发表于 10-14 12:01

    IIC的基本原理是什么?

    IIC的基本原理是什么?
    发表于 11-25 08:46

    串口通信基本原理是什么?

    串口通信基本原理是什么?串行通信的分类有哪些?
    发表于 12-03 06:08

    串口通信的基本原理是什么?

    同步通信和异步通信的区别是什么?串口通信的基本原理是什么?
    发表于 12-13 06:46

    步进马达基本原理

    步进马达基本原理步进马达基本原理步进马达基本原理
    发表于 11-30 11:55 8次下载