基于YOLOv8的交通标志识别Web系统

项目简介

本项目是基于 YOLOv8 的交通标志识别 Web 系统,采用 Flask + Vue + MySQL 架构。系统包含前台用户端和后台管理员端,支持图片识别、视频识别、浏览器摄像头识别、识别历史管理,以及数据概览、数据集管理、模型管理、日志管理和用户管理。

后端在部署时优先使用 GPU 推理,检测不到可用 GPU 时自动回退到 CPU。针对 Windows 中文路径环境,PyTorch 模型保存和加载已通过 io.BytesIO 与 Python 原生文件读写做兼容处理。

技术栈

模块 技术
后端 Flask、Flask-SQLAlchemy、Flask-JWT-Extended
前端 Vue 3、Vite、Vue Router、Axios、ECharts
数据库 MySQL,未配置时可临时回退 SQLite
识别模型 Ultralytics YOLOv8、PyTorch
图像视频处理 OpenCV、NumPy

功能模块

前台用户端

  • 登录注册

  • 图片交通标志识别

  • 视频交通标志识别

  • 浏览器摄像头画面识别

  • 识别历史查询与删除

  • 可用模型查看与选择

后台管理员端

  • 数据概览与可视化图表

  • 数据集管理

  • 模型上传、编辑、启用与删除

  • 系统日志查看与清空

  • 用户新增、编辑与删除

项目结构

复制代码
c267/
├─ app.py                         # Flask 启动入口,同时支持前端构建产物托管
├─ backend/                       # Flask 后端
│  ├─ config.py                   # 配置、路径、数据库连接
│  ├─ models.py                   # 数据模型
│  ├─ routes/                     # 认证、识别、管理、媒体接口
│  ├─ services/                   # 推理、概览、初始化、日志、文件服务
│  └─ utils/                      # 后端通用工具
├─ frontend/                      # Vue 前端
│  ├─ src/api/                    # 接口请求封装
│  ├─ src/components/             # 通用组件
│  ├─ src/router/                 # 路由守卫
│  ├─ src/styles/                 # 全局样式
│  └─ src/views/                  # 登录页、用户端、管理员端
├─ data/                          # 运行期数据、上传文件、识别结果
├─ runs/train/tt100k_yolov8/      # 训练结果、指标与默认权重
├─ data_tt100k.yaml               # TT100K 数据集配置
├─ yolov8n.pt                     # 备用预训练权重
└─ requirements.txt               # Python 依赖

启动说明

1. 后端

复制代码
cd "项目根目录"
conda activate yolo
pip install -r requirements.txt

配置 MySQL:

复制代码
$env:MYSQL_HOST="127.0.0.1"
$env:MYSQL_PORT="3306"
$env:MYSQL_USER="root"
$env:MYSQL_PASSWORD="你的密码"
$env:MYSQL_DB="traffic_sign_web"

启动后端:

复制代码
python app.py

后端默认地址:

复制代码
http://127.0.0.1:5000

2. 前端

复制代码
cd "项目根目录\frontend"
npm install
npm run dev

前端默认地址:

复制代码
http://127.0.0.1:5173

默认账号

复制代码
管理员账号:admin
管理员密码:admin123

部署说明

如需由 Flask 统一托管前端页面,先构建前端:

复制代码
cd "项目根目录\frontend"
npm run build

构建完成后回到项目根目录启动:

复制代码
python app.py

此时访问 Flask 地址即可打开系统页面。

相关推荐
科技新资讯2 分钟前
视频出海精细化升级:帧级对口型技术与商用工具落地能力分析
人工智能·音视频
SomeB1oody9 分钟前
【RustyML入门】3.8. 正则化与归一化层
开发语言·后端·机器学习·rust·教程
微硬创新11 分钟前
大点数模拟量采集落地:耐达讯自动化32路0-20mA适配PROFINET总线实践解析
运维·人工智能·网络协议·自动化·信息与通信
__zRainy__12 分钟前
Node系列 · Node基础:全局变量与全局对象
开发语言·前端·javascript
码云骑士17 分钟前
104-实战论文搜索引擎-ArXiv爬取-Milvus存储-RAG问答-Gradio前端
前端·python·搜索引擎·milvus
招财小梗19 分钟前
AI矩阵获客,品牌连锁落地有啥方案?
大数据·人工智能·矩阵
jianwuhuang8222 分钟前
告别手拷数据:怎么把平板电脑上Perplexity的表格导出来?详解“AI导出鸭”平板版底层逻辑
人工智能·电脑·ai导出鸭
Wang's Blog25 分钟前
AI Agent白手起家57: 上下文记忆系统——基于 Redis 的长短期记忆实现
人工智能
sunly_28 分钟前
TypeScript总结:15、类型速查
前端·javascript·typescript
Brown.alexis28 分钟前
es6知识点3-自备使用
前端·javascript·es6