深度学习车辆识别收费管理系统全套源码数据集
基于前后端分离架构的停车场收费与车牌识别演示系统,后端采用Flask、SQLAlchemy及JWT认证,前端使用Vue3、ElementPlus,数据库为MySQL。通过YOLO检测与CRNN+CTC识别车牌,管理员管理通行、车辆、订单等,普通用户查看车辆、识别车牌及管理订单。
这是一个基于前后端分离架构的停车场收费与车牌识别演示系统。管理员通过后台管理通行、车辆、订单、费率和用户;普通用户则通过前台查看车辆、识别车牌以及管理停车订单。整个流程清晰,功能完整,适合作为课程设计或项目演示的参考。
技术栈
| 层级 | 技术 |
|---|---|
| 后端 | Python 3.9+、Flask、SQLAlchemy、Flask-JWT-Extended、PyMySQL |
| 前端 | Vue 3、Vite 4、Pinia、Vue Router、Element Plus、ECharts |
| 数据库 | MySQL 8.x(utf8mb4) |
| 识别 | YOLO 检测 + 自训练 CRNN+CTC 车牌字符识别(plate_recognition/) |
目录结构(相对项目根 c145/)
c145/├── backend/ # Flask 后端
│ ├── app/
│ │ ├── api/ # REST 蓝图:auth、vehicle、access、order、rate、admin
│ │ ├── models/# ORM 模型
│ │ ├── services/# 计费、停车会话
│ │ └── recognition/ # 识别封装
│ ├── uploads/ # 上传图片(运行时生成)
│ ├── run.py # 启动入口
│ └── requirements.txt
├── frontend/# Vue 前端
│ ├── src/
│ └── package.json
├── runs/detect/runs/train/license_plate_detection/weights/
│ └── best.pt# 训练好的检测权重(相对路径由 config 自动解析)
├── init.sql # 建表参考(也可依赖后端首次启动自动建表)
├── train.py # YOLO 检测训练(可选)
├── plate_recognition/ # 车牌 CRNN+CTC 识别训练(见下文)
└── README.md
环境要求
- Python 3.9+
- Node.js 16(前端
package.json与 Vite 4 对齐) - MySQL 已安装并创建库:
vehicle_system,字符集utf8mb4 - 已训练好的检测模型与字符识别模型需位于项目指定目录中
快速开始
1. 数据库
在 MySQL 中执行:
CREATE DATABASE vehicle_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
可选:使用根目录 init.sql 手工建表;若跳过后端首次启动会通过 SQLAlchemy create_all() 建表并写入默认账号。
2. 后端
cd backend
pip install -r requirements.txt
python run.py
默认监听 http://0.0.0.0:5000。
数据库连接默认:localhost:3306,用户 root,密码 root,库名 vehicle_system。若不一致,可设置环境变量或修改 backend/app/config.py:
DB_HOST、DB_PORT、DB_USER、DB_PASSWORD、DB_NAME
3. 前端
cd frontend
npm install
npm run dev
开发地址一般为 http://localhost:5173。vite.config.js 已将 /api 袋里到 http://localhost:5000。
生产构建:
npm run build
将 dist/ 部署到任意静态服务器,并保证接口同源或配置反向袋里到后端。
默认账号
| 角色 | 用户名 | 密码 | 说明 |
|---|---|---|---|
| 管理员 | admin | admin123 | 进入管理后台 /admin |
| 普通用户 | user1 | user123 | 进入用户前台 /user |
首次启动若库中无对应用户,应用会在 _seed_default_data 中创建上述账号(密码已哈希存储)。
车牌识别说明
- 检测模型:
runs/detect/runs/train/license_plate_detection/weights/best.pt(相对项目根,由PROJECT_ROOT拼接,支持项目整体移动;路径含中文时已通过pathlib与二进制读取方式规避常见路径兼容问题)。 - 字符识别模型:
runs/plate_crnn/best.pt,由项目内plate_recognition/训练脚本生成并在后端接口中直接加载。 - 识别流程:YOLO 框出车牌区域 → 扩框裁剪 → 灰度缩放预处理 → CRNN+CTC 推理解码 → 返回车牌号、置信度与检测框。
- 置信度融合:检测结果综合 YOLO 检测置信度与 CRNN 字符识别置信度,输出最终识别结果。
车牌 CRNN+CTC 识别训练(CCPD 风格数据)
依赖:已安装 PyTorch(与 YOLO 环境一致即可)。数据目录为项目下 dataset/,需含 images/train|val 与 labels/train|val(与现有 YOLO 转换结果一致),且 jpg 文件名为 CCPD 编码(可从文件名第五段解析真实车牌)。
在项目根 c145/ 执行:
python -m plate_recognition.train_recognition --epochs 40 --batch-size 64 --device cuda
- 默认
--data-root为./dataset,权重与字符表输出到runs/plate_crnn/best.pt、chars.json。 - 3060 12G 可酌情增大
batch-size。 - 训练完成后,后端识别接口会直接加载
best.pt做字符识别推理,并与检测裁剪流程对接。
接口与权限简述
- 登录:
POST /api/auth/login,返回 JWT;请求头携带Authorization: Bearer。 - 管理员:用户管理、全量车辆、费率、订单减免/收费、通行记录等。
- 普通用户:仅本人名下车辆与相关订单;可使用识别接口上传图片。
常见问题
- 前端跨域:开发环境走 Vite 袋里即可;生产环境请将前后端同源或通过 Nginx 反代
/api。 - MySQL 连接失败:检查账号密码、库是否存在、防火墙与
charset=utf8mb4。 - 模型文件找不到:确认
best.pt仍在上述weights目录;或改config.py中MODEL_PATH(仍建议相对PROJECT_ROOT)。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
CAD零基础入门教程:坐标输入、图层管理与基础绘图命令
本文面向CAD零基础学习者,系统讲解坐标输入、图层管理与基础绘图命令的核心用法。通过分步实操与常见问题排查,帮助新手建立精确绘图习惯,掌握规范出图的基础能力。
CAD从入门到项目交付:绘图、标注、图块与实战工作流
掌握CAD的核心在于建立“画得准、标得清、复用快、交付稳”的工作流。本文提供从环境设置、高频命令组合、标注规范、图块标准化到项目分阶段交付的完整路径,帮助初学者避免常见返工陷阱,独立完成可检查、可复用、可打印的工程图纸。
Claude Code 登录指南:个人、Teams 与企业账号区分与授权步骤
本文详细解析 Claude Code 登录前的账号类型区分方法,涵盖个人订阅、Teams 席位与企业 Enterprise 席位的授权路径差异。提供终端登录命令、环境变量排查及常见异常处理步骤,帮助用户快速完成正确授权并避免登录路径混淆。
Claude Code 文件修改前的权限模式配置与命令审批指南
本文详细介绍Claude Code在修改文件前的权限模式配置方法,包括defaultMode可选值、permissions allow与deny规则设置、多层级配置文件管理以及 status验证技巧,帮助开发者安全高效地使用AI编程助手。
Claude Code接入VS Code后先测扩展和终端命令
在VS Code中接入Claude Code后,建议优先验证扩展面板与集成终端两条入口。本文提供标准检查顺序、关键命令与常见故障排查路径,帮助你快速确认环境就绪,避免后续开发受阻。
- 热门数据榜
相关攻略
2026-09-01 16:53
2026-09-01 16:52
2026-09-01 14:27
2026-09-01 14:12
2026-09-01 14:10
2026-09-01 14:07
2026-09-01 13:55
2026-09-01 13:47
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

