《基于Web的人脸识别系统的研究与实现.pdf》由会员分享,可在线阅读,更多相关《基于Web的人脸识别系统的研究与实现.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机与现代化2010年第3期J ISUANJ I YU XI ANDA IHUA总第175期文章编号:100622475(2010)0320096204收稿日期:2009208207作者简介:范忠(19852),男,湖北鄂州人,中南民族大学电信学院硕士研究生,研究方向:图像处理与模式识别。基于Web的人脸识别系统的研究与实现范 忠,高智勇,黄正华,王 林(中南民族大学电信学院,湖北 武汉430074)摘要:分析传统人脸识别系统的缺陷,提出一种基于J2EE平台架构的人脸识别系统,有效地解决现有系统可重用性差、耦合度太高、兼容性差、开发部署困难等问题。讨论系统组件的设计,PCA人脸识别算法的原理
2、,Web条件下Matlab程序的调用等关键技术。系统采用分布式的J2EE架构,与Matlab有机结合,具有良好的安全性和通用性。关键词:J2EE体系结构;人脸识别;Matlab集成中图分类号:TP391.4 文献标识码:Adoi:10.3969/j.issn.100622475.2010.03.028Research and Realization ofW eb2based Face Recogn ition SystemFAN Zhong,GAO Zhi2yong,HUANG Zheng2hua,WANG Lin(College of Electronic and Information E
3、ngineering,South2centralUniversity forNationalities,Wuhan 430074,China)Abstract:The deficiency of traditional face recognition system is analyzed,and a new face recognition system is provided usingJ2EE technology.Problems such as poor reusability,complicated development and distribution,and tight co
4、upling are solvedwithin the system.This article discusses the component design,the principle of PCA face recognition algorithm and the Matlabprogram calling under theWeb.The system uses distributed J2EE techlogy,organic integratedwithMatlab.It is a safe and com2mon system.Key words:J2EE architecture
5、;face recognition;Matlab integration0 引 言人脸识别系统是计算机图像处理技术与模式识别交叉的应用,具有很强的智能化功能,是继指纹识别系统之后的又一新型识别系统,有着十分广阔的应用前景。目前的人脸识别系统主要用于单机系统(笔记本人脸验证、人脸识别考勤机、门禁机等)或者在特定的场合,如机场、体育场安装人脸识别系统前端,通过前端(摄像头)采集图片送到后端服务器进行识别。但系统局限于场合和特定的操作系统,可重用性差。本文利用Java在网络编程方面的强大能力,将人脸识别系统扩展到互联网上。利用Java的平台无关性,使得系统的运行与平台无关。利用面向对象的Java语言
6、,使得系统的各模块相互独立性好,易于开发和维护。利用Matlab builder for Java,采用Matlab语言编写算法,使得算法模块易于开发和维护,更具安全性。将算法和系统分离,有利于团队开发。1 系统的结构1.1 J2EE开发平台的优势J2EE(Java 2 Platfor m Enterprise Edition)平台提供了用来创建应用的Java扩展应用程序接口(API),还提供了多层分布式应用模型、组建复用、一致化的安全模型以及灵活的事务控制。在此基础上开发的人脸识别系统具有较高的可用性、安全性、可扩展性、可移植性和平台无关性。瘦客户端使用户无需在客户端安装软件,简化了操作,也
7、节省了费用。1.2 Matlab语言Matlab是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。相对于C/C+,Matlab语言的语法简单且计算功能强大,采用2010年第3期范忠等:基于Web的人脸识别系统的研究与实现97Matlab编写的人脸识别代码更加简单易懂,代码量比起C/C+大大减少,更加易于维护,不易出错。采用Matlab语言编写,可将算法与系统有效分离。当算法需要改进时,只需将Matlab代码进行改动,重新打包即可,不需对系统其它部分进行改动。这样,系统开发者只需关注这个系统的设计,而无需关注算法。算法开
8、发者也无需关注系统的设计。1.3系统的整体结构系统的整体结构如图1所示。图1 系统的整体设计2Web端服务器的总体设计Web端采用Tomcat服务器,服务器端的主要任务是通过Servlet作为前端来接收客户端发送来的图像数据,并与人脸检测和识别模块进行数据通讯;再通过JDBC访问后台数据库并返回查询信息,将返回的信息通过互联网返回给客户端用户。具体流程如下:(1)用户输入待识别的图片名,服务器端得到图片名,调用上传模块将图片上传到服务器,这样就避免了直接操作客户端机器,提高了系统的安全性。(2)服务器得到图片后,调用识别模块对用户输入的图片进行识别。(3)识别模块得到识别结果后,服务器通过JD
9、2BC查询数据库,得到对应人脸的个人信息。(4)得到信息后,服务器生成静态的HT ML页面,显示在客户端浏览器上。其中,上传图片模块采用jsps mart网站开发的一个可免费使用的全功能文件上传下载组件jspSmart2Upload,该组件使用简单(只需下载相应的jar文件放入服务器库文件夹中,即可在程序中使用),能全程控制上传,并能对文件在大小、类型等方面进行限制。上传模块部分代码如下:SmartUpload mySmartUpload=new SmartUpload();/构造SmartUpload对象com.jsps mart.upload.File myFile=myS mart Up
10、2load.getFiles().getFile(0);/构造com.jspsmart.upload.File对象StringmyFileName=myFile.getFileName();/取得上传文件名String ext=myFile.getFileExt();/取得上传文件后缀名String url=facerecognition/images/;/上传文件保存的位置String saveurl=;saveurl=request.getRealPath(/)+url;/取得当前目录,得到文件存储绝对路径saveurl+=myFileName+.+ext;/保存路径myFile.save
11、As(saveurl,mySmartUpload.SAVE _ PHYSI2CAL);/上传文件识别模块采用Matlab语言编写,在Java中进行调用。服务器通过JDBC接口实现与MySQL数据库的相连。JDBC是一套数据库编程接口API函数,用于执行SQL语句,由Java语言编写的类和接口组成。3PCA(主成分分析法)算法3.1 PCA算法原理主成分分析法主要利用了图像的K2L变换,K2L变换是一种常用的正交变换,是在均方误差最小的意义下获得数据压缩的最佳变换。将主成分分析法用于人脸识别,需假设人脸处于低维线性空间,且不同人脸具有可分性。由于高维图像空间K2L变换可得到一组新的正交基,因此可
12、保留部分正交基,以生成低维人脸空间。低维空间的基通过分析人脸训练样本集的统计特征来获得,K2L变换的生成矩阵是训练样本集的总体散布矩阵。具体过程如下:一幅NM图像按列相连可构成一个NM向量:x=(a11a21aN1a12a22aN2a1Na2NaNM)T98计 算 机 与 现 代 化2010年第3期K2L坐标系的生成矩阵为=E xxT,由于样本集的均值向量通常无意义,故可用样本集的协方差矩阵:=E(x-)(x-)T作为K2L矩阵的生成矩阵,上式也可表示为:=1CC-1i=0(x-)(x-)T其中,xi为第i个训练样本的图像向量,为训练样本集的平均图像向量,C为训练样本的总数。由于协方差矩阵的维
13、数为NMNM,直接求其特征值和特征向量计算量太大,可利用SVD分解的方法间接求其特征值和特征向量。得到矩阵的特征向量U后,如果选取所有的特征向量,维数很大,考虑K2L变换的特点,仅选取前k个最大的特征值对应的特征向量?Uk,这些特征向量形成一个降维子空间,原来的人脸图像可以看成该空间的一个点,它们在该子空间的投影可以得到一组坐标系数:yi=?UTk(xi-)这组系数表明了原来人脸图像在该主成分分析法的正交子空间中的位置,可作为人脸识别的依据。只要求出待识别样本在该空间投影的坐标系数,和人脸库得到的坐标系数比较,即可确定该样本是人脸库中的哪个人。3.2 PCA算法实现图2PCA算法流程图4Mat
14、lab与Web的应用集成Matlab提供了丰富的外部程序接口,其中,最新的组件Matlab builder for Java为本系统在Java程序中调用Matlab丰富的数值计算资源提供了极大的便利。首先使用Matlab builder for Java将Matlab程序打包成jar文件,并同时生成一个ctf文件。将jar和ctf文件置于同一文件目录下,并将该文件路径添加在setclasspath.bat文件中,该文件设置tomcat服务器的路径。这样,即可在Web程序中调用Matlab程序。在本系统中,将人脸识别的Matlab代码利用Mat2lab2008b中的deploytool工具打包为
15、face_recognition.jar文件。然后可在Java代码中调用,调用过程如下:private Object result=null;privateMWCharArray a;/定义Matlab变量String s=input_file;a=new MWCharArray(s);/转化为Matlab变量face_recognition myAdd=null;myAdd=new face_recognition();/定义face_recognition类result=myAdd.face_recognition(1,a);/得到结果Integer out=new Integer(Int
16、eger.parseInt(Result 0.toS2tring();/将结果转换成Java变量5 实 例实验条件对实验效率和实验结果的精度有重要影响,本文在W indows平台上采用傲游浏览器作为前端供用户输入待识别图片,服务器采用CPU为IntelDuo(2)2.1GHz,内存为2G的PC机。采用ORL人脸库作为测试集,该人脸库共有400幅人脸图片,共计40人,每人10张图片。将每人各取一张图片作为测试样本,则服务器端共有390幅图片作为训练样本。从浏览器端输入一张人脸测试图片,提交请求后,得到如图3的响应结果。经过多次测试,结果表明,绝大部分图片可以正确地识别出来,识别率在90%以上。网
17、页响应速度可以保持在5秒左右,考虑到该人脸库图像并不多,且只有一个用户对它进行访问,响应速度是偏慢的。可以从以下几个方面改善系统的速度:(1)改进算法,在保证算法准确性的基础上,提高算法的速度。(2)优化系统的结构,优化代码,在保证系统的稳定性的前提下,提高系统的速度。(3)提高服务器端的硬件配置,考虑到该系统可以通过互联网连接到需要应用的场合,减少了其它相似人脸识别系统的部署和维护,这种方法也是划算的。2010年第3期范忠等:基于Web的人脸识别系统的研究与实现99图3 实例运行结果6 结束语本系统采用J2EE与Matlab相结合的方式,实现了基于Web的人脸识别系统。相比较于其它的人脸识别
18、系统,该系统应用范围更广,通过互联网,可实现一处部署,到处使用。且系统各模块严格独立,更加利于团队开发,系统也更具易扩展性和易维护性。系统还需改进算法及增加摄像头模块,使其更具实用性,这是下一步的目标。参考文献:1 蔡剑,景楠.Java Web应用开发:J2EE和Tomcat(第2版)M.北京:清华大学出版社,2005.2 边肇祺,张学工.模式识别(第2版)M.北京:清华大学出版社,2007.3 田捷,杨鑫.生物特征识别技术理论与应用M.北京:电子工业出版社,2005.4 姜容,董军宇.人脸识别系统及其在现实生活中的应用J.长春师范学院学报(自然科学版),2006,25(1):52254.5
19、艾英山,张德贤.人脸识别方法的综述与展望J.计算机与数学工程,2005,33(10):24227.6 周杰,卢春雨,张长水,等.人脸自动识别方法综述J.电子学,2000,28(4):1022106.7 孙冬梅,裘正定.生物特征识别技术综述 J.电子学报,2001,29(12A):174421748.8 卓静,朱小文.基于J2EE的实验室开放系统的研究与应用J.微处理机,2009,30(1):1892191.9 何文涛,罗建维.J2EE平台上对企业Bean远程调用的研究J.计算机应用与软件,2008,25(9):1932195.10刘志强,潘郁.基于MVC模式的Struts框架研究J.微处理机,
20、2008,29(4):68270.11高张,康小军.提高Tomcat服务器运行性能的研究J.计算机与数字工程,2008,36(10):2032205.12冯桂莲,陈宇联.基于JSP的工资管理系统的设计与探析J.计算机应用与软件,2009,26(3):2682271.13齐怀峰,接标,冯乔生.基于特征脸的人脸检测与识别J.云南大学学报(自然科学版),2005,25(6):22223.14陆永中,肖来元.实用特征脸识别系统的实现J.计算机工程与科学,2005,27(6):38239,42.(上接第95页)3 张勋友.基于SOA的电力系统信息集成平台的研究与实现J.煤矿机电,2008(2):2622
21、9.4 孙德建,陶旭,李鹏.基于SOA的军事信息系统应用集成研究J.情报杂志,2008(1):57260.5 郭忠文,尚传进,管恩花.面向服务构架的海洋数据集成系统的设计与实现 J.计算机应用研究,2006(2):1512153.6 宋亚萍,许红,王瑞军.基于SOA的现代铁路货运物流信息平台研究J.物流技术,2007(3):1072110.7 杨彦辉.基于SOA的图书馆信息综合服务系统J.图书馆学刊,2007(2):1342135.8 简斌,左荣国,闫光荣,等.基于SOA的中小制造企业应用集成系统研究J.计算机工程,2007(5):2432245.9 赵恒,王振宇.SOA在海战场综合电子信息系统中应用的构想J.舰船科学技术,2006(6):17221.10 李春子,胡维治.基于SOA架构的高校应用集成平台的设计与研究J.中国教育信息化,2007(17):26229.11 向东,李冬梅,严代彪.基于SOA模式的综合业务管理系统架构设计J.空军雷达学院学报,2007(3):1902193.12 杨宏桥,吴飞,刘玉树,等.基于SOA的医院信息系统集成研究J.医疗卫生装备,2008(1):38240.13 尉飞新.基于SOA的上海市水务平台设计及应用J.上海水务,2007(2):38241.14 侯贵法,罗颖.基于SOA的数字气田应用集成J.安阳工学院学报,2007(4):54257.
限制150内