1.课题研究的意义,国内外研究现状、水平和发展趋势

1.1  课题的背景和意义

随着社会的不断进步以及各方面对于快速有效的自动身份验证的迫切要求,生物特征识别技术在近几十年中得到了飞速的发展。作为人的一种内在属性,并且具有很强的自身稳定性及个体差异性,生物特征成为了自动身份验证的最理想依据。当前的生物特征识别技术主要包括有:指纹识别,视网膜识别,虹膜识别,步态识别,静脉识别,人脸识别等。与其他识别方法相比,人脸识别由于具有直接,友好,方便的特点,使用者无任何心理障碍,易于为用户所接受,从而得到了广泛的研究与应用。除此之外,我们还能够对人脸识别的结果作进一步的分析,得到有关人的性别,表情,年龄等诸多额外的丰富信息,扩展了人脸识别的应用前景。

1.2 国内外的发展现状和趋势

国内关于人脸自动识别的研究始于二十世纪80年代,主要的研究单位有清华大学,哈尔滨工业大学,中科院计算所,中科院自动化所,复旦大学,北京科技大学等,并都取得了一定的成果。国内的研究工作主要是集中在三大类方法的研究:基于几何特征的人脸正面自动识别方法、基于代数特征的人脸正面自动识别方法和基于连接机制的人脸正面自动识别方法。周激流实现了具有反馈机制的人脸正面识别系统,运用积分投影法提取面部特征的关键点并用于识别,获得了比较满意的效果。他同时也尝试了“稳定视点”特征提取方法,即为使识别系统中包含3D信息,他对人脸侧面剪影识别做了一定的研究,并实现了正,侧面互相参照的识别系统。彭辉、张长水等对“特征脸”的方法做了进一步的发展,提出采用类间散布矩阵作为产生矩阵,进一步降低了产生矩阵的维数,在保持识别率的情况下,大大降低了运算量。程永清,庄永明等对同类图像的平均灰度图进行SVD分解得到特征脸空间,每一幅图像在特征脸空间上的投影作为其代数特征,然后利用层次判别进行分类。张辉,周洪祥,何振亚采用对称主元分析神经网络,用去冗余和权值正交相结合的方法对人脸进行特征提取和识别。该方法所用特征数据量小,特征提取运算量也较小,比较好地实现了大量人脸样本的存储和人脸的快速识别。

国外对人脸识别技术的研究发展较早,提出了许多人脸识别的主流算法。如麻省理工学院Turk和Pentland等人提出的特征脸方法;鲁大学Kriegman等人提出的Fisher脸肪法;西根州大学Jain带领的小组在3-D人脸识别方法所做的研究;德国Rohr大学Malsburg和Wiskot等人提出的Gabor变换的动态连接机制与弹性束图匹配方法。


2.课题的基本内容,可能遇到的困难,提出解决问题的方法和措施

2.1 课题研究的目标

本设计旨在开发基于Python语言的人脸识别考勤系统。借助信息技术,以人脸识别为手段,数据库为请假管理、考勤数据的查询和输出提供服务,摒弃传统考勤中人工统计管理的落后方式,克服不规范的考勤行为,避免使用方以往考勤管理工作中出现的问题,为使用方考勤制度实施提供科学的依据。

2.2 课题研究的内容

一、 可行性研究

1.1  技术可行性

编程语言采用Python语言,MySQL数据库。在大学有学过Python语言,MySQL数据库,掌握一定的基础,并在此基础上还有很多专业论文可以在线学习,还有老师的指导,因此人脸识别算法是可以实现的。对于数据库的操作,基于Python连接MySQL数据库,可以对数据实时更改。所以综上所示开发这个系统的技术是可行的。

1.2  操作可行性

本系统是一个人脸识别考勤管理系统系统,具备人性化的用户界面,使用方便,易于管理及维护,操作简单易于被用户接受,用户只需熟练操作计算机,和对此系统使用做简单的了解即可方便使用。因此从使用操作方面看,此系统的开发是可行的。

1.3  经济可行性

软件开发的经济可信性是分析开发这个软件是否具有一定的社会价值,即开发这个软件所消耗的资源和此软件对社会的价值进行对比分析是否有一定的经济可信性。本次软件开发所需要的资源是在可上网的教室或者图书馆,并且有开发软件所需要的工具和平台,这些资源学校的图书馆和机房都提供了必要的资源,如学校多媒体机房中就有开发机且开发机已经装备了开发软件所需要的工具,所以这些资源已经完全能够满足本次毕业设计所需要的一切资源。而开发此软件对于学生来说,不仅是对其本科学习所掌握的知识的全面检查而且通过此次开发可以极大的提升学习软件开发的能力,所以综上所述,开发此软件是经济可行的。

二、 需求分析

根据分析,本系统主要有3个角色:管理员、用户、考勤系统。

(1)管理员:管理员信息的添加、删除、修改和查询,用户信息添加、删除、修改和查询。

(2)用户:用户的注册和登录,用户信息的查询,人脸的录入和识别。

(3)考勤系统:考勤日志,迟到记录统计。

通过对本系统的需求进行分析,系统的基本功能已经大体确定。

1、用户管理模块

(1)用户注册:用户可以注册账户,获得登录账号和密码

(2)用户信息管理:用户可以录入和修改人脸信息,也可以进行其他信息的更新

(3)用户信息查询:用户可以查询个人信息

(4)考勤信息:进行考勤,查询考勤的时间、结果和记录

2、管理员管理模块

(1)管理员注册:管理员可以注册账户,获得登录账号和密码

(2)管理员信息管理:管理员可以可以进行个人信息的维护

(3)管理员信息查询:管理员可以查询个人信息

(4)管理员对用户信息管理:添加和修改用户信息,并可以进行信息的维护,对员工的部分信息进行索引查询

(5)考勤管理:发布和更改考勤的时间,对考勤签到信息的查询和更改

3、考勤系统模块

(1)考勤信息处理:处理用户考勤的情况,用于给管理员和用户进行查询和管理

(2)考勤日志管理:存储用户的每日考勤状况

(3)人脸识别管理:存储用户的人脸信息,并进行考勤时的人脸识别的信息对比


三、 系统设计

1、 总体功能


该系统主要有使用成员:管理员、用户

该系统主要分为三个核心模块含,分别是用户管理,管理员管理,考勤系统管理。其中用户管理着个人的基本信息并进行考勤,管理员除了个人信息的管理,还对用户的信息有着更改的权限,考勤系统管理着用户的考勤数据。


四、 概要设计

概念设计阶段是将用户需求抽象为概念模型,其目标是产生整体数据库概念结构。它是整个数据库设计的关键。

概念结构是各种数据模型的共同基础,它比数据模型更独立于机器,更抽象,从而更加稳定。

描述概念模型的有力工具是E-R模型。所谓E-R模型就是实体-联系方法。

E-R图提供了表示实体、实体的属性和实体之间的联系的方法。

·实体型:用矩形表示,矩形框内写明实体名

·属性:用椭圆型表示,并与其相应实体连接起来

·联系:用椭圆表示,椭圆框内写明联系名,并与其有关实体连接起来,同时在边旁边标上联系的类型(1:1,1:n或m:n)。

本系统各个实体E-R图如下图所示:


图 3-2 管理员E-R图

 

图 3-3 考勤系统E-R图

 

图 3-4 总体E-R图


五、 逻辑设计

1、可能需要的主要数据表:

用户表:主要存储管理员相关信息

 

字段 属性 是否为空 主关键字 字段含义  

UserId int(20) not yes 用户编号

UserAccount char(50) not not 登录账号

UserPassword char(50) not not 登录密码

UserName char(20) not not 用户姓名

UserGender char(20) not not 用户性别

Address char(100) not not 家庭住址

UserTelephone int(20) not not 联系电话


表5-1用户表


管理员表: 记录订单的相关信息

字段 属性 是否为空 主关键字 字段含义  

AdminId int(20) not yes 管理员编号

AdminAccount char(50) not not 登录账号

AdminPassword char(50) not not 登录密码

AdminName char(20) not not 管理员姓名

AdminTelephone int(20) not not 联系电话


表5-2 管理员表


考勤状态表: 记录订单的状态及其相关信息,实现对订单状态的充分掌握

字段 属性 是否为空 主关键字 字段含义  

UserId int(20) not yes 用户编号

Username char(20) not not 用户姓名

AttendanceTime time not not 考勤签到时间

AttendanceJudgment char(20) not not 考勤时间判断

Remark char(100) not not 备注

Avatar blob yes not 上传头像


表5-3 考勤状态表


考勤日志表: 记录会员的相关身份信息

字段 属性 是否为空 主关键字 字段含义  

UserId int(20) not yes 用户编号

UserName char(20) not not 用户姓名

UserGender char(20) not not 用户性别

AttendanceTime time not not 考勤签到时间

UserTelephone int(20) not not 联系电话

AttendanceDate date not not 考勤日期

表5-4 考勤日志表


六、 可能遇到的困难及解决措施

可能遇到的困难

(1)用更好的算法完成人脸识别

(2)如何实现更精准的人脸识别

(3)在面部有部分遮挡的情况下进行人脸识别


提出解决问题的方法与措施

(1)请教老师以及同学

(2)到学校网上图书馆以及网络上查阅查阅相关书籍和论文

(3)研究使用已经上线的类似系统


七、 系统开发环境和工具的选择

在本系统中,运行环境和选择的相关工具如下:

此系统主要使用下列开发工具:

(1)PyCharm:用于Python前后端编程、调试和发布程序。

(2)Navicat:用于MySql数据库设计。

八、 设计方案的选择

为什么使用Python

Python 是一种代表极简主义的编程语言,阅读一段排版优美的 Python 代码,就像在阅读一个英文段落,非常贴近人类语言,所以人们常说,Python 是一种具有伪代码特点的编程语言。Python作为高级语言,Python 封装较深,屏蔽了很多底层细节,比如 Python 会自动管理内存(需要时自动分配,不需要时自动释放)。Python 的可扩展性体现在它的模块,Python 具有脚本语言中最丰富、强大的库或模块,这些库或模块覆盖了文件操作、图形界面编程、网络编程、数据库访问等绝大部分应用场景。

基于Python的人脸识别考勤管理系统的设计与实现-计算机毕业设计源码+LW文档_字段

基于Python的人脸识别考勤管理系统的设计与实现-计算机毕业设计源码+LW文档_字段_02

基于Python的人脸识别考勤管理系统的设计与实现-计算机毕业设计源码+LW文档_Python_03