系列文章

手把手教你:人脸识别考勤系统


本文为系列第一篇

文章目录

  • 系列文章
  • 项目简介
  • 一、项目展示
  • 二、环境需求
    • 环境安装实例
  • 三、功能模块介绍
    • 1.人脸库图像
    • 2.构建人脸库
    • 3.启动人脸识别功能
  • 完整代码地址

项目简介

本文主要介绍如何使用python搭建:一个基于FaceNet(TensorFlow版)和PyQt5的人脸识别的考勤系统。

博主也参考过网上其他博主介绍FaceNet的文章,但大多是理论大于方法。很多同学肯定对原理不需要过多了解,只需要搭建出一个识别系统即可。

本文只会告诉你如何快速搭建一个人脸识别的考勤系统并运行,原理的东西可以参考其他博主

也正是因为我发现网上大多的帖子只是针对原理进行介绍,功能实现的相对很少。

如果您有以上想法,那就找对地方了!


提示:以下是本篇文章正文内容

一、项目展示



项目演示可以参考我在B站发的视频
手把手教你搭建:人脸识别考勤系统

二、环境需求

因为本项目基于TensorFlow因此需要以下环境:

  • tensorflow==1.7
  • scipy
  • scikit-learn
  • opencv-python
  • h5py
  • matplotlib
  • Pillow
  • requests
  • psutil
  • pyqt5

环境安装实例

环境都可以通过pip进行安装。如果只是想要功能跑起来,这边建议tensorflow安装cpu版的。

如果没使用过pycharm通过pip安装包的同学可以参考如下:


点开“终端”,然后通过pip进行安装tensorflow,其他环境包也可以通过上面的方法安装。

三、功能模块介绍

1.人脸库图像

人脸库图像放在项目中:data/my_data/“人名”/“图片名”.jpg。

我这里只用了4个明星的人脸图像,可以根据你自己需要识别的人脸构建你自己的人脸库。

如下:

2.构建人脸库

将图片放好后

执行:src/align/align_dataset_mtcnn.py文件
和:src/classifier.py文件


执行上述2个文件完成后。
在:data/my_data_160文件夹中会生成自己的人脸库图像。
在:20170512-110547/my_classifier.pkl中会生成自己的人脸库图像分类。

3.启动人脸识别功能

确保上述文件执行完成并成功后。

执行:contributed/my_view.py,即可启动上面的人脸识别界面。

下面附一部分界面功能代码:

class GUI(QtWidgets.QWidget):def __init__(self):# 初始化————init__super().__init__()# 实例化人脸识别线程self.thread = Thread()self.initGUI()# 定义消息链接self.thread.signal.connect(self.show_success_box)def initGUI(self):# 设置窗口大小self.resize(500, 600)# 设置窗口位置(下面配置的是居于屏幕中间)qr = self.frameGeometry()cp = QtWidgets.QDesktopWidget().availableGeometry().center()qr.moveCenter(cp)self.move(qr.topLeft())# 设置窗口标题和图标self.setWindowTitle('人脸识别门禁系统')self.setWindowIcon(QtGui.QIcon('../data/images/icon.png'))# 设置窗口提示self.setToolTip('窗口提示')# 设置label信息self.label = QtWidgets.QLabel(self)self.label.setGeometry(QtCore.QRect(150, 50, 200, 100))self.label.setText('请点击下方按钮进行人脸认证!')# 设置自动换行self.label.setWordWrap(True)# 设置文字居中self.label.setAlignment(QtCore.Qt.AlignCenter)self.label.setObjectName('label')self.label.setStyleSheet("font: 75 18pt \"微软雅黑\";""color: rgb(0, 0, 0);")# 设置label提示self.label.setToolTip('认证')'''设置打卡按钮'''self.btn = QtWidgets.QPushButton('开始认证!', self)self.btn.resize(200, 180)self.btn.move(150, 150)# 设置按钮样式self.btn.setStyleSheet("background-color: rgb(130, 60, 140);""border-color: rgb(255, 255, 255);""font: 75 24pt \"微软雅黑\";""color: rgb(255, 255, 255);")# 设置按钮提示self.btn.setToolTip('按钮提示')# 点击鼠标触发事件self.btn.clicked.connect(self.clickbtn)'''设置统计查看按钮'''self.btn_checked = QtWidgets.QPushButton('查看通过信息', self)self.btn_checked.resize(200, 50)self.btn_checked.move(150, 380)# 设置按钮样式self.btn_checked.setStyleSheet("background-color: rgb(130, 60, 140);""border-color: rgb(255, 255, 255);""font: 75 18pt \"微软雅黑\";""color: rgb(255, 255, 255);")# 设置按钮提示self.btn_checked.setToolTip('按钮提示')# 点击鼠标触发事件self.btn_checked.clicked.connect(self.checked_show)'''设置统计查看按钮'''self.btn_file = QtWidgets.QPushButton('查看通过文件', self)self.btn_file.resize(200, 50)self.btn_file.move(150, 480)# 设置按钮样式self.btn_file.setStyleSheet("background-color: rgb(130, 60, 140);""border-color: rgb(255, 255, 255);""font: 75 18pt \"微软雅黑\";""color: rgb(255, 255, 255);")# 设置按钮提示self.btn_file.setToolTip('按钮提示')# 点击鼠标触发事件self.btn_file.clicked.connect(self.csv_show)# 展示窗口self.show()

因为项目中启动人脸识别存在一定延迟,所以项目中还使用了多线程。

完整代码地址

感兴趣的同学可以下载完整代码,使用过程中如遇到任何问题可以私信我,我都会一一解答。

【代码分享】手把手教你:人脸识别考勤系统

手把手教你:人脸识别考勤系统相关推荐

  1. 基于JSP/SERVLET实现的人脸识别考勤系统

    人脸识别考勤系统使用说明书 此系统是人脸识别考勤系统的后台管理系统,考勤数据从人脸识别机器上获取,自动识别员工信息记录考勤.系统基于JSP/SERVLET来开发实现,开发工具采用IDEA或ECLIPS ...

  2. 签到方式出“新招”!人脸识别考勤系统

    生物识别技术的发展不仅改变了人们的生活模式,也深刻影响了企业考勤管理模式.为保证员工出勤率,企业方面屡出奇招,签到方式不断推陈出新,从IC打卡到指纹打卡.微信打卡,再到人脸识别打卡,紧跟科技步伐,一步 ...

  3. (开源)简单的人脸识别考勤系统(python+opencv+dilb)

    简单的毕业设计,python+opencv+dlib,注意配置环境,打开工程文件直接运行.演示视频前往B站(开源)人脸识别签到系统_哔哩哔哩_bilibili 源文件及使用说明百度网盘下载链接: ht ...

  4. python opencv人脸识别考勤系统的完整源码

    这篇文章主要介绍了python opencv人脸识别考勤系统的完整源码,本文给大家介绍的非常详细,希望对大家的学习或工作具有一定的参考借鉴价值. 代码如下: import wx import wx.g ...

  5. 基于Javaweb实现的人脸识别考勤系统

    人脸识别考勤系统使用说明书 此系统是人脸识别考勤系统的后台管理系统,考勤数据从人脸识别机器上获取,自动识别员工信息记录考勤.系统基于JSP/SERVLET 来开发实现,开发工具采用IDEA 或ECLI ...

  6. 基于OpenCV的人脸识别考勤系统

    考勤系统设计 学生上课考勤系统最初的方式是采用的人工纸质点名,目前仍旧有一部分学校依旧采用此种方法点名,这种方法也一直是被认为最有效的签到点名方式.但由于课程繁多加上学生人数众多, 代替点名现象普遍存 ...

  7. 【附源码】计算机毕业设计SSM人脸识别考勤系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  8. 人脸识别考勤系统解决方案

    人脸识别考勤系统解决方案 系统概述严格规范的员工考勤管理是现代企事业单位提高管理效益的重要保证,而传统的以打卡.刷卡为代表的考勤产品,存在着替代打卡,效率低下,不易统计,管理和使用维护成本高等弊端.指 ...

  9. 【附源码】Python计算机毕业设计人脸识别考勤系统

    项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs. 项目技术: dj ...

  10. 人脸识别考勤系统有哪些功能?嘉上物联全都有

    在众多的人脸识别产品中,嘉上物联的人脸识别考勤系统脱颖而出,我们一起来看看他究竟有哪些过人之处吧. 嘉上物联人脸识别考勤系统,是结合多年的人工智能及物联网研发经验,为企业打造的一个灵活性及扩展性强的智 ...

最新文章

  1. IDEA构建一个mybatis项目
  2. SSH生成rsa密钥对
  3. apache 下实现防盗链
  4. hbase windows安装
  5. 从hello server开始,到hello client结束
  6. Ubuntu 17.10安装phpMyAdmin数据库管理工具
  7. 1036 Boys vs Girls (25 分)_27行代码AC
  8. RxJs map operator 工作原理分析
  9. python画图比赛_Python选修课第二届Turtle绘图大赛
  10. .net发送邮件outlook中文乱码
  11. python 文件相似度分析_使用Python做人群相似度分析
  12. linux 魔术分区,Parted Magic-Linux 中的分区魔术师
  13. shadow-cljs: JavaScript 依赖的实践
  14. CF1157D N Problems During K Days(简单构造)
  15. Photoshop cc 2019安装与破解(附资源)
  16. 搜狗微信文章爬取(下)
  17. 雷达原理(一):雷达波形
  18. 【手把手教你】使用QuantLib进行债券估值和期权定价分析
  19. oracle remap语句格式,impdp 中的remap方式
  20. 免费领百度网盘会员,12月31日截止

热门文章

  1. JDK动态代理原理解析
  2. 生信技能树课程记录笔记(六)20220530
  3. 生信技能树linux虚拟机,【生信技能树】Linux练习
  4. 数据通信与网络:CH22 Delivery, Fowarding and Routing
  5. Python官方中文文档网址和Python标准库官方中文文档网址
  6. 单片机项目:音乐喷泉
  7. 文献阅读(19)ISSCC 2020
  8. 好汇阁外汇MT4-API多账户跟单交易管理系统介绍
  9. vm8.0下安装mac
  10. 深度置信网络(DBM)