人脸应用类-人脸融合特效
《AI未来星球》陪伴成长的人工智能社群,价值过万的各种内部资源及活动,限时特惠中,点击查看。
本文目录求职跳槽福利:为了便于大家求职、跳槽的准备,大白花了一年多时间准备了《人工智能算法岗江湖武林秘籍》,限时开放下载,点击查看下载。
1 项目简介&应用场景
2 原理简述
3 项目实践
3.1 软件安装
3.2 conda安装
3.3 库文件安装
3.4 代码文件编写
3.5 代码运行测试
1 项目简介&学习目的&应用场景
作者:江大白
项目简介:大家在一些变脸的APP中,常常会将自己的人脸,添加到一些视频或者图像中。其中背后采用的算法,是deepfake算法。
而本项目,从另一个角度出发,通过人脸检测+关键点定位,映射的方式,也产生人脸融合的效果。
而且采用的算法非deepfake方式,而是主要采用Opencv的方式。
通过本项目,大家可以学习人脸识别方面的知识点,也可以学习人脸映射、人脸融合方面的知识点。
因为本项目涉及到一些人脸识别相关的知识点,人脸识别入门视频,可以参考平台上的《深入浅出人脸基础及项目应用》。
而关于人脸特效入门的视频,可以参考平台上的《深入浅出人脸特效之Mask实战应用》。
学习目的:学习如何对图像Mask处理?学习如何对人脸融合?
可应用场景:短视频人脸特效等
2 原理简述
人脸融合特效:在项目中,大白将人脸融合分为4个阶段(详情可以在第三板块,下载的资料内查看PDF文档《人脸融合实战详细流程》)
大家可以根据文档和代码,以及核心步骤的效果图,对比查看。
注意:项目中会涉及到目标检测方面的内容,目标检测入门的视频,可以查看平台上《30天入门深度学习》课程中的第五章节,入门且详细易懂。
3 项目实践
很多同学刚开始进入计算机视觉领域,因此大白主要从三个方面教大家一步步入门。
大白主要从软件安装(用于编写代码)+conda安装(代码运行环境)+库文件安装(代码运行需要的函数),总共三个方面讲解。
注意:如软件、环境、库文件已经安装,可跳过第三章,直接进入第四章。
3.1 软件安装
(1)Pycharm的安装
计算机视觉算法入门,大白首推Python语言进行编程,超级简单方便。
而在编程中,为了便于管理代码,推荐大家使用Pycharm软件。
考虑到很多人刚入门时,通常使用Window环境。
关于Pycharm的安装,可以参考大白的文章,《Window系统安装Pycharm软件详细教程》。
3.2 conda安装
(1)Conda
在工作中,常常会遇到,不同项目所依赖环境不一样的情况。
比如有的项目需要用python2.7,有的项目需要用python3.8等等。
为了不同的项目互不干扰,非常推荐大家使用Conda环境。
这里关于Conda环境的安装,可以参考大白的文章,《Window系统安装Conda详细教程》。
3.3 库文件安装
注意:以下如果哪个库文件已经安装过,可以跳过,安装下一个库文件。
(1)Opencv库
Opencv是计算机视觉领域,非常常用的图像算法库。
安装方式:进入Conda终端环境。(如不知如何进入,可以查看文章《Window系统安装Conda详细教程》)
输入代码:pip install opencv-python
安装参考:(如果没有安装过numpy,同时也会顺带下载numpy库,用于数值转换)
(2)dlib库
dlib库,包含很多算法模型功能,比如目标检测、关键定位、特征提取等。
安装方式:进入Conda终端环境
输入代码:conda install dlib(注意:这里不是pip install dlib,这种方式大白在window系统下安装,也遇到了很多问题)
安装参考:
4 代码文件编写
(1)代码获取方式
① 关注微信公众号:江大白
② 回复关键词:人脸融合,即可收到代码。
注意:此代码需要解压密码。
(2)部分代码详情
(3)文件详情
《人脸融合实战详细流程》:以图示的方式,描述人脸融合的详细流程。
main_image.py:读取图像,设置代码中的用来融合人脸和被融合图片的路径,进行人脸融合的特效。
main_video.py:读取视频,设置代码中的用来融合人脸和被融合视频的路径,进行人脸融合的特效。
main_68_points.py:读取图像,对图像中的人脸使用face_recognition进行关键点定位,大家可以看到人脸的68个点的分布。
通过找到待融合人脸的关键点,和被融合人脸的关键点,进行映射融合。
shape_predictor_68_face_landmarks.dat:人脸关键点定位模型,在人脸检测中,使用dlib内部自带的模型。而在关键点定位中,则使用dlib的68点定位模型,需要根据模型的路径,进行加载。
image_draw文件夹:为了便于大家查看每一步的效果,大白将算法中核心代码,每一步的效果图片都保存下来,大家查看代码的输出名称,和image_draw文件夹中的相应文件名,对比查看,会更加直观。
此外,人脸特效图像处理的相关知识点,大家可以参考平台上的视频《深入浅出人脸特效之Mask实战应用》。
目的:通过代码,学习对两张图片,进行人脸融合的特效。
5 代码运行测试
图像人脸融合:在Pycharm中,运行main_image.py文件即可,大家也可以在最下方的配置信息中,更换不同的,用来融合人脸的图片,以及被融合人脸的图片,进行特效尝试。
视频人脸融合:在Pycharm中,运行main_video.py文件即可,也可以修改用来融合人脸的图片,以及其他的视频路径,学习如何进行人脸融合的特效。