人体特征检测算法的设计与实现
2016-02-23翟社平
翟社平,李 威,李 炀
(西安邮电大学 计算机学院,陕西 西安 710121)
人体特征检测算法的设计与实现
翟社平,李 威,李 炀
(西安邮电大学 计算机学院,陕西 西安 710121)
人体特征检测是特征识别技术的基础,特征检测技术运用到诸多领域,从刑侦领域的人脸检测到手机应用领域的指纹解锁都有涉及。为了实现人体特征检测算法的分析与研究,在现场可编程逻辑门阵列平台中,提出一种基于SAdaboost的人体特征检测算法。该算法结合了支持向量机和Adaboost分类器算法的优点,实现人体特征图像的降维处理,并对图像进行分类处理,实现人体特征元素的检测。整个设计基于ZedBoard硬件平台,该平台具有较强的可重构性和并行处理的能力,完成了人体特征图像检测算法的设计与实现,实现了对人体特征图像中的人脸、人眼、人体框架3种人体元素的检测。通过对比分析实验结果,验证了该算法的有效性。
现场可编程逻辑门阵列;支持向量机;Adaboost;分类器
0 引 言
特征检测可依据设备采集的原始数据来训练机器学习模型,从而对测试集进行分类检测[1-3]。特征检测广泛应用于人机交互、计算机视觉等领域,它是智能家居、物联网的重要组成部分。
文献[4]使用了改进的Adaboost算法对人脸进行检测;文献[5]利用红外技术对人脸进行识别;整个特征检测识别的过程分为数据采集、预处理、特征提取选择和分类检测4个模块[6]。其中,文献[4]只能实现人脸的检测,不能完成人体框架的检测;文献[5]研究识别图像是否为人脸,没能实现对人体特征的进一步识别,对于人体特征检测领域的研究,还存在一些难题,如图像处理速度慢、效果差等[7]。
近几年,基于图像处理的检测识别系统迅速发展[8-9],在此背景下,文中提出一种基于ZedBoard硬件平台的人体特征检测算法。该算法采用支持向量机分类器对人体框架信息进行检测分析[10],并对人体框架进行标注,实现人体特征检测。
1 算法分析
1.1 分类器
支持向量机(SVM)对于线性不可分的情况,通常使用非线性映射的算法[11],在解决非线性、小样本及高维模式识别中表现出其特有的优势[12]。SVM算法流程大致可以分为两部分:训练分类器和决策部分。SVM算法的训练过程中需提取大量的样本特征,根据样本特征值训练分类器,该分类器是判别输入图像的依据。
1.2 Adaboost算法
Adaboost的人体特征检测算法的训练过程,实质上是将具有最强分类能力的特征作为最优的弱分类器,接着将弱分类器转化为强分类器的过程。弱分类器的训练过程如下[13]:
1)系统初始化设置:定义M个训练样本,N个矩形特征;数组feature[i][j]存储样本的特征值(1≤i≤N,1≤j≤M),令数组V[i]=feature[i][],其表示第i个矩形特征下所有样本的特征值,MAX_V表示均方误差。
2)循环:FOR(i=0;i (1)对每一个矩形特征下所有的样本特征值按从小到大的方式进行排序。 (2)FOR(j=0;j 计算前j个样本的离散度: 计算后m-j个样本的离散度: Discretem-j= IF(Discretej+Discretem-j MAX_V=Discretej+Discretem-j 更新均方误差,记录弱分类器的阈值θ=V[j],分类置信度α1=Discretej,α2=Discretem-j。 (3)记录均方误差最小的矩形特征坐标。 3)输出最优矩形特征的参数,得到一个弱分类器。 Haar与Adaboost算法流程如图1所示。 首先计算出待检测人体特征图像Haar[14]特征值,根据不同的特征值设计不同的分类器。然后利用样本的Haar特征进行分类器训练,将大量弱分类器叠加起来,得到一个级联的强分类器。 2.1 优化算法 Haar特征只能描述水平、垂直、对角等简单的灰度结构,无法对一些复杂环境下的人体特征图像进行检测。改进的Adaboost算法用一种新型的稀松特征来代替Haar,相比于Haar特征和它的扩展特性,稀松特征更具优势[15]。由于稀松特征的指数复杂度大,导致无法列举所有的可能组合,因此文中用一种启发式的搜索算法。该算法可以为每一次循环中的Adaboost算法训练得到弱分类器。其中,启发式搜索是人工智能领域中一个经典最优化问题[16]。 图1 算法流程 得到最优的特征后,可根据上述经典Adaboost算法的训练思路得到弱分类器,然后再得到强分类器。 优化的Adaboost算法提取图像的稀松特征,检测复杂环境下的人体特征图像,能够成功辨别图像中的多人特征,并对其进行标注。 2.2 SAdaboost算法 SAdaboost算法结合Adaboost和SVM来实现人体特征检测系统的设计。 SAdaboost算法是整个图像检测流程中的核心部分,其中图像检测流程如图2所示。 首先根据算法设计要求训练SVM分类器和Adaboost分类器;然后依据分类器文件(.XML文件)对图像进行检测处理,SVM分类器对输入的图像进行检测,检测图像中是否含有人体部分。若有,则对其进行标注。Adaboost分类器对脸、眼等人体特征元素进行检测并标注。SAdaboost算法的图像检测系统的部分伪代码如图3所示。 伪代码实现的功能是对输入的一张图像进行检测,并标注图像中的人体特征部分。图4是SAdaboost算法的人体特征图像检测结果。 结果显示标注了人体框架以及人脸部分。分类器文件可简单地认为是一个阈值,该值可作为检测人体特征元素的依据。 图2 图像检测流程 图3 SAdaboost算法的部分伪代码 2.3 算法的实现 SAdaboost算法在ZedBoard硬件平台上实现,需经过图5所示的配置过程。 基于ZedBoard平台的人体特征检测步骤如下: 首先,在Linux平台中安装并配置OPENCV; 其次,安装交叉编译环境,用于编译SAdaboost算法,生成可执行文件; 最后,ZedBoard中运行.O文件以及镜像文件,实现人体特征检测。 图4 基于SAdaboost算法的特征检测结果 图5 配置过程 实验结果表明,PC机处理一张图片平均耗时21.067 ms,ZedBoard平均耗时177.058 ms。相比PC机而言,ZedBoard平台更耗时,但ZedBoard平台的资源利用率高,并且能实现人体特征检测算法的设计。 整个设计完成了算法优化与改进,并最终在ZedBoard上实现了人体特征的检测。能够实现对输入图像中的人脸、人眼、人体框架等人体特征部分进行检测,并对这些特征部分进行标注。 [1] Incel O D,Kose M,Ersoy C.A review and taxonomy of activity recognition on mobile phone[J].BioNanoScience,2013,3(2):145-171. [2] 朱虎明,焦李成.基于免疫记忆克隆的特征选择[J].西安交通大学学报,2008,42(6):679-682. [3] 王 帆,赵春晖,张 志.基于克隆选择算法的人脸特征选择[J].应用科技,2009,36(3):11-14. [4] 刘 琼,彭光正.一种改进的AdaBoost人脸检测算法[J].计算机应用与软件,2011,28(6):265-268. [5] 伍世虔.红外人脸识别[J].西安邮电大学学报,2013,18(1):11-21. [6] 王忠民,曹 栋.基于蚁群算法的行为识别特征优选方法[J].西安邮电大学学报,2014,19(1):73-77. [7] 侯梦华.基于机器视觉的实时目标检测系统研究[D].广州:广东工业大学,2008. [8] 陆振杰,宋 进.单幅数字图像多尺度空间下的场景深度估计[J].计算机技术与发展,2013,23(1):51-53. [9] 于新辉,张 建,李伟涛.基于生命周期分析信息安全管理体系[J].计算机技术与发展,2012,22(3):237-239. [10] 周 川,林学訚.基于核函数因素分解模型的表情的合成与识别[J].清华大学学报:自然科学版,2006,46(10):1751-1754. [11] 衡 霞,王忠民.基于手机加速度传感器的人体行为识别[J].西安邮电大学学报,2014,19(6):76-79. [12] 吴 青,赵 雄.一类新样条光滑支持向量机[J].西安邮电大学学报,2013,18(6):68-74. [13] 何世民.基于Adaboost算法的人脸检测及其在DSP平台上的移植[D].哈尔滨:哈尔滨理工大学,2010. [14]PapageorgiouC,PoggioT.Atrainablesystemforobjectdetection[J].InternationalJournalofComputerVision,2000,38(1):15-33. [15]HuangC,AiH,LiY,etal.Highperformancerotationinvariantmulti-viewfacedetection[J].IEEETransactionsonPatternAnalysisandMachineIntelligence,2007,29(4):671-686. [16] 李瑞淇.基于肤色和改进的Adaboost人脸检测算法研究[D].西安:西安电子科技大学,2014. Design and Implementation of Human Characteristics Detection Algorithm ZHAI She-ping,LI Wei,LI Yang (School of Computer,Xi’an University of Posts and Telecommunications,Xi’an 710121,China) Human feature detection is the basis of feature recognition technology which has been applied to many areas,from the face of criminal investigation to fingerprint unlock in the field of mobile application is involved.In order to achieve the analysis and study of human characteristics detection algorithm,in platform on field-programmable gate array,a body feature detection algorithm based on SAdaboost is presented.The algorithm combines the advantages of SVM and Adaboost classifier algorithm to reduce the dimension of human characteristics and to achieve the detection of human characteristic elements by image classification processing.Entire design is based on ZedBoard,which has a strong ability to reconfigurable and parallel processing,completing the design and implementation of human features image detection algorithm,realization of detection for human body elements,including face,eye,and human framework.Through comparative analysis of the experimental results,the validity of the algorithm is verified. FPGA;support vector machines;Adaboost;classifier 2015-06-04 2015-09-10 时间:2016-02-18 陕西省自然基金面上项目(2012JM8044);陕西省教育科研计划项目(12JK0733);西安邮电大学创新基金项目(114-602080034) 翟社平(1971-),男,博士,副教授,研究方向为语义Web、智能Agent、Web服务及云计算等;李 威(1990-),男,硕士研究生,研究方向为嵌入式应用。 http://www.cnki.net/kcms/detail/61.1450.TP.20160218.1630.024.html TP391 A 1673-629X(2016)03-0044-03 10.3969/j.issn.1673-629X.2016.03.0112 算法的设计与实现
3 结果分析
4 结束语