- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于opencv的人脸标记
基于OpenCV的人脸识别应用程序 1.人脸识别背景 人脸识别的经典定义: 主要利用先验知识将人脸看作器官特征的组合,根据眼睛、眉毛、嘴巴、鼻子等器官的特征以及相互之间的几何位置关系来检测人脸。基于统计的方法则将人脸看作一个整体的模式——二维像素矩阵,从统计的观点通过大量人脸图像样本构造人脸模式空间,根据相似度量来判断人脸是否存在。 人脸识别是机器学习的一个领域。人脸识别技术的核心方法,设计开发思想等等都是依赖于传统的机器学习。 机器学习通过从数据里提取的规则或模式把数据转化成信息。 机器学习针对的是温度,价格,颜色等。这些数据被预处理成特征。通过数据收集,获得特征向量,根据这些特征数据创建某种模型。 2.人脸识别 人脸识别主要使用Haar分类器方法。所谓分类器,在这里就是指对人脸和非人脸进行分类的算法,在机器学习领域,很多算法都是对事物进行分类、聚类的过程。OpenCV中的ml模块提供了很多分类、聚类的算法。 在OpenCV中,主要使用Haar-like小波特征和积分图方法进行人脸检测。 Haar分类器 = Haar-like特征 + 积分图方法 + AdaBoost + 级联 Haar-like特征 为了计算Haar-like特征,我们可以使用积分图。它是一种能够描述全局信息的矩阵表示方法。 积分图只遍历一次图像就可以求出图像中所有区域像素和的快速算法,大大的提高了图像特征值计算的效率。 AdaBoost 弱学习和强学习,所谓的弱学习,就是指一个学习算法对一组概念的识别率只比随机识别好一点,所谓强学习,就是指一个学习算法对一组概率的识别率很高。现在我们知道所谓的弱分类器和强分类器就是弱学习算法和强学习算法。 最初的弱分类器可能只是一个最基本的Haar-like特征,计算输入图像的Haar-like特征值,和最初的弱分类器的特征值比较,以此来判断输入图像是不是人脸,然而这个弱分类器太简陋了,可能并不比随机判断的效果好。 Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的弱分类器,然后把这些弱分类器集合起来,构成一个更强的强分类器。 1. 给定训练样本集S,共N个样本, T为训练的最大循环次数。 2. 初始化样本权重为1/N ,即为训练样本的初始概率分布。 3. 第一次迭代训练N个样本,得到第一个最优弱分类器。 4. 提高上一轮中被误判的样本的权重。 5. 将新的样本和上次分错的样本放在一起进行新一轮的训练。 6. 循环执行4-5步骤,T轮后得到T个最优弱分类器。 7.组合T个最优弱分类器得到强分类器。 强分类器的强强联手 只靠一个强分类器还是难以保证检测的正确率。可以训练出多个强分类器,将它们强强联手,最终形成正确率很高的级联分类器这就是我们最终的目标Haar分类器。 AdaBoost训练出来的强分类器一般具有较小的误识率,但检测率并不很高,一般情况下,高检测率会导致高误识率。 要提高强分类器的检测率既要降低阈值,要降低强分类器的误识率就要提高阈值,这是个矛盾的事情。 增加分类器个数可以在提高强分类器检测率的同时降低误识率,以达到检测率和误识率之间的平衡。 3.使用OpenCV进行人脸识别 OpenCV有已经自带了人脸的Haar特征分类器。OpenCV安装目录下的haarcascade_frontalface_alt.xml与haarcascade_frontalface_alt2.xml都是用来检测人脸的Haar分类器。同时在其目录下还有人的全身,眼睛,嘴唇的Haar分类器。 * 在人脸检测时我们需要有这么一个子窗口在待检测的图片窗口中不断的移位滑动,子窗口每到一个位置,就会计算出该区域的特征,然后用我们训练好的级联分类器对该特征进行筛选,一旦该特征通过了所有强分类器的筛选,则判定该区域为人脸。 而这些特征,我们称为Haar-Like特征。 将上面的任意一个矩形放到人脸区域上,然后,将白色区域的像素和减去黑色区域的像素和,得到的值我们暂且称之为人脸特征值,如果你把这个矩形放到一个非人脸区域,那么计算出的特征值应该和人脸特征值是不一样的,而且越不一样越好,所以这些方块的目的就是把人脸特征量化,以区分人脸和非人脸。 第一个参数表示输入图像。 第二个参数表示Haar特征分类器。 第三个参数为CvMemStorage类型。 第四个参数表示在前后两次相继的扫描中,搜索窗口的比例系数。 第五个参数表示构成检测目标的相邻矩形的最小个数(默认为3个)。 第六个参数要么使用默认值,要么使用CV_HAAR_DO_CANNY_PRUNING。 第七个,第八个参数表示检测窗
文档评论(0)