ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【计算机毕业设计】基于深度学习的智能交通流量预测 Web 系统

【计算机毕业设计】基于深度学习的智能交通流量预测 Web 系统 基于深度学习的智能交通流量预测 Web 系统一、项目简介基于 PDFormerTransformer 架构的多元时间序列交通流量预测系统提供完整的 Web 管理界面支持历史数据查询、流量预测、统计分析及系统管理功能。二、技术栈层级技术后端框架Python FastAPI数据库 ORMSQLAlchemy 2.x数据库MySQL 8.xutf8mb4身份认证JWTpython-jose bcrypt预测模型PDFormerPyTorch前端原生 HTML / CSS / JavaScript图表ECharts 5三、项目结构web_app/ ├── .env# 本地环境变量数据库密码等├── requirements.txt# Python 依赖├── import_dyna.py# 历史交通数据批量导入工具├── database/ │ └── init.sql# 数据库建表 初始化数据脚本├── backend/ │ ├── main.py# FastAPI 入口路由挂载静态文件服务│ ├── config.py# 全局配置读取 .env│ ├── database.py# SQLAlchemy 引擎与会话│ ├── core/ │ │ ├── security.py# 密码哈希、JWT 生成/解析│ │ └── deps.py# FastAPI 依赖注入DB会话、当前用户│ ├── models/# SQLAlchemy ORM 模型│ │ ├── user.py# 用户表│ │ ├── traffic.py# 数据集、传感器、历史流量表│ │ └── prediction.py# 预测记录、预测结果表│ ├── schemas/# Pydantic 请求/响应模型│ │ ├── user.py │ │ ├── traffic.py │ │ └── prediction.py │ ├── services/# 业务逻辑层│ │ ├── auth_service.py# 注册、登录、初始化管理员│ │ ├── traffic_service.py# 数据集、传感器、历史查询、统计│ │ └── prediction_service.py# 模型推理含模拟模式回退│ └── routers/# API 路由层│ ├── auth.py# /api/auth/*│ ├── users.py# /api/users/*│ ├── traffic.py# /api/traffic/*│ ├── models.py# /api/models/*│ └── predictions.py# /api/predictions/*└── frontend/ ├── login.html# 登录 / 注册页├── index.html# 首页 Dashboard├── pages/ │ ├── history.html# 历史交通数据查询│ ├── prediction.html# 交通流量预测│ ├── stats.html# 道路未来车流量统计│ └── admin/ │ ├── users.html# 用户管理管理员│ ├── data.html# 数据管理管理员│ ├── models.html# 模型管理管理员│ └── pred_records.html# 预测记录管理管理员└── static/ ├── css/style.css# 全局样式└── js/ ├── api.js# 前端 API 请求封装└── utils.js# 工具函数认证、格式化、省略号分页等四、环境要求Python 3.8 及以上MySQL 8.0 及以上已训练好的 PDFormer 模型权重文件可选无则自动使用模拟模式五、快速启动第一步初始化数据库使用任意 MySQL 客户端执行sourceweb_app/database/init.sql该脚本会自动创建traffic_predict数据库及所有表并写入数据集、传感器节点、模型的初始数据。第二步配置环境变量在web_app/目录下创建.env文件DB_HOSTlocalhostDB_PORT3306DB_USERrootDB_PASSWORD你的MySQL密码DB_NAMEtraffic_predictSECRET_KEYtraffic-predict-secret-key-2026-jayADMIN_PASSWORDAdmin2026ADMIN_PASSWORD是系统首次启动时自动创建的管理员密码用户名固定为admin。第三步安装 Python 依赖pipinstall-rrequirements.txt第四步导入历史交通数据系统自带 **批量导入工具 **import_dyna.py支持将原始数据文件导入 MySQL需在web_app/目录下执行# 导入 PeMS04307个传感器约521万条2~3分钟python import_dyna.py PeMS04# 快速演示只导入前30个传感器约51万条~20秒python import_dyna.py PeMS0430# 导入 CHIBike270个网格节点约119万条~1分钟python import_dyna.py CHIBike# 导入 PeMS07 / PeMS08python import_dyna.py PeMS07 python import_dyna.py PeMS08支持的原始数据文件位于MTFormer/raw_data/下CHIBike 使用.grid网格格式其余数据集使用.dyna点传感器格式。各数据集原始数据量数据集格式节点数采样间隔数据量PeMS04.dyna点传感器3075 分钟约 521 万条PeMS07.dyna点传感器8835 分钟约 1500 万条PeMS08.dyna点传感器1705 分钟约 290 万条CHIBike.grid网格27015×1830 分钟约 119 万条第五步启动服务在web_app/目录下执行uvicorn backend.main:app--host0.0.0.0--port8000--reload启动成功后访问http://localhost:8000六、默认账号用户名密码角色adminAdmin2026管理员七、功能说明登录 / 注册支持新用户自主注册填写用户名、邮箱、密码即可登录后系统签发 JWT Token存储于浏览器 localStorage后续所有请求自动携带Token 有效期 24 小时过期后自动跳转回登录页管理员账号由系统启动时自动创建普通用户注册后默认角色为用户首页 Dashboard顶部展示四项核心统计指标注册用户数、已接入数据集数、历史流量记录总条数、累计预测次数展示当前激活模型的名称、训练数据集、MAE / RMSE / MAPE 等关键性能指标流量趋势折线图展示近 7 天的交通流量走势交通流量等级分布饼图按畅通 / 一般 / 拥堵三级分类统计历史数据占比历史交通数据查询用户可按以下条件筛选历史交通记录数据集选择 PeMS04 / CHIBike 等已接入的数据集传感器节点选择具体的道路传感器或网格节点时间范围设置查询的开始时间与结束时间支持精确到分钟查询结果以表格形式呈现记录时间、流量、车速、占有率、星期等支持省略号分页浏览。点击绘制流量曲线可将结果渲染为 ECharts 折线图。交通流量预测参数说明道路传感器节点选择需要预测的具体路段预测起始时间预测从哪个时间点开始预测步数每步 5 分钟最多 12 步60 分钟星期影响交通规律工作日 vs 周末天气晴天 / 阴天 / 雨天 / 雪天是否节假日节假日与工作日车流规律不同点击开始预测后后端调用当前激活的 PDFormer 模型进行推理或自动回退模拟模式返回每步预测流量值以数据表格 折线图双视图展示本次预测记录自动入库。道路未来车流量统计在预测基础上进一步提供综合统计分析KPI 指标卡平均流量、最大流量、车流总量、预计高峰时段、车流趋势未来交通流量折线图各时间节点的预测车流量曲线历史与未来对比图预测数据与近期历史数据叠加对比交通等级分析饼图畅通 250辆用户管理管理员查看所有注册用户支持按用户名、邮箱关键词搜索创建新用户、编辑用户信息姓名、邮箱、角色禁用 / 启用账号、永久删除用户数据管理管理员展示已接入的所有交通数据集名称、来源、节点数、采样间隔、记录总数选择数据集后可查看传感器节点列表选择传感器后可预览该节点的近期历史流量数据省略号分页若数据未导入记录总数显示未导入页面提示通过import_dyna.py导入数据。模型管理管理员展示所有已录入的预测模型含模型类型、训练数据集、实验编号、训练轮次、耗时等信息每个模型展示完整评估指标Masked MAE / MAPE / RMSE模型性能对比图柱状图折线图同时对比各模型表现无指标数据的模型以灰色占位激活操作将指定模型设为系统当前预测模型预测记录管理管理员查看所有用户发起的历史预测记录发起用户、路段、时间、步数、使用模型、平均流量点击查看详情弹窗展示该次预测的逐步结果时间点 流量值 折线图支持删除预测记录同步删除关联的结果详情八、预测模型说明系统集成两个已训练的 PDFormer 模型模型训练数据集节点数Masked MAEMasked RMSEPDFormer-PeMS04加州 PeMS04307个传感器30716.5126.82PDFormer-CHIBike芝加哥共享单车270个网格2702.153.87模型加载机制系统启动时自动尝试加载 MTFormer/libcity/cache/9056/model_cache/PDFormer_PeMS04.m若文件存在且环境完整使用真实 PDFormer 推理若加载失败自动切换为模拟预测模式基于早晚高峰规律、节假日系数生成预测功能完全正常九、数据库表结构表名说明users用户账号信息traffic_datasets交通数据集元信息含记录总数、时间范围sensors传感器/网格节点信息含经纬度traffic_records历史交通流量数据ml_models机器学习模型信息及评估指标prediction_records用户发起的预测记录prediction_results每次预测的逐步结果详情十、API 接口概览路径说明POST /api/auth/register用户注册POST /api/auth/login用户登录返回 JWT TokenGET /api/traffic/dashboard获取首页统计数据GET /api/traffic/datasets获取数据集列表GET /api/traffic/sensors获取传感器节点列表GET /api/traffic/history查询历史流量数据分页GET /api/traffic/chart获取图表数据GET /api/models/获取模型列表POST /api/models/{id}/activate激活指定模型管理员POST /api/predictions/发起流量预测GET /api/predictions/获取预测记录列表GET /api/users/获取用户列表管理员完整接口文档访问http://localhost:8000/docs十一、注意事项.env 文件包含数据库密码等敏感信息请勿提交到版本仓库。数据库编码必须为 utf8mb4否则中文字段可能出现乱码。模型权重文件较大需确保 MTFormer/libcity/cache/ 目录完整存在。CHIBike 数据集字段映射traffic_flow 对应 inflow流入量traffic_occupancy 借用字段存储 outflow流出量traffic_speed 为 NULL。路径中含有中文部分旧版 Python 环境需确保系统编码为 UTF-8。本项目为个人原创结构清晰功能完整适合课程设计、毕业设计和个人学习使用。如需购买项目成品或定制化需求可以联系作者。
返回列表