基于Haar特征的人脸检测_第1页
基于Haar特征的人脸检测_第2页
基于Haar特征的人脸检测_第3页
基于Haar特征的人脸检测_第4页
基于Haar特征的人脸检测_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2013/3/25数据挖掘之基于Haar特征提取的人脸检测主要内容相关概念介绍人脸检测的步骤核心代码人脸检测前后对照图效果演示

相关概念介绍

AdaBoost人脸检测训练算法速度很重要的两方面是特征选取和特征计算。选取的特征为矩特征-Haar特征,计算的方法为积分图。

下面就简要介绍Haar特征以及积分图的相关概念。Haar特征

Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。在确定了特征形式后Harr-like特征的数量就取决于训练样本图像矩阵的大小,特征模板在子窗口内任意放置,一种形态称为一种特征,找出所有子窗口的特征是进行弱分类训练的基础。积分图积分图(IntegralImage)主要的思想是将图像从起点开始到各个点所形成的矩形区域像素之和作为一个数组的元素保存在内存中,当要计算某个区域的像素和时可以直接索引数组的元素,不用重新计算这个区域的像素和,从而加快了计算。“积分图"能够在多种尺度下,使用相同的时间来计算不同的特征,因此大大提高了检测速度。

人脸检测的目的就是从图片中找出所有包含人脸的子窗口,将人脸的子窗口与非人脸的子窗口分开。大致步骤如下:(1)在一个20*20的图片提取一些简单的特征(称为Harr特征),如下图所示。人脸检测的步骤

它的计算方法就是将白色区域内的像素和减去黑色区域,因此在人脸与非人脸图片的相同位置上,值的大小是不一样的,这些特征可以用来区分人脸和非人脸。(2)目前的方法是使用数千张切割好的人脸图片,和上万张背景图片作为训练样本。训练图片一般归一化到20*20的大小。在这样大小的图片中,可供使用的haar特征数在1万个左右,然后通过机器学习算法—adaboost算法挑选数千个有效的haar特征来组成人脸检测器。(3)学习算法训练出一个人脸检测器后,便可以在各个场合使用了。使用时,将图像按比例依次缩放,然后在缩放后的图片的20*20的子窗口依次判别是人脸还是非人脸。人脸检测的流程人脸检测在实际中主要用于人脸识别的预处理,即在图像中准确标定出人脸的位置和大小。目前人脸检测技术在门禁系统、智能监控系统中已得到了很好的应用。另外,目前的笔记本电脑中也陆续开始使用人脸识别技术作为计算机登录的凭证。近年来,在数码相机和手机中也集成了人脸检测算法,作为一个新的功能提供用户使用。在这些应用中,人脸检测都是发挥着至关重要的作用核心代码voiddetect_and_draw(IplImage*img){ staticCvScalarcolors[]={ {{0,0,255}}, {{0,128,255}}, {{0,255,255}}, {{0,255,0}}, {{255,128,0}}, {{255,255,0}}, {{255,0,0}}, {{255,0,255}} }; doublescale=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); inti;

cvCvtColor(img,gray,CV_BGR2GRAY); cvResize(gray,small_img,CV_INTER_LINEAR); cvEqualizeHist(small_img,small_img); cvClearMemStorage(storage); if(cascade) { doublet=(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("detcetiontime=%gms\n",t/((double)cvGetTickFrequency()*1000.)); for(i=0;i<(faces?faces->total:0);i++) { CvRect*r=(CvRect*)cvGetSeqElem(faces,i); CvPointcenter; intradius; center.x=cvRound((r->x+r->width*0.5)*scale); center.y=cvRound((r->y+r->height*0.5)*scale);

radius=cvRound((r->width+r->height)*0.25*scale); cvCircle(img,center,radius,colors[i%8],3,8,0); } }cvShowImage("result",img);cvReleaseImage(&gray);cvReleaseImage(&small_img);}。进行数据挖掘常用技术算法人工神经网络

为解决大复杂度问题提供了一种相对来说比较有效的简单方法。神经网络可以很容易的解决具有上百个参数的问题。决策树

决策树提供了一种展示类似在什么条件下会得到什么值这类规则的方法支持向量机方法。遗传算法

基于进化理论,并采用遗传结合、遗传变异、以及

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论