实际上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的版本号
如果安装成功,运行以下代码就可以正常运行了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# -*- 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