Python第三方库face_recognition在windows上的安装过程
实际上face_recognition这个项目尤其是dlib更适用于Linux系统。经过我的测试,在性能方面,编译同样规格的项目,这个工具在Windows10上大约是Ubuntu上的四分之一。但是在这两者之间我没有看到在其他方面有什么差别。
我使用本教程将这些工具安装到Windows10上,更近的版本也可能正常运行。
- 安装了C/C++编译器的MicrosoftVisualStudio2015
- 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:\ProgramFiles(x86)\MicrosoftVisualStudio14.0\Common7\Tools\(此处为任何你安装MSVC的路径)
打开VisualStudio2015自带的开发人员工具类似于“VS2015开发人员命令提示”,进入Boost目录编译Boost库:
C:\boost_1_XX_X>bootstrap这一步执行完之后会自动生成b2.exe文件
C:\boost_1_XX_X>b2-a–with-pythonaddress-model=64toolset=msvcruntime-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
然后再运行如下代码:
pythonsetup.pyinstall–yesUSE_AVX_INSTRUCTIONSorpythonsetup.pyinstall–yes
USE_AVX_INSTRUCTIONS–yesDLIB_USE_CUDA
现在你可以使用importdlib进入Python脚本
你可以使用pipshowdlib查看当前dlib的版本
现在你可以使用pipinstallface_recognition安装face_recognition
Enjoy!
dlib安装也可以使用:
condainstall-cmenpodlib=18.18
其中18.18为dlib的版本号
如果安装成功,运行以下代码就可以正常运行了。
#-*-coding:utf-8-*- """ CreatedonSatSep2321:15:422017 @author:Romji """ importface_recognition importcv2 importsys defface_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) foriinrange(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)
进入目录输入pythontest.py1.jpg,即可看到效果。