Python第三方库face_recognition在windows上的安装过程


Posted in Python onMay 03, 2019

实际上face_recognition这个项目尤其是dlib更适用于Linux系统。经过我的测试,在性能方面,编译同样规格的项目,这个工具在Windows 10 上大约是Ubuntu上的四分之一。但是在这两者之间我没有看到在其他方面有什么差别。

我使用本教程将这些工具安装到Windows10上,更近的版本也可能正常运行。

  • 安装了C/C++ 编译器的Microsoft Visual Studio 2015
  • Boost 库,V1.63或者更近的版本
  • Python3
  • CMake,Windows安装时要将其路径加入环境变量

下载和安装 Scipy 和 numpy+mkl (必须是 mkl 版本),下载链接,注意要基于你的Python版本选择合适的版本下载。

根据你当前的MSVC版本下载对应的 Boost 库(库的源代码或者是二进制release版本),下载链接。

如果下载的是二进制版本则调到第4步,否则按照如下的过程编译 Boost 库:

进入C:\local\boost_1_XX_X(X 代表你当前的Boost版本)提取 Boost 源文件

根据以下格式新建系统变量:

Name: VS140COMNTOOLS

Value: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\ (此处为任何你安装MSVC的路径)

打开Visual Studio 2015自带的开发人员工具类似于“VS2015 开发人员命令提示”,进入 Boost 目录编译 Boost 库:

C:\boost_1_XX_X>bootstrap 这一步执行完之后会自动生成b2.exe文件

C:\boost_1_XX_X>b2 -a ?with-python address-model=64 toolset=msvc runtime-link=static 这一步编译需要较长的时间,请耐心等待

4.Boost 库成功编译后,编译生成的文件位于 stage 这个文件夹中。

如果你已经编译了 Boost 请跳过这一步。如果你已经下载了二进制的release版本,则进入Boost目录 C:\local\boost_1_XX_X

获取最新版本的 dlib 包,下载链接

进入 dlib 的目录,打开 cmd ,运行如下的命令编译 dlib

将以下两个参数加入环境变量

BOOST_ROOT=C:\local\boost_X_XX_X
BOOST_LIBRARYDIR=C:\local\boost_X_XX_X\stage\lib

然后再运行如下代码:

python setup.py install ?yes USE_AVX_INSTRUCTIONS or python setup.py install ?yes

USE_AVX_INSTRUCTIONS ?yes DLIB_USE_CUDA

现在你可以使用 import dlib进入Python脚本

你可以使用 pip show dlib查看当前 dlib 的版本

现在你可以使用 pip install face_recognition安装face_recognition

Enjoy!

dlib安装也可以使用:

conda install -c menpo dlib=18.18
其中18.18为dlib的版本号

如果安装成功,运行以下代码就可以正常运行了。

# -*- coding: utf-8 -*-
"""
Created on Sat Sep 23 21:15:42 2017

@author: Romji
"""

import face_recognition
import cv2
import sys
def face_reg(file):
  # 读取图片并识别人脸
  img = face_recognition.load_image_file(file)
  face_locations = face_recognition.face_locations(img)
  print(face_locations)

  # 调用opencv函数显示图片
  img = cv2.imread(file)
  cv2.imshow("原图", img)

  # 遍历每个人脸,并标注
  faceNum = len(face_locations)
  for i in range(0, faceNum):
    top = face_locations[i][0]
    right = face_locations[i][1]
    bottom = face_locations[i][2]
    left = face_locations[i][3]

    start = (left, top)
    end = (right, bottom)

    color = (55,255,155)
    thickness = 3
    cv2.rectangle(img, start, end, color, thickness)

  # 显示识别结果
  cv2.imshow("识别", img)

  cv2.waitKey(0)
  cv2.destroyAllWindows()

if __name__ == '__main__':
  filename = sys.argv[1]
  face_reg(filename)

将程序保存为test.py,在程序根目录下保存一张图片进行测试(假设保存的为1.jpg)
进入目录输入python test.py 1.jpg,即可看到效果。

Python 相关文章推荐
利用Python暴力破解zip文件口令的方法详解
Dec 21 Python
Python设计模式之代理模式简单示例
Jan 09 Python
python获取酷狗音乐top500的下载地址 MP3格式
Apr 17 Python
Python socket套接字实现C/S模式远程命令执行功能案例
Jul 06 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 Python
Django logging配置及使用详解
Jul 23 Python
pytorch 实现打印模型的参数值
Dec 30 Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 Python
解决jupyter运行pyqt代码内核重启的问题
Apr 16 Python
python3中calendar返回某一时间点实例讲解
Nov 18 Python
忆童年!用Python实现愤怒的小鸟游戏
Jun 07 Python
Python借助with语句实现代码段只执行有限次
Mar 23 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 #Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
May 03 #Python
利用python将图片版PDF转文字版PDF
May 03 #Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 #Python
Python Flask框架模板操作实例分析
May 03 #Python
Python Flask框架扩展操作示例
May 03 #Python
Python安装Flask环境及简单应用示例
May 03 #Python
You might like
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
jQuery 使用手册(六)
2009/09/23 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
js表头排序实现方法
2015/01/16 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
jQuery实现日历效果
2020/09/11 jQuery
vant 中van-list的用法说明
2020/11/11 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
详解Python中for循环的使用
2015/04/14 Python
python中requests使用代理proxies方法介绍
2017/10/25 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
python中怎么表示空值
2020/06/19 Python
CSS实现的一闪而过的图片闪光效果
2014/04/23 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
英文导游欢迎词
2014/01/11 职场文书
施工协议书范本
2014/04/22 职场文书
学校班班通实施方案
2014/06/11 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
2016父亲节感恩话语
2015/12/09 职场文书
springboot+VUE实现登录注册
2021/05/27 Vue.js
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript