基于指纹识别的考勤系统设计

发布时间:2018-10-06 23:06:22

基于指纹识别的考勤系统设计

计算机科学与技术

计算机科学与技术

计算机应用

指导教师姓名

指导教师职称 讲师

2014 4 10



基于指纹识别考勤系统设计

摘要:随着指纹识别技术日益成熟,在社会的各个领域该技术都得到了广泛应用。在现代企业管理中,考勤也成为了一种必不可少的过程。然而在一些传统的考勤过程中,由于某些原因会导致一些不良问题,但由于指纹技术具有终生不变性,唯一性,不可代替性使得指纹识别考勤逐渐代替一些传统的考勤方法,如打卡等。同时使用该技术也保证了考勤数据的真实性。

该系统针对指纹是计算机技术与指纹分析完美相结合下完成的。本系统采用目前比较流行Net应用体系架构以及稳定SQL Server 据库,具有很高的安全性和可靠性,及灵活的系统扩展性和良好的用户体验。该系统能够方便地完成考勤功能,同时又具备查询功能。本文主要是介绍基于指纹识别的考勤系统的设计方案和流程。

关键词:员工考勤;指纹识别 .NET SQL Server

The Design of Attendance System Based on Fingerprint Recognition

AbstractAs the fingerprint recognition technology is increasingly mature, in the areas of social the technology has been widely applied. In the modern enterprise management, attendance is also a necessary process. In the process of some traditional attendance, however, for some reason can lead to some bad problems, but because the fingerprint technology has a lifelong invariance, uniqueness, an alternative that fingerprint attendance gradually take the place of some of the traditional method of check on work attendance, such as punching, etc. At the same time use the authenticity of the technology also ensures the attendance data.

The system according to the fingerprint is perfect under the combination of computer technology and fingerprint analysis. This system uses the current relatively popular.net application architecture and the stability of the SQL Server database, has the very high safety and reliability, and flexible system scalability and good user experience. The system can easily complete timekeeping function, and also have the query function. This paper mainly introduces the design of check on work attendance system based on fingerprint identification scheme and process.

Key words: Employee attendance ; Fingerprint identification; The.net ; SQL Server

   



绪论

随着生物科学技术的成熟,以及计算机技术的迅猛发展和广泛的普及,基于一些人体特征的识别技术也得到了速度的发展。通过对指纹的全局特点和局部特点分析,从而从指纹的一些特征值中可以准确的来确认某一个人的身份。因为生物的特征是唯一的,因而从提取其独一的特点中转换成为数字代码,进而形成一些指纹特征模版,而考勤系统则是通过获得指纹特征的模版来进行指纹匹对的。当今,指纹,脸型,视网膜,掌纹,声音等识别技术中,指纹识别是最经常使用的识别技术[1]。最近几年来,指纹识别技术是身份识别和认证领域内发展很迅速的一门新兴的技术。 二十一世纪的高科技之一便是随着科技进步而不断走向成熟的指纹识别技术。

一些企业单位仍旧采用打卡机等一些传统的考勤签到方式,这种传统的考勤是一种效率低,管理不方便,容易冒充签到等一些问题的方式。企业单位向来把员工考勤作为一个重要的环节,随着指纹识别技术的发展和成熟,“数字化”也成为这个时代的主旋律,在这种背景下,各个企业也采用了一些稳定可靠,简单明了,高科学的考勤方式。其中最常见的是基予指纹识别的考勤方式。

跟随生物技术的完善,市场上出现了一些识别人体特点的装备,比如指纹,掌型,虹膜等识别体系。综合所有考勤系统,性价比较高的还是基于指纹识别的考勤系统,它应用普遍,成熟,使用便利,仍旧在多个行业进行应用。这种考勤方式在现代企业里也开始使用。指纹考勤系统存有联机的和脱机的两种。联机类型的就是直接将指纹采集器连接到CP机上,然而指纹考勤系统则运行在相应的计CP上的体系本课题设计与开发的是联机类型下的指纹考勤系统,本系统由客户端和页面查询部分组成。利用客户端进行考勤,页面查询部分可以生成员工的查询等级状态以及管理员可以查到员工的考勤信息。

指纹方法其基本原理是经由取像设备读取指纹图像,然后用计算机方法软件提取指纹的特点数据,末了经由匹配算法获得过程结果相对于其他的生理特点,收集设备大致分为光学设备、硅晶体传感器和超声波扫描[2]。预处理便是减少噪声,加强脊和谷的对比度,去除噪声实际上并不破坏图像的重要信息,处理后的图像不变形。环绕系统的要求,本文设计了基于指纹识别的考勤体系,该体系由便携式指纹识别器、以及 PC 机组成。其中,系统硬件提供连接外设功能,将指纹识别仪采集的指纹图象通过函数转换成数据存入数据库。将指纹识别仪采集的指纹图象通过函数转换成数据存入数据库,以及如何实现权限设置和员工的签到签退信息查询功能。

本系统基于指纹识别考勤系统设计,结合数据库,将企业的员工信息进行管理查询,然后对指纹数据库进行指纹匹配,得到员工的考勤成功状态。通过此系统进行考勤,减少了的时间的浪费。可以使得他们拥有更多的时间和精力去做其他的事情。而且运用此系统,还可减少一些常见的问题,比如代签到等,这样可以更负责的管理的勤情况。

1指纹识别基本原理

1.1指纹识别系统工作基本原理

指纹识别体系大致分为图像采集,指纹图像预处理,特征提取,指纹匹配等几个部分。如图1-1指纹识别体系图所示。

1-1 指纹识别体系图

1.1.1指纹图像采集

最先的指纹辨识技能,是根据光学传感器为基础的光学识别系统,识别范畴仅限于皮肤表层,一般把它叫做第一代指纹识别;而采用了电容传感器技能的第二代指纹方法体系实现了识别规模从表皮到真皮的转换,从而大大提高了辨别的准确率和体系的安全性,也是目前市场大部分指纹识别设备的根蒂。

光学传感器其技能关键是光的全反射,手指置于加膜台板,照射到压有指纹的玻璃表层时,反射光经电荷耦合器件转换为对应电信号,并传输后端进一步处置。电容传感器按照指纹的嵴和峪与半导体电容感应颗粒形成的电容值巨细分歧,来判定什么位置是嵴什么位置是峪。其工作进程是经由对每个像素点上的电容感应颗粒预先充电到某一款电压。当手指接触到半导体电容指纹表层上时,由于嵴是凸起的峪是凹下,按照电容值与间隔的干系,会在嵴和峪所构成分歧的电容值。然后操纵放电电流来放电。其发出的电子标志将穿过手指的表层和死性皮肤层,到达手指皮肤的活体层(真皮层),直接读取指纹图案[3]

1.1.2指纹图像预处理

在指纹收集过程中,不可避免的会引入各种噪声,这些噪声对指纹特点信息的提取造成很大的影响,甚至会产生许多伪特点。因而在提取指纹特点以前,需要对指纹图象举行滤波处理,以去除无用信息,加强有效信息。在获得加强的灰度图后,需要将其进一步二值化,便于后续进程的处置[4]。指纹图像预处理是除去指纹图象中的噪声,使指纹图像清楚、边缘分明,以便于进一步提取和存储特征点的准确率。包含指纹地区检测、图像质量判定、表的目的图和频率估计、图像加强、指纹图像二值化和细分等。在指纹图象处置的流程中,预处置是第一个处理关键.它对原始灰度图象进行光滑、锐化、加强、二值化等处置,从而使细分化、特点抽取等操作可以有效实行[5]

1.1.3指纹特征提取

提取无色指印,首先应使其呈现,而后才能提取和鉴别剖析。提取带有指印的实体。益处是便于对原有物证、迹痕的完美保留;在实验室条件下便于更好的钻研和提取。对于大型、笨重的物体上的有色指纹印迹,若有可能采取分散、剥离的方式加以提取。对一些不可能提取原物的指印,还可以采纳胶带纸粘取的方式加以牢固和提取。

1.1.4指纹匹配

进行指纹匹配时,由于在指纹录入的时候,指纹可能会产生各种变形,所以同一种指纹先后采集两次可能也不一样。是以欲想进行有效的指纹匹对,必需尽可能减弱指纹的各类非线性和放射性变形,针对变形,我们可以采取坐标系中进行指纹对比的方式来有效的进行匹配。

指纹对照主要是依靠两枚指纹的局部指纹特点和相互关系来判定指纹的唯一性。指纹特点的聚集构成了一个拓扑布局,指纹比对的进程事实就是两个拓扑结构的对比问题。因为在收集的过程中会轻易出现一些误差,指纹对照的过程必定是一个恍惚匹配的过程。

1.2指纹识别系统的工作模式

指纹识别系统分为验证模式和辨识模式,验证模式便是由把现场收集到的指纹与一

个已经记录在指纹库的指纹进行一对一对比,来确认身份的过程。在比对现场,先验证其标识,然后操纵系统指纹与现场的指纹比对来证实其标识是否恰当。而辨识模式就是把现场采集的指纹与指纹数据库中的指纹进行一对多的对比。指纹识别模式如图1-2指纹匹配图所示。

1-2指纹匹配图

2 指纹识别考勤系统的设计

2.1系统设计的原则

2.1.1 系统可靠性原则

可靠性是全部应用系统的根本,主要是从软件的稳定性和所选设备的可靠性两方面来决择的。

2.1.2综合性原则

系统基于员工的基本信息录入和考勤情况等,主要完成员工的指纹的采集和记录,在考勤时验证指纹身份,就可以查询员工的一些基本信息,同时把员工的签到时间和下班时间保存到数据库中,然后管理员和员工等可通过web页查询查询到员工考勤情况。

2.1.3先进性

体系采取先进的活体指纹技能,只要第一次指纹收集的正确性。就等保证在考勤过程中的数据与人一致,从而克服了以往考勤系统对身份验证的不足,防止员工代替考勤等不好现象。本设计中便是主要由于指纹识别的先进性才使得此系统具有更大的意义和更有有意的研究设计。系统基于员工的指纹采集然后进行相应的处理,然后存入指纹数据库。

2.2 系统的功能模块的设计

2.2.1系统的硬件功能模块

纹考勤系统中的硬件部分由指纹识别仪、PC客户端控制机和服务器三部分组成。指纹识别仪主要用于指纹的收集,员工指纹信息的注册和日常指纹考勤;PC客户端控制器机运行指纹考勤软件。

2.2.2 系统的其他功能模块

基于指纹识别的考勤系统是先将员工的指纹信息记录到指纹数据库中,员工考勤时系统会自行验证。然后把验证结果存入到数据库中,在web查询页面,管理员可以看到员工的签到状态。

员工原始记录源于指纹识别考勤体系,并以固定格局保留在数据库中,本文说介绍的指纹识别系统的存储过程的主要任务就是如何处置这些数据。考勤系统开始运行,首先系统初始化,同一时间指纹采集器开始工作,如果没有员工参与考勤则处于等待状态,员工使用指纹签到后,系统开始调用数据库中的指纹并与该员工的指纹进行匹配,经过对比后,同时该员工的基本信息会显示出来,管理员可进行对员工考勤信息进行登记。 员工的指纹信息保存功能是将员工的基本信息和指纹信息保存到数据库中,利于员工考勤时对员工的信息进行核对。

2.3系统技术介绍

2.3.1 .NET框架介绍

.NET采用三层或多层结构,功能强大。同时吸取了Java优点,是目前最为流行的商业企业级应用平台[6]

2.3.2.NET技术介绍

ADONET是一种可以访问任何类型的数据源的应用层的编程接口,是一种用于和多种数据源进行交互的面向对象的类库[7]ADO具有COM组件的许多优点,可以被多种语言支持,比如,ODBC数据源SQL ServerOracleAccess等,也可以适合于文本文件、Excel表格、XML文件和无格式的文件等,这些不同的数据源都可以通过NETADONET类库进行连接。DONET是由Connection组件、Dataset组件、Command组件、Data Reader组件和Data Adapter5个组件组成[8]

2.3.3.SQL Server 2005

SQL Server 2005是数据库更是一个周全的、端到端的数据解决方案,其数据库引擎为关系型数据和结构化数据提供加倍平安、更加可的住的数据存储功能,使用户可以构建和治理高可用和高性能的数据应用程序。SQLServer 2005数据库系统也允许用户能够通过嵌入的功能,分析和数据挖掘数据中更多的价值SQLServer2005数据库系统的目标就是是将商业智能扩展到公司组织内部,并且为用户的数据作出最好的决策[9]SQL Server 2005数据库系统简化了IT开发、部署和管理和分析应用程序的复杂度,为IT开发人员提供一个灵活的开发应用环境,同时,为数据库的管理人员提供了集成的自动管理工具。

2.4本章小结

在本章中,介绍了指纹考勤体系的硬件设备和软件体系,以及所需要的系统技能。当中,硬件部分主要有通用的计算机,指纹采集仪构成。软件系统主要有考勤系统和web查询子系统构成。综合上述,首要过程为软件对指纹收集仪所收集的指纹图象进行剖析处理,为考勤和查询提供方便。

3数据库的设计与实现

3.1数据库的设计规则

数据库应协调好系统的各个数据源,保证系统数据的一致性。数据库应保证数据的正确性和相容性,防止不合法数据存入数据库。数据库应保证数据的安全性:防止非法用户使用数据库的数据:防止合法用户非法操作等。数据库结构的设计应充分考虑到系统进一步发展、移植的需要,具有良好的系统伸缩性、可扩展性和适度冗余。下节便介绍了数据库的设计过程。

3.2数据库的设计过程

随着数据库应用程序的发展,数据库的管理称为炙手可热的应用程序方法,SQL server是微软公司推出的数据库管理系统,是当前非常流行的数据库管理系统之一,本文所说的指纹识别考勤采用的SQL server作为数据库的开发工具,在系统中与数据库交互的部分用SQL语言,这样可以提供通用性[10]。从而使后台数据库可以采用多种数据库系统,可以根据用户自己的需求来进行选择。之所在使用SQL server 作为数据库系统,因为在后期使用中指纹越来越多,所以对数据库的要求也越来变得越高。

3-1数据库表

ID:员工编号

uname:员工姓名

udep:员工部门

ufinger:指纹编码

Ujob:员工职位

Uinfo:员工其他信息

3.3数据库的实现

3.3.1 指纹记录数据库

在进行指纹记录时,首先要对数据库进行链接,主要代码如下:

SqlConnection conn = new SqlConnection("server=.;database=db_finger);

conn.Open();

库连接后,如果要想数据库中保存员工的一些基本信息,则需要把员工的信息插入到数据库中,则代码如下:

conn = new SqlConnection("server=.;database=db_finger");//设置连接的数据库

SqlCommand cmd = new SqlCommand("insert into tb_student(sno,sname,sbanji,sstate) values('" + uno.Trim() + "','" + uname.Trim().Trim()+"','" + udep.Trim()+"','" +ujob.Trim()+"','"+ ufinger .Trim()+"','")", conn);

int i = cmd.ExecuteNonQuery();//获取SQL影响的行数

//插入成功

if (i > 0)

MessageBox.Show("员工信息插入成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

3.3.2数据库中获取指纹代码

首先要连接数据库,数据库连接成功后,系统可以获取指定表的信息,然后获取表中记录图片的信息。

bool temp = false;

Graphics g = panel1.CreateGraphics();//获取panel1控件的Graphics

string tp = "";//记录是对比成功还是对比失败

当要获取当前指纹图片的字符串时要执行的代码:

string Ntemp = axZKFPEngX1.GetTemplateAsString();

进行数据库连接式时所执行的代码:

SqlConnection conn = new SqlConnection("server=.;database=db_finger);

//设置要连接数据库

conn.Open();

SqlCommand cmd = new SqlCommand("select * from tb_finger", conn);

//获取指定表中的信息

SqlDataReader sdr = cmd.ExecuteReader();//执行查询

while (sdr.Read())//遍历表中的信息

{

string Ofinger = sdr["Ufinger"].ToString();//获取表中记录的图片信息

如果两个图片相同时,则系统则会遍历数据库进行获取当前员工的编号,获取当前员工的姓名以及员工所在的部门和员工当前的职务。所执行的代码操作:

if (axZKFPEngX1.VerFingerFromStr(ref Ofinger, Ntemp, false, ref temp))

//如果两个图片相同

{lblno.Text = sdr["uno"].ToString();//获取当前员工编号

lblname.Text = sdr["uname"].ToString();//获取当前员工名

lblbanji.Text = sdr["udep"].ToString();//获取当前员工部门

lbljob.Text = sdr["Ujob"].ToString();//获取当前职工的职务

如果获取成功则会显示员工的基本信息,同时系统也会显示出来“考勤成功”,则需要进行的代码操作为:

tp = "考勤成功";//记录考勤成功

break

如果员工输入的指纹与指纹库中的指纹未能匹配成功,则系统会显示出来“考勤失败”然后员工就要查看考勤失败的原因再继续考勤。该功能代码操作为:

tp = "考勤失败";//记录考勤成功

break

3.4本章小结

本章对系统数据库进行详细设计,介绍系统数据库进行的详细设计,完成对数据库的定义。同时也介绍了数据库在考勤系统中的实现以及考勤系统对数据库的查询操作。本章也介绍了如何连接数据库。

4 考勤系统的实现

4.1考勤系统客户端的实现

4.1.1客户端的界面设计

4-1考勤客户端界面

点击“开始考勤”按钮会出现图4-2界面显示。

4-2界面现实

点击指纹登记按钮后会进入另一个界面如图4-3指纹录入界面。

4-3只为录入界面

本界面主要是对员工进行考勤的界面,其中有开始考勤,考勤结束和指纹登记和指纹保存等功能。如若进行指纹登记,则其界面如图4-4指纹录入设计界面。

4-4指纹录入设计界面

4.1.2考勤客户端的代码实现

在进行指纹验证模板时触发时代码:

private void axZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e)

{

if (e.actionResult)//如果成功取到指纹模板

{

lblName.Text = "";//清空

lblsex.Text = "";

lbldep.Text = "";

lbljob.Text = "";

bool temp = false;//定义布尔变量

Graphics g = panel1.CreateGraphics();//获取panel1控件的Graphics

string tp = "";//记录是对比成功还是对比失败

string Ntemp = axZKFPEngX1.GetTemplateAsString();//获取当前指纹图片的字符串

SqlConnection conn = new SqlConnection("server=.;database=db_finger;uid=sa;pwd=");//设置要连接数据库

conn.Open();//连接数据库

SqlCommand cmd = new SqlCommand("select * from tb_finger", conn);//获取指定表中的信息

SqlDataReader sdr = cmd.ExecuteReader();//执行查询

while (sdr.Read())//遍历表中的信息

{

string Ofinger = sdr["Ufinger"].ToString();//获取表中记录的图片信息

if (axZKFPEngX1.VerFingerFromStr(ref Ofinger, Ntemp, false, ref temp))//如果两个图片相同

{

lblName.Text = sdr["Uname"].ToString();//获取当前职工的名称

lblsex.Text = sdr["Usex"].ToString();//获取当前职工的性别

lbldep.Text = sdr["Udep"].ToString();//获取当前职工的部门

lbljob.Text = sdr["Ujob"].ToString();//获取当前职工的职务

tp = "考勤成功";//记录考勤成功

SqlCommand cmd1=new SqlCommand ("insert into tb_finger(Uinfo values ('"+ tp +"')",conn);

//考勤状态插入数据库中

break;

}

else

{

tp = "考勤失败";//标注考勤失败

SqlCommand cmd2 = new SqlCommand("insert into tb_finger (Uinfo) values ('" + tp + "')", conn);

}

//考勤状态插入数据库中

}

系统获取指纹且绘制指纹代码如下:

private void axZKFPEngX1_OnImageReceived(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnImageReceivedEvent e)

{Graphics canvas = panel1.CreateGraphics();

axZKFPEngX1.PrintImageAt(canvas.GetHdc().ToInt32(), 0, 0, panel1.Width, panel1.Height);

canvas.Dispose();

4.2考勤web子系统的实现

4.2.1考勤信息查询界面

当员工进行过指纹考勤客户端考勤后,在现实生活中,虽然指纹识别的正确率很高但是也会出现一些难以预测的错误,因此员工在自己考勤过后,想要确认一下是否此时处于“已经签到”状态,则可以通过考勤查询界面。

4-5考勤查询界面

员工点击“员工端”则进入员工信息查询页面,当一个员工欲想查看自己是否考勤登记成功时,则可进入此界面,通过输入自己的员工编号,则可以看到自己的有关信息。如图4-6员工查询界面。

4-6员工查询界面

String str = @"Data Source=JSJXY46;Initial Catalog=db_finger;Integrated Security=True";

SqlConnection con = new SqlConnection(str);

con.Open();

String sql ="select * from tb_finger where ID ='" + TextBox1.Text + "'";

SqlDataAdapter Adapter = new SqlDataAdapter(sql, con);

DataSet myDs = new DataSet();

Adapter.Fill(myDs);

GridView1.DataSource = myDs.Tables[0];

GridView1.DataBind();

4.2.2查看勤状态的界面

4-7员工信息浏览界面

员工信息浏览界面编写代码

String str = @"Data Source=JSJXY46;Initial Catalog=db_finger;Integrated Security=True";

SqlConnection con = new SqlConnection(str);

con.Open();

String sql = "select * from tb_finger";

if (RadioButton1.Checked)

{

sql = "select * from tb_finger where ID ='" + TextBox1.Text + "'";

}

if (RadioButton2.Checked)

{

sql = "select * from tb_finger where Uname='" + TextBox2.Text + "'";

基于指纹识别的考勤系统设计

相关推荐