基于QT和OpenCV的人脸识别系统TheFaceRecognitionSystemBasedonQTandOpenCVbysununs11关键词:ARM,QT,OpenCV,人脸识别,PCA1系统方案设计1.1引言人脸是一个常见而复杂的视觉模式,人脸所反映的视觉信息在人与人的交流和交往中有着重要的作用和意义,对人脸进行处理和分析在视频监控、出入口控制、视频会议以及人机交互等领域都有着广泛的应用前景,因此是模式识别和计算机视觉领域持续的研究热点。本系统在FriendlyARMTiny6410开发板基础上,利用OpenCV计算机视觉库和QT图形库,通过普通的USB摄像头实现了自动人脸识别,准确率较高,方便易用。1.2系统总体架构“人脸识别”大致可分为两个阶段:1.人脸检测搜索一幅图像,寻找一切人脸区域(此处以绿色矩形显示),然后进行图像处理,清理脸部图像以便于更好地识别。2.人脸识别把上一阶段检测处理得到的人脸图像与数据库中的已知人脸进行比对,判定人脸对应的人是谁(此处以白色文本显示)。1.3工作流程系统运行时,自动从USB摄像头获取YUV格式的图片,转换成QImage格式并实时显示在LCD屏上,再将其转换成IplImage格式,利用OpenCV的HaarCascadeFaceDetector(也称为Viola-Jones方法)进行人脸检测,得到一个矩形区域,截取该矩形区域图像进行直方图均衡化处理,进行训练或识别。系统训练流程:点击触摸屏上的按钮获取一帧图片,由训练者判断是否加入训练集。当训练集图片足够后,点击训练按钮,即使用PCA方法处理训练集中的人脸图片,生成XML文件。系统识别流程:点击触摸屏上的按钮,进入识别状态。得到上述的人脸区域图像后,读取XML文件,使用PCA方法将图像与数据库比对,若可信度超过阈值,则在屏幕上显示出人名。摄像头可获取多幅图像以提高准确度和可靠性,我们采集多幅图像求可信度平均值与阈值比较,若可信度平均值大于阈值,则登录系统成功,通过串口发送信号并弹出对话框提示信息;若在规定时间内未登录成功,则记录访问者的人脸并提示登录失败。2系统原理与算法实现2.1基于Haar特征级联强分类器的人脸检测多分类器级联结构是很多强分类器的组合,其结构如下图所示:它是一种由粗到细的结构,其中每一层是AdaBoost算法训练得到的一个强分类器,都经过阈值调整,使得每一层能让全部正例样本通过,而拒绝很大一部分非人脸样本。本作品使用OpenCV中的检测器,使用其自带的一个XML文件执行检测。2.2基于PCA方法的人脸识别PCA方法由Turk和Pentlad首先提出,它的基础就是Karhunen-Loeve变换(简称KL变换)。一幅人脸图像(假设为50x50像素)是一个2500维空间的数据点,我们利用PCA方法将所有人脸图像数据点投影到PCA子空间中进行降维和特征提取。相对于欧式距离,利用马氏距离作为人脸图像间的距离识别效果较好,但由于本作品主要用于判断待测人脸是否为数据库中人脸,可信度的计算方法极为关键,而目前最好的可信度的计算方程是基于欧式距离的:floatconfidence=1.0f–sqrt(it→distance/(float)(trainFacesNum*eigenVectorsNum))/255.0f;故本作品仍采用欧式距离。OpenCV的人脸检测器获取到人脸图像后,使用直方图均衡化进行图像的预处理,然后调用OpenCV的库函数进行识别,用上述公式计算出待测人脸可信度。3系统测试第1~4次测试中,人脸数据库中只有ORL数据库的四个人和A的人脸数据,此时B、C均为“陌生人”,只有A能登录系统。第5~9次测试中,人脸数据库中增加了B的数据,此时只有C为“陌生人”,A、B均可登录系统。测试结果如下图:测试序号人员编号登录耗时(s)识别帧数平均可信度误识别次数1A1620.85602A-100.84603B∞100.67504C∞100.77805A-100.87806B-100.90607C∞100.82408A1420.88309B1120.9130注:1.登录耗时指某人从坐到摄像头前,摆正角度到登录成功所用时间。2.识别帧数表示用于计算平均可信度的图像帧数,均由摄像头连续获取。3.系统的可信度阈值设为0.85。4结语本作品以友善之臂的Tiny6410开发板为平台,使用普通的USB摄像头,设计了一个自动人脸识别系统。系统实现了训练、识别人脸的功能,并在实验室环境下完成了测试。经测试,使用者在未训练时无法登录系统,其可信度与人脸数据库中已有人员的可信度有一定差值,可以区分数据库内外人脸。使用者经过训练后即可登录系统。利用摄像头可以连续获取图像的特性,本作品多次计算可信度取平均值的方法一定程度上提高了识别的可靠性。当然,本作品仍有很多不足的地方,比如由于驱动程序不完善,单靠软件实现的图像采集速度较慢,导致实时性不高;以及未实现活体检测,存在使用主人照片登录系统的可能。参考文献[1]黄福珍,苏剑波,人脸检测[M],上海交通大学出版社[2]SherviniEmami,IntroductiontoFaceDetectionandFaceRecognition[EB/OL],[3]RobinHewitt,SeeingWithOpenCV-AFive-PartSeries,[EB/OL][4]田捷,杨鑫,生物特征识别理论与应用[M],清华大学出版社[5]vaibhav420,FaceRecognitioninC/C++WithThesis,