​第八篇:字符识别

  车牌定位、车牌倾斜校正、车牌字符分割都是为车牌字符识别做的前提工作,这些前提工作直接关系到车牌识别系统的性能。车牌字符识别是车牌识别系统的核心部分,车牌字符识别的准确率是衡量车牌识别系统的一个很重要的指标。

  一般字符识别的方法就是采用模式识别方法,简单的来说模式识别就是先通过提取输入模板的特征,然后通过模板的特征对样本进行分类,从而识别出样本。模式识别主要包括:数据采集、预处理、特征提取、特征匹配,其结构框架如图:

  字符识别是模式识别的一个重要应用,首先提取待识别字符的特征;然后对提取出来的特征跟字符模板的特征匹配;最后根据准则判定该字符所属的类别。不同的训练方法,不同的特征提取, 不同的匹配规则,就相应的有不同的字符识别方法,基本上很多就是在这些地方做改进,或者是采用新的规则。但是万变不离其宗。

(1)模板匹配字符识别算法。

  模板匹配字符识别算法是图像识别中的经典算法之一,该算法的核心思想是:通过比较待识别字符图像的字符特征和标准模板的字符特征,计算两者之间的相似性,相似性最大的标准模板的字符即为待识别的字符。该方法首先要建立标准模板库,其中标准模板库中的字符的大小是一样的;然后将待识别的字符规格化,其大小应该和模板库中的字符一样;最后将待识别的字符和标准模板库中的所有字符进行匹配,计算相似度。模板匹配字符识别算法适用于印刷字体、字体规范的字符等,但是对字符变形、弯曲、字符旋转等情况的抗干扰能力差。

(2)神经网络字符识别算法

  主要思想是:通过神经网络学习大量字符样本,从而得到字符的样本特征。当对待识别的字符进行识别时,神经网络就会将待识别字符的特征和之前得到的样本特征匹配,从而识别出字符。该算法主要利用神经网络的学习和记忆功能。神经网络虽然有其优点,但是由于采用神经网络识别字符依赖于初始的样本的选择,并且容易陷入局部最优和收敛速度慢,因此采用神经网络识别字符的算法仍需要改进。

(3)支持向量机

  主要思想:同上,都是先得到样本特征,进行训练,然后再分类。SVM应该算是用的的最多的分类方法,一般大多适合于二分类问题,在这里就需要使用多分类器来构造。

字符识别步骤:

1、归一化

  主要包括位置归一化和大小归一化。由于本文处理的车牌字符都是标准的印刷体字符,且都进行过倾斜校正,所以不需要对其进行位置归一化。但由于摄像距离大小不一样,导致拍摄到的车辆图像中的车牌字符大小不一,为了达到更好的识别效果,就需要对分割出来的单个车牌字符进行大小归一化。常用的归一化方法有两种:一种是将字符图像的外边框按比例线性放大或缩小到规定尺寸;另一种是根据水平和垂直两个方向像素的分布进行大小归一化。一般用第一种。当映射到原图像的点的坐标不是整数,即位于几个像素之间,这就需要利用插值算法来决定该像素的值。使用常见的双线性插值法。将图像归一化为32*64的。

2、特征

根据上一篇的介绍,采用LBP特征来识别汉字,均匀网格特征来识别字母和数字。

3、分类器

  SVM作为分类器。支持向量机的原理,其所涉及到的数学知识比较复杂,自己编程实现的话有一定难度。采用现成的支持 SVM 的工具箱,公认做的比较好的是台湾大学林智仁(Chih-Jen Lin)教授开发的 LibSVM,支持 SVM 的各种算法,可以解决回归和分类识别问题。LibSVM 不但提供了 Windows 系统的可执行文件,还提供了 C 语言的源代码,方便科研工作者根据自己的需要进行改进,而且还提供了 Java、Matlab、C#、Ruthon 等语言的接口。当然可以直接调用opencv中的SVM工具。

  汉字的笔画很稠密,字符分辨率非常低:如果对车牌汉字字符进行二值化,将会丢失汉字的很多重要的结构信息,产生不必要的噪声,导致笔画断裂和笔画粘连等。

4、二次识别

  总的来说,单个字符的识别率比较高,容易识别错的主要是相近字符,解决这类问题的最佳办法就是二次识别。将相似字符中的一个识别出来后,便能确定其属于哪一类相近字符类别,利用区分相近字符的细节特征,将这个字符到专门识别这类相近字符的分类器中进行二次识别。车牌字符中相近字符主要有5类,分为为“0”、“D”、“Q”,“B”、“8”,“2”、"Z",“5”、"S"和“A”、“4”。

  (1) “0”、“D、“Q”

  从字符图像中可以看出,它们的区分在左侧和右下角,其中“D”的左边为直线,黑色像素点较多,而“0”和“Q”的左边均为弧线,黑色像素点相对较少;字符“Q”的右下角的笔画丰富,黑色像素较多。具体局部特征如图5.9:

  (2)“B、8“

  它们的区别在字符的左侧,“8”的左侧为弧线,而“B”的左侧为直线。具体局部

  (3) “2、Z"

  它们的区别在字符的上方,“2”的上方为弧线,“Z”的上方为直线,具体局部特征

  (4)“5、S"

  它们的区别在字符的上半部分,“5”的上半部分中,上方和左侧均为直线,而"S”的上半部分为弧线。

  (5)“A、4"

  由于存在倾斜等情况,仅仅通过基本特征会出现误识别,它们的区别在左下角。

转载于:https://www.cnblogs.com/silence-hust/p/4191984.html

车牌识别LPR(八)-- 字符识别相关推荐

  1. 车牌识别EasyPR(4)——字符识别MSER

    由于字符识别相对于前面的车牌定位而言,显得较为简单.不像在一个复杂和低分辨场景下进行车牌定位,在字符分割和识别的部分时,所需要处理的场景已经较为固定了,因此其处理技术也较为单一. 一.字符分割 英文字 ...

  2. java车牌识别字符分割_车牌识别LPR(六)-- 字符分割

    第六篇:字符分割 在知道了车牌字符的规律之后,可以根据车牌的特点对字符进行分割.一般最容易想到的方法就是根据车牌投影.像素统计特征对车牌图像进行字符分割的方法.是一种最常用的.最基本的.最简单的车牌字 ...

  3. 车牌识别lpr tenssorrt推理(二)

    一.pth导出onnx # import torch # import torchvision # # dummy_input = torch.randn(1, 3, 94, 24, device=' ...

  4. NVIDIA中文车牌识别系列-3:使用TLT训练车牌号识别LPR模型

    预先准备 在开始建立和部署 TLT 中高准确率的车辆训练模型时,需要以下资源: NGC 账号 DeepStream SDK 我们将使用 TLT 进行训练 pip3 install nvidia-pyi ...

  5. 车牌识别采购、研发纵览

    车牌识别采购.研发纵览 文章来源 -- 绿睿科技: 车牌识别 雕刻机 三维网页 车牌识别采购.研发纵览 车牌识别采购.研发纵览 <车牌识别采购.研发纵览>是目前最详细的关于车牌识别的资料. ...

  6. 用于提高车牌识别的单幅噪声图像去噪和校正

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 下面要介绍的论文始发于ICCV2019,题为「SNIDER: Si ...

  7. 图像五值化与基于三值图像的车牌识别(1)

    庆祝2011年新年 张忠义 海口愚佬会教育科技有限公司 全文下载 www.yulaohui.com/color5_2/ 摘 要:      图像五值化是通过公式Y =(R+G)/2,将RGB空间映射到 ...

  8. 如何选择智能车牌识别摄像机

    当今,车牌识别相机广泛地应用在智能交通管理系统中,对车辆管理发挥了巨大的作用.众所周知,车牌识别(LPR)系统是以图像处理.模式识别等技术为基础的智能识别系统,通过摄像机拍摄道路上行驶的车辆,形成图像 ...

  9. 【老生谈算法】matlab实现车牌识别中值滤波算法——车牌识别中值滤波算法

    基于Matlab的车牌识别中值滤波算法的研究与实现 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]基于Matlab的车牌识别中值滤波算 ...

  10. 【树莓派开发】02-基于OpenCV的车牌识别处理(LPR)

    [说明]:疫情期间比较闲学习了python.LPR这个东西,基于OpenCV已经做过很多遍了,通过这个小项目利用树莓派来熟悉Python编程,而且通过实际操作可以掌握一些具体的细节与技巧,这里我将整个 ...

最新文章

  1. C++:随笔8---命名空间
  2. 2012 RDS Remote App 对于win7的支持问题
  3. 剑桥毕业之后创业的可能的在商学院的出路
  4. 知识图谱前沿技术课程暨学术研讨会(武汉大学站)
  5. document.getElementById() id是变量
  6. php超强后门在任意位置创建文件,php大马:.user.ini文件构成的超强PHP后门
  7. python3.6 django部署_Apache2+Django+Python3.6部署-
  8. 首届React开发者大会于2018年8月18日在广州举办
  9. Python os模块文件操作(二)
  10. 集群之间数据拷贝distcp性能的调优
  11. 戴尔vStart:加快虚拟化,并马上应用戴尔私有云
  12. 推动企业上云实施经验总结
  13. 什么是搜索引擎留痕?
  14. java中extends和implements的区别
  15. 天干地支计算公式_任何一天干支的计算方法 天干地支对照表
  16. 电阻、二极管、三极管搭出的逻辑电路
  17. NiuKe_SH17分玩具题
  18. VMware 安装CentOS以及安装多个linux系统
  19. 黑马人工智能怎么样-黑马类达内的资本化教育扩张模式
  20. 2020 C++及系统软件技术大会全套PPT

热门文章

  1. HTML5 音频 / 视频 DOM 操作
  2. Android API 级别
  3. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_25-页面查询接口测试-Swagger...
  4. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第2节 线程实现方式_14_匿名内部类方式实现线程的创建...
  5. Java8新特性:接口
  6. Springboot 默认加载文件(可直接访问、不可直接访问)是出现的问题
  7. 数据库设计的几个建议
  8. centos7安装zabbix3.4
  9. OpenSift源代码编译过程记录
  10. spring中context:property-placeholder