基于深度学习的人脸识别会议签到系统的设计

2023-10-29 10:22
山西电子技术 2023年5期
关键词:人脸识别人脸会议

王 磊

(山西机电职业技术学院,山西 长治 046000)

1 系统设计背景

会议是日常生活中最重要的交流活动,传统会议以笔纸登记作为签到的主要方式。但是随着社会运行节奏的加快,会议频次越来越高,人数也随之增多,笔纸签到会有很多弊端。比如签到方式繁琐,漏签、代签,统计耗时耗力等,因此,一种新型的会议签到系统急需出现。

论文设计的基于深度学习的人脸识别会议签到系统,可以有效提高签到速度,优化统计方式,提高工作效率,实现会议的信息化、智能化。

2 系统概述

本系统包括人员信息管理、会议管理、人脸模块、信息统计等主要模块,如图1所示。

图1 系统框图

人员信息管理,是对与会人员的基础信息进行增删改查;会议管理包括申请会议、开启会议;人脸模块包括录入人脸、人脸检测和识别;信息统计模块包括参会人员统计。

在系统设计的过程中,前端使用Vue框架设计,后端采用springboot与DJL深度学习框架开发,数据库采用MySQL。人脸检测、人脸识别的模型使用Python语言结合pytorch深度学习框架进行训练。

3 系统设计

3.1 系统整体架构设计

为方便使用,系统采用B/S架构,即浏览器/服务器模式[1]。本系统应用程序及数据库均部署在服务器上,用户可以使用PC端的浏览器通过互联网访问服务器。

系统整体架构如图2 所示,Vue.js、element UI与Axios结合设计前端的视图界面,负责与用户交互;springboot,mybatis,DJL组合设计业务逻辑,包括数据的增删改查以及人脸的检测与识别;系统选用MySQL数据库用于数据存储;使用Python语言及pytorch框架[2]进行人脸识别模型的训练,在模型训练成功之后,将模型放入项目中,通过DJL框架加载模型,用于人脸识别。

图2 系统整体架构

3.2 模块设计

3.2.1 数据库设计

结合系统需求,用户包含参会人员和管理员。参会人员可以进行用户注册、人脸图像录入、会议签到、参加会议等操作;管理员可以进行创建、预约会议,删除会议,开始会议,签到统计,更改签到方式等操作。结合实际需求,系统的数据库表设计如下。

1) user表:此表负责存储用户的信息,id为主键,username、password为用户名及密码,name为用户的真实姓名,is_haveFace存储用户是否录入人脸标识,is_superuser存储是否为管理员用户标识,email为用户的注册邮箱。

2) face表:此表存储人脸信息。该表包含两个字段,id为用户唯一标识,与user表中的id相关联,img_src为保存用户人脸图片的路径。

3.2.2 登录注册模块

为保证数据的安全性,进入系统需要用户名和密码进行身份验证。对于新用户,需先进行注册。如是老用户,可以直接输入用户名密码进行验证。

登录成功进入图像采集界面后,由前端开启摄像头,并获取视频流中的一帧图像,将图片转换成base64格式,再发送到后台。后台接收到数据之后,先将base64格式转换成png图片,再使用DJL框架中的Criteria类加载初始化训练好的人脸检测模型,ModelZool类加载模型。加载模型对截取出来的图片进行人脸检测,如有人脸返回给前端true值,前端向用户提示保持姿态不动,连续截取十张图片传到后台,后台将传过来的数据格式转换后保存成png图片,并截取人脸,去除背景信息。再加载已训练好的识别模型,使用模型提出人脸图像的特征信息,保存为txt文件。将人脸图像和特征信息文件均保存在同一个文件夹下,该文件夹名称对应为该用户的姓名。

3.2.3 会议管理模块

会议管理模块包括预约会议、开启会议、会议签到、结束会议、人数统计等功能。

◆ 预约会议:进入到主界面之后,点击预约会议按钮即可预约会议。由后台生成随机会议码返回给前台,参会人员可以使用该会议码签到。用户输入会议的基本信息,可以直接开始会议,也可以计时自动开启会议。

◆ 开启会议:在预约会议成功或者异步计时结束之后,可进入会议。与会人员可以通过人脸签到的方式进入会议。

◆ 会议签到:会议签到的方式有两种,人脸识别签到和输入会议码签到。

在进入会议签到界面后,摄像头开启。先会获一帧图像,加载人脸检测模型检测是否包含人脸。如检测到人脸,会将人脸区域裁剪出来;没有检测到人脸,前端重新截取图像继续检测。获取待检测人脸后,加载人脸识别模型进行识别,验证成功即签到成功。人脸识别签到不成功,可以通过输入会议码进入会议,会议码由会议申请人公布。

◆ 结束会议:管理员点击结束会议按钮即可结束本次会议。结束会议后,会统计出出席本次会议的人数,并统计出人脸识别签到人数、手动会议码签到人数。

3.2.4 人脸模块

人脸模块包含两个步骤:人脸检测和人脸识别。

人脸模块流程如图3所示前端控制开启摄像头,并获取视频流展示在浏览器中。获取一帧图像之后,由后台加载训练好的retinaface[3]人脸检测模型,如果在图像中检测到了人脸信息,将人脸截取出来。然后再加载facenet人脸识别模型[4],通过人脸识别模型提取出该人脸的特征信息。如果该用户在注册账号时,已经将自己的人脸录入,则该用户的人脸特征向量会保存到以其姓名命名的txt文件中,即特征人脸文件。

识别过程中,将待识别人脸的特征信息与人脸库中的特征向量计算欧式距离,找出距离最小的特征向量。如果计算出的欧式距离小于设定阈值,则该特征向量对应的标签为识别结果,如果大于阈值,识别失败。

本系统选用主干网络为MobileNetV1的retinaface网络模型作为人脸检测算法。人脸识别算法使用resnet18作为facenet的主干网络,即18层的深度残差网络模型。在模型训练的过程中,将三元损失函数修改为ArcFace softmax损失函数[5],可以解决人脸特征类间距离小,类内距离大的问题。

4 系统测试

本系统主要针对国内用户设计,在训练模型的过程中,收集亚洲明星人脸图像,制作出数据集,共有4380个分类,14万张人脸图像。使用Python结合pytorch框架训练出人脸检测、识别模型。

人脸识别界面如图4所示。

图4 人脸识别界面

系统选用10人作为测试对象,每人识别10次,识别成功率达到98%。

5 结论

本系统采用retinaface、facenet模型作为人脸检测和识别的网络模型,选用亚洲人脸作为训练的数据集,识别成功率较高,识别速度较快,用户交互界面友好,各个模块均能稳定运行,极大的提高了签到系统的工作效率。

在制作数据集的过程中,所有的人脸均是在光线明亮的情况下拍摄的,因此模型对光照的鲁棒性有待提高;为进一步提高签到的便捷性,还需提供移动端的接口,让用户可以通过移动设备进行签到。

猜你喜欢
人脸识别人脸会议
《八七会议》
人脸识别 等
有特点的人脸
会议通知
揭开人脸识别的神秘面纱
会议通知
三国漫——人脸解锁
ISO/TC8/SC8 期间会议在沪召开
基于类独立核稀疏表示的鲁棒人脸识别
马面部与人脸相似度惊人