基于Haar特征人脸检测论文.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据挖掘之基于Haar特征提取的人脸检测2013 / 3 / 25主 要 内 容相关概念介绍人脸检测的步骤核心代码人脸检测前后对照图效果演示 相关概念介绍 AdaBoost人脸检测训练算法速度很重要的两方面是特征选取和特征计算。选取的特征为矩特征-Haar特征,计算的方法为积分图。 下面就简要介绍Haar特征以及积分图的相关概念。Haar特征 Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。在确定了特征形式后 Harr- like特征的数量就取决于训练样本图像矩阵的大小,特征模板在子窗口内任意放置,一种形态称为一种特征,找出所有子窗口的特征是进行弱分类训练的基础。积分图 积分图(Integral Image)主要的思想是将图像从起点开始到各个点所形成的矩形区域像素之和作为一个数组的元素保存在内存中,当要计算某个区域的像素和时可以直接索引数 组的元素,不用重新计算这个区域的像素和,从而加快了计算。“积分图能够在多种尺度下,使用相同的时间来计算不同的特征,因此大大提高了检测速度。 人脸检测的步骤 人脸检测的目的就是从图片中找出所有包含人脸的子窗口,将人脸的子窗口与非人脸的子窗口分开。大致步骤如下:(1)在一个 20*20 的图片提取一些简单的特征(称为Harr特征),如下图所示。 它的计算方法就是将白色区域内的像素和减去黑色区域,因此在人脸与非人脸图片的相同位置上,值的大小是不一样的,这些特征可以用来区分人脸和非人脸。(2)目前 的方法是使用数千张切割好的人脸图片,和上万张背景图片作为训练样本。训练图片一般归一化到 20*20 的大小。在这样大小的图片中,可供使用的 haar 特征数在 1 万个左右,然后通过机器学习算法 —adaboost 算法挑选数千个有效的 haar 特征来组成人脸检测器。(3)学习算法训练出一个人脸检测器后,便可以在各个场合使用了。使用时,将图像按比例依次缩放,然后在缩放后的图片的 20*20 的子窗口依次判别是人脸还是非人脸。人脸检测的流程 人脸检测在实际中主要用于人脸识别的预处理,即在图像中准确标定出人脸的位置和大小。 目前人脸检测技术在门禁系统、智能监控系统中已得到了很好的应用。另外,目前的笔记本电脑中也陆续开始使用人脸识别技术作为计算机登录的凭证。近年来,在数码相机和手机中也集成了人脸检测算法,作为一个新的功能提供用户使用。在这些应用中,人脸检测都是发挥着至关重要的作用核心代码void detect_and_draw(IplImage *img){ static CvScalar colors[]={ {{0, 0, 255}}, {{0, 128, 255}}, {{0, 255, 255}}, {{0, 255, 0}}, {{255, 128, 0}}, {{255, 255, 0}}, {{255, 0, 0}}, {{255, 0, 255}} }; double scale=1.3; IplImage * gray=cvCreateImage(cvSize(img-width, img-height),8, 1); IplImage * small_img=cvCreateImage(cvSize(cvRound(img-width/scale),cvRound(img-height/scale)),8, 1); int i; cvCvtColor(img, gray, CV_BGR2GRAY); cvResize(gray, small_img, CV_INTER_LINEAR); cvEqualizeHist(small_img, small_img); cvClearMemStorage(storage); if(cascade) { double t=(double)cvGetTickCount(); CvSeq * faces=cvHaarDetectObjects(small_img, cascade, storage,1.1, 2, 0/*CV_HAAR_DO_CANNY_PRUNING*/, cvSize(30, 30)); t=(double) cvGetTickCount()-t; printf(detcetion time=%gms\n, t/((double)cvGetTickFrequency()*1000.)); for(i=0;i(faces?faces-total:0);i++) { CvRect* r=(CvRect*)cvGetSeqElem(faces, i); CvPoint center; int radius; cen

文档评论(0)

wq640326 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档