毕业设计开题报告
题目: 基于人脸识别与位置信息的企业考勤系统设计与实现
一、课题任务与目的
1.1课题任务
本次课题是基于人脸识别与位置信息的企业员工考勤系统,了解人脸识别算法原理,并将其应用到考勤系统上。采用人脸识别进行考勤,也节约了员工排队打卡时间[1]。本课题需要最终完成一个基于安卓平台的企业员工考勤APP,功能上实现人脸注册、人脸属性检测、人脸识别、GPS定位等功能,本次课题对提升考勤的准确性和效率有着一定的实际意义。
1.2 课题目的
过去,许多企业使用刷卡或指纹来防止外部人员进入企业,它们也可以用于检查内部员工的出勤情况。现在,许多企业已经开始安装人脸识别系统,但是人脸打卡机可能会让员工排队打卡,耽误上班时间,此款APP可以让企业员工可以随时随地进行考勤,在科技信息化条件下,管理、控制、服务一体化集成的要求,人脸识别考勤系统是各企事业单位的一个安全、舒适、便捷的考勤系统优秀选择。
二、调研资料情况
2.1人脸识别调研分析
人脸识别相对于其他的较为先进的生物识别方式如虹膜识别、指纹识别等具有方便、准确率高、实现简单的优势。用户使用摄像头捕获用户静态人脸的特征信息或者通过动态视频流来捕捉目标用户人脸信息,将捕获的人脸通过特征分析得出人脸信息与系统中数据库人脸信息比对,得出对比信息后从而进行下一步操作处理[2]。依照当前科学技术的研究超势,人脸识别系统可能广泛运用于生产制造生活中,商业服务要求也会更高。迫切需要简单化人脸识别系统的生产流程,完成更迅速、更可靠的流程。
人脸识别发展的第一个阶段是基于人脸几何结构特征的方法,这个阶段是人脸识别的初级阶段,基本没有获得实际应用;第二阶段是人脸识别的研究高潮期,在这个时期吃西安了FERETA人脸识别算法测试。在这时Turk与Pentland提出的特征脸的方法成为了当时最负盛名的人脸识别方法。这一时期另一重要成果是贝尔胡米尔等提出的方法,先是采用特征脸方法对图像进行降维,再使用线性判别分析。人脸识别出现的另一重要方法是弹性图匹配技术,该方法的优点是既保留了面部的全局结构特征,也对人脸的关键局部特征进行了建模。近来还出现了一些对该方法的扩展;第三阶段就是从1998年至今,先是出现了基于光照不变的人脸识别,是沙苏哈等于2001年提出的基于商图像的人脸图像识别与绘制技术。后来的巴斯里和雅各布通过实验用凸优化方法来强制光照函数非负成为了可能,为解决光照问题提供了思路[3]。
目前人脸识别的算法主要有三种:第一种是基于PCA的Eigenface方法,它的基本思想是通过K-L变换对图像进行投影降维,找到图像的主要成分来对人脸进行描述及比对;第二种是基于 LDA的 FisherFace 方法,它的主要思想是将高维的样本投影到最佳判别向量空间,从而能够有效的提取分类信息、压缩。特征空间的维数,在新的子空间形成投影后,类间距离达到了最大和类内距离达到了最小,从而达到最佳的可分离性;第三种是基于局部特征提取的 LBP方法,它的主要思想是对图像中的像素点和该点周围像素点进行对比,然后根据对比结果进行求和[4]。
尽管已经研究了许多人脸识别方法,但系统精度和处理时间仍然是关键问题。此外,据统计,大多数现有作品都没有考虑输入图像中噪声的影响。噪声可能主要出现在照明条件无法控制的非合作应用中[5]。
本次课题采用了两种面部识别技术:主成分分析(PCA)和线性判别分析(LDA)面部识别算法。该系统也用于Raspberry Pi 。与单一特征提取方法不同,PCA与LDA相结合会产生良好的结果,并具有更高的精度比[6]。应用在本系统上,可以提高打卡效率,让用户有很好的使用体验。
2.2企业员工考勤方式调研分析
传统的打卡方式为纸质考勤表,这种打卡方式计算机刚发展起来时出现的打卡方式,现如今已被社会所淘汰。目前应用较多的考勤方式有以下几种:(a)刷卡考勤。这种方式对员工来说是目前最便捷的打卡方式,快速且准确,维护成本低,一卡多用,降低成本,但是他对于企业管理方面来说却是一个很大的漏洞,因为他不需要本人亲自刷卡考勤,就有代打卡、忘带卡等各种情况,是的管理变得繁琐。(b)指纹打卡。这种打卡方式可以杜绝同事之间代打卡,也可以以防员工忘记带卡的情况,但是指纹打卡对于一些手指出现磨损、受伤等情况,会耽误打卡速度,其本身感应能力较弱,且在目前的防控形势下,指纹打卡机容易造成公司内部传染,增加了安全隐患。(c)人脸识别考勤机。解决了感应卡只认卡,不认人的缺点,同时也避免指纹打卡会出现的一些尴尬时刻,避免不必要的接触,更加友好。但是价格昂贵,若低价购买容易购买到劣质产品,且有时会识别不准确。(d)软件考勤。解决了以上几种打卡方式的弊端,安装快捷,部分软件甚至可做到一软件多用,操作简单,一键打卡,精准定位,解决烦恼[7]。
2.3定位服务调研
位置服务是物联网技术发展下的基础服务能力,无论是电力安全、交通管理、政企管理还是个人服务,在定位、地图、搜索、导航等方面都为企业带来广阔的可能,这个市场是巨大的,而通过对这些基础功能的深入应用,还能够为电力、化工、煤矿、医院、政府等等各个行业提供基于定位的安全管理服务,这一市场前景同样广阔[7]。定位技术是通过一定的技术手段获取目标当前的地理坐标位置信息。在生活中,室内人员定位、商场物品定位、地图导航等方面都离不开定位功能的实现,目前生活中应用最广泛的定位方式是GPS定位,当前的定位方式主要有卫星定位、基站定位、网络IP定位。其中GPS定位与基站定位、网络IP定位相比有着定位精度高、功能多、应用广、操作简便等特点[8]。
目前有阿里、百度、腾讯、高德等很多科技公司进行过定位服务的api开发。百度智能定位服务api目前支持三维场景可视化, 其定位可以使用GPS定位、WiFi定位,基站定位,精确度可达99.6%,进行了全球覆盖,可用性高,且是低功耗,内存占用15.6M,CPU占用率2.2%[9]。目前百度地图Android定位SDK境内服务对非商业目的使用的开发者不收取任何费用,开发者可自行下载放心使用。使用百度地图的位置服务可以很高效的进行位置分析,且开放文档中开发者可以自行学习应用到自己的系统中。
2.4调研分析总结
综合以上调查结果可知,如今计算机算法日新月异,对于人脸识别的算法,现在将近成熟,可以精确快速识别人脸。本课题针对人脸识别技术中的面部特征特征提取算法展开研究,分析探讨PCA算法以及LDA算法,实现基于PCA和LDA算法的人脸识别考勤管理APP。同时接入百度地图的位置服务api,在app端对于员工办公地点进行经纬度定位控制功能,不在范围内无法打卡,防止员工远程打卡。
系统架构使用的C/S架构,使得开发思路更加明确。它允许多用户通过GUI前端更新到共享数据库,在客户端和服务器之间通信一般采用远程调用(RPC)或标准查询语言(SQL)语句[10]。
综上所述,本课题构建一套完善而有效的员工考勤管理软件,以此来准确、快捷地获取员工考勤信息,满足现代企业人力资源管理方面的迫切需求。
2.5参考文献
[1] 白磊.基于人脸识别和 GPS 定位的智能考勤系统设计与实现[J]现代信息科技,2020(09),4(18).
[2] 陈永锋.“互联网+”时代高校学生社团管理现状与对策分析[J].名家名作,2019(08):86.
[3] 曹文谊. 人脸识别的一种神经网络方法研究[D].南昌航空大学,2014.
[4] 王硕 . 基于神经网络的人脸识别研究 [C]// 第三十四届中 国(天津)2020’IT、网络、信息技术、电子、仪器仪表创新学术 会议论文集 . 天津:天津市电子学会,2020:270-272.
[5] TAHA A,DARWISH A,HASSANIEN A E,et al. Arabian horse identification based on whale optimised multi-class support vector machine [J].International Journal of Computer Applications in Technology,2020,63(1-2):83-92.
[6] Lee Hai Wu. Design of Multi-Functional Access Control System[J]. IEEE ACCESS,2021,9.
[7] 李若玉 . 基于 Android 系统的便携式人脸考勤系统 [D]. 四川:电子科技大学,2019.
[8] 李青云.智能考勤系统的设计与实现方案研究[J].网络安全技术与应用,2016(12):75+77.
[9] 张瑞,于潇榕.基于Android智能终端移动考勤系统的设计与实现[J].信息技术,2015(04):185-187+191.DOI:10.13274/j.cnki.hdzj.2015.04.048.
[10] 张军,杨忠明,邹燕妮.基于分布式架构的院校综合考勤管理系统[J].电脑知识与技术,2020,16(25):107-110.DOI:10.14004/j.cnki.ckt.2020.2990.
三、初步设计方法与实施方案
3.1功能设计
考勤系统分为用户端和管理端。用户端分为注册人脸信息,人脸签到实现流程图如下图3-1所示;管理端功能有审核注册信息,添加或修改人员信息,分
配可以审批补签流程的人员权限,如可给直线经理分配权限,管理其下分支的员工的出勤。
图3-1 用户端功能流程图
本系统的平台架构主要分为三层,分别是表示层、功能层、数据层。这三层的系统架构图如图3-2所示。
图3-2 系统架构图
本次开发的人脸识别打卡系统,可分为3个模块。可分为:考勤管理、用户基本信息管理以及考勤统计管理等。各个模块的功能结构如图3-3所示。
考勤管理模块主要负责为用户提供员工上下班考勤管理的相关功能, 包括出勤管理、请假管理以及考勤异常管理。在考勤模块中设计到人脸识别及定位信息,在员工进行人脸打卡的时候,借助百度地图的位置服务api进行当前位置信息的获取,判断是否在允许打卡的范围内人脸识别采用的是PCA与LDA的人脸识别算法二者相结合的方式,提高了识别的效率,方便了员工;
基本信息管理模块主要负责提供员工及部门基本信息管理的相关功能,如员工个人信息的修改,人脸信息的变动,员工工作岗位的变动情况。显示所属部门及部门经理的基本信息;
考勤统计管理模块主要负责为用户提供员工考勤、请假等信息的统计及查询功能。员工可以查看当天出勤上下班的时间,如果迟到或者早退,需提亮显示。可以查看当月请假天数及请假原因,最后对于按月进行出勤统计。
图3-3 功能模块图
人事管理是智能考勤系统实现的重要形式[8],智能考勤系统在实现的过程中,应当从以下几个方面展开:
1)智能考勤系统在人事管理应用的过程中可以对企业中上下层之间的关系,进行全面的管理对上下级之间所管的范围进行全面的明确。避免发生混潜的现象
2)可以将当前所有员工的资料进行全面的记录和归档,这样在人员变动的过程中提供相对便利的条件
3)人事工作人员可以在考勤记录中直接的将员工的资料传入计算机中,避免发生员工信息丢失的现象。
4)在人事管理的过程中可以进行批量的修改,这样员工在在职和离职管理操作的时候,都提供了相对便利的条件。
以下是主要功能点:
1)人员信息注册:进入【注册】页面,填写用户信息;信息填写以后,进入人脸拍照界面进行人脸信息采集,完成以后进入【登录】页面;
2)直线经理登录:需要在后台管理平台赋予权限,区分管理人员及普通员工。直线经理通过工号及密码进行登录。登陆以后除可以打卡以外,还可以看到其下管理人员的出勤情况,方便及时沟通;进行请假审批及考勤异常情况处理。
3)普通员工登录:普通员工通过工号及密码进行登录,进入【打卡】页面。
4)员工人脸打卡:选择【去打卡】进入人脸识别界面,进行打卡。此时需要判断用户的打卡定位是否在允许的打卡范围内。打卡完成后记录打卡时间。若超时,则弹出异常考勤,并同步信息到直线经理那里。
5)员工出勤情况统计:按月汇总当月的出勤情况,并查看考勤进行考勤异常申请进行审批。
6)个人中心:包括【查看出勤记录】、【修改个人信息】、【请假】、【异常记录】。
7)查看出勤记录:目前我们办公打卡并不会看到自己的打卡时间,需要自己去注意,以防出现有人卡点早退情况。这个页面中可以显示具体的上班打卡时间,方便员工把控时间。
8)修改个人信息:如自己的信息需要变更的,可以在此修改;如需要重新录入人脸,需要后台管理人员进行审核。
9)请假:请假时长间以半个小时为一个间隔,如9:00-9:30或者9:00-12:00。需要出示请假理由,提交申请,等待直线经理审批,审批通过通过app内消息提醒。
10)消息:用来通知员工的考勤异常提醒,审批结果通知。
11)异常记录:在此页面可以查看自己当月异常的考勤,并可以批量进行异常申请。
12)注册信息审核:员工在APP端进行信息注册以后提交至后台管理人员,后台管理人员进行审批及权限赋予。
13)修改员工信息:如若员工需要变更信息,可联系后台管理人员,让管理人员进行信息维护。
14)修改员工出勤情况:如果遇到特殊情况,员工未提交考勤异常,导致数据清理后无法提交异常,后台管理人员可以进行员工的出勤情况的修改。
在进行人脸识别验证时,出示人脸框,并提示用户在此框内进行人脸识别。人脸检测需要顾及光照对人脸识别准确度的影响,尽量做到在光线充足和昏暗情况下误差最小,如果人脸识别失败界面提示用户,引导进行打卡。如果无法进行打卡,可以等上班以后进行异常申请,填写理由,通知直线经理审批。
验证员工的地理位置与公司的地理位置的差值是否在允许的范围之内时,首先将使用本系统的公司地理位置查询出来,然后计算员工打卡时系统获取的员工 GPS 位置信息与公司地理位置之间的距离。由于我们保存的是经度和纬度,所以在计算的时采用计算球体上两点之间曲线距离的方法,然后将求出的距离与系统中设置的允许的范围的差值进行对比,如果在误差范围内,则认为员工打卡成功,反之则无法开启打卡。最后将处理结果返回至前端,同时将此次的打卡记录添加到员工的考勤记录中。
用户登录系统后系统首次会自动定位显示信息:如果没有得到位置信息,用户可以通过【获得当前位置】按钮再次发出定位请求。除了位置信息外,该系统还使用Telephony Manager类,调用get lmsi Number方法,获得用户手机的唯一识别码,实现人机对应。
3.2开发工具简介
本次使用的开发工具为IntelliJ IDEA,是java编程语言的集成开发环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。
IDEA所提倡的是智能编码,是减少程序员的工作,IDEA的特色功能主要有以下几点:
(a)历史记录功能。不用通过版本管理服务器,单纯的IDEA就可以查看任何工程中文件的历史记录,在版本恢复时你可以很容易的将其恢复。
(b)编码辅助。Java规范中提倡的toString()、hashCode()、equals()以及所有的get/set方法,你可以不用进行任何的输入就可以实现代码的自动生成,从而把你从无聊的基本方法编码中解放出来。
(c)XML的完美支持。xml全提示支持:所有流行框架的xml文件都支持全提示
(d)不使用代码的检查。自动检查代码中不使用的代码,并给出提示,从而使代码更高效。
(e)版本控制完美支持。集成了市面上常见的所有版本控制工具插件,包括git、svn、github,让开发人员在编程的工程中直接在intellij idea里就能完成代码的提交、检出、解决冲突、查看版本控制服务器内容等等。
(f)可以完成本地部署,部署在服务器上。方便程序员自测。
3.3 开发语言简介
Java是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。可运行于多个平台,如Windows,Mac OS,及其他多种UNIX版本的系统。而且Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。目前Java的应用市场十分广泛,它的应用领域几乎涵盖了目前市面上所有的软硬件。
所以此次选择Java语言进行开发设计。
3.4 C/S架构介绍
C/S架构全称为客户端/服务器体系结构,它是一种网络体系结构,其中客户端是用户运行应用程序的PC端或者工作站,客户端要依靠服务器来获取资源。C/S架构是通过提供查询响应而不是总文件传输来减少了网络流量。
C/S架构的特性很显著,主要包含以下几种:
(a)客户端进程包含特定于解决方案的逻辑,并提供用户与应用程序系统其余部分之间的接口。服务器进程充当管理共享资源(如数据库,打印机,调制解调器或高性能处理器)的软件引擎。
(b)前端任务和后端任务对计算资源有着根本不同的要求,例如处理器速度,内存,磁盘速度和容量以及输入/ 输出设备。
(c)客户端和服务器的硬件平台和操作系统通常不相同。客户端和服务器进程通过一组明确定义的标准应用程序接口(API)和RPC进行通信。
(d)C/S架构的一个重要特征是可扩展性,它们可以水平或垂直缩放。水平扩展意味着添加或删除客户端,工作站只会对性能产生轻微影响。垂直扩展意味着迁移到更大更快的服务器计算机或多服务器中。
本次设计采用C/S架构中的三层架构,使用中间件提高系统的灵活性及性能。三层架构包括客户层(表示层),业务层(应用层),和数据层(数据库层)。客户端系统管理表示层,应用程序服务器负责应用程序层,服务器系统负责监视数据库层。
3.5 Postman调试工具介绍
Postman是一种针对接口测试的工具。用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,这款调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。
3.6总体方案
开发平台:安卓,Windows
开发工具:IntelliJ IDEA 2021.3.2
数据库开发环境:MySQL
开发语言:Java,SQL
调试工具:postman
3.7设计思路
(1)对该平台进行需求分析调查,整理所有的用户需求,初步进行平台原型设计。
(2)进行逻辑结构设计,物理结构设计,搭建数据库。
(3)对平台界面进行设计,设计一个交互性良好的界面。
(4)实现平台具体功能,并链接客户端与服务器。
(5)对平台进行测试,找出出现的问题并解决问题。
(6)平台试运行,邀请部分用户体验平台。
3.8 可行性分析
3.8.1 技术可行性
该系统对硬件要求不高,基本硬性条件皆可以满足和使用。其采用idea编译环境进行开发,其开发平台不仅具有强大的包容性,能容纳多种编程语言,还具有灵活性,可在多种系统上都免费使用;采用容易上手的Java语言进行编写和使用目前较为流行的MySQL进行数据库编写,因而具有技术可行性。
3.8.2 经济可行性
该系统在开发过程中使用到的人脸识别算法是通过开源项目去学习研究的,并不需要去购买第三方的体验接口,且我们所需要的位置服务百度地图有开源的位置服务API,也无需花费任何经济。在其具体开发时运用的都是免费的工具和软件来进行开发,也为在开发前期不需要消耗太多的金钱来租用服务器和购买软件,大大的减低了开发时的经济费用。因此具有经济上的可行性。
3.8.3 操作可行性
使用者是十分容易掌握和熟练的使用此APP,其采用的是SpringBoot框架与Vue框架相互结合的模式。因为该管理平台属于web应用程序,只需在开发工具上安装好服务器和数据库即可。都安装成功后,在通过导入数据库,下载app就可成功运行和访问了。该系统实施成功后可以辅助办公人员打卡记录上下班时间,还方便了所以不同角色的使用者,因此具有操作可行性。
3.8.4对社会环境和可持续发展的影响
企业考勤管理是人事管理中最基本的一项管理,是每一位职场人在任何一家企业都最先接触到的制度。考勤是组织纪律管理的基础工作,企业通过考勤可随时了解员工上下班、请假加班等人力资源情况,方便企业管理人员随时根据工作需要调配劳动力,实现科学管理。
本次课题开发的系统是人性化的考勤管理系统,解决传统考勤模式的管理弊端,如代打卡、忘带卡等人为因素造成的考勤异常。企业员工可以享受移动打卡带来的便利,申请审批按需配置,按天按月随时随地统计出勤情况。手机考勤解决外勤监管难题,开创企业企业考勤管理的新模式。
如今人脸识别技术已经非常成熟,应用及设备的价格和费用已经从刚开始新兴时期的高居不下到如今的价格亲民,很少的费用就可以让企业走进智能人脸识别的考勤管理之路,灵活应用于各类企业考勤管理场景,满足企业身份核验、人脸考勤等业务需求,为企业带来更高效、智能的办公和管理方式,同时为企业提供现代化的互联网和高科技的办公设备。
四、预期结果
4.1预期结果
企业员工在手机平台进行下载,在登录界面,进行用户注册并进行人脸信息的采集入库。注册后的信息将提交至后台管理,将有专门人员进行信息审核,审核通过后方可登陆使用。登录用户分为了两类人,项目经理及普通员工。普通员工仅可查看自己本身的考勤记录,而直线经理可查看其下员工的考勤,并可以审批员工提交的异常考勤。在人脸识别检测算法的研究中,为人脸识别更加精准,需要大量的样本进行训练,保证打卡的速率与精准度。为了保证员工打卡的范围,在进行人脸识别的时候需要进行精确定位,需要员工在固定的允许的打卡范围内进行打卡考勤,否则无法进行识别。在后管平台,管理人员将人员注册信息进行审核,并可以修改用户的信息或出勤状态。
4.2结果形式
完成基于人脸识别的企业员工考勤系统的设计与实现,以及撰写相应论文一篇,该系统完成后可应用进企业进行人员管理。
五、进度计划
第 1 周:根据需求调研和收集相关资料,撰写开题报告。
第 2 周:撰写开题报告,准备答辩。
第 3 周:系统功能分析、设计和相关文档整理。
第 4 周:数据库搭建,完成相关数据库设计。
第 5 周:开发环境的搭建,框架编写。
第 6 周:系统(app及后管平台)界面框架编码实现。
第 7 周:实现用户登录和个人中心模块代码编写。
第 8 周:准备中期检查报告及外文翻译。
第 9 周—第11周:主攻人脸识别算法接口的实现,进行人脸样本训练。
第 12 周:进行后台管理平台的后端代码设计。
第 13 周:平台测试信息的收集与整理以及方案设计。
第 14 周:平台测试和撰写论文。
第 15 周:程序测试及毕业设计论文修改资料整理。
第 16 周:毕业设计论文定稿修改,打印装订和准备毕业设计答辩材料。