基于AdaBoost+肤色模型的多人脸检测考勤系统

时间:2020-10-16 18:06:48 计算机应用毕业论文 我要投稿

基于AdaBoost+肤色模型的多人脸检测考勤系统

  摘要:为解决多人场景下的身份注册问题,将人脸检测作为依据,提出一种多人脸检测考勤系统。该系统以智能终端拍摄图像作为输入,基于人脸检测获取考勤目标,最后通过用户注册获得待考勤目标的身份信息。目前系统已投入课堂学生的点名应用中,实验结果验证了该系统中各环节方法的有效性和鲁棒性。

  关键词:人脸检测;考勤;多人;自动识别

  一、概述

  人脸检测不仅是生物特征识别领域的重要课题,同时也是计算机视觉领域的研究热点。它是人脸定位、身份验证、身份查找等多种应用的基础。由于具有重要的理论和应用价值,因此越来越受到研究人员的重视。目前,人脸检测技术已经广泛的应用于门禁、摄像监视等系统中。

  人脸检测利用图像或视频作为输入,对探测区域进行检测,以确定其中是否存在人脸及其可能的位置和区域。常用的人脸检测的方法主要分为两大类:(1)基于知识的方法。这类方法主要利用人脸的明显特征如眼睛、眉毛、嘴巴、鼻子等器官特征及其相互之间的位置关系进行判断。包括基于人脸几何特征的人脸检测、基于肤色模型的人脸检测等。(2)基于统计的方法。这类方法将人脸看成一个整体,用统计的方法使用大量人脸图像样本的训练构造人脸模式空间,再根据相似度量检测人脸是否存在。包括基于神经网络的人脸检测、基于AdaBoost算法的人脸检测等。

  AdaBoost具有精度高、弱分类器构造简单、检测率高且速度快等优点,但是AdaBoost算法仅考虑灰度特征,容易造成误检。基于肤色模型的人脸检测方法在实际应用中容易将与颜色相近的区域误检为人脸。通过AdaBoost定位出入脸位置,再运用肤色模型对其进行肤色校验则可以很好的.规避两者缺点。因此本文提出了一种基于AdaBoost与肤色模型的人脸检测方法,并应用于多人脸考勤系统中。

  二、人脸检测

  2.1数据采集

  人脸数据获取是人脸检测的基础。系统对输入数据并无过多限制条件,输入数据可来自用户随身携带的智能手机,也可以是室内监控摄像机的拍摄结果。对于某些无法用一副图像采集完全的大尺度场景,可利用智能手机中自带的全景拍摄功能,完成拼接后上传全景数据。经过调查,目前包括iPhone、三星、小米等绝大多数智能手机均自带全景拍摄功能。即使用户手机中无此功能,官方的应用商店如App Store. Google Play也具有诸多相关应用如:Photosynth,可免费下载用以获取拍摄场景的全景图像。实验证明,借助手机全景拍摄功能采集的图像可以作为有效的输入,同时方便考勤人员采集考勤数据,获取数据的便衬|生大幅增加。

  2.2基于AdaBoost人脸检测

  AdaBoost是由Yoav Freund和Robert E.Schapire在1995年提出的一种迭代分类算法,其核心思想是将同一训练集的不同弱分类器集合起来,从而构造一个强分类器。不同的弱分类器具有不同的权值,且它能根据上一次的结果确定每个样本的权值,然后继续通过分类器训练,最后将每次训练得到的分类器集合起来得到最终的分类器。

  AdaBoost在人脸检测应用中需要通过训练大量可以区分人脸和非人脸区域的Haar特征,并从中挑选一些重要的特征并组合起来构成级联分类器,最终生成强分类器。这个过程中需要大量的Haar特征参与训练。经过大量样本训练来区分人脸和非人脸区域,最后经过AdaBoost对分类器进行计算,即可用于人脸检测。

  2.3肤色模型检测

  应用AdaBoost方法的漏检率相对较低,但误检率相对较高。因此需要通过处理将一些误检区域去除。本文选取基于肤色模型的方法对已检测到的人脸部分进行分析,以减少单纯利用AdaBoost方法造成的误检率过高问题。

  三、系统实现

  3.1硬件环境

  系统硬件环境包括:Intel Core Duo E7500 2.93GHzCPU, 2G内存以及NVIDIA GT210独立显卡。

  3.2软件系统

  系统采用B/S架构,前端采用ASP.NET开发,主要包括:考勤人员上传考勤图像模块、结果、考勤人员登录确认模块、显示考勤结果等模块。后台服务器端采用C++借助OpenCV库实现上传图像或视频的多人脸检测。

  3.3考勤实现

  系统中AdaBoost人脸检测模块包括收集样本、训练样本生成分类器、使用生成的分类器进行人脸检测等步骤。

  样本包括正样本和反样本,即包含人脸部分图像和不包含人脸部分的图像。样本数量越多则生成的分类器越可靠,后期人脸检测更准确。样本训练前需要对图像进行归一化处理,即需要使各图像像素尺寸一致。归一化处理后,建立正反样本描述文件,正样本描述文件每行内容包括图像名字、该图像中正样例(人脸区域)个数、图像的宽、图像的高,使用空格间隔。反样本描述文件每行内容仅包括图像名字。之后通过OpenCV提供的opencv_createSamples可执行程序创建正反样本vec文件。

  正反样本vec文件生成后需要通过_Opencv提供的opencv_haartraining可执行程序进行样本训练。训练完成后将生成一个xml文件,即通过AdaBoost算法生成的用于人脸检测的分类器文件。此处主要利用了AdaBoost的OpenCV实现。

  使用生成的分类器进行人脸检测时主要使用了OpenCV提供的两个方法:

  (l)load()方法,其主要功能为载人生成的分类器。

  (2)detectMultiScale()方法。此方法通过使用之前载入的分类器,在输入的图像中查找人脸区域并返回人脸区域的位置。

  在AdaBoost初步确定人脸区域后,采用肤色模型校验。肤色检测需要设置肤色范围,通过将图像中的像素点与“标准肤色”相比较,从而区分图像中的肤色区域与非肤色区域。

  在设置“标准肤色”范围时,实验中采用了三种广泛使用的颜色空间:RGB色彩空间、HSV色彩空间、YCbCr色彩空间。

  实验中,共设置两个RGB标准肤色模型。RGB肤色模型一的值范围应满足:G>40、B>20、R>G、R>B、MAX(R,GB)-MIN(R,GB》15。RGB肤色模型二的值范围应满足:R>220.|R-G|<15. R>G. R>B。

  将RGB颜色转换为HSV颜色,然后设置HSV标准肤色值范围应满足:O  将RGB颜色转换为YCbCr颜色,然后设置YCbCr标准肤色值范围为:Y>20、135  通过与标准肤色数据对比,图像某区域像素同时符合三种标准肤色值范围时即认为是肤色区域。结合AdaBoost检测结果综合判定人脸区域。最后通过rectangle方法在图像上使用矩形框标注入脸位置。

  使用时,首先由教师通过手机拍摄课堂照像(如图1所示)并登录系统上传考勤图像。后台服务器监测到有图像上传即对图像进行人脸检测,并对不同人脸逐一标注序号。被考勤人员分别登录系统,选择图像与自身相对应的序号。当系统发生漏检时,系统还向用户提供手工框选接口,以修正系统对人脸的漏检。系统会实时将每次考勤结果存人数据库系统,同时生成考勤图像、考勤表等方便考勤查看。系统流程图如图2所示。

  四、实验结果

  为验证该考勤系统的实际效果,作者将该考勤系统应用于课堂的学生点名中。实验发现,仅在AdaBoost算法检测下,会出现较为严重的误检现象。在加入了肤色校验之后,误检率明显下降。结合两种方法后,基于AdaBoost算法结合肤色模型进行人脸检测具有很好的可用性以及鲁棒性,可显著降低误检率。

  基于人脸检测结果,通过学生分别登录选择注册,获得了实际上课学生的考勤结果。

  五、结束语

  本文基于AdaBoost算法和肤色模型校验,结合用户选择注册,实现了多入场景下的考勤。实验证明,该方法具有良好的可用性及鲁棒性,目前,考勤系统已经作为课堂考勤工具正在使用,能够获得准确的学生到课结果。然而,该系统还存在较多问题,当存在如遮挡、侧脸、低头等姿态时,检测精度下降,尚不鲁棒。系统可使用人脸识别方法取代人工注册,减少用户操作。在人脸检测过程中,通过将采集到的人脸入库,供后续人脸识别使用。由于传统人脸识别方法如:PCA、LBP等,在多人大尺度场景中识别率较低,尚不满足统计需求,因此探索多入场景下高精度人脸识别算法将是未来研究工作的重点。

【基于AdaBoost+肤色模型的多人脸检测考勤系统】相关文章:

1.东莞不动产登记中心人脸识别流程

2.四六级多题多卷应试的“道”与“器”

3.暑期应聘陷阱多

4.暑期应聘“陷阱”多

5.谈判的时间远比销售的时间多

6.考勤工作的年终总结

7.化工检测电子简历模板

8.检测员电子简历模板

9.检测员职位简历范文