基于Python通过OpenCV实现的口罩识别系统操作篇

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

基于Python通过OpenCV实现的口罩识别系统操作篇


前言

理论思路介绍篇,可以查看往日文章。
项目实现环境:
基于Python 3.8.1版本
opencv-python 4.2.0.34版本
需要自己下载OpenCV的库文件,添加其中的分类器


一、级联分类器

首先要引入相应的级联分类器
本项目一共使用了三个级联分类器:
人脸面部识别树:haarcascade_frontalface_alt2.xml
人脸面部鼻子识别树:haarcascade_mcs_nose.xml
口罩检测识别训练树:cascade.xml(这个训练的级联分类器是第三方制作文件,非OpenCV原厂训练文件)

二、使用步骤

1.引入库

import cv2.cv2 as cv
import time
import numpy as np
import pygame
import threading

以上的相应库函数,通过python的pip可以进行添加,添加OpenCV库的时候容易出现多个bug,建议参考以前的文章OpenCV的安装。

2.引入级联分类器

引入分类器时候,注意使用分类器是要将其引入的地址填写正确。

face_cascade = cv.CascadeClassifier('D:/OPENCV/opencv/build/etc/haarcascades/haarcascade_frontalface_alt2.xml')#人脸面部识别
eye_cascade = cv.CascadeClassifier('D:/OPENCV/opencv/build/etc/haarcascades/haarcascade_eye_tree_eyeglasses.xml')#面部眼镜识别
nose_cascade = cv.CascadeClassifier('D:/OPENCV/opencv/build/etc/haarcascades/haarcascade_mcs_nose.xml')#人脸面部鼻子识别
mask_detector = cv.CascadeClassifier("D:/OPENCV/opencv/build/etc/haarcascades/cascade.xml")#人脸佩戴口罩识别

3.对象识别方式

特征比对函数
可以看到一共有8个参数。

1.img(必需)

这个不用多解释,显然是要输入的图像。图像可以是彩色也可以是灰度的。

2.foundLocations

存取检测到的目标位置

3.hitThreshold (可选)

opencv documents的解释是特征到SVM超平面的距离的阈值(Threshold for the distance between features and SVM classifying plane)

所以说这个参数可能是控制HOG特征与SVM最优超平面间的最大距离,当距离小于阈值时则判定为目标。

4.winStride(可选)

HoG检测窗口移动时的步长(水平及竖直)。

winStride和scale都是比较重要的参数,需要合理的设置。一个合适参数能够大大提升检测精确度,同时也不会使检测时间太长。

5.padding(可选)

在原图外围添加像素,作者在原文中提到,适当的pad可以提高检测的准确率(可能pad后能检测到边角的目标?)

常见的pad size 有(8, 8), (16, 16), (24, 24), (32, 32).

6.scale(可选)
在这里插入图片描述
图是一个图像金字塔,也就是图像的多尺度表示。每层图像都被缩小尺寸并用gaussian平滑。

scale参数可以具体控制金字塔的层数,参数越小,层数越多,检测时间也长。 一下分别是1.01 1.5 1.03 时检测到的目标。 通常scale在1.01-1.5这个区间
在这里插入图片描述
在这里插入图片描述
7.finalThreshold(可选)

这个参数不太清楚,有人说是为了优化最后的bounding box

8.useMeanShiftGrouping(可选)

bool 类型,决定是否应用meanshift 来消除重叠。

default为false,通常也设为false,另行应用non-maxima supperssion效果更好。

实际代码

ret, frame = cameraCapture.read()#首先是将摄像头转化的输出转化为一帧一帧的图像
        gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)将图像转化为灰度图像,减少运算量
        faces = face_cascade.detectMultiScale(gray, 1.2, 10)#运用比对函数1.2为每次以1.2倍移动比对,10为识别次数为10次便认为是我们需要的图像。
        masks = mask_detector.detectMultiScale(gray, 1.03, 5)#
        noses = nose_cascade.detectMultiScale(gray, 1.2, 10)#

对比参数需要按照实际情况进行测试和调整,有时候将对比次数调整的过高将会导致程序的运算量过大,虽然准确无误,但是又会忽略许多的残缺实际对象,比如上图中的小孩子,就会被忽略。

三、画出识别对象

代码操作方式

代码如下(示例):

ret, frame = cameraCapture.read()
        gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
        faces = face_cascade.detectMultiScale(gray, 1.2, 10)# 1.02
        masks = mask_detector.detectMultiScale(gray
基于Python通过OpenCV实现口罩识别系统理论 基于Python通过OpenCV实现口罩识别系统理论设计 一、项目实现环境 基于Python 3.8.1版本 opencv-python 4.2.0.34版本 需要自己下载OpenCV的库文件,添加其中的分类器。 二、设计背景 2019年1月新型冠状病毒爆发,截止目前(7月15号)我国新型病毒感染人数为87250,治愈人数为80914,海外确诊人数16609568,海外治愈人数10339502,这样的数字得我国人民人心惶惶,为了防止新型冠状病毒的进一步传播,我国开始大范围的口罩佩戴 阅读详情

相关推荐

haarcascade_mcs等所有识别xml文件

haarcascade包括mcs在内的所有识别xml文件,因为我的opencv版本是3.0,不包含haarcascade_mcs文件,但其实这个版本要更好一些,并且可以识别鼻子等等,故好不容易整理齐上传上来。

haarcascade_opencv_opennose_人脸识别_haarcascade_haarcascade_eye.xml

open人脸识别分类器,haarcascades包括:............\haarcascade_eye.xml............\haarcascade_eye_tree_eyeglasses.xml............\haarcascade_frontalface_alt2.xml............\haarcascade_mcs_eyepair_big.xml............\haarcascade_mcs_mouth.xml............\haarcascade_mcs_nose.xml

OpenCV 人脸识别 haarcascade和lbpcascade 等一系列XML模型文件

haarcascade —— eye、eye_tree_eyeglasses、frontalcatface、frontalcatface_extended、frontalface_alt、frontalface_alt2、frontalface_alt_tree、frontalface_default、fullbody、lefteye_2splits、licence_plate_rus_16stages、lowerbody、profileface、righteye_2splits、russian_plate_number、smile、upperbody lbpcascade —— frontalcatface、frontalface、frontalface_improved、profileface、silverware

mask_口罩检测_口罩识别_口罩

没带口罩,可以识别,可以检测,非常有价值

opencv分类器 人脸 人眼 上身 鼻子 耳朵等等 检测的.xml文件

haarcascade_eye.xml'haarcascade_eye_tree_eyeglasses.xml'haarcascade_frontalcatface.xml'haarcascade_frontalface_alt.xml'haarcascade_frontalface_alt2.xml'haarcascade_frontalface_alt_tree.xml'haarcascade_frontalface_default.xml'haarcascade_fullbody.xml'haarcascade_lefteye_2splits.xml'haarcascade_licence_plate_rus_16stages.xml'haarcascade_lowerbody.xml'haarcascade_mcs_eyepair_big.xml'haarcascade_mcs_lefteye.xml'haarcascade_mcs_mouth.xml'haarcascade_mcs_nose.xml'haarcascade_mcs_righteye.xml'haarcascade_mcs_upperbody.xml'haarcascade_profileface.xml'haarcascade_righteye_2splits.xml'haarcascade_russian_plate_number.xml'haarcascade_smile.xml'haarcascade_upperbody.xml

OpenCV人脸识别嘴巴鼻子haarcascade_mcs_mouth.xml和haarcascade_mcs_nose.xml百度云

使用Python人脸识别OpenCV真的很好用,只需要调用,不过下载的OpenCV大多缺少部分xml文件(非常好使的),如下图: 图中除了haarcascade_mcs_mouth.xml和haarcascade_mcs_nose.xml是后来找到放进去的,其余都是下载OpenCV之后自带的,可以直接调用,来识别人脸、眼睛、上半身、下半身等,甚至可以识面部的微笑表情。但是!!!原本的文件中缺少了识别鼻子和嘴巴的xml文件,(能识别微笑但是不能识别嘴巴 微笑.jpg)。 我找了很多资源,要么就是CSDN

MY_Azure的博客 7353

基于Opencv口罩佩戴识别系统

疫情之下,有人选择负重前行,有人在年假与工作中毅然选择后者。感谢“疫”路有你,祝愿祖国繁荣昌盛,国泰民安! 人脸识别技术以及非常普及啦,现在的支付宝戴口罩也可以识别,据报道阿里现在正在尝试主导人脸识别技术某些标准。在商业上大多数公司会选择国内AI大咖,比如百度智能云、阿里智慧云、华为云、腾讯云等等。这些平台的AI解决方案可以说代表了中国AI的最高水平。那么不适用他们提供的技术我们能不能做相关方面...

Cheney的博客 6万+

基于OpenCVPython口罩识别系统:使用PythonOpenCV和PyQt技术实现

这玩意儿能实时检测摄像头画面里的人有没有戴口罩,特别适合用在商场入口或者办公楼闸机的位置。输出结果是个二维数组,第一列是戴口罩的概率,第二列是不戴的概率。先看界面长啥样(想象一下图1)——PyQt做的操作面板,中间是视频显示区域,底下有个状态栏实时显示检测结果。最后说个坑:OpenCV的dnn模块对不同版本模型兼容性玄学,如果遇到加载失败,建议用OpenCV4.2以上版本。软件说明:读取用户设备的摄像头,可实时检测画面中的人的口罩佩戴情况,并给予提示。有基础的同学,可稍作修改,检测图片。

2503_94008490的博客 451

基于OpenCVPython和PyQt的口罩识别系统

输出结果是个二维数组,第一列是戴口罩的概率,第二列是不戴的概率。先看界面长啥样(想象一下图1)——PyQt做的操作面板,中间是视频显示区域,底下有个状态栏实时显示检测结果。最后说个坑:OpenCV的dnn模块对不同版本模型兼容性玄学,如果遇到加载失败,建议用OpenCV4.2以上版本。软件说明:读取用户设备的摄像头,可实时检测画面中的人的口罩佩戴情况,并给予提示。软件说明:读取用户设备的摄像头,可实时检测画面中的人的口罩佩戴情况,并给予提示。检测部分才是重头戏。有基础的同学,可稍作修改,检测图片。

2502_94431433的博客 428

基于Python口罩佩戴识别人脸检测系统设计(Opencv

本文设计了一个基于人脸识别口罩检测系统,针对当前疫情防控需求,通过计算机视觉技术实现公共场所戴口罩的自动检测。系统采用Python开发,结合PaddleHub深度学习框架,具备图片检测、实时识别、佩戴口罩程度显示等功能。技术架构包含人脸识别、模型建立、实时检测和结果输出等模块。系统开发环境为Win11+Python3.7,使用OpenCV等第三方库实现图像处理。程序通过210行代码完成核心功能,并打包为可执行文件,便于实际部署应用。测试表明该系统识别准确率高,能适应不同环境场景,有效减轻人工检测压力。

叶绿体不忘呼吸 946

haarcascade_mcs_nose.xml

此码源为训练后的人脸数据,可用于进行人脸和鼻子检测

计算机视觉Python实时口罩检测识别系统 OpenCV、pyqt5 视觉 课程设计✅

计算机视觉Python实时口罩检测识别系统 OpenCV、pyqt5 视觉 课程设计✅

B站计算机毕业设计之家的博客 991

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的口罩识别系统Python+PySide6界面+训练代码)

开发口罩识别系统对公共卫生安全和疫情防控至关重要,介绍使用深度学习构建口罩识别系统的方法,并在文末提供完整资源。系统基于YOLOv8算法,结合YOLOv7、YOLOv6、YOLOv5的性能对比,包括mAP、F1 Score等分析。探讨了YOLOv8的原理,提供Python代码、训练数据集,及PySide6的UI界面。可精确检测图像中的口罩佩戴情况,支持选择图片、视频文件及开启摄像头检测,功能包括热力图分析、标记框、类别统计、可调Conf、IOU参数和结果可视化,包括SQLite的注册登陆界面,支持模型切换。

思绪无限的博客 1万+

使用Python+OpenCV+dlib为人脸生成口罩

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google C++项目编程风格指南 ...

小白学视觉 1518

面部表情识别java_使用Python+OpenCV+dlib为人脸生成口罩

来源:深度学习与计算机视觉本文约4800字,建议阅读6分钟本文试图用OpenCV和dlib库来实现这个过程,在这里我们综合生成5种类型的口罩来绘制人脸图像。本文使用OpenCV dlib库生成口罩 口罩已经被证明是防止COVID-19传播的最好的防御措施之一,然而,这也导致了基于面部特征(包括鼻子、嘴和下巴线)的面部识别算法的失效。在全球有传染病之前,面部识别系统通过对检测到的不同面部特征进行比较...

weixin_28871475的博客 1877

Python+OpenCV实现实时口罩检测系统开发指南

计算机视觉技术在疫情防控中发挥着重要作用,其中人脸检测和口罩识别是典型应用场景。基于OpenCV的图像处理框架配合深度学习模型,可以实现高效的实时检测。该系统采用Python语言开发,结合Haar级联分类器进行人脸检测,使用预训练的DNN模型判断口罩佩戴状态。通过PyQt构建可视化界面,并采用多线程架构保证处理流畅性。这种技术方案在商场、写字楼等公共场所具有实用价值,既能提升防疫检查效率,又能减少人员接触风险。项目中涉及的OpenCV图像处理、多线程编程和模型部署等关键技术,对开发类似计算机视觉应用具有参考

dengkuituo0680的博客 422

实战:使用OpenCV+Python+dlib为人脸生成口罩

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 本文转自|AI算法与图像处理 本文使用OpenCV dlib库生成口罩口罩已经被证明是防止COV...

小白学视觉 1798
上一篇: 基于Python通过OpenCV实现的口罩识别系统理论篇
Forgottenmaster
博客等级 码龄7年 36粉丝 3原创
评论 21
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值