基于PyQt5的YOLOv5检测界面——YOLOv5检测目标后声音告警的美化
之前的博文写了如何使YOLOv5在检测到目标后进行声音告警提示,本次的博文是对其进行界面上的优化,让其更加方便易用,距离产品更近了一步。
主要参考了这位大佬的代码,并根据自己的需要,进行了添入语音告警的改进。
大佬的展示视频链接在这:YOLOv5检测界面-PyQt5实现
大佬的源码在这:源码github
我在这里做了搬运,感谢各位有开源分享精神的大佬,让更多人的学习之路变得轻松容易
注:我的YOLOv5检测算法是基于YOLOv5的6.1版本,而且是s模型,由此进行模型的训练,得到训练权重;如果不是6.1版本YOLOv5,在运行我这一套东西的时候,可能会出现各种各样的程序报错。包括上一篇我写的博文用的YOLOv5也是6.1版本的:如何使YOLOv5在检测到目标后进行声音告警提示?
一、界面效果展示
因为使用YOLOv5算法自带的检测结果保存功能,保存下来的视频文件没有声音。所以我使用QQ录屏把效果都录下来了,在实验室录得,背景有点嘈杂。
检测界面效果展示
二、进行的改进
1、首先在main.py文件中加入语音告警代码,添加位置如下:
①在此位置加入这三行代码
代码如下:
t0 = time.time()
count = 0
tplay = 0
②在此位置加入如下代码
代码如下:
value = det[:, 4].max().item() # 解决的是看到视频就报警,每取四个置信度的值,找到最大,大于0.5才播放告警语音if value > 0.5: # 大于0.5播放警示语音count += 1 # count相当于一个滤波器,小延时功能,防止误报(累计5个数之后再报语音)。if count > 5:count = 0if time.time() - tplay > 2.0: # 防止告警声音的叠加播放,2s播放完再继续播报import osos.system('start /b D:/YOLOv5-5.0-PYQT-series/pyqt5-yolov5-yolov5_v6.1/ffmpeg/bin/ffplay.exe -autoexit -nodisp D:/YOLOv5-5.0-PYQT-series/pyqt5-yolov5-yolov5_v6.1/Smoking-warning.mp3') # 音乐播放函数# 参数含义: start /b 后台启动 ffplay音乐播放软件的位置 -autoexit 播放完毕自动退出 -nodisp不显示窗口 mp3语音的位置tplay = time.time()
③ 一个重要的细节,很多人没注意到
以上两部代码添加完成后,运行main.py程序,出来的界面在切换检测模式时会出现卡顿问题(比如,由检测视频切换成摄像头实时检测,出现报错卡顿问题),报错为:local variable ‘tplay’ referenced before assignment 在函数内部更改全局变量就会出现此错误。
具体解决方法可以私信询问哈!
④ 关于文件名字及路径
不要用中文!不要用中文!不要用中文!
全部改为英文命名你该项目的所有文件夹。
文件路径中出现中文会报错:can‘t open/read file: check file path/integrity
**解决办法:**修改路径名称,中文绝对不出现,有时候英文大写也不可以。
代码改进完成后就可以运行程序啦
三、未来展望
还可以将以上大佬开源的项目以及我对项目的改进打包成一个文件,以.exe可执行程序运行。
这样的好处是 1.项目移植到其他电脑设备上后,不需要再重新配置YOLOv5检测算法所需的支持环境(众所周知支持环境的配置问题就是一道坎),打包exe后,点开文件就能用;2.更便于进行展示,不需要看着一堆代码,在IDE编辑器上点击运行,换句话说打包成.exe文件后,更像一个产品了(给甲方看项目效果的时候,总不能让他们看着一堆代码在运行吧,看起来不正式),而且还有一定的保密效果,其他人看不到你的代码了,无法轻易的复制(当然,逆向破解肯定也能搞出来,没有百分百的保密)。
目前已经实现exe打包,但是文件有点大
整体效果与上述视频里的一模一样。
基于PyQt5的YOLOv5检测界面——YOLOv5检测目标后声音告警的美化相关推荐
- 基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程]
基于PyQt5的图形化界面开发--Windows内存资源监视助手[附带编译exe教程] 0. 前言 1. 资源信息获取函数--monitor.py 2. UI界面--listen.py 3. main ...
- 基于PyQt5的图形化界面开发——模拟医院管理系统
基于PyQt5的图形化界面开发--模拟医院管理系统 0. 前言 1. 需求分析 2. 挂号界面的思路.UI界面代码及相应触发函数 2.1 思路分析 2.2 ui_guahao.py 2.3 相应的触发 ...
- 基于深度学习的农作物叶片病害检测系统(UI界面+YOLOv5+训练数据集)
摘要:农作物叶片病害检测系统用于智能检测常见农作物叶片病害情况,自动化标注.记录和保存病害位置和类型,辅助作物病害防治以增加产值.本文详细介绍基于YOLOv5深度学习模型的农作物叶片病害检测系统,在介 ...
- YOLOv5检测界面-PyQt5实现
YOLOv5检测界面–PyQt5实现 2022/11/29更新,添加yolov5 v6.1版本 2022/5/31更新,添加自动保存检测结果的功能 2022/2/6更新,修复了之前评论区提出的bug, ...
- 基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)
摘要:基于深度学习的瓶子检测软件用于自动化瓶子检测与识别,对于各种场景下的塑料瓶.玻璃瓶等进行检测并计数,辅助计算机瓶子生产回收等工序.本文详细介绍深度学习的瓶子检测软件,在介绍算法原理的同时,给出P ...
- 基于深度学习的海洋动物检测系统(Python+YOLOv5+清新界面)
摘要:基于深度学习的海洋动物检测系统使用深度学习技术检测常见海洋动物,识别图片.视频和实时视频中的海洋动物,方便记录.展示和保存结果.本文详细介绍海洋动物检测系统,在介绍算法原理的同时,给出Pytho ...
- 基于YOLOv5的疲劳驾驶检测系统(Python+清新界面+数据集)
摘要:基于YOLOv5的疲劳驾驶检测系统使用深度学习技术检测常见驾驶图片.视频和实时视频中的疲劳行为,识别其闭眼.打哈欠等结果并记录和保存,以防止交通事故发生.本文详细介绍疲劳驾驶检测系统实现原理的同 ...
- 基于Yolov5的草莓病虫害检测识别
项目介绍 上一篇文章介绍了基于卷积神经网络的交通标志分类识别Python交通标志识别基于卷积神经网络的保姆级教程(Tensorflow),并且最后实现了一个pyqt5的GUI界面,并且还制作了一个简单 ...
- 基于Yolov5的交通标志检测识别设计
项目介绍 上一篇文章介绍了基于卷积神经网络的交通标志分类识别Python交通标志识别基于卷积神经网络的保姆级教程(Tensorflow),并且最后实现了一个pyqt5的GUI界面,并且还制作了一个简单 ...
最新文章
- ceph的数据存储之路(6) -----pg的创建
- codetyphon, Lazarus+FreePascal+Tools+Free Components packages+Free Libraries
- 激光点云感知 voxnet本质
- MTK Code Sync Clone
- 【Oracle Database】数据库控制文件管理
- C# 中如何一次 catch 多个异常?
- [vue插件]基于vue2.x的电商图片放大镜插件
- Angular2升级到Angular4
- 为什么Spark能成为最火的大数据计算引擎?它是怎样工作的?
- 在Eclipse中配置DOS(cmd)窗口
- 资料分析——基础知识
- 20140925百度校园招聘二面
- 一个非常简单的爬取网站图片的Python爬虫实例
- 如何开启全新旅途,实现旅游市场活力复苏
- 令人吐血的女大学生平安信.
- Android 关于RemoteViews的理解(一)
- 计算机专业可以当剪辑师,什么人可以做剪辑师?
- 如何通过微信创业赚钱
- Zigbee无线网络及其配电自动化的应用
- 韵达小程序服务器异常,微信小程序快递助手服务端API接入韵达快递返回9300501错误...