Prince-1302/trafficsense

GitHub: Prince-1302/trafficsense

一个基于 AI 的城市交通管理与事件响应平台,通过预测交通拥堵、智能调度警力和市民协同上报来缓解城市交通压力。

Stars: 0 | Forks: 0

# TrafficSense — 班加罗尔交通指挥平台 🚦 **TrafficSense** 是一个先进的、基于 AI 的交通管理和事件响应平台,专为 **Flipkart Gridlock Hackathon** 打造。它通过预测事件引发的交通瘫痪、智能调配交通警察、建议实时绕行路线以及赋能市民上报突发事件,来解决班加罗尔臭名昭著的交通拥堵问题。 ## 🌟 核心功能 该平台分为三个全面且互联互通的仪表板: ### 1. 管理指挥中心 (Police HQ) - **实时概览:** 显示活跃的严重警报、道路封闭和已部署警力的实时 KPI。 - **AI 事件评分:** 使用训练好的 Machine Learning 模型,自动为新增事件分配优先级(Low/Medium/High)和 Impact Score (0-100)。 - **智能部署:** 根据事件的严重程度和位置,计算所需的交通管制人员的准确数量。 - **分析与预测:** 可视化交通趋势、各区域的事件分布,并预测未来的高风险时段。 - **市民报告核实:** 管理员可以审查公众报告、查看上传的照片,并只需单击即可将经过验证的报告转化为官方的实时事件。 ### 2. 交通管制仪表板 (Field Officers) - **特定区域追踪:** 警员只能看到与其被指派区域相关的事件。 - **交互式路线规划:** 集成 Leaflet 地图,显示事件的精确位置和活跃的路障。 - **AI 路线绕行:** 自动生成并显示建议的替代路线,以引导交通避开拥堵路段。 - **事件解决:** 警员可以上传清场证明照片、添加现场记录,并将事件标记为“Resolved”(已解决),同时实时更新管理仪表板。 ### 3. 公众查看仪表板 (Citizens) - **班加罗尔实时地图:** 全屏交互式城市地图,显示所有已验证的活跃事件,并按严重程度进行颜色编码(🔴 High,🟠 Medium,🔵 Low,🟣 Road Closure)。 - **Impact Score 检查器:** 允许市民输入地点,并在开始通勤前计算潜在的交通风险。 - **市民报告门户:** 专用的表单,供公众直接向控制室报告事故、积水、坑洼或车辆故障,并支持上传 GPS 定位和照片。 ## 🛠️ 技术栈与实现 **TrafficSense** 的构建重点在于绝对的性能、快速的原型开发以及令人惊艳的“glassmorphism”(毛玻璃)美学。 ### 前端架构 - **核心:** 纯 HTML5、Vanilla CSS3 和 Vanilla JavaScript。(未使用 React/Angular 等庞大的 JS 框架,以确保零延迟性能和即时加载时间)。 - **地图:** [Leaflet.js](https://leafletjs.com/) 集成了 OpenStreetMap 图块,可提供丰富、交互且轻量级的地理可视化。 - **图表:** [Chart.js](https://www.chartjs.org/) 用于渲染动态的、带动画的分析图表和优先级分布图。 - **设计系统:** 自定义 CSS 变量、平滑的微动画、模糊背景,以及精致的深色/浅色模式切换。 - **状态管理:** 利用浏览器的 `localStorage` 在所有三个仪表板之间无缝同步实时数据,而无需在原型阶段使用复杂的数据库。 ### 后端与 AI 架构 - **服务器:** 使用 Python 和 [Flask](https://flask.palletsprojects.com/) 提供轻量级的 REST API。 - **Machine Learning:** [Scikit-Learn](https://scikit-learn.org/) (RandomForestClassifier 和 RandomForestRegressor)。 - **数据:** 基于包含班加罗尔历史交通事件的模拟数据集 (`Astram event data_anonymized.csv`) 进行训练。 - **模型 Pipeline (`train_model.py`):** - 提取的特征包括时间、事件原因、区域和道路封闭状态。 - 生成 `trafficsense_model.pkl`,用于预测 Priority(优先级 - 分类)和 Impact Score(影响分数 - 回归)。 ## 🚀 设置与安装指南 您可以通过两种模式运行此项目:**Full AI Mode** 或 **Offline Fallback Mode**。 ### 第一步:克隆并设置环境 确保您已安装 Python 3.8+。 ``` git clone cd pip install -r requirements.txt ``` ### 第二步:(可选)重新训练 AI 模型 如果您想从 CSV 数据集生成全新的模型: ``` python train_model.py ``` *这将创建一个新的 `trafficsense_model.pkl` 文件。* ### 第三步:启动后端 AI 服务器 启动 Flask API,以便仪表板可以与训练好的模型进行通信: ``` python app.py ``` *保持此终端窗口打开。服务器将在 `http://localhost:5000` 上运行。* ### 第四步:启动平台 1. 在任何现代 Web 浏览器中打开 `index.html`(或使用 VS Code Live Server)。 2. 使用着陆页上的导航按钮在 **Admin**、**Traffic Controller** 和 **Public** 视图之间切换。 3. 测试流程:在 Public Dashboard 中创建市民报告 -> 在 Admin Dashboard 中进行验证 -> 在 Controller Dashboard 中解决它! ## 🛡️ 降级机制(离线模式) 如果您需要在严格的网络环境或没有 Python 的机器上演示该项目,**前端永远不会崩溃**。 JavaScript 架构包含一个强大的**降级机制**。如果它尝试访问 `http://localhost:5000/predict` 且服务器处于关闭状态,它会自动切换到数学启发式引擎。它会在浏览器本地根据事件的参数计算优先级和分数(例如,Road Closures 会使分数瞬间增加 30 分),从而确保每次演示都能完美无瑕。
标签:Apex, Leaflet, 后端开发, 数据可视化, 智慧交通, 机器学习, 调度指挥系统, 路径规划, 逆向工具