基于adaboost的人脸快速检测

文章目录

  • 人脸检测方法
    • 基于肤色特征的检测
      • 高斯肤色模型
      • 肤色模型的缺点
  • 基于AdaBoost的快速人脸检测
    • Haar-like矩形特征
    • Haar-like特征的表示
    • 快速计算任意矩阵内所有像素的亮度之和
    • AdaBoost
    • 基于AdaBoost的快速人脸检测
      • 基于分级分类器的加速策略
      • 分级分类器的构建

人脸检测方法

  • 基于规则/知识方法
    归纳描述人脸特征的规则,如灰度分布、比例关系、纹理信息等.
  • 基于模板的方法
    固定模板法、可变形模板法
  • 基于不变特征的方法
    如彩色信息,基于肤色
  • 基于表观分类器学习的方法
    将人脸检测视为区分非人脸样本和人脸样本的PR问题.

基于肤色特征的检测

RGB、normalized RGB、HSV、YIQ、YES、CIE XYZ、CIE LUV等.

高斯肤色模型

  • 一元正态分布肤色模型,以F颜色特征为例
    F   N ( μ , σ ) μ = 1 N ∑ i = 1 N F i , σ 2 = 1 N − 1 ∑ i = 1 N ( F i − μ ) 2 F~N(\mu,\sigma)\\ \mu = \frac{1}{N}\sum_{i=1}^NF_i,\sigma^2 = \frac{1}{N-1}\sum_{i=1}^N(F_i-\mu)^2 F N(μ,σ)μ=N1i=1NFi,σ2=N11i=1N(Fiμ)2
    基于adaboost的人脸快速检测_第1张图片

  • 二元正态分布肤色模型
    N ( μ , ∑ ) , w h e r e    μ = ( r ˉ , g ˉ ) r ˉ = 1 N ∑ i = 1 N r i , g ˉ = 1 N ∑ i = 1 N g i ∑ = [ σ r r σ r g σ g r σ g g ] N(\mu,\sum),where\ \ \mu=(\bar{r},\bar{g})\\ \bar{r} = \frac{1}{N}\sum_{i=1}^Nr_i,\bar{g} = \frac{1}{N}\sum_{i=1}^Ng_i\\ \sum = \bigg[\begin{matrix} \sigma_{rr}&\sigma_{rg}\\ \sigma_{gr}&\sigma_{gg} \end{matrix}\bigg] N(μ,),where  μ=(rˉ,gˉ)rˉ=N1i=1Nri,gˉ=N1i=1Ngi=[σrrσgrσrgσgg]
    基于adaboost的人脸快速检测_第2张图片

  • 多人脸训练肤色模型

    训练肤色模型

    • 手工标注部分人脸图象
    • 统计方法得到 μ , ∑ \mu,\sum μ,
    • 设置合适的阈值截断

    测试阶段

    • 逐像素判断其是否在设定的肤色特征范围内

肤色模型的缺点

  • 肤色模型难以适应各种环境光照变化
    • 背景和前景的光照变化,肤色通常不稳定.
    • 单纯的肤色信息对于人脸检测通常是不充分的.
  • 如何适应在不同光照下的人脸跟踪
    • 如果环境光照有变化,原有的肤色模型可能不再适用,如何建立一个自适应的肤色模型.

基于AdaBoost的快速人脸检测

  1. 采用简单的Haar-like矩形特征作为弱特征,可快速计算.
  2. 基于AdaBoost的分类器设计.
  3. 采用了Cascade(分级分类器)技术提高检测速度.

Haar-like矩形特征

所有白色矩形中像素的亮度值的和,减去所有灰色矩形中点的亮度值的和,得到的差即为Haar-like特征.
基于adaboost的人脸快速检测_第3张图片

Haar-like特征的表示

可以用一个五元组来表示

r(2,2,4,2,A)表示下面的特征

基于adaboost的人脸快速检测_第4张图片

快速计算任意矩阵内所有像素的亮度之和

利用动态规划的思想求任意一点左上角的所有像素亮度积分值 i i ( x , y ) ii(x,y) ii(x,y).

矩形D内像素亮度积分值:

= i i ( 4 ) − ( i i ( 2 ) + i i ( 3 ) ) + i i ( 1 ) ii(4)-(ii(2)+ii(3))+ii(1) ii(4)(ii(2)+ii(3))+ii(1)

基于adaboost的人脸快速检测_第5张图片

AdaBoost

采用AdaBoost算法对Haar-like矩形特征进行分类,为了求得在图像中所有尺寸及角度的人脸,我们需要采取所有可能的矩阵大小甚至旋转对整个图像遍历多次.

基于AdaBoost的快速人脸检测

基于分级分类器的加速策略

  • 大量候选窗口可以利用非常少的特征就可以排除是人脸的可能性。
  • 只有极少数需要大量特征.

分级分类器的构建

  • 采用由粗至细的思想(coarse to fine)
    • 将少量区分性好的特征构成简单分类器置于前面若干层. 放过检测绝大数人脸的同时,排除大量非脸.
    • 后面曾包含更多次重要的特征对非脸进行进一步排除.
  • 训练方法关键思路
    每层训练的非脸样本使用前面层分类器误判为人脸的那些样本.
    基于adaboost的人脸快速检测_第6张图片

你可能感兴趣的:(机器学习,计算机视觉)