Windows 10 下 face_recognition 与 dlib 手动编译安装指南
本文详细讲解如何在 Windows 10 环境下安装 face_recognition 库。由于该库依赖 dlib,而 dlib 在 Windows 上需手动编译 Boost 库,教程涵盖了从 Visual Studio 2015 配置、Boost 库源码编译到 dlib 及 face_recognition 安装的全过程,并提供测试代码以验证安装结果。
Windows 下 face_recognition 安装概述
face_recognition 项目,特别是其核心依赖 dlib,在 Linux 系统上的适配性和性能表现更为优异。经实际测试,在同等硬件规格下,Windows 10 上的编译运行效率约为 Ubuntu 系统的四分之一。除性能差异外,两者在其他功能层面未见显著区别。
环境依赖准备
本教程旨在指导用户将这些工具成功安装至 Windows 10 系统,较新的 Windows 版本也可能适用此流程。
- 需预先安装包含 C/C++ 编译器的 Microsoft Visual Studio 2015。
- 准备 Boost 库,版本需为 V1.63 或更高。
- 确保系统中已安装 Python 3。
- 安装 CMake,并在 Windows 安装过程中将其路径添加至系统环境变量。
下载并安装 Scipy 和 numpy+mkl(必须为 mkl 版本)。请根据当前 Python 版本选择对应的安装包进行下载,链接见原文参考。
Boost 库编译配置
根据当前 MSVC 版本下载对应的 Boost 库(源码或二进制 release 版本),下载链接见原文参考。
若下载的是二进制版本,可直接跳转至第 4 步;否则,需按照以下步骤手动编译 Boost 库:
进入目录 C:\local\boost_1_XX_X(XX_X 代表具体 Boost 版本号),解压 Boost 源文件。
根据以下格式新建系统环境变量:
变量名:VS140COMNTOOLS
变量值:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\(此处应替换为实际安装 MSVC 的路径)。
打开 Visual Studio 2015 自带的开发人员命令提示工具(如“VS2015 开发人员命令提示”),进入 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 与 face_recognition 安装
获取最新版本的 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 或 python setup.py install –yes
USE_AVX_INSTRUCTIONS –yes DLIB_USE_CUDA
此时,你可以在 Python 脚本中使用 import dlib 导入该模块。
可通过 pip show dlib 命令查看当前 dlib 的版本信息。
最后,使用 pip install face_recognition 命令安装 face_recognition 库。
安装完成,即可开始使用!
dlib 亦可通过 conda 安装,命令如下:
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,即可看到人脸识别效果。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









