当前位置:   article > 正文

基于YOLOv8+PyQt5开发的行人过马路危险行为检测告警系统(附数据集和源码下载)_基于yolov8+pyqt5实现的过马路玩手机打电话检测告警系统源码

基于yolov8+pyqt5实现的过马路玩手机打电话检测告警系统源码

在这里插入图片描述

系列文章目录


前言

欢迎来到我的博客!我很高兴能与大家分享关于基于YOLOv8的行人过马路危险行为检测告警系统的内容。

交通安全一直是一个备受关注的重要议题。每年都有大量的交通事故发生,其中很多都与行人在过马路时的危险行为有关。
故我开发了一种基于YOLOv8的行人过马路危险行为检测告警系统。它能够快速准确地识别图像或视频中的行人,并判断他们是否存在危险行为。通过结合计算机视觉和深度学习技术,该系统能够实时监测行人在过马路时的行为,并及时发出警报,以提醒行人和驾驶员注意交通安全。


提示:以下是本篇文章正文内容

一、系统特点

  1. 采用最新最优秀的目标检测算法YOLOv8
  2. 系统分别基于PyQt5开发了两种GUI图形界面,供大家学习使用
  3. 系统可以检测本地图片或者视频,也可以实时检测网络视频流,另外可调整IUO阈值,置信度阈值等参数
  4. 系统可升级,带有语音提醒功能,告警抓拍上传,发送告警邮件等功能
  5. 部署简单,适合windows、Linux、Mac系统,安装好requirement.txt中的包即可
  6. 系统带有本人训练好的YOLOv8模型,可直接调用使用,另外附有训练得的评估指标曲线PR_curve、F1_curve、R_curve、训练日志等,无需自己训练

7. 带有训练部分标注好的数据集,训练集、验证集

二、环境配置

建议
1、在anaconda中安装必要的软件包
2、安装pycharm,在pycharm中运行项目
3、以下内容都是在完成1、2两步的基础上进行,很多博客有介绍,在此不必赘述

1.anaconda中安装requirements.txt中的软件包

requirements.txt如下:

# Usage: pip install -r requirements.txt

# Base ----------------------------------------
matplotlib>=3.2.2
opencv-python>=4.6.0
Pillow>=7.1.2
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.64.0
pandas>=1.1.4
seaborn>=0.11.0
psutil  # system utilization
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2.anaconda环境导入pycharm

可参考的博客很多,主要针对该工程导入刚安装的python环境(如envs/YOLOv8/python.exe)


三、数据准备

1.收集制作图片数据

可网络爬取,或者自己模拟拍摄制作
本系统训练的数据集部分图片如下所示:
在这里插入图片描述
在这里插入图片描述

2.labelImg标注工具标注为voc格式或yolo格式标签

voc格式和yolo格式都可以互相转换,标注任意格式都可以
voc格式如下:
描述
yolo格式如下:
在这里插入图片描述
标注的类别有:【斑马线, 人形,手机,没手机,提袋子,车辆,玩手机或打电话,不玩手机,其他】

训练模型是yolov8算法中的yaml配置文件cross_line.yaml如下图所示:
红色框为数据集图片与标签保存路径,names为数据类别
可以按照该方式训练其他模型,训练模型的方法基本与YOLOv5一样。

在这里插入图片描述

四、开始训练模型

放置好标注好的数据集(图片和标签文件),在yaml文件中配置对存放路径,以及数据集类别信息。

1.修改train.py文件

找到ultralytics-main/ultralytics/yolo/v8/detect文件夹,打开train.py,如下图所示:
在这里插入图片描述

2.运行train.py开始训练

在这里插入图片描述
注意: YOLOv8训练过程与YOLOv5、YOLOv7有一点不同,在训练模型时,起始设定训练100个epoch,当训练到60epoch时,精度基本稳定,评估指标不在提升,则训练会提前结束,保存当前最好的模型。

3.训练好的模型及评估指标

训练结束后,保存模型的文件夹包含:weights、args.yaml、confusion_matrix.png、confusion_matrix_normalized.png、F1_curve.png、labels.jpg、labels_correlogram.jpg、P_curve.png、PR_curve.png、R_curve.png、results.csv、results.png等等。

这些评估指标曲线和表可以用于论文或者报告中,也可以通过曲线评比模型训练好坏,掌握数据分布情况等。
在这里插入图片描述

五、PyQt5开发系统GUI界面对接YOLOv8算法模型

1.界面开发关键步骤如下:

  • 安装PyQt5:首先,确保你已经安装了Python和PyQt5库。你可以使用pip命令在终端中安装PyQt5:pip install pyqt5
  • 设计GUI界面:使用Qt Designer工具来设计GUI界面。Qt Designer是一个可视化界面设计工具,可以帮助你创建GUI界面并生成.ui文件。你可以在终端中运行designer命令来启动Qt Designer。
  • 创建主窗口类:在Python代码中创建一个主窗口类,继承自QtWidgets.QMainWindow。在类中,你可以定义界面的布局、按钮、标签等控件,并连接它们的信号和槽函数。
  • 加载.ui文件:使用QtUiTools模块中的QUiLoader类来加载之前设计好的.ui文件。这将把.ui文件中的控件转换为Python对象。
  • 实现目标检测算法:在Python代码中实现YOLOv8目标检测算法。你可以使用OpenCV库加载图像或视频,并将其传递给YOLOv8模型进行目标检测。根据检测结果,你可以在GUI界面上绘制边界框或显示检测结果。
  • 连接信号和槽函数:在主窗口类中,使用QtCore.QObject.connect()函数将控件的信号连接到槽函数。例如,你可以将一个按钮的点击信号连接到一个槽函数,以触发目标检测算法的执行。
  • 运行应用程序:在Python代码的主函数中,创建一个QApplication对象,并实例化主窗口类。最后,调用QApplication对象的exec_()方法来运行应用程序。
  • 通过按照以上步骤,你可以开发一个基于PyQt5的YOLOv8目标检测算法GUI界面。这样,用户可以通过界面加载图像或视频,并实时进行目标检测,从而更方便地使用该算法。

2.GUI界面a示例代码如下

在这里插入图片描述

3.GUI界面b示例代码如下:

在这里插入图片描述

六、YOLOv8+GUI界面检测演示

1.GUI界面a界面效果(高级)

运行main.py自动弹出界面
在这里插入图片描述

2.GUI界面b界面效果(丐版)

运行main_b.py自动弹出界面
在这里插入图片描述

七、基于YOLOv8+PyQt5的行人过马路危险行为检测告警系统源码

GUI界面a(高级)系统源码

下载地址:https://download.csdn.net/download/DeepLearning_/88206346
包含:GUI界面+YOLOv8源码+训练好模型+部分数据集+各种评估指标及训练日志+部署操作说明文档

GUI界面b(丐版)系统源码

下载地址:https://download.csdn.net/download/DeepLearning_/88206347
包含:GUI界面+YOLOv8源码+训练好模型+部分数据集+各种评估指标及训练日志+部署操作说明文档

总结

在本博客中,我们介绍了基于YOLOv8和PyQt5的行人过马路危险行为检测告警系统。通过结合计算机视觉和深度学习技术,我们开发了一个实时监测行人过马路行为的系统,并及时发出警报,以提醒行人和驾驶员注意交通安全。通过结合先进的目标检测算法和强大的GUI开发库,我们可以创建一个功能强大的系统,为交通安全做出贡献。并附上了项目开发的源代码和部署文档,欢迎大家提问交流,互相学习!

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号