news 2026/9/26 0:09:46

基于深度学习的车辆识别收费管理系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于深度学习的车辆识别收费管理系统

前后端分离的停车场收费与车牌识别演示系统:管理员使用后台进行通行、车辆、订单、费率与用户管理;普通用户使用前台查看车辆、识别车牌与停车订单。

技术栈

层级技术
后端Python 3.9+、Flask、SQLAlchemy、Flask-JWT-Extended、PyMySQL
前端Vue 3、Vite 4、Pinia、Vue Router、Element Plus、ECharts
数据库MySQL 8.x(utf8mb4)
识别YOLO 检测 + EasyOCR;可选自训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
  • 首次运行 EasyOCR 会下载模型,需可访问外网(或自行配置离线模型目录)

快速开始

1. 数据库

在 MySQL 中执行:

CREATE DATABASE vehicle_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

可选:使用根目录init.sql手工建表;若跳过后端首次启动会通过 SQLAlchemycreate_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/部署到任意静态服务器,并保证接口同源或配置反向代理到后端。

默认账号

角色用户名密码说明
管理员adminadmin123进入管理后台/admin
普通用户user1user123进入用户前台/user

首次启动若库中无对应用户,应用会在_seed_default_data中创建上述账号(密码已哈希存储)。

车牌识别说明

  • 检测:runs/detect/runs/train/license_plate_detection/weights/best.pt(相对项目根,由PROJECT_ROOT拼接,支持项目整体移动;路径含中文时建议使用当前实现中的pathlib写法,勿手写盘符绝对路径)。
  • 识别流程:YOLO 框出车牌区域 → 裁剪 → EasyOCR 读字 → 结果清洗与置信度合并。
  • 无 GPU 时 EasyOCR 默认gpu=False;有 CUDA 可在recognizer.py中按需改为gpu=True。

车牌 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。
  • 训练完成后若要在接口中替换 EasyOCR,需在recognizer.py中加载best.pt做推理(与检测裁剪流程对接)。

接口与权限简述

  • 登录:POST /api/auth/login,返回 JWT;请求头携带Authorization: Bearer <token>。
  • 管理员:用户管理、全量车辆、费率、订单减免/收费、通行记录等。
  • 普通用户:仅本人名下车辆与相关订单;可使用识别接口上传图片。

常见问题

  1. 前端跨域:开发环境走 Vite 代理即可;生产环境请将前后端同源或通过 Nginx 反代/api。
  2. MySQL 连接失败:检查账号密码、库是否存在、防火墙与charset=utf8mb4。
  3. 模型文件找不到:确认best.pt仍在上述weights目录;或改config.py中MODEL_PATH(仍建议相对PROJECT_ROOT)。

@作者:Jay
@定制联系 vx:Jay8059
@开发日期:2026 年

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 0:09:01

Rust+Spark性能翻倍?快手Blaze引擎实战指南(附TPC-DS测试对比)

RustSpark性能翻倍&#xff1a;Blaze引擎实战与TPC-DS测试深度解析 大数据处理领域正经历一场静默的革命——当传统Spark作业仍在JVM的桎梏中挣扎时&#xff0c;Rust语言与向量化技术的结合正在重塑性能边界。本文将带您深入Blaze引擎的实战集成过程&#xff0c;从环境配置到性…

作者头像 李华
网站建设 2026/8/23 9:40:02

ZED相机标定实战:手把手教你用Python实现张氏标定法(附完整代码)

ZED相机标定实战&#xff1a;从原理到代码的完整实现指南 在计算机视觉领域&#xff0c;相机标定是三维重建、目标检测和机器人导航等应用的基础环节。作为一款高性能的立体相机&#xff0c;ZED在众多场景中展现出卓越的深度感知能力。本文将深入探讨如何利用Python实现ZED相机…

作者头像 李华
网站建设 2026/8/23 9:40:02

【从零构建Berkeley Humanoid Lite:全栈开源人形机器人技术实战】第三章 IsaacLab 仿真与强化学习训练(算法层)

目录 第三章 IsaacLab 仿真与强化学习训练(算法层) 3.1 基于Isaac Lab的POMDP环境构建 3.1.1 物理仿真参数对齐(Sim2Real Gap最小化) 3.1.2 域随机化(Domain Randomization)策略 3.2 课程式强化学习算法实现 3.2.1 多阶段课程设计(Curriculum Learning) 3.2.2 奖…

作者头像 李华
网站建设 2026/8/23 9:40:02

PCIe拓扑设计避坑指南:如何正确使用Switch扩展设备而不掉速?

PCIe拓扑设计避坑指南&#xff1a;如何正确使用Switch扩展设备而不掉速&#xff1f; 在嵌入式系统和服务器架构中&#xff0c;PCIe交换机的部署直接影响着整个系统的I/O性能表现。许多工程师在初次设计PCIe树形拓扑时&#xff0c;常常陷入"端口越多越好"的误区&#…

作者头像 李华
网站建设 2026/8/23 9:40:03

岐金兰的补充:关于Selbstgefühl,关于康德,关于“不敢”

岐金兰的补充&#xff1a;关于Selbstgefhl&#xff0c;关于康德&#xff0c;关于“不敢”这封信写完之后&#xff0c;我犹豫了很久&#xff0c;要不要附上这篇《自感翻译专章》。犹豫不是因为内容&#xff0c;而是因为一个隐秘的心结——康德。我在《先验自感论》里借用了他的方…

作者头像 李华