基于vscode人脸识别考勤系统代码

时间: 2023-08-01 09:15:37 浏览: 60
基于VSCode的人脸识别考勤系统的代码需要分为两部分:前端和后端。前端主要以HTML、CSS和JavaScript为主,后端主要以Python为主。 前端代码: ```html <!DOCTYPE html> <html> <head> <title>人脸考勤系统</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/layui/2.5.6/layui.js"></script> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/layui/2.5.6/css/layui.css"> <link rel="stylesheet" href="style.css"> </head> <body> <div class="container"> <h2>人脸考勤系统</h2> <div class="row"> <div class="col-md-6"> <div class="card"> <div class="card-header">考勤签到</div> <div class="card-body"> <form> <div class="form-group"> <label for="username">用户名:</label> <input type="text" class="form-control" id="username" placeholder="请输入用户名"> </div> <div class="form-group"> <label for="password">密码:</label> <input type="password" class="form-control" id="password" placeholder="请输入密码"> </div> <div class="form-group"> <button type="button" class="btn btn-primary" onclick="signIn()">签到</button> </div> </form> </div> </div> </div> <div class="col-md-6"> <div class="card"> <div class="card-header">考勤记录</div> <div class="card-body"> <table class="table table-striped"> <thead> <tr> <th>用户名</th> <th>签到时间</th> </tr> </thead> <tbody id="attendance-list"> </tbody> </table> </div> </div> </div> </div> </div> <script src="main.js"></script> </body> </html> ``` ```css body { background-color: #f2f2f2; } .container { margin-top: 50px; } .card-header { font-weight: bold; font-size: 20px; } .card-body { padding: 20px; } .form-group { margin-bottom: 20px; } .table { margin-top: 20px; } .table th, .table td { text-align: center; } .table th { font-weight: bold; font-size: 16px; } ``` 后端代码: ```python import cv2 import os import numpy as np import datetime import face_recognition import base64 from flask import Flask, jsonify, request app = Flask(__name__) # 加载已知人脸编码 known_face_encodings = [] known_face_names = [] for file in os.listdir("known_faces"): if file.endswith(".jpg"): image = face_recognition.load_image_file("known_faces/" + file) encoding = face_recognition.face_encodings(image)[0] known_face_encodings.append(encoding) known_face_names.append(os.path.splitext(file)[0]) attendance_records = [] @app.route("/") def home(): return "Welcome to Face Recognition Attendance System!" @app.route("/api/signIn", methods=["POST"]) def signIn(): # 提取请求中的用户名和密码 username = request.form.get("username") password = request.form.get("password") # 验证用户名和密码 if username != "admin" or password != "123456": return jsonify({"status": "fail", "message": "用户名或密码错误"}) # 打开摄像头 camera = cv2.VideoCapture(0) # 循环读取视频流 while True: ret, frame = camera.read() if not ret: break # 将图片大小缩小为原来的1/4,加快识别速度 small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25) # 将图片从BGR格式转换为RGB格式 rgb_small_frame = small_frame[:, :, ::-1] # 在图片中识别人脸 face_locations = face_recognition.face_locations(rgb_small_frame) face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations) # 遍历所有检测到的人脸 for face_encoding in face_encodings: # 判断是否为已知人脸 matches = face_recognition.compare_faces(known_face_encodings, face_encoding) name = "Unknown" if True in matches: first_match_index = matches.index(True) name = known_face_names[first_match_index] # 绘制人脸识别框 top, right, bottom, left = face_locations[0] top *= 4 right *= 4 bottom *= 4 left *= 4 cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2) # 绘制人脸名称 cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED) font = cv2.FONT_HERSHEY_DUPLEX cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1) # 记录考勤记录 now = datetime.datetime.now() attendance_records.append({"name": name, "time": now.strftime("%Y-%m-%d %H:%M:%S")}) # 保存考勤记录到文件 with open("attendance_records.txt", "a") as f: f.write("{}\t{}\n".format(name, now.strftime("%Y-%m-%d %H:%M:%S"))) # 将考勤记录转换为Base64编码,以便前端显示 attendance_list = [] for record in attendance_records: attendance_list.append({"name": record["name"], "time": record["time"]}) attendance_list_str = str(attendance_list) attendance_list_bytes = attendance_list_str.encode("utf-8") attendance_list_base64 = base64.b64encode(attendance_list_bytes).decode("utf-8") # 返回考勤记录给前端 return jsonify({"status": "success", "attendance_list": attendance_list_base64}) # 显示视频流 cv2.imshow("Video", frame) # 按下q键退出循环 if cv2.waitKey(1) & 0xFF == ord("q"): break # 释放摄像头并关闭窗口 camera.release() cv2.destroyAllWindows() return jsonify({"status": "fail", "message": "未检测到人脸"}) if __name__ == "__main__": app.run(debug=True) ```

相关推荐

最新推荐

recommend-type

基于人脸识别的课堂点名系统

提出基于人脸识别的课堂点名系统,大大提高了课堂点名的效率。本系统提供图像和摄像识别点名,可一次识别多个人脸,同时该系统也对系统难以识别的学生提供手动签到。系统运用OpenCV人脸识别开源库做算法部分,用Qt、...
recommend-type

使用卷积神经网络(CNN)做人脸识别的示例代码

在本文中,我们将深入探讨如何使用卷积神经网络(CNN)进行...通过合理的数据预处理、模型选择和训练,我们可以构建一个能够准确识别人脸的系统。在实践中,还需要不断调整和优化模型,以适应不同的应用场景和挑战。
recommend-type

海康人脸识别门禁系统改造方案.docx

目前大楼共有3个IC卡刷卡门禁出入口通道,采用双向验证模式,即员工在门外刷卡进入,...我们每天都在大厅安排一组值班人员测量体温,费时费力还效率低,急需将测温与人脸识别门禁相结合,做的全天候无遗漏的人员管理。
recommend-type

基于OpenCV人脸识别的分析与实现.doc

最后,通过上述理论学习,基于OpenCV,在Visual Studio 2012开发环境下,利用ORL人脸数据库,分别对上述算法进行了算法实现和实验验证,并且在最后创建了一个基于特征脸的实时人脸识别系统,该系统可以实现人脸的...
recommend-type

android实现人脸识别技术的示例代码

Android人脸识别技术示例代码 Android人脸识别技术的示例代码是Android开发者实现人脸识别功能的重要参考。该示例代码主要介绍了Android人脸识别技术的实现过程,包括人脸注册、人脸识别、人脸跟踪等功能。 一、...
recommend-type

BSC绩效考核指标汇总 (2).docx

BSC(Balanced Scorecard,平衡计分卡)是一种战略绩效管理系统,它将企业的绩效评估从传统的财务维度扩展到非财务领域,以提供更全面、深入的业绩衡量。在提供的文档中,BSC绩效考核指标主要分为两大类:财务类和客户类。 1. 财务类指标: - 部门费用的实际与预算比较:如项目研究开发费用、课题费用、招聘费用、培训费用和新产品研发费用,均通过实际支出与计划预算的百分比来衡量,这反映了部门在成本控制上的效率。 - 经营利润指标:如承保利润、赔付率和理赔统计,这些涉及保险公司的核心盈利能力和风险管理水平。 - 人力成本和保费收益:如人力成本与计划的比例,以及标准保费、附加佣金、续期推动费用等与预算的对比,评估业务运营和盈利能力。 - 财务效率:包括管理费用、销售费用和投资回报率,如净投资收益率、销售目标达成率等,反映公司的财务健康状况和经营效率。 2. 客户类指标: - 客户满意度:通过包装水平客户满意度调研,了解产品和服务的质量和客户体验。 - 市场表现:通过市场销售月报和市场份额,衡量公司在市场中的竞争地位和销售业绩。 - 服务指标:如新契约标保完成度、续保率和出租率,体现客户服务质量和客户忠诚度。 - 品牌和市场知名度:通过问卷调查、公众媒体反馈和总公司级评价来评估品牌影响力和市场认知度。 BSC绩效考核指标旨在确保企业的战略目标与财务和非财务目标的平衡,通过量化这些关键指标,帮助管理层做出决策,优化资源配置,并驱动组织的整体业绩提升。同时,这份指标汇总文档强调了财务稳健性和客户满意度的重要性,体现了现代企业对多维度绩效管理的重视。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【进阶】Flask中的会话与用户管理

![python网络编程合集](https://media.geeksforgeeks.org/wp-content/uploads/20201021201514/pythonrequests.PNG) # 2.1 用户注册和登录 ### 2.1.1 用户注册表单的设计和验证 用户注册表单是用户创建帐户的第一步,因此至关重要。它应该简单易用,同时收集必要的用户信息。 * **字段设计:**表单应包含必要的字段,如用户名、电子邮件和密码。 * **验证:**表单应验证字段的格式和有效性,例如电子邮件地址的格式和密码的强度。 * **错误处理:**表单应优雅地处理验证错误,并提供清晰的错误消
recommend-type

卷积神经网络实现手势识别程序

卷积神经网络(Convolutional Neural Network, CNN)在手势识别中是一种非常有效的机器学习模型。CNN特别适用于处理图像数据,因为它能够自动提取和学习局部特征,这对于像手势这样的空间模式识别非常重要。以下是使用CNN实现手势识别的基本步骤: 1. **输入数据准备**:首先,你需要收集或获取一组带有标签的手势图像,作为训练和测试数据集。 2. **数据预处理**:对图像进行标准化、裁剪、大小调整等操作,以便于网络输入。 3. **卷积层(Convolutional Layer)**:这是CNN的核心部分,通过一系列可学习的滤波器(卷积核)对输入图像进行卷积,以
recommend-type

BSC资料.pdf

"BSC资料.pdf" 战略地图是一种战略管理工具,它帮助企业将战略目标可视化,确保所有部门和员工的工作都与公司的整体战略方向保持一致。战略地图的核心内容包括四个相互关联的视角:财务、客户、内部流程和学习与成长。 1. **财务视角**:这是战略地图的最终目标,通常表现为股东价值的提升。例如,股东期望五年后的销售收入达到五亿元,而目前只有一亿元,那么四亿元的差距就是企业的总体目标。 2. **客户视角**:为了实现财务目标,需要明确客户价值主张。企业可以通过提供最低总成本、产品创新、全面解决方案或系统锁定等方式吸引和保留客户,以实现销售额的增长。 3. **内部流程视角**:确定关键流程以支持客户价值主张和财务目标的实现。主要流程可能包括运营管理、客户管理、创新和社会责任等,每个流程都需要有明确的短期、中期和长期目标。 4. **学习与成长视角**:评估和提升企业的人力资本、信息资本和组织资本,确保这些无形资产能够支持内部流程的优化和战略目标的达成。 绘制战略地图的六个步骤: 1. **确定股东价值差距**:识别与股东期望之间的差距。 2. **调整客户价值主张**:分析客户并调整策略以满足他们的需求。 3. **设定价值提升时间表**:规划各阶段的目标以逐步缩小差距。 4. **确定战略主题**:识别关键内部流程并设定目标。 5. **提升战略准备度**:评估并提升无形资产的战略准备度。 6. **制定行动方案**:根据战略地图制定具体行动计划,分配资源和预算。 战略地图的有效性主要取决于两个要素: 1. **KPI的数量及分布比例**:一个有效的战略地图通常包含20个左右的指标,且在四个视角之间有均衡的分布,如财务20%,客户20%,内部流程40%。 2. **KPI的性质比例**:指标应涵盖财务、客户、内部流程和学习与成长等各个方面,以全面反映组织的绩效。 战略地图不仅帮助管理层清晰传达战略意图,也使员工能更好地理解自己的工作如何对公司整体目标产生贡献,从而提高执行力和组织协同性。