人脸应用类-超级赛亚人特效
《AI未来星球》陪伴成长的人工智能社群,价值过万的各种内部资源及活动,限时特惠中,点击查看。
求职跳槽福利:为了便于大家求职、跳槽的准备,大白花了一年多时间准备了《人工智能算法岗江湖武林秘籍》,限时开放下载,点击查看下载。
本文目录
1 项目简介&应用场景
2 原理简述
3 项目实践
3.1 软件安装
3.2 conda安装
3.3 库文件安装
3.4 代码文件编写
3.5 代码运行测试
1 项目简介&学习目的&应用场景
作者:江大白
项目简介:在短视频APP中,我们经常使用各种人脸特效,比如更换背景、头上增加头饰、眼睛放大、人脸放大等特效。
而在本项目中,使用非常酷炫的超级赛亚人特效,和大家一起了解其背后的原理。
因为本项目涉及到一些人脸识别相关的知识点,人脸识别入门视频,可以参考平台上的《深入浅出人脸识别基础及项目应用》。
而关于人脸特效入门的视频,可以参考平台上的《深入浅出人脸特效之Mask实战应用》。
学习目的:学习如何对图像Mask处理?学习如何添加人脸特效?
可应用场景:直播行业、短视频人脸特效等
本应用参考:https://mp.weixin.qq.com/s/OhZ2ZegT42kwAurHh4HV5w
2 原理简述
超级赛亚人-人脸特效:在人脸特效中,通常需要先对图片中的人脸进行检测,再用特征点定位模型,对人脸的68个关键点进行定位。
而需要添加的超级赛亚人头发,根据人脸的大小进行调整,进而将头发绘制在头部区域即可。
此外,在头发的周围,还增加了电弧的效果。每次显示,随机选择一个电弧,从而实现电弧闪动的效果。
在本项目中,人脸检测采用dlib目标检测的方式。当然,在本地应用时,我们也可以训练Yolo、Centernet等算法,构建人脸检测器。
注意:关于目标检测入门的视频,可以查看平台上《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系统下安装,也遇到了很多问题)
安装参考:
(3)PIL库
PIL库也是非常常用的图像处理库,在本项目中,主要用来对车辆的品牌汇总中文名称。
安装方式:进入Conda终端环境
输入代码:pip install pillow
安装参考:
4 代码文件编写
(1)代码获取方式
① 关注微信公众号:江大白
② 回复关键词:超级赛亚人,即可收到代码。
(2)部分代码详情
(3)文件详情
main_image.py:读取图像,对图像中的人脸,添加超级赛亚人头发的特效。
main_video.py:读取视频,对视频中的人脸,添加超级赛亚人头发的特效。
main_68_points.py:读取图像,对图像中的人脸进行检测,再用关键点定位,大家可以看到人脸的68个点在哪里?也知道代码中用到的0、16两个点的位置。
shape_predictor_68_face_landmarks.dat:人脸关键点定位模型,在人脸检测中,使用dlib内部自带的模型。而在关键点定位中,则使用dlib的68点定位模型,需要根据模型的路径,进行加载。
lightning文件夹:12张电弧图片,头发的三个部位left、top、right,每个部位有4种电弧的图片,显示时,随机选择一个,从而实现闪动的效果。
目的:通过代码,学习使用dlib人脸检测,关键点定位,如何添加超级赛亚人头发的特效。
5 代码运行测试
图像超级赛亚人:在Pycharm中,运行main_image.py文件即可,大家也可以在最下方的配置信息中,更换不同的图片,进行尝试。
视频超级赛亚人:在Pycharm中,运行main_video.py文件即可,也可以修改不同的视频路径,或者调节跳帧数,学习如何添加超级赛亚人头发的特效。