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

对于人脸检测而言,目前最有效的方法仍然是基于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算法。

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

另外一张图片:

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

基于AdaBoost的人脸检测相关推荐

  1. 基于adaboost的人脸检测方法

    最近,学习了Adaboast,并阅读了大牛Paul Viola和Michael Jones的<Robust Real-Time Face Detection>这篇文章,尽管文章思路及用到的 ...

  2. 基于Adaboost的人脸检测算法

    AdaBoost算法是一种自适应的Boosting算法,基本思想是选取若干弱分类器,组合成强分类器.根据人脸的灰度分布特征,AdaBoost选用了Haar特征[38].AdaBoost分类器的构造过程 ...

  3. 照片美妆---基于Haar特征的Adaboost级联人脸检测分类器

    本文转载自张雨石http://blog.csdn.net/stdcoutzyx/article/details/34842233 基于Haar特征的Adaboost级联人脸检测分类器 基于Haar特征 ...

  4. java r$_基于javacv的人脸检测Demo

    [实例简介] 基于javacv的人脸检测Demo,参考文章:http://blog.csdn.net/viviwen123/article/details/6386302#reply [实例截图] [ ...

  5. 【零基础跑项目】20代码教你基于opencv的人脸检测

    20代码教你基于opencv的人脸检测

  6. 基于opencv实现人脸检测

    基于opencv实现人脸检测 opencv简述 opencv是一个开源的计算机视觉库,它有着C++,Python,Java等接口,支持Windows,Linux,Mac OS,IOS 和 Androi ...

  7. 基于YOLO的人脸检测和人脸计数(课程设计)

    基于YOLO的人脸检测和人脸计数(课程设计) 训练测试代码.数据集.测试视频下载地址:代码.数据集下载地址 支持YOLOV3和YOLOV3-TINY 环境要求: * Python 3.7 * PyTo ...

  8. Matlab 基于肤色的人脸检测定位

    %-----------------------基于肤色的人脸检测定位----------------------------- clc ; clear ; close all ; %-------- ...

  9. 基于opencv的人脸检测(图片、视频、摄像头)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.检测图片中的人脸 二.检测视频与摄像头中的人脸 总结 前言 人脸检测识别一直是个热门的研究问题,同时也是opencv中 ...

最新文章

  1. 时间较宽裕的时候,选择有挑战性的路
  2. oracle db_files,如何解决 Oracle 中 DB_FILES 限制引起的 ORA-00059 问题
  3. Buffer Cache Hit Ratio
  4. 第一章:1.2.2系统分类(二)
  5. wxWidgets随笔(10)-fedora环境配置
  6. “阿里味” PUA 编程语言火上GitHub热榜,标星2.7K!
  7. .NET Core 1.0 RC2 历险之旅
  8. H5视频播放demo
  9. 使用html仿支付宝首页,仿支付宝首页头部伸缩效果
  10. iShare·AD小技巧--如何设置镂空的字体
  11. 【2015-2016,我在路上】
  12. 使用vue全家桶开发音乐App
  13. 追书神器 三星s8+ 语音朗读锁屏后中断问题解决办法
  14. Typora+PicGo-core+SMMS图床踩坑记
  15. c# DataTable关联dataGridView创建与修改数据
  16. Dr_can Kalman Filter学习笔记(三)
  17. 如何5分钟跑起来一个完整项目?
  18. Rust Web入门(六):服务器端web应用
  19. 微信小程序周报(第十期)-微信小程序联盟
  20. (转)联想研究院裁员---血淋漓的教训:公司不是家!

热门文章

  1. Go语言实现的API-Gateway
  2. 解决/var/lib/docker/overlay2占用很大、容器无法启动问题
  3. 客运售票员_见过这样的客运售票员吗
  4. 3_Semantic Pitfalls 语义错误
  5. 读Applying Deep Learning To Airbnb Search有感
  6. Jmeter简单操作
  7. 企业中台最佳实践--中台战略驱动企业生产力生产关系再变革(十三)
  8. Hue编译安装适配sparksql(hue+livy+sparksql+pyspark)
  9. iOS学习—让View从下面弹出
  10. java 中showinfo方法,jmockito模拟方法中参数如何指定