当前位置:文档之家› [作业]OPENCV人脸识别

[作业]OPENCV人脸识别

摘要人脸检测主要是基于计算机识别的一项数字化技术,用以准确获取人的脸部大小和位置信息,在进行人脸检测时,突出主要的脸部特征,淡化次要的环境、衣着等因素。

对于某些情况下,人脸检测也可以计算出人脸,如眼睛,鼻子和嘴等精确的微妙特征。

由于在安全检测系统,医学,档案管理,视频会议和人机交互等领域人脸检测系统都有光明的应用前景,因此人脸检测逐渐成为了两个跨学科领域研究的热门话题:人工智能和当前模式识别。

本文基于OpenCV视觉库具体的设计并开发了对数字图像中的人脸检测的程序,所采用的人脸检测的原理主要是分类器训练模式(Adaboost算法)提取Haar特征的方法。

它在整个软件极其重要的作用,图像中人脸的准确定位和识别都受图像处理好坏的直接影响。

本次所设计的软件在图像处理部分所采用的方法是基于Adaboost算法进行Haar特征的提取,在此之上加以通过积分图方法来获取完整的级联分类器结构,进行人脸检测时,OpenCV级联分类器通过Adaboost人脸检测算法进行训练,此后采用不同情况下的实验样本完成精确定位以及检测试验。

经过代码的设计和调试,在最后的测试中针对数字图像进行的人脸检测和定位达到了较好的效果,提高了定位和识别的正确率。

关键词:人脸检测,AdaBoost,分类器,OpenCVAbstractFace detection is mainly based on computer recognition of a digital technology,face size and location information to accurately obtain the person,during face detection, highlight the main facial features,dilute the secondary environment,clothing,and other factors.For some cases,face detection can also calculate a person's face,such as eyes, nose and mouth,and other subtle features accurate.Because in the field of human security detection systems,medical records management,video conferencing,and human-computer interaction face detection system has bright prospects,and therefore face detection is becoming a two interdisciplinary research fields hot topic:artificial intelligence and The current pattern recognition.This article is based.penCV vision library designed and developed specifically for digital image face detection process,the principles used face detection methods are mainly classifier training mode(Adaboost algorithm)to extract Haar features.It is in the vital role of the software,the image of the human face accurately locate and identify all that is good or bad a direct impact on the image processing.This software is designed image processing method used in part based Haar Adaboost algorithm to extract features,on top of this to be to get the full cascade classifier structure by integrating the diagram method for face detection,OpenCV cascade classifier is trained by Adaboost face detection algorithm,then the use of the experimental sample under different circumstances for accurate positioning and testing.Through design and debugging code,face detection and location in the final test for digital images to achieve better results and improve the accuracy of positioning and recognition.Keywords:face detection;AdaBoost;classifier;openCV目录摘要 (1)Abstract (2)第1章人脸检测概述 (1)1.1背景 (1)1.2目前的研究状况 (1)1.3研究意义 (2)第2章人脸图像处理技术 (3)2.1OpenCV概述 (3)2.1.1OpenCV简介 (3)2.1.2应用领域 (3)2.1.3OpenCV的基本结构 (4)2.1.4OpenCV的特征 (4)2.2图像预处理 (5)2.2.1灰度图像转换 (5)2.2.2图像噪声消除 (6)2.2.2图像边缘检测 (6)第3章人脸检测原理与算法 (7)3.1人脸识别原理 (7)3.2人脸检测方法 (7)3.3改进型双重人脸检测 (9)3.4双眼定位算法 (10)3.5双重检测算法的实现 (11)第4章人脸识别算法与实现 (13)4.1设计思想 (13)4.2程序设计流程 (13)4.3代码编写 (14)4.3.1载入图片阶段 (14)4.3.2图片预处理阶段 (14)4.3.3加载分类器并进行检测 (14)4.3.4打印检测结果 (15)参考文献 (16)附录一人脸检测源程序 (17)第1章人脸检测概述1.1背景近年来,随着信号处理理论和计算机的出现及其发展,人们开始用摄像机获取环境图像并将其转换成数字信号,用计算机实现对视觉信息的处理,这就形成了计算机视觉。

计算机视觉是当前计算机科学中的一个非常活跃的领域,其基本假设是:可以用计算的方式来模拟人类的视觉机制。

人脸的自动识别是一种重要的生物特征识别技术,与其它身份识别方法相比,人脸识别具有直接、方便、友好等特点,因而人脸自动识别问题的研究不仅具有重要的应用价值,而且具有重要的理论意义。

现在,随着科学技术和电子商务的发展,人脸检测的应用背景已经远远超出了人脸识别系统的范畴,在基于内容的检索、数字视频处理、计算机视觉、人机交互等方面都有着重要的应用价值。

人脸识别通过计算机提取人脸的特征,并根据这些特征进行身份验证。

人脸与人体的其他生物特征(指纹、虹膜等)一样与生俱来不可改变,它们所具有的唯一性和不易被复制的良好特性为身份鉴别提供了必要的前提,同其他生物特征识别技术相比,人脸识别技术具有操作简单、结果直观、隐蔽性好的优越性。

1.2目前的研究状况目前,许多人脸识别系统能够在特定条件(光照、背景、人脸正对摄像头等)下很好地实现人脸识别,识别效率高。

但是在实际运用中,各种条件不可能都满足,特别是针对户外监控识别系统,环境变化比较大,现有系统识别效率明显下降。

目前的人脸识别系统所需要解决的问题主要有以下几点:(1)人脸具有很复杂的细节变化,不同的外貌特征如脸形、肤色等,不同的表情如眼、嘴的开与闭等;(2)其他物体对人脸的遮挡,如眼镜、头发和头部饰物以及其他外部物体等;另外一方面由于外在条件变化所引起:(3)成像角度的不同也能造成人脸的多姿态,如平面内旋转、深度旋转以及上下旋转,其中深度旋转影响较大;(4)光照的影响,如图像中的亮度、对比度的变化和阴影等;(5)图像的成像条件,如摄像设备的焦距、成像距离,图像获得的途径等等。

这些困难都为解决人脸问题造成了难度。

如果能找到一些相关的算法并使其能在应用过程中达到实时,将为成功构造出具有实际应用价值的人脸检测系统提供保证。

1.3研究意义人脸识别是机器视觉和模式识别领域最富有挑战性的课题之一,同时也具有较为广泛的应用意义。

人脸识别技术是一个非常活跃的研究领域,它覆盖了数字图像处理、模式识别、计算机视觉、神经网络、心理学、生理学、数学等诸多学科的内容。

如今,虽然在这方面的研究已取得了一些可喜的成果,但是FRT在实际应用中仍面临着很严峻的问题,因为人脸五官的分布是非常相似的,而且人脸本身又是一个柔性物体,表情、姿态或发型、化妆的千变万化都给正确识别带来了相当大的麻烦。

如何能正确识别大量的人脸并满足实时性要求是迫切需要解决的问题。

第2章人脸图像处理技术2.1OpenCV概述2.1.1OpenCV简介OpenCV是Intel公司支持的开源计算机视觉库。

它轻量级而且高效——由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。

1999年在俄罗斯设立的软件开发中心“Software Developmellt Cellter¨开发的。

OpenCV采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上。

OpenCV还提供了Python、Ruby、MATLAB以及其他语言的接口。

OpenCV的设计目标是执行速度尽量快,主要关注实时应用。

它采用优化的C代码编写,能够充分利用多核处理器的优势。

如果是希望在Intel平台上得到更快的处理速度,可以购买Intel的高性能多媒体函数库IPP(Integrated Performance Primitives)。

IPP库包含许多从底层优化的函数,这些函数涵盖多个应用领域。

如果系统已经安装了IPP库,OpenCV会在运行时自动使用相应的IPP库。

OpenCV的一个目标是构建一个简单易用的计算机视觉框架,以帮助开发人员更便捷地设计更复杂的计算机视觉相关应用程序。

相关主题