Fork me on GitHub

手把手教你用0行代码实现人脸检测

Dlib 是一个机器学习的 C++ 库,包含了许多机器学习常用的算法,其内容涵盖机器学习、图像处理、数值算法、数据压缩等。而且文档和例子都非常详细,本文将介绍如何在 macOS 环境下搭建运行环境,并通过两个例子演示 Dlib 的强大功能。

1 实现环境

  • macOS High Sierra

2 环境搭建

2.1 安装 dlib 的依赖

brew install openblas
brew install opencv

如果 brew 不可用,请先安装 Homebrew,安装命令如下:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装好 brew 后,顺便使用 brew 安装上 wget,后面会用到。

brew install wget

2.2 安装 XQuartz

The XQuartz project is an open-source effort to develop a version of the X.Org X Window System that runs on OS X. Together with supporting libraries and applications.

运行 dlib 需要 XQuartz,可以到 XQuartz 官网 下载安装。

2.3 安装 CMake

由于安装 dlib 时需要用到 cmake 命令,若该命令不可用,请到CMake 官网下载进行安装。

安装完成之后,使用如下命令让终端识别 cmake 命令:

sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

2.4 安装 dlib

使用以下 git 命令克隆到本地或到 GitHub 直接下载。

git clone https://github.com/davisking/dlib.git

macOS 默认已经自带了 git 工具,如果 git 命令不可用,可以到 git 官网 下载安装。

dlib 下载完成之后,便可以对源码进行编译,该过程比较慢可能需要几分钟。编译工具用到上面的 CMake,请确保安装正常,并注意编译命令中的空格。

cd dlib/examples
mkdir build
cd build
cmake ..
cmake --build . --config Release

3 Demo

3.1 摄像头人脸检测

cd dlib/examples/build/
# 下载 face landmark 模型
wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

# 解压文件
./webcam_face_pose_ex

如果出现以下错误,你可以使用下载工具到 这里 下载并解压到 build/ 目录下,大概60多MB。

You need dlib's default face landmarking model file to run this example.
You can get it from the following URL: 
   http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

Unable to open shape_predictor_68_face_landmarks.dat for reading.

重新运行 ./webcam_face_pose_ex,不出意外的话,会自动调起 XQuartz 窗口并打开 Mac 的摄像头进行人脸实时检测并标记。检测效果如下图所示:
检测效果

3.2 检测图片中的人脸

找一张包含人脸的图片并放在 dlib/examples/faces 目录中,使用 face_landmark_detection_ex 可以标记出图片中的人脸并截取出来。

./face_landmark_detection_ex shape_predictor_68_face_landmarks.dat ../faces/team.jpeg

注意文件路径和名称,检测效果如下图所示:
检测效果
人脸截图如下图所示:
人脸截图

4 参考资料

posted @ 2017-11-15 19:17  木狼君  阅读(987)  评论(0编辑  收藏  举报