AdaBoost人脸检测原理

FROM:http://blog.sina.com.cn/s/blog_4e6680090100d2se.html

对人脸检测的研究最初可以追溯到 20 世纪 70 年代,早期的研究主要致力于模板匹配、子空间方法,变形模板匹配等。近期人脸检测的研究主要集中在基于数据驱动的学习方法,如统计模型方法,神经网络学习方法,统计知识理论和支持向量机方法,基于马尔可夫随机域的方法,以及基于肤色的人脸检测。目前在实际中应用的人脸检测方法多为基于 Adaboost 学习算法的方法。

Viola人脸检测方法是一种基于积分图、 级联检测器和AdaBoost 算法的方法,方法框架可以分为以下三大部分:
     第一部分,使用Harr-like特征表示人脸,使用“ 积分图”实现特征数值的快速计算;
     第二部分, 使用Adaboost算法挑选出一些最能代表人脸的矩形特征( 弱分类器),按照加权投票的方式将弱分类器构造为一个强分类器;
     第三部分, 将训练得到的若干强分类器串联组成一个级联结构的层叠分类器,级联结构能有效地提高分类器的检测速度。

Adaboost 算法是一种用来分类的方法,它的基本原理就是“三个臭皮匠,顶个诸葛亮”。它把一些比较弱的分类方法合在一起,组合出新的很强的分类方法。

例如下图中

需要用一些线段把红色的球与深蓝色的球分开,然而如果仅仅画一条线的话,是分不开的。

a
b
c
d

使用Adaboost算法来进行划分的话,先画出一条错误率最小的线段如图 1 ,但是左下脚的深蓝色球被错误划分到红色区域,因此加重被错误球的权重,再下一次划分时,将更加考虑那些权重大的球,如 c 所示,最终得到了一个准确的划分,如下图所示。

人脸检测的目的就是从图片中找出所有包含人脸的子窗口,将人脸的子窗口与非人脸的子窗口分开。

大致步骤如下:

(1)在一个 20*20 的图片提取一些简单的特征(称为Harr特征),如下图所示。

它的计算方法就是将白色区域内的像素和减去黑色区域,因此在人脸与非人脸图片的相同位置上,值的大小是不一样的,这些特征可以用来区分人脸和分人脸。

(2)目前的方法是使用数千张切割好的人脸图片,和上万张背景图片作为训练样本。训练图片一般归一化到 20*20 的大小。在这样大小的图片中,可供使用的 haar 特征数在 1 万个左右,然后通过机器学习算法 —adaboost 算法挑选数千个有效的 haar 特征来组成人脸检测器。

(3)学习算法训练出一个人脸检测器后,便可以在各个场合使用了。使用时,将图像按比例依次缩放,然后在缩放后的图片的 20*20 的子窗口依次判别是人脸还是非人脸。

人脸检测的流程

人脸检测在实际中主要用于人脸识别的预处理,即在图像中准确标定出人脸的位置和大小。

目前人脸检测技术在门禁系统、智能监控系统中已得到了很好的应用。另外,目前的笔记本电脑中也陆续开始使用人脸识别技术作为计算机登录的凭证。近年来,在数码相机和手机中也集成了人脸检测算法,作为一个新的功能提供用户使用。在这些应用中,人脸检测都是发挥着至关重要的作用

AdaBoost人脸检测原理相关推荐

  1. 移植OpenCV的AdaBoost人脸检测算法到DM6467

    1        人脸检测算法在DM6467上移植的步骤 要将人脸检测算法移植到DM6467,我们使用OpenCV现有的源码作为基础.首先,需要在PC上用C语言实现人脸检测的程序编写,然后移植Open ...

  2. Adaboost 人脸检测:Haar特征及积分图、分类器的级联

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 人脸识别功能实现的原理介绍与算法介绍 人脸识别:人脸数据集 A ...

  3. viola jones人脸检测原理

    viola jones人脸检测原理 Viola-jones人脸检测算法是一种基于滑动窗口的目标检测算法,但它却克服了滑动窗口检测带来的低效问题,可以用于实时人脸检测,主要归功于以下三点: 利用一种新的 ...

  4. CV之Face Detection:Face Detection人脸检测原理及其常见分类技术

    CV之Face Detection:Face Detection人脸检测原理及其常见分类技术 目录 人脸探测的原理 线性分类器 影像金字塔 滑动窗格 人脸探测的原理 将图片转为HOG图片以后,结合其他 ...

  5. CV之FR/FD:人脸识别之Face Detection人脸检测原理及其常见分类技术

    CV之FR/FD:人脸识别之Face Detection人脸检测原理及其常见分类技术 目录 人脸识别之Face Detection人脸检测原理及其常见分类技术 人脸探测的原理 线性分类器 影像金字塔 ...

  6. AdaBoost人脸检测算法1(转…

    原文地址:AdaBoost人脸检测算法1(转)作者:shl504 目前因为做人脸识别的一个小项目,用到了AdaBoost的人脸识别算法,因为在网上找到的所有的AdaBoost的简介都不是很清楚,让我看 ...

  7. dlib 人脸检测原理

    找了半天终于找到一篇blog里面说了dlib内部使用的算法 https://talengu.github.io/public/2018/11/12/cv/FaceDetectionComparison ...

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

    转自:https://wizardforcel.gitbooks.io/dm-algo-top10/content/adaboost.html(脸书动不动上不去故转载)(主要看adaboost的例子. ...

  9. Adaboost的几个人脸检测网站

    [1]基础学习笔记之opencv(1):opencv中facedetect例子浅析 http://www.cnblogs.com/tornadomeet/archive/2012/03/22/2411 ...

最新文章

  1. GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
  2. 统计简单学_回归分析
  3. IT兄弟连 JavaWeb教程 JSON和JSON字符串
  4. 分享关于搭建高性能WEB服务器的一篇文章
  5. 静态方法+工厂方法(静态方法用途)
  6. 微信小程序 - 高级 - 深度实践 - wx:for-item 与 data-xxx 的联合应用 实现后台动态数据自动加载的正确方法概述
  7. 三,springboot集成mybatis
  8. Kaggle 数据清洗挑战 Day 5 - 处理不一致数据
  9. spring-boot-maven-plugin多模块install问题解决办法
  10. android无网络状态栏,Android中检查网络连接状态的变化,无网络时跳转到设置界面...
  11. Ubuntu命令参考手册
  12. 基于C++实现校园卡管理系统
  13. (ensp)华为USG6000v防火墙简单配置
  14. 47页数字孪生人脸识别轨迹分析电子围栏智慧工地解决方案
  15. CRM客户管理系统-SSM框架项目实战教程
  16. Gesture-Recognition
  17. 2019 未能正确加载ExtensionManagerPackage
  18. MySQL按指定字段自定义列表排序
  19. 解决data too long for column 'name' at row2
  20. docker内存满了

热门文章

  1. java runnable wait_面试官:都说阻塞 I/O 模型将会使线程休眠,为什么 Java 线程状态却是 RUNNABLE?...
  2. java栈的回收_JAVA的堆栈和内存、垃圾回收解说
  3. linux下find命令用法
  4. 荣耀20搭载鸿蒙,荣耀20系列刚发布,搭载鸿蒙系统新机来袭,余承东已准备好!...
  5. php 文件迭代对象,通过PHP中的stdClass对象进行迭代
  6. runtime的常用方法objc_setAssociatedObject的使用
  7. GDB 使用详解-----转载
  8. 如何在查询分析器中执行dos命令
  9. 不能使用 '';文件已在使用中。
  10. php开源 饭馆记账软件_GitHub - CNYoki/xxjzWeb: 小歆记账WebApp项目(Web服务端)