智能车牌识别系统
项目简介
本项目是一个基于Python的智能车牌识别系统,通过Web界面提供车牌检测与识别服务。用户可上传车辆图片,系统自动完成以下操作:
- 检测图片中的文本区域(重点识别车牌)
- 对检测到的文本进行OCR识别
- 校验识别结果是否符合中国车牌格式(支持蓝牌、黄牌、绿牌、白牌等多种类型)
- 可视化展示原始图片、处理后图片及识别详情(含置信度)
关注我
-
公众号:Harry技术
-
掘金:Harry技术
-
CSDN:Harry技术
-
微信:otahhh
功能特性
前端功能
- 支持图片拖拽上传或点击选择(支持JPG/PNG/WebP格式,最大16MB)
- 实时加载状态提示(旋转加载动画)
- 错误处理(文件类型错误、上传失败等场景提示)
- 结果可视化:
- 原始图片与处理后图片对比展示
- 识别详情列表(含车牌号码、置信度、有效性标识)
- 置信度进度条可视化(百分比显示)
- 不同车牌类型的样式区分(蓝/黄/绿等背景色)
后端功能
- 使用PaddleOCR进行文字检测与识别(中文模型)
- 正则表达式校验车牌有效性(兼容含中间点"·"的车牌)
- 自动绘制检测框(红色加粗边框)及坐标文本(蓝色标注)
- 异常处理(图片读取失败、OCR结果异常等场景捕获)
技术背景
PaddleOCR
PaddleOCR 是百度深度学习平台推出的一款开源OCR工具,基于深度学习技术,能够实现高精度的文本检测和识别。 支持多种 OCR 相关前沿算法,包括但不限于文本检测、文本识别、表格识别等。在此基础上打造产业级特色模型 PP-OCR、PP-Structure 和 PP-ChatOCR,并打通数据生产、模型训练、压缩、预测部署全流程,为开发者提供一站式解决方案。
安装与运行
环境要求
- Python 3.9
- 依赖库:见
requirements.txt(含Flask、PaddleOCR、OpenCV等)
安装步骤
- 克隆项目到本地(或直接下载代码)
- 创建并激活虚拟环境(可选但推荐)
- 安装依赖:
pip install -r requirements.txt
运行服务
python app.py
服务启动后,访问 http://localhost:5000 即可使用。
使用说明
- 打开主页,通过拖拽或点击"选择图片"上传车辆图片
- 系统自动跳转至加载状态(旋转动画提示)
- 处理完成后:
- 成功识别:展示原始图/处理图、识别详情列表(含有效车牌标识)
- 未识别到有效车牌:提示检测到的文本信息
- 出错时:显示具体错误原因(如文件类型错误)
- 可通过"再试一次"或"重试"按钮重新上传图片
目录结构
minglu/
├── .venv/ # 虚拟环境(可选)
├── __pycache__/ # Python缓存文件
├── static/ # 静态资源
│ ├── css/ # 样式文件(Tailwind/Font Awesome)
│ ├── uploads/ # 用户上传图片存储目录
│ └── output/ # 处理后图片存储目录
├── templates/ # 前端模板
│ └── index.html # 主页面
├── app.py # Flask主应用
├── test.py # 车牌识别测试脚本
└── requirements.txt # 依赖清单
技术栈
- 后端框架:Flask(Python Web框架)
- OCR引擎:PaddleOCR(百度开源OCR库,支持中文识别)
- 图像处理:OpenCV(绘制检测框、坐标文本)
- 前端样式:Tailwind CSS(原子化CSS框架)
- 图标库:Font Awesome(6.7.2版本)
注意事项
-
首次运行会自动创建
static/uploads和static/output目录用于存储图片 -
若需使用GPU加速OCR识别,需安装PaddlePaddle GPU版本(当前配置为CPU模式)
-
车牌识别准确率受图片清晰度、光线条件影响,建议上传清晰、无遮挡的车牌图片
示例源码:关注公众号“Harry技术”,回复 ocr 获取源码地址。