基于树莓派的签到打卡系统设计(源码+万字报告+讲解)
目录
摘要 1
1绪论 3
1.1研究背景与意义 3
1.2国内外研究现状 4
1.2.1国外研究现状 4
1.2.2国内研究现状 4
1.3研究目的 5
2人脸识别理论 6
2.1人脸图像采集与人脸数据库 6
2.2图像预处理 6
3.3人脸检测 7
3系统硬件设计 8
3.1系统结构设计 8
3.2树莓派4B 9
3.3 BCM2711主控模块 10
3.4 Pi Camera模块 11
3.4 RC522 RFID射频感应模块 11
4系统软件设计 12
4.1系统开发环境 12
4.2系统程序设计 13
4.3 OpenCV算法 14
5系统实现 15
5.1系统实现流程 15
5.2登录模块 16
5.3教师模块 17
5.4学生模块 17
5.5管理员模块 18
5.6系统测试 19
总结 20
参考文献 21
1绪论
1.1研究背景与意义
随着科技进步的加速,人们对安全性的期望也在不断上升,传统的身份验证工具如IC卡和指纹已经无法满足现代社会的需求。人脸识别技术在考勤打卡领域有着广阔的应用前景,但由于其自身固有特点,目前还无法完全替代传统生物特征识别手段,只能作为补充手段而存在。因此,从通用性、安全性、成熟性和造价性等多个方面综合考虑,开发新的识别工具是一个不可避免的发展趋势。本文主要介绍人脸识别技术在考勤签到系统的应用,并结合具体项目对其进行开发研究,使之更加完善。设计了一个基于人脸识别技术的签到打卡系统,该系统能为工厂、企业和学生提供安全、便捷和直观的签到服务。这一设计最有效地消除了打卡管理过程中可能出现的人为错误,充分展示了人脸识别打卡管理的人工智能特性,从而避免了不必要的风险和人员纠纷。随着科学技术的进步,人脸识别技术在考勤打卡方面已经得到广泛应用。因此,我们决定研究和实施基于树莓派人脸识别的打卡签到系统,以确保打卡数据的真实性,真正实现安全、便捷和直观的打卡管理,从而进一步提升公司、工厂、学校等地的智能水平和管理稳定性。
1.2国内外研究现状
人脸识别技术是一种依赖于人类面部特征信息来进行身份鉴别的生物识别方法。近年来,随着科学技术的不断进步以及计算机软硬件水平的不断提高,人脸识别技术取得了长足进步与发展。人脸识别技术不仅在安防和金融领域得到了广泛应用,还在交通、教育、医疗、警务和电子商务等多个领域展现了其重要的应用潜力。近年来,随着计算机和网络技术的不断发展与完善,人脸识别也成为当前研究热点之一。为了更好地利用人脸识别技术带来的巨大机会,我国已经推出了一系列的支持政策。
1.2.1国外研究现状
国外对人脸识别技术的研究发展较早,提出了许多人脸识别的主流算法。如麻省理工学院Turk和Pentland等人提出的特征脸方法[1];耶鲁大学Kriegman等人提出的Fisher脸方法[2];密西根州立大学Jain带领的小组在3-D人脸识别方法所做的研究[3];德国Rohr大学Malsburg和Wiskot等人提出的Gabor变换的动态连接机制与弹性束图匹配方法[4-6]。美国麻萨诸塞州的 Visage 公司研制的实时人脸检测、识别系统(Visage FaceTOOLS),采用了多个摄像机进行图像拍摄然后根据肤色特征定位人脸,通过模板匹配的方法进行眼睛、嘴巴定位,凭借高效的识别速率,现已广泛应用于飞机场、车站等公共场所的逃犯追捕、门禁系统控制等方面。
1.2.2国内研究现状
自20世纪90年代以来,我国许多研究所、高校在人脸识别领域都取得了瞩目的成果。像清华大学的徐光佑教授、张长水教授带的课题组深入研究了非线性多姿态的人脸识别过程[7-8],南京大学周志华教授在单人脸识别[9]方面取得了突出成果,南京理工大学的杨静宇教授在用于图像识别的图像代数特征抽取方向[10]进行了长期研究,上海交通大学施鹏飞教授在弹性束图匹配领域[11]进行了研究,中山大学的赖剑煌的研究组提出频谱脸识别方法[12],还有中科院的各个研究机构也都在人脸识别领域提出了许多卓有成效的理论。
应用于人脸检测的级联卷积神经网络最初是由Li等人[13]提出的。该方法将三个大小不同的卷积神经网络采用流水线的方式完成人脸检测任务,小型神经网络负责粗略过滤人脸区域,中型和大型神经网络负责精细过滤人脸区域。为了减少筛选的时间,每当其中一个筛选网络对人脸图像过滤之后,需要使用非极大值抑制方法(Non-Maximum Suppression,NMS)[14]去除重合的人脸框。此种人脸检测方法在CPU上检测速度为14FPS,在GPU上检测速度为100FPS。Zhang等人改进了Li等人的方法[15],提出了三个轻量级的多任务卷积神经网络,不仅实现了人脸检测的任务,还实现了人脸关键点定位的任务。在该项工作中,提出使用一种在线的困难样本挖掘方法,主要思想为在模型训练过程中逐渐删除简单的样本,保留困难的样本。相比于Li等人提出的方法,Zhang等人所提出的方法,不仅拥有更快的检测速度,而且具备更好的检测精度。人脸识别技术的火热也产生了许多专注于该领域的期刊和会议,如计算机视觉方向的三大顶级会议:欧洲计算机视觉会议、计算机视觉与模式识别会议和国际计算机视觉会议,杂志如IEEE模式分析与机器智能、模式识别等都与人脸识别技术有关,许多著名的人脸识别算法诞生于此。可以看出社会各界对人脸识别技术研究非常重视,人脸识别技术的研究至今仍是一个活跃的课题,对人脸识别技术进行研究仍具有重要的意义。
1.3研究目的
通过对树莓派为基础的签到打卡系统的深入研究,我们希望深入了解人脸识别、嵌入式技术、物联网等技术的实际应用,从而提高签到流程的自动化水平,简化操作步骤,并减少管理上的开销。本文从设计原则、整体架构、硬件选型以及软件实现几个方面展开论述。此外,我们还需重视安全性的研究,确保收到的信息既保密又完整,以应对疫情的挑战并减少传染病的传播风险。本课题针对现有考勤方式存在效率低、准确率低等问题,提出了一种新的签到模式——基于树莓派签到系统。该研究还涉及到系统的整合和开发,增强综合技能,同时重视用户的使用体验和界面设计,以提升系统的用户友好性,并促进基于树莓派的签到系统在智能办公环境中的广泛应用。
2人脸识别理论
2.1人脸图像采集与人脸数据库
在进行人脸识别的实验中,需要大量的样本数据,因此,图像的采集成为人脸检测和人脸识别中最基础且至关重要的步骤。传统的人脸检测方法主要采用人工方式,这种方式效率较低。首先,我们使用摄像头捕获图像,接着把这些图像传送到计算机进行保存,为接下来的步骤做好准备。在实际应用中,采集到的图片往往不是很理想,其中主要原因之一就是因为采集设备存在问题。因为采集设备的性能差异和拍摄环境的不同,成像结果可能会有一定的偏差。此外,拍摄的角度和距离也会影响成像结果,而且图像的质量好坏将直接决定下一步实验的成功或失败。另外,随着计算机技术的飞速发展以及计算机图像处理技术的不断进步,人脸识别已经从原来的实验室研究阶段进入了实际应用阶段,并且得到越来越广泛地关注。因此,如果我们想要构建一个具有高实时性和高识别率的人脸识别系统,首要任务是确定合适的解决策略,这包括选择合适的摄像头、确保拍摄环境满足要求,以及确定合适的角度和距离[17]。
创建人脸数据库的初衷是为了保存收集到的人脸图片,以方便后续的数据预处理和其他相关操作。本文主要针对人脸数据库建设过程中遇到的一些问题展开分析。鉴于图像中存在众多的干扰因素,例如光线、遮挡等,并且某些因素在实际应用中是难以避免的,为了准确评估算法对这些干扰因素的抑制效果,我们需要建立一个标准化的人脸数据库进行测试。目前人脸数据库有很多种类型,不同的数据来源可以产生不一样的结果。众多的研究团队和机构都采用了自己独特的标准和策略来构建人脸数据库。本研究采用了FERET人脸数据库、ORL人脸数据库以及我们自己创建的人脸数据库来进行仿真测试、检测和对比算法性能,从而确保得到的数据更为真实和可靠。
2.2图像预处理
在人脸识别过程中,图像预处理是一个至关重要的环节。这是因为图像可能会被不同的采集设备捕获,而这些设备的工作条件各不相同。此外,由于采集环境的差异,例如光线的距离,可能会导致采集到的图像存在各种不同的缺陷[18]。因此,图像的预处理对于识别过程至关重要。为了确保用于图像识别的人脸在位置、尺寸和偏移上都是一致的,并且不会受到光线条件的干扰,我们必须在开始识别前对图像进行适当的预处理。因此,对人脸图像处理方法进行了研究。人脸图像中的人脸大小、位置和偏移等因素都可能对人脸识别的准确性产生影响。因此,在进行人脸识别之前,有必要对人脸图像的大小进行统一处理,并努力确保人脸在图像中的关键位置保持一致。因此,如何对原始图像进行处理成为了一项非常关键的任务。这便是几何的标准化过程,涵盖了尺寸调整、平移、旋转以及翻转等操作[19]。
(1)大小校正的主要目的是根据人眼的坐标信息,对图像中的人脸进行到统大小的精确校准。经过适当的预处理,确保两只眼睛之间的距离保持一致,这也有助于保持人脸的其他关键区域,如鼻子和嘴巴,在一个相对标准的位置上。
(2)平移是一种方法,它通过在图像中按照预定的平移量对点进行水平或垂直的移动,以此来减少人脸偏移对后续图像识别过程的不良影响。
(3)旋转操作主要是通过在平面内对人脸图像进行旋转操作,以确保两只眼睛的连线能够保持在一个水平的位置上。
(4)翻转动作的主要目的是为了确保图像里的人脸始终保持其正面。
3.3人脸检测
人脸检测作为人脸识别技术的核心,其工作流程可以概括为:使用合适的算法对静态或动态的视频帧进行识别,判断图像中是否存在人脸,如果有人脸,则需要标注人脸图像的精确位置和尺寸信息。传统的人脸检测方法主要包括肤色模型法、形态学滤波法等,其中以肤色建模为主。在20世纪70年代初期,检测方法主要是使用简单的模板来匹配人脸[20],这种方法只能在背景单一且人脸正向的理想实验条件下,进行相对准确的人脸检测。近年来,由于计算机视觉、机器学习等学科的蓬勃发展,使得利用这些学科知识构建新的人脸检测模型成为可能。随着图像处理、模式识别和计算机技术的飞速进步,人脸检测技术也在持续升级。目前,主流的人脸检测技术可以分为三大类:基于特征的方法、基于模板匹配的方法和基于统计的方法[21-~22]。
以特征为基础的人脸识别技术主要依赖于图2.2展示的人脸特征。由于人脸图像中包含大量非特定人脸特征信息,因此,该算法需要对这些数据进行预处理以降低误匹配率。在人脸检测领域,如何识别所有的人脸特征、挑选出关键特征,并将这些关键特征融入到检测流程中,已经成为了主要的研究焦点。目前已有大量关于人脸识别的研究成果,但由于所选用的人脸图像具有多样性和复杂性,使得这些成果并不能完全满足实际需要。基于特征的种类和数量的差异,我们可以将其分类为单一特征的分析方法和多种特征的分析方法[23]。单特征分析方法与多特征分析方法各有优势,本文重点讨论了它们各自的优缺点以及适用条件。单特征分析方法涉及使用一个特定的特征(例如颜色和纹理等)来构建一个特征向量,该向量用于表示人脸特征,并按照特定的方式描述特征值与人脸对象之间的映射关系。由于单个特征无法完全代表所有人脸信息,因此需要利用多个特征共同描述一个特定的人脸。同理,多特征分析方法是在单一特征分析方法的基础上,同时使用多个特征来描述人脸,这样可以更全面地描述人脸特征,从而提高检测的效率。本文主要研究了多特征分析中的一种——基于特征分析思想的人脸识别方法。特征分析方法的核心思想是利用特征向量来描绘人脸的特性,进而把人脸识别的难题转化为空间向量匹配的挑战,这极大地降低了算法的复杂性。
图2.2人脸的主要特征模式
3系统硬件设计
3.1系统结构设计
这个系统的硬件设计主要可以划分为两大部分:首先是树莓派4B,它以BCM2711作为核心控制芯片,并整合了USB、UART等外部接口;其次是pi camera,这是一个不可或缺的组件,同时还需要准备高速SD卡作为存储设备;另外一部分是树莓派片内处理器,它负责对数据进行处理和控制,并通过串口与上位机通信。此外,树莓派的4B电源部分在底板上配备了以太网或WIFI模块、RC522 RFID射频感应模块、LCD1602A模块和10k欧姆电位器等多种硬件组件。为了方便接口连接,底板上还安装了一些外部物理接口。这些接口具有高达4K的分辨率、VideoCore VI显卡,并支持OpenGL ES 3.x、HEVC视频4Kp60硬解码功能,与早期的树莓派产品完全兼容。另外由于树莓派内部采用了模块化设计,因此可以通过软件对不同功能进行扩展和替换。当然,在追求美观的同时,树莓派的外壳、USB鼠标和键盘也是不可或缺的元素。
系统结构图
3.2树莓派4B
树莓派是一款采用SD卡作为其内存盘的微型电脑,它继承了传统嵌入式系统的低能耗和便携性等特点,并且其功能更为强大,能够处理更多的复杂计算任务。树莓派能实现对图像信息和音频数据的采集与处理以及存储等一系列任务。树派设备配备了以太网接口,能够与网络进行连接,并且支持有线和无线两种通信方式。此外,它还具备相机串行接口(CMOS Sensor Interface CSI)等功能,并配备了40个GPIO口,用于连接传感器和其他不同的组件。树莓派能实现与各种智能设备之间的通讯。该系统采用了树莓派4B开发板,与树莓派3B+相比,性能有了明显的提升。该系统具有多种外设接口,并且支持多种系统,如Raspbian、Ubuntu-MATA、Win10-IoT等。本文主要介绍了该控制系统中的上位机控制器部分硬件设计及软件编程方法。树莓派4B的实体图片如图2-1。树莓派的各个硬件模块都是独立设计并集成在一个电路板上的,可以根据需要选择单独使用或同时安装。
图3-1 树莓派硬件
3.3 BCM2711主控模块
BCM2711是由Broadcom公司设计的一款系统级芯片(SoC),它是基于ARM Cortex-A72架构构建的,配备了64位四核心CPU,其核心频率能够达到1.5 GHz,同时也存在一些版本,例如BCM2711C0,其核心频率能够达到1.8 GHz。由于其拥有强大的处理能力,因此非常适合在移动设备中使用,特别适合用于多媒体应用。这个SoC产品以其高效和低能耗为显著特性,其功耗TDP(热设计功耗)达到了4W。它还集成了先进的视频处理功能,例如高清图像捕获和压缩技术。该设备内置了一个VideoCore VI 3D图形处理器,能够支持高达4K的分辨率,并能够处理多种视频格式的硬件解码,例如H.265 4Kp60、H.264 1080p60以及MPEG-2 1080p60等。它还可以实现音频压缩编码、视频处理与播放以及各种高级功能,如对数据进行缓存及快速下载,以减少传输过程中产生的数据。BCM2711配备了1GB、2GB或4GB LPDDR4 SDRAM,并配备了一个microSD卡插槽以支持存储扩展功能。内置有两个可独立工作的视频解码器,能够满足不同用户对视频质量和速度要求的需求。该设备具备双频802.11ac无线网络、蓝牙5.0、千兆以太网、USB 3.0和2.0端口的支持,从而提供了卓越的连接性能。该系列芯片具有优秀的低功耗设计,同时还能够为用户带来良好的系统兼容性。BCM2711因其卓越的性能特点,在多种设备上得到了广泛的应用,尤其是在树莓派4单板电脑上。作为一款具有良好性价比的产品,该芯片为我们提供了丰富而实用的配置选择。由于这款芯片所展现出的多功能和卓越性能,树莓派4在之前的版本中展现出了更为卓越的性能和众多的特点。
图3-2 BCM2711实物图
3.4 Pi Camera模块
Pi Camera模块是一款专为树莓派(Raspberry Pi)设计的摄像模块,能够捕捉照片和高分辨率的视频内容。该模块具有体积小、重量轻以及便于携带等优点。这一模块能够直接通过树莓派的CSI(相机串行接口)接口与Raspberry Pi的CSI端口通过15针排线进行连接。为了使用户能够更容易地将其安装到树莓派中,我们设计了一个简单且易于操作的工具。从软件的角度看,我们可以借助Python库Picamera2来轻松地访问和操作树莓派的摄像机系统。另外,还提供了一个简单易用的工具来管理相机数据以提高用户体验。Picamera2是基于开源的libcamera项目构建的,它特别适用于那些直接与树莓派CSI连接器连接的扁平线相机,如Raspberry Pi camera V1、V2或module 3,以及HQ camera。这些相机都具有一个类似于普通数码相机一样的接口,用来采集图像数据并且将其发送到主机设备。尽管USB相机的支持相对有限,但它并不兼容其他种类的相机。此外,该设备还能够被嵌入到其它种类的硬件中。此外,Pi Camera模块也可以和ipcamera软件结合使用,以实现远程视频的传输功能。该系统通过将摄像头安装在计算机内部来实现远程视频传输。在ipcamera客户端上,用户可以配置视频想要传送到的目标设备的IP地址和端口,接着开始视频的传输过程。当需要进行图像数据的采集时,则通过一个摄像头来实现,这样就可以完成图像数据的获取。在ipcamera服务器端,用户可以添加想要接收的摄像头,并对设备的名称、IP地址和端口进行配置。通过上述步骤后,我们便可以完成一个完整的视频传输过程。接下来,你将能够接收到由设备传送过来的视频内容。
图3-3 Pi Camera实体图
3.4 RC522 RFID射频感应模块
RC522 RFID射频感应模块,也常被人们称作MFRC-522,它是一个高度集成的非触摸式通信读取器/写入器IC。它能够在一个很小的面积上实现与标签和阅读器之间快速、准确地数据传输。该设备是基于13.56MHz的操作频率设计的,并且完全满足ISO/IEC 14443 A/MIFARE的标准要求,这使得它在RFID应用中扮演了至关重要的角色。
从功能上看,RC522 RFID射频感应模块主要应用于无接触的通讯方式,并利用无线射频技术与标签进行数据交流和通信。该模块采用了模块化设计,由多个子功能模块组成,每个子模块均具有独立的供电电源和控制电路,可根据需要单独使用或同时连接其他设备。当模块和标签之间产生电磁感应时,标签内部的天线会感知到模块发出的射频信号,并将其转换为电能,以激励标签内部的电路进行工作。由于标签内集成了大量芯片,因此模块可以采用模块化设计思想,从而简化了系统硬件结构。标签的内部电路将把其储存的数据通过无线射频方式发送给相应的模块。模块发送出的电信号经过放大滤波之后,再由发射端发送至接收端。模块在接收到标签返回的信号之后,会把这些信号转换成数字格式,并通过专门的数字信号处理模块进行进一步的处理,最后将处理后的数据输出给控制接口。
图3-4 RC522 RFID射频感应模块实体图
4系统软件设计
4.1系统开发环境
首先,Raspbian为树莓派设计了一个操作环境。Raspbian内置了一个轻量级的python集成开发环境,名为Integrated Development Environment DE。Thonny thonny是一个基于python内置图形库tkinter开发的,支持Linux、Windows和Mac的多平台IDE平台。树莓派的系统硬盘是SD卡,可以将系统烧录到SD卡中,然后登录官方网站下载Raspbian的镜像到本地,并将系统烧录到树莓派的硬盘内B8。将树莓派通过有线通信连接到局域网,就可以在电脑端通过VNC功能访问树莓派的桌面。如图4-1所示,可以在VNC Server中输入树莓派P地址、用户名和密码,实现连接。开启WiFi连接后,树派可以通过无线方式与电脑进行数据传输。
4-1树莓派登录界面
4.2系统程序设计
该系统的设计是通过使用摄像工具来捕捉用户的面部图像,并利用USB端口将这些图像传送到树莓派控制设备进行进一步处理,这包括人脸特征点的识别和头部姿态的估计等功能;根据用户输入的操作指令,完成对摄像头拍摄到的视频图像信息进行分析和处理。接下来,我们处理了图像处理后的相关数据,并将头部的姿态角度与眼动特征下的二维映射模型得到的注视点坐标结合,从而实现了实际注视点的定位;在连续的4帧图像中,我们收集了嘴角上扬的标记值,以此来判断是否触发了鼠标点击的事件;光标控制设备通过串行接口将坐标和命令上传到个人电脑上,然后使用上位机软件对其功能进行验证,从而达到控制光标的目的。
针对课堂场景下的考勤系统主要有以下几点功能性需求:
1)登陆模块:主要提供学生、教师和管理员的登陆功能,由于学校系统不对外
公开,所以不提供注册功能。
2)教师模块:教师应具备查看选课的学生信息的功能,同时能够管理学生的考勤信息,还可以随时开启考勤模块记录学生出勤情况。
3)学生模块:学生应具备查看自己的个人信息以及考勤信息,并且能够上传自己的人脸图像。
4)管理员模块:管理员应具备管理整个系统所有数据的功能,能够管理课程信
息,查看、修改或导入学生以及老师的账号信息,并且能够审核学生录入的人脸图像,同时可以查看并修改考勤信息。
4.3 OpenCV算法
在OpenCV软件中,当使用Haar级联分类器进行人脸识别时,这并不直接关联到主成分分析(PCA)算法。虽然PCA主要用于数据的降维和特征的提取,但它并不构成Haar级联分类器工作机制的一个组成部分。然而,深入了解PCA在人脸识别和其他计算机视觉任务中的实际应用是非常有益的。
Haar级联分类器是基于Haar特征构建的,这是一种用于描述图像中相邻区域像素强度差异的简洁矩形特征。这种方法能够从输入图像提取出具有相同或相似几何特性的一组纹理特征向量。这些属性有助于捕捉图像内物体的基础形态和构造细节。在本文提出的方法中,我们将该特征提取应用于人脸识别领域。在训练分类器时,我们采用了大量标注了人脸与非人脸的图像样本。在分类之前,对每一个训练样本进行预处理以消除噪声干扰,然后再利用该方法提取出具有相同或相似特性的多个特征作为输入向量。在训练阶段,我们会对每一张样本图像的Haar特征进行计算,并利用机器学习技术(例如AdaBoost)来筛选出最能区分人脸与非人脸的关键特征。在测试时,首先对输入图像用一个简单的方法提取出感兴趣区域,然后再将其作为训练样本送入分类器中进行分类。为了增强检测的速度与准确性,Haar级联分类器选择了级联的设计结构。在训练一个分类模型时,首先将所有待测试样本分成若干个子网络,然后对每一子网络分别建立相应的强、弱分类器。在每一个步骤中,都有一系列的弱分类器被构建,这些分类器是基于各种Haar特征来做决策的。在每一个步骤中,弱分类器对输入图像做预处理,提取出候选区域作为后续分类的初始种子点,然后根据各部分特征之间的差异决定是否需要进一步处理。在每一个步骤中,大量的非人脸部分都会被筛选掉,而那些可能含有人脸的部分则会被保留。当需要对部分人脸区进行识别时,通过选择适当的强分类器来增强该部分人脸区域的识别率。随着研究阶段的不断深化,分类器在决策过程中变得越来越严格,目的是为了确保最终识别出的区域更有可能是人脸。为了提高算法性能,提出一种新的方法来实现人脸自动检测过程。在图像检测的过程中,我们将待分析的图像分为若干子区域(也被称作窗口),并对每一个子区域的Haar特性进行计算。根据各个子区域的大小和方向对它们分别提取出不同尺度的特征向量。接下来,把这些特性输入到已经训练过的Haar级联分类器里,以便进行分类评估。当一个或者两个子区域被分类时,根据它们所具有的不同颜色或纹理特性来对该区域进行标记。如果一个特定的子区域被归类为人脸,那么应将其标识为一个含有人脸特征的矩形区域。若某一个或几个子区域不属于该人,则对其他所有的矩形区域都做相同的操作来确定是否存在人脸。最终,所有检测到的人脸区域(矩形形状)都会被保存在变量里,以方便后续的处理和分析工作。
在人脸识别技术中,PCA的使用主要集中在特征的提取环节。由于人脸图像本身具有较高的维数,因此采用传统方法提取人脸特征时很容易受到噪声和光照条件等因素的影响而导致识别率下降。利用PCA技术对众多的人脸图片进行了降维操作,从而获得了一个较低维度的特征空间。该特征空间可以被用来提取出更多的有效信息来降低识别过程中所需要的计算量和存储开销。接下来,我们可以把新生成的人脸图像投射到这个特定的特征空间中,从而获得与之匹配的特征向量。由于该方法无需计算矩阵特征值问题,因此具有较高的计算速度。在人脸识别任务中,这些特征向量能够执行分类、聚类和匹配等多种操作。由于采用了这样一种方法,使得我们在计算过程中不需任何先验知识,并且所获得的结果也是很准确的。PCA技术本身并不是直接应用于人脸识别,而是专门用于提取和识别人脸的特征。
PCA算法
5系统实现
5.1系统实现流程
前文已经介绍了系统总体设计(包含硬件设计及软件设计)和相关算法。结合前文,具体实现一个快速实时的签到打开系统。本系统主要是以树莓派 4B 开发板为硬件平台并以OpenCV人脸识别接口为工具,通过 Python 语言为基础开发的。实现流程图如图 5-1所示。
图5-1系统设计流程图
5.2登录模块
为学生、教师和管理员这三个角色提供了登录通道;通过网络登录系统获取所需信息并保存在数据库中。核实用户所输入的用户名与密码是否准确无误;用户可以根据自己的角色,跳转至对应的操作界面;对登录过程中出现的问题进行处理并显示在页面上。确保系统的安全运行,避免非法登录行为。
进行登录的步骤:
(1)当用户启动签到打卡功能时,他们会进入到登录的界面中;
(2)用户可以选择自己的角色,如学生、教师或管理员,并键入相应的用户名与密码;
(3)该系统会根据用户所输入的角色信息,在数据库里查找与应用户名相关的密码;
(4)采用与存储时一致的哈希技术来加密用户输入的密码,并将其与数据库中的密码进行对比分析;
(5)如果密码匹配成功,系统会根据用户的角色自动跳转至对应的操作界面;如果不这样做,系统会提示用户“用户名或密码有误”,并允许用户再次输入。
5.3教师模块
教师模块为用户提供了一个查阅选课学生资料的工具,这其中包含了学生的全名、学号以及所在班级的详细信息。另外,教师可以根据课程需要在不同时段对学生个人信息和成绩信息等内容进行统计。教师可以通过数据库来查找这些信息,并将其以列表或表格的方式呈现。教师可根据自己的需要,在列表或者表中选择指定学生。此外,为了帮助教师更迅速地找到指定的学生,我们还提供了搜索工具,可以根据学生的姓名、学号等关键词进行查找。另外,为满足学校信息化建设需求,系统设计了管理员登录界面和学生信息管理界面。教师被授权管理学生的出勤记录。这主要涵盖了以下几个关键领域:
(1)考勤记录功能:当学生实际出席或缺席时,教师有权手动记录学生的出勤状况,例如是否出席、迟到、提前离开或缺席等情况。
(2)教师有能力根据不同的时间段和班级条件来查阅学生的出勤记录,并可以通过列表或者图表的方式进行展示。
(3)导出考勤报告:教师应当有能力导出特定时间段或特定班级的考勤报告,以便进行更深入的数据分析和存储。
5.4学生模块
学生模块的设计主要是为了满足学生查询个人资料、出勤记录和上传面部图像的需求,从而增强系统的用户友好性和安全性。
学生模块为用户提供了查阅个人资料的选项,这包括但不限于姓名、学号、所在班级以及联系信息等基础资料。在学生进行课前预习时可根据需要设置显示时间和内容。学生们会查阅自己的出勤记录,这其中包括了过去的考勤历史和出勤率数据等。教师可以在学生模块中设置时间点进行点名或者叫人上课,同时也可将课堂上的学习内容实时更新到学生模块。学生可以通过选择特定的时间或课程来查阅相关的出勤记录,并将其以列表或图表的方式展示出来。用户可根据不同时间点进行自动点名,也可以手动操作实现自动签到。为了增强签到打卡系统在安全性和准确性方面的表现,学生模块新增了上传人脸图像的功能。同时,该系统还具有对学生个人信息及行为数据的采集与保存的能力。学生有能力在系统里上传他们清晰的正面照片,作为进行人脸识别的参考依据。同时也能将学生上传的个人信息保存至后台服务器,方便管理员查看。该系统会对上传的图片进行初步处理和保存,然后在接下来的签到环节中进行人脸的识别和校验。
5.5管理员模块
作为管理员,他们不仅要确保系统的稳定运行,还需保障数据的安全与准确
更多推荐
所有评论(0)