基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记
基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计
此内容为付费资源,请付费后查看
18
立即购买
您当前未登录!建议登录后购买,可保存购买订单
付费资源

资源概况

知识点关键词:Python、opencv、人脸检测、口罩佩戴检测、目标检测、机器视觉
 
一、购买本资源包含以下内容
1、程序源码
2、配套设计报告说明
3、打包好的exe文件

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

 

二、资源内容简介
根据相关工作人员对人们是否佩戴口罩的检测的实际需求,该系统具有以下几项基本功能:
1:能够在给定图片上完成人脸检测、口罩佩戴检测
2:检测人们是否佩戴口罩
3:以及在图片上显示戴口罩的置信度,例如MASK:99.02% NO MASK:100%
 
三、特别说明
1、电子资源,一经售出,概不退款;
2、不提供指导;
3、每年售卖数量有限,售完为止。
 

资源介绍(截取部分,网站请购买)

1 研究背景与意义

新型冠状病毒展现出全球化流行和蔓延的趋势,这提醒我们:传染病防治在今后相当长时间内仍是疾病预测控制工作的重点。戴口罩是预防呼吸道传染病的重要防线,可以降低新型冠状病毒感染风险。口罩不仅可以防止病人喷射飞沫,降低飞沫量和喷射速度,还可以阻挡含病毒的飞沫核,防止佩戴者吸入。所以,戴口罩是日常必要的环节。为了他人安全和自身的安全,进出一些场合,人人都需要戴口罩。但最近天气炎热,人们戴口罩的自觉性不如提前了,在商场等公共场所,需要专门的人员去提醒顾客戴好口罩。因此,开发人脸口罩检测系统是非常有必要的,它能检测我们进入某些场所是否带口罩,跑起程序测试后,发现识别率高,也能适应不同环境。我这次的课程设计的目标是基于人脸识别实现人脸的”是否戴口罩“工作。

2系统功能分析设计

根据相关工作人员对人们是否佩戴口罩的检测的实际需求,该平台应该具有以下几项基本功能:
1:能够在给定图片上完成人脸加口罩的测试。
2:检测人们是否佩戴口罩
3:以及在图片上显示戴口罩的程度。例如MASK:99.02% NO MASK:100%

3系统技术架构分析设计

3.1 系统功能结构设计
该系统要实现检测人们是否佩戴口罩的基本功能,根据自顶向下的设计思路,该系统的模块架构设计如图3-1所示。主要分为人脸识别,获取对照人脸,建立人脸模型,检测实时人脸,通过模型校验,输出识别结果。

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

3.2 系统运行流程
本系统要运行流程如图3-2所示。

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

4 系统开发软、硬件配置要求

系统开放配置要求如下:
(1)操作系统:win11(64位)
(2)Python解释器版本:Python3.7.10
(3)开发工具:Pycharm
(4)所使用的Python内置模块、标准库如表4-1所示:

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

(5)所使用的Python第三方库如表4-2所示:

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

 

5主函数设计

系统主函数主要实现检测是否戴口罩以及佩戴口罩的程度功能,对应的程序流程图如同5-1所示。

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

6功能函数设计

6.1 功能模块1设计
功能模块1主要实现检测是否佩戴口罩功能,对应的程序流程图如同6-1所示。

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

6.2 功能模块2设计
功能模块2主要实现图片显示NO MASK💯00%以及MASK(以及戴口罩的程度)功能,对应的程序流程图如同6-2所示。

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

7 项目打包

将 Python源代码通过pyinstaller生成可执行文件,目的是不需要依赖python编译器就可以运行软件。具体操作如下:
打包生成的可执行文件截图,如图7-1所示。

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

8 源代码

系统总的源代码有210行,选用Pycharm编写完成。(完整详见下载)

import os
#导入os模块到当前程序
import cv2
#引入第三方库cv2
import paddlehub as hub
#引入第三方库paddlehud
import tkinter as tk
#将Tkinter中的公开对象导入当前名称空间
from tkinter import *
#导入tkinter下的所有函数
from tkinter import filedialog
#filedialog是tkinter中的文件对话框
from PIL import Image, ImageTk
#调用pil库,进行图像处理

display_image_width=800
  #图像的宽度
display_image_height=500     
 #图像的长度

Color_list = [
    1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 31, 33, 35, 37, 39,
    41, 43, 44, 46, 48, 50, 52, 53, 55, 57, 59, 60, 62, 64, 66, 67, 69, 71, 73, 74,
    76, 78, 79, 81, 83, 84, 86, 87, 89, 91, 92, 94, 95, 97, 99, 100, 102, 103, 105,
    106, 108, 109, 111, 112, 114, 115, 117, 118, 120, 121, 123, 124, 126, 127, 128,
    130, 131, 133, 134, 135, 137, 138, 139, 141, 142, 143, 145, 146, 147, 149, 150,
    151, 153, 154, 155, 156, 158, 159, 160, 161, 162, 164, 165, 166, 167, 168, 170,
    171, 172, 173, 174, 175, 176, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
    188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
    204, 205, 205, 206, 207, 208, 209, 210, 211, 211, 212, 213, 214, 215, 215, 216,
    217, 218, 219, 219, 220, 221, 222, 222, 223, 224, 224, 225, 226, 226, 227, 228,
    228, 229, 230, 230, 231, 232, 232, 233, 233, 234, 235, 235, 236, 236, 237, 237,
    238, 238, 239, 239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 244, 245,
    245, 246, 246, 246, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 250,
    251, 251, 251, 251, 252, 252, 252, 252, 253, 253, 253, 253, 253, 254, 254, 254,
    254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
    255, 255, 255, 255]
#列表

def whiten_refine_face(whiten_refine_face_src):   #人脸处理
    whiten_refine_face_src = cv2.bilateralFilter(whiten_refine_face_src, 19, 75, 75) 
height, width, n = whiten_refine_face_src.shape
#人脸的长度和宽度
    for i in range(height):                       #遍历长度
        for j in range(width):                    #遍历宽度
            whiten_refine_face_src[i, j, 0] = Color_list[whiten_refine_face_src[i, j, 0]]
            whiten_refine_face_src[i, j, 1] = Color_list[whiten_refine_face_src[i, j, 1]]
            whiten_refine_face_src[i, j, 2] = Color_list[whiten_refine_face_src[i, j, 2]]


class DisplayImage:              #复显图像
    '''用于展示选择的图片'''
    def __init__(self, master):     #python中的内置函数  init函数是初始化函数
        self.master = master    #创建类Displaylmage,它的__init__函数接受一个参数master,这个master参数,把它想象成主窗口,主应用程序,主进程,所以用self.master=master
        master.title("GUI")

        self.image_frame = Frame(master,   #Frame对象表示执行帧,表示程序运行时函数调用栈中的某一帧
                                 bd=0,  #bd设置文本框的边框大小,值越大边框越宽
                                 height=display_image_height,   #图片的高度 
                                 width=display_image_width,    #图片的宽度
                                 bg='yellow',                 #bg设置文本框默认背景色 
                                 highlightthickness=2,          #设置文本框点击后的边框大小
                                 highlightbackground='black',   #选中文字的背景颜色
                                 highlightcolor='black')         #设置文本框点击后的边框大小

        self.image_frame.pack()
        self.Text_label = Label(master, text='图像预览')

9 代码调试运行

系统代码调试采用先模块再整体的调试思路,通过Pycharm的单步断点调试方式。
调试方pycharm单步断点调试方法:

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

代码运行结果:

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

基于Python+OpenCV的人脸识别口罩佩戴检测系统课程设计-创享日记

10 总结与展望

10.1总结
既定的功能设计基本实现。存在的不足:模型只能识别佩戴口罩和不佩戴口罩,但是不能识别出口罩是否佩戴正确。模型是用裁剪后的人脸训练的,那么在实际的应用中也当使用裁剪后的人脸。功能的扩展:利用了思维识别技术。通过这次综合实践,我对专业和项目开发有了更加深切和具体的认识,体会到了写程序的艰辛与复杂,但克服困难之后的喜悦也是巨大的。通过不断地去解决问题,我的能力都有了很大的提高。
10.2展望

  1. 在真正部署到实际中还应当增加数据集,扩充一些故意遮挡的图片。
  2. 通过采用眼部关键点和注意力机制相结合的方法来增强眼部特征,眼部特征图与整体人脸特征图的多级融合,充分挖掘人脸的有效信息,提升模型在口罩遮挡情况下的表现。
  3. 解决戴口罩进行人脸识别存在的问题,例如光照问题,遮挡问题以及人脸识别可能存在的安全性。通过更加完善的系统代码解决这些问题。

11 个人体会

python实验报告已经接近尾声,在这一周的过程中,我更加领悟到了python的魅力。在写实验报告中,不但加深了以往对于python基础语法的认识和运用,更重要的是,在原来的基础上,学到了新的东西。从开始选题到完成实验报告,一开始,更多的只是想完成任务和对自己需要的角度进行学习,随着完成过程中查找的学习内容逐渐丰富以及了解的积累,开始对python越来越感兴趣。当然在个人课程设计过程中遇到了一些技术难点,例如如何检测到有障碍物遮挡的人脸区域,在人群中识别脸部特征较为困难,光照问题,遮挡问题,动态识别问题,图形质量问题,以及人脸识别可能存在安全问题。分析解决办法:利用思维识别技术来进行认证,这项技术具有防窥性,防复制特性,使用户可以把多个账号的密码统一成一个,简化记忆,而且还具备双向验证能力。最后使人脸识别是否戴口罩技术更加完善应用到生活的各个方面。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容