一、设计目标:旨在PC端上搭建一款具有指纹识别与人脸识别功能的门禁兼考勤系统。该系统同时具备普通用户模式、管理员模式与超级管理员模式,下面具体介绍每种模式下的功能。

1)普通用户模式

该模式可分为收集用户信息,验证用户信息和开锁三个阶段。其中,收集用户信息即为收集用户的id,姓名,指纹信息和人脸信息,将除了指纹信息之外的用户信息存入数据库,而指纹信息直接存储在指纹模块;验证用户信息即为先验证用户的指纹,通过之后进行人脸验证,再根据验证情况,生成日志信息,日志信息可展示在右边区域,并存入数据库表;开锁即为通过指纹验证和人脸验证之后,PC进一步通过串口控制51单片机,进行开锁步骤。

2)管理员模式

该模式需要管理员输入账号和密码,在普通用户模式的基础上,拥有删除单个指纹信息,一键删除所有用户指纹信息,删除本地用户信息,删除数据库用户id、姓名和人脸信息,删除数据库日志信息,进入超级管理员模式,退出管理员模式,直接开锁等功能。

3)超级管理员模式

该模式是基于pyhton+django网页端的管理平台,具备操作数据库人脸信息,日志信息和管理员的账号、密码。

二、系统总体结构

从系统的设计目标可知,该门禁考勤系统分为硬件和软件两个部分。其中,硬件包括PC,单片机,继电器,AS608光学指纹模块和电磁锁;软件包括python+tkinter编写的UI界面,sqlite3数据库,python+django的网页端管理界面,python+dblib+opencv的人脸识别,python通过串口控制的AS608指纹模块,C语言编写的单片机控制电磁锁等等。系统的大体工作是采集用户指纹信息和人脸信息,与提前录入的指纹信息与人脸信息进行匹配,对于匹配正确的用户则记录考勤信息,为该用户打开电磁锁。总体设计下图所示。

该系统的指纹识别通过AS608指纹识别模块来实现对指纹的扫描和比对功能,而人脸采集则通过PC自带的摄像头来完成,基于PC端的人机交互界面是整个系统的核心所在,是由python搭建的软件运行环境,主要负责实现系统的指纹识别,人脸识别,信息存储和根据处理结果做出相应的选择,如发送信号控制单片机开锁等。

51单片机主要负责接收来自PC端的指令,做出相应的动作。例如,当单片机收到“1”时,则打开电磁锁,否则电磁锁保持常闭状态。

网页端管理界面是由python+Django搭建的,方便超级管理员进行数据库的操作,例如,修改用户个人信息,修改日志信息,修改管理员账号密码等。

人脸识别算法作为人脸识别的核心,负责该门禁兼考勤系统的人脸识别功能的实现,关系人脸识别的性能。而数据库负责存储用户个人信息以及人脸信息,日志信息和管理员的账号、密码。

三、系统的技术难点

在完成整个门禁兼考勤系统中,碰到以下诸多技术难点:

1)人脸识别的实现。人脸识别的整个过程略显复杂需要从五个步骤完成,分别是人脸检测、人脸关键点检测、人脸规整、人脸特征提取、人脸识别[3]。前期采用python+opencv每个人采集100张人脸图像,训练生成.yml文件,再进行人脸识别,而后发现该方法实现人脸识别的精度不高。因此,人脸识别的实现,既要综合整个完成的步骤,又要提高人脸识别的精度。

2)搭建python+tkinter的软件操作平台。搭建该软件系统需要明确整个软件界面的布局,各个模块功能之间的交互以及减少Bug的出现。其中,如何利用pyhton建立数据库,访问数据库,如何进行数据库与前台的交互,如何搭建网页端的管理平台都是该系统的难点。因此,门禁兼考勤系统的开发需要对python语言以及相关库的应用有一定深入的学习。

3)用python操作AS608指纹模块。网络上提供的都是关于C语言操作AS608指纹模块,如何用python使用AS608指纹模块,必须深入了解该模块的指令应答与数据交换,各个功能对应的指令包。

希望有共同需求的,可以来共同探讨,后续将说明该系统的软件设计、硬件设计等。

pythonopencv人脸识别考勤_Python+Opencv+Tkinter指纹识别与人脸识别的门禁兼考勤(一)...相关推荐

  1. opencv python考勤_Python+Opencv+Tkinter指纹识别与人脸识别的门禁兼考勤(二)

    一. 门禁考勤系统硬件设计 1 .硬件总体结构 PC端的intel处理器作为硬件平台的核心,是衡量系统能否达到标准的主要标志.本文结合考勤系统,采用intel i5处理器的PC与51单片机共同构建了门 ...

  2. python人脸识别门禁_Python+Opencv+Tkinter指纹识别与人脸识别的门禁兼考勤(一)

    一.设计目标:旨在PC端上搭建一款具有指纹识别与人脸识别功能的门禁兼考勤系统.该系统同时具备普通用户模式.管理员模式与超级管理员模式,下面具体介绍每种模式下的功能. 1)普通用户模式 该模式可分为收集 ...

  3. python人脸识别门禁_Python+Opencv+Tkinter指纹识别与人脸识别的门禁兼考勤(二)

    一. 门禁考勤系统硬件设计 1 .硬件总体结构 PC端的intel处理器作为硬件平台的核心,是衡量系统能否达到标准的主要标志.本文结合考勤系统,采用intel i5处理器的PC与51单片机共同构建了门 ...

  4. c++ opencv添加logo_Python+Opencv+Tkinter指纹识别与人脸识别的门禁兼考勤(二)

    一. 门禁考勤系统硬件设计 1 .硬件总体结构 PC端的intel处理器作为硬件平台的核心,是衡量系统能否达到标准的主要标志.本文结合考勤系统,采用intel i5处理器的PC与51单片机共同构建了门 ...

  5. 手机模拟加密门禁卡 考勤卡 会员卡 停车卡 电梯卡等教程-不用电脑,无需root

    手机模拟加密门禁卡 考勤卡 会员卡 停车卡 电梯卡等教程-不用电脑,无需root 目标:将门禁卡.考勤卡.会员卡.停车卡.电梯卡等等各种卡模拟进手机里,模拟后可用手机代替刷卡,无需root,不用电脑 ...

  6. python3+opencv+tkinter开发简单的人脸识别小程序

    学校里有门图像处理的课程最终需要提交一个图像处理系统, 正好之前对于opencv有些了解,就简单的写一个人脸识别小程序吧 效果图如下 笔者IDE使用Pycharm,GUI编程直接使用内置的tkinte ...

  7. python人脸照片分类_Python OpenCV 人脸识别(一)

    前面介绍了Numpy模块,下面再介绍一个OpenCV模块,就基于这两个库看一下当下很火的人工智能是如何实现的,我们介绍几个:人脸识别(当下非常火的).音视频操作等等.今天先介绍一下静态图片的人脸识别, ...

  8. 人脸识别门禁、考勤、访客与一体的解决方案

    人脸识别考勤机,是根据人的脸部特征信息进行身份辨认的一种生物辨认技能.用摄像机或摄像头采集含有人脸的图画或视频流,并主动在图画中检测和盯梢人脸,进而对检测到的人脸进行脸部辨认的一系列相关技能.跟着科技 ...

  9. opencv 训练人脸对比_【项目案例python与人脸识别】基于OpenCV开源计算机视觉库的人脸识别之python实现...

    " 本项目是一个基于OpenCV开源库使用python语言程序实现人脸检测的项目,该项目将从[项目基础知识](即人脸识别的基本原理).[项目实践](人脸识别所需要的具体步骤及其python程 ...

最新文章

  1. 选型必看:RabbitMQ 七战 Kafka,差异立现
  2. Spring4整合Hibernate4出现的错误的解决
  3. 每天一道LeetCode-----找到所有被某个字符包围的另一个字符
  4. python发红包问题_一个关于红包的问题引发的python算法初体验
  5. Kaggle : Using a Convolutional Neural Network for classifying Cats vs Dogs
  6. 监听APP升级广播处理
  7. Qt工作笔记-QML中TextInput设置默认值,以及使用正则表达式只能输入整数
  8. lucene的Query类型
  9. [leetcode]5179. 将二叉搜索树变平衡
  10. Bzoj4556 [Tjoi2016Heoi2016]字符串
  11. 秒杀系统的核心点都在这里,快来取
  12. access数据库教程
  13. Linux配置开机自动挂载WindowsNTFS硬盘分区
  14. 2021-05-20
  15. (大数据应用考察)全国水资源分析可视化
  16. 在n*n方阵里填入1,2,...n*n,要求填成蛇形
  17. 一文读懂微软转型秘诀
  18. 即将毕业大学生的第一个五年计划
  19. “80后”全国模范检察官白静:传递青年干警正能量
  20. 免费邮箱客户端设置方法大全

热门文章

  1. matlab中使用simulink标准化输出图片
  2. PHP学习笔记:环境变量
  3. 谷歌翻译接口使用(android为例)
  4. 速记计算机键盘,中文速记电脑编码方法及输入键盘技术
  5. 服务器 响应400,加载资源失败:服务器响应的状态为400:spring mvc
  6. 学而后思,方能发展;思而立行,终将卓越
  7. 一条SQL语句查询所有任务分数都在60以上的用户名字
  8. File.separator是什么?
  9. (四)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 安装Tomcat和JDK 以及 Nginx与Tomcat整合
  10. 潜在狄利克雷分配(LDA)(latent Dirichlet allocation)