接下来我将会介绍如何通过一段简短的 Python 脚本(200行左右)将一张图片中面部特征自动替换为另外一张图片中的面部特征。
具体过程分为四个步骤
检测面部标志;
旋转、缩放和平移图 2 以适应图 1;
调整图 2 的白平衡以匹配图 1;
将图 2 的特征融合到图 1 中;
实验环境
MacOS 10.14.3
Python 3.7
PyCharm
用到的库有:
numpy
dlib
opencv-python
工具说明
numpy大家应该都很熟悉了,这里我简单介绍下dlib和opencv。
dlib官网介绍其为:A toolkit for making real world machine learning and data analysis applications,简单来说他就是一个开源的机器学习库,包含了很多机器学习的算法。同时对外提供了C++和Python的接口。使用dlib可以大大简化开发,比如人脸识别,特征点检测之类的工作都可以很轻松实现。同时也有很多基于dlib开发的应用和开源库,比如face_recogintion库(据说识别率高达93%,有兴趣的可以查阅相关资料)。python下的安装也很简单,执行 pip install dlib即可。
OpenCV:Intel® 开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。是计算机视觉领域非常重要的一个开源库。官网地址:https://opencv.org/