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编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 Python
让python同时兼容python2和python3的8个技巧分享
Jul 11 Python
Python中请使用isinstance()判断变量类型
Aug 25 Python
Python的Flask框架中配置多个子域名的方法讲解
Jun 07 Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
Python编程给numpy矩阵添加一列方法示例
Dec 04 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
Apr 02 Python
python自动化UI工具发送QQ消息的实例
Aug 27 Python
使用pandas 将DataFrame转化成dict
Dec 10 Python
分享一个python的aes加密代码
Dec 22 Python
使用python求解迷宫问题的三种实现方法
Mar 17 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.MVC的模板标签系统(五)
2006/09/05 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
详解php协程知识点
2018/09/21 PHP
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
python 实现红包随机生成算法的简单实例
2017/01/04 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
介绍一下linux的文件权限
2012/02/15 面试题
历史学专业毕业生求职信
2013/09/27 职场文书
历史教育专业个人求职信
2013/12/13 职场文书
优秀员工表扬信
2014/01/17 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
公务员更新知识培训实施方案
2014/03/31 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
庆祝国庆节标语
2014/10/09 职场文书
邀请函范文
2015/02/02 职场文书
信用卡工作证明范本
2015/06/19 职场文书
家庭经济困难证明
2015/06/23 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书
学校远程教育工作总结
2015/08/11 职场文书
初中历史教学反思
2016/02/19 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
python字符串的一些常见实用操作
2022/04/06 Python