收藏 分享(赏)

基于OpenCV 的人脸检测算法研究.doc

上传人:weiwoduzun 文档编号:1883240 上传时间:2018-08-28 格式:DOC 页数:13 大小:37KB
下载 相关 举报
基于OpenCV 的人脸检测算法研究.doc_第1页
第1页 / 共13页
基于OpenCV 的人脸检测算法研究.doc_第2页
第2页 / 共13页
基于OpenCV 的人脸检测算法研究.doc_第3页
第3页 / 共13页
基于OpenCV 的人脸检测算法研究.doc_第4页
第4页 / 共13页
基于OpenCV 的人脸检测算法研究.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、文库下载 免费文档下载http:/ OpenCV 的人脸检测算法研究基于 OpenCV 的人脸检测算法研究第 8 卷第 3 期2009 年 8 月淮阴师范学院学报(自然科学版)JOURNALOFHUAIYINTEACHERSCOLLEGE(NATURALSCIENCEEDITION) Vol18No13Aug.2009基于 OpenCV 的人脸检测算法研究齐金山(淮阴师范学院计算机科学与技术学院,江苏淮安 223300)摘 要:介绍了一种开放源代码的计算机视觉类库 OpenCv,阐述了该软件的特点及结构,并对其在 VisualC2005 开发环境下的配置作了详细的说明.然后提出了一个基于 Op

2、enCv 的人脸检测算法.实验结果表明,该算法具有识别效果、实时性好,检测速度快的特点.关键词:OpenCV;人脸检测;IpIImage中图分类号:TP391.41 文献标识码:A 文章编号:167126876(2009)0320216205文库下载 免费文档下载http:/ 引言人脸的检测是一类具有很大挑战性的问题,存在相貌、表情、肤色等差异;,并且可能存在遮挡物;,:、摄录器材的质量等.针对以上难点,各,2,3如 Chellappa1995 和 2003 年发表的两篇人脸识别的综述论文.人脸检测的算法也很多,Boosting 是其中的一种,但 Boosting 算法十分复杂.本文提出了基于

3、 OpenCV 进行人脸检测将比较容易实现,实验结果表明该算法具有识别效果好、实时性好、检测速度快的特点.11 OpenCv 简介5OpenCV(OpenSourceComputerVisionLibrary)是指 Intel 计算机视觉库.它由一系列 C 函数和少量类构成,实现了图像处理和计算机视觉方面的很多通用算法.OpenCV 主要用于对图像进行一些高级处理,比如说特征检测与跟踪、运动分析、目标分割与识别以及 3D 重建等.由于OpenCv 的源代码是完 C 全开放的,而且源代码的编写简洁而高效,特别是其中大部分的函数都已经通过汇编最 http:/ 优化,以使之能高效而充分地利用英特尔系

4、列处理芯片的设计体系,对于PentiumMMX、Pentium、PentiumHI 及 Pentium4 这些处理器而言,OpenCv 的代码执行效率是非常高的,所以近年来在国外的图像处理相关领域中被广泛地使用,成为一种流行的图像处理软件.111 OpenCv 的特点相对于 MATLAB 等其它常用的图像处理软件来说,OpenCv 有其显著的不可比拟的优点,主要体文库下载 免费文档下载http:/ 是一个包含了超过 300 个 C 函数的应用编程接口,它不依赖于外部库,既可以独立运行,也可在运行时使用其它外部库.2)高性能:OpenCv 中所有的算法都是基于封装于 IPL 的具有很高灵活性的动

5、态数据结构,而且其中有一半以上的函数在设计及汇编时被 Intel 公司针对其所生产的处理器优化.3)提供了一些与诸如 EiC、Ch、MATLAB 等其它语言或环境的接口,这些接口在其安装完之后位于安装目录 opener/interfaces 下.4)开放性:不管对于商业的还是非商业的用途,OpenCv 都是完全免费的,其源代码完全开放,开发 收稿日期:2009205222作者简介:齐金山(19772),男,湖南株洲人,讲师,硕士,研究方向为数字图像处理.第 3 期齐金山:基于 OpenCV 的人脸检测算法研究 217 者可以对源代码进行修改,将自己设计的新类添加到库中,只要设计符合规范,自己的

6、代码也可以被别人广泛使用.当然 OpenCv 的优点并不止这些,使用 OpenCv 对开发者来说帮助最大的是:由于 OpenCv 的源代码完全开放,所以程序开发者可以仔细地阅读很多关键算法的源代码来理解图像处理中很多算法的原理及整个实现过程,这对于一个程序开发者来说是非常重要的.112 OpenCv 的数据类型以及常用函数OpenCv 包含基础的数据类型和帮助数据类型,基础的数据类型主要包括:图像类的 IpIImage,矩阵类的 CvMat,可变集合类的 CvSeq、CvSet、CvGraph 以http:/ 及用于多维柱状图的混合类 CvHistogram 等.帮助数据类型主要包括:用于表示

7、二维点坐标的 CvPoint,用于表示图像宽和高的 CvSize,用于表示叠代过程结束条件的 CvTermCriteria,用于表示图像转换内文库下载 免费文档下载http:/ IpIConvKernel 和用于表示空间力矩的 CvMoments 等.在此仅介绍算法中用到的图像类 IpIImage.OpenCv 库使用“IpIImagc”结构体来创建和处理图像,使用此种格式的优点是可以比 DIB 格式表示更多的图像性质,而且可以很方便地存取图像中的像素值.IpIImagestructure 定义如下:typedefstructIpIImageintnSize;/IpIImage 结构的大小in

8、tID;/图像头的版本intnChannels;/通道数,支持 1,2,3,4 通道intalphaChannel;/alpha. intdepth;/ / / int;/数据的排列方式intOrigin;/坐标原点.0 代表左上角.1 代表左下角intalign;/OpenCV 忽略此项intwidth;/图像宽度intheight;/图像高度structIpIROIroi;/指向 ROI 结构的指针,不为 NULL 时表示要处理的图像区域structIpIImage3maskROI;/OpenCV 中指定为 NULLvoidimageId;/可忽略文库下载 免费文档下载http:/ int

9、BorderConst4;/可忽略char3imageData0rigin;/指向完整的没有校准的图像IpIImage;OpenCV 的函数命名都是以“cv”开始的,然后是该函数的行为或者作用目标.例如用来创建图像的函数“cvCreateImage”,载入图像的函数“cvLoadImage”.OpenCV 是为图像出来及计算机视觉在实际工程中的应用而设计的一个类库,其中所有的函数都由于其在实际应用中所实现的功能而分属不同的类型,主要的函数类型有:1)基本的图像处理与分析函数.这个类型的函数主要用于实现一些基本的图像处理与分析功能,例如,图像平滑函数 cvSmooth、Sobel 算子 cvSo

10、bel、Canny 边缘分割函数 cvCanny 等.2)结构分析函数.包括轮廓处理函数、几何学函数以及平面细分函数.6218 淮阴师范学院学报(自然科学版)第 8 卷3)运动分析与目标跟踪函数.包括用于运动分析与目标跟踪的函数,例如,背景重建函数cvAcc,用光流法或动态轮廓模型实现目标跟踪的函数 cvCalcOpticalFlowBM 和文库下载 免费文档下载http:/ 以及卡尔曼滤波函数 cvKalman 等.4)摄像机标定和 3D 重建函数.包括用于摄像机标定、姿态估计以及两个摄像机进行 3D 相似重构的函数.5)GUI 与视频处理函数.包括高级图形用户结构 HighGUI 用以实现

11、对图像的载入、显示及保存等基本操作以及用以实现视频输入输出及处理的函数.根据上述的数据类型以及函数体系,程序开发者可以根据自己所开发应用程序要实现的功能来方便的选择所需的库函数.113 OpenCV 在 VisualC2005 下的安装与配置由于 OpenCv 的源代码是用 C 和 C 所编写而且完全开放,因此可以在 VisualC2005 环境下很方 便地使用 OpenCv 所提供的库来进行图像处理.具体步骤如下:1)首先到 http:/ 的官方网站(http:/ OpenCV 并进行安装,安装过程很简单,只要按照安装向导一步一步进行即可.2)安装结束后运行 MicrosoftVisualS

12、tudio.NET,选择“项目”属性,之后选择 “C/C”常规附加包含目录,(C:/Pro2gramFiles/OpenCV 下):(i)C:/ProgramFiles/0penCV/(ii)C:/Program3),在附加库目录中加入如下路径:C:/ProgramFiles/OpenCV/lib.4)“链接器”输入附加依赖项,加入如下几项:cxcore.libcv.libml.libhighgui.libcvaux.lib(用空格分隔).文库下载 免费文档下载http:/ 库就已经链接到当前创建的项目中,之后在项目中就可以方便地使用 OpenCv 所提供的各种图像处理相关库函数来进行图像处理

13、.2 基于 OpenCV 的人脸检测算法基于 OpenCV 的人脸检测主要完成 3 部分功能,即加载分类器、加载待检测图象以及检测并标示.本算法使用 OpenCV 中提供的“haarcascadefrontalfacealt.xml”文件存储的目标检测分类,用 cvLoad 函数载入后,进行强制类型转换.OpenCV 中提供的用于检测图像中目标的函数是 cvHaarDetectObjects,该函数使用指针对某目标物体(如人脸)训练的级联分类器在图象中找到包含目标物体的矩形区域,并将这些区域作为一序列的矩形框返回.为简便起见,以下仅列出其一成员函数 FaceDetect 来实现人脸检测,并用矩

14、形框标识,代码如下:CTArrayCFaceDetector:FaceDetect(CImage/定义检测出的人脸图像的高和宽CTMatrixtempimage=ImageShttp:/ 免费文档下载http:/ 则采用默认设置7第 3 期齐金山:基于 OpenCV 的人脸检测算法研究 219IpIImage3img=cvCreateImage(size,IPLDEPTH8U,3);/创建一个 IpIImage 图像数据结构进行处理ImageSource.Getcolorimage().ExportTo(img-imageData);/导出矩阵内容给IpIImage intscale=1;if

15、(cascade)/分类器不能为空CvSeq3faces=cvHaarDetectObjects(img,cascade,storage,111,2,CVHAARDOCANNYPRUNING,cvSize(40,40);/检测函数CvPointpt1,pt2;/人脸矩形的左上点和右下点POINTtmppt1,tmppt2;if(faces-total)detectedface.Construction(faces-total);/给 detectedfacei分配空间,i 必须大于 0,则从 1 开始 for(i=0;itotal:0);i )文库下载 免费文档下载http:/ r-width

16、)3scale;pt1.y=r-y3scale;pt2.y=(r-y r-height)3scale /将 CvPointtmx tmpt1.;tmxpt2.x;tmppt2.y=pt2.y;CRectrect(tmppt1,tmppt2);cvRectangle(img,pt1,pt2,CVRGB(255,0,0),3,8,0);/在 img 中画出人脸矩形/detectedface.Construction(i 1);/给 detectedfacei分配空间,i 必须大于 0,则从 1 开始 detectedfacei=rect;CTMatrixcolorsrc;/建立临时变量进行数据中转

17、文库下载 免费文档下载http:/ 不能做 src 的 ImportFrom 参数,只能通过矩阵进行中转colorsrc.Destruction();/数据释放cvReleaseMemStorage(/将内存区域清空cvReleaseImage(/将临时变量 img 释放return(detectedface);/返回检测到的人脸http:/ 算法的实验结果如图 1,从图中可以看出我们通过调用函数 FaceDetect,可以实现不同角度下的人脸检测.3 结束语Intel 公司开发 OpenCv 库,旨在建立一个完全开放的研究机构使其在图像处理及计算机视觉技术中220 淮阴师范学院学报(自然科学

18、版)第 8 卷图 1 程序运行范例得到更好的应用,它为用户提供了一整套的图像处理以及图像与模式分析函数,而且这些函数文库下载 免费文档下载http:/ Intel 的处理器下执行是最优的.另外结合 MicrosoftDirectX 技术 OpenCv 可以对数字视频进行处理,用于实现人脸检测与识别、运动分析及环境的实时监控等.本文的基于 OpenCV的人脸检测算法识别效果好、实时性好、检测速度快,其检测速度不逊于目前公布的最快的算法,它的简单实用性为我们下一步诸如人脸姿态分析以及人脸姿态仿真等的研发打下了坚实的基础.参考文献:1 孙宁,邹采荣,赵力.人脸检测综述J.电路与系统学报,2006,1

19、1(6)2107.2 黎松,平西建,丁益洪.开放源代码的计算机视觉类库 OpenCvJ.(8):1342136.3 林维训,潘纲,吴朝晖,等.脸部特征定位方法J.,8(8)24 YoshinobuEbisawa,YujiNurikabe.FacePoseNA.VECIMS2005IEEEInternationalConferenceonVirtual,2CandMeasurementSystemsGiardiniNaxosC,Itay,2005.5 MathewVEbisawa:PupilsandNostrils,2004.6 陈磊.V 在 VC 中的应用J.微计算机信息,2007,23(4)

20、:1692171.7 李全彬,刘锦高,等.复杂背景和光照多变的人脸检测方法J.计算机工程与应用,2009,45(8):22224.8 赵松,潘可,张培仁.http:/ 型相关分析在人脸姿态估计中的应用J.小型微型计算机系统,2009,5(5):9832987.8AccordingtoOpenCVPersonFace文库下载 免费文档下载http:/ ThistextintroducedakindofcalculatorsenseofvisiondatabasethatopensasourcecodeOpenCvandelaboratedthecharacteristicsandstructur

21、eofthatsoftware,andastoitsatVisualCunder2005developmentenvironmentsoftheallocationmadeexpatiation,thenputforwardanaccordingtoOpenCvpersonfaceexaminationcalculateway.Theexperimentexpressesthatthatcalculatewayhastoidentifyasaresulteffectiveandsolidsexgood,examinationspeedquickcharacteristics.Keywords: OpenCV;personsfaceexamines;IpIImage责任编辑:李晓薇文库下载网是专业的免费文档搜索与下载网站,提供行业资料,考试资料,教文库下载 免费文档下载http:/ 文档,专业文献,应用文书,行业论文等文档搜索与文档下载,是您文档写作和查找参考资料的必备网站。文库下载 http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 期刊/会议论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报