最近在网上找了三个程序,一个程序是buding 找到给我的,是face alignment 的程序,网址是:

http://www.csc.kth.se/~vahidk/face_ert.html

这个程序只是下下来还没有研究

看的比较多的是:Face alignment at 3000 FPS via Regressing Local Binary Features

原因是:这个文章因为有人翻译成中文还有相应的code 所以看起来速度比较快。

本文主要参考这个博客的内容

http://demo.netfoucs.com/boosting1/article/details/26085223

Face alignment at 3000 FPS via Regressing Local Binary Features

这篇文章与face alignment by explicit shape regression都属于判别性形状回归的方法

判别性形状回归方法是一个什么样的方法我还不知道。

这片文章的主要贡献是使用限制使用了局部特征和回归树,将特征空间映射到线性空间,再使用线性回归学习

那么我们就主要介绍一下这个code 的逻辑跟流程:

本文对于如何提取一个landmark周围的像素点没有说明。应该是先求得当前形状和平均形状之间的旋转和尺寸变换后,在用变换后的offset去像素点(在One Millisecond Face Alignment with an Ensemble of Regression Trees中有详细说明)本周的任务是每天看一篇paper。发现东西看的少,肚子里面就没货。

对于我们来说:我们假如有一个检测关键点的程序(比如 INTEL 的那个或者是CMU 的那个)我们可以已知每个检测到的样本的两个眼角的坐标跟鼻子的坐标,同样我们可以知道平均脸中两个眼角的坐标跟鼻子的坐标,这样我们可以计算出一个映射关系。根据这个得到的映射关系我们可以计算出来原样本的新的图片。既然这个方法在opencv 的程序中有实现,只能说明这个方法不是最好的方法,本文所讲的方法应该是用一组训练样本求一个映射关系,然后测试样本都经过这个映射。

先说下整体的思路,再说这篇文章的特点:

1 整体思路是这样的

Step 1  对图片初始化 1 个shape(这个shape 就是一组点,目标是将它们移动到相应的眼睛鼻子嘴巴上)

Step 2   基于这个Shape 计算其每个点的周围像素,或者两shape两个点中间像素的值(为了对光照鲁棒,一般是两个点像素的差值),这个特征记做Features。

Step 3  计算当前Shape 和 人工标记好Shape 的差异Delta_Shape , 然后训练一个函数y = f(x) , 使 Delta_Shape = f(Features)。

Step 4  将这个Delta_Shape 加上初始的Shape 就是最终要求的人脸形状。

这个过程就是该方法的Face Alignmeng 核心过程。所谓配准就是计算这个增量。训练就是学习特征与这个增量的关系。本文的方法是对这个过程进行了级联,从而降低了每次配准的难度。将上文Step 4 中的结果代入Step1 循环10次。就是整体的过程。

本文特点

首先是特征的学习。和之前的方法不同,这篇文章使用 Random Forest 学习的结果作为特征。而不是直接向之前一样用像素差值作为特征,上个图吧

这个图比较宏观,可以看出的是第二列的特征是通过学习得到的,第四列的回归关系是线性的,也是通过学习得到的(这个过程本人还不是很懂,懂了之后对这一部分要丰富一下,但我知道可以用liblinear来做,过几天做出来再讲讲里面的细节和问题 ,对于内存不够的问题可以用稀疏矩阵, 可以看出第三列里特征矩阵式稀疏的)。

我现在还在研究上一幅图第三列之前的过程是如何计算的, 主要先说这一部分吧。当然如果计算出了这个局部二值特征,本文的工作也完成一大半。因为后面的工作是交给liblinear库去做的。

对于局部二值特征的学习现在是伤透了脑筋,对于连续的变量,不知道如何使用回归树,更确切的讲,离散的值可以算一个信息增益来选择特征,那么连续的变量如何选择特征呢,使用哪些指标?

对于这个问题,现在找到了两种办法,第一个办法是使用特征与属性的相关性来选择特征,然后在随机给出阈值。另一个方法是选择一个特征和阈值,这个特征和阈值可以让将样本分为两部分,每一部分求一个平均,然后两部分的样本各自减去平均值再求平方和。

平均形状的求法是:对应像素相加 除以总数就可以吧(buding)这么说的。

特征脸与平均脸的计算方法很不一样:

平均脸的计算我认为就是平均形状的计算方法:比如我每次检测出来的人脸里面各个坐标,所有的行相加除以所有的得到的就是平均脸。

特征脸的计算是不是要求主成分,像模式识别书里面讲的那样。

CMU 的那个貌似只能跑视频的程序,封装的太好了,我想利用CMU 的跑一些批量的图片,不知道该怎么做,但是我还是要把自己的想法告诉W老师。不然W 老师也不知道是吧.

Face alignment at 3000 FPS via Regressing Local Binary Features相关推荐

  1. 人脸对齐--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 ...

  2. 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) 这篇文章还是通过训练形 ...

  3. 论文《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 ...

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

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

  5. 人脸对齐之LBF(Local Binary Features)

    基于LBF方法的人脸对齐,出自Face Alignment at3000 FPS via Regressing Local Binary Features,由于该方法提取的是局部二值特征(LBF),所 ...

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

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

  7. face alignment by 3000 fps系列学习总结

    我们主要讲一讲Github上给出的matlab开源代码<jwyang/face-alignment>的配置. 首先声明:本人第一次配置的时候也是参考了csdn一个作者和github给出的说 ...

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

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

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

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

最新文章

  1. 【SpringMVC】概述
  2. Pentaho 7.0更新:数据准备和分析两不误
  3. list可以存放python中任意类型的数据_Python中常见的数据类型小结
  4. DropDownList 選項改變確認腳本
  5. android 侧滑删除功能,200行代码让你在Android中完美实现iOS版侧滑删除效果
  6. Properties类 解析xml文件问题
  7. scrapy 去重策略修改
  8. python书写跨越多行的字符串的两种方式
  9. 让不同的库元件继承自共同的类
  10. 模块和包——Python
  11. 使用HTTP下载单词音标,特此记录
  12. 生物光子学 19节 加州大学戴维斯分校
  13. 渐变按钮 css,CSS3 Gradient Buttons
  14. 魔兽世界怀旧服务器无限刷怪点,魔兽世界怀旧服:4处无限刷新的打怪点!升级比血色站桩还快!...
  15. 深度学习之美 第五章 学习笔记
  16. gmail+mtalk配合打免费网络电话。
  17. python能超越java吗_為什么Python能超越JAVA,有什么優勢?
  18. 分享的山 换个地图打开成了海
  19. 2019传统微商为什么要转型快手电商?
  20. 影视作品烂到至高无上的境界不是槽点满满

热门文章

  1. Python机器学习 集成算法实例
  2. Elasticsearch集群配置以及REST API使用
  3. iOS 入门——Hello World app
  4. 项目管理中工时计算的问题
  5. mysql日常问题记录
  6. DataGrid的ViewState
  7. vi-vim :删除、撤销、恢复删除、复制删除
  8. 通过异常处理错误-2
  9. 美柚-产品原型图(高保真) 一个拥有腾讯产品梦的小精灵
  10. 【小白问题】appendTo()