基于OPENCV的人脸识别1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OpenCV
2.Opencv的应用
• • • • • • • 人机互动 物体识别 图像分割 人脸识别 动作识别 运动跟踪 机器人
3.人脸识别概要
人脸识别是基于人的脸部特征信息进行身份识别的一种生物
识别技术。用摄像机或摄像头采集含有人脸的图像或视频 流,并自动在图像中检测和跟踪人脸,进而对检测到的人 脸进行脸部的一系列相关技术,通常也叫做人像识别、面 部识别。 人脸识别系统主要包括四个组成部分,分别为:人脸图像采 集及检测、人脸图像预处理、人脸图像特征提取以及匹配 与识别。
基于OPENCV的人脸识别
1.Opencv的基本简介 2.Opencv的应用方面 3.人脸识别概要 4.用opencv做人脸识别的原理及步骤
1.Opencv基本简介
(Open Source Computer Vision Library) 由Intel公司在背后提供支持。它包含了超过500个 函数来实现用于图形处理和计算机视觉方面的通 用算法。 OpenCV是一个基于(开源)发行的跨 平台计算机视觉库,可以运行在Linux、Windows 和Mac OS操作系统上。它轻量级而且高效——由 一系列 C 函数和少量 C++ 类构成,同时提供了 JAVA、Python、Ruby、MATLAB等语言的接口, 实现了图像处理和计算机视觉方面的很多通用算 法。
4.训练图片:创建一个人脸识别数据库,就是训练一个列出图片文件和 每个文件代表的人的文本文件,形成一个facedata.xml“文件。 比如,你可以把这些输入一个名为”trainingphoto.txt”的文本文件: joke1.jpg joke2.jpg joke3.jpg joke4.jpg lily1.jpg lily2.jpg lily3.jpg lily4.jpg 它告诉这个程序,第一个人的名字叫“joke,而joke有四张预处理后 的脸部图像,第二个人的名字叫”lily”,有她的四张图片。这个程序 可以使用”loadFaceImgArray()”函数把这些图片加载到一个图片数 组中。 为了从这些加载好的图片中创建一个数据库,你可以使用OpenCV 的”cvCalcEigenபைடு நூலகம்bjects()”和”cvEigenDecomposite()”函数。
5.)在输入图片与最相似图片之间的距离用于确定可信度 (confidence),作为是否识别出某人的指导。1.0的可信度意味着完 全相同,0.0或者负的可信度意味着非常不相似。
5.人脸识别的长处与不足
• 人脸识别的长处 相比较其他生物识别技术而言)非接触的,用户不需要和设备直接接触; 非强制性,被识别的人脸图像信息可以主动获取; 并发性,即实际应用场景下可以进行多个人脸的分拣、判断及识别; • 人脸识别的不足 对周围的光线环境敏感,可能影响识别的准确性; 人体面部的头发、饰物等遮挡物,人脸变老等因素,需要进行人工智能 补偿;(如可通过识别人脸的部分关键特性做修正)。
• 参考文献: • [1]“人脸检测研究综述”,梁路宏等,计算机学报,Vol 25,No 5, May 2002; • [2]“人脸检测与检索”,艾海舟等,自然科学基金项目60273005; • [3]“基于连续adaboost算法的多视角人脸检测”, 武勃等,计算机 研究与发展,2005; • [4] “Comparative Testing of Face Detection Algorithms”, N Degtyarev et al., Image and Signal Processing, 2010; • [5]“Rapid object detection using a boosted cascade of simple features.” Paul Viola and Michael Jones, Accepted Conference on Computer Vision and Pattern Recognition 2001; • [6]http://www.opencv.org.cn/index.php/%E4%BA%BA%E8%84%B8 %E6%A3%80%E6%B5%8B • [7] http://034080116.blog.163.com/blog/static/33406191200964107371 5/ • [8] \OpenCV\apps\HaarTraining\doc\haartraining.doc • [9] http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=4264#p15258 • [10] http://www.opencv.org.cn/forum/viewtopic.php?t=3880
4.步骤
1.人脸采集:提取人脸并保存 2.OpenCV检测原理:OpenCV中有检测人脸的函数(该函数还可以检 测一些其他物体), 甚至还包含一些预先训练好的物体识别文件。 主要步骤为: 1)加载分类器:用cvLoad函数读入xml格式的文件。文件在OpenCV安 装目录下的“data/haarcascades/”路径下,使用 haarcascade_frontalface_atl.xmlhaarcascade_frontalface_atl2.xml 2)读入待检测图像。读入图片或者视频 3)检测人脸 3.人脸预处理:在一个人脸识别系统中,应用多种预处理技术对将要识 别的图片进行标准化处理是极其重要的。多数人脸识别算法对光照条 件十分敏感,所以假如在暗室训练,在明亮的房间就可能不会被识别 出来等等。这个问题可归于“lumination dependent”,并且还有其 它很多例子,比如脸部也应当在图片的一个十分固定的位置(比如眼 睛位置为相同的像素坐标),固定的大小,旋转角度,头发和装饰, 表情(笑,怒等),光照方向(向左或向上等),这就是在进行人脸 识别前,使用好的图片预处理过滤器。
5.人脸图像特征提取:Haar特征分为三类:边缘特征、线性特征、中心 特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种 矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。 在确定了特征形式后 Harr- like特征的数量就取决于训练样本图像矩 阵的大小,特征模板在子窗口内任意放置,一种形态称为一种特征, 找出所有子窗口的特征是进行弱分类训练的基础。 6.识别过程: 1)读取用于测试的图片。 2)平均人脸,特征脸和特征值(比率)使用函数 “loadTrainingData()” 从人脸识别数据库文件(the face recognition database fil)“facedata.xml”载入。 3)使用OpenCV的函数“cvEigenDecomposite()”,每张输入的图 片都被投影到PCA子空间,来观察哪些特征脸的比率最适合于代表这 张图片。 4)现在有了特征值(特征脸图片的比率)代表这张输入图片,程序 需要查找原始的训练图片,找出拥有最相似比率的图片。这些用数学 的方法在“findNearestNeighbor()”函数中执行,采用的是“欧几 里得距离(Euclidean Distance)”。