机器学习_基于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

                       

时间: 2024-12-01 07:07:17

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

脸部识别-急求!在线等!问一个关于特征脸人脸识别的问题!

问题描述 急求!在线等!问一个关于特征脸人脸识别的问题! 我想问一个问题,比如说,A 和B长的很像,有罪犯的照片C,如何确定A B那个是罪犯?这个问题是关于特征维度的取法提高信息数量还是改进特征提取方法选取A B的最大差异部分匹配 或者是 关于不同距离分类器的识别效果呢? 解决方案 可以两个都做,然后打分,取加权分.哪个分高哪个就是 解决方案二: 这个题目的要求就是提高准确度吗?

基于云计算的人脸识别系统研究与实现

基于云计算的人脸识别系统研究与实现 华南理工大学  李仕钊 本文完成的主要工作如下:1.以5台机器以Master/Slaver的结构,在linux系统下配置好网络.文件,并安装好相关的软件,从而完成Hadoop分布式系统的构建.2.基于人脸识别的整体架构,就特征提取和分类器设计两方面分析了各种常用人脸识别算法能否适应Hadoop下的MapReduce计算框架.而鉴别是否能够适合MapReduce计算框架的标准是计算的可分离度是否高,不可分离的计算是否计算量足够小.3.应用HOG特征在人脸识别上.

人脸检测-adaboost中haar特征的积分图如何计算

问题描述 adaboost中haar特征的积分图如何计算 积分图是先将每个位置对应的区域的值相加后放到数组中吗?即第一步的值是放到数组中吗?如果一个大图片那岂不是数组要占用很大空间啊. 解决方案 Haar特征与积分图Haar特征与积分图Haar特征与积分图

【玩转数据系列十三】机器学习算法基于信用卡消费记录做信用评分

机器学习算法基于信用卡消费记录做信用评分 背景 如果你是做互联网金融的,那么一定听说过评分卡.评分卡是信用风险评估领域常用的建模方法,评分卡并不简单对应于某一种机器学习算法,而是一种通用的建模框架,将原始数据通过分箱后进行特征工程变换,继而应用于线性模型进行建模的一种方法. 评分卡建模理论常被用于各种信用评估领域,比如信用卡风险评估.贷款发放等业务.另外,在其它领域评分卡常被用来作为分数评估,比如常见的客服质量打分.芝麻信用分打分等等.在本文中,我们将通过一个案例为大家讲解如何通过PAI平台的金

基于 OpenCV 的人脸识别

##一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从谷歌街景的图片拼接,到交互艺术展览的技术实现中,都有 OpenCV 的身影. OpenCV 起始于 1999 年 Intel 的一个内部研究项目.从那时起,它的开发就一直很活跃.进化到现在,它已支持如 OpenCL 和 OpenGL 等现代技术,也支持如 iOS 和 Android 等平台. 1

【原】训练自己haar-like特征分类器并识别物体(2)

在上一篇文章中,我介绍了<训练自己的haar-like特征分类器并识别物体>的前两个步骤: 1.准备训练样本图片,包括正例及反例样本 2.生成样本描述文件 3.训练样本 4.目标识别 ================= 今天我们将着重学习第3步:基于haar特征的adaboost级联分类器的训练.若将本步骤看做一个系统,则输入为正样本的描述文件(.vec)以及负样本的说明文件(.dat):输出为分类器配置参数文件(.xml). 老规矩,先介绍一下这篇文章需要的工具,分别是(1)训练用的open

【iPhone X重磅发布】携A11人工智能芯片登场,人脸识别9大特征

苹果13日凌晨发布了本年度最重量级的产品--iPhone X (iPhone 10).这款用人脸识别进行解锁的新iPhone 可能是苹果AI属性最强的一个产品了.在发布会现场,苹果介绍了A11生物神经网络引擎"这一AI芯片,近期,以智能手机为主的终端设备定制芯片已经形成一种新的趋势,我们将在文章中进行重点介绍.另外,本文也会介绍苹果在人工智能上的实力储备情况:主要从四篇经典论文谈起. 北京时间9月13日凌晨,苹果在新的总部召开发布会,发布新的智能手表.电视和手机等一系列新产品.这是最受科技界关注

C#实现基于ffmpeg加虹软的人脸识别

原文:C#实现基于ffmpeg加虹软的人脸识别 关于人脸识别 目前的人脸识别已经相对成熟,有各种收费免费的商业方案和开源方案,其中OpenCV很早就支持了人脸识别,在我选择人脸识别开发库时,也横向对比了三种库,包括在线识别的百度.开源的OpenCV和商业库虹软(中小型规模免费). 百度的人脸识别,才上线不久,文档不太完善,之前联系百度,官方也给了我基于Android的Example,但是不太符合我的需求,一是照片需要上传至百度服务器(这个是最大的问题),其次,人脸的定位需要自行去实现(捕获到人脸

【原】训练自己haar-like特征分类器并识别物体(1)

本系列文章旨在学习如何在opencv中基于haar-like特征训练自己的分类器,并且用该分类器用于模式识别.该过程大致可以分为一下几个大步骤: 1.准备训练样本图片,包括正例及反例样本 2.生成样本描述文件 3.训练样本 4.目标识别 ================= 本文主要对步骤1.步骤2进行说明. 1.准备训练样本图片,包括正例及反例样本 1)正样本的采集: 所谓正样本,是指只包含待识别的物体的图片,一般是一些局部的图片,且最好能转化为灰度图.比如,若你想识别人脸,则正样本应尽可能只包