关闭

face alignment by 3000 fps系列学习总结

标签: alignment
3047人阅读 评论(3) 收藏 举报
分类:

我们主要讲一讲Github上给出的matlab开源代码《jwyang/face-alignment》的配置。
首先声明:本人第一次配置的时候也是参考了csdn一个作者和github给出的说明配置成功的。其实后来想想很简单的,但是可能对于初学者,还是有一定的困难。为此,本人将自己的一些心得列出来,以供参考。
另外,本人对代码做了详尽的注释,代码下载地址:http://pan.baidu.com/s/1nu58xx3

  1. 下载源代码:https://github.com/jwyang/face-alignment
  2. 环境:windows64位+matlab2014a
  3. 下载数据库,本人给出自己收集的一个数据集。见百度网盘(密码:in)。注意:我们这里训练的是68个特征点的,我那个数据集还有29个点和194个点的。
  4. 为代码中的训练样本函数的依赖库liblinear做配置,从http://www.csie.ntu.edu.tw/~cjlin/liblinear/,可以直接下载liblinear库,然后如果你的系统是windows64位的就直接从里面的windows文件夹中将里面的文件全部拷贝到matlab的工程文件夹中(我就是这样干的,当然你也可以自己编译,参考文献:http://blog.sina.com.cn/s/blog_5bd2cb260100ev25.html)。(本人也上传了一个下好的liblinear库
  5. 准备数据,建立一个文件夹叫datasets,里面可以放你下好的数据,包括图片和shape txt.
  6. 因为train_model.m文件中
 for i = 1:length(dbnames)
    % load training samples (including training images, and groundtruth shapes)
    if strcmp(dbnames{i},'lfpw')==1
        imgpathlistfile = strcat('./datasets/', dbnames{i}, '/trainset/Path_Images.txt');
    else
        imgpathlistfile = strcat('./datasets/', dbnames{i}, '/Path_Images.txt');
    end
    tr_data = loadsamples(imgpathlistfile, 2);
    Tr_Data = [Tr_Data; tr_data];
end

表示读入训练样本的数据的文件是Path_Images.txt,所以进入控制台(cmd)先转到目录../datasets/afw,然后输入命令dir /b/s/p/w .jpg>Path_Images.txt,这是将所有jpg的文件的文件名都输入到Path_Images.txt文件中,同样转到目录../datasets/lfpw/trainset文件夹中输入命令dir /b/s/p/w .png>Path_Images.txt,因为lfpw的数据都是png文件。注意train数据集和test数据集都要做一遍。

注意:afw,ibug都是只有一个数据集,而lfpw分为两个,一个训练集,一个测试集。
7. 然后我们开始训练样本,在matlab文件夹下新建一个m文件,例如我这里建的是:train_start.m,然后里面输入一下代码:

filepath_model='./models/LBFRegModel.mat';

LBFRegModel=train_model({'lfpw'});

save(filepath_model,'LBFRegModel');

和《Face Alignment at 3000FPS工程配置》略有不同,其实本质一样。都是为了保存训练好的数据。只不过他分开保存,我一块而保存而已。

然后执行,训练样本的时间可能会过长。目的是将训练后的结果导入LBFRegModel.mat文件夹中.当训练完毕后,可以在./models文件夹下看到LBFRegModel.mat。
8. 观看结果。在matlab文件夹下新建一个m文件,例如我这里建的是:test_start.m,在里面输入下面代码:

filepath_model='./models/LBFRegModel.mat';
m=load(filepath_model,'LBFRegModel');
t=m.LBFRegModel;
[predshapes,Data]=test_model({'lfpw'},t);
[X,Y,N]=size(predshapes);
for i=1:N
   shapes=predshapes(:,:,i);
   img=Data{i}.img_gray;
   drawshapes(img, [shapes,Data{i}.shape_gt]);
   rectangle('Position',  Data{i}.bbox_facedet, 'EdgeColor', 'b');
   hold off;
   pause;
end

就可以看到结果了。
PS: Github上有作者自己训练的一个模型。使用时只需放在models里面,并将test_start.m中改为filepath_model=’./models/LBFRegModel_best.mat’;再将./src/config_te.m打开,将models/config_te_best.txt的内容复制进来即可。

另外:关于3000fps方法,网上也有许多好的资料,这里给出两个链接:
http://blog.luoyetx.com/2015/08/face-alignment-at-3000fps/#
http://freesouls.github.io/2015/06/07/face-alignment-local-binary-feature/(中间求特征树有一点问题,可以参考文中后面的答复).

后面,我会详细讲解这个matlab代码的原理,重点是预处理和训练,测试基本和训练相同。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

人脸对齐之LBF(Local Binary Features)

基于LBF方法的人脸对齐,出自Face Alignment at3000 FPS via Regressing Local Binary Features,由于该方法提取的是局部二值特征(LBF),所...
  • qq_14845119
  • qq_14845119
  • 2016-12-11 20:21
  • 3102

人脸关键点定位3000fps的LBF方法

人脸对齐不错的论文理解
  • wfei101
  • wfei101
  • 2017-06-07 21:49
  • 1201

face alignment by 3000 fps系列学习总结(三)

训练我们主要以3000fps matlab实现为叙述主体。总体目标 我们需要为68个特征点的每一个特征点训练5棵随机树,每棵树4层深,即为所谓的随机森林。 开始训练 分配样本 事实上...
  • xiamentingtao
  • xiamentingtao
  • 2016-03-08 21:21
  • 3061

Face Alignment at 3000 FPS 学习理解和具体实现

这篇论文主要讲:Face Alignment 问题,即给人脸确定位置68个标点 (landmark)。 而这些标点位置肯定是最能区别不同人的位置。 Face Alignment 是很重要的,是人脸...
  • xp215774576
  • xp215774576
  • 2015-04-14 10:47
  • 7609

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

C++版 Face Alignment at 3000FPS TrainModel运行
  • rongrongyaofeiqi
  • rongrongyaofeiqi
  • 2016-11-03 10:19
  • 1391

3000fps算法整理

1.Framework整个流程基于Cascade Pose Regression(CVPR 2010),分为T个stage,在训练时步骤如下(testing也类似)每个stage先抽取local bi...
  • Best_Coder
  • Best_Coder
  • 2016-12-20 15:44
  • 647

face alignment by 3000FPS 代码解析之一

开始代码解析之路先解析难的函数 1.matlabpool (‘size’) <= 0 %是否打开并行运行 matlabpool(‘open’,’loca...
  • xp215774576
  • xp215774576
  • 2015-04-15 21:03
  • 1992

Face alignment in 3000 FPS 代码的运行

网上对论文 face alignment at 3000 fps via regressing local binary features 代码解析很少,希望能给读者代码详细的解析.这能论文下载地址 ...
  • xp215774576
  • xp215774576
  • 2015-04-15 12:47
  • 4414

3000fps 实际操作总结

3000fps 实际操作总结
  • duan19920101
  • duan19920101
  • 2016-04-06 11:58
  • 1269

Face Alignment at 3000FPS(C++版)工程配置

3000FPS是人脸对齐算法,特点是速度快!我利用的是thinkface上一位大牛提供的代码http://www.thinkface.cn/thread-3136-1-1.html这里面提供了C++版...
  • Sunshine_in_Moon
  • Sunshine_in_Moon
  • 2015-11-14 21:11
  • 5872
    个人资料
    • 访问:284118次
    • 积分:4121
    • 等级:
    • 排名:第8689名
    • 原创:117篇
    • 转载:82篇
    • 译文:8篇
    • 评论:106条
    个人网站
    最新评论