Joint Cascade Face Detection and Alignment流程

论文Joint Cascade Face Detection and Alignment记录

前言
现在人脸检测用深度学习甩传统方法一大截,但是记录下这篇文章,主要是看看思想(看文章时间较短,只有一天,有些地方可能有误):
这篇文章,使用级联树,将分类与回归都完成,使用的是局部二值特征,local binary feature,计算简单,高效,最后得到结果也还可以,但是也存在一定的问题:
参数难调,训练不稳定,由于是级联树,就是一个树判断完成后再给下一个树进行判断,一个一个树来判断
0 比如说总共有320*5=1600个树,将这些树分成5个级,每级320个树,为什么要分级,是为了在每一级中的树中固定好大概多少个节点用于分类,多少个节点用于回归,对于每个树
这个树的深度是固定的,是一个4层的二叉树,最后的叶子节点有8个,对于给定的图像块,这个图像块可能是正样本也可能是负样本,正样本的话还会包含正样本的关键点的坐标

1 特征
对于图像块,假设关键点个数为5,在图像的5个关键点中随机找一个点,再在这个点一定半径内周围随机找2个点,求这两个点之间的像素差值,作为特征值,像这样随机求3200次特征值,得到3200个待选的特征,原文中说的是在关键点中随机找两个关键点,再在每两个关键点周围一定半径内随机找两个点,求这两个点之间的像素差值作为特征,有点不明白的是,如果是按照原文这样来,那么就每次产生两个特征了,是一次使用两个特征吗?这点没弄明白,还有另外一个理解,就是在关键点中随机找两个,然后在这两个关键点周围各自周围一定半径内找一个偏移点,然后将这两个关键点周围的偏移点求像素差值,貌似这样理解更合理,但是原文像这样进行翻译有点欠缺。原文中关键点特征选择:
这里写图片描述
2 分类节点
对上面的3200个特征,选择使得分裂成左右节点后信息增益较大的那个特征,根据该特征,将样本进行分裂,分裂到左边和右边子树
3 选择为分类节点还是回归节点
对于每个节点,有机会选择成为分类节点,也有机会选择成为回归节点,成为那个节点由公式:
p=1-0.1*t(t=1,3,5,7,9)
决定,其中t代表哪一级,前面分了5级,那么在每一级内部的320个树中,每个树成为分类节点与回归节点的概率是一样的,比如第一级,成为分类节点的概率是1-0.1*1=0.9,那么每个节点都有0.9的概率成为分类节点,0.1的概率成为回归节点,即大部分节点都会成为分类节点,在后期的几级,t增大,后面会有更多的节点用于回归
4 回归节点
对于回归节点也是求上面的特征,但节点分裂的标准是使得,左右两边的节点上的正样本的关键点位置(所选择的那个特征对应的关键点)与标定的关键点位置之差,左边正样本这个值的方差,加上右边样本这个值的方差之和最小,个人理解相当于根据这个关键点的偏差形成的向量进行聚类,类别为2,这样和分类节点一样,也会得到一个阈值,那么再根据这个阈值,将负样本进行左右分类
5 叶子节点的分数
不论是正样本,还是负样本,不论是分类节点还是回归节点,最后都会分到一个叶子节点上,然后根据给定的公式,求每个节点对应的分数,然后将节点的分数累加,就得到这个树对于是不是人脸的判断的一个分数,每个树进行累加,一旦这个值小于某个阈值,就判断为非人脸,就停止不进入到下一个树;
每个叶子节点分数由公式进行求解:
这里写图片描述
其中w是每个样本的权重,有下面的公式给出,其中f的初始值都是0,因此每个样本的权重都是一样的:
这里写图片描述
6 回归
对于某个树,每个正样本都会走到某个叶子节点,对于样本a,比如说走到叶子节点2,那么对应的有一个数:01000000,还有一个样本的关键点的坐标,5个点,10个值,那么对于所有的正样本,都会形成这样的一一对应的关系,再根据这样的关系,进行求回归关系,查找5个坐标点应有的偏移量。原文算法的第11行有一个k mod L,需要注意的是,这个是用于将训练数据对应到每一个关键点,与在关键点处选择特征的区别在于:选择特征的时候,是随机的选择关键点,那么一棵树中可能涉及的关键点有多个,但是一颗树走完后,这个树中选择哪个关键点用于求特征就固定了,最后在叶子上会形成一个二值特征,那么用这个二值特征可以对任意关键点进行回归,而这个k mod L的目的就是将所有训练数据对应到每一个关键点上:
这里写图片描述
7 级联
在下一个树中,将坐标加上偏移量后,回到1,再次进行分裂,进行循环,这样迭代,一直到所有的树都迭代完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值