biditatropa1-create/WestMine-Project
GitHub: biditatropa1-create/WestMine-Project
基于YOLOv8和ByteTrack的矿区实时计算机视觉监控系统,通过分析CCTV视频流自动检测工人与车辆的危险接近并发出告警,用于职业健康安全合规。
Stars: 0 | Forks: 0
# WestMine 实时工人安全监控系统
**课程:** ICT619 - 人工智能
**作业:** 作业 2 – AI 方案实现
**机构:** Murdoch University,信息技术学院
**学期:** 2026 年第 1 学期
## 项目简介
该系统采用 YOLOv8s (small) 计算机视觉技术,并结合内置的 ByteTrack 跟踪算法,用于监控矿区的监控录像。它可以检测步行工人是否进入危险区域或过于靠近重型车辆(卡车、轿车)。当发现危险情况时,系统会在 Streamlit 仪表板上显示视觉警报,并记录带有时间戳和保存帧的事件,以便进行合规审计。
## 如何设置和运行
### 前置条件
- Python 3.9 或更高版本
- pip (随 Python 一起提供)
- 网络摄像头或测试视频文件 (.mp4, .avi, .mov)
- 网络连接(首次运行将下载 YOLOv8s 模型权重,约 22 MB)
### 设置步骤
```
# 步骤 1:在 WestMine_Safety_System 文件夹中打开终端
# 步骤 2:创建 virtual environment
python -m venv venv
# 步骤 3:激活 virtual environment
# 在 Windows 上:
venv\Scripts\activate
# 在 Mac/Linux 上:
source venv/bin/activate
# 步骤 4:安装所有必需的 packages
pip install -r requirements.txt
# 步骤 5:运行 Streamlit dashboard
streamlit run app.py
```
仪表板将在您的默认浏览器中通过 `http://localhost:8501` 打开。
## 项目文件结构
```
WestMine_Safety_System/
│
├── app.py # Main Streamlit dashboard (entry point)
├── config.py # All system settings in one place
├── detector.py # YOLOv8 detection engine and safety checks
├── evaluator.py # Evaluation metrics and chart generation
├── visualiser.py # Drawing overlays on video frames (OpenCV)
├── run_evaluation.py # Standalone script to evaluate from command line
│
├── requirements.txt # Python package dependencies
├── SETUP_GUIDE.html # Detailed setup guide with screenshots
├── README.md # This file
│
└── output/
├── alerts/ # Saved alert frame images
├── logs/ # CSV alert logs for compliance auditing
├── evaluation/ # Evaluation charts and metrics JSON
│ └── ground_truth_TEMPLATE.csv # Template for manual annotation
└── test_frames/ # Extracted test frames for evaluation
```
## 仪表板使用说明
### 1. 实时监控页面
- 上传视频文件 (.mp4, .avi, .mov) 或连接网络摄像头/RTSP 流
- 系统通过 YOLOv8 处理每一帧并显示:
- 检测到的人周围有绿色边界框
- 检测到的车辆周围有橙色边界框
- 红色危险区域多边形覆盖层
- 人与车辆之间的距离线
- 检测到危险时的红色边框和警告横幅
- 所有警报都会记录在底部的表格中,并附带时间戳
- 您可以将警报日志下载为 CSV 文件
### 2. 评估页面
- 上传测试视频以运行模型并收集实际性能指标
- 显示:已处理帧数、平均 FPS、推理时间、置信度分数
- 如果存在 `ground_truth.csv` 文件,它将计算 precision、recall 和 F1
- 生成图表:置信度分布、按类别的检测情况、随时间变化的 FPS
### 3. 设置页面
- 查看和调整检测参数(置信度阈值、IoU、安全距离、图像尺寸)
- 切换测试时数据增强,以提高对小型/部分隐藏目标的召回率
- 编辑危险区域多边形坐标(带有自动缩放到当前视频的实时预览)
- 点击“应用设置”将更改推送到正在运行的检测器中,无需重启应用
### 4. 关于页面
- 系统概述、技术栈、已知局限性
- 记录相对于原始提案所做的更改
标签:Kubernetes, Streamlit, YOLOv8, 人员安全监测, 目标检测, 视频监控, 计算机视觉, 访问控制, 逆向工具