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

网友投稿 819 2022-10-29

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

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

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

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

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

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

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

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

01

实现 AI 换脸的第一步

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

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

最终的 Web 页面展示如下:

02

人脸搜索实现

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 图片服务器镜像

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

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

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

5. 构建 Docker Insightface 镜像

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

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用ShardingSphere
下一篇:五分钟学会使用 go modules(含在家办公使用技巧)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~