作者:黄华盛
来源:《计算机光盘软件与应用》2013年第23期
摘 要:本文采用基于类Haar特征和AdaBoost分类器的算法,用于检测人脸的区域。实验结果表明,该算法具有运行速度快,识别准确率高的特点。
关键词:类Haar特征;AdaBoost;人脸识别
中图分类号:TP391.41
人脸在社会交往中扮演着十分重要的角色,是人类在确定一个人身份时所采用的最普通的生物特征,研究人脸跟踪识别及其相关技术具有十分重要的理论价值和应用价值[1]。
然而,人脸识别在实际中很难应用,其主要原因在于:实际场景中的人脸区域位置无法确定,光照强度无法确定,使得人脸的区域难以准确定位;其次,对于定位的ROI区域,难以选定合适的算法对该区域进行快速而准确的识别。
本文采用基于类Haar特征和AdaBoost分类器进行人脸区域的检测。
1 算法过程
人脸检测算法包括两个过程:训练过程和识别过程。训练过程对样本图片计算每一个类Haar特征,从中选择若干个识别精度高的特征;每一个选中的特征构成一个弱分类器,众多弱分类器采用AdaBoost算法构成一个强分类器。
本文调用OpenCV提供的分类器,不涉及训练过程,因此文章的主要内容是分类器的识别过程。识别过程根据分类器选择的特征计算图片的特征向量,然后应用AdaBoost分类器进行车辆区域的检测。
2 识别过程
对每一个ROI区域的识别包括图像的预处理、特征图的计算、类Haar特征的计算和分类识别四个部分。
2.1 图像的预处理
首先,将大小归一化为40*40;接着,将彩色图片转化为灰度图。
2.2 积分图的计算
图2 类Haar特征示意图
2.4 基于Adaboost分类器的识别
AdaBoost算法是机器学习中一种非常重要的特征分类算法,被广泛应用于图像检索[2]、人脸表情识别[3]等应用中。
Boosting算法都多种改进方式,本文采用理论研究和实际应用都非常成熟的AdaBoost算法。
AdaBoost算法的训练过程:
对于每一个特征,Boosting算法都能产生一个弱分类器,通过调整阈值,使得该分类器对训练样本的识别精度超过50%。在每一轮训练中,算法找出分类精度最高的特征及其阈值作为一个弱分类器。在下一轮训练中,加大错分样本的权重,使得分类器能够纠正对错分样本的误判。当训练完毕之后,对所有产生的弱分类器,根据其识别精度调整其权重:分类精度越高,权重越大,依次组成一个强分类器。
AdaBoost算法的识别过程:
将特征向量输入强分类器,按照公式 进行计算,如结果为正,则为人脸区域。
3 实验与结果
本文调用OpenCV提供基于Haar特征的AdaBoost分类器进行人脸区域的检测,检测结果如图3所示:
图3 检测结果
4 总结
本文对待检测的图片首先进行预处理,然后计算图片的积分图,在积分图的基础上计算选定的类Haar特征,最后应用AdaBoost分类器进行检测,判断该区域是否人脸区域。实验结果证明,该算法识别的准确率高,运行速度快,能满足实际应用中对准确率和实时性的要求。
参考文献:
[1]雷静.基于OpenCV的人脸跟踪识别系统研究[D].西安电子科技大学交通信息工程系,2010.
[2]Dai Sheng-Yang,Zhang Yu-Jin.AdaBoost in region-based image retrieval[A].In:Processings of the IEEE International Conference on Acoustics,Speech,and Signal Processing(ICASSP’04)[C],Montreal,Canada,2004,3:429-432.
[3]Shan S,Yang P,Chen X.AdaBoost gabor fisher classifier for face recognition[A].In:Proceeding of the International Workshop on Analysis and Modeling of Faces and Gestures,AMFG 2005[C],Beijing,China,2005,3723:278-291.
作者简介:黄华盛(1987.12-),男,广东汕头人,教师,硕士,研究方向:机器视觉与图像处理。
作者单位:广东科技学院计算机系,广东东莞 523083下载本文