论文部分内容阅读
随着人脸识别技术的快速发展,各大高校及研究院都进行了对于人脸识别技术的研究与分析。国内的人脸识别技术主要是针对于正脸的自动识别,通过投影获取稳定的特征点进行人脸识别。部分科学家通过降低矩阵维数的方式,降低运算量,提高识别效率,但该方式容易降低识别率。而在美国,最初是通过采集多个关键点之间的距离产生特征向量,但该方式的运算量过于的繁琐,所以美国一家研究所创造了一种全自动算法,自动计算两眼之间的距离进行识别,虽然可以提高一定的识别效率,但其略低的识别度暂时不能被接受。如今的人脸识别系统运用在公安刑事侦破、银行监控系统和公司安全系统等对于识别次数和效率要求不高的系统中。但当人员聚集较多时,效率将成为人脸识别系统最主要的因素,这也是在学校内无法进行大规模的人脸识别系统应用的主要原因之一。如在考试验证时,若人脸识别系统的效率过低,将会花费大量的时间进行人脸识别的操作,对于考试开始的时间有着一定的影响。因此,基于上述考虑,需对传统的人脸识别系统进行一定的改进,提高其识别效率,增加其在诸如学校等人员聚集地方的使用率。由于人脸识别系统是通过人脸采集后转化为图片进行识别的,而在后续进行图片存取时受到读取速度的限制,从而对识别的效率有一定的影响,所以提高图片的存取速度将是提高人脸识别的识别效率的一个有效方法。增加redis缓存进行图片的存取便可以有效的提高图片的存取速度,从而提高人脸识别系统的识别效率。所以,对于传统人脸识别系统识别效率的不足改进方案是加入redis缓存进行图片的存取操作。整个基于redis的人脸识别系统的设计分为了前台展示模块设计、后台功能模块设计和数据存储模块设计。前台展示模块的设计分为页面展示模块设计和数据交互模块设计,前台页面采用html语言进行编写,数据交互主要使用mysql数据库和redis缓存与后台进行数据的交互,在此基础上对redis支持的交互数据进行详细的分析。后台功能模块设计分为人脸的对比功能设计、搜索功能设计、关键点标识功能设计和检测功能设计,在对该模块的功能进行设计前首先要对人脸识别技术进行理论研究与分析,主要分为对基于局部特征人脸识别的各种方法的研究、基于全局特征的人脸识别的各种方法的研究和基于混合特征的人脸识别的各种方法的研究。其次要对系统需要用到的各个环境进行环境的搭建,其中包括tomcat服务器搭建、redis缓存平台搭建、mysql数据库搭建、eclipse开发工具搭建、nginx反向代理平台环境搭建。最后是对于功能模块的设计与实现,其中包括人脸的对比功能、搜索功能、关键点标识功能和检测功能。人脸对比功能的设计与实现分为了人脸的对比功能上传模块设计、对比功能图像转码模块设计和对比设计。人脸搜索功能的设计与实现则分为了人脸的搜索功能上传模块设计、搜索功能图像转码模块设计和搜索设计。人脸关键点标识功能的上传模块和图像转码模块与人脸搜索功能类似,而关键点标识功能则是展示人脸的四官。人脸检测功能的上传模块和图像转码模块同样与人脸搜索功能类似,而人脸检测功能则是检测人脸并返回年龄和性别。各功能设计所使用的核心算法为相似度百分比算法,该算法是根据自相关运算和互相关运算以及一系列计算而得出的相似度百分比。数据存储模块分为mysql数据存储模块和redis数据存储模块。redis数据存储模块作为系统的数据存储核心需要先对其进行理论研究与分析,其中包括了缓存类别的分析、主流缓存技术的分析和redis作用的分析。同时对redis缓存在人脸识别系统中的优点进行详细的分析,主要体现在redis内部功能部分、redis相关特性部分和redis优于其他缓存的部分。整个基于redis的人脸识别系统的测试主要包括人脸的对比功能测试、搜索功能测试、关键点标识测试、检测测试和redis对于人脸识别系统的效率提升测试。在各个功能的图片上传测试之后,分别进行了人脸的对比测试、搜索测试、关键点的标识测试和检测测试。最后进行redis对人脸识别系统的效率提升测试。实验完成了基于redis的人脸识别系统的设计、实现及结果测试,同时完成了redis对于人脸识别系统的效率提升的测试。测试结果表明:(1)人脸对比功能上传模块能够正常的进行图片的上传,人脸对比模块能够进行人脸的对比并返回相似百分比。(2)人脸搜索功能上传模块能够正常的进行图片的上传,人脸搜索模块能够进行人脸的搜索并返回相似百分比最高的4张图片和对应的相似百分比。(3)人脸关键点标识功能上传模块能够正常的进行图片的上传,人脸关键点标识模块能够对人脸的四官进行标识。(4)人脸检测功能上传模块能够正常的进行图片的上传,人脸检测模块能够进行人脸的检测并返回年龄和性别信息。(5)redis对人脸识别系统的效率有着一定的提升,提升时间为400ms左右。由于客观因素(如系统运行时,cpu被占用)的存在,所以实验数据存在着一定的误差,误差范围在150ms以内。实验结果证明基于redis的人脸识别系统相比于传统的人脸识别系统有着识别效率的提升,在需要进行大规模的人脸识别时,有着较好的应用价值,如:学校、火车站等人流量较大,能够进行大规模人脸识别的场景。