面向佩戴口罩的人脸识别系统

本系统采用YOLOv5+dlib实现佩戴口罩的人脸识别,在佩戴口罩的情况下也可以进行人脸识别。

关于环境搭建问题:
参考CSDN作者“炮哥带你学”的“利用Anaconda安装pytorch和paddle深度学习环境+pycharm安装—免额外安装CUDA和cudnn”这篇文章。数据集如何划分也可参考炮哥的文章。
环境搭建完成后在anaconda里面新建虚拟环境,将项目的依赖环境改为新建好的conda环境。新建虚拟的环境的目的是因为不同的项目依赖的库不一样,python的版本不一样,全部放在一起会比较乱。
在终端输入pip install -r requirements.txt下载相关依赖,如果某个包下载失败了,删除requirements.txt里面的该包,在anaconda里面单独下载,然后重新执行上面的命令。
本项目使用的版本为python3.6,最好使用相同的版本。

(1)登录注册模块实现

登录和注册模块隐藏PySide2原有的边框,和退出、最大化、最小化按钮,设置窗口大小为800*450,且打开后窗口固定在屏幕中央不可拖动。在主窗口自定义最小化和退出按钮。点击注册按钮跳转的注册页面,注册页面添加返回功能,点击返回按钮回到登录界面。

登陆界面实现用户名校验,输入合法用户名、密码直接回车可以登录,点击登录按钮也可以登录。点击右上角搜索按钮,程序页面最小化,点击退出按钮退出程序。

面向佩戴口罩的人脸识别系统_第1张图片

注册页面实现账号、密码校验,输入合法用户名、合理密码、确认密码后点击注册按钮注册成功后进入主界面,不成功则重新注册。点击右上角收缩按钮最小化页面,点击退出按钮退出程序。点击左上角返回按钮,返回到登录界面。界面大小固定且居中,不可拖动。

面向佩戴口罩的人脸识别系统_第2张图片

(2)人脸识别实现

主界面采用QMidArea多区域设计。人脸识别是其中一个页面,点击人脸识别按钮,进入人脸识别页面,点击选择摄像头按钮,选择可用摄像头按钮选择摄像头,然后点击开始识别按钮,如果未选择可用摄像头,则开始识别按钮禁用。在人脸识别这一板块,涉及人脸区域目标检测和算法优化。人脸区域目标检测采用YOLOv5算法,返回坐标区域和识别结果。

人脸识别的过程,根据检测出的人脸区域,标定人脸68个特征点,然后提取128D人来特征,遍历人脸特征库,返回二者之间的欧氏距离,如果欧式距离小于一定的阈值,就可以认为识别的人脸是同一张人脸,本系统采取的阈值是0.5,在训练样本最够大的情况下,阈值可以继续调整。

人脸识别界面点击主程序界面的人脸识别按钮,进入该界面。界面中间区域用于展示摄像头画面,右上角小区域用于展示人脸捕获图像,下面展示人脸识别信息。

面向佩戴口罩的人脸识别系统_第3张图片

当不佩戴口罩的人脸区域出现时,摄像头区域框出人脸范围,并在左上角标注识别姓名和no-mask的标志。右侧展示当前人脸和姓名、是否佩戴口罩、人脸数、帧率等信息。

面向佩戴口罩的人脸识别系统_第4张图片

当佩戴口罩的人脸区域出现时,摄像头区域框出人脸范围,区域右上角展示姓名和mask,右侧展示各种信息,包括姓名、mask、人脸数、帧率。

面向佩戴口罩的人脸识别系统_第5张图片

(3) 信息录入实现

人脸信息录入模块与识别模块相似,都是利用YOLOv5目标检测算法进行人脸区域标定,据检测出的人脸区域,标定人脸68个特征点,然后提取128维人脸特征,同时将截取的图片镜像处理,一共得到同一个人佩戴口罩和不佩戴口罩以及镜像文件四种特征值,存入数据库。

面向佩戴口罩的人脸识别系统_第6张图片

人脸录入界面中间区域用于展示当前摄像头捕获的画面,右侧输入用户ID和用户名,当点击采集佩戴口罩照片或者采集不配戴口罩照片的按钮时,采集到的人脸图片展示到右上角的小区域中。Log区域用展示各种操作信息。

(4)人员管理实现

人员管理包括增、删、查三个二级模块,增加模块又包括批量导入图片,批量导入excel表格,新增一个人的信息。导入图片需要现将图片按照指定格式命名后,放在一个文件夹里面,然后选择这个文件夹导入图片。

查询功能,可以根据用户名和工号进行查询,如果什么都不输入点击查询按钮,默认展示所有的录入数据。

单条数据新增的页面,输入用户名和学号,分别点击不佩戴口罩照片和佩戴口罩照片选择图片录入,点击保存按钮录入成功,点击取消按钮退出当前页面。学号做了长度和纯数字校验,防止用户将学号和姓名的位置输入错误。

面向佩戴口罩的人脸识别系统_第7张图片

面向佩戴口罩的人脸识别系统_第8张图片

(5)通行记录管理实现

通行记录模块会展示所有的通行记录信息,通行记录不支持删除,因为需要根据记录找到对应的人。可以根据用户名查询指定姓名的人的通行记录。该模块也可以充当公司考勤功能,应为会记录识别时间。

面向佩戴口罩的人脸识别系统_第9张图片

源码:https://mbd.pub/o/bread/Yp2WlZdq

你可能感兴趣的:(人脸识别,opencv,python,深度学习,qt5)