思考车牌号的提取

一辆车的照片如何提取车牌号码?(OCR仅仅是获取数字,怎么能确定该数字是车牌号呢)

通用 OCR 只负责 "识别文字内容",它不知道哪段文字属于车牌。 完整车牌识别 = 车牌检测(找到车牌在哪) + OCR 字符识别(读出号码) + 格式校验(判断是不是合法车牌) 三大块。

如果你直接把整张车照片丢给 PaddleOCR,图片里会识别出:车身贴纸、广告牌、地面文字、车窗贴纸、车牌字符一大堆文本。OCR 分不清哪个才是车牌。

完整流水线(一张车辆照片提取车牌)

1️⃣ 车牌检测(最重要:确定哪一块区域是车牌)

两种实现方式:

  1. 深度学习方案(工程最常用) 用 YOLO 训练一个专门检测车牌的模型,输出车牌的矩形框x1,y1,x2,y2,类别就是license_plate,直接把车牌从整张图抠出来(ROI 裁剪)。

只把裁剪出来的车牌小图送给 OCR,其他区域全部丢弃。

  1. 传统 OpenCV 方案 通过轮廓、颜色(蓝 / 黄 / 绿底色)、宽高比(国内车牌宽高比大约 3:1)过滤候选矩形,筛选出疑似车牌区域。

2️⃣ 图像矫正

裁剪出来的车牌可能倾斜、透视畸变,做透视变换转正车牌图像。

3️⃣ OCR 识别(仅仅读出字符)

把转正后的车牌小图送入 OCR (PaddleOCR/EasyOCR/LPRNet),得到一串文字,例如:粤A12345

这一步只做字符读取,不知道这是不是车牌

4️⃣ 后处理校验:判断读到的数字文字到底是不是合法车牌号

这一步解决你的疑问:拿到一串字符,怎么确认它是车牌号码,而不是广告文字? 用规则约束过滤:

  1. 字符集合:第一位必须是国内省份简称汉字(粤、京、沪、陕......);后面只能是大写字母 + 数字,不能出现普通汉字。
  2. 长度校验:普通蓝牌 7 位;新能源车牌 8 位。
  3. 正则表达式匹配,过滤掉不符合车牌格式的 OCR 结果。
  4. 置信度过滤:OCR 输出置信度太低直接丢弃。

举例:OCR 识别出ABC123超市特价,正则直接判定不是车牌,丢弃该结果。

通俗比喻

  • OCR:就像一个识字的人,随便看到什么字都念出来;
  • 车牌检测:用手指把车牌框出来:"看,就只看这一小块";
  • 格式校验:拿一套车牌书写规范,检查读出来的文字符不符合车牌的写法,符合才输出为车牌号。

容易混淆的两个方案

  1. 通用 OCR (PaddleOCR 原版):通用文字识别,没有车牌概念,不能直接做车牌识别。
  2. LPRNet / YOLO‑plate + OCR:车牌专用方案,先检测车牌位置,裁剪后识别,再格式校验,输出车牌号码。
相关推荐
潜心一志1 天前
HALCON软件——基本架构,算子参数
学习·计算机视觉
差不多的周周1 天前
《HuMoCon:人类运动理解的概念发现》论文核心部分详解
人工智能·深度学习·计算机视觉·自然语言处理
Evand J1 天前
【MATLAB例程,图像滤波降噪12】加权中值滑动窗口滤波(WMF)图像降噪,包含滤波质量评价。附代码下载链接
开发语言·图像处理·人工智能·计算机视觉·matlab·滑动窗口·滤波
不要生病了1 天前
MinD-Vis:用稀疏掩码预训练和双条件扩散从 fMRI 重建视觉图像
人工智能·计算机视觉·脑机接口
YOLO数据集集合1 天前
洪水场景建筑与植被检测数据集 | 洪水检测 建筑识别 植被监测 灾情评估 目标检测9073期
人工智能·目标检测·机器学习·计算机视觉·目标跟踪·无人机视角·灾害救援
潜心一志1 天前
HALCON软件——数据结构
学习·计算机视觉
matlab代码2 天前
基于matlab阈值分割的车牌识别系统【源码75期】
图像处理·opencv·计算机视觉
kyle~2 天前
图像直方图
计算机视觉·数学建模·机器视觉·数学统计
羞儿2 天前
人体姿态估计系统知识框架
深度学习·计算机视觉·姿态估计·行为识别
大江东去浪淘尽千古风流人物2 天前
【UniSim-SLAM】前馈SLAM的双流架构:Sim(3)统一位姿图、与经典SLAM及DPVO的三范式对比
深度学习·计算机视觉·3d·交互·人体姿态估计·eccv·3d重建