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中的pass语句使用方法讲解
May 14 Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 Python
python 判断是否为正小数和正整数的实例
Jul 23 Python
python 实现批量xls文件转csv文件的方法
Oct 23 Python
Python 运行 shell 获取输出结果的实例
Jan 07 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
Python中base64与xml取值结合问题
Dec 22 Python
如何在 Django 模板中输出 "{{"
Jan 24 Python
pandas和spark dataframe互相转换实例详解
Feb 18 Python
python tkinter之 复选、文本、下拉的实现
Mar 04 Python
Pytorch 如何实现LSTM时间序列预测
May 17 Python
教你怎么用Python操作MySql数据库
May 31 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获取网站域名和地址的代码
2008/08/17 PHP
php多文件上传功能实现原理及代码
2013/04/18 PHP
网页中的图片的处理方法与代码
2009/11/26 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
2014/08/19 Javascript
js中style.display=""无效的解决方法
2014/10/30 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
js图片上传的封装代码
2017/08/01 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
2018/06/04 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
python回调函数用法实例分析
2015/05/09 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
Python中的id()函数指的什么
2017/10/17 Python
Python reduce()函数的用法小结
2017/11/15 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
纯python进行矩阵的相乘运算的方法示例
2019/07/17 Python
pandas针对excel处理的实现
2021/01/15 Python
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
五年级科学教学反思
2014/02/05 职场文书
护理不良事件检讨书
2014/02/06 职场文书
网络书店创业计划书
2014/02/07 职场文书
项目经理任命书
2014/06/04 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书