APP下载

基于人脸识别的教务安全客户端设计与实现*

2021-11-19南京理工大学紫金学院刘红英钟冰冰

数字技术与应用 2021年10期
关键词:图库教务人脸识别

南京理工大学紫金学院 刘红英 钟冰冰

人脸识别技术是一项拥有漫长研究历史的成熟技术,教务管理客户端采用人脸识别技术作为登录方式能够保障教务管理系统信息安全,防止他人篡改、冒用、删除他人教务管理信息。本课题实现基于人脸识别技术的教务管理客户端开发与设计,本系统采用C/S架构,基于PyQt桌面开发工具,结合网络爬虫技术,采用SQLite与Neo4j作为数据库技术,为用户提供便利性,并提高了安全性能。

0 引言

教务管理系统的发展跟随着计算机技术的进步而不断完善,从最早的单机模式到网络计算机时代采用C/S与B/S模式,但是教务系统仍存在许多安全性问题,如易被攻击、弱口令密码被利用等。人脸识别技术应用广泛,将人脸识别技术应用于教务客户端系统,增加教务系统安全性。

1 关键技术

1.1 人脸识别

人脸识别是一种提取人脸特征与轮廓的生物识别技术。人脸识别主要流程为:数据采集、人脸检测、特征提取、分类识别。人脸检测即使用算法判断人脸是否存在。特征提取即以计算机语言表达人脸特征。人脸检测有统计与基于知识的方法。特征提取有基于模板匹配、基于几何特征、基于子空间、基于机器学习的方法[1]。

本客户端人脸识别模块采用开源的ArcFace 3.0 SDK。它具有人脸检测、人脸追踪、人脸特征提取、人脸特征比对、人脸属性检测、活体检测等功能。适用于身份核验、门禁通行场景,支持人脸1∶1,1∶N搜索[2]。

1.2 网络爬虫技术

爬虫技术的主要流程为:(1)请求数据:模拟浏览器,通过发送User-Agent等HTTP请求头获取服务端响应,取得网页数据。(2)解析数据:分析、清洗所获取的网页原始数据,通过正则表达式、XPath定位器、BeatifulSoup库等提取出有效数据。(3)数据存储:将解析出的有效数据存储到数据库或Json、Csv等格式文件[3]。

本课题采用Python第三方库Requests对URP综合教务系统发起请求,使用Session保存用户Coookie,Xpath定位器与BeautifulSoup库解析返回数据,列表切片过滤冗余数据,实现学生输入正确账号密码后实时爬取用户教务系统个人信息,并以美观的界面进行展示[4-6]。

2 系统设计

本系统为C/S(客户端/服务器)模式的采用人脸识别验证身份的教务管理客户端。本系统根据用户身份分为三个子系统:管理员、学生、教师。下面从用户角度,展示教务管理客户端的功能结构图,如图1所示。

图1 系统功能结构图Fig.1 System functional structure

学生模块主要展示URP综合教务系统爬取数据,同时增加了校园简介与图灵奖得主简单知识问答功能;教师模块使用浏览器框架,打开URP综合教务系统桌面客户端;管理员模块主要对校园人脸信息进行管理。

3 系统实现

3.1 系统开发环境

系统采用Python语言3.6.8版本编写,开发环境为:Windows 10操作系统,PyCharm开发工具,Qt Designer图形用户界面设计工具。采用的数据库为SQLite数据库、Neo4j数据库。系统硬件配置为:处理器Intel(R)Core(TM)m3-7Y30,主频1.00GHz,内存4G,硬盘存储空间128G,显示适配器为Intel(R) HD Graphics 615,摄像头为内置摄像头。

3.2 系统模块测试与实现

3.2.1 人脸识别模块实现

使用Self.tuku_face_feature()函数对本地用户图库进行人脸图像特征提取。首先定义face_engine为engine.py中的ArcFace()类。再定义Res为Arc Face()类中的ASFInit-Engine()函数,初始化引擎为静态图模式,设置人脸检测角度。调用tuku_path()函数导入本地用户图库,本地图库路径为:FaceAdmin/Resource/Faces,使用Self.Cut()函数对图库路径下的图片长与高转换为4的倍数。本客户端的图库均使用JPG文件保存,图片名称为图片中用户的账号。需要注意的是,每导入图库中图片均需要运行一次Cut()函数,查看图像是否转换成功,最好导入JPG格式文件,因为采用PNG格式的图像容易转换失败。

将图库中图像全部转换成功后,调用ArcFace()类中的ASFDetectFaces()人脸检测函数,若返回值MOK则函数调用成功,开始调用ASFFaceFeatureExtract()函数对图库中图像进行单人脸特征提取,最后以字典形式返回图库中所有图像的人脸特征。提取图库人脸特征流程图如图2所示。

图2 提取图库人脸特征流程图Fig.2 Flow chart of extracting face features from image library

遍历图库中所有人脸特征后,运行run_camera()函数开启摄像头进行人脸识别。

开启摄像头后,首先将摄像头图片宽度处理为4的倍数,将处理好后的图片传递给ASFDetectFaces()函数进行人脸检测。设定阈值为0.7,确认身份阈值0.88。检测出人脸后进行画框,再调用ASFFaceFeatureExtract()函数提取出摄像头中人脸特征。若提取成功,则调用ASFFace FeatureCompare()函数对摄像头中人脸与图库中人脸进行特征比较。如果相似度大于0.88即确定摄像头中人脸身份,跳出While True循环,返回图像名称即用户账号。若相似度一直未达到0.88,设定8秒后结束进程,并返回用户身份“Unknown”。图3为摄像头人脸与图库人脸特征比较流程图。

图3 摄像头人脸与图库人脸特征比较流程图Fig.3 Flow chart of feature comparison between camera face and gallery face

以上说明了login_face.py子文件人脸识别部分的处理。在整个客户端系统中,当用户选择人脸登录,点击打开摄像头按钮时发射信号传递给主文件main.py,连接Camera()槽函数进行处理。Camera()槽函数中先隐藏登录界面,定义Face变量接收login_face.py执行结果。再连接admin_faces.db人脸信息库。查询人脸数据库中Accunt,PWD字段,当返回结果与Account字段匹配时,根据Account字段索引取出PWD字段,将账号、密码值传递给教师版客户端,再通过JS注入账号密码,调用百度API进行验证码识别实现自动登录URP综合教务系统。若人脸识别失败,返回的“Unknown”字符串与数据库中Account字段不匹配,则跳转登录界面,显示识别失败提示框。流程图如图4所示。

图4 人脸识别自动登录流程图Fig.4 Flow chart of automatic login of face recognition

3.2.2 人脸识别模块测试

以下为人脸识别准确性测试表,选取不同光照、角度、表情的测试者照片作为样本,将相似度大于阈值0.88的

计入正确识别次数。测试详情如表1所示。对于面部口罩遮挡情况,也能识别出人脸身份。

表1 人脸识别准确性测试Tab.1 Face recognition accuracy test

3.3 管理员模块

管理员成功登录后可对人脸信息进行增加、删除、查询、修改操作。图5为人脸信息数据库界面。

图5 人脸信息管理界面Fig.5 Face information management interface

3.4 学生模块

学生版客户端各模块功能均由登录校内URP教务系统后实时爬取各对应模块信息。在登录与爬虫模块均采用Session保存Cookie信息。首先将用户输入的账号,密码,与调用百度通用文字识别api识别下载至本地的验证码的结果,作为请求数据,模拟浏览器向http://192.168.16.208/校内URP网址进行session.post请求。通过BeautifulSoup解析页面title,如果为“学分制综合教务”则登录成功。若请求6次均失败,可能原因为用户输入信息错误,少数情况下为百度通用文字识别失败,则弹出提示框,重置调用百度API次数为1。

用户登录成功后,使用Session向各功能模块地址发起Get或Post请求。对爬取下来的页面使用XPath定位器或BeautifulSoup库进行元素解析存储在列表中。冗余与无用的信息使用列表切片进行过滤。连接本地命名为URP的SQlite数据库,将列表数据存储在数据库各对应表中。图6为学生客户端个人教务界面。

图6 学生客户端教务界面Fig.6 Student client educational administration interface

3.5 教师模块

客户端加载URP综合教务系统校内网址,通过执行Javascript脚本填充用户输入的账号、密码,同时调用百度通用文字识别接口进行验证码识别,再运行Javascript脚本填充验证码识别结果。图7为教师客户端教务界面。

图7 教师客户端教务界面Fig.7 Teacher client educational administration interface

4 结语

本课题主要使用网络爬虫、Qt Designer图形界面设计、人脸识别技术,QWebEngineView浏览器框架,SQLite、Neo4j数据库等开发工具,实现了基于人脸识别的教务管理客户端系统,该系统具有良好的人机交互界面,并提高教务系统安全性。

引用

[1] 杨彩凤,刘涛.非负矩阵分解算法用于人脸识别研究综述[J].安庆师范大学学报(自然科学版),2020,26(3):62-69+95.

[2] 蒋阿娟,张文娟.人脸识别综述[J].电脑知识与技术,2019,15(2):173-174+190.

[3] 杜超.基于Python的聚焦爬虫的初步设计与实现[J].现代制造技术与装备,2020,56(12):30-31.

[4] 闫月影,郭海丽.基于卷积神经网络的人脸识别系统在教学管理中的应用[J].中国教育技术装备,2018(22):13-15.

[5] 果大军.高职移动教务管理信息系统综述[J].科技资讯,2017,15(13):174-175.

[6] 李传科.基于Python的网页数据爬虫设计分析[J].信息与电脑(理论版),2020,32(24):130-132.

猜你喜欢

图库教务人脸识别
金山农民画矢量图库的建设与应用
人脸识别 等
教务排课对高等院校教学运行的作用分析
揭开人脸识别的神秘面纱
浅析高校教务管理存在的问题及对策
视图库在AI浪潮里的发展应用
Photoshop CC图库面板的正确打开方法
浅谈新形势下高校教务管理人员的素质与培养
以培养方案为核心的教务管理系统开发的探索与实践
基于类独立核稀疏表示的鲁棒人脸识别