1 让我们一起来看看AI换脸背后的原理-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

让我们一起来看看AI换脸背后的原理

8g3K_AI_Thinker 来源:lp 2019-04-02 15:23 次阅读

前几天,AI 换脸这条新闻你关注了吗?

说的是一位博主将 1994 年版《射雕英雄传》里朱茵的脸换成了杨幂的脸。因为该视频涉及到版权问题已被下架,但大家可以看看图片对比来感受一下“移花接木”效果:

是不是足够可以以假乱真了!这样的视频用一款实时视频仿真软件Face2Face 就可以达到,在软件中输入一个说话的人脸录像,通过算法生成对应的人脸模型,套用这个模型就可以创造 DeepFakes。最恐怖的是,这个逼真的效果看起来毫无违和感。

让我们一起来看看 AI 换脸背后的原理:

人脸检测 → 多人脸区域分别做面部关键点检测→面部区域分割→图像线性融合

顺着这个思路,我们可以看到 AI 换脸里最重要的一环就是人脸检测,要进行人脸识别,得经过这么几个过程:

人脸检测→人脸对齐→提取特征编码→编码比对

人脸检测:就是定位一张图片中人脸的位置。

人脸对齐:就是根据人脸中五个特征点位置(两个眼睛、两个嘴角、鼻子)将人脸缩放到一定的尺寸。

提取特征编码:通过训练一个人脸识别模型来提取人脸特征编码。

编码比对:将某个人脸的编码与编码库中的编码进行对比,得出距离或相似度。

01

实现 AI 换脸的第一步

以下关于人脸检测、人脸对齐均使用基于 Tensorflow 的 MTCNN 模型,生成特征编码使用基于 Mxnet 的 Insightface 模型。

图为人脸搜索整体架构设计:

首先,我们会下载 Insightface 源码及其训练好的模型文件,在这个源码的基础上,我们开发一个 API 程序,程序调用模型进行人脸检测、人脸对齐、生成特征编码,然后完成人脸入库、人脸搜索功能。

该程序主要使用 Flask 来进行 API 开发,使用 Annoy 来进行人脸特征向量搜索。在部署上,使用 Docker 容器部署 Python 环境,让 API 程序运行在 Docker 容器中,使用 Gunicorn 来启动 Flask 程序。

另外,使用 Nginx 部署一个图片服务器,用于前端的图片展示,也是运行在 Docker 容器中。最后,我们再提供一个简单 Web 页面,该页面允许用户进行入库、搜索操作(调用后端的人脸入库、搜索 API )。

最终的 Web 页面展示如下:

02

人脸搜索实现

首先你得有一个 Linux 环境,可以通过 VMware 构建一个 Ubuntu 16.04 的环境, iso 文件为 ubuntu-16.04.5-desktop-amd64.iso 。

考虑到方便大家照着做,而且大家可能没有 GPU 环境,所以以下构建环境我均使用 CPU

1. 克隆项目并修改相关源码

将 /opt/insightface/src/api/face_model 第 61 行

改为

将第 34 行

改为:

下载作者训练好的模型文件。

将模型文件解压至 /opt/insightface/models ,目录结构如下:

2. 编写人脸入库、搜索 API 程序

这里我们利用训练好的模型文件,使用 Flask 编写一个人脸特征编码入库、搜索 API 。我们将入库的特征编码存于程序中的一个数组里面。

首先,我们先创建用于图片入库及图片搜索的目录。

然后编码 API 程序,在

/opt/insightface/src/api 创建 app_flask.py 。

代码详见 Github。

3. 安装 Docker

安装软件,我一般从官网去获取安装操作说明,让自己在安装过程中少走些弯路。

4. 构建 Docker Nginx 图片服务器镜像

我们要做人脸搜索系统,在前端页面就是要上传一张图片,然后点击“搜索”按钮,在页面上显示人脸库中与该图片相似度最高的 top6 图片,所以我们要用到图片服务器,使用 url 进行图片展示。

我们首先要创建一个图片根目录。

然后使用 Docker 拉取一个 Nginx 镜像。

然后我们就可以启动容器了:

通过浏览器访问 http://192.168.247.128:8082/

5. 构建 Docker Insightface 镜像

我们从一个基础镜像 python:3.5 来构建我们的 Insightface 镜像

然后我们使用 Dockerfile 来构建 Insightface 镜像,主要是进行 Python 库环境的安装,比如 Tensorflow、Mxnet 。

最后,让我们连续入库 5 张梁静茹和 1 张陈慧娴的照片,然后用第 6 张梁静茹的照片来搜索,效果图如下:

最后,以上并非完整全文,提示大家如果有 Gpu 环境的话,可以使用 Gpu 来进行模型推理,以上操作我均使用 root 用户。本文所提到的代码都上传到我的 Github 上了。

Chat:手把手教你做人脸搜索系统

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4729

    浏览量

    128887
  • 服务器
    +关注

    关注

    12

    文章

    9123

    浏览量

    85320
  • AI
    AI
    +关注

    关注

    87

    文章

    30728

    浏览量

    268872

原文标题:这个技术让我毛骨悚然后背发凉!

文章出处:【微信号:AI_Thinker,微信公众号:人工智能头条】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    主流显卡GTX 1060长啥样,一起来看看拆解图!

    GTX 1060外部采用了和GTX 1080/1070风格类似的散热器,很长很威猛,但其实PCB很短小。如果你想知道GTX 1060内部长什么样子,一起来看拆解图。
    的头像 发表于 07-08 11:33 2.1w次阅读

    VS1053 Hifi Player 资料共享 让我们一起打造完美听觉感受

    本帖最后由 eehome 于 2013-1-5 09:46 编辑 VS1053 Hifi Player 资料共享 让我们一起打造完美听觉感受
    发表于 12-27 10:55

    让我们一起来写makefile

    大家一起来学哈
    发表于 03-14 00:04

    C语言可以实现微妙级的延时,大家一起来看看这段代码

    在使用C语言编程时延时程序是非常常见的,但是实现个精确的延时是不太容易的,在给个朋友的公司产品做维护时,发现段代码,可以实现微妙级的延时。看起来代码非常简单。但是我以前没有想到过
    发表于 09-09 11:11

    Molex莫仕就“未来汽车”发布全球汽车调研结果,一起来看看都有什么内容吧!!

    。调研结果对促成电气化与互联化的数据、软件及网络所发挥的关键作用给予了充分的肯定 – 已经将这两方面认定为最重要的创新领域。一起来看看是哪些方面吧!!
    发表于 01-07 16:11

    中兴V5手机配置如何?我们一起来看看吧!

    在3月18日的时候中兴正式发布中兴红牛品牌,而这个品牌的首款智能手机产品中兴红牛V5将在今天(4月9日)下午正式发布,中兴这次的新机推出速度着实迅速,那么配置怎么样额?我们一起来看看吧!
    发表于 03-24 08:50 2494次阅读

    VR让我们更容易实现超级记忆力呢?

    那么VR能不能帮助我们构建这个宫殿,省去构建的步骤或者帮助我们构建记忆宫殿,从而让我们更容易实现超级记忆力呢?近日,马里兰大学的研究人员就公布了相关的研究结果,让我们
    的头像 发表于 06-19 10:36 4487次阅读

    AI正式进入禁令

    AI正式进入禁令。
    发表于 07-03 15:49 7743次阅读

    AI技术背后的问题

     近日,脸软件刷屏了社交网络。通过这款软件,用户可实现与明星,“键”进入明星出演的影视片段中,过把戏瘾。然而,随着这款软件火爆网
    的头像 发表于 09-10 17:05 1.5w次阅读

    南京女子疑遇AI被骗钱

    近日在南京,女子疑遇AI被骗3000元,虽然被骗数额不大,但
    的头像 发表于 01-25 11:06 2028次阅读

    如何利用土壤采样器如何提取土壤溶液,一起来看看

    土壤采样器的种类有很多,如团粒、土壤电动取样器、土钻、土壤溶液采样器等,不同的土壤采样器应用于不同的领域且发挥着不同的作用。最近有很多用户咨询,利用土壤采样器如何提取土壤溶液?今天我们一起来看看
    的头像 发表于 05-17 17:08 2675次阅读

    走进奇瑞汽车 一起来看看虹科风采

    10月13日,虹科受盖世汽车邀请,参加”走进奇瑞汽车“新技术专场活动。聚焦”汽车智能网联“,欢迎了解虹科产品解决方案。 走进奇瑞汽车,一起来看看虹科风采! 奇瑞汽车股份有限公司(以下简称“奇瑞汽车
    的头像 发表于 10-20 09:34 1612次阅读

    让我们一起实现氮化镓的可靠运行

    让我们一起实现氮化镓的可靠运行
    发表于 11-02 08:16 1次下载
    <b class='flag-5'>让我们</b><b class='flag-5'>一起</b>实现氮化镓的可靠运行

    我们一起来实现氮化镓的可靠运行

    我们一起来实现氮化镓的可靠运行
    发表于 11-03 08:04 2次下载
    <b class='flag-5'>我们</b><b class='flag-5'>一起来</b>实现氮化镓的可靠运行

    一起来看看ODF配线架光纤怎么进线-科兰

    ODF光纤配线架是专为光纤通信机房设计的光纤配线设备,具有光缆固定和保护功能光缆终接功能、调线功能,是信息机房中不可或缺的部分。今天,我们一起来看看ODF配线架光纤怎么进线? ODF配线架光纤
    发表于 11-29 09:17 3615次阅读
    <b class='flag-5'>一起来看看</b>ODF配线架光纤怎么进线-科兰