基于深度学习的车辆识别收费管理系统
前后端分离的停车场收费与车牌识别演示系统管理员使用后台进行通行、车辆、订单、费率与用户管理普通用户使用前台查看车辆、识别车牌与停车订单。技术栈层级技术后端Python 3.9、Flask、SQLAlchemy、Flask-JWT-Extended、PyMySQL前端Vue 3、Vite 4、Pinia、Vue Router、Element Plus、ECharts数据库MySQL 8.xutf8mb4识别YOLO 检测 EasyOCR可选自训CRNNCTCplate_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/ # 车牌 CRNNCTC 识别训练见下文 └── README.md环境要求Python 3.9Node.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.pyDB_HOST、DB_PORT、DB_USER、DB_PASSWORD、DB_NAME3. 前端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 默认gpuFalse有 CUDA 可在recognizer.py中按需改为gpuTrue。车牌 CRNNCTC 识别训练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。管理员用户管理、全量车辆、费率、订单减免/收费、通行记录等。普通用户仅本人名下车辆与相关订单可使用识别接口上传图片。常见问题前端跨域开发环境走 Vite 代理即可生产环境请将前后端同源或通过 Nginx 反代/api。MySQL 连接失败检查账号密码、库是否存在、防火墙与charsetutf8mb4。模型文件找不到确认best.pt仍在上述weights目录或改config.py中MODEL_PATH仍建议相对PROJECT_ROOT。作者Jay定制联系 vxJay8059开发日期2026 年
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2438197.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!