OpenCV实战:智能人脸识别打卡系统

您所在的位置:网站首页 扫脸打卡机有些人不好打怎么回事 OpenCV实战:智能人脸识别打卡系统

OpenCV实战:智能人脸识别打卡系统

2024-07-04 11:37:00| 来源: 网络整理| 查看: 265

1、介绍

目前,很多公司对员工的考勤同时通过打卡机或者钉钉之类的打卡软件,传统的员工打卡方式有很多,例如点名、签字、刷卡、指纹等等

然而随机机器视觉、计算机视觉的不断发展,算力的不断提升,人工智能对人脸检测的技术趋于成熟,基于人脸识别的智能打卡系统已经成熟。

通过摄像头对人脸特征进行扫描,利用面部特征的差异,识别人员。

人脸打卡的准确性不逊色于指纹打卡,相对于安全性和便捷性来说,甚至更胜一筹

本章将完成一套基于Python + OpenCV 开发的智能人脸识别打卡系统

2、需求介绍

打卡系统有三个核心功能:

录入打卡人的资料员工打卡查看打卡记录

项目较为复杂,需要对每个功能进行拆解,如下:

对数据模型的分析本系统不使用第三方数据库,所有数据都以文本文件的形式保存在文件中,因此要规范数据内容和格式,建立统一模型。

若把软件的使用者设定为“公司",那么打卡者身份可设定为“员工”,程序中的数据模型就应该 是员工数据类。每一位员工都有姓名,“姓名”就作为员工类中必备的数据之一。因为员工可能会重名,所以必须使用另一种标记作为员工身份的认证。为每一位员工添加不会重复的员工编号。员工编号的格式为从1开始递增数字,每添加一位新员工,员工编号就+1。员工类中添加“员工编号”。系统中必须保存所有员工的照片用于人脸识别。为了区分每位员工的照片文件,程序使用“员工特征码+随机值.png”的规则为照片文件命名。

如果使用员工编号作为特征码,1号员工和 11号员工的文件名容易发生混淆,所以特征码不能使用员工缤号,而是一种长度一致、复杂性高、不重复的字符串。员工类中添加“特征码”。

员工与编号、姓名、特征码是一对一的关系,但员工与打卡记录是一对多的关系,所以打卡记录可以放在员工类中保存,而不是单独保存在打卡记录模型中。打卡记录需要记录每一个员工的具体打卡时间,并能以报表的形式体现。可以使用字典保存打卡记录模型,员工姓名作为key,该员工的打卡记录列表作为 value。

打卡功能的分析: 人脸打卡依赖于人脸识别功能。本程序可以使用OpenCV提供的人脸识别器实现此功能,建议使用正确率较高的LBPH 识别器,其他识别器也可以考虑,但需要做好测试验证。

LBPH 识别器教程如下:OpenCV实战--人脸识别的三种方法(人脸识别具体到某个人)_使用opencv进行人脸识别的三种方法-CSDN博客

系统可以通过拍照方法保存员工的照片样本。当员工面对摄像头时,敲击【Enter】(回车)键就可以生成一张正面特写照片文件。为了增加识别准确率,每个员工应拍三张照片,也就是敲三Enter 键才能完成录入操作。

OpenCV提供的人脸识别器有一个缺陷:必须比对两种不同样本才能进行判断。如果公司第一次使用打卡系统,系统中没有录入任何员工,缺少比对样本,OpenCV提供的人脸识别器就会报错。因此本系统应该给出几个无人脸的默认样本,保证即使只录入一个员工,该员工也能顺利打卡。

每次员工打卡成功后,都应该记录该员工的打卡时间,然后保存到文件中

对数据维护的分析: 数据维护总结起来就是增、删、改、查四种操作。

简化版的打卡系统可以忽略“改”的操作,由“先删除,再新增”的方式代替。 本系统除了提供录入新员工的功能之外,也应提供删除已有员工的功能。删除员工之前应输入验证码进行验证,以防用户操作失误,误删重要数据。确认执行删除换作后,不仅要删除员工的信息,也要同时删除员工的打卡记录和照片文件。完成删除操作之后,所有数据文件中不再存有被删员工的任何数据。

对考勤报表的分析: 每个公司的考勤制度都不同,很多公司都主动设置“上班时间”和“下班时间”来做考勤的标准。员工要在“上班时间”之前打卡才算正常到岗,在“下班时间”之后打卡才算正常离岗。关在规定时间内打卡的情况属于“打卡异常”,“打卡异常”通常分为三种情况:迟到、早退和缺席(或者叫缺勤)。本系统会分析每一位员工在某一天的打卡记录,如果该员工在“上班时间”前和“下班时间”后都有打卡记录,则认为该员工当天全勤,该员工当天的其他打卡记录会被忽略。但如果该员工在“上班时间”前未能打卡,而是在“上班时间”后到中午12点前打卡,这种情况被视为迟到。如果该员工在“下班时间”后未能打卡,而是在中午12点之后到“下班时间”前打卡,这种情况被视为早退。当天没有打卡记录被视为缺席。

3、系统设计

本章节提供系统设计

3.1 开发环境

环境如下:

3.2 功能结构

MR 智能打卡系统结构如下:

3.3 员工打卡业务流程

总体流程如下:

员工打卡的流程:

查看记录功能业务流程:

员工管理功能流程:

考勤报表流程:

员工管理、查看记录和考勤报表这三个功能中都涉及了权限管理业务

如果用户想要使用这三个功能,需要登录管理员账号,只有登录成功之后才有权使用

3.4 文件夹目录

4、文件系统设计

为了程序简便,不使用别的数据库,而是采用读取文本文件的方式保存数据

项目所有的数据文件都在data 文件夹中

每个数据文件详细的内容格式

employee_data.txt 文件以字符串的形式保存所有员工数据,数据之间用英文逗号隔开,一行保存一个员工文件

编号、姓名、特征码

lock_record.txt 文件以字符串的形式保存数据,数据格式为打卡记录的字典文件

姓名:打卡时间

work_time.txt 文件以字符串的形式保存数据

上班时间、下班时间

系统会根据这两个时间判断员工是否迟到、早退

user_password.txt 文件以字符串的形式保存数据,数据格式为管理员账号密码

管理员账号:管理员密码

如果要更改管理员账号密码,可以在这里更改

/data/face/文件夹下保存的是所有员工的照片文件,格式为PNG

每张照片的大小都是640X480。每名员工需保存三张照片。该文件夹下还有两个默认的图像文件,文件名分别为1000000000.png和2000000000.png。这是两幅纯色图像,用于辅助训练人脸识别器。人脸识别器使用样本进行训练时,至少要有两个以上的标签分类。如果程序中仅保存了一位员工的照片,人脸识别器无法拿此员工照片与其他样本作对比,人脸识别器就会报错,此时两幅默认图像文件就充当了对比样本,以防止人脸识别器无法完成训练。当程序录入了足够多的员工信息后,这两幅默认图像虽然丧失了功能,但也不会影响识别器的识别能力。

5、数据实体模块设计

entity 包下的 organizations.py 文件用于封装数据模型。该文件中设计了员工类,并提供了一些维 护数据的方法

构建员工类

# 员工类 class Employee: def __init__(self, id, name, code): self.name = name # 员工编号 self.id = id # 员工姓名 self.code = code # 员工的特征码

变量设定如下:

LOCK_RECORD = dict() # 打卡记录字典,格式为{姓名:[时间1,时间2]} EMPLOYEES = list() # 全体员工列表 MAX_ID = 0 # 目前可用的最大ID CODE_LEN = 6 # 特征码的默认长度 WORK_TIME = "" # 上班时间 CLOSING_TIME = "" # 工下班时间 USERS = dict() # 管理员账号密码

6、程序使用

这里介绍程序使用的方法,运行main程序如下

6.1 登记照片

输入3,选择员工管理,然后输入1录入新员工即可:

员工管理需要登陆管理员账号!

输入姓名即可:henry

员工的照片数据:

6.2 删除员工信息

删除后,可以发现员工的照片不见了

6.3 查询员工打卡记录

如下:

 

6.4 生成考勤信息

如下:

6.5 自定义上下班时间

如下:

7、总结

更多功能可以自行查看,每一行均有注释,用户可以根据自己需求添加

项目地址:OpenCV实战:基于python的员工上下班人脸识别智能打卡系统资源-CSDN文库

其他资源:OpenCV教程代码:从读取图像到人脸识别的完整教程资源-CSDN文库



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭