基于YOLOv8和Streamlit的交通事故实时检测系统
项目概述
🚗📹 本项目采用YOLOv8(You Only Look Once)目标检测模型结合Streamlit框架,Accident-Detection-yolov8-streamlit实现视频中的交通事故实时检测功能。该应用提供用户友好的界面,支持视频上传、目标检测及结果可视化展示。
核心功能
📹 实时目标检测:运用YOLOv8模型实时检测并追踪视频中的目标物体
🎥 视频分析:支持上传视频文件及RTSP实时流媒体分析
🖼️ 快照捕捉:自动保存检测到事故的关键帧图像用于后续分析
📊 结果可视化:展示带有时间戳和视频详细信息的检测结果
环境要求
- Python 3.x
- 必要Python包:streamlit、opencv-python、tinydb、ultralytics、python-dotenv、secure-smtplib
使用演示
首页界面
[此处插入首页截图]
结果展示页
[此处插入结果页截图]
使用说明
- 安装所需Python依赖包:
pip install -r requirements.txt
- 运行Streamlit应用:
streamlit run app.py
- 打开浏览器访问显示的URL地址
项目目录结构
📁 app.py # 主应用文件
📁 database/ # 检测结果存储目录(JSON格式)
📄 data.json # 包含检测结果的JSON文件
📁 demo/ # 演示素材目录
🖼️ Accident-Detection (1).png # 演示图片1
🖼️ Accident-Detection.png # 演示图片2
📁 requirements.txt # 项目依赖清单文件
📁 snapshots/ # 检测关键帧快照存储目录
📁 utils/ # 工具函数目录
📁 images/ # 测试图片目录
🖼️ test_detat.jpg # 测试图片1
🖼️ test.jpg # 测试图片2
📄 helper.py # 辅助函数模块
📄 notifiction.py # 通知功能模块
📄 settings.py # 配置参数模块
📁 weights/ # 预训练模型权重目录
技术亮点
- 实时处理引擎:采用YOLOv8最新目标检测算法,平衡检测精度与处理速度
- 智能告警系统:通过分析目标运动轨迹和交互状态识别潜在事故
- 轻量级数据库:使用TinyDB实现检测结果的本地化存储与管理
- 模块化设计:各功能组件解耦,便于功能扩展和维护
应用场景
- 交通监控中心实时事故预警
- 智慧城市道路安全监测
- 车载行车记录仪事故自动记录
- 停车场安全管理
- 交通流量分析与事故黑点识别
扩展方向
- 增加多摄像头同步监控功能
- 集成短信/邮件报警通知系统
- 开发事故严重程度评估模块
- 支持云端存储和数据分析
- 添加驾驶员行为分析功能
注:实际部署时建议根据具体场景调整检测参数,并确保硬件配置满足实时处理要求。对于关键任务场景,建议采用GPU加速提升处理性能。