Varn1t/TraffiQ
GitHub: Varn1t/TraffiQ
TraffiQ 是一个基于AI的实时交通分析系统,用于车辆检测、流量统计和拥堵预测。
Stars: 70 | Forks: 6
# 🚦 TraffiQ — 基于AI的交通分析系统
一个专业级的实时交通分析系统,基于 **YOLOv8**、**ByteTrack** 和 **Flask** 构建。能够检测和追踪用户自定义车道中的车辆,计算每车道统计信息,标记事件,测量速度,并将所有数据通过带有紫黑渐变UI的实时网络仪表盘展示出来。
其特色是一个高级的双向交互式**控制面板**,允许在不重启系统的情况下实时配置参数。
## ✨ 功能特点
## ⚙️ 交互式控制面板与侧边栏
TraffiQ 通过其动态双向**控制面板**,从一个被动监视器转变为一个主动控制中心:
* **可折叠侧边栏:** 通过悬浮的齿轮(`⚙️`)按钮或 `Escape` 键打开和关闭控制台。设计采用模糊背景和霓虹紫色发光主题。
* **可视化模式切换:** 动态切换激活的处理模式(`车道`、`热力图`、`速度`、`计时器`)。底层的 OpenCV 管线会即时渲染相应的覆盖图层。
* **动态速度触发阈值:** 通过滑块控件即时调整超速抓拍阈值(20 - 120 公里/小时)。边界框会即时高亮显示超速车辆。
* **事件超时配置:** 动态滑动调整停止车辆检测阈值(2秒 - 30秒)。
* **YOLO 置信度滑块:** 滑动检测阈值(0.10 - 0.95)以即时过滤背景噪声或增加目标检测密度。
* **智能冷却锁定:** 设有稳健的5秒交互冷却保护。当快速重复操作时,会显示一个琥珀色玻璃警告横幅,提示 `Please wait 5 seconds before you change`,并在失败时自动将滑块/模式恢复到已验证的后端状态。
## 🚀 快速开始
### 2. 安装依赖
```
pip install -r requirements.txt
```
### 3. 设置凭据
复制示例环境文件并填入您自己的值:
```
cp .env.example .env
```
编辑 `.env` 文件:
```
DASH_USER=your_username
DASH_PASS=your_password
```
### 4. 添加您的视频文件
将您的交通视频放置在项目文件夹中,并更新 `config.py` 里的 `VIDEO_PATH`:
```
VIDEO_PATH = "Traffic_Video.mp4"
```
### 5. 运行系统
```
python main.py
```
1. **ROI 选择框:** 应用程序会打开一个交互式的 OpenCV 选择窗口。使用鼠标为每个车道绘制矩形边界。
2. **按下 ENTER** 键确认车道设置。
3. YOLOv8 模型在后台线程中运行,开始本地摄像机回放,并启动实时仪表盘。
4. 在浏览器中打开 **http://localhost:5050**,登录并动态控制系统。
## 🛠️ 技术栈
- **Python** — 核心逻辑
- **YOLOv8** (Ultralytics) — 车辆检测
- **ByteTrack** (Supervision) — 多目标追踪
- **OpenCV** — 视频处理与热力图覆盖
- **Flask** — Web 服务器与 REST API
- **Chart.js** — 实时仪表盘图表
- **scikit-learn** — 基于随机森林的交通预测
- **Vanilla CSS** — 高级玻璃拟态风格与动画
## 📁 项目结构
```
traffiq/
├── main.py # Main entry point & video processing loop
├── config.py # Configuration variables and thresholds
├── state.py # Thread-safe shared state & stats tracking
├── loggers.py # Logging classes (CSV, SpeedCamera)
├── analytics.py # Core logic: ML predictor, incident detection, flow rates
├── templates.py # UI: Dashboard and landing page HTML
├── web_app.py # Flask application logic
├── requirements.txt # Python dependencies
├── .env.example # Credential template (copy → .env)
├── .gitignore
└── README.md
```
## 📄 许可证
版权所有,归属于 Varn1t
*由 Varnit 构建*
标签:AI交通, ByteTrack, Flask, OpenCV, Python, Web仪表板, YOLOv8, 事件检测, 交互式控制, 交通分析, 交通拥堵, 交通智能, 交通预测, 城市交通, 实时数据, 控制面板, 无后门, 智能交通, 智能城市, 目标跟踪, 移动系统, 视频分析, 车辆检测, 车道管理, 逆向工具, 速度测量