人脸检测方法总结

1 人脸检测方法分类:对图像或者图像序列进行人脸检测的方法可以大致上分为四类,它们分别是知识规则方法、不变特征方法、模板匹配方法以及统计模型方法


(1)基于知识规则的方法:

基于知识规则的方法是利用人脸规则对输入图像进行人脸检测的方法(如:眼睛、鼻子、嘴巴等的分布)。这类方法主要是利用一些简单的规则来描述人脸面部特征以及这些特征之间的关系;(基于马赛克图人脸检测;镶嵌图法;用神经网络分别检测眼睛、鼻子、嘴;器官分布)


(2)基于特征的方法

基于不变特征的方法主要是通过寻找人脸面部不变的特征来对输入图像进行人脸检测。该类方法认为人脸面部的一些特征(肤色、边缘、纹理等)具有在不同的姿态、视角、表情下都不会发生改变的特性。(基于肤色的人脸检测;基于轮廓


(3)基于模板匹配的方法

基于模板匹配的方法是将人脸的面部特征用一个标准的人脸模板来描述,进行人脸检测的时候,先是计算输入图像子窗口与标准人脸模板之间的相关值,然后再将求得的相关值与事先设定的阂值进行比较,以判别输入图像中是否存在人脸.


以上三种又叫基于特征的检测方法;


(4)基于统计模型的方法

法是将人脸区域看作一类模式,使用大量的人脸数据作样木训练,来学习潜在的规则并构造分类器,通过判别图像中所有可能区域模式属性来实现人脸的检测。从而把人脸检测问题转化为统计模式识别的二分类问题,如基于神经网络的人脸检测【,和基十支撑向量机的方法,等。(haar+Adaboost、基于SVM的人脸检测、神经网络方法、基于贝叶斯估计的人脸检测)



2 经典人脸检测算法

基于肤色分割的人脸检测、

基于线性子空间的人脸检测、(PCA)            ?

基于贝叶斯估计的人脸检测、                          ?

基于人工神经网络的人脸检测、

基于svm的人脸检测

基于Adaboost算法的人脸检测

隐马尔科夫模型                                              ?



1 基于肤色分割的人脸检测、

1、图像预处理;2、建立肤色模型;3、相似度计算;4、二值化

1、图像预处理:

包括滤除噪声和亮度补偿。滤除噪声中是使用高斯滤波器等方法进行;由于光照影响图像的亮度,这里亮度补偿采用Gary World算法对RGB图像进行快速颜色补偿,即如下公式:

S=av1/av2;f=f1*S;其中av1为标准亮度图像R、G、B的平均值,av2为原输入图像R、G、B的平均值,f1为原输入图像的像素值,f为亮度补偿后输出图像的像素值.

YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量

也可以不预处理只用表征颜色的b、r不用Y(这时图像是纯色的);


2、建立肤色模型


①收集大量人脸图片样本,收集的样本应多样化,包含不同性别,年龄以及种类,并剪切出人脸肤色区域做统计样本;

②在将色彩空间转换到YCbCr色彩空间,统计所有像素的Cb、Cr的数量;

③计算出均值,,同时计算出方差,以及协方差和。


肤色的高斯模型:         



x是二维向量r、b是两个关于颜色的量,x=m时,P=1;然后递减,可以表示是人脸的概率;

m=(1,1);c=1;的肤色概率模型:z=exp(-(x.^2+y.^2)/2);




2 基于线性子空间的人脸检测、(PCA)?

3 基于贝叶斯估计的人脸检测

条件概率:



全概率公式:



贝叶斯公式:


对一幅图像来说:

算出所有的P(y=yk | x);看看x属于哪一类的概率最大;



对图片用贝叶斯检测人脸:将人脸分为小块,每块寻找一个高维向量(Gabor特征等),对每个小块用混合高斯建模,训练一个贝叶斯分类器;每个小块的分类器融合的方法:加权求和、相乘等;


贝叶斯的使用:从病人的咳嗽、发烧等判断,病人得病了没?得的什么病?

条件概率、贝叶斯:https://wenku.baidu.com/view/8c42042f2af90242a895e54a.html

4 基于人工神经网络的人脸检测、

5 基于svm的人脸检测

一般是LBP+SVM;

我见过的将svm最全的博客了:http://blog.csdn.net/v_july_v/article/details/7624837#t34

6 基于Adaboost算法的人脸检测

一般是Adaboost+haar/HOG/LBP;

HOG:方向梯度直方图(Histogram of Oriented Gradient, HOG):http://blog.csdn.net/dream_bin123/article/details/78774871


7 隐马尔科夫模型?

马尔可夫模型:t+1时刻的观察序列,有且仅由t时刻的观察序列决定;

隐马尔可夫模型:有两个序列:状态序列,观察序列;;状态序列之间会转移,状态序列决定当前时刻的观察序列;


隐马尔可夫模型是采用概率统计的方法描述时变信号。 HMM原来是应用在语音识别领域的,并取得了相当的成功,但是由于语音信号是一维信号,而图像是二维信号,为了把HMM应用于二维的图像,就要在图像上取一个采样窗口,该窗口的宽度就是图像的宽度,高度可能只有几个像素,然后将在图像上由上至下滑动,相邻窗口之间允许重叠,这样就把人脸垂直分成了五个区域:前额,眼睛,鼻子,嘴巴,下领,然后用一个五状态的HMM模型来表达人脸。基于离散马尔可夫模型和奇异值特征的人脸检测方法.其实质是将奇异值特征转化为向量序列.再利用HMM对其进行识别,这种方法鲁棒性较好,对不同角度和不同光照条件的人脸图像都可以取得较好的识别效果。



奇异值分解+隐马尔可夫:

奇异值分解:

http://blog.csdn.net/zhongkejingwang/article/details/43053513

基于隐马尔可夫模型的人脸识别研究_沈杰.caj

隐马尔可夫:

隐马尔可夫图解:https://wenku.baidu.com/view/a60329ea6edb6f1afe001f2c.html
隐马尔可夫三个问题:
1 计算观察序列的概率:
2 计算观察序列对应的最可能的状态系列(预测):
https://wenku.baidu.com/view/f1ed2b325b8102d276a20029bd64783e09127ddc.html

3 参数学习之Baum-Welch算法详解(无监督的没看懂):
隐马尔可夫模型的学习,就是求A(状态转移矩阵)、B(状态到观察)可以统计来做啊,根据训练数据是包括观测序列和对应的状态序列还是只有观测序列,可以分别由监督学习与非监督学习实现。本节首先介绍监督学习算法,而后介绍非监督学习算法——Baum-Welch算法(也就是EM算法)
http://blog.csdn.net/u014688145/article/details/53046765?locationNum=7&fps=1









  • 12
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Spring Boot可以作为后端框架,来开发一个考试人脸检测系统。 考试人脸检测系统主要分为前端和后端两个部分。前端主要是用户界面展示,后端则是处理用户请求和实现人脸检测功能。 首先,我们可以使用Spring Boot来搭建后端服务器。Spring Boot提供了丰富的功能和便捷的开发方式,可以快速构建一个可靠的后端系统。我们可以使用Spring MVC来处理前端页面的请求,使用Spring Data JPA来处理数据库操作,以及使用Spring Security来管理用户身份验证和权限控制。 其次,为了实现人脸检测功能,我们可以使用一些开源的人脸检测库,如OpenCV或dlib。这些库提供了丰富的人脸检测算法和功能,可以帮助我们实现人脸的识别和检测。 在后端的代码中,我们可以使用Spring Boot的依赖注入和AOP(面向切面编程)等特性,来管理和组织各个模块的代码。我们可以将人脸检测功能封装成一个服务或工具类,然后通过依赖注入的方式在其他类中使用。同时,我们还可以使用AOP来实现日志记录和异常处理等功能。 此外,为了实现更好的用户体验,我们可以使用一些前端框架,如Vue.js或React,来构建用户界面。前端页面可以使用HTML、CSS和JavaScript来实现,可以提供用户上传照片的功能,并通过调用后端的API来实现人脸检测的功能。 总结来说,使用Spring Boot作为后端框架来开发考试人脸检测系统可以快速、方便地实现功能。通过合理的架构和设计,我们可以充分利用Spring Boot的优势,提高系统的性能和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值