机器学习_基于adaboost和haar like特征的人脸识别

基于adaboost做人脸识别的一篇论文

        PAUL VIOLA  的 Robust Real-Time Face Detection      Rapid object detection using a boosted cascade of simple features

其中谈到使用haar like特征,参考这篇论文

       Rainer Lienhart and Jochen Maydt 的 An Extended Set of Haar-like Features for Rapid Object Detection 

在整个读论文的过程中,通过如下资源,理清了论文中的很多知识点:

      1.haar like原型特征与特征矩阵

       在使用haar like特征做人脸识别时,介绍了3类的haar 原型特征:

                                                                                

           在论文中提到,将feature放到图像上,黑色矩形像素值的和减去白色矩形像素值的和得到一个特征值,该特征值就是haar特征,使用该特征值计算弱分类器的

           的阈值。但是需要注意的是此处的feature,并非简单的指上边的几个原型特征,而是通过在检测子窗口(一般为24x24像素)左右、上下平移,伸缩变换这些原型

           特征得到的子窗口。一个特征原型在子窗口中伸缩大小不同,或者位置不同,就得到一个不同的feature,如下图:

                                                                     

            论文作者在一个检测子窗口中画了两个变换后的原型矩阵,他这样做是为了节省论文版面同时展示0°、45°两种原型特征在子窗口中的摆放,实际上每个子窗

            口只放一个原型特征形成一个feature。

            一个0°型原型特征可以得到的feature个数:

            

           一个45°型原型特征可以得到的feature个数:

           

            其中:

            关于公式怎么来的,可能要细心推导一下,不过中心思想就是,

                   1、对于某特定大小的特征,在窗口内滑动计算。
     
   也就是1(a)特征大小为2*1,对于24*24的图像。水平可滑动23步,垂直滑动24步,所以共有23*24个特征。
                  2、对于一个特征,特征本身沿水平、竖直方向分别缩放。
     
             还看特征1(a),特征大小为2*1,则延水平方向可放大为:4*1,6*1,8*1,…,24*1;竖直方向可放大为:2*1,2*2,2*3,…,2*24。

                   即每个特征有XY种放大方式。(!放大的矩形特征并限制保持2:1的比例!)

            这部分我是参考 【OpenCV】计算Haar特征个数 这篇博客弄懂的,其中它写了个程序来计算feature个数。

            最终的得到的feature总数(在24x24窗口中)为:

                                                                 

           

            2.图像积分图:

            图像积分图的意义在于可以快速得到图像中任意矩形中的像素和,从而可以计算feature的特征值。

            计算过程参考Rapid object detection using a boosted cascade of simple features、An Extended Set of Haar-like Features for Rapid Object Detection 论文,

            或者 【Paper】利用积分图像法快速计算Haar特征 这篇博客。

            3.adaboost训练识别器过程:

            在Rapid object detection using a boosted cascade of simple features这篇论文中,给出训练过程如下

                                                                                                          

                    其中boosting步骤的第三步,对于每个feature训练一个弱分类器,选择误分率最小的弱分类器。每个弱分类为如下公式所示:

                                                                 

                    其中x为图像的24x24的子窗口。

                    但是这篇论文并没有给出弱分类器阈值的计算方法,在 Robust Real-Time Face Detection这篇论文中,作者给出boost步骤后,

                    补了一段训练弱分类器方法:

                                                                             

                       4.决策树中连续变量的阈值

                                                    

                       决策树算法中,通过计算信息熵和信息增益(或增益比)的决定各个决策节点的构造关系,具体算法参考《机器学习》这本书中关于

                       决策树的介绍,或者通过 C4.5 决策树 (侧重连续变量的阈值计算),决策树算法总结(侧重信息熵、信息增益)这两篇博客。

                       在第一篇博客中,对于golf数据集

                                                                

                         按照如下步骤计算,其中E.g 中使用info表示信息熵不规范,应该为Entropy公式。

                         

                        1.信息熵公式

                        

                        

                         2.信息增益

                         

                        

                       同时可以参考stackoverflow中关于adaboost阈值的讨论 The best way to calculate the best threshold with P. Viola, M. Jones Framework

                        csdn论文资源:

                        Rapid Object Detection using a Boosted Cascade of Simple Features

                        Robust Real-Time Face Detection

                        An Extended Set of Haar-like Features for Rapid Object Detection

                        基于gentle adaboost算法的人脸检测研究

                        参考的博客地址:

                        人脸检测 中文博客:

                        http://www.cnblogs.com/ello/archive/2012/04/28/2475419.html


                        决策树 连续值节点阈值的计算:

                        http://fangdonghao1029.blog.163.com/blog/static/34364307201281352032174/


                        决策树 熵、信息增益的计算:

                        http://www.cnblogs.com/biyeymyhjob/archive/2012/07/23/2605208.html


                        haar特征数计算:

                        http://blog.csdn.net/xiaowei_cqu/article/details/8216109


                        stackoverflow关于adaboost弱分类器阈值的讨论:

                        http://stackoverflow.com/questions/9777282/the-best-way-to-calculate-the-best-threshold-with-p-viola-m-jones-framework

                        重要:

                        opencv doc 物体检测 http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html

                       

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值