基于STM32的智能学生证系统设计

2025-02-15 00:00:00鞠晓凤席鑫鑫王祥乐张礼慧
科技创新与应用 2025年4期
关键词:系统设计人脸识别

摘" 要:随着科技的不断发展,智慧校园逐步走入大家的视野当中,校园作为一个人数众多的公共学习场所,学生的管理工作对学校管理部门来说尤为重要。该文主要设计一个可以帮助学校管理部门高效管理学生学习和生活的智能学生证系统。首先,通过人脸识别功能,可以实现对学生身份的准确识别,从而避免冒名顶替、身份盗用等潜在风险。其次,基于GPS的实时定位功能可以提供一种安全保障机制,学校管理人员可以实时查看学生的位置信息。最后,依据实时位置信息,通过设置电子围栏的方式,确保学生在规定地点内活动。系统测试表明,本设计能通过人脸准确识别出学生信息、实时监测学生位置,有效保障在校学生的安全并且提高校园管理的质量。

关键词:智能学生证;实时定位;人脸识别;STM32;系统设计

中图分类号:TP277""""" 文献标志码:A""""""""" 文章编号:2095-2945(2025)04-0047-04

Abstract: With the continuous development of technology, smart campuses have gradually entered everyone's vision. As a public learning place with a large number of people, the management of students is particularly important to the school management department. This paper mainly designs an intelligent student ID card system that can help school management departments efficiently manage students' study and life. First of all, through the Face Recognition function, students can be accurately identified, thereby avoiding potential risks such as impersonation and identity theft. Secondly, the GPS-based real-time positioning function can provide a security mechanism that allows school administrators to view students' location information in real time. Finally, based on real-time location information, an electronic fence is set up to ensure that students move in the specified place. System tests show that this design can accurately identify student information through faces and monitor students' locations in real time, effectively ensuring the safety of students in school and improving the quality of campus management.

Keywords: intelligent student ID card; real-time positioning; Face Recognition; STM32; system design

智能学生证系统融合了人脸识别技术、实时定位技术,旨在高效地帮助学校管理部门管理在校学生的学习和生活。基于STM32单片机进行设计,使系统研究向更集成、更便利、更智能方向发展。

通过人脸识别功能,可以对学生身份信息进行准确辨别分析,避免门禁或考试时进行冒名顶替、身份盗用等潜在风险。通过该功能,还可以实现对学生的考勤管理,提高教学管理的效率和质量。

基于GPS和北斗的实时定位和电子围栏功能,可以了解学生的行踪,确保学生在规定的时间和地点内活动,为学生提供一种安全保障机制。

综上所述,本文通过人脸识别、实时定位和电子围栏等功能,可以实现对学生的全面管理和保护。随着各种新技术不断加入到智能学生证中,该研究将为相关行业提供一种新的技术手段和管理模式,具有广阔的应用前景和市场潜力。

1" 总体设计

本设计硬件采用模块化的设计方法,对各个功能模块分开设计,最后通过集成PCB板组合。

整体硬件系统包括主控模块、显示模块和定位模块、人脸识别模块、按键模块、监测模块和报警模块。

STM32F103C8T6作为核心控制器协调各模块的输入和输出信息,控制各模块有序运行,并将输入的信息经过处理输出在屏幕上,其硬件连接框图如图1所示。

2" 显示单元

本文系统设计的数据显示主要采用0.96寸OLED屏幕,OLED是一种电子显示屏,主要基于有机材料的发光技术。因为每个像素都是自己发光的,OLED屏幕不需要背光,只有亮的像素才会消耗电能,所以它的功耗比较低,与其他显示屏相比显示效果更好、对比度更高。

人脸图像采用TFT屏幕进行脱机显示,因为它具有更高的像素密度和更好的颜色深度,适合显示人脸图像信息。

3" 人脸识别

人脸识别应用于校园门禁或者课堂签到场所,需要准确快速地辨别不同人脸并显示对应学生信息,该功能主要应用图像采集与处理和分辨人脸特征的技术。编写相应的图像采集和处理程序,通过摄像头模块获取人脸数据,然后进行人脸识别比对,实现身份验证。本文主要采用几何特征算法实现人脸识别,通过对比待检测人脸和数据库人脸的特征值差异度来实现不同人脸的辨别。

3.1" 硬件选择

OpenMV-H7是一款基于ARM Cortex-M7内核的嵌入式计算机视觉开发板[1]。它的主要优点在于:内置了专门用于机器视觉处理的图像传感器和处理器,拥有丰富的图像处理功能;提供了简单易用的Python编程接口;而且非常小巧方便,可以直接插入到嵌入式系统中。因此,它适应于对计算资源要求不高的场景。

3.2" 图像采集

进行人脸识别前需要建立人脸数据库,用于待检测人脸信息和数据库的人脸信息特征比对[2]。为了方便添加人脸信息,需在系统添加图像采集程序,一是为了添加人脸信息的便利性;二是同设备采集信息,识别的误差比较小。

主程序采集图像的方式为连续拍摄20张照片,每隔3 s拍摄一张,并将拍摄到的图像保存到SD卡中。

while(n):

lcd.write(sensor.snapshot())

machine.LED(\"LED_RED\").on()

sensor.skip_frames(time = 3000)

machine.LED(\"LED_RED\").off()

machine.LED(\"LED_BLUE\").on()

print(n)

sensor.snapshot().save(\"singtown/s%s/%s.pgm\"%(num,n))#or\"example.bmp\"(or others)

n = 1

machine.LED(\"LED_BLUE\").off()

print(\"Done! Reset the camera to see the saved image.\")

主程序使用了while循环,当n的值大于0时会一直执行循环内的代码。循环内的第一行代码使用lcd.write()方法将摄像头拍摄到的图像显示在LCD屏幕上。随后,红灯点亮表示正在进行拍照,等待3 s后红灯熄灭,蓝灯点亮表示拍照结束正在保存图片。接着,使用sensor.snapshot()方法对摄像头进行拍照,并将拍摄到的图像以.pgm格式保存到SD卡中。最后,蓝灯熄灭,输出“Done! Reset the camera to see the saved image.”提示拍照完成。

3.3" LBP特征提取

LBP是一种广泛应用于图像处理领域的局部纹理特征提取方法,它的核心思想是通过对比每个像素与其周围的邻域像素,生成一系列二进制编码,以此捕捉区域内的纹理信息[3]。具体步骤如下。

1)选择半径和邻域大小:选择一个半径和邻域大小,确定每个像素点周围需要取多少个像素点来进行比较,这里选择该像素点周围的8个像素点为一个邻域。

2)计算LBP值:分析图像中每个像素点与其周围邻域像素的灰度值差异,若该像素点的灰度值小于或等于其相邻像素点的灰度值,LBP模式则对应位置标记为1;反之,如果该像素点的灰度值较大,那么位置标记为0。选取中心像素及其8个临近像素进行比较,顺时针排列形成一个8位的二进制编码,随后这个二进制码会被转换成十进制形式,作为该像素点的LBP特征值。

3.4" 人脸特征比对

人脸特征比对就是对比待测人脸和数据库人脸特征值,差异度最小的就是待检测的人脸信息,具体流程如下。

1)图像预处理:对于检测的人脸图像需要先进行预处理,转化为与图像数据库中采集的人脸图像同类型的图像。

2)特征提取:对于每个区域,计算其对应的LBP特征值。具体提取特征值的方法在前文已有介绍,这里需要先对数据库人脸进行特征提取,再对检测人脸进行提取。

3)特征匹配:将待检测人脸图像的LBP特征值与采集的图像数据库中已知人脸图像的LBP特征值进行比较,找出差异度最小的人脸图像。

4)识别:差异度越小说明2个图像在局部纹理上匹配度越高,从而推断出可能是同一个人的概率较大,差异度最小的就是待检测的人脸信息。

下面的程序通过计算每个人数据库中所有图像和待检测人脸的特征值差异度的平均值中的最小值,从而来识别当前人脸。

def min(pmin, a, s):

global num

if alt;pmin:

pmin=a

num=s

return pmin

for s in range(1, NUMS_SUBJECTS+1):

dist = 0

for i inrange(2,NUM_SUBJECTS_IMGS+1):

img =image.Image(\"st/s%d/%d.pgm\"%(s, i))

d1=img.find_lbp((0,0,img.width(),img.height()))

dist += image.match_descriptor(d0, d1)

print(\"Averagedistforsubject %d:%d\"%(s,dist/""""" NUM_SUBJECTS_IMGS))

pmin=min(pmin,dist/NUMS_SUBJECTS_IMGS,s)

print(pmin)

print(num)

主程序通过计算被检测人脸图像与预先存储的样本图像之间的特征差异度,来判断被检测人脸与哪一个样本更匹配。在外层循环中,遍历所有的样本文件夹;在内层循环中,遍历样本文件夹中所有的图片文件,并依次计算每张图片与被检测人脸图像之间的特征差异度并对其取平均值。在计算特征差异度的过程中,使用了min函数来比较不同样本的差异度,并将最小值以及对应的样本编号num返回。最后输出num,即为当前最匹配的人的编号。

4" GPS实时定位

系统的实时定位功能需要实时获取用户的经纬度位置和时间信息,主控单元需要与定位设备进行信息传递,解析并提取定位信息。可编写程序来设置安全区域,当学生进入或离开该区域时,系统会自动发出报警提示。

4.1" 硬件选择

ATGM332D 5N-31是一款基于北斗/GPS双模芯片设计的高精度定位模块,具有小巧、低功耗、高精度等特点。

该模块采用双模式定位,支持GPS L1/GLONASS L1/Beidou B1三种卫星信号,可以实现精度为2.5 m的定位。

4.2" 数据接收

ATGM332D 5N-31模块是一款高性能GPS模块,它采用了M8030-KT芯片,支持GPS、GLONASS、BeiDou三种卫星导航系统。该模块会接收来自卫星发射的无线电信号,并测量该信号到达模块的时间和频率等参数,然后通过自身与卫星之间的位置信息进行对比和计算,最终确定自身的位置和时间[4]。同时,该模块还可以通过内置的电子罗盘来提高定位的准确性。具体回传信息如图2所示。

4.3" 数据解析

ATGM332D 5N-31可以周期性地发送包含定位信息的NMEA格式数据。NMEA是一种通用的GPS数据格式,它包含了有关位置、状态、速度、航向和时间日期等信息[5]。NMEA解析库是一种用于解析GPS和其他定位设备输出的NMEA数据格式的库,可以将接收到的NMEA数据解析成易于理解的信息,比如经纬度、速度等,并提供相应的API来让用户可以方便地获取这些信息。使用相应的NMEA解析库对接收到的定位数据进行解析,以便获取有用的信息。

常见的NMEA数据格式见表1。通过解析这些数据,可以获取到GPS设备的定位信息。

4.4" 数据提取

GPGLL是一种地理定位信息格式。它是NMEA0183标准的一部分。GPGLL包含了当前位置的经度和纬度信息,以及定位的时间信息。其中,“GP”代表全球定位系统(GPS),“GLL”代表地理定位信息。GPGLL语句的格式如下:$GPGLL,纬度,N,经度,E,时间,A*校验和。纬度和经度以度为单位表示,时间格式为hh mm ss.ss,A代表定位有效,校验和为一个两位的十六进制数,用于校验语句的完整性。通过解析GPGLL语句来获取经纬度信息。

4.5" 电子围栏

本系统设置电子围栏,只需设置经纬线的阈值,实现禁行区域的设置,当实时位置一旦进入或超出围栏区域,系统就会自动发出报警,提醒校园管理人员,另外加入红外避障模块作为辅助,在危险区域边缘作为人体传感器,实时监测是否有人进入,电子围栏区域示意图如图3所示。其中设置电子围栏的主要步骤如下。

1)确定电子围栏范围:在程序中设计电子围栏的区域判断,加设4条线的判断语句,这4条线分别为经度线的最大、最小值线和纬度线的最大、最小值线。

2)按键设置电子围栏参数:包括经纬线的阈值、警报方式。

5" 系统测试

5.1" 人脸识别测试

人脸识别测试中首先需要在OpenMV的TF卡中建立一个保存人脸照片的文件夹,在该文件夹内建立数个子文件夹,一个子文件夹代表一个人的人脸数据,用来存放这一个人的人脸照片。本测试中,建立了6个人的人脸数据用以识别,对应子文件夹为s1—s6。

图像数据库建立完之后,通过图像采集程序对人脸数据进行采集。为了便于识别,识别图像特征和采集图像特征必须一致。

这里采用sensor.set_pixformat(sensor.GRAYSCALE)像素格式为灰度图像;sensor.set_framesize(sensor.B128

X128)帧大小为 128×128像素;sensor.set_windowing((92,112))图像的窗口大小为92×112像素。

采集完人脸数据之后,将人脸识别代码以main.py的名字保存到TF卡上,进行脱机运行。按下按键进行人脸识别,OpenMV识别成功之后将对应信息发给单片机并在OLED屏幕上显示出该人脸对应学生信息。

5.2" 实时定位测试

给ATGM332D定位模块上电,ATGM332D定位模块需要等待一会,进行冷启动。定位模块启动之后,LED灯会由常亮变为闪烁,代表模块已经接收到信息。按下系统上的定位读取按键,会直接显示此刻的时间和日期。

进入实时定位页面之后,默认会先显示实时的时间日期页面,由单片机的外部中断来控制页面的切换,按下外部中断按键,页面将会切换到实时经纬度信息页面。

6" 结论

该系统使用STM32F103C8T6作为主控芯片,人脸识别采用了OpenMV的LBP特征检测算法,可以快速准确地识别人脸信息并显示出来,采用ATGM332D 5N-31模块进行实时定位,并在此基础上实现了电子围栏报警。综上,智能学生证系统的设计不仅为学生的校园安全提供了有力保障,而且提高了教学管理工作的效率和质量。

参考文献:

[1] 刘庆婷,陈梅.基于OpenMV的智能门卫系统[J].信息技术与信息化,2021(6):273-277.

[2] 沈开荣,张根源,吴飞龙.基于人脸识别的校车考勤系统设计[J].电子测试,2016(8):9-11.

[3] 李根,岳望.复杂光照下LBP人脸识别算法的改进[J].信息与电脑(理论版),2023,35(15):106-109.

[4] 舒秀兰,郑旭彬,李泽森,等.ATGM336H+ESP01S的室内定位系统设计[J].电子世界,2021(2):184-185.

[5] 周兰兰,曾水平.基于NMEA-0183协议的导盲仪定位信息采集与解析系统[J].工业控制计算机,2021,34(2):41-42,55.

猜你喜欢
系统设计人脸识别
人脸识别 等
作文中学版(2022年1期)2022-04-14 08:00:34
揭开人脸识别的神秘面纱
学生天地(2020年31期)2020-06-01 02:32:06
一种基于SATA硬盘阵列的数据存储与控制系统设计研究
工业热电偶计量检定系统设计
基于物联网的煤矿智能仓储与物流运输管理系统设计与应用
目标特性测量雷达平台建设构想
科技视界(2016年22期)2016-10-18 14:34:34
基于类独立核稀疏表示的鲁棒人脸识别
计算机工程(2015年8期)2015-07-03 12:19:07
基于K-L变换和平均近邻法的人脸识别