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批量提取word内信息
Aug 09 Python
Python SQLite3数据库日期与时间常见函数用法分析
Aug 14 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
python实现的爬取电影下载链接功能示例
Aug 26 Python
django使用xadmin的全局配置详解
Nov 15 Python
Python matplotlib实时画图案例
Apr 23 Python
python报错: 'list' object has no attribute 'shape'的解决
Jul 15 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
Nov 27 Python
Python中22个万用公式的小结
Jul 21 Python
Python使用OpenCV实现虚拟缩放效果
Feb 28 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
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
使用URL传输SESSION信息
2015/07/14 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
Django接收自定义http header过程详解
2019/08/23 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
Marks & Spencer爱尔兰:英国马莎百货
2016/04/20 全球购物
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
市三好学生主要事迹
2014/01/28 职场文书
员工培训邀请函
2014/02/02 职场文书
小学生暑假感言
2014/02/06 职场文书
《诺贝尔》教学反思
2014/02/17 职场文书
鉴定评语大全
2014/05/05 职场文书
乳制品整治工作方案
2014/05/29 职场文书
文明工地标语
2014/06/16 职场文书
高中同学会活动方案
2014/08/14 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
2019财务毕业实习报告
2019/06/27 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电