Windows 10 下 face_recognition 与 dlib 手动编译安装指南

落日邮差
落日邮差
发布时间:2026-10-13 | 3人浏览过
原创

本文详细讲解如何在 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,即可看到人脸识别效果。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表