关 闭

新闻中心

EEPW首页 > 安全与国防 > 设计应用 > 基于AdaBoost+肤色模型的多人脸检测考勤系统

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

作者:裴炤 李鹏鹏时间:2015-08-06来源:电子产品世界收藏
编者按:为解决多人场景下的身份注册问题,将人脸检测作为依据,提出一种多人脸检测考勤系统。该系统以智能终端拍摄图像作为输入,基于人脸检测获取考勤目标,最后通过用户注册获得待考勤目标的身份信息。目前系统已投入课堂学生的点名应用中,实验结果验证了该系统中各环节方法的有效性和鲁棒性。

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

本文引用地址:http://www.eepw.com.cn/article/277706.htm

1 概述

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

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

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


2 人脸检测

2.1 数据采集

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

2.2 基于AdaBoost人脸检测

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

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

2.3 肤色模型检测

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

3 系统实现

3.1 硬件环境

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

3.2 软件系统

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

3.3 考勤实现

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

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


c++相关文章:c++教程



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭