基于OpenCV的人脸识别算法研究
基于OpenCV的人脸识别技术研究与发展

基于OpenCV的人脸识别技术研究与发展随着科技的不断发展,基于人工智能的应用日益普及,人脸识别技术在各个领域的应用越来越广泛。
OpenCV是一个经典的计算机视觉库,其人脸识别功能在各个领域得到了广泛的应用。
本文将探讨基于OpenCV的人脸识别技术的研究与发展。
一、OpenCV简介OpenCV(Open Source Computer Vision Library)是一个跨平台的开源计算机视觉库,包含多种计算机视觉与机器学习算法。
它是一个可以用C++、Python、Java等多种编程语言进行开发的开源项目。
OpenCV提供了大量的函数库,包括图像处理、特征检测、目标跟踪、机器学习等等,可用于各种视觉任务。
二、OpenCV人脸识别技术的基本原理基于OpenCV的人脸识别技术主要包括以下步骤:1. 人脸检测通过OpenCV提供的Haar Cascade分类器或者DNN等技术实现人脸检测。
Haar Cascade分类器是一种基于机器学习的对象检测技术,可以检测出图片和视频中的人脸。
2. 人脸对齐通过OpenCV提供的人脸关键点检测算法(如Dlib库中的68个关键点检测器),将检测到的人脸进行对齐操作。
这一步是为了保证人脸识别的准确度。
3. 人脸特征提取通过OpenCV提供的特征提取算法(如LBPH、Eigenfaces和Fisherfaces等算法),将人脸图像转换为有助于识别的数值数据。
通常,提取的特征是一组像素值、方向或梯度等,这些特征能够有效地表征人脸。
4. 人脸识别将提取的人脸特征与已知人脸特征进行比对,从而实现人脸识别。
常用的比对算法有欧式距离、余弦相似度等。
如果两个特征之间的相似度足够高,即可认为两个人脸是同一个人。
三、OpenCV人脸识别技术的应用1. 人脸认证在电商、金融、电影票务等行业,人脸识别技术已经得到广泛应用。
比如在银行网银登录、支付宝、微信支付等场景下,人脸识别技术能够极大程度的提高安全性,防止欺诈行为的发生。
基于OpenCV的人脸识别技术实现

基于OpenCV的人脸识别技术实现近年来,随着人工智能的发展,人脸识别技术逐渐成为热门领域。
作为一种高级的计算机视觉技术,在很多领域都得到了广泛的应用,比如安防、金融、教育等等。
在这些领域中,人脸识别的应用不仅可以提高效率,还可以提升安全性,同时也能够降低人类的工作负担。
OpenCV是一种开源计算机视觉库,它提供了很多常用的图像处理和计算机视觉算法,比如图像滤波、特征提取、目标跟踪等等。
在OpenCV中,人脸识别也是一种常用的功能,通常采用人脸检测和人脸识别两个步骤来实现。
首先,在人脸识别的过程中,人脸检测是必不可少的一步。
OpenCV提供的基于Haar特征的人脸检测算法可以帮助我们快速准确地检测到图像中的人脸。
这个算法基于一系列的Haar特征来分析图像中的人脸区域,首先会构建一个分类器,然后使用这个分类器来检测每一个图像区域是否为人脸。
最终,我们可以得到一个矩形框,将其框住的区域即为人脸。
其次,在人脸检测完成之后,就可以进行人脸识别的工作了。
OpenCV提供的人脸识别功能通常基于机器学习算法,比如基于主成分分析(PCA)、线性判别分析(LDA)或支持向量机(SVM)的算法。
其中,PCA算法是最常用的一种算法,它可以将高维的人脸数据降低到低维空间中,并将其转换为一组特征向量。
然后,我们可以将这些特征向量作为训练数据,建立一个分类器。
当新的人脸图像输入时,我们可以将其转化为相同的特征向量,并通过分类器输出该图像所属的人物。
总的来说,基于OpenCV的人脸识别技术具有以下优点:1. 准确度高:OpenCV提供的人脸检测算法和人脸识别算法都可以实现高精度的人脸识别效果。
2. 稳定性强:OpenCV的人脸检测和人脸识别功能在不同环境下都可以保持稳定性和鲁棒性。
3. 易于使用:OpenCV的人脸识别算法使用方便,可以快速实现人脸识别功能。
4. 开放源代码:OpenCV是开源的计算机视觉库,因此可以为研究者和开发者提供更大的自由,促进技术的发展和创新。
基于opencv和dlib的人脸识别智能考勤系统毕业论文

基于opencv和dlib的人脸识别智能考勤系统毕业论文引言智能考勤系统在现代管理中起到了重要的作用。
传统的考勤方式存在诸多问题,如易伪造、低效率等。
人脸识别技术作为一种高效准确的生物特征识别技术,被广泛应用于智能考勤系统中,为解决传统考勤方式的问题提供了新的解决方案。
本文将基于opencv和dlib开源库,研究并设计一种基于人脸识别的智能考勤系统。
通过分析人脸特征,建立人脸识别模型,并结合考勤系统的需求,实现对员工的自动识别和考勤管理。
该系统将提高考勤的准确性和效率,减少传统考勤方式所带来的问题。
在本论文中,我们将介绍智能考勤系统的背景和意义,探讨人脸识别在智能考勤中的应用价值。
通过研究和实践,我们希望为智能考勤系统的开发和应用提供有益的参考。
论文结构本论文将分为以下几个部分:引言:介绍智能考勤系统的背景和意义,以及人脸识别在智能考勤中的应用价值。
相关技术综述:综述人脸识别技术和智能考勤系统的相关技术,包括opencv和dlib的基本原理和应用。
智能考勤系统设计:详细介绍基于___和dlib的人脸识别智能考勤系统的设计思路和实现方法。
实验与结果分析:通过实验验证系统的性能和准确性,并对结果进行详细分析和讨论。
总结和展望:总结本论文的研究工作,对智能考勤系统的发展趋势和未来工作进行展望。
通过以上结构的论述,旨在全面介绍基于___和dlib的人脸识别智能考勤系统的设计与应用,为相关研究和实践提供有益的参考。
本章将介绍OpenCV和dlib的基本原理和功能,以及它们在人脸识别领域的应用。
OpenCV(开放源代码计算机视觉库)OpenCV是一种开源的计算机视觉库,它提供了一系列用于处理图像和视频的函数和算法。
OpenCV可以在多个平台上运行,并支持多种编程语言。
在人脸识别中,OpenCV提供了丰富的功能和方法。
它可以用于检测人脸、识别人脸特征、比较人脸相似度等。
OpenCV使用了各种机器研究和图像处理技术,使其成为人脸识别领域的重要工具之一。
《2024年基于OpenCV的人脸识别系统设计》范文

《基于OpenCV的人脸识别系统设计》篇一一、引言随着科技的快速发展,人脸识别技术已经成为现代计算机视觉领域的一个重要研究方向。
人脸识别系统能够自动识别和验证人的身份,广泛应用于安全监控、门禁系统、支付验证等众多领域。
本文将详细介绍基于OpenCV的人脸识别系统的设计。
二、系统需求分析1. 功能需求:人脸检测、人脸特征提取、人脸识别比对等。
2. 性能需求:高识别率、实时响应、系统稳定。
3. 环境需求:操作系统兼容性强,设备要求合理。
三、系统设计概述基于OpenCV的人脸识别系统主要包括预处理、特征提取和匹配三个部分。
通过图像处理和机器学习技术,实现人脸检测和识别的功能。
四、系统架构设计1. 数据预处理模块:主要完成图像的输入、格式转换、尺寸调整等操作,以满足后续处理的需球。
同时对图像进行去噪和锐化处理,提高识别的准确性。
2. 人脸检测模块:利用OpenCV中的人脸检测算法(如Haar 级联分类器或深度学习模型)进行人脸检测,确定图像中的人脸位置。
3. 特征提取模块:通过OpenCV的深度学习模型(如OpenCV DNN模块中的卷积神经网络)提取人脸特征,如面部关键点信息等。
4. 人脸比对模块:将提取的特征与数据库中已有人脸特征进行比对,找出相似度最高的匹配结果。
根据设定的阈值,判断是否为同一人。
五、关键技术实现1. 人脸检测算法:采用OpenCV中的人脸检测算法,如Haar 级联分类器或深度学习模型,实现对图像中人脸的快速定位。
2. 特征提取算法:利用OpenCV的深度学习模型(如OpenCV DNN模块中的卷积神经网络)进行特征提取,包括面部关键点信息等。
3. 人脸比对算法:采用相似度算法(如欧氏距离、余弦相似度等)进行人脸比对,找出相似度最高的匹配结果。
六、系统实现与测试1. 系统实现:根据设计架构,逐步实现各模块功能。
采用C++编程语言,利用OpenCV库进行开发。
2. 系统测试:对系统进行严格的测试,包括功能性测试、性能测试和稳定性测试等。
基于OpenCV的人脸识别系统设计及优化

基于OpenCV的人脸识别系统设计及优化一、引言人脸识别技术是近年来快速发展的一项重要技术,它在安防监控、人脸支付、智能门禁等领域有着广泛的应用。
而OpenCV作为一个开源的计算机视觉库,提供了丰富的图像处理和机器学习算法,为人脸识别系统的设计和优化提供了便利。
本文将介绍基于OpenCV的人脸识别系统设计及优化方法。
二、人脸检测与识别流程人脸识别系统通常包括人脸检测和人脸识别两个主要步骤。
在OpenCV中,可以利用Haar级联分类器进行人脸检测,然后通过特征提取和匹配算法实现人脸识别。
下面将详细介绍这两个步骤的流程:1. 人脸检测在OpenCV中,可以使用cv2.CascadeClassifier类加载Haar级联分类器进行人脸检测。
首先需要加载已经训练好的分类器文件,然后对输入的图像进行多尺度的滑动窗口检测,最终得到人脸位置的矩形框。
2. 人脸识别在得到人脸位置后,可以利用特征提取算法如Eigenfaces、Fisherfaces或LBPH(Local Binary Patterns Histograms)等方法提取人脸特征,并通过比对已知人脸数据库中的特征向量实现人脸识别。
OpenCV提供了cv2.face模块来实现这些算法。
三、系统设计与优化设计一个高效稳定的人脸识别系统需要考虑多方面因素,包括算法选择、参数调优、硬件设备等。
下面将介绍一些系统设计和优化的关键点:1. 算法选择根据实际需求和场景选择合适的人脸检测和识别算法是至关重要的。
不同算法有着各自的优缺点,需要根据具体情况进行权衡。
2. 参数调优在使用OpenCV提供的算法时,需要对参数进行调优以达到最佳效果。
比如在Haar级联分类器中可以通过调整尺度因子和邻居数等参数来提高检测准确率。
3. 数据集准备一个好的训练数据集对于人脸识别系统至关重要。
需要收集多样性、数量充足的人脸图像,并进行标注和预处理以提高系统的泛化能力。
4. 硬件设备为了实现实时高效的人脸识别,需要考虑硬件设备的选择。
基于OpenCV的人脸识别算法研究与实现

基于OpenCV的人脸识别算法研究与实现作者:冯婧顾梅花来源:《电脑知识与技术》2020年第14期摘要:基于OpenCV的人脸识别算法,具体为局部二值模式直方图(LBPH),特征脸(Eigenface)以及Fisherface算法。
介绍了各个算法的核心思想、具体实现步骤、应用场景以及优缺点,并在OpenCV平台上采用Python语言对三种算法进行仿真调试。
实验结果显示,LBPH、Eigenface、Fisherface三种算法的正确率分别可达98.56%、81.16%和89.13%。
关键词:人脸识别;OpenCV;LBPH;Eigenface;Fisherface中图分类号:TP391 文献标识码:A文章编号:1009-3044(2020)14-0003-031引言人脸识别作为一种主流的生物识别方法,被广泛应用于众多身份鉴别场景,是当下计算机视觉与模式识别领域的研究热点。
但是,当面临不同的采集环境,人脸的多姿态问题,即光照问题,表情变化问题,遮挡干扰问题等都给人脸识别带来了挑战,因此人脸识别算法的研究仍有重大意义。
本文介绍了基于OpenCV的三种经典人脸识别算法,即局部二值模式直方图(LBPH)算法,特征脸(Eigenface)算法以及Fisherface算法,并给出了相关实验结果与分析。
2基于openCV的三种经典人脸识别算法2.1局部二值模式直方图(LBPH)算法2.1.1原理局部二值模式(Local Binary Patterns,LBP)在1996年由Timo Ojala等人提出。
算法的核心原理是先将人脸灰度图像分成若干小的区域,通过对这些小的区域采用相应的LBP算子进行处理,获得相应的LBP值后,再绘制体现人脸特征信息的LBP统计直方图,并将测试统计直方图与训练统计直方图进行相似度比较,与测试样本最为相似的训练样本即为识别结果。
2.1.2方法步骤第一步:将人脸灰度图像划分为若干相同大小的圆形子区域。
opencv 人脸识别 原理

opencv 人脸识别原理人脸识别是计算机视觉领域中的一项重要技术,它可以通过计算机自动识别和验证人脸图像的身份信息。
在人脸识别技术中,OpenCV 是一个非常常用的开源计算机视觉库,提供了丰富的图像处理和分析函数,便于进行人脸识别算法的实现。
人脸识别的原理是将人脸图像中的特征提取出来,然后通过比对特征与数据库中的特征进行匹配,从而实现对人脸身份的识别。
在OpenCV中,人脸识别主要包括以下几个步骤:人脸检测、人脸对齐、特征提取和特征匹配。
人脸检测是人脸识别的第一步,它使用级联分类器或深度学习模型对图像中的人脸进行检测。
在OpenCV中,常用的人脸检测算法有Haar级联分类器和基于深度学习的人脸检测模型。
这些算法能够快速准确地检测出图像中的人脸区域。
接下来,人脸对齐是为了保证不同图像中的人脸位置和姿态的一致性。
由于人脸在不同的图像中可能存在一定的旋转、倾斜和缩放,因此需要将人脸对齐到一个标准的位置和尺寸。
在OpenCV中,可以使用人脸关键点检测算法来定位人脸的关键点,然后通过仿射变换或透视变换将人脸对齐到标准位置。
然后,特征提取是人脸识别的核心步骤,它将对人脸图像进行特征提取,得到一个能够描述人脸特征的向量。
常用的人脸特征提取算法有主成分分析(PCA)、线性判别分析(LDA)和局部二值模式(LBP)等。
在OpenCV中,可以使用这些算法提取人脸的特征向量。
特征匹配是将提取到的人脸特征与数据库中的特征进行比对,从而判断人脸的身份。
常用的特征匹配算法有欧氏距离和余弦相似度等。
在OpenCV中,可以根据特征向量之间的距离或相似度进行特征匹配,并将其与数据库中的人脸特征进行比对,得到人脸的身份信息。
OpenCV人脸识别的原理主要包括人脸检测、人脸对齐、特征提取和特征匹配等步骤。
通过这些步骤的组合,可以实现对人脸图像的自动识别和验证,广泛应用于人脸门禁、人脸支付、人脸签到等领域。
随着深度学习技术的发展,基于深度学习的人脸识别算法也得到了广泛应用,为人脸识别技术的进一步发展提供了新的可能性。
基于opencv人脸识别毕业设计

基于opencv人脸识别毕业设计英文回答:My graduation project is based on face recognitionusing OpenCV. Face recognition is a popular field in computer vision, and OpenCV provides a powerful library for image processing and computer vision tasks. In this project, I aim to develop a system that can accurately recognize and identify faces in real-time.To achieve this, I will start by collecting a datasetof face images. This dataset will consist of images of different individuals, with variations in lighting conditions, facial expressions, and poses. I will then use OpenCV to preprocess these images, extracting relevant features and reducing noise.Next, I will train a machine learning model using the preprocessed images. There are several algorithms that can be used for face recognition, such as Eigenfaces,Fisherfaces, and Local Binary Patterns Histograms (LBPH). I will experiment with different algorithms and select the one that gives the best performance for my dataset.Once the model is trained, I will integrate it into a real-time face recognition system. This system will use a webcam to capture live video and apply the trained model to recognize faces in the video stream. When a face is detected, the system will compare it with the faces in the dataset and determine the identity of the person.In addition to face recognition, I also plan to implement some additional features in my project. For example, I will add a face detection module that can detect and locate faces in an image or video. This can be useful for applications such as automatic tagging of people in photos or video surveillance systems.Furthermore, I will explore the possibility of emotion recognition using facial expressions. By analyzing the facial features and expressions, the system can determine the emotional state of the person, such as happiness,sadness, or anger. This can have applications in various fields, such as market research, psychology, and human-computer interaction.Overall, my graduation project aims to develop a robust and accurate face recognition system using OpenCV. By combining image processing techniques, machine learning algorithms, and real-time video processing, I hope to create a system that can be applied in various domains, from security and surveillance to social media and entertainment.中文回答:我的毕业设计基于OpenCV的人脸识别技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于OpenCV的人脸识别算法研究摘要:通过对基于Adaboost人脸检测算法的研究,利用该算法与计算机视觉类库openCV进行人脸检测系统的设计,实现了对出现在视频或图像中的人脸检测。
此外,在VC++6.0环境下实现了对一个简单的人脸检测系统软件的界面开发,该系统对人脸检测的速度较快,检测结果较为准确,可以作为其他人脸检测或人脸模式识别的系统的开发基础。
关键词:人脸检测;openCV;Adaboost;系统Face detection system design based on openCVAbstract: According to the research of Adaboost algorithm of Face Detection,people made use of the algorithms and computer vision class library openCV for the design of face detection system and achieved the target of detecting faces showing up in videos and pictures. What’s more,in the environment of VC++6.0,it achieved the development of simple Face Detection. The speed of Face Detection is very fast and the test results are accurate. It can be used as the development foundation of other face detection or face pattern recognition system.Key words: face detection;openCV;Adaboost;system1.引言随着计算机与数字信号处理技术的高速发展,人脸检测技术在众多领域得到广泛应用。
人脸检测技术是指在视频或图像中检测出现人脸位置、大小的过程。
作为人脸信息处理中的一项关键技术,人脸检测技术已经超出了其它人脸识别模式的应用范畴,在视频处理、图像处理、身份验证、安全监测等方面有着重要的应用价值。
随着计算机语言算法的发展,近年来出现了大量的人脸检测的算法,其中能够较好的解决人脸的检测速度与检测效果的算法,是在2001年由Paul Viola和Michael Jones首先提出的Adaboost算法。
openCV是由Intel 提供的一系列包括C与C++的提供计算机视觉和图像处理的开源软件包,它为视频或图像处理搭建了很好的软件平台。
本系统就是基于openCV利用Adaboost算法设计的一个简单的人脸检测系统#该系统能够快速&准确的检测到图像或视频中的人脸。
2.AdaBoost人脸检测算法对人脸检测的研究最初可以追溯到20世纪70年代,早期的研究方向与现在的研究方向与方法不同。
目前在实际中应用的人脸检测方法较为普遍的是基于Adaboost算法的方法。
Viola的人脸检测方法是一种基于积分图、级联分类检测器和Adaboost算法的方法,方法框架可以分为以下3大步骤:1)使用Haar-like特征表示人脸,使用“积分图”实现特征数值的快速计算;2)使用Adaboost算法挑选出一些最能代表人脸的矩形特征(弱分类器),按照加权投票的方式将弱分类器构造为一个强分类器;3)将得到的若干强分类器串联组成一个级联结构的层叠分类器,训练得到的强级联结构能有效地提高分类器的检测速度。
2.1 Haar-like特征haar特征是基于灰度图,首先通过大量的具有比较明显的haar特征(矩形)的物体图像用模式识别的方法训练出分类器,分类器是个级联的,每级都以大概相同的识别率保留进入下一级的具有物体特征的候选物体,而每一级的子分类器则由许多haar特征构成(由积分图像计算得到,并保存下位置),有水平的、竖直的、倾斜的,并且每个特征带一个阈值和两个分支值,每级子分类器带一个总的阈值。
识别物体的时候,同样计算积分图像为后面计算haar特征做准备,然后采用与训练的时候有物体的窗口同样大小的窗口遍历整幅图像,后逐渐放大窗口,同样做遍历搜索物体;每当窗口移动到一个位置,即计算该窗口内的haar 特征,加权后与分类器中haar特征的阈值比较从而选择左或者右分支值,累加一个级的分支值与相应级的阈值比较,大于该阈值才可以通过进入下一轮筛选。
当通过分类器所有分类级的时候说明这个物体以大概率被识别。
常用的Haar-like 特征有线性特征,边缘特征,中心特征。
图1 Harr-like特征2.2积分图由于训练样本通常有近万个,并且矩形特征的数量非常庞大,如果每次计算特征值都要统计矩形内所以像素之和,将会大大降低训练和检测的速度。
因此引入了一种新的图像表示方法——积分图像特征的特征值计算法,该方法只与此特征矩形的端点的积分图有关,所以不管此特征矩形的尺度变换如何,特征值的计算所消耗的时间都是常量。
这样只要遍历图像一次,就可以求得所有子窗口的特征值。
积分图[2]定义为:其中I(x′,y′)为图像在点(x′,y′)处的像素值。
为了节约时间,减少重复计算,则图像I的积分图可按如下递推公式计算:这样就可以进行任意矩形区域内像素积分运算。
由图像的积分图可快速地计算图像中任意矩形内所有像素灰度积分。
如图2所示,点1的积分图像的值为(其中Sum为求和):图2特征和计算同理,点2、点3、点4的积分图像分别为:矩形区域D内的所有像素灰度积分可由矩形端点的积分图像值得到:2.3 Adaboost算法基本原理Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。
其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。
将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。
使用Adaboost分类器可以排除一些不必要的训练数据特征,并将关键放在关键的训练数据上面。
Adaboost算法中不同的训练集是通过调整每个样本对应的权重来实现的。
开始时,每个样本对应的权重是相同的,即其中n为样本个数,在此样本分布下训练出一弱分类器。
对于分类错误的样本,加大其对应的权重;而对于分类正确的样本,降低其权重,这样分类错的样本就被突出出来,从而得到一个新的样本分布。
在新的样本分布下,再次对弱分类器进行训练,得到弱分类器。
依次类推,经过T次循环,得到T个弱分类器,把这T个弱分类器按一定的权重叠加(boost)起来,得到最终想要的强分类器。
Adaboost的具体算法如下:设输入的n个训练样本为:{(x1,y1),(x2,y2)......(xn,yn)},其中xi 是输入训练样本,yi∈{0,1}分别表示正样本和负样本,其中正样本数为l,负样本数为m。
n=l+m,具体步骤如下:初始化每个样本的权重;对每个t=1,...,T(T为弱分类器的个数)①把权重归一化为一个概率分布:如此使得ωt为一个概率分布。
②对每个特征f,训练一个弱分类器hj,计算对应所有特征的弱分类器的加权错误率③选取最佳的弱分类器ht(拥有最小错误率):θt④按照这个最佳弱分类器,调整权重:其中θi=0表示被正确的分类,ei=1表示被错误的分类,当错误分类时:3)最后的强分类器为:其中2.4级联分类器级联分类器是由多个强分类器级联而成的,其中,每一层均有Abadoost算法训练得到的强分类器构成,第一层分类器得到疑似人脸的正确结果后,触发第二层进行分类,当第二层分类器得到疑似人脸的正确结果后,触发第三层进行分类,依次类推,最后确定疑似人脸的图像就确认为人脸。
反之,当触发到某一层时,分类器得到的结果是非人脸时,就立即停止对图像的检测。
级联分类器的结构类似于金字塔,如图3所示,通过级联分类器,可以很对人脸做出检测。
由于本系统较为简单,所以只用到了4级强分类器构成级联分类器。
3人脸检测的软件实现方法简介3.1.1系统流程该系统可分为两个模块,静态图像人脸检测和视频图像中的人脸检测。
基于静态图像的人脸检测流程大致可分为4个过程(如图5所示):1)加载已经训练好的分类器;2)将其转化为计算机可以识别的内部格式;3)加载该图片以进行检测;4)显示检测结果到检测区。
基于视频图像的人脸检测主要流程为:1)摄像头提取图像;2)加载已训练好的级联分器并将图像其转化为内部各式;3)判断检测标志位,若为真,首先捕获当前一帧并创建该帧图像,然后载入当前一帧图像,并对图像的人脸区域进行检测,反之,结束检测;4)将检测到的结果显示到检测区。
3.1.2 openCV人脸检测主要函数openCV软件包中提供了丰富的基于图像和视频处理的视觉类库[4],该系统主要用到的函数有:1)cascade =(CvHaarClassifierCascade*)cvLoad(cascade_name,0,0,0);该函数主要功能为载入级联分类器,其中,cascade_name为级联分类器的路径。
2)CvMemStorage*storage=cvCreateMemStorage(0);该函数创建一个默认大小为64 kB的内存块并返回指向块首的指针。
3)CvSeq*faces =cvHaarDetectObjects(small_img,cascade,storage,1.1,1,0,cvSize(40,40));该函数的功能是使用训练好的级联分类器在图像中找到包含人脸目标的矩形区域,并将这个区域作为一个矩形框返回。
4)cvRectangle(img,LeftPoint,RightPoint,color,2,7,0);该函数实现对检测到的人脸区域用方框标记出来。
5)获得被检测到的人脸后,要对图像进行包括图像色彩转换、图像大小变换和直方图均衡化等相关处理,方可把检测到的人脸显示在检测区中。
相关的函数包括:cvCvtColor(img,gray,CV_BGR2GRAY);该函数是对图像进行色彩转换。
cvResize(gray,small_img,CV_INTER_LINEAR);该函数是对图像的大小进行变换。
cvEqualizeHist(small_img,small_img);该函数的作用是对灰度图像直方图的均衡化。
6)对于视频图像的人脸检测来说,还需要从电脑上的摄像头读取视频,openCV提供好的实时视频采集,cvCapure*cvCaptureFromCAM(int 1);该函数的功能是对摄像头(个为1)打开进行定义。