Nikhil-Dubey-0/Traffic-Monitoring-System
GitHub: Nikhil-Dubey-0/Traffic-Monitoring-System
基于 YOLOv8 与规则引擎的实时交通监控系统,通过计算机视觉实现车辆检测、速度估算与拥堵分级。
Stars: 0 | Forks: 0
# 🚗 AI 驱动的智能交通监控系统
这是一个使用计算机视觉进行实时交通监控的**应用机器学习**(Applied Machine Learning)项目。该系统使用预训练的 YOLOv8 模型进行车辆检测,并结合基于规则的拥堵分类。
## 🎯 什么是“应用机器学习”?
该项目展示了**应用机器学习**——将预训练的深度学习模型用于实际应用,而不是从头开始训练。大多数生产级机器学习系统都是这样工作的:
- **车辆检测**:YOLOv8(预训练 CNN)- 自动下载
- **运动追踪**:基于质心的算法
- **拥堵分类**:基于规则的阈值(每车道车辆数 + 速度)
## ✨ 功能
- 🚗 实时车辆检测与计数
- 📊 拥堵程度分类(轻/中/重)
- 🚦 运动追踪与速度估算
- 📈 交互式 Streamlit 仪表盘
- 🎥 支持视频文件和上传
## 🌐 在线演示
**[在 Streamlit Cloud 上试用](https://nikhil-dubey-0-traffic-monitoring-system.streamlit.app)**
## 🚀 快速开始
```
# Clone repository
git clone https://github.com/YOUR_USERNAME/Traffic-Monitoring-System.git
cd Traffic-Monitoring-System
# 安装 dependencies
pip install -r requirements.txt
# 运行 dashboard
streamlit run src/dashboard/app.py
```
## 📁 项目结构
```
Traffic_Monitoring_System/
├── src/
│ ├── detection/ # Vehicle detection & tracking (ACTIVE)
│ │ ├── vehicle_detector.py # YOLOv8 detection
│ │ ├── video_processor.py # Video frame processing
│ │ └── motion_tracker.py # Speed estimation
│ ├── dashboard/ # Streamlit UI (ACTIVE)
│ │ ├── app.py # Main dashboard
│ │ └── components.py # UI components
│ ├── classification/ # PLACEHOLDER - for future ML classifier
│ ├── features/ # PLACEHOLDER - for feature extraction
│ ├── accident/ # PLACEHOLDER - for accident detection
│ ├── config.py # Configuration settings
│ └── utils.py # Helper functions
├── scripts/ # Demo scripts
├── test_videos/ # Sample test videos
├── requirements.txt
└── README.md
```
## 🔧 占位模块
这些模块为未来的机器学习实现做好了准备:
| 模块 | 用途 | 状态 |
|--------|---------|--------|
| `classification/` | 基于机器学习的拥堵分类器 | 占位符 - 当前改用基于规则的方法 |
| `features/` | 用于训练的特征提取 | 占位符 - 当前未使用 |
| `accident/` | 事故/异常检测 | 占位符 - 需要带有标签的数据集 |
## 📊 拥堵程度如何计算
**每车道阈值:**
| 级别 | 车辆数/车道 |
|-------|---------------|
| 🟢 轻 | 0-2 |
| 🟡 中 | 3-5 |
| 🔴 重 | 6+ |
**速度调整:**
- 停滞的交通会提升拥堵级别
- 车辆多且行驶缓慢 = 拥堵更严重
## 🛠️ 技术栈
- **Python 3.8+**
- **YOLOv8** (Ultralytics) - 车辆检测
- **OpenCV** - 视频处理
- **Streamlit** - 仪表盘 UI
- **NumPy/Pandas** - 数据处理
## 📝 环境依赖
```
ultralytics>=8.0.0
opencv-python>=4.8.0
streamlit>=1.28.0
numpy>=1.24.0
pandas>=2.0.0
plotly>=5.15.0
```
## 🎥 添加测试视频
将您的交通视频放入 `test_videos/` 文件夹。支持的格式:`.mp4`、`.avi`、`.mov`
## 📄 许可证
MIT 许可证
## 🤝 贡献
欢迎贡献!尤其是以下几个方面:
- 使用带标签的数据训练拥堵分类器
- 实现事故检测
- 添加车道检测
标签:Apex, Kubernetes, Python, Streamlit, YOLOv8, 交通监控, 无后门, 机器学习, 目标检测, 计算机视觉, 访问控制, 逆向工具