大家好,我是csdn的博主:lqj_本人

这是我的个人博客主页:lqj_本人的博客_CSDN博客-微信小程序,前端,vue领域博主lqj_本人擅长微信小程序,前端,vue,等方面的知识https://blog.csdn.net/lbcyllqj?spm=1000.2115.3001.5343

哔哩哔哩欢迎关注:小淼前端

小淼前端的个人空间_哔哩哔哩_bilibili

本篇文章主要讲述python的人工智能视觉模块的口罩检测实时语音检测报警系统,本篇文章已经成功收录到我们python专栏中:https://blog.csdn.net/lbcyllqj/category_12089557.htmlhttps://blog.csdn.net/lbcyllqj/category_12089557.html

目录

前言

项目介绍

PaddlenHub模块

使用时可能遇到的bug

解决方法

方法解释

playsound模块

项目思路

代码详解

完整代码及注释

效果展示(不带口罩时会有重复语音警告)


前言

本程序主要实现了python的opencv人工智能视觉模块的口罩检测实时语音检测报警。

若不知道怎么安装opencv或者使用的请看我的这篇文章(曾上过csdn综合热榜的top1):

python进阶——人工智能视觉识别_lqj_本人的博客-CSDN博客

同时,另一篇基于opencv的人工智能视觉实现的目标实时跟踪功能(增上过csdn综合热榜的top5):

python进阶——人工智能实时目标跟踪_lqj_本人的博客-CSDN博客

项目介绍

PaddlenHub模块

PaddleHub是飞桨预训练模型管理和迁移学习工具,通过PaddleHub开发者可以使用高质量的预训练模型结合Fine-tune API快速完成迁移学习到应用部署的全流程工作。其提供了飞桨生态下的高质量预训练模型,涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型。

使用时可能遇到的bug

AttributeError: partially initialized module ‘cv2‘ has no attribute ‘gapi_wip_gst_GStreamerPipeline‘

bug显示:cv2没有指定的依赖。

解决方法

在我们的pycharm中自带的命令窗口中输入:

pip install opencv-python install "opencv-python-headless<4.3"

然后,我们再把我们的opencv-python降低版本为与我们安装的opencv-python-headless版本相同即可,我这里用的都是4.2.0.34版本。

方法解释

因为opencv4.3以上的版本会存在与其他模块依赖的兼容性问题,4.3以上的版本兼容性较差,所以,有时会出现一下bug之类的错误。有时,其实我们写的代码没有问题,只是问题出在了依赖的兼容性问题上!

playsound模块

PlaySound是Windows用于播放音乐的API函数(方法)。在vs2010以上版本需要加入#pragma comment(lib, "winmm.lib")才能使用PlaySound。PlaySound函数原型为 BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound)。PlaySound参数,pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。

项目思路

1.使用PaddlenHub模块指定算法,根据面部特征的上下左右来判断是否面部有物体遮挡,并判断遮挡区域及位置,若判断条件成功,则绘制绿色矩形及英文提示。若判断条件失败,则绘制红色矩形及英文提示!

2.使用playsound模块指定我们录制好的MP3文件,当判断条件符合时,则按照playsound模块原生函数播放MP3文件,达到语音警告提示效果!

代码详解

首先导入相应模块

import paddlehub
import cv2
from playsound import playsound

指定paddlehub模块中的算法并赋值

module=paddlehub.Module(name="pyramidbox_lite_mobile_mask")

调用本机摄像头

cap=cv2.VideoCapture(0)

循环判断指定位置及遮挡区域

while(cap.isOpened()):frame = cap.read()[1]input_dict = {'data':[frame]}results = module.face_detection(data=input_dict)result = results[0]

设置绑定键盘按压事件

    k = cv2.waitKey(1) & 0xFF  # 判断按键

判断肯定条件时绿色字体和矩形

 if result['data']!=[]:label = result['data'][0]['label']left = result['data'][0]['left']right = result['data'][0]['right']top = result['data'][0]['top']bottom = result['data'][0]['bottom']color = (0,255,0)color2 = (0,255,0)

判断否定条件时红色字体和矩形,并播放语音警告提示

        if label == 'NO MASK':color = (0,0,255)color2 = (0,0,255)playsound('1.mp3')

cv2最后的绘制及显示交互窗口

        cv2.rectangle(frame,(left,top),(right,bottom),color,3)cv2.putText(frame,label,(left,top-10),cv2.FONT_HERSHEY_SIMPLEX,0.8,color2,2)cv2.imshow('xianshi',frame)

判断监听键盘按压事件

        if k == ord(' '):#退出break

释放摄像头及内存

#释放摄像头
cap.release()
#释放内存
cv2.destroyAllWindows()

完整代码及注释

import paddlehub
import cv2
from playsound import playsound#指定paddlehub模块的视觉算法
module=paddlehub.Module(name="pyramidbox_lite_mobile_mask")
#调用本机摄像头
cap=cv2.VideoCapture(0)
#循环判断面部区域位置
while(cap.isOpened()):frame = cap.read()[1]input_dict = {'data':[frame]}results = module.face_detection(data=input_dict)result = results[0]
#绑定键盘监听事件k = cv2.waitKey(1) & 0xFF  # 判断按键
#当判断为肯定时,则绘制绿色矩形及文字if result['data']!=[]:label = result['data'][0]['label']left = result['data'][0]['left']right = result['data'][0]['right']top = result['data'][0]['top']bottom = result['data'][0]['bottom']color = (0,255,0)color2 = (0,255,0)#当判断为否定式绘制红色矩形及文字if label == 'NO MASK':color = (0,0,255)color2 = (0,0,255)#打开录制的MP3语音文件playsound('1.mp3')#cv2最会的绘制及显示cv2.rectangle(frame,(left,top),(right,bottom),color,3)cv2.putText(frame,label,(left,top-10),cv2.FONT_HERSHEY_SIMPLEX,0.8,color2,2)#显示交互窗口cv2.imshow('xianshi',frame)#监听键盘事件,并判断是否退出if k == ord(' '):#退出break
#释放摄像头
cap.release()
#释放内存
cv2.destroyAllWindows()

效果展示(不带口罩时会有重复语音警告)

python进阶——AI视觉实现口罩检测实时语音报警系统相关推荐

  1. 【MediaPipe】(1) AI视觉,手部关键点实时跟踪,附python完整代码

    各位同学好,今天和大家分享一下如何使用MediaPipe完成手部关键点实时检测跟踪.先放张图看效果,15代表FPS值. 1. 导入工具包 # 安装opencv pip install opencv-c ...

  2. 关于AI视觉-如何连接使用智能语音开发套件(USB语音开发套件)

    智能语音开发套件 ,又可称为 USB语音开发套件,可适配于不同的软硬件平台,为用户提供完整的语音开发解决方案,加快产品的落地 目前 Firefly 支持 USB语音开发套件的平台为目前主流的rk339 ...

  3. python进阶——自动驾驶寻找车道

    大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识h ...

  4. 【机器视觉案例】(5) AI视觉,手势调节物体尺寸,附python完整代码

    各位同学好,今天和大家分享一下如何使用opencv+mediapipe完成远程手势调节图片尺寸的案例.先放张图看效果.当拇指和食指竖起时,根据食指间的连线的长度自由缩放图片尺寸.图片的中点始终位于指尖 ...

  5. 【机器视觉案例】(5) AI视觉,远程手势控制虚拟计算器,附python完整代码

    各位同学好,今天和大家分享一下如何使用MediaPipe+Opencv完成虚拟计算器,先放张图看效果.FPS值为29,食指和中指距离小于规定阈值则认为点击按键,为避免重复数字出现,规定每20帧可点击一 ...

  6. 【MediaPipe】(4) AI视觉,远程手势调节电脑音量,附python完整代码

    各位同学好,今天和大家分享一下如何使用MediaPipe完成手势调节电脑音量,先放张图看效果. 注意!! 本节需要用到手部关键点的实时跟踪,我已经在之前的文章中详细写过了,本节会直接使用,有疑问的同学 ...

  7. Python口罩识别检测全网最全OpenCV训练分类器具体步骤(以训练口罩检测分类器为例)附分类器和数据集下载地址

    声明 本文仅在CSDN发布,其他均为盗版.请支持正版! 正版链接: https://blog.csdn.net/meenr/article/details/115825671 OpenCV训练口罩检测 ...

  8. 《OpenCv视觉之眼》Python图像处理十九:Opencv图像处理实战四之通过OpenCV进行人脸口罩模型训练并进行口罩检测

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  9. 基于python keras口罩检测人脸检测佩戴口罩可读视频可读摄像头实时视频流

    人脸识别技术已经非常普及啦,现在戴口罩的脸支付宝也可以识别,据报道阿里现在正在尝试主导人脸识别技术的某些标准.在商业上大多数公司会选择国内AI大咖,比如百度智能云.阿里智慧云.华为云.腾讯云等等.这些 ...

最新文章

  1. java操作跨页的word cell,“excle如何打印不出现断行“EXCEL中,如何不跨页断行打印或显示,谢谢...
  2. 【opencv】(1) 基础操作:图像视频读取、图像截取、颜色通道
  3. 【java】兴唐第12-14节笔记整理
  4. python实习做什么工作-面试python实习工作需要注意哪些事项???
  5. Mybatis (ParameterType) 如何传递多个不同类型的参数
  6. 在一个无序的int数组上构建一个最小堆的时间复杂度_漫画:寻找无序数组的第k大元素(修订版)...
  7. 金融零售业务大数据分析解决方案
  8. 数学--数论--HDU - 6322 打表找规律
  9. python企业微信回调_回调模式
  10. WinJS实用开发技巧(5):学习资料推荐
  11. Android开发笔记(九十八)往图片添加部件
  12. 从疫情中看智慧医疗场景新应用,智慧医疗纵深发展还有哪些可能性?
  13. 将图片的二进制字节字符串在HTML页面以图片形式输出
  14. [转]苦逼男和女神之间的经典对话,亲身经历过的有木有啊,必须转。。。
  15. 大数据电商数仓分析项目
  16. Android:SQLite和AlertDialog
  17. win10管理员权限怎么获得_实用技巧:如何在win10中安装没有管理员权限的软件...
  18. bboss quartz定时任务使用案例介绍
  19. 认认真真推荐9个高质量公众号
  20. OI(信息学竞赛)常用术语解析

热门文章

  1. 900句--熟背后交流无障碍
  2. 一个普通的小活动让超市回头客源源不断?方案简单到爆
  3. CSS3 empty伪类(:empty)
  4. 典型的AEB误触发场景
  5. 归并排序详解(Acwing 归并排序y总模板)
  6. Git-用 cherry-pick 挑好看的小樱桃
  7. 基于SSM的宠物医院信息系统设计与实现
  8. Centos7加入AD域并通过域账号登录
  9. 钱生钱最好的办法是什么?
  10. 世界杯要来了,AI预测冠军哪家强?