川普撞脸希Larry(基于 OpenCV 的脸面特征交流)

来源:http://www.sh-fengwen.com 作者:家常菜谱 人气:164 发布时间:2019-09-07
摘要:美国大选可谓是热火朝天,川普和希拉里也成大家茶余饭后的讨论对象了,作为程序员,其实除了讨论之外不妨做个有趣的应用玩玩,比如实验楼的项目:【川普撞脸希拉里(基于OpenC

美国大选可谓是热火朝天,川普和希拉里也成大家茶余饭后的讨论对象了,作为程序员,其实除了讨论之外不妨做个有趣的应用玩玩,比如实验楼的项目:【川普撞脸希拉里(基于 OpenCV 的面部特征交换)】就十分的有趣。

美高梅游戏平台网站,最近在实验楼看到这个课程,觉得很有意思,所以打算自己试一下,并且记录过程。用到系统是windows,python3.6版本。

项目通过 OpenCV 库来实现人脸面部特征交换,其实就是将第二张人脸的眼睛、鼻子和嘴巴通过程序自动裁剪适配并覆盖到第一张人脸上,并且为了使得修改后的照片看着更加自然,我们还需要调整皮肤颜色。

这个项目是将第二张图片中的鼻子,眼睛,嘴巴裁剪下来,粘到第一张图片的相应位置,并且调整肤色,使得图片更加自然。

电子游戏美高梅网址 1希拉里替换掉川普的脸

实验楼

我们先来考虑一下这个“换脸”程序需要完成的两个功能:

matthewearl.github.io/2015/07/28/switching-eds-with-python/

  • 支持从命令行获取指定图像路径;
  • 读取指定图像并进行处理保存;

这次实验要用到的库有:dlib,openCV,docopt

电子游戏美高梅网址,第一点要求通过借助 docopt 库可以非常快速便捷地构建命令行解析器。

首先要安装dlib库:

而第二点才是我们真正需要关注的问题。想象一下在现实生活中,给你两张人像照片,现在要求你将他们的脸部特征交换一下(该项目中的脸部特征主要指眉毛、眼睛、鼻子和嘴巴组合而成的部位),那么最简单的方法就是将第二个人脸部特征部分剪下拼接到第一个人的照片上。所以事实上,我们的程序实现也是在模仿这一个过程。但是程序并不知道哪些部分是眉毛、眼睛、鼻子或者嘴巴,在电脑看来这些图片仅仅是一连串二进制数,所以我们还需要利用 dlib 库中的机器学习算法来帮助我们检测并标记这些特征部位。

windows下安装dlib需要CMake, 需要一个C++编译器(g++, VS 都可以), 需要boost库,并且需要在环境变量path中添加这些东西。

所以我们的处理方法主要分为以下几个步骤:

www.cnblogs.com/syqlp/p/6137380.html

  • 借助 dlib 库检测出图像中的脸部特征;
  • 计算将第二张图像脸部特征对齐到一张图像脸部特征的变换矩阵;
  • 综合考虑两张照片的面部特征获得合适的面部特征掩码;
  • 根据第一张图像人脸的肤色修正第二张图像;
  • 通过面部特征掩码拼接这两张图像;
  • 保存图像;

上面是网上找的安装教程。

开发该项目依赖的库有:

首先去下载boost,下载下来,解压。

  • dlib
  • opencv
  • docopt

因为需要用到C++的编译器,所以在这里我们使用VS2013,这个我本来就有,所以安装就不在这里说了。首先看环境变量:我的电脑(右击)->属性->高级系统设置->环境变量,在系统环境变量里面找到下图这个:

因此我们需要在开发前就把这3个需要用到的库安装好。

电子游戏美高梅网址 2

dlib 是一个基于 C++ 编写的扩展库,包含有许多常用的机器学习算法以及图像处理函数。并且还支持大量的数值计算,如矩阵、大整数随机运算等。但是在编译安装 dlib 之前我们还需要先给系统装上各种依赖环境,步骤如下。

然后根据上面的路径,在tools文件夹里面找到开发人员命令提示符

参考:dlib 官网

电子游戏美高梅网址 3

安装 Python 的开发库 python3-devpython3-setuptools

打开之后,使用cd命令将位置切换到刚才解压的boost文件夹中,然后输入:bootstrap.bat

$ sudo apt-get update$ sudo apt-get install python3-dev python3-setuptools

运行,没有报错,然后根据提示输入: .b2       运行,大概10分钟,最后显示成功。

另外还要安装 Boost Python 开发文件,它为 Python 编程提供了简单易用的 C++ 函数库接口。

这时候如果安装plib的话,它会提示没有cmake,所以我们要安装cmake

$ sudo apt-get install libboost-python-dev

电子游戏美高梅网址 4

dlib 本来可以直接通过 pip3 指令进行编译安装,但是由于虚拟机的内存资源不足无法完成编译,因此实验楼会提供一份编译好的 dlib 动态库。可以通过 wget 命令进行下载,并将 dlib.so 复制到/usr/local/lib/python3.4/dist-packages/ 目录之下,这样就可以全局使用该模块了。

从官网上下载,然后安装,记住选择自动添加路径到环境变量。

$ wget http://labfile.oss.aliyuncs.com/courses/686/dlib.so$ sudo cp dlib.so /usr/local/lib/python3.4/dist-packages/

安装cmake之后,我们还要连接boost

OpenCV 是一款功能强大的跨平台计算机视觉开源库,可以用于解决人机交互、物体检测、人脸识别等领域的问题。库本身是采用 C++ 编写的,但是同时也对 Python, Java, C# 等语言提供接口支持。

电子游戏美高梅网址 5

实验楼考虑到 OpenCV 的安装过程相对较繁琐且耗时较长,因此实验环境已经配置好 OpenCV 3.1 的环境。

因为我的电脑是64位的,所以命令为:

本文由美高梅游戏平台网站发布于家常菜谱,转载请注明出处:川普撞脸希Larry(基于 OpenCV 的脸面特征交流)

关键词:

上一篇:电子游戏美高梅网址行走在路上的年轻人

下一篇:没有了

最火资讯