LBF特征和增强的LBF特征。

LBP特征:

%使用Winedt-Xelatex:

\documentclass{article} %article文章
%\documentclass[journal]{IEEEtran}
\usepackage{cTex} %使用中文字符
\usepackage{amsmath} %使用数学公式
\usepackage{amssymb}
%\usepackage[colorlinks]{hyperref} %超级链接宏包
\usepackage[pagebackref,colorlinks]{hyperref} %超级链接宏包
\usepackage[top=1in,bottom=1in,left=1.25in,right=1.25in]{geometry} %设置也边距
\usepackage{caption}
\usepackage[ruled,vlined]{algorithm2e}%算法
\renewcommand{\algorithmcfname}{算法} %%将算法的标题:从Algorithm 1 到 算法1.
%%===设置参考文献===
\renewcommand{\refname}{参考文献}
%%==图片序号与标题之间的冒号改为空格,将图片序号中的”Fig”改为”图“
\captionsetup[figure]{labelsep=space}

%%==设置字体===
\newcommand{\wuhao}{\fontsize{10.5pt}{\baselineskip}\selectfont} %五号
\newcommand{\liuhao}{\fontsize{7.875pt}{\baselineskip}\selectfont} %六号
\setmainfont{Times New Roman} % 全局西文用 Times New Roman 字体
\setCJKmainfont{SimSun} % 全局中文用 Adobe Song Std 字体
\title{Constrained Joint CRF for Simultaneous FAUR and FLD}
\date{}
\author{\footnote{xuluhui123@126.com}}
\renewcommand \figurename {\liuhao 图}

\begin{document}

\section{学习局部特征映射函数Φt}
特征映射函数有一组局部特征映射函数组成,也就是Φt=[ϕt1,ϕt2,...,ϕtL].我们独立的学习这些映射。学习ϕti的回归目标函数是真实的形状增量S^t{\footnote{L 表示特征点的数量,t表示迭代的次数,l表示第l个特征点,其取值范围为l{1,L},ϕl 表示操作,只取第l个特征点对应的。或者说ϕl表示从矢量S^t中抽取两个元素(2l1,2l)}}:

minwt,ϕtli=1||πlS^tiwtlϕtl(Ii,St1i)||22

其中πlS^i是第i个训练样本的第l个基准点的真实的2D偏移。i是在所有样本上进行叠加。
\indent 我们使用一个标准的随机森林[2]来学习每个局部映射函数ϕtl。使用像素差特征训练树中的节点,我们测试500个随机采样的特征,选择给出最大方差减少的特征。在我们的使用中,测试更多的特征仅带有很少的提升。训练之后,每个叶子节点存储着2D偏移矢量(该叶子节点 中所有训练样本的平均值)。
\indent 我们仅在估计的特征点周围的一个局部区域采样像素特征。使用这个一个局部区域对我们的方法很重要。在训练中,每个阶段最优区域的大小采用交叉验证估计。我们将在section 3.3进行详细的讨论。
\indent 在测试阶段,样本通过树达到每个树的一个叶子节点。随机森林的输出是这些叶子节点中存储的输出的之和。假定叶子节点总的数量是D,输出可以写为:
wtlϕtl(Ii,St1i)

其中wtl是一个2*D的居中,其中每一列是相应的叶子节点中的2D矢量。ϕtl是一个D维的二值矢量。对于ϕtl中的每一维,如果测试样本达到相应的叶子节点,其值为1,否则为0.因此,ϕtl 是一个非常稀疏的二值矢量。ϕtl中的非零项的数量和森林中树的数量是相同的,比D小的多。我们称这些ϕtl为局部二值特征。图阐述了抽取二值特征的过程。

\begin{figure}[htbp]
\centering
\includegraphics[width=0.6\textwidth]{figure1.png}
\caption{\fontsize{7.875}{0.5\baselineskip}\selectfont 局部二值特征(a)局部二值特征映射函数$\phi_l^t$将相应的局部区域编码为一个二进制特征;所有的局部二进制特征串联起来形状高维的二值特征(b)我们使用随机森林作为局部映射函数。每个提取的二值特征表示输入图像是否包括一些局部模式。}
\label{fg:003}  %label放在caption之后。
\end{figure}

\section{理解}
公式???不是传统意义上的,利用公式关于wtϕtl求解最小化。而仅仅起“监督”的作用。
例如,对于训练样本,我们知道其真实的基准点的位置,开始时候初始化一个初始形状S0i,则初始化形状 S0i和真实的形状S^i 之间的差值为S^0i.
我们的目的是学习映射函数Φt,也就是学习随机森林。当前估计的形状与真实的形状之间的差值S^ti作为随机森林学习的监督者,我们知道随机森林的学习过程,能够控制,或者说能够引入“监督”的地方就是节点分裂的地方。例如在分类随机森林中,节点分裂中使用类的标签有“监督”的计算信息增益,从而选择信息增益最大的特征和阈值作为分裂的属性。\
\indent 文献中讲到,节点分裂时特征的和阈值的选择为“最大方差减少”,而我们的学习的“监督者”是S^ti,那么我们将两者结合起来考虑自然而然的就会想到一个计算的思路:\
\indent 在每一个阶段,我们都有训练数据集D,训练数据集中的每一张图像都带有真实的基准点。对于初始阶段,对于每一张训练图像,可以通过将平均形状映射到人脸检测框内得到初始化形状S0i,这样就知道了每一个基准点的当前位置,就可以在当前基准点位置附近进行随机选取两个点,然后计算灰度差作为一个特征。如果我们随机的选择多次,就可以得到该基准点处的一个矢量。对于每一个训练样本,都有这样在某个基准点的特征矢量。从而对于每一个基准点,我们就拥有了训练数据集,就可以进行树的训练了。在树的节分分裂过程中,如果我们选择了某个特征(即相对于当前基准点位置的某个位置,通过半径和角度确定)和一个阈值(像素差),我们就可以将训练样本分裂成两组。在分类随机森林中,每一个样本都有一个属性–类别,我们希望学习的随机随机森林,满足:

minϕtli=1||ctiϕtl(Ii,St1i)||22

而在此处,每一个样本都有一个属性即基准点的真实位置。每一个图像当前位置和真实位置就可以得到一个残差。即每一个样本拥有一个残差值,那么树的一个节点含有很多的样本,就含有很多的残差值。对于分类随机森林,我们用熵来描述节点的不纯度。如果一个节点含有的不同的类别,则熵越大,极端情况下,只含有一类,则熵为0。这里的残差相当于距离(数值),如何描述距离的不纯度呢?显然是方差。想象一下,例如,三个点A,B,C 分别表示三类数据,并也用来表示三类而数据的均值,随着各类方差的增大,有可能形成三类数据的混淆。因此,我们希望树节点的分裂,能够使得在不同点(均值)分布处的两类数据进行分开,得到更纯的数据,或者说达到叶子节点后,得到更纯的残差(当前位置和真实位置之间的残差,也可以叫做2D偏移),也或者说将近似的偏移尽量的分在同一个叶子节点上。\
\indent 我们再来看一下公式???,可以简单的将其理解为:S=Dα,其中:D=wtl表示学习的词典,α=ϕtl表示是稀疏系数。因此,LBF特征的学习过程,或许可以使用稀疏表示的方法来替代。
\end{document}

pdf部分截图:

这里写图片描述
代码的下载方式:
进入github输入face alignment进行搜索,我们可以看到有好几个关于文章的实现方法,比较权威的,效果好的肯定是下载量大的那样,即Matlab写的,也有个人用C++参照matlab代码写的。

计算S的标准化方式:
这里写图片描述

增强的LBF特征

参考文献:
1.Face Alignment at 3000 FPS via Regressing Local Binary Features
2.Unconstrained Face Alignment via Cascaded Compositional Learning
3.http://blog.csdn.net/xiamentingtao/article/details/50830632
4.http://wangcaiyong.com/

posted on 2016-09-08 20:02  Raby_Draby  阅读(961)  评论(0)    收藏  举报

导航