今天试着用了一下SDM的C++11实现,本来以为挺简单的,可是配置环境还是花了一些时间。为了给自己留下一些记忆,特把配置过程记录下来。
这个实现是C++11的版本,是一个通用版本,里面包含了很多的功能,比如函数的最优化,人脸对齐,头部姿势估计,而且代码使用了现代C++的编写风格,含有了boost的一些语法,非常新颖,适合学习。
下面列出具体的配置:
依赖的工具
依赖的工具:Opencv(>=2.4.3以上),Eigen (>=3.2),boost(1.58.0),vs2013,cmake(>=2.8.11)
安装工具:
1.Opencv安装 :http://blog.csdn.net/poem_qianmo/article/details/19809337
2. Eigen:http://blog.csdn.net/abcjennifer/article/details/7781936,
3. boost: 下载预编译版https://sourceforge.net/projects/boost/files/boost-binaries/1.58.0/
下载boost_1_58_0-msvc-12.0-64.exe,然后打开,编译下去。(需要注意的是我下载后总是立即被删除了,后来我关闭了360,文件就留下来)使用时,将包含文件、库文件加到你的项目目录中,同时在path中加上D:\local\boost_1_58_0\lib64-msvc-12.0。
同时在环境变量增加如下变量:
BOOST_ROOT: D:\local\boost_1_58_0
(不加的话会出错)
也可参考这篇文章,不同的是这篇文章下载的是源码,但是使用方法一样
需要安装Doxygen。(可选)
可参考:
http://blog.csdn.net/xiamentingtao/article/details/49722007
最后安装cmake,我使用的是2.8.12,但里面没有包含boost1.58.0,所以需要加上,方法是打开cmake目录下的FindBoost.cmake文件,里面添加1.58.0,具体如下示意图:
cmake
在superviseddescent-master下设立build文件夹,然后
打开cmake gui,如下配置:
cmake先是Configure,提示选择vs2013 win64,然后Generate。Generate一次后可以接着点击剩下的几个选项,他们是生成doxygen说明文件的。再次Generate.
注意:由于我这里使用的boost是64位的,所以cmake的时候选择vs2013 win64,否则后面再vs2013中编译失败,出现x86与64位冲突的错误。
测试
我们以人脸对齐为例:
将源代码改变如下:
即可运行。