OSX 下安装 face_recognition

face_recognition 是一个热门的人脸识别库,常年占据 Github Trending Python 子类的 Top10。

在官方文档中,介绍安装 face_recognition 步骤非常简单,只需要执行 pip install face_recognition 就可以了,实际在安装过程中 face_recognition 有一些非 Python 依赖,需要单独安装,本文就对内容进行一个简单介绍,权作记录,方便大家手动安装时提前规避。文章基于 OSX 10.12.6+pyenv+python3.6.2 介绍。

问题在哪里?

face_recognition 的依赖大部分都比较好安装,只有一个库例外,那就是 dlib 这个依赖。这个依赖需要安装 boostboost-python 两个非 Python 依赖。

安装 Boost 和 boost-python

这两个库可以通过 Homebrew 快速安装,使用如下命令进行安装:

1
2
brew install boost
brew install boost-python --with-python3

需要注意的是,如果是 Python3 使用,需要额外参数,使用源码编译安装。如果使用 Python2 可以使用 Homebrew 的预编译包。

确认 Python

dlib 要求 Python 编译时使用 --enable-shared 参数编译,默认情况下,pyenv 未启用该参数,因此编译需要使用下面参数进行 Python 重新编译

1
PYTHON_CONFIGURE_OPTS="--with-dtrace --enable-shared" pyenv install 3.6.2

前面一个参数是我一直编译 Python 3.6 使用的参数,方便使用 DTrace 监控 Python 的执行。具体的作用可以参考我之前的文章

这样还没有完,因为 dlib 的代码问题,对默认 Python3.6 的 library 识别有问题,因此需要将 Python 安装目录下的 lib/libpython3.6m.dylib 复制为 lib/libpython3.6.dylib。一般 pyenv 目录为 ~/.pyenv/versions/3.6.2/lib/

安装 face_recognition

接下来就可以使用 pip 正常安装 face_recognition 了,其中 dlib 编译还是需要消耗一些时间的,需要耐心等待。