1:搭建好人脸对齐的LBF算法的环境,采用数据集训练68个特征点的数据集:
2:用训练好的模型生成人脸框和5个点的文件,得到JDA的训练数据;
3:采用JDA算法进行训练:
4:JDA算法的核心思想就是采用了回归的策略,让人脸检测框定位更加的准确;
5:LBF算法主要就是人脸关键点的定位,关键点附近的提取特征,之后进行判断是否是人脸,这样更加的准确;
6:之前理解pico的人脸检测算法采用的整个人脸的特征进行分类,这样人脸的特征和背景的区分度不算太大!
7:LBP,harr,pico等等都没有对人脸的关键部位进行分类,故分类的精度不高,和JDA相比效果差一点!
8:BP神经网络的一些理解:
BP的思想就是:利用输出后的误差来估计输出层前一层的误差,再用这层误差来估计更前一层误差,如此获取所有各层误差估计。这里的误差估计可以理解为某种偏导数,我们就是根据这种偏导数来调整各层的连接权值,再用调整后的连接权值重新计算输出误差。直到输出的误差达到符合的要求或者迭代次数溢出设定值。BP的反向传播对象就是“误差”,传播目的就是得到所有层的估计误差。
它的学习规则是:使用最速下降法,通过反向传播(就是一层一层往前传)不断调整网络的权值和阈值,最后使全局误差系数最小。
训练的目的,就是送入数据,得到分类的预测标签,然后计算误差,之后开始反向的传播,根据误差,计算上一层的偏倒数,根据误差,更新权重,然后预估这一层的误差,然后继续方向,更新一遍网络,一个训练样本就结束了;然后下一个训练样本,不断的更新权重,直到满足结束的条件: