【人脸检测——基于机器学习3】AdaBoost算法

  1. 简介

  1. 主要工作

AdaBoost算法的人脸检测算法包含的主要工作:(1)通过积分图快速求得Haar特征;(2)利用AdaBoost算法从大量的特征中选择出判别能力较强的少数特征用于人脸检测分类;(3)提出一个级联结构模型,将若干个弱分类器集成一个强分类器,其能够快速排除非人脸区域,提高算法的检测速度。

2. AdaBoost算法具体描述

AdaBoost算法的原理是通过逐级增强的方法将弱分类器组合成为分类效果较好的强分类器,具体来说:

(1) 给定一个弱学习算法和一个训练集,其中是输入的训练样本向量,是分类的类标志。

(2) 初始化时,对所有训练样本均赋以一个相同的权重

(3)然后用该弱学习算法对训练样本进行T轮训练。在每一轮训练结束后,对负样本赋予较大的权重

(4)终止条件:迭代训练次数T或者误差率。

3. 组成成分

一个Adaboost分类器有多个强分类器组成的级联构成,而每个强分类器由多个弱分类器级联构成,而弱分类器级联由弱干个特征Node构成。

  1. 成分作用

强分类器:做出判决(判决为人脸还是非人脸)。

对于三个个强分类器,假设分别 有特征和对应的阈值。对于输入的窗口图像,若此时,则输出判决为人脸。

弱分类器:计算出强分类器的特征

Eg:强分类器的特征,其中为第i个弱分类器计算出来的特征

Node点:

每个haar特征对应于一个node节点

Eg: 对于node1,

若此时对应的haar1>nodeT1(node1的阈值),此时,当前节点node1的特征

若此时对应的haar1<nodeT1(node1的阈值),此时,当前节点node1的特征

整个Node节点:

若此时Z大于弱分类器的阈值,,反之,

二、弱分类器

1.什么是弱分类器

AdaBoost算法中弱分类器可以是任何分类器,包括决策树,神经网络等等。弱分类器的分类正确率一般不需要太高,只需要比随机猜测稍好,超过50%即可。大部分文献及开源代码都选择了决策树作为弱分类器。

2.弱分类器的设计

a. 基于单一Haar特征的弱分类器表达式

弱分类器一般选择尽可能简单易得的特征,而Haar特征满足这种原则,因此我们选择基于单一Haar特征的弱分类器。

图像中一个Haar特征对应一个弱分类器,弱分类器的函数表达式

其中:为Haar特征的特征值,为判定阈值,为不等式方向,指图像中某一大小的子窗口。在给定某一Haar特征后,与之对应的弱分类器就已经确定了。剩下的问题就变为如何弱分类器判决阈值。 因为每个弱分类器只允许基于一个特征,这样在筛选弱分类器的同时实际上也就完成了对特征的选择。

b.弱分类器的训练过程

在当前样本权重分布下,确定特征的最优阈值,使得使用该特征训练求得的分类器,对于整个训练样本所得的分类错误率最低,而最优弱分类器则是通过遍历整个矩形特征,从中选择某个对于整个训练集的分类错误最低的那个Haar特征。对于某一Haar矩形特征,首先采用积分图求出该特征在所有训练样本上的特征值,然后对这些特征值进行排序,最后通过遍历排序好的特征值即可完成对弱分类器的学习。

原文地址:https://www.cnblogs.com/gfgwxw/p/9600657.html

时间: 2024-10-14 23:16:20

【人脸检测——基于机器学习3】AdaBoost算法的相关文章

【人脸检测——基于机器学习4】HOG特征

前言 HOG特征的全称是Histograms of Oriented Gradients,基于HOG特征的人脸识别算法主要包括HOG特征提取和目标检测,该算法的流程图如下图所示.本文主要讲HOG特征提取. HOG特征的组成 Cell:将一幅图片划分为若干个cell(如上图绿色框所示),每个cell为8*8像素 Block:选取4个cell组成一个block(如上图红色框所示),每个block为16*16像素.Block的滑动步长为8像素,如黄色箭头所示 Detection Window:令64*

人脸检测之Haar-like,Adaboost,级联(cascade)

0:写在前面的话 写在前面的牢骚话,作为一个非主流工程师,我专业与目前工作都与这些知识相隔十万八千里,所以,我所学习和实现的完全是因为兴趣,目前还研究学习的很浅,谈不上高深,所以还是要继续努力学习.希望和大家多交流,也欢迎伪大牛,假专家板砖伺候,也希望真大牛多指点(真大牛不会啰嗦一堆来显得他知道的多,哈哈),总之,本人还在菜鸟阶段,欢迎指教.0.0本文如有错误请及时留言指出,博主会在第一时间修改,确保不会对其他读者产生副作用. 1:人脸检测与识别 人脸识别系统主要包括四个组成部分,分别为:人脸图

人脸检测——基于OpenCV等开源库

一.人脸检测简介 人脸检测是自动人脸识别系统中的一个关键环节.早期的人脸识别研究主要针对具有较强约束条件的人脸图象(如无背景的图象),往往假设人脸位置一直或者容易获得,因此人脸检测问题并未受到重视.随着电子商务等应用的发展,人脸识别成为最有潜力的生物身份验证手段,这种应用背景要求自动人脸识别系统能够对一般图象具有一定的识别能力,由此所面临的一系列问题使得人脸检测开始作为一个独立的课题受到研究者的重视.今天,人脸检测的应用背景已经远远超出了人脸识别系统的范畴,在基于内容的检索.数字视频处理.视频检

机器学习之Adaboost算法原理

转自:http://www.cnblogs.com/pinard/p/6133937.html 在集成学习原理小结中,我们讲到了集成学习按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,另一类是个体学习器之间不存在强依赖关系.前者的代表算法就是是boosting系列算法.在boosting系列算法中, Adaboost是最著名的算法之一.Adaboost既可以用作分类,也可以用作回归.本文就对Adaboost算法做一个总结. 1. 回顾boosting算法的基

Adaboost算法详解(haar人脸检测)

Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器).Adaboost算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值.将修改过权值的新数据集送给下层分类器进行训练,最后将每次得到的分类器最后融合起来,作为最后的决策分类器. 算法概述 1.先通过对N个训练样本的学习得到第一个弱分类器: 2.将分错的样本和其他的新数据

浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联

浅析人脸检测之Haar分类器方法 一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸检测也逐渐作为一个单独的研究方向发展起来. 目前的人脸检测方法主要有两大类:基于知识和基于统计. Ø  基于知识的方法:主要利用先验知识将人脸看作器官特征的组合,根据眼睛.眉毛.嘴巴.鼻子等器官的特征以及相互之间的几何位置关系来检测人脸. Ø  基于统计的方法:将人脸看作一个整体的模式——二维像素矩

Adaboost算法结合Haar-like特征

本文主要是介绍自适应提升学习算法(Adaptive Boosting,Adaboost)原理,因为其中涉及到分类器,而分类器往往是基于一些样本特征得到的,所以在此介绍最常用的Adaboost算法结合Haar-like特征.该算法首先在人脸检测中得到广泛运用,而后也被用于其它有关目标检测中. 1.Adaboost算法 1.1 Adaboost算法的前生 在了解Adaboost之前,先了解一下Boosting算法. 回答一个是与否的问题,随机猜测可以获得50%的正确率.若一种方法能获得比随机猜测稍微

OpenCV&amp;Qt学习之四——OpenCV 实现人脸检测与相关知识整理

开发配置 OpenCV的例程中已经带有了人脸检测的例程,位置在:OpenCV\samples\facedetect.cpp文件,OpenCV的安装与这个例子的测试可以参考我之前的博文Linux 下编译安装OpenCV. 网上能够找到关于OpenCV人脸检测的例子也比较多,大多也都是基于这个例程来更改,只是多数使用的是OpenCV 1.0的版本,而OpenCV2.0以后由于模块结构的更改,很多人并没有将例程运行起来.如果是新版的OpenCV跑旧的例程,编译运行出错的话,需要确保: #include

一个关于AdaBoost算法的简单证明

下载本文PDF格式(Academia.edu) 本文给出了机器学习中AdaBoost算法的一个简单初等证明,需要使用的数学工具为微积分-1. Adaboost is a powerful algorithm for predicting models. However, a major disadvantage is that Adaboost may lead to over-fit in the presence of noise. Freund, Y. & Schapire, R. E.