Python第三方库face_recognition在windows上的安装过程
作者:WDC 发布时间:2023-07-27 02:51:29
实际上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,即可看到效果。
来源:https://blog.csdn.net/wyc12306/article/details/79286361
猜你喜欢
- 什么是分页查询分页查询就是把query到的结果集按页显示。比如一个结果集有1W行,每页按100条数据库。而你获取了第2页的结果集。为什么要分
- 一、urllib库是什么?urllib库用于操作网页 URL,并对网页的内容进行抓取处理urllib包 包含以下几个模块:urllib.re
- 本文实例讲述了PHP实现根据数组某个键值大小进行排序的方法。分享给大家供大家参考,具体如下:问题:针对给定数组的某个键的键值进行排序解决方法
- 在计算机信息技术中,少有象类似 XML 那样的技术,她让人们产生范围很大的联想,而这些联想及其应用又可能相距甚远。她也更多引起人们对 XML
- 本文实例为大家分享了js实现放大镜效果的具体代码,供大家参考,具体内容如下该放大区域用背景图片放大<!DOCTYPE html>
- Adodb.Stream是ADO的Stream对象,提供存取二进制数据或者文本流,从而实现对流的读、写和管理等操作. 组件:&qu
- QQ影音至9月发布之后一直口碑很好,视觉界面和交互设计也颇受好评,这是设计师们努力的结果,也是众多用户反馈的功劳。我们希望可以提供更多价值回
- 1、jsp前端<%-- Created by IntelliJ IDEA. User: Lenovo Date: 2020/6/19
- 在有些情况下,利用try…except来捕捉异常可以起到代替if…else的作用。比如在判断一个链表是否存在环的leetcode题目中,初始
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 2 - Selectors如果你还没有准备好,请先
- <div> <a 
- 为了防止某些别有用心的人从外部访问数据库,盗取数据库中的用户姓名、密码、信用卡号等其他重要信息,在我们创建数据库驱动的解决方案时,我们首先需
- XmlDocume
- 不知道算不算DW4的大BUG. DW4实际的运行如下: 读注册表中HKEY_CURRENT_USER/
- 全文索引在 MySQL 中是一个 FULLTEXT 类型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE
- SQL*DBA命令的安全性: 如果您没有SQL*PLUS应用程序,您也可以使用SQL*DBA作SQL查权限相关的命令只能分配给Oracle软
- 该域名查询系统写的很简单,只是实现了功能使用XmlHttp来获取远程查询结果,实际上就是小偷程序!相关推荐:域名注册情况查询/
- 本文实例讲述了php+mysql开发的最简单在线题库。分享给大家供大家参考,具体如下:题库,对于教育机构,学校,在线教育,是很有必要的,网上
- 先上个效果图: Sample6_1.php 中创建Form: //显示上传状态和图片 <div id="showi
- asp中fso怎样判断一个盘上是否有文件,实例代码,需要的朋友可以试试:<% dim objfolder dim