基于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 = 0
        if time.time() - tplay > 2.0:  # 防止告警声音的叠加播放,2s播放完再继续播报
            import os
            os.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打包,但是文件有点大
在这里插入图片描述
整体效果与上述视频里的一模一样。

  • 8
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
### 回答1: "Bpyqt5 Yolov5目标检测界面"是一个基于PyQt5Yolov5算法实现的目标检测界面。通过使用Yolov5算法对图片或视频进行检测和识别,界面将识别结果呈现给用户。这种界面可以用于安防监控、智能交通、人脸识别等场景。 ### 回答2: PyQt5是一种Python编程语言下的GUI工具包,可以用于快速构建交互式的图形界面。而YoloV5目标检测则是一种深度学习算法,能够对图像或视频中的目标进行实时识别和跟踪。结合起来,可以实现一个实时目标检测的图形界面,让用户可以在图形化界面上进行实时目标检测的操作。 首先,需要安装PyQt5YoloV5的相关依赖库。在PyQt5中,可以通过创建QWidget或QDialog窗口来实现图形界面的构建,通过布局管理器来控制组件的位置和大小。在界面中可以添加按钮、文本框等组件,还可以添加用于显示检测结果的画布组件。 在YoloV5中,需要先训练出一个能够进行目标检测的深度学习模型。该模型需要能够对图像或视频进行实时识别和跟踪,同时还需要能够将识别的结果进行可视化显示。可以使用Python中的openCV来读取摄像头的数据流,并调用深度学习模型来进行目标检测,最终将识别结果显示在界面的画布组件上。 在界面上的交互操作中,可以增加“开始检测”、“停止检测”、“切换摄像头”等按钮来控制目标检测的开始和停止,以及摄像头的切换。同时还可以添加滑动条等组件来控制检测的参数,比如识别的阈值、帧速率等。 总之,通过PyQt5YoloV5的结合,可以实现一个实时的目标检测GUI界面,使用户可以方便地对图像或视频进行目标检测任务。不过要注意的是,这种技术需要一定的计算资源,需要确保设备的计算能力和性能满足要求。 ### 回答3: PyQt5YoloV5都是现今非常流行的技术,其结合可以实现一个非常强大的目标检测界面。在这个界面中,用户可以输入需要检测的图片或者实时视频流,然后系统会自动检测其中的各个物体并标记出来,给用户一个直观的感受。在制作这个界面的时候,我们需要考虑以下几方面: 1. YoloV5的部署:在制作这个界面之前,我们需要先部署好YoloV5的模型。这里我们可以使用PyTorch或者TensorFlow等框架来实现。在模型部署好之后,我们需要将其集成进我们的PyQt5应用程序中。 2. 界面设计:接下来我们需要设计一个可以方便用户使用的界面。在这个界面中,我们可以包括一个输入框来让用户输入需要检测的图片或者视频。在检测过程中,我们需要将检测到的物体以框的形式标记出来,给用户一个直观的感受。 3. 界面交互:我们需要在界面上加入一些交互元素,例如按钮、菜单等等。这些交互元素可以让用户对检测过程进行一些操作,例如重新检测、暂停检测、保存结果等等。 4. 性能优化:在进行物体检测的时候,我们需要实时处理大量的数据。因此,在这个界面中,我们需要进行一定的性能优化。例如可以使用多线程来加速物体检测的过程,同时可以设置一定的检测阈值来降低误报率,提高检测准确率。 总的来说,在制作PyQt5 YoloV5目标检测界面时,我们需要考虑到模型部署、界面设计、界面交互以及性能优化等方面。如果完成得好,这样的目标检测界面将能够为用户提供非常方便、直观、快速的体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr_LanGX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值