大数据毕业设计:Python人脸识别门禁系统 深度学习 Dlib模块 Pyqt5界面 数据库(源码)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏)

毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总

🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅

1、项目介绍

技术栈:
Python语言、dlib人脸识别模块、OpenCV图像处理库、Pyqt5框架界面设计、sqlite3数据库

Pycharm + Python3 + PyQt5 + OpenCV + 人脸特征模型

2、项目界面

(1)人脸录入

在这里插入图片描述

(2)人脸识别

在这里插入图片描述

(3)数据库管理

在这里插入图片描述

(4)识别记录

在这里插入图片描述

(5)识别记录管理

在这里插入图片描述

3、项目说明

Python语言、dlib人脸识别模块、OpenCV图像处理库、Pyqt5框架界面设计、sqlite3数据库

本系统使用dlib作为人脸识别工具,dlib提供一个方法可将人脸图片数据映射到128维度的空间向量,如果两张图片来源于同一个人,那么两个图片所映射的空间向量距离就很近,否则就会很远。因此,可以通过提取图片并映射到128维空间向量再度量它们的欧氏距离是否足够小来判定是否为同一个人。

方法实现、实现步骤
1、实例化人脸检测模型、人脸关键点检测模型、人脸识别模型
2、电脑摄像头设备加载一对图片
3、分别获取图片中的人脸图片所映射的空间向量,即人脸特征值
4、计算特征向量欧氏距离,根据阈值判断是否为同一个人

开发技术环境: Pycharm + Python3 + PyQt5 + OpenCV + 人脸特征模型
本系统先调取opencv摄像头进行人脸信息拍照然后识别人脸特征数据,并且录入自己的学号姓名,将识别的人脸特征向量信息保存到人脸数据库当中产生数据记录,并且可以按照学号搜索人脸数据库当中的学生信息,可以修改学生的姓名以及学号等,学生录入进自己的人脸信息后可以进行人脸识别,人脸识别主要是调用opencv打开摄像头拍摄自己的人脸然后调取人脸模型进行识别,将识别到的人脸特征向量和人脸库中的特征向量匹配并计算出相似度,如果匹配相似度太低则提示不存在请您先录入人脸信息,匹配度达到百分七十以及八十以上则匹配出数据库里面对应的学生考勤,并且形成考勤识别记录,这个考勤记录也是可以搜索修改和删除的。

4、核心代码


from view.checkinrecord  import*
from view.checkinmodify import *
from PyQt5.QtWidgets import QWidget,QMessageBox,QAbstractItemView,QTableWidgetItem,QLabel,QDialog
from model.connectsqlite import ConnectSqlite
import model.configuration
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class CheckInRecord(QWidget, Ui_CheckInRecordForm):

    def __init__(self, parent=None):
        super(CheckInRecord, self).__init__(parent)
        self.setupUi(self)
        # sqlite3 connect
        self.dbcon = ConnectSqlite(model.configuration.DATABASE_PATH)
        self.checkin_data = []
        self.pushButton_search.clicked.connect(self.search)
        self.pushButton_modify.clicked.connect(self.modify)
        self.pushButton_delete.clicked.connect(self.delete)
        self.make_table()

    #search
    def search(self):
        print("search")
        search_str = self.lineEdit_search.text()
        # 如果搜索框有数据
        row = 0
        search_result = None
        if search_str != '':
            # 遍历列表并查找
            for i in self.checkin_data:
                if search_str.lower() in str(i[1]).lower():
                    search_result = str(i[1])
                    # 设置目标行
                    self.tableWidget.setCurrentIndex(self.tableWidget.model().index(row,1))
                if search_str.lower() in str(i[0]).lower():
                    search_result = str(i[0])
                    # 设置目标行
                    self.tableWidget.setCurrentIndex(self.tableWidget.model().index(row, 0))
                if search_str.lower() in str(i[2]).lower():
                    search_result = str(i[2])
                    # 设置目标行
                    self.tableWidget.setCurrentIndex(self.tableWidget.model().index(row, 2))
                row += 1
            if search_result == 0:
                reply = QMessageBox.warning(self, 'Error', 'No relevant information was found!',
                                            QMessageBox.Yes, QMessageBox.Yes)
        # 若搜索框没有数据,对话框提示
        else:
            reply = QMessageBox.warning(self, 'Error', 'Please input the search keywords',
                                        QMessageBox.Yes, QMessageBox.Yes)


5、源码获取

🍅由于篇幅限制,获取完整文章或源码、代做项目的,查看我的【用户名】、【专栏名称】、【顶部选题链接】就可以找到我啦🍅

感兴趣的可以先收藏起来,点赞、关注不迷路,下方查看👇🏻获取联系方式👇🏻

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-28 22:36:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-28 22:36:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-28 22:36:01       82 阅读
  4. Python语言-面向对象

    2024-01-28 22:36:01       91 阅读

热门阅读

  1. uniapp微信小程序-前端设计模式学习(中)

    2024-01-28 22:36:01       50 阅读
  2. 南门的树(数组)★★★ c++版本 10分

    2024-01-28 22:36:01       56 阅读
  3. git常见命令

    2024-01-28 22:36:01       45 阅读
  4. 计算机网络(第六版)复习提纲13

    2024-01-28 22:36:01       45 阅读
  5. 在排序数组中查找元素的第一个和最后一个位置

    2024-01-28 22:36:01       52 阅读
  6. 【MyBatis框架】第六章 PageHelper

    2024-01-28 22:36:01       55 阅读