C++版 Face Alignment at 3000FPS(一)TrainModel运行

来源:互联网 发布:我的滑板鞋 知乎 编辑:程序博客网 时间:2024/05/17 22:18

Face Alignment at 3000 FPS via Regressing Local Binary Features这篇论文实现了对人脸关键点的高速检测,预测精度高。

实现步骤:

一、下载源码、查看工程相关文件。

在网上下载了https://github.com/yulequan/face-alignment-in-3000fpsC++版本的实现工程。解压。打开工程文件。

图一Face Alignment at 3000FPS工程

当然,现在直接运行会有错误。需要进行相关配置。

 

二、配置OpenCV路径。

此时运行,会报错无法打开包括的OpenCV的文件。配置方式可以看我之前的博文

http://blog.csdn.net/rongrongyaofeiqi/article/details/52985698

里面有关于OpenCV的配置方式。此工程自带的是2410版的OpenCV库,路径也跟我的不一样。所以需要重新配置一下。并且在工程文件夹下加入opencv_imgproc249.dllopencv_highgui249.dllopencv_core249.dllopencv_objdetect249.dll

三、配置运行参数

配置好OpenCV,运行之后出来结果提示

图二运行成功但缺少参数

查找这个提示,是在LBF.cpp中的PrintHelp函数中的提示。查看此函数调用,是在LBF.cppmain函数中。粗读代码,是因为缺少相关的配置,所以直接调用了PrintHelp()。

图三缺少参数的源码

 

根据提示可以知道,在项目属性/配置属性/调试/命令参数中输入必要的参数。

图四缺少参数的配置方法

此处输入可以是TrainModel:训练模式,此篇分析当为TrainModel时,如何配置相关参数。

TestModel:测试模式

Demo

Demo XX.jpg( Demo1.jpg)

Demo Img_Path.txt

 

四、下载必要的人脸数据库,生成Path_Images.txt

参照一篇博文获取了4个人脸数据库,下载的时候挺麻烦的,链接到一个网站,还需要有账号,然后再跳转到百度云盘

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

下载好之后,发现里面都是人脸图片以及相应的pts文件。现在需要做的是将这些照片的路径集合起来生成一个文件。如图

图五Path_Images.txt的路径示意

有的说下载的人脸数据库中自带这个路径文件,不过我没有。生成也很简单。如下图命令:可对训练集的图片进行路径汇总。生成的Path_Images.txt文件也在trainset文件夹下。

图六Path_Images.txt的路径生成命令

五、修改工程中一些文件的位置

LBP.cpp中的路径需要修改为自己的路径。由于此次是TrainModel,所以根据人脸数据库会生成新的模型文件。

modelPath就是指这个模型文件的路径。自己指定一个文件夹就行。

dataPath是人脸数据库中图片路径的集合,也就是Path_Images.txt的路径。这里写的Q4文件夹是因为在TrainModel读取的时候的方式是path = dataPath +trainDataName[i] + "/trainset/Path_Images.txt"

其实这个路径问题可以自行灵活解决,科协相对路径,也可完全写死。It’s up toyou!

                            

图七LBP.cpp中路径设置

图八TrainModel.cpp中路径设置

六、运行成功

运行过程中会有提示说明生成的随机森林到了多少层,每一层的landmark参数等等信息。这次不关心这些数据,几分钟之后程序运行完成,在我们指定的模型文件目录下,可以看到生成的模型文件。TrainModel的程序试运行就完美结束啦!有问题可以留言!

              

图九训练生成的模型文件

0 0
原创粉丝点击