系列文章目录
文章目录
- 系列文章目录
- 前言
- 欢迎来到我的博客!我很高兴能与大家分享关于基于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中安装requirements.txt中的软件包
- 2.anaconda环境导入pycharm
- 三、数据准备
- 1.收集制作图片数据
- 2.labelImg标注工具标注为voc格式或yolo格式标签
- 四、开始训练模型
- 1.修改train.py文件
- 2.运行train.py开始训练
- 3.训练好的模型及评估指标
- 五、PyQt5开发系统GUI界面对接YOLOv8算法模型
- 1.界面开发关键步骤如下:
- 2.GUI界面a示例代码如下
- 3.GUI界面b示例代码如下:
- 六、YOLOv8+GUI界面检测演示
- 1.GUI界面a界面效果(高级)
- 2.GUI界面b界面效果(丐版)
- 七、基于YOLOv8+PyQt5的行人过马路危险行为检测告警系统源码
- GUI界面a(高级)系统源码
- GUI界面b(丐版)系统源码
- 总结
前言
欢迎来到我的博客!我很高兴能与大家分享关于基于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
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开发库,我们可以创建一个功能强大的系统,为交通安全做出贡献。并附上了项目开发的源代码和部署文档,欢迎大家提问交流,互相学习!