​第八篇:字符识别

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

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

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

(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"

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

车牌识别LPR(八)-- 字符识别的更多相关文章

  1. 车牌识别LPR系统系列文章汇总

    这里的LPR的的几篇文章是之前项目的一些相关资料的整理,涉及实验室内部的资料就没有放上来,希望能对想了解这方面的同学,有所帮助,那怕了解个大概也好.知道整体的思路就好.当初就是一个人瞎摸索,走了很多的 ...

  2. 车牌识别LPR(三)-- LPR系统整体结构

    第三篇:系统的整体架构 LPR系统大体上可由图像采集系统,图像处理系统,数据库管理系统三个子系统组成.它综合了通讯.信息.控制.传感.计算机等各种先进技术,构成一个智能电子系统. 图像采集系统:图像采 ...

  3. 车牌识别LPR(一)-- 研究背景

    在年尾用了几天的时间将2014年的所有工作都总结了一遍,将之前的文档综合了下. 以下是LPR系统,车牌识别的一些总结资料. 第一篇:LPR研究背景 汽车的出现改变了以往出行徒步和以马代步的时代,极大地 ...

  4. 车牌识别LPR(四)-- 车牌定位

    第四篇:车牌定位 车牌定位就是采用一系列图像处理或者数学的方法从一幅图像中将车牌准确地定位出来.车牌定位提取出的车牌是整个车牌识别系统的数据来源,它的效果的好坏直接影响到整个系统的表现,只有准确地定位 ...

  5. 车牌识别LPR(二)-- 车牌特征及难点

    第二篇:车牌的特征及难点 2.1  对我国车牌的认识 我国目前使用的汽车牌号标准是 2007 年开始实施的<中华人民共和国机动车号牌>GA36-2007(2010 年修订).根据 GA36 ...

  6. 车牌识别LPR(七)-- 字符特征

    第七篇:字符特征 选择的字符特征应该满足以下条件: (1)选取的字符特征具有较强的鲁棒性,不受字符变形.弯曲等影响. (2)两个字符的字符特征不能完全相同,但部分相同是允许的,即选择的字符特征是唯一的 ...

  7. 车牌识别LPR(六)-- 字符分割

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

  8. 车牌识别LPR(五)-- 一种车牌定位法

    该方法是某个文章中看到的,有点忘了是那一篇了,看的太多也太久了. Step1.把采集到的RGB图像转换为HSI图像. HSI模型能反映人对色彩的感知和鉴别能力,非常适合基于色彩的图像的相似比较,故采用 ...

  9. 车牌识别OCR—易泊时代智慧城市解决方案模块

    牌识别(License Plate Recognition,LPR) 是视频图像识别技术在智能交通领域中的一个模块.车牌识别运用OCR技术,将视频流或图片中的汽车牌照从复杂的应用场景中提取并识别出来, ...

随机推荐

  1. 【python】 入门 搭建环境

    1.去官网下载包 基本程序编译器 python-2.7.10.msi 集成开发环境 pycharm-community-4.5.2.exe 包管理工具 pip-7.0.3.tar.gz 2.安装 按顺 ...

  2. 0x02全局变量和局部变量

    全局变量在什么地方定义? .data和.data? 格式如下: 变量名 类型 初始值1,初始值2... 变量名 类型 重复数 dup(初始值1,初始值2,...) 变量名 类型 ? 类型有哪些? 字节 ...

  3. 【转】java获取当前路径的几种方法

    1.利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty("user.dir"));//use ...

  4. DB天气app冲刺二阶段第十天

    昨天困到不行了 所以就写了那么几句..所以今天好好写写了要.. 今天的收获了一个很重要的问题 就还是api接口的事情,以前的那个接口虽然能用但是总是不稳定,今天由决定百度的一下然后就发现了一个很好用的 ...

  5. DB天气app冲刺二阶段第五天

    昨天什么事情也没做..看了一场哆啦a梦 所以就不算冲刺了.. 今天主要就是做了一下需要用到的图片的整理还有的就是UI主界面需要展示用的素材,发现好多东西都需要搜索半天,虽然这个不是什么技术活..但真的 ...

  6. HTML & XML 转义字符

    HTML & XML 转义字符 HTML中<, >,&等有特殊含义,(前两个字符用于链接签,&用于转义),不能直接使用.使用这三个字符时,应使用它们的转义序列,如下 ...

  7. ffmpeg 打开视频流太慢(上)

    新版ffmpeg打开网络视频流需要调用avformat_find_stream_info方法,很多朋友会发现调用改方法耗费很多时间造成打开视频流太慢.有两个参数可以减少avformat_find_st ...

  8. 【BestCoder】【Round#29】

    T1 啊……a^b 与 c^d比较大小,我们可以两边取对数,转化成 log(a^b)=b*log(a) 和d*log(c) 这样就能直接算了……然后稍微搞一下精度什么的就A了=.= //BC #29 ...

  9. select模式

    在很多比较各种网络模型的文章中,但凡提到select模型时,都会说select受限于轮询的套接字数量,这个 数量也就是系统头文件中定义的FD_SETSIZE值(例如64).但事实上这个算不上真的限制. ...

  10. 想知道吗?CTO 比普通程序员强在哪?

    互联网的蓬勃发展,让无数的程序员身价水涨船高,都变成了「香饽饽」,更有了不少「创业」,「当上 CTO,迎娶白富美的传说」.都说不想当元帅的士兵不是好士兵,我觉得这件事见仁见智,但提升自己的价值,让自己 ...