当前位置: 首页 > news >正文

基于Python Django的人脸识别上课考勤系统(附源码,部署)

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取源码联系🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

Python项目实战《100套》

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及文档编写等相关问题都可以给我留言咨询,希望帮助更多的人

引言

Hello,大家好,这里是程序员徐师兄!今天带大家来搞点硬核的东西——基于 Python Django 开发一个人脸识别考勤系统。这个系统主要应用于学校课堂或者公司签到场景,利用 OpenCV 和 dlib 进行人脸检测,再结合 Django + MySQL 实现考勤数据管理。

咱们这篇文章会从 环境搭建、数据库设计、人脸识别、考勤逻辑、前端展示 这些方面详细拆解,让你一次学个透!

基于 Python Django的人脸识别上课考勤系统

技术选型

咱们这个项目主要使用以下技术栈:

  • 后端:Python 3.8 + Django 4.x
  • 人脸识别:OpenCV + dlib
  • 数据库:MySQL
  • 前端:LayUI + jQuery
  • 硬件:USB 摄像头

环境搭建

  1. 安装 Python(Windows / Mac / Linux 均可)
  2. 安装依赖库
pip install django opencv-python dlib mysqlclient
  1. 创建 Django 项目
django-admin startproject attendance_system
cd attendance_system
python manage.py startapp face_attendance
  1. 配置 MySQL 连接settings.py
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'attendance_db','USER': 'root','PASSWORD': '123456','HOST': 'localhost','PORT': '3306',}
}

数据库设计

系统预览

from django.db import modelsclass Student(models.Model):name = models.CharField(max_length=100)face_encoding = models.BinaryField()  # 存储人脸特征class AttendanceRecord(models.Model):student = models.ForeignKey(Student, on_delete=models.CASCADE)check_in_time = models.DateTimeField(auto_now_add=True)

人脸识别模块

import dlib
import cv2# 初始化人脸检测器
face_detector = dlib.get_frontal_face_detector()
face_recognition_model = dlib.face_recognition_model_v1("dlib_face_recognition_resnet_model_v1.dat")cap = cv2.VideoCapture(0)while True:ret, frame = cap.read()if not ret:breakfaces = face_detector(frame, 1)for face in faces:face_encoding = face_recognition_model.compute_face_descriptor(frame, face)# 在数据库中匹配该 face_encodingcv2.imshow("Face Recognition", frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()
cv2.destroyAllWindows()

考勤逻辑

from .models import Student, AttendanceRecord
from datetime import datetimedef record_attendance(student_id):student = Student.objects.get(id=student_id)record = AttendanceRecord(student=student, check_in_time=datetime.now())record.save()

前端界面

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>考勤系统</title><link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.7/css/layui.css">
</head>
<body><table class="layui-hide" id="attendanceTable" lay-filter="attendanceTable"></table><script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script><script src="https://cdn.staticfile.org/layui/2.5.7/layui.js"></script><script>layui.use('table', function(){var table = layui.table;table.render({elem: '#attendanceTable',url: '/attendance/data/',cols: [[{field: 'name', title: '姓名'},{field: 'check_in_time', title: '签到时间'}]]});});</script>
</body>
</html>

结语

这样,一个完整的 基于 Python Django 的人脸识别考勤系统 就完成了!

你学到了什么?

  • 如何使用 OpenCV + dlib 进行人脸识别
  • 如何用 Django 设计数据库和实现考勤逻辑
  • 如何用 LayUI 搭建简洁高效的前端界面

源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

Python项目实战《100套》

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及文档编写等相关问题都可以给我留言咨询,希望帮助更多的人

相关文章:

基于Python Django的人脸识别上课考勤系统(附源码,部署)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

神经网络之RNN和LSTM(基于pytorch-api)

1.RNN 1.1简介 RNN用于处理序列数据。在传统的神经网络模型中&#xff0c;是从输入层到隐含层再到输出层&#xff0c;层与层之间是全连接的&#xff0c;每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如&#xff0c;你要预测句子的下一个单词是…...

leetcode第39题组合总和

原题出于leetcode第39题https://leetcode.cn/problems/combination-sum/description/题目如下&#xff1a; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以…...

【UI设计——视频播放界面分享】

视频播放界面设计分享 在本次设计分享中&#xff0c;带来一个视频播放界面的设计作品。 此界面采用了简洁直观的布局。顶部是导航栏&#xff0c;包含主页、播放、搜索框等常见功能&#xff0c;方便用户快速找到所需操作。搜索框旁输入 “萌宠成长记”&#xff0c;体现了对特定内…...

动态规划刷题

文章目录 动态规划三步问题题目解析代码 动态规划 1. 状态表示&#xff1a;dp[i]&#xff0c;表示dp表中i下标位置的值 2. 状态转移方程&#xff1a;以i位置位置的状态&#xff0c;最近的一步来划分问题&#xff0c;比如可以将状态拆分成前状态来表示现状态&#xff0c;dp[i] …...

stm32week5

stm32学习 二.外设 14.串口发送数据包 数据包的定义&#xff1a; HEX数据包(以0xFF为包头&#xff0c;0xFE为包尾&#xff0c;实际上可自定义)&#xff1a; 固定包长&#xff0c;含包头包尾可变包长&#xff0c;含包头包尾 对于数据中不会出现包头包尾的数据可以用可变包长…...

fastapi中的patch请求

目录 示例测试使用 curl 访问&#xff1a;使用 requests 访问&#xff1a;预期返回&#xff1a; 浏览器访问 示例 下面是一个使用 app.patch("") 的 FastAPI 示例&#xff0c;该示例实现了一个简单的用户信息更新 API。我们使用 pydantic 定义数据模型&#xff0c;并…...

系统架构设计师—计算机基础篇—计算机网络

文章目录 网络互联模型网络协议与标准应用层协议FTP协议TFTP协议 HTTP协议HTTPS协议 DHCP动态主机配置协议DNS协议迭代查询递归查询 传输层协议网络层协议IPV4协议IPV6协议IPV6数据报的目的地址IPV4到IPV6的过渡技术 网络设计分层设计接入层汇聚层核心层 网络布线综合布线系统工…...

MATLAB中asManyOfPattern函数用法

目录 语法 说明 示例 匹配尽可能多的模式实例 指定要匹配的最小模式数 指定要匹配的最小和最大模式数 asManyOfPattern函数的功能是模式匹配次数尽可能多。 语法 newpat asManyOfPattern(pat) newpat asManyOfPattern(pat,minPattern) newpat asManyOfPattern(pat,m…...

Kafka面试题及原理

1. 消息可靠性&#xff08;不丢失&#xff09; 使用Kafka在消息的收发过程都会出现消息丢失&#xff0c;Kafka分别给出了解决方案 生产者发送消息到Brocker丢失消息在Brocker中存储丢失消费者从Brocker 幂等方案&#xff1a;【分布式锁、数据库锁&#xff08;悲观锁、乐观锁…...

Grok 3 AI 角色扮演提示词 化身顶级设计师

Grok 3&#xff1a;设计下一个大型软件项目的终极工具 &#x1f525; Grok 3 是一个革命性的工具&#xff0c;能够在短短 一小时 内&#xff0c;帮助你完成软件项目设计中最关键的步骤。无论是创建用户画像、设计网站地图&#xff0c;还是编写用户故事及验收标准&#xff0c;G…...

从零开始设计一个完整的网站:HTML、CSS、PHP、MySQL 和 JavaScript 实战教程

前言 本文将从实战角度出发&#xff0c;带你一步步设计一个完整的网站。我们将从 静态网页 开始&#xff0c;然后加入 动态功能&#xff08;使用 PHP&#xff09;&#xff0c;连接 数据库&#xff0c;最后加入 JavaScript 实现交互功能。通过这个教程&#xff0c;你将掌握一个…...

CSS 对齐:深入理解与技巧实践

CSS 对齐:深入理解与技巧实践 引言 在网页设计中,元素的对齐是至关重要的。一个页面中元素的对齐方式直接影响到页面的美观度和用户体验。CSS 提供了丰富的对齐属性,使得开发者可以轻松实现各种对齐效果。本文将深入探讨 CSS 对齐的原理、方法和技巧,帮助开发者更好地掌握…...

oracle游标为什么没有共享,统计一下原因

-- Script Code为什么没共享 define sql_id bs391f0yq5tpw;set serveroutput onDECLAREv_count number;v_sql varchar2(500);v_sql_id varchar2(30) : &sql_id; BEGINv_sql_id : lower(v_sql_id);dbms_output.put_line(chr(13)||chr(10));dbms_output.put_line(sql_id: ||…...

IDEA中.gitignore未忽略指定文件的问题排查与解决

IDEA 中.gitignore 未忽略.env 文件的问题排查与解决 在使用 IntelliJ IDEA 进行项目开发时,合理利用.gitignore文件来管理版本控制是非常重要的。它能帮助我们排除一些不需要纳入版本管理的文件,比如包含敏感信息的.env文件。然而,有时我们会遇到一种情况:明明已经将.env…...

通往 AI 之路:Python 机器学习入门-语法基础

第一章 Python 语法基础 Python 是一种简单易学的编程语言&#xff0c;广泛用于数据分析、机器学习和人工智能领域。在学习机器学习之前&#xff0c;我们需要先掌握 Python 的基本语法。本章将介绍 Python 的变量与数据类型、条件语句、循环、函数以及文件操作&#xff0c;帮助…...

形象生动讲解Linux 虚拟化 I/O

用现实生活的比喻和简单例子来解释 Linux 虚拟化 I/O&#xff0c;就像给朋友讲故事一样。 虚拟化 I/O 要解决什么问题&#xff1f; 想象你有一栋大房子&#xff08;物理服务器&#xff09;&#xff0c;想把它分割成多个小公寓&#xff08;虚拟机&#xff09;出租。每个租客&…...

6. Nginx 动静分离配置案例(附有详细说明+配图)

6. Nginx 动静分离配置案例(附有详细说明配图) 文章目录 6. Nginx 动静分离配置案例(附有详细说明配图)1. 动静分离概述说明2. 先使用传统方式实现&#xff0c;不使用 Nginx3. 使用上 Nginx 实现动静分离优化步骤4. 最后&#xff1a; 1. 动静分离概述说明 什么是动静分离&…...

数据集笔记:新加坡停车费

data.gov.sg 该数据集包含 新加坡各停车场的停车费&#xff0c;具体信息包括&#xff1a; 停车场名称&#xff08;Carpark&#xff09;&#xff1a;如 Toa Payoh Lorong 8、Ang Mo Kio Hub、Bras Basah Complex 等。停车区域类别&#xff08;Category&#xff09;&#xff1a…...

SQL经典题型

查询不在表里的数据&#xff0c;一张学生表&#xff0c;一张学生的选课表&#xff0c;要求查出没有选课的学生&#xff1f; select students.student_name from students left join course_selection on students.student_idcourse_selection.student_id where course_selecti…...

保姆级教程:用vsomeip实现一个简单的车内服务发现与通信(附C++代码)

车载通信实战&#xff1a;基于vsomeip的服务发现与消息交互全流程解析 在智能座舱与自动驾驶技术快速迭代的今天&#xff0c;车载电子控制单元&#xff08;ECU&#xff09;间的可靠通信成为系统设计的核心挑战。SOME/IP作为汽车电子领域广泛采用的通信协议&#xff0c;其开源实…...

Go语言模板引擎与前端渲染实战

Go语言模板引擎与前端渲染实战 引言 模板引擎是Web开发中连接后端数据与前端展示的关键组件。Go语言标准库提供了强大的模板引擎&#xff0c;本文将深入探讨其使用方法和最佳实践。 一、Go模板引擎基础 1.1 text/template与html/template // text/template - 纯文本模板 import…...

精准数字化管控赋能医养融合

随着医养结合成为养老行业发展核心趋势&#xff0c;传统医养管理模式存在数据割裂、健康监测滞后、服务台账杂乱、管控统筹困难等问题&#xff0c;难以适配现代化康养机构运营需求。智慧养老医养管理数据大屏&#xff0c;聚焦医养融合核心场景&#xff0c;整合医疗健康与养老服…...

2026论文写作工具红黑榜:一键生成论文工具怎么选?一篇讲透:

2026年论文写作工具红黑榜出炉&#xff0c;红榜优先选千笔AI、ThouPen、豆包&#xff0c;适配国内学术规范&#xff1b;黑榜避开低质免费工具、无真实引用平台、过度依赖全文生成的工具。选择时建议按需求匹配三维模型&#xff1a;需求匹配度 - 数据可信度 - 成本承受力。一、红…...

AI多模型协同架构:破解单点依赖与技术主权困局

1. 这不是科幻讨论&#xff0c;而是今天必须面对的产业现实 “AI未来&#xff1a;一个巨无霸&#xff0c;还是多个巨头&#xff1f;”——这个标题乍看像科技媒体的年终圆桌话题&#xff0c;但在我过去十年跟踪AI基础设施、模型服务与企业落地的实操中&#xff0c;它早已不是假…...

vscode+stm32+embedded ide+cortex debug+gcc

用stm32cubemx生成项目。下载三个软件&#xff0c;设置环境变量 openocd是仿真用&#xff0c;gcc-arm-none-eabi-10.3是编译用&#xff0c;w64evkit只用其中的make.exe根据生成的makefile文件&#xff0c;添加c源文件&#xff0c;包含目录&#xff0c;startup文件&#…...

为什么你的Veo 4K输出只有2K质量?深度拆解Veo 2.3引擎中的3层分辨率欺骗机制与绕过方案

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Veo 4K输出质量失真的现象确认与基准测试 近期多位专业视频工程师反馈&#xff0c;Veo系列编码器在启用4K60fps高码率输出时&#xff0c;出现肉眼可辨的色度抽样偏移、边缘锐度衰减及动态场景下的块效应增强。…...

为了还原具身智能科研市场的全貌,我们找了多个头部高校聊聊

具身智能「最大客户说」 在具身智能所有喧嚣的落地故事里&#xff0c;科研市场是最沉默也最关键的那一个。 这是无数创业公司拿到的第一笔真正意义上的收入&#xff0c;帮助团队度过了最艰难的从0到1的商业化探索阶段&#xff0c;也让机器人本体在成百上千次的拆解、改装、调…...

ChatGPT API安全调用规范,如何防止Prompt注入、数据泄露与越权访问(附OWASP合规检查清单)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;ChatGPT API安全调用规范总览 安全调用ChatGPT API是保障系统稳定性、数据隐私与合规运营的前提。开发者必须在身份认证、请求构造、响应处理及密钥生命周期管理等各环节建立防御性实践&#xff0c;避免因配置…...

知识产权管理中的流程自动化:从人工操作到系统智能

企业知识产权部门日常工作中&#xff0c;最耗费时间的往往不是策略制定&#xff0c;而是重复性的事务处理&#xff1a;收到官方来文后手动解压、分类、重命名、上传到对应案件&#xff1b;收到审查意见后人工计算答复期限并设置提醒&#xff1b;案件状态变化后逐个更新Excel记录…...