Win下 C++版SDM(Supervised Descent Method)算法实现
来源:互联网 发布:西数移动硬盘在无网络 编辑:程序博客网 时间:2024/05/22 17:36
源码下载地址
前期相关安装配置工作:
OpenCV version >= 2.4.3 (我使用的版本为2.4.9)官网下载地址
下载后解压至相关路径(我的解压路径为:F:/opencv,添加环境变量(右键我的电脑->属性->高级系统设置->环境变量)
在系统变量Path
中添加F:\opencv\build\x64\vc12\bin;
新建变量OpenCV
,值为:F:\opencv\build;
新建环境变量OpenCV_include
,值为:F:\opencv\build\include;F:\opencv\build\include\open;F:\opencv\build\include\opencv2;
打开VS2013,新建win32控制台项目进行VS中opencv的配置。
右键选择项目属性,在VC++目录包含目录中添加 F:\opencv\build\include;F:\opencv\build\include\open;F:\opencv\build\include\opencv2;
在VC++目录库目录中添加F:\opencv\build\x86\vc12\lib;
链接器->输入->附加依赖项,添加所需lib文件即完成配置。
Eigen version >= 3.2(我使用的版本为3.2.9)官网下载地址
我的解压路径为:F:\Eigen\Eigen3.2.9
Boost version >=1.54.0 (我使用的版本为1.61.0) 未编译版本、已编译版本
我的解压路径为:F:\Boost\boost_1_61_0
新建环境变量BOOST_LIBRARYDIR
,值为:F:\Boost\boost_1_61_0\lib64-msvc-12.0
环境变量BOOST_ROOT
,值为:F:\Boost\boost_1_61_0
注:已编译版本下载时注意编译器版本一定要相同(如:boost_1_61_0-msvc-12.0-64.exe,则为64位系统,VS2013编译而成)如果选择未编译版则需要自己进行编译。编译过程如下:
- Win+R后弹出运行框
- 输入cmd后回车进入命令行窗口
- 使用cd命令进入boost解压路径
- 在命令行运行bootstrap.bat文件,操作为:输入bootstrap.bat后回车,原路径自动生成bjam.exe文件
- 运行bjam.exe文件(系统会自动匹配已有编译器)
- 编译完成
Doxygen 官网下载地址
CMake 官网下载地址
选择下载windows版本.msi文件。下载完成运行,选择安装目录,随后在目录中进入bin目录里双击cmake-gui.exe即可进入CMake的gui界面。
具体cmake过程如下:
在源码解压路径中添加build文件夹(用以放置cmake后的项目文件,也可选择其他路径)
将源码完整路径添加至gui界面的where is source code部分,将build文件夹完整路径添加至where to build the binaries部分。如图:
单击Configure,在弹窗中选择编译器后回车。
找不到opencv相关文件,出现如图所示错误界面:
在
OpenCV_DIR
中添加相关路径,我的为:F:/opencv/build
点击Configure后会出现新的错误,提示找不到Eigen相关文件,在
EIGEN3_INCLUDE_DIR
中添加路径F:\Eigen\Eigen3.2.9
即可成功configure,截图如下:勾选
BUILD_DOCUMENTATION
与BUILD_TESTS
点击Generate,完成首次Generate,出现下图界面:可将首次Generate后出现的未勾选框勾选后进行第二次Generate,截图如下:
至此完成前期工作。
注:boost库编译生成的文件命名格式为boost_xxx-vc1x0-mt-1_61.lib/dll或是boost_xxx-vc1x0-mt-gd-1_61.lib/dll,但是cmake中仅识别命名格式为boost_xxx.lib/dll格式的文件(我不知道怎么修改这个识别问题),因此我将该项目中所需要的lib文件进行了名称的更改:
boost_xxx-vc1x0-mt-gd-1_61.lib 改为 boost_xxx.lib。
测试程序
测试landmark_detection项目:
将opencv路径中的haarcascade_frontalface_alt2.xml文件移至相关位置。
将landmark_detection.cpp中与路径有关的代码进行更改:
(380行)
("data,d", po::value<fs::path>(&trainingset)->required()->default_value("D:\\superviseddescent-master\\examples\\data\\ibug_lfpw_trainset"), "path to ibug LFPW example images and landmarks") ("mean,m", po::value<fs::path>(&meanfile)->required()->default_value("D:\\superviseddescent-master\\examples\\data\\mean_ibug_lfpw_68.txt"), "pre-calculated mean from ibug LFPW") ("facedetector,f", po::value<fs::path>(&facedetector)->required()->default_value("D:\\superviseddescent-master\\examples\\haarcascade_frontalface_alt2.xml"), "full path to OpenCV's face detector (haarcascade_frontalface_alt2.xml)") ;
即可运行。
运行结果比较
运行结果图在D:\superviseddescent-master\build\examples
目录下生成。
原图:
结果图:
参考博客
本人初次接触人脸对齐方面的项目,十分感谢博主那年聪聪耐心解答我的疑问。
- Win下 C++版SDM(Supervised Descent Method)算法实现
- SDM(Supervised Descent Method)算法的简单实现
- SDM(supervised descent method)算法
- SDM(Supervised Descent Method)用于人脸对齐的C++实现方法
- Supervised Descent Method(人脸对齐之SDM论文解析)
- Supervised Descent Method and its Applications to Face Alignment(SDM)
- 人脸对齐之SDM(Supervised Descent Method)
- Supervised Descent Method 简单实现
- Supervised Descent Method 简单实现
- Global Supervised Descent Method
- Supervised Descent Method Face Alignment 代码下载 和 算法研究 之一
- Supervised Descent Method and its Applications to Face Alignment
- Supervised Descent Method and its Applications to Face Alignment
- Supervised Descent Method and its Applications to Face Alignment
- 【人脸对齐】Supervised Descent Method and its Applications to Face Alignment
- 《机器学习实战》读书笔记—k近邻算法c语言实现(win下)
- <优化算法>下降方法descent method
- Optimization Method -- Gradient Descent with Momentum Gradient Descent (转)
- 五年Android开发,让我“刻骨铭心”的那些坑
- 凸多边形三角剖分问题
- UVA11520 Fill the Square 枚举
- 状态模式
- CC2640之OAD固件升级(内置Flash)手动配置ImageB
- Win下 C++版SDM(Supervised Descent Method)算法实现
- 编程相关的书籍(近期阅读)
- Intent的7种属性
- 中大东校园的H3C如何在路由器上使用
- Intel汇编语言程序设计学习-第六章 条件处理-上
- mui开发需要对照这几个这几个页面进行开发
- SURF特征点匹配(阈值、绘点方式、匹配方式均可通过滚动条调节)
- Ubuntu下tar命令的使用详解
- 测试服务套接字可能遇到的问题(端口,telnet)