本系统采用YOLOv5+dlib实现佩戴口罩的人脸识别,在佩戴口罩的情况下也可以进行人脸识别。
(1)登录注册模块实现
登录和注册模块隐藏PySide2原有的边框,和退出、最大化、最小化按钮,设置窗口大小为800*450,且打开后窗口固定在屏幕中央不可拖动。在主窗口自定义最小化和退出按钮。点击注册按钮跳转的注册页面,注册页面添加返回功能,点击返回按钮回到登录界面。
登陆界面实现用户名校验,输入合法用户名、密码直接回车可以登录,点击登录按钮也可以登录。点击右上角搜索按钮,程序页面最小化,点击退出按钮退出程序。
注册页面实现账号、密码校验,输入合法用户名、合理密码、确认密码后点击注册按钮注册成功后进入主界面,不成功则重新注册。点击右上角收缩按钮最小化页面,点击退出按钮退出程序。点击左上角返回按钮,返回到登录界面。界面大小固定且居中,不可拖动。
(2)人脸识别实现
主界面采用QMidArea多区域设计。人脸识别是其中一个页面,点击人脸识别按钮,进入人脸识别页面,点击选择摄像头按钮,选择可用摄像头按钮选择摄像头,然后点击开始识别按钮,如果未选择可用摄像头,则开始识别按钮禁用。在人脸识别这一板块,涉及人脸区域目标检测和算法优化。人脸区域目标检测采用YOLOv5算法,返回坐标区域和识别结果。
人脸识别的过程,根据检测出的人脸区域,标定人脸68个特征点,然后提取128D人来特征,遍历人脸特征库,返回二者之间的欧氏距离,如果欧式距离小于一定的阈值,就可以认为识别的人脸是同一张人脸,本系统采取的阈值是0.5,在训练样本最够大的情况下,阈值可以继续调整。
人脸识别界面点击主程序界面的人脸识别按钮,进入该界面。界面中间区域用于展示摄像头画面,右上角小区域用于展示人脸捕获图像,下面展示人脸识别信息。
当不佩戴口罩的人脸区域出现时,摄像头区域框出人脸范围,并在左上角标注识别姓名和no-mask的标志。右侧展示当前人脸和姓名、是否佩戴口罩、人脸数、帧率等信息。
当佩戴口罩的人脸区域出现时,摄像头区域框出人脸范围,区域右上角展示姓名和mask,右侧展示各种信息,包括姓名、mask、人脸数、帧率。
(3) 信息录入实现
人脸信息录入模块与识别模块相似,都是利用YOLOv5目标检测算法进行人脸区域标定,据检测出的人脸区域,标定人脸68个特征点,然后提取128维人脸特征,同时将截取的图片镜像处理,一共得到同一个人佩戴口罩和不佩戴口罩以及镜像文件四种特征值,存入数据库。
人脸录入界面中间区域用于展示当前摄像头捕获的画面,右侧输入用户ID和用户名,当点击采集佩戴口罩照片或者采集不配戴口罩照片的按钮时,采集到的人脸图片展示到右上角的小区域中。Log区域用展示各种操作信息。
(4)人员管理实现
人员管理包括增、删、查三个二级模块,增加模块又包括批量导入图片,批量导入excel表格,新增一个人的信息。导入图片需要现将图片按照指定格式命名后,放在一个文件夹里面,然后选择这个文件夹导入图片。
查询功能,可以根据用户名和工号进行查询,如果什么都不输入点击查询按钮,默认展示所有的录入数据。
单条数据新增的页面,输入用户名和学号,分别点击不佩戴口罩照片和佩戴口罩照片选择图片录入,点击保存按钮录入成功,点击取消按钮退出当前页面。学号做了长度和纯数字校验,防止用户将学号和姓名的位置输入错误。
(5)通行记录管理实现
通行记录模块会展示所有的通行记录信息,通行记录不支持删除,因为需要根据记录找到对应的人。可以根据用户名查询指定姓名的人的通行记录。该模块也可以充当公司考勤功能,应为会记录识别时间。
购买后出现sql和源文件链接哦,想看文档的私信我你的邮箱,看到了会发给你