我们主要讲一讲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')==1imgpathlistfile = strcat('./datasets/', dbnames{i}, '/trainset/Path_Images.txt');elseimgpathlistfile = strcat('./datasets/', dbnames{i}, '/Path_Images.txt');endtr_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:Nshapes=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代码的原理,重点是预处理和训练,测试基本和训练相同。

face alignment by 3000 fps系列学习总结相关推荐

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

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

  2. Face Alignment by 3000 FPS系列学习总结(一)

    广播: 如今的opencv已经提供了LBF的训练和测试代码,推荐阅读 <使用OpenCV实现人脸关键点检测> face alignment 流程图 train阶段 测试阶段 预处理 裁剪图 ...

  3. face alignment by 3000 fps系列学习总结(二)

    准备初始数据 mean_shape mean_shape就是训练图片所有ground_truth points的平均值.那么具体怎么做呢?是不是直接将特征点相加求平均值呢? 显然这样做是仓促和不准确的 ...

  4. 人脸对齐--Face Alignment at 3000 FPS via Regressing Local Binary Features

    Face Alignment at 3000 FPS via Regressing Local Binary Features CVPR2014 https://github.com/yulequan ...

  5. Face Alignment at 3000 FPS via Regressing Local Binary Features(CVPR2014)读后感(first pass)

    Face Alignment at 3000 FPS via Regressing Local Binary Features(CVPR2014)读后感(first pass) 这篇文章还是通过训练形 ...

  6. Face alignment at 3000 FPS via Regressing Local Binary Features

    最近在网上找了三个程序,一个程序是buding 找到给我的,是face alignment 的程序,网址是: http://www.csc.kth.se/~vahidk/face_ert.html 这 ...

  7. 论文《Face Alignment at 3000 FPS via Regressing Local Binary Features》笔记

    论文:Face Alignment at 3000 FPS via Regressing Local Binary Features.pdf 实现:https://github.com/luoyetx ...

  8. 《Face alignment at 3000 FPS via Regressing Local Binary Features》阅读笔记

    文章目录 一.前言 二.基于形状回归的人脸对齐算法 三.previous work 四.算法的具体实现 4.1 $\phi^{t}$ 的训练 4.2 全局线性回归矩阵 $W^{t}$ 的训练 五.局部 ...

  9. 人脸识别技术大总结——Face Detection Alignment

    作者:sciencefans 搞了一年人脸识别,寻思着记录点什么,于是想写这么个系列,介绍人脸识别的四大块:Face detection, alignment, verification and id ...

最新文章

  1. 云计算如何重塑和简化大规模IT资产
  2. React、Vue、Angular对比 ---- 介绍及优缺点
  3. 【数字信号处理】序列傅里叶变换 ( 基本序列的傅里叶变换 | e^jωn 的傅里叶变换 )
  4. 43、Power Query-函数综合应用
  5. 经典C语言程序100例之五零
  6. Taro+react开发(76):taro安装
  7. 大年初一,磊哥给大家发大红包啦!
  8. Dubbo之Filter链原理
  9. python3 web界面_python3 web更新和web查看日志的功能
  10. 图解PostgreSQL进程结构和内存结构
  11. java基础语法的书_第一章--Java基础语法
  12. (筆記) Continuous Assignment的幾個特色 (SOC) (Verilog)
  13. office 高效办公智慧树_精品网课office,让工作学习更轻松
  14. 【跟着我们学Golang】基础结构
  15. 【转载】关于大型asp.net应用系统的架构-架构的选择
  16. Thread.Sleep太久,界面卡死
  17. python爬虫框架论文开题报告范文_基于Web爬虫系统设计开题报告
  18. 360奇酷手机显示Log
  19. WEB--3D立体魔方小游戏 (附源码)
  20. markdown编辑器——文字颜色、大小、字体、背景色、图片大小与居中对齐的设置方法

热门文章

  1. HTML5事件—visibilitychange 页面可见性改变事件
  2. 数据可视化(BI报表的开发)第一天
  3. 蓝桥杯——机器人行走
  4. 团队项目第一篇——NABCD
  5. Spring AOP注解方式实现
  6. grep 正则匹配
  7. 敏捷项目开源管理软件ScrumBasic(2)- 多项目支持
  8. win8, VS2013 .NET 4.5在哪找svcutil.exe?
  9. javascript --- 事件对象和事件类型
  10. 1 redux初探、用react开发数值增值案例