基于人脸识别的考勤系统设计与实现_第1页
基于人脸识别的考勤系统设计与实现_第2页
基于人脸识别的考勤系统设计与实现_第3页
基于人脸识别的考勤系统设计与实现_第4页
基于人脸识别的考勤系统设计与实现_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE1·PAGE2··1·基于人脸识别的考勤系统的设计与实现摘要伴随移动网络技术的快速进步,高校必须与信息科技的发展同步,解决传统的考勤管理在功能上和使用上的瓶颈问题,因此,本文提出建立基于人脸识别的考勤系统,旨在提升高校学生管理效率,避免出现代打卡等考勤现象,促使行政人员具有更高的办事效率,高校产生更少的管理费用。人脸识别技术是近年来人工智能领域的主流研究方向之一,人脸的唯一性、识别过程的友好性、准率的不断提升等等条件都赋予了人脸识别技术强大的生命力。本项目系统基于Android平台,采用了JAVA语言、SQLite、人脸识别技术等。根据高校考勤管理的实际流程及用户操作要求,将系统功能划分为人脸录入、人脸检测、人脸比对以及考勤情况等。系统设计基于MVP架构,按照分层设计的思想,搭建系统软件架构;实现部分对系统各功能模块的实现进行详细介绍。本文所设计的基于人脸识别的考勤系统将人脸识别技术和计算机技术相结合,不仅能够解决代替打卡的问题,保证考勤数据的真实有效性,还能够节约制卡成本,减少资源浪费。关键词:人脸识别,Android,考勤管理DesignandimplementationofattendancesystembasedonfacerecognitionAbstractWiththerapidprogressofmobilenetworktechnology,collegesanduniversitiesmustkeeppacewiththedevelopmentofinformationtechnologytosolvethebottleneckproblemsoftraditionalattendancemanagementinfunctionanduse.Therefore,thispaperproposestoestablishanattendancesystembasedonfacerecognition,whichaimstoimprovethemanagementefficiencyofcollegestudents,avoidtheattendancephenomenasuchasmodernclockin,andpromotetheadministrativestafftohavehigherworkefficiencyTheschoolhaslessoverhead.Facerecognitiontechnologyisoneofthemainresearchdirectionsinthefieldofartificialintelligenceinrecentyears.Theuniquenessoftheface,thefriendlinessoftherecognitionprocess,thecontinuousimprovementoftheaccuracyandotherconditionsallgivethefacerecognitiontechnologystrongvitality.ThesystemofthisprojectisbasedonAndroidplatform,usingjavalanguage,SQLite,facerecognitiontechnology,etc.Accordingtotheactualprocessofattendancemanagementanduseroperationrequirements,thesystemfunctionsaredividedintofaceinput,facedetection,facecomparisonandattendance.ThesystemdesignisbasedonMVParchitecture,accordingtotheideaofhierarchicaldesign,buildthesystemsoftwarearchitecture;theimplementationpartofthesystemfunctionmodulesareintroducedindetail.Theattendancesystembasedonfacerecognition,whichcombinesfacerecognitiontechnologyandcomputertechnology,cannotonlysolvetheproblemofreplacingpunch,ensuretheauthenticityandeffectivenessofattendancedata,butalsosavethecostofbusinesscardprintingandreducethewasteofresources.KeyWords:Facerecognition,Android,attendancemanagement目录摘要 IAbstract II引言 11绪论 11.1研究背景与意义 11.2国内外研究现状 21.2.1国外研究现状 21.2.2国内研究现状 21.3主要研究内容 32关键技术介绍 42.1JAVA编程技术 42.2Android开发平台 42.3AndroidStudio 53基于人脸识别的考勤系统的分析 63.1总体需求分析 63.2可行性分析 63.3系统功能需求分析 73.3.1人脸录入模块需求分析 73.3.2人脸检测模块需求分析 73.3.3人脸对比模块需求分析 73.3.4考勤情况模块需求分析 83.4系统性能需求分析 84基于人脸识别的考勤系统的设计 104.1系统架构设计 104.1.1系统软件架构设计 104.1.2系统物理架构设计 104.2系统功能设计 114.2.1人脸录入模块设计 114.2.2人脸检测模块设计 114.2.3人脸对比模块设计 124.2.3考勤情况模块设计 124.3数据库设计 124.3.1概念模型设计 124.3.2数据库表设计 135基于人脸识别的考勤系统的实现 155.1系统实现环境 155.2系统功能实现 155.2.1人脸录入模块实现 155.2.2人脸检测模块实现 165.2.3人脸对比模块实现 175.2.4考勤情况模块实现 195.3系统测试 205.3.1测试说明 205.3.2测试目的 215.3.3功能测试 215.3.4性能测试 21结论 23参考文献 24致谢 26引言随着国家教育水平的发展,人们可以获得更多的受教育的机会,但学生的管理成为了当今高校所需要面临的重要问题,学生管理中的课堂出勤,是评价一个学生的重要系数之一,更是从事教学管理人员、学生工作管理人员所面临的重要问题之一。传统的课堂考勤方式采用点名册进行考勤,只是教师可以把控课堂出勤的状况,无法由高校层面来管控学生,没有及时的数据反馈,造成了高校学生工作的滞后性。与此同时,单位成本更低的智能设备出现使得大多数人都可以感受科技的魅力。人脸识别、电子围栏等技术使得利用计算机进行辅助的课堂考勤成为了可能。研究出一套适用于高校运行实际的考勤系统,及时的将学生的出勤情况反馈给各职能部门,可以创造日渐晴朗的学习氛围,提升学校校风。1绪论1.1研究背景与意义当前,很多管理系统大部分都使用证件、磁卡和密码等传统技术进行人员管理、安全保护以及身份识别,是难以规避遗忘、遗失以及伪造等状况的。借助电脑同生物统计学,以及声光学等信息科技的高度融合,通过人体本身的行为以及生理特点展开身份认定的生物识别方式,相较于以往的身份识别方式而言,具有更高的保密性以及便利性,可以避免上述的身份鉴别技术缺陷。人脸识别技术指的是借助同人脸特征信息进行匹配,如此展开身份识别的一类电脑技术,该技术属于如今电脑科技分析领域的重点[1]。它借助生物体自身所具有的生物特征,对不一样的生物体展开区别。它是以人脸特征信息为基础的一类识别技术。先对动态视频或者静态图像展开判定,即有无人脸,要是有则对人脸图像进行截取储存,接着由人脸图像当中获得特征信息,同时借助同已经获取的人脸特征信息展开匹配,如此对人脸当中的身份信息予以确认。从广义层面来看它包括同人脸识别系统关联的一切技术,系统当中的功能模块同系统的有关程序相对,例如图像采集、图像预处理、人脸检测定位、人脸特征提取、模型训练及识别对比等,如图1.1所示:图1.1人脸识别流程如今我国运用人脸识别最多的客户,则是金融单位以及政府部门,因为此类组织对安全保障存在相当严格的要求,恰恰是由于该技术在此类组织的运用也推动了人脸识别技术的发展,使系统更加智能化、具有更高的安全性、更加方便操作,因此从市场发展前景来看,人脸识别技术的发展空间是巨大的。伴随科技的飞快进步,在管理体系当中考勤成为极为关键的部分,这也对考勤提出了更高的要求。尤其是课堂考勤,传统的人工点名费时还容易存在代报到现象,随着计算机技术的发展,出现了许多考勤软件,大多数手机考勤软件提高了考勤效率,但是增加了部署成本高的问题,以及定位等种种问题难以得到推广,大多数教师还是借助人工点名的模式,如此会浪费不少课堂时间。在实际生活当中人脸识别技术可以被应用到不同的场合进行人脸图像信息识别和处理。鉴于移动终端普及度较高,人们生活中的各种应用都有了移动应用版本,至于开源安卓平台拥有极佳的运用前景,所以本文以安卓平台作为基础,将人脸识别技术和考勤管理结合在一起,旨在提高考勤管理的效率,保证身份验证的准确性。1.2国内外研究现状1.2.1国外研究现状人脸识别考勤系统以智能化人脸识别技术为基础,但是有别于其他的智能生物识别技术,它是利用计算机视觉技术自动进行分析图像信息。人脸识别系统在2008年北京奥运会期间得到广泛使用[2]。而近几年,也出现汉王人脸通、慧源智能人脸识别考勤监控系统等人脸识别系统应用。这些系统简单使用,安全性好,识别快,完全无需触摸,受环境光线影响小。其中的核心技术,人脸识别技术一直是国内外计算机视觉研究中的热门方向。全球诸多知名期刊均存在图像识别相关的专刊。CVPR等图像相关的会议同样将人脸识别分析充当主要探索对象[3]。如今欧美等诸多国家及地区在人脸识别方面获得不小的突破。比如美国的大学TeaxsatDallas重点探索人类感知[4];Glasgow等诸多高校成立了专门的探索小组[5],重点探索人脸识别以及感知当中大脑所产生的效用[6];Aberdeen是英国知名的高校,成立了相应的小组由电脑视觉原理层面入手,重点探索人脸展现方式,在频域当中对人脸展开研究;Groningen是荷兰知名的高校,其成立的小组重点探索人类视觉体系当中的神经系统[7],同时基于此开发出并行模式识别方式。最近,哈佛大学提出一种基于社交语境下的大规模人脸识别方法[8],该方法主要是分析人们的社交网络结构结合网络上人们共享照片来进行分类识别。1.2.2国内研究现状我国同人脸识别相关的科研机构有中科院,川大以及港大等诸多院校。重点探索以连接模式与代数特征,以及几何特征为基础的人脸自动识别方式。李志峰是港大的知名教授,他指出借助非参数判别分析法和多分类器整合的方式来解决传统线性判别方式容易受分离矩阵参数限制影响的问题。经试验证明,非参数判别分析法加入小波特征进行人脸识别比传统上基于子空间的方法有显著提高[8]。我国首个开展图像识别技术探索的实验室,就是由银晨网讯同中科院联合组建的。它重点探索的是机器学习,电脑视觉以及模式判定等,特别是高度重视人机交互以及人脸识别等新型科技,同时在诸多全球知名期刊当中发布数篇极具影响力的论文。杨光正是中科大的知名教授,他提及以镶嵌图为基础的人脸自动识别方式,借助以知识三级金字塔为基础的特殊结构,对人脸展开精准识别,前两极是基于分辨率不一样的镶嵌图构建的,后一级则借助优化的边缘检测法,对嘴部以及眼部展开检查[9]。南京理工大学杨静宇教授把奇异值分解的方式,有效地运用到人脸识别当中[10],且对Fisher线性鉴定研究的相关问题展开探索,特征值对扰动所产生的敏感性,以及鉴定矢量之间也许并无正相关性。指明均衡分布矩阵的定义,同时创建新型线性鉴定法则。周激流是川大的知名教授,构建具备反馈体系的人脸正面识别系统,同时分析以核函数判定法,以及Gabor特征量为基础的人脸识别法。先借助该滤波器来处置输入的样本,从而获取该特征量;接着借助核函数判定法来达成人脸识别;该滤波器借助取向选择性,以及空间位置与频率的特征提取,有效地应对因为光照以及表情不一样而产生的改变;至于核函数判定法存在样本空间的最优鉴定特征提取的优势性[11]。借助实验仿真体现出该方式的效力。1.3主要研究内容本文选择客户使用量较多和智能手机搭载种类较多的Android操作系统,构建一个面向高校教育管理中的基于人脸识别的考勤系统的开发项目,探讨课堂考勤管理的新模式,帮助学生工作管理人员更好、更高效的进行学生管理。主要研究工作内容如下:(1)根据考勤系统的研究背景和意义进行分析,结合当年国内外人脸识别技术与考勤系统的研究现状,确立了系统的研究目标和研究方向。(2)通过对高等学校的学生管理系统工作进行调研与分析,针对考勤管理面临的主要问题,汇总形成基于人脸识别的考勤系统需求分析报告,包括可行性分析、非功能性需求分析以及功能模块分析。其中系统功能包括人脸录入、人脸检测、人脸比对以及考勤情况等。(3)重点对系统的设计与实现内容进行介绍,包括对系统架构、数据库以及功能模块进行设计与实现,并且通过系统运行界面,介绍系统完成后的效果,并介绍系统功能模块的具体编程实现思路。2关键技术介绍基于人脸识别的考勤系统主要分为APP端和后台管理端,其中后台管理端主要是管理人员使用,是作为管理替代方案以便不习惯或不方便使用手机APP的管理人员使用,相关功能在手机APP中基本上都包括。本文将主要关注手机APP端的开发,鉴于Android手机的普及率和免费特性,本项目APP开发所选语言为JAVA,开发工具为AndroidStudio,在此基础上实现各个模块的功能,下面将对主要技术进行介绍。2.1JAVA编程技术JAVA属于一种面向对象程序语言,最显著的特征有内存动态管控体系,多线程模式与面向对象,快捷以及平台不相关等,此类特征向程序员编程给予充足的支持,还是在移动互联以及大数据时期,该程序语言依然可以占据主导位置的重要原因[12]。本项目研究的基于人脸识别的考勤系统在明确采用Android平台后,需要对编程语言进行选择,而当前基于Android的应用开发主要是基于JAVA语言来进行开发,JAVA包含的很多包都是Android核心库的重要部分,例如API和JAVA类库,因此,基于Android平台的手机选课系统在选择JAVA语言对Android应用进行开发,具备非常好的技术结合经验,而且一些可借鉴的Android开发案例也是Android+JAVA语言的组合,能够让本研究的系统开发工作更加顺利的开展。2.2Android开发平台Android的系统采用了分层架构的思想,如图2.1所示。图2.1Android架构图由上往下分别是程序层、框架层、Android系统运行库和Linux内核。应用程序层应用层提供Android关键应用程序包,包括电话、浏览器和联系人管理等。同时,APP开发者可以利用相应的编程语言编写自己的Android应用程序[13]。Android系统最显著的优势在于它的开放性,本文研究的基于Android系统的选课管理系统,可以利用Android系统与其他技术之间的成熟的技术合作优势,加快开发进程和部署计划。2.3AndroidStudioAndroidStudio是一个谷歌公司推出的Android集成开发环境,为Android开发特殊定制,具有以下优点:(1)更加智能.Studio可以自动保存,不用再每次都Crtl+S进行保存了(2)更加完善的插件系统,AndroidStudio支持很多插件,如Git、MarkDown、Gradle等等,这些插件可以直接在AndroidStudio里面进行搜索下载[14]。(3)整合版本控制系统,在安装AndroidStudio的时候就默认安装上了如GitHub、Git、SVN等流行的版本控制系统,可以方便对项目进行管理。AndroidStudio就是专门为Android平台而设计的开发环境,并且和JAVA也有较好的适配性,可以保证本文研究的基于Android的选课管理系统设计与实现的过程中的技术之间的兼容性。3基于人脸识别的考勤系统的分析3.1总体需求分析本文主要采用人脸识别来实现对高校考勤制度的管理,所以在进行课堂考勤系统设计时,要着力解决课堂考勤时费时长的问题,并将课堂交给课堂教学。人脸识别的方案的推出可以较为准确的确定学生的身份,在一定程度上避免学生出现代签到的问题。之所以人脸识别方案有众多优势却无法大面积应用于课堂考勤。最重要的原因还是在于需要大量的新购设备,这就造成了高校的使用成本的增加。因此对于高校管理来说,为了更好的促进学风校风建设,需要搭建一套完整的考勤管理平台,并且还应该具有一定程度的防作弊的功能。因此,基于人脸识别的考勤系统需要方便教师进行课堂考勤,对疑似代签行为首先由系统进行预判,将教师的操作尽可能简单化、快捷化;系统需要方便辅导员进行学生管理,考勤系统应该能主动的引导辅导员查询到相关学生的旷课信息,流程需清晰明朗。综上,基于人脸识别的考勤系统的核心是要对现在较为落后的课堂考勤方式进行优化,实现考勤操作人工少干预,流程简单,服务迅速。可以将系统的主要功能包括人脸录入、人脸检测、人脸比对以及考勤情况四个主要功能模块。3.2可行性分析(1)经济可行性分析目前很多高校的网络普及度非常高,高校办公环境中本身有一定的网络基础,如果需要对基于人脸识别的考勤系统进行设计与实现,只需要使用在已有软硬件设备即可,并且系统在完成后,可以提高学校职能部门管理工作的效率,系统效益明显远远高于投入成本,因此,从经济角度来考虑,系统是具有可行性的。(2)技术可行性分析本系统基于Android平台,采用JAVA语言、人脸识别技术以及SQLite数据库技术,这些技术都是目前常见系统使用的主流技术,很多开发者都对这些技术非常熟练,因此,从技术角度上来考虑,系统是具有可行性的。(3)操作可行性分析随着互联网的发展与移动终端的不断进步,高校的基础网络设施都较为完善,这也为系统的建设提供了条件,本系统基于Android平台,在操作设计上,不管是操作习惯还是界面风格都符合大多数手机客户端用户的操作习惯,随着移动终端的不断普及,大多数学生都懂得如何使用移动终端,学校管理人员完全可以快速明白如何对系统进行操作。因此,从操作角度上来考虑,系统是具有可行性的。3.3系统功能需求分析3.3.1人脸录入模块需求分析人脸录入模块主要是对人脸信息进行录入,为了提高人脸录入的效率,本模块需要采用批量录入的操作模式,录入完成后,为了方便系统管理员对人脸大量的人脸信息进行管理,本模块还需要提供人脸信息删除功能,如需对整个人脸库的信息进行删除,需要进行清空人脸库的操作。因此,人脸录入功能主要包括批量录入、人脸信息删除、清空人脸库等。人脸录入模块的功能用例图如图3.1所示。图3.1人脸录入模块功能用例图3.3.2人脸检测模块需求分析人脸检测模块是人脸识别必不可少的前提环节,人脸检测环节直接影响着人脸对比识别环节,该环节检测准确,后期人脸分类识别环节的效率和精度也会得到提髙。而为了保证参与人脸检测的对象是真人而非图像或视频,在人脸检测过程中,需要通过摄像头对人脸进行动态捕捉,并且设置一些检测要求让系统用户进行执行,例如点头、眨眼等,系统用户需要配合检测提示进行操作。因此,人脸检测模块主要包括开启人脸检测、检测操作等。人脸检测模块的功能用例图如图3.2所示。图3.2人脸检测模块功能用例图3.3.3人脸对比模块需求分析系统用户在人脸检测模块完成人脸检测后,本模块则主要对人脸检测过程中的人脸信息与人脸库中的人脸模型进行比对,对比成功后,则表示考勤成功,如果对比识别,系统需要返回考勤失败的提示,系统用户可以在有效时间内选择重新检测操作。系统用户可以在本模块查看对比结果,系统会自动对学生考勤信息存储到数据库。因此,人脸对比模块主要包括考勤结果查看、重新检测。人脸对比模块的功能用例图如图3.3所示。图3.3人脸检测模块功能用例图3.3.4考勤情况模块需求分析考勤情况模块主要方便学校的管理人员对所以学生的考勤情况进行查看,系统管理员需要在本模块对考勤信息进行查看,考勤信息包括考勤用户学号、考勤人、考勤时间、考勤情况,其中考勤情况包括正常,旷课,早退,迟到等几种类型。系统管理员需要通过输入学号姓名、选择时间等操作来对考勤情况进行统计查询,系统需要将考勤情况通过可视化方式展示出来。因此,系统管理员用户可以在本模块进行考勤信息查询、考勤信息查看。功能用例图如图3.4所示:图3.4考勤情况模块功能用例图3.4系统性能需求分析(1)响应时间:对于任何系统而言,页面的响应时间是非常重要的性能参数,当大量的用户同时访问系统时,能否支持大量用户对于系统而言是非常值得考验的参数,如果系统性能不佳,一旦大量用户同时访问,将造成系统反应迟缓,甚至无法访问,服务器奔溃等问题。本系统在设计过程中,将系统最大在线人数定位在500人,即能保证同时有500用户访问系统时,能正常的进行各个基础功能模块的操作,其平均响应时间为3S以内。(2)可用性要求:由于系统的使用者在信息化系统的使用掌握上不一,因此,系统需要提供良好的使用说明和简洁的系统界面,以便于用户能够更为快速而精准的掌握系统操作使用方法,确保用户对系统的使用满意度。(3)可扩展性:任何系统的开发都需要考虑扩展性,随着用户数量的增加和系统运行数据的持续增长,必须考虑系统具有良好的扩展性,这里包括了服务器的配置、数据库的扩充等方面,同时,还需要考虑系统的易维护性,力求在系统系统升级中,改动尽可能少的源程序就可以达到需求。设计尽量更改为通用的接口,并预留相应的扩展接口。

4基于人脸识别的考勤系统的设计4.1系统架构设计4.1.1系统软件架构设计基于人脸识别的考勤系统采用Android技术和MVP框架进行设计,系统的整体技术架构既利用到Android平台提供的Activity、Service等组件进行界面与服务开发,也利用内置的SQLite数据库、HttpClient网络服务进行各种业务支撑。此外为了保证系统的可扩展性以及代码低耦合特性,并希望界面设计与业务逻辑充分分离,系统采用MVP模式进行层次划分,抽取出比较关键的Presenter层进行业务逻辑处理。系统的软件架构如图4.1所示。图4.1系统整体架构图系统采用AndroidStudioIDE工具进行项目开发,并使用Gradle进行项目配置管理以及自动化构建。本文系统可以通过AndroidStudio的模板向导来进行应用设计以及组件设计。AndroidStudio提供的布局编辑器可以利用UI组件进行界面设计与预览。AndroidStudio提供的编译器以及执行器可以快速进行版本生成与发布。4.1.2系统物理架构设计基于实际情况,对系统内部的硬件设施进行探究分析与设计,以下为该系统所应具备的硬件设备:(1)安卓手机安卓手机,扮演着客户端的角色,校长用户是其使用对象,该设备在以移动、联通以及电信的基础上实现的,或者借助无线网进行该系统与服务器之间的实际连接。(2)服务器端服务器端在听从系统公告命令的同时进行服务器端各项硬件设备的实际运行,并在此过程中,借助HTTP协议实现与客户端安卓设备的实际连接。以下为该系统内部的硬件结构,如图4.2所示。图4.2系统物理架构图4.2系统功能设计4.2.1人脸录入模块设计本模块的主要功能是批量录入人脸信息,将已经拍摄好的人脸信息保存在固定目录(内部存储设备/arcfacedemo/register),并且以以学号命名,以.jpg的图片格式进行保存。系统可以自动读取目录下的人脸信息,而实际中拍摄人脸图像的过程中通常会由于拍摄距离,焦距等因素导致携带一些非人脸的特征,此时需要对所拍摄图像的进行人脸区域检测来提取人脸区域,因此,首先需要对这些人脸图片进行预处理操作,再对人脸图像的区域进行特征提取的操作,提取特征值并以图片名称作为关键词,保存人脸信息,以供后续比对使用。录入失败的图片,例如图片旋转,无人脸等等将会被移动到内部存储设备/arcfacedemo/failed目录下。系统管理员用户可以对已经录入好的人脸信息进行管理,包括选择对其中一项人脸信息进行删除操作,或者直接清空人脸库。4.2.2人脸检测模块设计人脸检测模块主要通过对摄像头中动态捕捉的图像中检测人脸,活体检测保证了正在考勤的是真人而非图像或视频,采用视频流模式对传入图像数据进行人脸检测,返回人脸位置信息和人脸在图像中的朝向信息,可用于后续的人脸分析、人脸比对操作。若检测到人脸,则在画布上绘制人脸外围矩形。4.2.3人脸对比模块设计人脸对比模块主要是将人脸检测过程中的人脸信息与人脸库中的人脸模型进行比对,判断结果(相似度)是否符合预先设定的阈值。将超过阈值的、相似度最高的结果的ID与上传图片的用户学号相校验。数据入库并返回结果。两个ID校验一致,则认为识别成功,即考勤成功,系统会在考勤记录中添加考勤成功信息,同时返回考勤成功提示到终端,否则返回考勤失败提示,系统用户可以在有效时间内选择重新检测操作。4.2.3考勤情况模块设计考勤情况模块设计中,系统在人脸对模块完成人脸对比后,人脸比对成功后在向api发送请求,通过api在数据库中插入考勤信息,包括考勤人,考勤时间,通过api请求返回考勤情况表中考勤情况(JSON格式),解析JSON后读取考勤数据,得到具体考勤情况(正常,旷课,早退,迟到),系统用户可以在本模块对考勤情况进行统计查询,查询结果通过图表方式显示(可选择年、周、月方式)。4.3数据库设计为了使系统具有查询插入等便于用户交互的操作,本系统考勤产生的考勤信息存储在数据库中,因此设计一个良好的数据库也是本系统的一个重点。数据库的设计归根结底是要达到两个目标,第一是要满足系统事务处理的要求,意即满足系统所需要达到的功能;第二是储存数据,业务系统每天产生的大量数据,虽然当时不会产生很大的作用,但是很多有规律的数据就隐藏其中,需要大量的数据才能发现。Android环境下基于人脸识别的考勤系统核心支撑是人脸识别的相关算法和技术,主要功能是实现人脸识别考勤,由于篇幅的问题,本文只介绍系统主要数据实体的实体属性图。对系统中主要实体及属性用E-R图进行描述的过程中,有些实体涉及的属性较多,本文就不一一列举,仅列举出主要的属性。4.3.1概念模型设计整体E-R图如图4.3所示。图4.3整体E-R图学生信息表用于存放学生信息,关系模式为(学生学号、姓名、班级、专业、院系)。其中学生学号为主键。课程信息表用于存放学生的课程信息,关系模式为(课程编号、课程时间、课程类型、课程名称、任课教师、上课人数、上课学生学号列表)。其中课程编号为主键。考勤信息表用于存放学生的考勤信息,关系模式为(学生学号、课程号、创建时间,初始状态,第二状态,最终状态)。其中学生学号为主键。管理员信息表用于存放系统管理员账号信息,关系模式为(管理员编号、姓名、账号、密码)。其中管理员编号为主键。供应商信息表用于存放食堂菜品信息,关系模式为(供应商编号、供应商名称、货物名称、联系电话、供应详情、供应计划)。其中货物编号为主键。4.3.2数据库表设计数据库表主要包括属性、主键、外键等要素,是对于数据最终存储形式的建模。数据库表是在数据库概念模型的基础上,按照数据库不同模型之间的转换规则对巧转换得到。根据数据库关系结构模型,能够对应创建SQL语句并在数据库软件平台构造数据库表。具体的数据表设计内容如下:学生信息数据表:主要包含的字段有学生学号、姓名、班级、专业等,其结构如表4-1所示。表4-1学生信息数据表列名数据类型是否可为空是否主键是否外键说明学生学号Int否是否自增姓名Nvarchar否否否班级Nvarchar否否否专业Nvarchar否否否院系Nvarchar否否否课程信息数据表:主要包含的字段有课程编号、课程时间、课程类型、课程名称、任课教师、上课人数、上课学生学号列表等,详细设计如表4-2所示。表4-2课程信息数据表列名数据类型是否可为空是否主键是否外键说明课程编号Int否是否自增课程名称Nvarchar否否否课程时间Datetime否否否课程类型Nvarchar否否否任课教师Nvarchar否否否上课人数Int否否否上课学生学号列表Nvarchar否否否考勤信息数据表:主要包含的字段有学生学号、课程号、创建时间,初始状态,第二状态,最终状态等,详见表4-3。表4-3考勤信息数据表列名数据类型是否可为空是否主键是否外键说明学生学号Int否是否自增课程编号Int否否否创建时间Datetime否否否初始状态Nvarchar否否否第二状态Nvarchar否否否最终状态Nvarchar否否否管理员信息数据表:主要包含的字段有管理员账号、姓名、账号、密码,详见表4-4。表4-4管理员信息数据表列名数据类型是否可为空是否主键是否外键说明管理员编号Int否是否自增姓名Nvarchar否否否账号Nvarchar否否否密码Nvarchar否否否PAGE1·PAGE22··16·5基于人脸识别的考勤系统的实现5.1系统实现环境系统的实现基于一定的开发环境,故在对系统进行开发或实现之前,先要部署系统的开发环境。本系统在开发过程中,所用到的开发环境罗列如下:1、软件环境(1)服务端服务器操作系统:WindowsServer2012编程语言:JAVA数据库:SQLite开发环境:AndroidStudio(2)移动客户端操作系统:Android8.02、硬件环境CPU:英特尔酷睿处理器i5-4790(四核,3.60GHz,Turbo4.0GHz,8MB)内存:8GB硬盘:1TB显卡:4GBNVIDIA®Quadro®K22005.2系统功能实现5.2.1人脸录入模块实现实现过程中,将内部存储设备/arcfacedemo/register目录下的所有文件解析成文件数组的形式,方便后续进行处理。获取文件数组的长度即图片数量后,在UI线程修改界面文字提示开始处理图片,并开始遍历循环,同时每次循环UI线程不断修改进度文字,产生实时显示处理进度的效果。将图片首先通过文件路径解析成Bitmap类型,判断图像是否被旋转,若有旋转角度,则反向旋转,保证图像正向然后判读bitmap对象是否为空,若为空则继续判断文件父目录是否存在,若不存在则创建父目录,最后将文件移动到父目录下的failed文件夹下并停止本次循环,进行下一文件的解析。将bitmap对象解析成Bar24像素格式,确保传给引擎的Bar24数据宽度为4的倍数,若解析后的对象为空,依旧进行判断父目录是否为空后将文件移动到父目录failed文件夹下。将bitmap对象以及图片的宽高名字作为参数调用register方法进行注册,该方法返回boolean作为判断成功标准,再次判断boolean对象success,若为false则判断空目录并移动文件,若为true则successCount加一。循环结束后关闭进度条提示框,更新文字统计成功数量以及失败数量。人脸录入界面包含标题框和人脸库操作按钮,其中标题框包含返回按钮返回上一activity。界面上固定显示注册人脸图片的存放位置,点击注册批量按钮后在下方以文本的形式显示结果。具体的实现界面如图5.1所示:图5.1人脸录入实现界面如图5.1所示,点击批量注册后会弹出进度条显示当前进度,使用的是progressDialog,不可退出,同时抢夺焦点,无法对其他区域的点击触发效果,直到进度条走完。点击清空人脸库会弹出提示框,确定删除操作。5.2.2人脸检测模块实现人脸检测模块是人脸识别技术的关键,首先判断参数是否为空,宽度是否为4倍数以及检验格式转换是否成功,确保需要的文件夹已存在,对图片进行特征提取,扩大人脸矩形区域,将图像中需要截取的Rect向外扩张一倍,若扩张一倍会溢出,则扩张到边界,若Rect已溢出,则收缩到边界,保证宽高是偶数,以JPEG的形式保存在指定的特征文件夹下,判断人脸旋转角度,若不为0度则旋转注册图,最后内存中的数据同步。人脸检测的目的是剔除那些不包含人脸的图像,以免这些噪声数据对整体的识别效果造成影响。本文用到的人脸检测方法是最常用的基于Haar特征的Adaboost算法,Adaboost算法的基本原理是对一组样本集设计多个弱分类器,每次迭代更新样本分布,对不同的样本分布学习这些弱分类器,之后对这些不同的弱分类器分配并学习权重,组成强分类器,通过强分类器进行分类,判断某区域是否是人脸区域。人脸检测模块的实现界面如图5.2所示:图5.2人脸录入实现界面5.2.3人脸对比模块实现本界面主要用于展示摄像头捕捉到的影响,并在其基础上添加人脸库,在左上角显示比对成功后的人脸库中对应图片,为了更好的展示效果,本界面以全屏的方式显示,不显示标题栏和其他组件。在比对之后弹出简易的消息提示框,说明比对成功结果。比对界面并不复杂,由帧布局作为父布局占据整个屏幕,这样可以让控件重叠,从而实现在左上角显示比对成功的人脸图片和学号,不会因为RecyclerView空间的存在导致整个布局错位混乱,实现界面如图5.3所示:图5.3人脸对比实现界面本模块实现的关键代码如图5.4所示:图5.4人脸特征提取线程此处是人脸特征提取线程,通过接口回调将提取出的人脸数据传回,对传入的特征数据以及已存的人脸数据进行判空,判断是否正在搜索人脸,保证搜索操作单线程进行。随后遍历已保存的人脸数据,检测到相似度超过0后,将检测到的该CompareResult对象返回,该对象中包含用户名以及相似度。对返回的CompareResult对象依旧判空,若为空则将结果添加到requestFeatureStatusMap和faceHelper,其中RequestFeatureStatus.FAILED表示未识别,UI实际变现为红色矩形框。"VISITOR"+requestId则代表已经提取过人脸数据但未比对成功的总数。判断相似度超过设定的0.7和判空后,添加比对成功的用户名称。5.2.4考勤情况模块实现本模块的实现,首先使用Volley的StringRequest向api请求,获取所需要的考勤信息,将api返回的json数据进行解析,PersonalStutasInfo是自定义的model类,可以将解析后的每个每个人的信息实例化成PersonalStutasInfo对象,并保存在list中,这样数据更清晰直观,也方便后续的调用。开始循环遍历,每次循环都判断考勤状态,并将它们区分获取对应的数量,依次添加到list中,list包含每个学生的四个状态,最后再将list添加到datalist中,将key添加到strXList,datalist是整个柱状图的考勤情况数据集,而strXList是x轴上每个考勤情况对应的学号。finallyStatus的数字分别代表着:旷课-0、迟到-1、早退-2、正常-3。系统用户在查看考勤统计结果时,可以对统计图形进行操作,例如对考勤统计柱状图进行拖动操作,方便显示多人的状态,柱状图中以四种颜色区分状态,并在考勤统计柱状图上方有颜色对应状态的标识,方便理解和分辨。考勤情况模块的实现界面如图5.5所示:图5.5考勤情况实现界面5.3系统测试5.3.1测试说明任何一个软件在开发过程中都会存在包括错误、误解以及冗余在内的系统漏洞,系统测试就是发现并指出软件漏洞的一种手段。系统测试是在软件需求分析阶段就制定好的,跟软件开发并行进行的,是软件工程的一个重要阶段。只有经过系统测试才能发现软件设计和编码过程中存在的错误,才能帮助修正软件的漏洞,才能为用户提供高质量、搞性能的软件产品。因此,在基于人脸识别的考勤系统正式使用之前,本文需要针对该系统的所有功能模块进行系统测试。测试主要是要在使用过程中发现的每个模块出现的问题,再对问题进行修正,由此来提高系统的性能。系统的测试工作主要分为两个部分,分别为功能测试和性能测试。5.3.2测试目的按照软件工程的思想,在所设计的人脸识别考勤系统正式使用之前,本文需要对该系统的所有功能模块进行系统测试。测试主要是由用户来进行的,他们针对自己使用过程中发现的每个模块的问题提出自己的看法,然后由开发者来对问题进行修正,以此来提高系统的性能。根据以往的经验,本次测试中希望发现以下几个问题:1、语法错误。语法错误是经常发生的错误,它由不正确的脚本语法导致,严重的语法错误可能会导致系统的不能运行。2、运行时错误。运行时错误是脚本执行不可执行的动作而导致的错误,发生运行时错误会导致脚本运行过程不断被中断。3、逻辑错误。逻辑错误是最难发现的错误,他往往是由开发者想法不成熟而引起的。严重的逻辑错误会导致系统的崩溃,是非常严重的。5.3.3功能测试功能测试主要目的是为了找出软件中出现的所有语法错误和逻辑错误,所有测试由开发者进行。1、通过登录模块,测试登录模块不同权限人员进入后权限分配是否正确。2、分别测试系统内部的各个模块,按照事先定义好的流程,看看每个模块的流程是否都能正常运行。3、测试各个系统模块涉及的数据库数据是否正确。4、通过设置不同的管理员权限,检测各个管理员权限是否都是开放的。5、利用不同的权限对系统进行操作,检测各个权限是否正确。6、通过各个模块的查询测试,检测数据库查询语法的正确性和数据库数据的正确性。7、通过不停的对系统进行操作,检测系统运行是否稳定。在第二阶段测试中,我们主要寻找功能缺陷并加以更正。在功能测试过程中,本文发现了语法和逻辑错误,及时根据测试反馈结果对错误进行了修正。5.3.4性能测试系统经过性能测试可以显示出该系统在系统运行稳定性,以及系统对于用户请求指令的反应速度的运行效果。在手机天线射频功能测试管理系统进行性能测试时,做了以下工作。(1)用户并发数访问测试。表5-1用户并发数测试表并发数业务处理效率CPU占用率10098%18%20092%20%30088%21%40084%23%50079%25%如表6-4所示,在系统用户并发数测试的过程中,分别对50人、100人、150人、200人、以及300人进行测试。在200名用户对系统进行操作时,此时的业务处理效率为84%,CPU占用率为43%,为了保证系统具有良好的稳定性,以及系统可以对系统用户所做出的操作有实时性的反应,因此,系统的最大用户并发数为500人。(2)系统响应时间测试。系统响应测试时间是系统为了响应用户的指令,而发出信息反馈的时间间隔,时间间隔越小,表示系统越高效,可以更快处理用户的信息数据。在对系统响应时间进行测试时,根据系统的性能需求,将在500名用户同时操作系统的状况对系统的各个功能模块的响应时间进行判定。表6-5为系统响应时间测试表。表5-2系统响应时间测试表系统功模块预期响应时间需求实际响应时间人脸录入模块≤3秒2.6秒人脸检测模块≤3秒2.4秒人脸对比模块≤3秒2.7秒考勤情况模块≤3秒2.3秒由表5-2可以看出,系统的各个功能模块的性能测试中,实际响应时间全部在预期的响应时间需求内,系统通过了性能测试。

结论现如今每年高校的入学人数越来越多,受教育人群覆盖越来越广,现在的大学课堂大多已经脱离了早期的小班教学,转而向几十人甚至上百人的课堂转变。如此时仍然采用传统点名册签到,大量的时间将会被浪费在清理旷课学生名单之上,将人脸识别运用于课堂考勤,是一种比较方便快捷的课堂考勤方式。通过对课题研究背景和意义进行分析和总结,结合国内外选课系统的研究现状和应用情况,提出系统的研究目标和主要研究内容,明确选择Android操作系统作为软件开发和运行载体,选择与之适配的JAVA语言作为底层逻辑处理语言、Apache作为Web应用服务器、SQLite作为本地数据库,管理考勤系统中的数据。在系统需求分析阶段,在明确系统的主要业务内容后,对这些业务内容进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论