人脸口罩检测GUI系统(基于opencv和深度学习两种方法对比)
由于疫情的影响,人脸口罩检测系统的开发成为很多人争相开发的一种算法。很多公司或者个人都开源了他们很多的代码或者SDK。大家在GitHub或者各种平台上都能够找到很多的资源。
前段时间在博客上看到几个有趣的开源项目,它能检测我们是否有戴口罩,跑起程序测试后,发现识别率挺高的,也适应不同环境;于是分享给大家。我用了其中两种并整合在一个GUI下面,一种是基于深度学习的,一种是基于opencv训练的。
测试环境
windows10 系统;
软件:pyCharm;
使用模型:tenforflow1.15.0 ;
python3.7
下面先看一下整个系统的GUI界面:
GUI程序:
from tkinter import *
from tkinter.filedialog import askdirectory
from tkinter.messagebox import showinfo
import cv2
import numpy as np
from PIL import Image, ImageTk
from tkinter import ttk
import pygame
import time
import tensorflow_infer as flow
file_slogan = r'video/slogan.mp3'
file_slogan_short = r'video/slogan_short.mp3'
pygame.mixer.init(frequency=16000, size=-16, channels=2, buffer=4096)
detector = cv2.CascadeClassifier('haarcascades\\haarcascade_frontalface_default.xml')
mask_detector = cv2.CascadeClassifier('xml\\cascade.xml')
class GUI:
def __init__(self):
self.camera = None # 摄像头
self.root = Tk()
self.root.title('maskdetection')
self.root.geometry('%dx%d' % (800, 600))
self.createFirstPage()
mainloop()
def createFirstPage(self):
self.page1 = Frame(self.root)
self.page1.pack()
Label(self.page1, text='欢迎使用口罩检测跟踪系统', font=('粗体', 20)).pack()
image = Image.open("demo2.jpg") # 随便使用一张图片做背景界面 不要太大
photo = ImageTk.PhotoImage(image = image)
self.data1 = Label(self.page1, width=780,image = photo)
self.data1.image = photo
self.data1.pack(padx=5, pady=5)
self.button11 = Button(self.page1, width=18, height=2, text="深度学习算法"