基于opencv和python的人脸识别签到系统设计与实现

概要
  人脸识别广泛的应用于各个领域。一般来说,人脸具有人类基因、指纹等独特的生物学特性,因此可以作为生物特征识别,从而方便、快速、准确地识别被摄体,可见人脸识别是一种有效的身份识别工具。该技术可以应用于任何需要身份识别的区域和场景,因此,基于人脸识别的签到系统可以根据时代的要求,弥补传统签到方式操作复杂、效率低等不足。所以,基于人脸识别的签到系统也应运而生。
  本次设计是基于python语言和OpenCV以及百度AI所设计并实现的一个适用于学校或小型组织的人脸识别签到系统。本文第一章首先介绍了人脸识别的研究背景和研究意义,对人脸识别技术的基本概念、发展历程和基本方法进行阐述,分析了传统签到方式的不足,并简要介绍了国内外人脸识别技术的发展历史和研究成果以及本文的结构安排。然后根据签到系统在功能和性能上的各种需求,进行软件架构的设计,并且独立的对用户界面和系统功能的规划进行设计。另外还对于签到系统的软件进行了介绍,对配置环境及程序逻辑进行了解释、以及对操作注册,签到等进行分析。最后从系统的前端设计、数据库介绍和这两个方面进行分析,并展示了相应的GUI 界面。
  
关键词 人脸识别签到系统;百度智能云;匹配;界面;数据库

一、人脸识别签到架构
2.1 业务架构
2.2.1 业务流程需求
  人脸识别签到系统的基本业务流程:
1、系统可以创建签到组,注册成员用户。
2、在注册成员用户时,一要进行人脸库的采集,二要进行个人信息的采集。
3、在签到时,打开摄像头,摄入人脸,对人脸信息进行采集,然后与人脸库内人脸进行检测进行对比检测,对数据库中有无较为接近的人脸信息进行判定,如果查找成功,则显示成功签到,签到信息进行保存。
4、将此次签到记录进行导出

2.2.2 数据管理
在开启签到到结束签到这段时间人脸签到信息会被保存,结束签到后签到信息可由sqlite3储存并导出,之后,会初始化操作系统。

2.2.3 人脸信息管理
  对于注册过程中的人脸信息采集,需要将采集的照片标准化。
  本次设计的人脸信息管理能够对人脸信息和个人信息进行添加,更新,删除的操作。在进行人脸信息匹配时,会与保存的人脸库内人脸进行对比、匹配,若匹配成功将显示签到成功及保存的信息。

2.2.4 系统的定位
  本系统主要是定位于大学课堂等签到打卡的需求,其硬件成本较为低廉。
1、基于为小型群体签到打卡需求,由于系统的服务对象较少,不需要有过多功能。
2、市场上专业的人力资源管理系统的成本需求高,工作量大,本系统主要提供人脸识别签到的基本核心功能。
3、不需要单独购买其他硬件设备,以普通计算机和摄像头为基本配置,使签到打卡系统能满足单独硬件的需
求,成本较低。
4、实现人脸识别签到功能以及数据导出保存功能。
5、结合系统定位,本系统须实现人脸检测、人脸识别、人脸录入,签到信息导出这四个方面。

2.2 技术架构
开发设施:PyCharm作为IDE进行开发
算法模型:本论文设计主要采用百度AI人脸识别算法进行人脸识别检测,CNN卷积神经网络
视觉技术:主要有实时视频采集技术;实时图像抓拍;实时人脸检测;实时人脸对比等技术

2.3 应用架构
典型的人脸识别系统一般采用c/s/d结构,分为客户端、服务器端和数据端,用户端如图2-1所示

图2-1 用户端

数据端如图2-2所示

图2-2 数据端

2.4 数据架构
   人脸识别系统的数据结构包括样本数据、训练模型和应用数据。样本数据是保存在人脸库内,包括注册的面部资源数据库和注册的个人信息标签数据库;本次设计的人脸训练模型由百度人工智能提供;应用数据为测试时摄像头摄取的人脸。

二、人脸识别签到系统的设计
  系统的主流开发语言有很多,本次系统设计采用python为开发语言,编写工具为PyCharm以及Pyqt5,sqlite为数据库。本系统采用多层系统结构方式,其关键在于存在自身的固定的逻辑及相关功能。

3.1 人脸识别原理
   人脸识别是基于人的脸部信息进行身份识别的生物体特征识别技术,根据不同的特征有不同的方法进行人脸识别。在运行程序,开始进行人脸识别时,首先我们要确认摄像头摄取范围内是否存在人脸,若存在人脸且人脸个数唯一,根据生物体特征等信息(本次设计采用百度AI进行人脸库的存放与训练)对其与人脸库内人脸进行匹配识别。若存在与人脸库内人脸信息相似度大于规定范围,将符合的人脸信息显示出来。
人脸识别流程,如图3-1所示

图3-1 人脸识别原理图

3.2 程序逻辑
3.2.1 视频流采集
视频流采集,如图3-2所示

图3-2 视频流采集

3.2.2 人脸检测
实时人脸检测,如图3-3所示

图3-3人脸检测

三、系统实现
4.1 系统前端设计
  系统的前端UI界面是运用PyQt5进行设计。在PyCharm中下载PyQt5,本次设计采用Qt Designer来完成。Qt Designer具有可以将视图、逻辑的分离的性能,可以使开发更快捷。同样Qt Designer还具有操作简便,易于操作的特点,可以直接将放置控件直接进行拖拽,进行UI页面设计,同时可以随时查看控件效果,十分方便。
    我们可以利用Qt Designer生成.ui文件,然后通过pyqt5 将.ui文件转化为.py文件。其中人脸识别签到系统界
面整体设计,如图4-1所示

图4-1 人脸识别签到系统界面整体设计

4.1.1 主界面
  登录系统时,main.py进行运行会出现如下主页面,具体内容如图4-2所示

图4-2 主界面
  主界面包含签到;用户组;用户三个菜单栏。点击“签到”,会出现“开始签到”“结束签到”的选项;点击“用户组”,会出现“添加用户组”“删除用户组”的选项;点击“用户”,会出现“注册用户”“删除用户”“更新用户”,其中“注册用户”是将新用户将人脸信息和个人信息录入,“更新用户”是将所选择用户的人脸信息全部删除。

4.1.2 信息采集界面
   在进行人脸签到之前需要预先注册成员,确定人脸信息和组信息,单击主界面上的“用户”按钮,选择成员注册,就会登进成员信息录入页面,采集人脸和成员信息。成员注册界面能进行成员信息录入操作,包括成员姓名,学号,班级等信息。在填好基本资料后,就可以进入到人脸信息的采集阶段。摄像头会自动打开采集成员图片,此过程需要注意一些细节,比如成员在面对摄像头时,应将摄像头方位摆正,并尽量在光线条件较好的环境下采集图
像。当摄像窗口实时检测画面中显示出的人脸位置、大小正确并且图像清楚的情况下,系统会自动将人脸识别出来,并将图片保存在百度人脸库。拍摄照片时最好多拍几张不同角度的图片。增加人脸细节变化和光照程度变化,这能提高数据集的质量,采集几秒钟后,点击“选择人脸图片”按钮后,即完成了数据的采集任务。具体内容如图4-3所示

图4-3 信息采集界面

4.1.3 显示界面
  在人脸签到时,点击开始签到,会出现视频采集,将脸面向摄像头,即可开始人脸识别。由于程序的设计只能对一个人进行人脸识别,虽然可以识别到人脸个数,但有效人脸只有一个。同时根据程序设计表情,性别,是否佩戴口罩等信息显示,如图4-5所示。人脸签到成功后会如图4-4所示
  

图4-4 显示签到界面

图4-5 显示人脸信息界面

四、总结
  本文以人脸识别技术为核心,设计并实现了一种在小型组织使用的人脸识别签到系统。文章先是分析了人脸识别的研究概况,展示国内外人脸识别签到发展状况,分析了使用人脸识别签到系统的合理性。分析了人脸识别的相关技术,介绍了所需开发的软件和工具,阐述了基于人脸识别的系统的要求,从业务流程;数据管理;和人脸信息管理方面设计了相应的实现方案,定义了基于人脸识别技术的框架和功能模块,最后实现了基于人脸识别签到系统的界面设计和功能测试。系统的实现了人脸检测、识别和报到记录的目的,可以识别员工的身份信息,然后对员工的报到进行记录和统计,可以完成员工信息的录入,以及考勤信息的查询和统计。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明vb.net教程C#教程python教程

原文链接:基于opencv和python的人脸识别签到系统设计与实现_python课堂签到系统-CSDN博客

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值