基于YOLOv8+PyQt5开发的行人过马路危险行为检测告警系统(附数据集和源码下载)

news2024/10/7 6:51:02

在这里插入图片描述

系列文章目录

文章目录

  • 系列文章目录
  • 前言
    • 欢迎来到我的博客!我很高兴能与大家分享关于基于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开发库,我们可以创建一个功能强大的系统,为交通安全做出贡献。并附上了项目开发的源代码和部署文档,欢迎大家提问交流,互相学习!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/870941.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ruoyi-vue-pro yudao 项目bpm模块启用及相关SQL脚本

目前ruoyi-vue-pro 项目虽然开源,但是bpm模块被屏蔽了,查看文档却要收费 199元(知识星球),价格有点太高了吧。 分享下如何启用 bpm 模块,顺便贴上sql相关脚本。 一、启用模块 修改根目录 pom.xml 启用模…

Day 29 C++ STL- 函数对象(Function Object)(仿函数)

文章目录 函数对象概念概念本质 函数对象使用特点示例 谓词——返回bool类型的仿函数谓词概念一元谓词——operator()参数只有一个的谓词二元谓词——operator()参数只有俩个的谓词 内建函数对象(Builtin Function Objects)内建函数对象概念注意算术仿函…

Flowable-边界事件-补偿边界事件

目录 定义图形标记XML内容使用示例演示demo 定义 补偿边界事件可以为所依附的节点附加补偿处理器,通过关联连接到补偿处理器(compensation handler)。补偿边界事件会在流程活动完成后根据情况(事务取消或者补偿中间事件触发&…

WAVE SUMMIT2023六大分会场同步开启,飞桨+文心大模型加速区域产业智能化!

由深度学习技术及应用国家工程研究中心主办、百度飞桨和文心大模型承办的WAVE SUMMIT深度学习开发者大会2023将于8月16日重磅来袭!届时上海、广州、深圳、成都、南昌和宁波六大分会场将同步开启! 分会汇聚区域产业大咖、科研机构专家、知名学者和技术大牛…

股票量化分析工具QTYX使用攻略——盘口异动实时监测(更新2.6.8)

QTYX简介‍‍‍ 股票量化交易系统QTYX是一个即可以用于学习,也可以用于实战炒股分析的系统。 分享QTYX系统目的是提供给大家一个搭建量化系统的模版,最终帮助大家搭建属于自己的系统。因此我们提供源码,可以根据自己的风格二次开发。 关于QTY…

研究机构:PayPal稳定币PYUSD有望成为「数字资产」的重要用例

作者:Greg Cipolaro,NYDIG 全球研究主管 编译:WEEX 唯客 本文主要探讨两个话题:1. 过去两周,Crypto ETF 的申请数量激增,它们的审核流程是怎样的?2. 金融科技巨头 PayPal 已推出自己的稳定币 PY…

零代码编程:用ChatGPT对Excel文件批量重命名

文件夹下面有几百个Excel文件,希望去掉开头的“【企查查】专利-”,去掉结尾的电话,然后在后面统一加上“发明专利列表”这几个字。 可以在ChatGPT中这样输入提示词: 你是一个Python编程专家,要完成一个文件标题重命名…

UnrealEngine - 网络同步之连接篇

1 连接过程 - 握手 传统的 C/S 架构下,Client 和 Server 通常会建立一条抽象的 Connection,用来进行两端的通信。 UE 的官方文档中提供了 Client 连接到 Server 的示例 ,简单来说分为如下几步: 打包构建好 Client 和 Server 进程…

windows server 2016 搭建使用 svn 服务器教程

参考教程: https://zhuanlan.zhihu.com/p/428552058 https://blog.csdn.net/weixin_33897722/article/details/85602029 配置环境 windows server 2016 远程服务器公网 ip 安装 SVN 服务端 下载 svn 服务端安装包:https://www.visualsvn.com/download…

如何加密7z压缩包?忘记密码怎么办?

7z压缩包如何设置加密?加密的7z压缩包又如何解密呢?分享7-zip加密、解密教程。 7-zip加密 右键文件选择7-zip打开压缩软件进行压缩或者在打开7-zip软件找到需要压缩的文件,点击添加,开始压缩文件 在压缩文件设置界面&#xff0…

【Bert101】变压器模型背后的复杂数学【03/4】

一、说明 在上一篇文章中,我们详细介绍了变压器模型的编码器块的工作原理。如果您还没有读过那篇文章,我建议您在开始这篇文章之前先阅读它,因为本文中介绍了其中涵盖的概念。您可以前往: 【Bert101】变压器模型背后的复杂数学【…

【图像分类】 理论篇(1) 图像分类的测评指标

对于分类模型的性能评估通常采用混淆矩阵的方式和计算准确率、正确率、召回率和 F1 分数。本文详细介绍图像分类的测评指标 在二分类问题中,样本有正负两个类别,模型对样本的预测结果存在四种组合:真阳性,即预测为正&#x…

无涯教程-Perl - qx函数

描述 此功能是使用反引号执行系统命令的替代方法。例如,qx(ls -l)将使用-l命令行options执行UNIX ls命令。实际上,您可以使用任何一组定界符,而不仅仅是括号。 语法 以下是此函数的简单语法- qx EXPR返回值 该函数从执行的系统命令中返回值。 例 以下是显示其基本用法的…

FPGA实践 ——Verilog基本实验步骤演示

0x00 回顾:AND/OR/NOT 逻辑的特性 AND:与门可以具有两个或更多的输入,并返回一个输出。当所有输入值都为 1 时,输出值为 1。如果输入值中有任何一个为 0,则输出值为 0。 OR:或门可以具有两个或更多的输入…

微信小程序页面交互

目录 案例:登陆——>跳转到个人中心(并展示个人信息) 登陆流程 一、前端页面标签 二、收集前端页面数据 三、前端验证账号密码是否合规 四、根据账号密码向后端发送请求 1.请求工具 2.请求调用 3.根据回调得到的状态进行处理 五.成…

第一章:计算机与编程导论

1.1引言 如何解决问题:通过一组精确陈述的指令来设计问题的解决方案。 程序:一组指令以计算机可以接收和执行的格式描述时。 例如:百货商店管理,编写一套指令,在商品购进和售出时对其跟踪。如果这些指令是正确的&…

某行业CTF一道流量分析题

今晚看了一道题,记录学习下。 给了一个hacktrace.pcapng,分析主要内容如下: 上传两个文件,一个mouse.m2s,一个mimi.zip,将其导出。 mimi.zip中存放着secret.zip和key.pcapng 不过解压需要密码&#xff…

FLStudio21水果最新中文版升级下载

FLStudio21最新中文版是一款非常专业的后期编曲音频处理软件,对于音乐编辑处理的领域内的人而言,是非常能够满足需求的一款工具。FL Studio21拥有强大且专业的创作工具,这是先进的创作工具,让你的音乐突破想象力的限制。FL Studio…

Redis缓存雪崩、击穿、穿透?

我们谈谈Redis在实际项目中用作缓存时经常碰到的,也是经常面试的三大问题:缓存穿透、缓存击穿、缓存雪崩,以及这些问题的常用解决方法。 在介绍这三大问题之前,我们需要先了解Redis作为一个缓存中间件,在项目中是如何…

阿里云服务器竞价实例是什么意思?优缺点对比_选择攻略

腾讯云服务器CVM计费模式分为包年包月、按量计费和竞价实例,什么是竞价实例?竞价实例和按量付费相类似,优势是价格更划算,缺点是云服务器实例有被自动释放风险,腾讯云服务器网来详细说下什么是竞价实例?以及…