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

article/2025/10/8 5:47:31

系列文章

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


本文为系列第一篇

文章目录

  • 系列文章
  • 项目简介
  • 一、项目展示
  • 二、环境需求
    • 环境安装实例
  • 三、功能模块介绍
    • 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()

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

完整代码地址

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

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


http://chatgpt.dhexx.cn/article/pEWbinl5.shtml

相关文章

LabVIEW入门与实战开发32例

链接:https://pan.baidu.com/s/1FqRL1loyDS-YT4wzIdRg2A 提取码:xe7y

LabView学习

一、基础篇 1、Labview是一种程序开发环境,由美国国家仪器(NI)公司研制开发。 2、NI-VISA(Virtual Instrument Software Architec-ture,以下简称为“VISA”)是美国国家仪器NI(NationalInstrument)公司开发的一种用来与各种仪器总…

基于实践的LabVIEW零基础入门视频教程

原文地址::http://blog.eeecontrol.com/LabVIEW1/ 《基于实践的LabVIEW零基础入门视频教程》 资料不在多,而在于精,资料太多,反而会迷失方向,学习最怕的就是打乱仗,选择对的方向,比努力更重要,这也是本人的亲身经历!《基于实践的LabVIEW零基础入门视频教程》方向明确…

Labview简介

公司:美国国家仪器(成立于1976年) 初始发布时间:1986年 底层语言:C、C 操作系统:windows、macOS、linux 运用场景:数据采集、仪器控制、自动化、分析与信号处理、工业控制、嵌入式和系统设计…

LabVIEW学习笔记(三)——程序结构

前言: 任何计算机语言都离不开程序结构,LabVIEW 作为一种图形化的高级程序幵发语言也不例外。LabVIEW 中的程序结构包括if-else循环,while循环结构,使能结构,公式节点和数学脚本节点等, 因此通过LabVIEW可以…

LabVIEW使用入门指导

LabVIEW是一种图像化设计工具,它的“代码”格式为*.vi(Virtual Instrument),分为前端面板和后端面板,前端面板又可以称之为顶层设计,是用户界面,后端设计师代码以及元器件试图。 前端面板 前端面板中,用户…

labview精华资料集合光盘

最后的详细内容如下: 引用 |_Windows颜色拾取器 |_ActiveX举例_写Excel |_打开其它文件或者程序 |_当前文件夹查找指定文件 |_动画显示(奔跑的马) |_ActiveX举例_演示PPT |_获取当前程序路径及名称并判断状态是EXE等 |_简单暂停 |_前面板对象…

学习labview

公司:美国国家仪器(成立于1976年) 初始发布时间:1986年 底层语言:C、C 操作系统:windows、macOS、linux 运用场景:数据采集、仪器控制、自动化、分析与信号处理、工业控制、嵌入式和系统设计…

LabVIEW入门学习经验分享

在自动化行业,你如果想开发功能强大且开发周期不要太长的上位机软件。首先考虑labview,它可以调用c、matlab等编程语言的库文件,实现跨语言编程,从而满足你更复杂的控制,这是它的优势,国内外很多的航空航天…

labview入门到出家5(进阶篇)——程序调试以及labview函数库的运用

跟了前面几章的操作流程,相信大家对labview有了一定的认识。其实只要了解了labview的编程思路,再熟悉地运用各个变量,函数以及属性,那么我们就可以打开labview的大门了。跟其他编程语言一样,好的编程思维再加上一个好用…

Labview2018学习之三:LabVIEW编程

LabVIEW是图形化编辑软件,使用LabVIEW编程的基本流程的步骤是: 1)VI的创建; 2)编辑VI,运行和调试; 程序框图:框图是实际可执行的代码,通过将完成特定功能的对象连接在一…

【LabVIEW】LabVIEW练习

产生100个1-99随机整数数,求其和以及平均值 用for循环产生4行100列的二维数组,数组成员如下: 1,2,3…100; 100,99,98…1; 6,7,8…105; 105,104,103…6; 从这个数组中提取2行50列的二维数组,数组成员如下: 50,49,48…1; 56,57,58 (105) 将这2个数组用数组显示件显示在前面板. …

学习LabVIEW应看的几本书

学习LabVIEW应看的几本书 前几天,看了“花开不谢”的博客,才知道NI在中国落户已经十年了,推算过来大概也就是1998年前后在中国落的户,那时中国的改革开放已经二十多年。NI在中国推广所遇到的最大难题,我猜想应该语言是…

专题一:Labview表格控件 及 应用(一)

专题一:Labview表格控件 及 应用(一) 最近一段时间,做试验台上位机编程,老是用到表格控件,这几天抽时间专门写一个表格控件的专题。有用到的朋友可以参考一下。 总结教训:尽量把文章控制在5分钟…

如何系统学习LabVIEW?

目录 1、LabVIEW开发技巧 2、LabVIEW仪器控制 3、LabVIEW和单片机(Arduino) 4、LabVIEW工业图像处理与机器视觉实战 从2021年4月至2022年6月,1年零2个月的时间,终于把LabVIEW工控系列文章更新完了~ LabVIEW工控系列文章包含4部…

专题一:Labview表格控件 及 应用(二)

标题专题一:Labview表格控件 及 应用(二) 最近一段时间,做试验台上位机编程,老是用到表格控件,这几天抽时间专门写一个表格控件的专题。有用到的朋友可以参考一下。上一讲介绍了表格控件,认识了…

Labview(1)使用小技巧

1.按这个连续运行的按钮即使单个控件就可以使程序运行起来,不用循环; 2.注意这里学到了条件结构里的条件是一点都不可以错,加个空格也算字符,这个要注意,否则会出错; 3.选中某个控件,按住Ctrl键…

labview入门

labview为图形化编程,一个文件(VI)分为前面板和程序框图。前面板即为人机交互页面,程序框图则是实现的程序。 前面板认识 在灰色部分右键显示控件模块 查看—》工具悬版 控件上右键可以开启快捷菜单设置。 程序框图 包括&a…

LabVIEW 使用入门(简明笔记)

目录 实用工具导航窗口即时帮助窗口VI层次结构 新建项目创建VI 编辑前面板工具选板控制选板 编辑程序框图(背面板)函数选板程序框图编辑字符串、变量程序结构顺序结构For循环While循环条件结构(类似IF语句) 总结 实用工具 导航窗…

LabVIEW基础(1)

LabVIEW是一种程序开发环境,是NI自主研发的编程语言,与其他计算机语言不同的是,LabVIEW的程序是框图的形式,而不是英文代码的形式,主要应用在工业和仪器控制仿真、测试测量等领域。 这里以LabVIEW2020为例&#xff0c…