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 判断一个进程是否存在
Apr 09 Python
跟老齐学Python之眼花缭乱的运算符
Sep 14 Python
Python3 处理JSON的实例详解
Oct 29 Python
python 重命名轴索引的方法
Nov 10 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
阿里云ECS服务器部署django的方法
Aug 29 Python
Python二元赋值实用技巧解析
Oct 25 Python
python实现的批量分析xml标签中各个类别个数功能示例
Dec 30 Python
python如何代码集体右移
Jul 20 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 Python
pandas将list数据拆分成行或列的实现
Dec 13 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
PHP学习之PHP变量
2006/10/09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
php连接mysql数据库
2017/03/21 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
JQuery UI皮肤定制
2009/07/27 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
JS时间特效最常用的三款
2015/08/19 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
python实现感知器算法详解
2017/12/19 Python
tensorflow没有output结点,存储成pb文件的例子
2020/01/04 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
美国时尚女装在线:Missguided
2016/12/03 全球购物
法学个人求职信范文
2014/01/27 职场文书
十八届三中全会感言
2014/03/10 职场文书
推荐信格式要求
2014/05/09 职场文书
收款委托书范本
2014/09/11 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
Python 用户输入和while循环的操作
2021/05/23 Python
Python标准库之typing的用法(类型标注)
2021/06/02 Python
Django+Celery实现定时任务的示例
2021/06/23 Python