基于 PaddleOCR 技术实现智能车牌识别系统

295 阅读3分钟

智能车牌识别系统

项目简介

录屏_20250519_221242.gif 本项目是一个基于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等)

安装步骤

  1. 克隆项目到本地(或直接下载代码)
  2. 创建并激活虚拟环境(可选但推荐)
  3. 安装依赖:
    pip install -r requirements.txt
    

运行服务

python app.py

服务启动后,访问 http://localhost:5000 即可使用。

使用说明

  1. 打开主页,通过拖拽或点击"选择图片"上传车辆图片
  2. 系统自动跳转至加载状态(旋转动画提示)
  3. 处理完成后:
    • 成功识别:展示原始图/处理图、识别详情列表(含有效车牌标识)
    • 未识别到有效车牌:提示检测到的文本信息
    • 出错时:显示具体错误原因(如文件类型错误)
  4. 可通过"再试一次"或"重试"按钮重新上传图片

目录结构

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/uploadsstatic/output目录用于存储图片

  • 若需使用GPU加速OCR识别,需安装PaddlePaddle GPU版本(当前配置为CPU模式)

  • 车牌识别准确率受图片清晰度、光线条件影响,建议上传清晰、无遮挡的车牌图片

      示例源码:关注公众号“Harry技术”,回复 ocr 获取源码地址。