基于人脸识别的校车考勤系统设计
2016-07-29沈开荣张根源吴飞龙
沈开荣,张根源,吴飞龙
(1.浙江广播电视传输发射中心,浙江杭州,310005;2.浙江传媒学院电子信息学院,浙江杭州,310018;3.浙江大学仪器科学与工程学系,浙江杭州,310027)
基于人脸识别的校车考勤系统设计
沈开荣1,张根源2,吴飞龙3
(1.浙江广播电视传输发射中心,浙江杭州,310005;2.浙江传媒学院电子信息学院,浙江杭州,310018;3.浙江大学仪器科学与工程学系,浙江杭州,310027)
摘要:本文介绍了基于人脸识别的校车考勤系统设计思路,并对关键的人脸检测与人脸识别算法进行了深入的分析与设计,最终结果表明该系统设计达到了实际使用要求。
关键词:人脸检测;人脸识别;校车;考勤
1 基于人脸识别的校车考勤系统意义
近年来,各地校车重大安全事故层出不穷,校车的安全管理成为了制约校车推广的一个主要因素,采用人脸识别的校车考勤系统也应运而生。
人脸识别是一种基于人的面部图像信息进行身份识别的方法。通过摄像头获得含有人脸的图片或者视频,在图像中搜索和追踪人脸,并对人脸图片进行一系列的处理,最终识别不同人的身份信息。
相对于传统RFID识别的考勤系统,人脸识别的校车考勤具有方便快捷与安全性高的特点,不存在代刷卡的情况,且在上车的过程中就可以快速的完成检测,同时人脸识别的方法可以有效的检测出未注册的上车乘客,及时的记录乘客的信息,方便以后查询,安全性更高。
近些年随着深度学习技术的兴起,人脸识别的一些技术问题也得到了较好的解决,比如之前的人脸识别算法对于光照的敏感性较强,而基于深度学习的人脸识别算法较好的解决了这一问题,其识别率较高,适应性强,可以完成乘客考勤的任务。
2 基于人脸识别的校车考勤系统原理
人脸识别的算法流程图如图1所示,首先由摄像头采集到人脸图像,然后通过人脸检测算法定位人脸,之后对人脸进行特征提取,不过一般在特征提取之前会做一些复杂的预处理过程,其中常用的一项预处理方式就是人脸对齐,最后使用提取到的特征与数据库中的人脸特征做比对,并输出识别的结果。
人脸识别算法的第一步是人脸检测,人脸检测指的是在任意一幅给定的图像中使用一定的搜索方法找出其中存在的人脸,并返回人脸的位置大小等信息。
人脸在空间中不仅存在刚性变换,而且还会因为表情等各种原因存在较大的非刚性变换,所以仅仅是采集到人脸位置是不足以完成高精度的人脸识别。接下来要进行人脸对齐,也就是通过算法求出人脸特征点的位置,方便后续的人脸识别。
最后进行的是人脸识别,将要检测的人脸和数据库中的人脸一一比对相似度,如果在数据库中有符合要求的人脸则检测成功,输出检测结果,否则没有检测成功,可以将没有检测成功的人脸记录备案并输出未成功验证的识别结果。
3 人脸检测算法设计
人脸检测即从背景图片中找出人脸,并将其定位的过程。目前国内外主要的人脸检测算法主要包括基于特征的人脸检测、基于统计的人脸检测、基于肤色的人脸检测等,通过比较分析,最终选择基于统计的人脸检测方法。首先采集到要检测的图像,然后将原图像按照一定的比例缩放成多个不同大小的图片,然后使用一定大小的子窗口(这里选用20*20的子窗口)穷举图片中的每个位置。之后对每个子窗口使用训练好的分类器检测是否存在人脸,通过这种方法可能会对同一个人脸检测出多个窗口,所以之后需要对多窗口进行合并,最后显示出检测到的人脸图案。
使用机器学习的方法进行人脸检测可以简单的理解成一种模板匹配算法,既然是模板匹配,那就要求匹配的模板大小要相同,只有同样大小的输入才可以进行比对。产生同样大小模板的方式是通过对图像缩放产生多个不同尺寸的金字塔图像,然后使用滑动窗口生成待检测的子窗口。
图像的特征描述子是决定系统检测效果的关键因素之一,人们针对不同的图像特性设计了一些检测效果较好的特征,在人脸检测方面较为常用的特征有Haar特征以及LBP特征。通过实验比较,看出Haar特征的检测较好,漏检率较低,不过检测速度相对较慢,考虑到本论文结果要在嵌入式系统下实现,所以选择了检测速度较快的LBP特征。
表1 Haar特征和LBP特征检测效果对比
本文选用了Adaboost分类器作为基础的分类器,因为图片中会产生多个检测窗口,但是只有极少数窗口中存在人脸,所以采用级联分类器的方式进行检测,这样如果前几个分类器可以排除大部分非人脸图片,就可以快速的完成分人脸图片的检测,加快检测速度。
对于机器学习问题,选择了适当的算法之后还需要配合足够的有效的样本才能训练出好的模型。
样本的选择要覆盖尽量大的概率分布,这样才能学习到更好的模型,这里选用了FERET数据库的人脸图片作为正样本,如图2所示,其中足够多的样本包含了不同的年龄、性别、表情的人脸,而且也包含了不同光照环境下的人脸图案。
图2 人脸正样本图片
负样本一般选用大量的不包含人脸的图片,不过最好加入一定量的可能要检测场景下的不包含人脸图片作为负样本,比如本文在校车上以及上车过程中检测人脸,那么加入上车地点的背景图片以及车内的图片作为负样本,可以有效的降低分类器的误检率。如图3是其中一些较有代表性的负样本图片。这些图片的大小远大于模板的大小,而且不是灰度图,所以在训练之前需要对图片灰度化处理,而且需要通过缩放和滑动窗口的方式产生多个和正样本大小相同的负样本窗口,最后才能作为负样本被使用。
图3 人脸检测负样本图片
有了正负样本之后接着就可以开始训练分类器,图4展示了分类器训练的过程。
图1 人脸识别算法流程图
从样本库中获得20*20大小的正负样本,正样本通过缩放到20*20大小,负样本通过缩放以及裁剪生成20*20大小窗口,对正负样本提取特征,由这些特征向量训练弱分类器,再由弱分类器组合成强分类器,强分类器一般从前到后的级数不断增加。在每次训练好一个强分类器之后用强分类器检测非人脸样本,将可以正确区分的负样本删除,加入新的非人脸样本继续训练新的强分类器。等到训练好足够多的强分类器之后组合成为级联分类器,不过级联分类器的训练也不是一次就可以完成。训练好分类器之后在新的样本集上检测,发现其中存在的问题,并把错误分类的图片类别加入到训练集中重新训练分类器,经过多次反复之后,最终才能得到较好的人脸检测分类器。
使用图像金字塔以及滑动窗口的检测算法的结果一般会检测出多个窗口,最后需要对多个窗口的结果进行合并,才能输出最终的检测结果。 本文采用K邻近算法实现聚类,首先判断任意两个窗口是否属于同一个人脸,这里依赖两个窗口的位置关系判断。然后对得到的窗口查并集,得到最后的检测结果。
由于代码需要在嵌入式平台上实现,所以程序的运行速度比较关键,特别是人脸检测的程序需要在乘客上车中完成,需要较好的实时性来达到较好的用户体验,所以对速度的要求较高。这里根据真实的应用场景对算法做出一定的优化,加快了算法执行速度,提升用户体验。
基于分析可以知道,如果只是检测一定距离内的人脸图片,可以缩减多尺度图像的数量,这样的好处是加快了计算的速度,并且不检测一些距离较远的人脸图像,对于之后的人脸识别算法,远处拍摄到的图片一般成像质量较差,会对识别率有一定不好的影响。通过缩减多尺度变化的数量可以有效的提高算法速度,并且提高获取图片质量。
而且视频和单一的图像也有不同,相邻帧的图片之间有相关性,一般情况下相邻的两帧图片之间人脸的平面位置以及距离摄像头的距离都十分接近,所以第一帧图片中如果搜索到了人脸,那么对于下一帧的搜索,可以先从之前的缩放等级以及位置先开始,并在其相邻空间搜索,这样就能有效的加快算法的执行速度。
表2 算法优化后的结果
图4 分类器的训练过程
下表2是在嵌入式平台下优化过的算法的检测速度,每一个时间为取样100帧计算的平均值。为了方便人脸识别,这里的算法都是检测到最大的一个人脸之后停止检测。可以看出经过优化之后的检测速度有了较大提升,可以完成实时的人脸检测。
4 人脸识别算法设计
为了能够达到较好的识别效果,这里选用了FACE++的人脸识别解决方案,FACE++提供了人脸识别云服务,通过使用官方SDK可以快速完成人脸识别。FACE++识别的准确率较高,在LFW数据库上已经超越人眼的识别能力。经过实验发现FACE++的人脸识别算法对于光照、表情、模糊都有较好的抗性,这些因素对识别的结果影响较小,不过大角度的侧脸会影响识别的精度。所以在对一名乘客建立数据库的过程中需要建立多个角度的数据,这样有利于对多角度人脸的识别。
对于本文的应用场景一般校车的乘客数量不会超过100人,这里使用FERET数据库中的90个人脸再加上10人建立了一个人脸库,用于模拟校车上的乘客。选用FERET数据库的原因是这个库的人脸图片包括了人脸的不同侧面,这样有助于提升检测的准确率。
下面是500次注册人员和500次非注册人员进行人脸识别的输出结果。可以看出对于注册过乘客,虽然500次识别中有11次没有检测通过,但是并没有出现错误的情况。500次对未注册的乘客都可以有效的识别出来。所以这种基于人脸识别的考勤系统是安全可靠的。
表3 人脸识别效果
在识别速度方面,对于1000次测试中,平均检测速度为0.7s左右,最慢检测速度为1.4s,检测速度较快。可以满足使用的需求。
5 结语
本文提出的基于人脸识别的校车考勤系统,已经在NVIDIA公司专门为视觉计算推出了的嵌入式计算平台Jetson TK1得以实现,系统的主控芯片采用了四核A15 ARM架构处理器,内置NVIDIA Kepler架构GPU。经过实验表明,系统设计满足了校车考勤实际使用的要求。
参考文献
[1]吴飞龙,基于机器视觉的校车安全监测系统[D],浙江大学,2016
[2]Organization W H. Global status report on road safety 2013: supporting a Decade of Action[J].World Health Organization, 2013.
[3]丁芝华.我国校车安全管理的现状、问题与完善对策[J].中国公共安全:学术版,2011(4):93-96.
[4]Ghazarian O. Electronic vehicle product and personnel monitoring: US, US RE43178 E1[P]. 2012.
[5]Schmidhuber J. Deep Learning in Neural Networks: An Overview[J]. Neural Networks, 2014, 61:85–117.
作者简介
沈开荣(1977-),男,浙江义乌,本科,工程师,研究方向为广播电视传输技术。
Design of school bus attendance system based on face recognition
Shen Kairong1,Zhang Genyuan2,Wu Feilong3
(1.Zhejiang radio and television transmission and transmission center,Hangzhou Zhejiang,310005;2.Electronic information college,Zhejiang University of Media and Communications,Hangzhou Zhejiang,310018;3.Department of Instrument Science and engineering,Zhejiang University,Hangzhou Zhejiang,310027)
Abstract:This paper introduces the design idea of school attendance system based on face recognition,and the key of face detection and face recognition algorithm were in-depth analysis and design.
Keywords:face detection; face recognition;school bus;attendance