linux怎么查看本机内存大小
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~