基于Haar特征的人脸检测课件.ppt

基于Haar特征的人脸检测课件.ppt

ID:56980566

大小:3.04 MB

页数:16页

时间:2020-07-25

基于Haar特征的人脸检测课件.ppt_第1页
基于Haar特征的人脸检测课件.ppt_第2页
基于Haar特征的人脸检测课件.ppt_第3页
基于Haar特征的人脸检测课件.ppt_第4页
基于Haar特征的人脸检测课件.ppt_第5页
资源描述:

《基于Haar特征的人脸检测课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2013/3/25数据挖掘之基于Haar特征提取的人脸检测主要内容相关概念介绍人脸检测的步骤核心代码人脸检测前后对照图效果演示相关概念介绍AdaBoost人脸检测训练算法速度很重要的两方面是特征选取和特征计算。选取的特征为矩特征-Haar特征,计算的方法为积分图。下面就简要介绍Haar特征以及积分图的相关概念。Haar特征Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。在确定了特征形式后Harr-like特征的数量就取

2、决于训练样本图像矩阵的大小,特征模板在子窗口内任意放置,一种形态称为一种特征,找出所有子窗口的特征是进行弱分类训练的基础。积分图积分图(IntegralImage)主要的思想是将图像从起点开始到各个点所形成的矩形区域像素之和作为一个数组的元素保存在内存中,当要计算某个区域的像素和时可以直接索引数组的元素,不用重新计算这个区域的像素和,从而加快了计算。“积分图"能够在多种尺度下,使用相同的时间来计算不同的特征,因此大大提高了检测速度。人脸检测的目的就是从图片中找出所有包含人脸的子窗口,将人脸的子窗口与非人脸的子窗口分开。大致步骤如下:(1

3、)在一个20*20的图片提取一些简单的特征(称为Harr特征),如下图所示。人脸检测的步骤它的计算方法就是将白色区域内的像素和减去黑色区域,因此在人脸与非人脸图片的相同位置上,值的大小是不一样的,这些特征可以用来区分人脸和非人脸。(2)目前的方法是使用数千张切割好的人脸图片,和上万张背景图片作为训练样本。训练图片一般归一化到20*20的大小。在这样大小的图片中,可供使用的haar特征数在1万个左右,然后通过机器学习算法—adaboost算法挑选数千个有效的haar特征来组成人脸检测器。(3)学习算法训练出一个人脸检测器后,便可以在各个场

4、合使用了。使用时,将图像按比例依次缩放,然后在缩放后的图片的20*20的子窗口依次判别是人脸还是非人脸。人脸检测的流程人脸检测在实际中主要用于人脸识别的预处理,即在图像中准确标定出人脸的位置和大小。目前人脸检测技术在门禁系统、智能监控系统中已得到了很好的应用。另外,目前的笔记本电脑中也陆续开始使用人脸识别技术作为计算机登录的凭证。近年来,在数码相机和手机中也集成了人脸检测算法,作为一个新的功能提供用户使用。在这些应用中,人脸检测都是发挥着至关重要的作用核心代码voiddetect_and_draw(IplImage*img){stati

5、cCvScalarcolors[]={{{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)

6、,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,

7、storage,1.1,2,0/*CV_HAAR_DO_CANNY_PRUNING*/,cvSize(30,30));t=(double)cvGetTickCount()-t;printf("detcetiontime=%gms",t/((double)cvGetTickFrequency()*1000.));for(i=0;i<(faces?faces->total:0);i++){CvRect*r=(CvRect*)cvGetSeqElem(faces,i);CvPointcenter;intradius;center.x=cv

8、Round((r->x+r->width*0.5)*scale);center.y=cvRound((r->y+r->height*0.5)*scale);radius=cvRound((r->width+

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。