收藏和点赞,您的关注是我创作的动力
概要
人脸检测技术,是指利用计算机采用一定的算法或者策略,在动态或者复杂的场景、背景中检测出人的脸部的存在,并确定人脸的位置、大小以的技术。作为人脸识别、表情识别、人脸跟踪等技术的基础和前提技术,人脸检测技术在智能控制、模式识别等其他领域也引起了广发的重视。
本论文主要介绍的是基于OpenCV的人脸检测应用程序的开发,简单介绍了国内外人脸识别技术研究及应用的发展现状及其重难点分析。
在第二章重点分析了AdaBoost算法中集成机器学习的一个重要机制:多个弱分类器集成的方法,机器学习中的弱学习到强学习,集成的关键是投票,最简单的方法是“绝对多数”的方法,详细分析了AdaBoost算法检测速度快、可以检测任意尺度的图像的特点。
本人开发的人脸检测和识别软件是基于OpenCV的Haar级联分类器进行人脸识别,通过对OpenCV开源代码的研究学习,掌握了OpenCV提供的重要的图像分析和处理函数以及基础的数据类型、帮助的数据类型,并Visual C++集成开发环境做平台下搭建了基于 OpenCV的人脸检测系统。通过对实例空间内大量图像内对目标区域即人脸的识别,证明了利用Harr级联分类器来进行人脸检测和识别的方法是一种速度快、精度高的方法。
关键字:人脸检测;AdaBoost;分类器;OpenCV
一、研究背景与意义
人脸检测(Face Detection)最初来源于人脸识别(Face Recognition)。我们想要在进行人类识别之前,必须要对人脸的位置和大小进行精确的定位,即人脸检测。因此一个实时有效的人脸检测系统在人脸识别中有着重要而不可代替的作用。由于人类基因组合的多样性造成了人类脸部相似的概率大大减小,因此人脸检测与识别更具有直接方面而且友好的优势,也更容易被用户所接受。与此同时,通过对人脸表情的分析,还能够获得其他识别系统不可能获得的资料,因此人脸识别也逐渐称为身份验证的最有力的手段之一。在早期的人脸识别技术中,主要针对一些约束性条件较强的图像进行识别,而忽略了人脸检测技术的研究。
近年来,随着信号处理理论和计算机的出现及其发展,人们开始用摄像机获取环境图像并将其转换成数字信号,用计算机实现对视觉信息的处理,这就形成了计算机视觉。计算机视觉是当前计算机科学中的一个非常活跃的领域,其基本假设是:可以用计算的方式来模拟人类的视觉机制。
人脸的自动识别是一种重要的生物特征识别技术,与其它身份识别方法相比,人脸识别具有直接、方便、友好等特点,因而人脸自动识别问题的研究不仅具有重要的应用价值,而且具有重要的理论意义。
人脸识别通过计算机提取人脸的特征,并根据这些特征从而进行身份验证。人脸与指纹等其他生物特征一样是不可改变的,因此人脸所具有的唯一性、不容易被复制的特性,在进行身份验证时起到了决定性的作用。同时,人脸识别技术具有操作简单方便、结果一目了然、方法隐蔽等优点。人脸识别一般包括三个步骤:人脸检测、人脸特征提取和人脸的识别与验证。其处理流程如图1.1所示。
图1.1人脸识别的一般步骤
二、Adaboost人脸检测算法
1 Adaboost算法简介
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)[4]。
Adaboost算法是基于改变数据分布的一种算法,它根据训练集合中样本分类和总体分类的的正确率,确定每个训练样本的权值,并将新的训练权值的数据集合发送至下层分类器展开训练,然后再将下层分类器的训练结果融合到一起,进行最后的决策。
使用Adaboost分类器可以排除一些不必要的训练数据特徵,并将关键放在关键的训练数据上面。Adaboost 算法是于1995 年提出的一种快速人脸检测算法,是人脸检测领域里程碑式的进步,这种算法根据弱学习的反馈,适应性地调整假设的错误率,使在效率不降低的情况