文档章节

基于AdaBoost的人脸检测

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:45
字数 705
阅读 29
收藏 1

人脸检测和人脸识别都是属于典型的机器学习的方法,但是他们使用的方法却相差很大。

对于人脸检测而言,目前最有效的方法仍然是基于Adaboost的方法。在网上可以找到很多关于Adaboost方法的资料,但基本上是千篇一律,没有任何新意。给初学者带了很多不便。建议初学者只需要认真阅读:北京大学 赵楠 的本科毕业论文 :基于 AdaBoost算法的人脸检测 这篇毕业论文就够了。作者详细分析了Adaboost算法在人脸检测中的具体执行过程,尤其是关于弱分类器的Haar特征选取过程,描述的相当清晰。

 

至于人脸检测的代码,网上基本上是关于如何用openCV去做人脸检测的代码。如果不需要对性能做更高的要求的话,直接用openCV就可以了。

根据对openCV代码的理解,我重新提取了openCV人脸检测的代码,采用纯C语言实现了人脸检测,与openCV的代码项目相比,有一下几点不同:

1. 使用内存少。

    1.1 原始openCV在检测初始化的时候分配一个很大的buffer,在人脸检测当中使用这个buffer,这个是由openCV的内存管理机制决定的。但在很多时候,图像大小一般都没有想象的那么大,这个大buffer只使用了其中的一小部分,内存空闲很大。在我的人脸检测中,根据图像大小分配2张图片大小内存,分别存放积分图和平方积分图。其它的内存是结构体占用的内存,一般比较小。

   1.2 原始openCv分类器文件是XML文本文件,而在我的人脸检测之中是二进制文件。所以分类器文件比openCV小至少5倍以上。

2.   运行效率高

      删除了Canny边缘检测的代码,针对具体的应用重新修改了算法执行中的部分参数。由于分类器是基于openCv改的,所以对人脸检测的准确率没有任何下降。

目前算法的代码虽然是纯C语言,但还没有做定点优化。目前的性能在iPod4上面,对于640x480的图片,检测单张人脸的时间是60ms左右。

如果对adaBoost算法本身感兴趣,除了可以阅读openCv中的代码之外,还有一个官方的代码,实现了各种AdaBoost算法。

 

部分人脸检测图片的结果如下:

 

 

另外一张图片:

 

测试图片来自网络,如涉及到版权问题,请告知!

本文转载自:http://www.cnblogs.com/celerychen/archive/2013/03/19/2969194.html

共有 人打赏支持
abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
一文综述人脸检测算法(附资源)

人脸检测是目前所有目标检测子方向中被研究的最充分的问题之一,它在安防监控,人证比对,人机交互,社交和娱乐等方面有很强的应用价值,也是整个人脸识别算法的第一步。 问题描述 人脸检测的...

技术小能手
05/09
0
0
Adaboost算法简介

Adaboost算法 Adaboost算法是一种有监督的学习方法,是基于Adaboost算法的分类器把若干个分类器组合成一个分类器的方法,若干个分类器为不同的分类器(弱分类器),因此Adaboost也是一种组合算...

我是吸血鬼
2017/11/26
0
0
传统人脸检测识别的简述总结及现今流行框架

因为最近人脸检测与识别火热的进行着,本平台想进一步详细介绍关于人脸领域的相关知识与分析,让更多人的有进一步深入的熟知! 之后我会不断更新最新的人脸检测识别相关知识,希望有兴趣和该...

EdisonGzq
2017/06/03
0
0
Python+OpenCV实现猫脸检测

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏 导语 利用Python+OpenCV实现猫脸检测。 使用的是OpenCV内置的Viola-Jones目标检测框架来实现猫脸检测,感觉挺有意思的。 让我们愉快地开...

W3Cschool小编
08/02
0
0
py3+tensorflow+opencv基于深度学习制作人脸识别系统学习历程(持续更新)

3.15 开始项目学习历程 。 有面向对象和面向过程编程的基础开始了人工智能的学习,以后每天都会报告工作任务和好的资源分享以及学习体会 1. 关于人脸识别系统 https://www.cnblogs.com/gbin...

qq_34465787
03/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部