Face Alignment at 3000FPS(C++版)工程配置
源地址:http://blog.csdn.net/sunshine_in_moon/article/details/49838245/
3000FPS是人脸对齐算法,特点是速度快!我利用的是thinkface上一位大牛提供的代码http://www.thinkface.cn/thread-3136-1-1.html这里面提供了C++版代码,人脸数据库及大牛训练好的模型的连接,大家可以自行下载。下面介绍具体的配置过程以及遇到的问题和其解决方法。
安装分为4个步骤:
1.下载人脸数据库,获取Path_Images.txt。
AFW人脸数据库:http://www.thinkface.cn/thread-1029-1-1.html
LFPW人脸数据库:http://www.thinkface.cn/thread-1032-1-1.html
Helen人脸数据库:http://www.thinkface.cn/thread-1030-1-1.html
IBUG人脸数据库:http://www.thinkface.cn/thread-1031-1-1.html
我使用的是lfpw库,里面已经提供了Path_iamges.txt文件,如果你下载的库没有提供这个.txt文件,可以用下面的方法生成。比如我现在将AFW与LFPW作为训练样本的集合,那么先解压然后保存到D:\Projects_Face_Detection\Datasets文件夹中,这是因为工程中train_model.m文件下第40行中定义的,也可以自己做修改.因为train_model.m文件中40行表示读入训练样本的数据的文件是Path_Images.txt,所以进入控制台先转到目录D:\Projects_Face_Detection\Datasets\afw,然后输入命令dir /b/s/p/w *.jpg>Path_Images.txt,这是将所有jpg的文件的文件名都输入到Path_Images.txt文件中,同样转到目录D:\Projects_Face_Detection\Datasets\lfpw文件夹中输入命令dir /b/s/p/w *.png>Path_Images.txt,因为lfpw的数据都是png文件。
其中数据库要根据你自己的数据库以及数据库的位置进行调整。
2、
下载liblinear库,编译获取blas库(liblinear/blas/blas.a)。你需要将你的blas.a替代build目录下的blas.a。
注意:新版本的程序这个步骤可以省略,作者已经把其整合到了工程里。
新版本链接:https://github.com/yulequan/face-alignment-in-3000fps
不过你用的是老版本,那首先是下载liblinear,我的百度链接:http://pan.baidu.com/s/1gdruGuf
liblinear库的安装与使用可参考http://blog.csdn.net/zouxy09/article/details/10947323/
本人在此声明,我没有编译成功,如果有编译成功的朋友,麻烦留言,简单讲述下方法,在此感谢!
3、进入build文件夹,编译该程序。
cmake make
说明:我用的是CMake界面版,在编译时出现里个问题,提示要不到opencv库,错误提示为:
CMake Error at CMakeLists.txt:6 (find_package):
By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "OpenCV", but
CMake did not find one
出现这个问题是因为CMake配置OpenCV时出错,解决方法很简单添加一个环境变量就好具体步骤:我的电脑右击->属性->高级系统设置->环境变量->新建,变量名:OpenCV_DIR(注意大小写,不能出错)变量值:D:\Program Files\opencv\build重新启动电脑(很重要!!)再用CMake进行configure和generate,然后打开解决方案***.sln,进入VS,编译,运行。这个问题的具体原因及解决方案请参考:http://m.blog.csdn.net/blog/ZHUQIBING/17184939
4、模型的训练:在LBF.cpp文件中设置全局参数,在TrainDemo.cpp中设置数据库。采用“LBF.out TrainModel”进行编译。
具体设置:1)LBF.cpp文件修改、
modelPath:训练模型保存的路径,也是test阶段模型加载的路径
dataPath:数据库图片加载数据路径,这里要注意,还记得第一步中的Path_images.txt文件吗,这个文件里保存的就是图片路径,这个文件里的路径就是D:/Projects_Face_Detection/Datasets/,如果你没有自己生成Path_images.txt文件,而是使用官方提供的文件,那你的数据库文件夹就要放在这个路径下,也就是说你要在D盘下新建这个文件,否则你就好修改dataPath(不推荐,太麻烦,而且容易出错)
cascadeName:这个参数不用修改,但是要把这个文件放到工程下如:
下面是选择使用训练数据库:
选择要训练模型使用的库,把不用的库,直接注释掉就可以了
下面是选择测试数据库:
与上面一样,选择你的数据库即可,我这里是个错误,测试时的数据库不应该与训练数据库相同。
2)TrainModel.cpp文件修改:
首先,把第一步生成的Path_Images.txt文件放到trainset文件下(很重要,我在废了很长时间,才找到是这的问题)
3)TestModel.cpp文件修改
由于照片不能正常上传,需要注意的地方与TrainModel,cpp一样把Path_Image.txt放到testset文件下,否则找不到照片,就无法进行人脸检测函数LoadOpencvBbxData(path, test_images, test_ground_truth_shapes, test_bounding_boxs);报错!!!
5、编译工程,编译时提示错误:无法启动程序 无法找到文件e:\projects_pcl\pcl_filters\bilateral_filter\build\x64\Debug\ALL_BUILD
这是因为用CMake生成工程文件是包含了ALL_BUILD、ZERO_CHECK两个工程文件,直接把它们移除就OK!
具体请参考:http://blog.csdn.net/david_xtd/article/details/38381787
6、编译成功后,就可以执行程序了。在数据库上进行测试:在TestDemo.cpp文件中设置测试数据库,使用“LBF.out TestModel”进行编译。这是在命令行下执行的。如果你不想使用这种方式,我们可以使用下面的方法:
工程文件右击->属性->通用属性->调试->命令参数(TrainModel:训练模型,TestModel:测试)
如果想用我编译好的工程可以给我留言!
参考链接:
http://blog.csdn.net/wangjian8006/article/details/42004717
http://www.thinkface.cn/thread-3136-1-1.html
http://blog.csdn.net/zouxy09/article/details/10947323/
http://m.blog.csdn.net/blog/ZHUQIBING/17184939
http://blog.csdn.net/david_xtd/article/details/38381787
Face Alignment at 3000FPS(C++版)工程配置的更多相关文章
- 为eclipse EE(汉化版) 配置Tomcat服务器
为eclipse EE(汉化版) 配置Tomcat服务器 很多小朋友在初次使用eclipse进行web开发的时候,很是蒙蔽.以前都是文本编辑器写好,做好目录结构,往tomcat下一扔,重启,搞定. ...
- 【一】工程配置与电机控制part1
前言 学校发的无刷电机: 我们准备的有刷电机: 带霍尔编码器! 电机参数: 名称:驰名电机(直流减速电机) 型号:JGA25-370 电压:12V 转数:1360r/min 做云台,核心是使用PID控 ...
- 解压版Tomcat配置
解压版Tomcat配置(本例Tomcat6): 一 配置Tomcat 1 下载Tomcat Zip压缩包,解压. 如果增加tomcat的用户名和密码,则修改/conf/tomcat-us ...
- ios 工程配置统一增加类的前缀(知识点也只能算知识点)
在前边的代码规范中提及:团队开发或者个人开发为了打包或者自己工程中避免创建新的类核第三方系统的重复增加类的统一前缀!!又很多人问我这种开发小技巧.下面我就普及一下: 1.首先选中你的工程配置 2.然后 ...
- 细聊 Cocoapods 与 Xcode 工程配置
前言 文章比较长,所以在文章的开头我打算简单介绍一下这篇文章将要讲述的内容,读者可以选择通篇细度,也可以直接找到自己感兴趣的部分. 既然是谈 Cocoapods,那首先要搞明白它出现的背景.有经验的开 ...
- pcl1.7.2_vs2013_x64工程配置
pcl1.7.2_vs2013_x64工程配置 C:\Program Files\PCL 1.7.2\include\pcl-1.7;C:\Program Files\PCL 1.7.2\3rdPar ...
- Windows 8.1下 MySQL绿色版安装配置与使用
原文:Windows 8.1下 MySQL绿色版安装配置与使用 Mysql-5.6.17-winx64操作步骤: 一.安装MySQL数据库 1.下载. 下载地址:http://downloads.my ...
- MySql-5.7.17-20解压缩版安装配置
MySql-5.7.XXX解压缩版安装配置 1.mysql-5.7.20是解压版免安装的,版本下载地址:http://dev.mysql.com/downloads/mysql/ 如下图 2.解压 ...
- MySQLMySql免安装版安装配置
MySql免安装版安装配置,附MySQL服务无法启动解决方案 mysql 5.6.17 绿色版(免安装)安装配置教程 [mysql] # 设置mysql客户端默认字符集 default-charact ...
- vs如何将工程配置,保存到属性表
上次讲到新建一个opencv工程的配置过程,整个流程下来还是非常麻烦的.每次新建一个工程都要走这个流程的话就要疯了! 现在介绍一种将工程配置,保存到属性表的方法,那么下次新建工程时,只要添加这个属性表 ...
随机推荐
- c# 阶段总结
然并卵然并卵然并卵然并卵然并卵然并卵然并卵
- 深度优先搜索(DFS)递归形式改为非递归形式
DFS将递归改为非递归这个方法的需求来自于一道三维积木组合的题目,还在苦苦调试中,暂且不提. 普通的认识对于递归向非递归的转化无非是使用栈,但是结合到深度搜索如何将栈很好利用,如何很好保存现场,都不是 ...
- 第三届蓝桥杯 c/c++真题
第三届蓝桥杯真题 c/c++ 以下题目我自己也并不是所有的题目都是一次性就能做对或是有结题思路的.有些题目也是经过查证网上相关的资料或是参考了别人的代码和解题思路才做出来的.总的来看,这份题目考了很多 ...
- redis安装及数据类型简介(string、list、set、sorted_set、hash)
一:简介: redis国内最大的案例--->新浪微博 memcache:是key-value数据库 数据类型:只支持key value数据 过期策略:支持 持久化:不支持(可以通过三方程序) 主 ...
- MFC + CxImage 实现自绘半透明按钮
环境:VS2008 + CxImage btn.h [cpp] view plaincopyprint? #pragma once // CBtn #include "ximage/xima ...
- Login oracle for external authenticate
Generally, we can login the oracle by os authentication, if we login os in a remote machine and make ...
- Ibatis2.3.4的一个bug
java.lang.ClassCastException: com.chat.upgrade.domain.ClientFile cannot be cast to java.lang.String ...
- 微信或手机浏览器在线显示office文件(已測试ios、android)
近期开发微信企业号,发现微信andriod版内置浏览器在打开文件方面有问题,可是ios版没有问题.原因是ios版使用的是safari浏览器 支持文档直接打开.可是andriod版使用的是腾讯浏览器x5 ...
- redisTemplate 操作
redisDao封装类-其他dao集成他 package com.ffcs.wlan.dao.common; import javax.annotation.Resource; import org. ...
- 【HTTP】Fiddler(三)- Fiddler命令行和HTTP断点调试
一. Fiddler内置命令. 上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的session不是同一个概念,这里的每条HTTP请求都成为一个sessio ...