车牌识别LPR(七)-- 字符特征
第七篇:字符特征
选择的字符特征应该满足以下条件:
(1)选取的字符特征具有较强的鲁棒性,不受字符变形、弯曲等影响。
(2)两个字符的字符特征不能完全相同,但部分相同是允许的,即选择的字符特征是唯一的,但是不能重复。
(3)选取的字符特征要尽可能的提供字符的信息。
(4)选择的字符特征提取方法易于实现,能够减少计算时间。
一般采用纹理、边缘特征。纹理特征是表示图像的另一种重要的视觉特征,纹理结构反映图像亮度的空间变化情况,具有局部与整体的自相似性。纹理是有纹理基元按某种确定性的规律或某种统计规律排列组成的,在纹理区域内各部分具有大致相同的结构。
提取特征的的方法:
(1)逐像素特征提取是指对整幅二值图像进行扫描,若图像中的像素点为黑色像素点时,则令特征值为 1,否则特征值为 0。经过该方法提取的特征向量的维数与图像中的像素点的个数相同。
(2)骨架特征提取是先细化字符图像,然后从细化后的字符图像中逐像素地提取特征。
此方法适用不同大小的字符。
(3)垂直方法数据统计特征提取是首先对字符图像进行水平投影,统计水平投影值,此处的水平投影值为黑色像素的数目;然后通过对字符图像进行垂直投影,统计垂直投影值,此处的垂直投影值仍为黑色像素的个数;最后将水平和垂直投影值作为字符的特征向量。
(4)13 点特征提取方法的总体思路是:首先把字符平均分成 8 份,统计每一份黑色
像素点的个数作为 8 个特征。分别统计这 8 个区域中的黑色像素的数目,就可以得到 8 个特征;然后统计水平方向中间两行和垂直方向中间两列的黑色像素点的个数作为 4 个特征;最后统计所有黑色像素点的个数作为 13 个特征。
常用的特征求取:
一、粗网格特征:
将归一化后的字符图像等分成 8×8 网格,统计各网格内黑像素的数量,取得一个 64 维的网格特征。
外围特征:提取字符外围特征的步骤为:
① 把归一化后的点阵图形等分为 8 行。
② 计算每一行中点从图像左边缘至第一项由白变黑的长度(如果没有由白变黑的点,则默认为零)。
③ 再计算每一行中点从图像左边缘至第二项由白变黑的长度(如果没有由白变黑的点,则默认为零)。
④ 仿照上面 3 个步骤,提取其它 3 个边缘的特征。
采用上述方法可以提取另一个 4×2×8=64 维的外围特征。
通过采用基于像素数量的粗网格特征与外围特征相结合方法可以提取字符的128 维特征,用以字符识别。
二、PCA进行汉字识别,网格特征进行数字和字母的提取。
网格特征是指通过把二值化后的字符分成M×N个网格,统计每一个网格中的字符像素数量,把各个网格中的像素数量组合起来作为字符的网格特征来识别字符。字母数字相对于汉字来说笔画简单,也极少出现字符轮廓模糊的现象。因此,字母数字的识别相对来说比较简单。但是,字母数字之间存在相似字符的比例较高,而且相似字符之间的差异又比较小,很容易识别错。对字母数字的识别论文采用了二次识别的思想。
三、均匀网格特征
统计黑像素点在每个网格中所占的比例,属于统计特征中局部特征的一种,体现了文字点阵的整体形状的分布。它将字符图像二值化以后,再把样本字符图像分成mxn个M格,并统计每个网格中属于文字点阵的像数量,记为i;统计整个图像巾屈于文字点阵的像素数量,记为j;计算各个网格中的文字点阵的像素数量整个像中文字点阵的像素数量之比P=i/j将每个网格统汁的百分比P組合起来作为字符的统计特征,用以实现对字符的识别。好个网格屮的文字点阵比例反映了文字笔画在二维平面空间的分布特征。
网格特征的统计是以网格为单位进行的,即使个别像素点的统计有误差也不会对识别结果造成很大的影响,该特征还具有较强的区分相似字符的能力。此特征提取算法比较简单,计算速率很快,且易于实现,但其对字符图像配准要求较高,故需要在提取字符图像的特征之前,对图像进行去边框等预处理操作。此算法更适合印刷体等较规则的字体,而不适用于手写体。
四、LBP特征进行汉字识别
预处理模块对图像进行归一化操作;第二个模块计算出图像中每个像素点的LBP值;第三个模块用于将图像平均分割为MxN个网格;最后一个模块用于计算各块的LBP特征。
1、传统的LBP算法是基于3 X 3的窗口的,对应于9个灰度值。将该窗口的8邻域的灰度值与中心像素的灰度值比较,小于中心灰度值的像素点的置为0,反之将其置为1;然后,通过逆吋针或者顺时针将这8个二进制数转化为一个二进制序列,并求出其对应的十进制值,作为这个3X3窗口的中心像素点的特征值。即各像素点的LBP值。
2、将每个像素点的LBP值齊代它的灰度值,得到LBP阁像。并将LBP图像分块,对每个分块进行直方图统计。如,将LBP图像分为4*8块,每块大小为8*8。在每个分块内,将0-255的LBP值量化为32级,并进行直方图统计。即每个分块的LBP特征为32维。
3、将各个小块的LBP特征连起来,获得(4*8)*32=1024维的一个矢量,该矢量即为字符图像的LBP特征。
改进的LBP特征:
均匀模式:它们有一个共同点,即在LBP二值编码序列巾,最多有两个0到1或1到0的变化。LBP二值编码序列为11000001,从1到0的变化为1次,从0到1的变化为1次,即它的均匀性U(LBP)=2。满足U(LBP)<=2的所有模式称为均匀模式。在8邻域中,满足U(LBP)<=2的所有模式的个数为8*(8-1)+2,具体的LBP二值编码序列与i/(Z及TMH]对应图见图2-16。再进一步将它们旋转到最小值后,具有旋转不变性的均勾模式(Rotation Invariant Uniform Pattern)的个数则为8+1。
模式对应的LBP二进制中从0变化为1和从1变化为0的次数之和小于等于两次,则该模式就是均匀模式。再根据顺时针或逆时针方向读出8个二进制数作为一个二进制序列,计算其对应的十进制值,作为该3X 3矩形的中心元的特征值。反之,则该模式就不是均匀模式,它们的LBP值均为8+1。
由于改进的LBP特征是用58种均匀模式和统一后的一种非均匀模式来表示的。即在每个分块内,将0-255的LBP倍转化为59级。将这59级量化到0-63、64-127、128-191、192-255这四个区间中,并进行直方图统计。即每个分块的LBP特征为4维。
将各个小块的LBP特征连起来,获得(4*8) *4=128维的一个矢量,矢量即为字符图像的LBP特征。均匀模式时的LBP特征向量维数=图像分块数*59,改进的LBP特征向量维数=图像分块数*4,大大地提高了识别速率。
车牌识别LPR(七)-- 字符特征的更多相关文章
- 车牌识别LPR系统系列文章汇总
这里的LPR的的几篇文章是之前项目的一些相关资料的整理,涉及实验室内部的资料就没有放上来,希望能对想了解这方面的同学,有所帮助,那怕了解个大概也好.知道整体的思路就好.当初就是一个人瞎摸索,走了很多的 ...
- 车牌识别LPR(二)-- 车牌特征及难点
第二篇:车牌的特征及难点 2.1 对我国车牌的认识 我国目前使用的汽车牌号标准是 2007 年开始实施的<中华人民共和国机动车号牌>GA36-2007(2010 年修订).根据 GA36 ...
- 车牌识别LPR(六)-- 字符分割
第六篇:字符分割 在知道了车牌字符的规律之后,可以根据车牌的特点对字符进行分割.一般最容易想到的方法就是根据车牌投影.像素统计特征对车牌图像进行字符分割的方法.是一种最常用的.最基本的.最简单的车牌字 ...
- 车牌识别LPR(八)-- 字符识别
第八篇:字符识别 车牌定位.车牌倾斜校正.车牌字符分割都是为车牌字符识别做的前提工作,这些前提工作直接关系到车牌识别系统的性能.车牌字符识别是车牌识别系统的核心部分,车牌字符识别的准确率是衡量车牌识 ...
- 车牌识别LPR(四)-- 车牌定位
第四篇:车牌定位 车牌定位就是采用一系列图像处理或者数学的方法从一幅图像中将车牌准确地定位出来.车牌定位提取出的车牌是整个车牌识别系统的数据来源,它的效果的好坏直接影响到整个系统的表现,只有准确地定位 ...
- 车牌识别LPR(三)-- LPR系统整体结构
第三篇:系统的整体架构 LPR系统大体上可由图像采集系统,图像处理系统,数据库管理系统三个子系统组成.它综合了通讯.信息.控制.传感.计算机等各种先进技术,构成一个智能电子系统. 图像采集系统:图像采 ...
- 车牌识别LPR(一)-- 研究背景
在年尾用了几天的时间将2014年的所有工作都总结了一遍,将之前的文档综合了下. 以下是LPR系统,车牌识别的一些总结资料. 第一篇:LPR研究背景 汽车的出现改变了以往出行徒步和以马代步的时代,极大地 ...
- 车牌识别LPR(五)-- 一种车牌定位法
该方法是某个文章中看到的,有点忘了是那一篇了,看的太多也太久了. Step1.把采集到的RGB图像转换为HSI图像. HSI模型能反映人对色彩的感知和鉴别能力,非常适合基于色彩的图像的相似比较,故采用 ...
- 探索 Python + HyperLPR 进行车牌识别
概要 HyperLRP是一个开源的.基于深度学习高性能中文车牌识别库,由北京智云视图科技有限公司开发,支持PHP.C/C++.Python语言,Windows/Mac/Linux/Android/IO ...
随机推荐
- Log4Net学习【一】
如果项目上过线的话,那你一定知道Log是多么重要.为什么说Log重要呢?因为上线项目不允许你调试,你只能通过Log来分析问题.这时打一手好Log的重要性绝不亚于写一手好代码.项目出问题时,你要能拿出L ...
- XCODE真机调试设备连接一直忙碌如何处理
只是还没反应过来 等一会就行了
- execute、executeUpdate、executeQuery三者的区别(及返回值)
1. ResultSet executeQuery(String sql); 执行SQL查询,并返回ResultSet 对象. 2.int executeUpdate(String sql); 可执行 ...
- CSS进阶
盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细.样式和颜色(边框三个属性). 1.border-style(边框样式)常见样式有:dashed(虚线)| dotted(点线)| so ...
- win8 telnet VirtualBox中的redhat9
1. VirtualBox设置网络连接为“桥接网卡”,并且此网卡要为win8正在使用的网卡(比如我的电脑上使用的就是无线网卡,则选择网卡时也要用无线网卡) 2. 在redhat的终端里,运行ifcon ...
- iOS$299企业账号In House ipa发布流程
1.在Mac系统中进入“钥匙串访问”,选择“钥匙串访问”-“证书助理”-“从证书颁发机构请求证书”. 填写前两项,并保存在本地. 2.登录https://developer.apple.com,进入i ...
- HDU 3974 Assign the task 暴力/线段树
题目链接: 题目 Assign the task Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- Exception in thread "http-bio-8081-exec-3" java.lang.OutOfMemoryError: PermGen space
前言: 在http://www.cnblogs.com/wql025/p/4865673.html一文中我曾描述这种异常也提供了解决方式,但效果不太理想,现在用本文的方式,效果显著. 目前此项目只能登 ...
- 初识PCA数据降维
PCA要做的事降噪和去冗余,其本质就是对角化协方差矩阵. 一.预备知识 1.1 协方差分析 对于一般的分布,直接代入E(X)之类的就可以计算出来了,但真给你一个具体数值的分布,要计算协方差矩阵,根据这 ...
- java split函数 对空的处理
String str = "5,6,55,66,,,,@"; String[] chk_deep = str.split("@"); System.out.pr ...