windows环境下安装配置dlib

最近一个project要用到人脸检测(face detection),发现一个叫dlib的toolkit很好用,detect的灵敏度和marker点的准确度都比较高。

dlib在Ubuntu上安装编译比较方便,但因为我这个project的前半部分都在windows环境上,所以想要在windows上配置。

中途遇到了挺多问题,做个记录。

 

1、在GitHub上可以下载dlib(https://github.com/davisking/dlib);或者去dlib的主页上也可以下载(http://dlib.net/)。

2、dlib是一个C++ toolkit,包含很多machine learning的算法,我这里要用到的是里面python_examples下的face_landmark_detection.py。

3、首先要安装Boost,这是一个C++库(http://www.boost.org/users/history/),我下载的是Version 1.59.0。我电脑上已经安装了VS 2013,因此它会用VS 2013进行编译,在C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7目录下可以找到VS2013开发人员命令提示,可以在这里编Boost。

但是双击打开后,却提示找不到安装位置:

我的VS2013安装的是64位的,安装位置在C:\Program Files\Microsoft Visual Studio 12.0,但是系统变量中的VS120COMNTOOLS值是:

而64位的Common7目录下并没有Tools的文件夹

所以即使将系统变量中的VS120COMNTOOLS的值改为Program Files路径下,仍然找不到Tools,所以我直接把Program Files (x86)目录下的Common 7中的Tools文件夹拷到了Program Files目录下的Common 7中,然后再打开VS2013开发人员命令提示就不会报错了:

然后在这个cmd界面中进入之前下载的Boost目录,执行bootstrap.bat,没有报错:

按照它的提示,运行 .\b2 进行编译,这一步要运行10分钟左右,没有报错,编译完成。

 

4、安装Python:我下载的是32位的Python 2.7.10(试过64位的Python,后面的步骤会出问题),安装完之后记得将安装路径加入到Path中:

新开一个命令行,在cmd中输入python,出现以下输出说明安装成功了。

 

5、按照dlib官网上的步骤,编译dlib的python接口:

 
在命令行中进入dlib目录,然后运行python setup.py install
 
发现错误,没有安装cmake。去官网上下载一个编译好的二进制cmake:
 
注意在安装的时候勾选“自动添加路径到环境变量”,或者安装完之后自己手动添加以下路径到path:
 
这样再新开一个cmd(原来的cmd不会及时更新设置,所以要重新打开一个cmd),输入:
 
原先cmake的错误就没有了,但是有新的错误:找不到Boost。解决办法可以按照error提示的那样操作:
 
首先,添加系统变量 BOOST_ROOT = D:\boost_1_59_0 和 BOOST_LIBRARYDIR = D:\boost_1_59_0\stage\lib。
然后打开cmd,进入到boost目录,输入以下指令编译python library(我的python是32位,因此address-model=32):
 
接下来,新开一个cmd,然后进入dlib,运行python setup.py install,就不会报错了,成功编译:
 

接下来要运行dlib/python_examples里面的face_landmark_detection.py.

 

1、face_landmark_detection.py需要两个参数,“模型路径”和“图片目录路径”。

2、直接在cmd中运行的话,会出现报错:

缺少一个scikit-image的包,可以直接安装一个pip来下载。

 

3、安装pip:网上有get-pip.py的代码(http://download.csdn.net/detail/u012572945/8249275),直接用Python运行它就可以安装成功。

然后要记得把安装路径加到环境变量path中:

接下来新打开一个cmd,然后输入pip,出现如下结果说明配置成功:

 

4、然后可以直接用pip来下载scikit-image:

会有报错说缺少另一个包:numpy。

 

5、继续用pip安装:pip install numpy,然后又会提示缺少一个工具,并且提供了下载地址:

下载下来之后,按提示安装成功,再运行pip install numpy,这一步要等待一段时间,会出现如下输出:

说明安装成功。

 

6、继续pip install scikit-image:

又缺少一个scipy的python库。可以去下载一个scipy-0.10.0-win32-superpack-python2.7.exe(http://download.csdn.net/download/shiniantianlang/8007045)。

 

7、安装的时候会提示找不到python路径,但是环境变量中明明已经加了python路径,看到网上资料说可以先运行一个注册程序register.py(http://www.ithao123.cn/content-8406933.html):

然后再安装scipy就不会报错了。

 

8、这样就可以成功运行face_landmark_detection.py了,它会标记出68个marker点:

图片来自:http://tupian.baike.com/a0_68_18_16300001051406137869184233456_jpg.html?prd=zhengwenye_left_futu_miaoshu

 
 
转自:http://blog.csdn.net/tina_zhou3/article/details/50595636
posted @ 2016-12-06 14:06  missAnnie  阅读(2379)  评论(0编辑  收藏  举报