AttenFace一个基于人脸识别的实时考勤验证系统算法研究

2024-05-31 21:20

本文主要是介绍AttenFace一个基于人脸识别的实时考勤验证系统算法研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0 、引言

论文提出了一个使用面部识别、允许实时监控考勤的考勤系统, 可以检查由于欺骗和遗漏造成的欺诈。
论文地址:https://arxiv.org/abs/2211.07582v1

1. 概述

在大学和其他机构的课堂上,通常会进行考勤。然而,这种方式往往很原始,有改进的余地。实行叫学生的名字或在考勤本上写下他们的名字,但这很费时间和精力。这些方法也容易出现作弊行为,如替代出勤或在核实出勤后离开教室。和学生不必手动回复出勤情况。由于摄像头一直在记录,因此也很容易确定学生在课堂上停留的时间,只有超过负责该班的教授确定的阈值的学生才能最终得到考勤。此外,该系统还提供了一个管理屏幕,学生可以在这里检查他们的课堂出勤情况,教授们可以为他们的班级设置出勤门槛。这是使用面部识别的一个例子。

因此,本文提出了AttenFace,一个使用面部识别的系统,以节省检查出勤率的时间和精力并防止欺诈。用相机拍摄课堂,通过面部识别从定期拍摄的快照中识别学生,并存储在数据库中。教师

2.AttenFace系统概述

AttenFace可以利用面部识别自动处理学生考勤。一般过程如下:首先,当一堂课开始时,摄像机开始记录,每10分钟拍摄一张快照。接下来,对获得的快照进行面部识别,以识别学生;每10分钟,确定学生是否在场。最后,对于所有的快照,如果有一定数量的快照被认为是在场的,那么该班级就被认为是出席了。请注意,这个 "一定数量 "是一个规范,可以由班级的教授来设定。每10分钟的出席人数被称为bu “锁定数”。

3. AttenFace系统要求

列出了功能和非功能的要求。四个功能要求是:(1)与学生/教授/管理员机构的登录信息相联系的登录门户(2)显示学生/教授所选课程出勤情况的管理屏幕(3)教授能够改变课程的出勤标准(4)管理员能够手动推翻错误的出勤结果。非功能要求是:(1)系统能从其机构的数据库中获取必要的学生/班级信息(2)显示出勤情况的管理屏幕是跨平台的,强调移动的兼容性,以方便用户(3)面部识别算法有一个计算开销(4) 面部识别算法可以在多个实例上并行运行,以便在多个班级进行平行处理。

4. AttenFace的使用案例

该文件列出了以下十个用例。
(1)学生/教授/管理员使用他/她的时期登录信息登录管理屏幕
(2)学生显示他/她参加的所有课程的出勤率
(3)学生在一节课结束后立即显示出勤率(0或1)
(4)学生每10分钟参加的课程的出勤率,这由教授设定检查是否超过了教授设定的阈值
(5)到目前为止,学生参加的课程总数,显示他/她可以缺席的课程数量,直到该课程要求的总缺勤数
(6)该课程的总缺勤数,在教授结束课程后立即进行
(7)教授设定的作为出勤标准的块数,每堂课/改变(教授可以在某些日子里宽松地或随意地出勤,不需要大学管理部门)
(8)教授在开课前改变上课的房间号,以确保在新的房间里启动摄像头,在发生突发事件时进行考勤
(9)管理员在必要时,可以(10) 允许管理员改变上课本身的房间号,以防与另一门课重合
(10)允许管理员改变上课本身的房间号,以防与另一门课重合。

下图是论文中提出的UML用例图。

5. AttenFace系统配置。

系统配置包括四个(前端、后端服务器、人脸识别服务器和数据库),如下图所示。

首先,用户(User)通过管理屏幕(Frontend)进入系统。下图是显示给学生的屏幕样本。在这里,用户可以查看某个班级的出勤、缺勤和可能缺勤的人数,以及每10分钟的出勤决定状态。

此外,下图显示了显示给教师的一个样本屏幕。在这里,教师可以看到他/她所负责的班级的听课人数和听课名单(总听课人数),以及确定听课的阈值(所需的最小块数)。请注意,阈值是可以编辑的。

后端(Backend Server)通过数据库处理,如访问图像进行面部识别,在管理屏幕上显示数据和基本的CRUD操作。它还根据逐个区块的信息来确定班级的出勤率。它还充当向人脸识别服务器发送数据的桥梁,该服务器不能直接访问数据库(数据库)。人脸识别服务器执行人脸识别的高负荷计算处理。在上课期间,它直接从安装在每个教室的摄像头中获取实时画面,并与后端(Backend Server)进行通信以确定出勤率,每个线程都有其相关的独立计算。人脸识别服务器(Face Recognition Server)的每个线程都从后端(Backend Server)接收 “所有上课学生的图像”、“上课时间”、"下课时间 "和 “该教室对应的摄像头ID”。下图是人脸识别服务器(Face Recognition Server)、后端服务器(Backend Server)和摄像头(Camera)的顺序图。

与现有的解决方案相比,后台(后台服务器)和摄像机(照相机)之间的直接通信是一个独立的、完全自动化的系统的重要组成部分。最后,数据库存储有关学生(如用于识别的图像和注册的班级)、班级(如房间号和相应的摄像机ID)和教授(如教授的课程)的信息。下图显示了数据库的简化模式。

6. 在大学教学中的具体用途

要在大学课堂上使用AttenFace,系统首先在课堂开始前5分钟与摄像机建立连接。接下来,教授按要求登录管理屏幕,并更改目标班级的出勤要求。从上课到下课,教室的快照被发送到后台,然后每10分钟发送到面部识别服务器。然后,每隔10分钟,学生被识别并记录为一个区块。最后,在课堂结束时,学生可以登录管理屏幕,立即看到他们在该班的出勤情况。

7. AttenFace的可扩展性和易集成性

AttenFace系统是模块化的。特别是,面部识别服务器(Face Recognition Server)是一个独立的模块。给出学生的照片作为输入,在人脸识别模块中进行计算,并将每个学生的识别结果(无论在该时间段是否在场)返回到后端(后台服务器)。后端(Backend Server)使用这些数据来计算出勤率。 由于其模块化的性质,AttenFace系统可以很容易地集成到现有的大学门户中。例如,很容易将AttenFace实时考勤系统整合到Moodle(*1)中。在本文的案例研究中,管理屏幕(Frontend)、登录机构和与机构数据库的互动都由Moodle处理。需要整合的组件是与人脸识别服务器互动并进行必要计算的后端(后端服务器)脚本,以及人脸识别服务器本身。集成后,考勤数据可以提供给Moodle并显示在前端。(*1) Moodle是一个开源的电子学习平台。它是免费的学习支持软件,可以在课堂上使用,也可以在互联网在线环境下随时随地使用。它允许教授在网上发布教学大纲和讲课材料,学生提交作业,教授对提交的作业进行评分。

8、总结

本文提出了一个名为AttenFace的系统,它使用面部识别来实时统计出勤率。到目前为止,检查课堂出勤率是一个费时费力的过程,但AttenFace成功地实现了这一过程的自动化。此外,AttenFace以区块为单位,每10分钟确定一个学生是否在场,依据的是区块整体的百分比是多少。因此,学生不能在上课时离开教室,必须在教室里停留一定的时间。可以自动确定出勤率,同时排除不正常的情况。本文没有提到所使用的面部识别算法或面部识别的准确性,但在实践中,曾出现过无法检测到学生或无法准确识别学生的情况。各种因素,如教室的照明环境,学生脸部的位置、方向和大小,以及图像质量,都可能影响到人脸识别的准确性。未来需要研究更加稳健并能适应不同情况的人脸识别算法。研究由于各种因素,如照明环境、学生脸部的位置、方向、大小和图像质量,以及由于人脸识别算法造成的准确性和偏差的差异,可能是很有意思的。然而,正如本文所述,人脸识别/认证的有用性和便利性可能会从班级考勤管理等休闲应用中实现,而社会实施可能会取得进展。

这篇关于AttenFace一个基于人脸识别的实时考勤验证系统算法研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019086

相关文章

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Java JDK Validation 注解解析与使用方法验证

《JavaJDKValidation注解解析与使用方法验证》JakartaValidation提供了一种声明式、标准化的方式来验证Java对象,与框架无关,可以方便地集成到各种Java应用中,... 目录核心概念1. 主要注解基本约束注解其他常用注解2. 核心接口使用方法1. 基本使用添加依赖 (Maven

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详