CN103295009A - 基于笔画分解的车牌字符识别方法 - Google Patents
基于笔画分解的车牌字符识别方法 Download PDFInfo
- Publication number
- CN103295009A CN103295009A CN2013102452668A CN201310245266A CN103295009A CN 103295009 A CN103295009 A CN 103295009A CN 2013102452668 A CN2013102452668 A CN 2013102452668A CN 201310245266 A CN201310245266 A CN 201310245266A CN 103295009 A CN103295009 A CN 103295009A
- Authority
- CN
- China
- Prior art keywords
- character
- district
- stroke
- horizontal
- divided
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000000354 decomposition reaction Methods 0.000 title abstract description 11
- 229910052757 nitrogen Inorganic materials 0.000 claims description 21
- 238000010586 diagram Methods 0.000 claims description 14
- 239000000284 extract Substances 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 4
- 229910052698 phosphorus Inorganic materials 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 abstract description 12
- 230000000694 effects Effects 0.000 description 6
- 238000012549 training Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Landscapes
- Character Discrimination (AREA)
Abstract
本发明公开了一种基于笔画分解的车牌字符识别方法,具体包括:根据车牌字体特征,建立字符识别规则库;对待识别的车牌图像进行预处理,并对预处理后的车牌图像进行二值化操作;在二值化图像的基础上,提取出字符的笔画;根据得到的笔画信息分析字符笔画特征并编码字符笔画;根据得到的字符笔画编码和建立的字符识别规则库查询此字符编码,得到字符识别结果。在发明的方案,采用笔画分解的方法,对每一个字符的特征进行总结,最后编码成一个字符规则库,该规则库不依赖于任何样本集,只依赖于该字体的字符特征,对每一个字符使用一串二进制码来表示,使得判断的速度很快,并且占用的内存空间也很少,提高了工作效率。
Description
技术领域
本发明属于机器视觉领域,具体涉及一种字符车牌的识别方法。
背景技术
车牌字符识别是在智能交通中对所抓拍的车牌视频或者图像中识别提取出车牌号码,我国的车牌号码由有限的汉字、英文字母和数字组成。车牌识别通常包括车牌预处理、车牌字符特征提取、对提取的特征利用分类器进行分类识别得到车牌字符的识别结果。
对于车牌字符识别,目前最常用的方法是基于模板匹配的方法和基于特征的匹配方法:
模板匹配法将待识别的字符图像与所建立的标准模板图像进行逐像素的比较,取相似度最高的模板字符为识别结果。使用该方法时,如果模板多则耗时长,而且很容易受到带识别字符图像的噪声、字符主体在图像中的位置和倾斜度等的影响而产生误识别,而且,识别工作的后续将受到字符模板的严重影响。一般字符识别率较低,随着车牌识别技术的发展,逐渐被抛弃。
特征匹配法基于字符的结构特征或统计特征设计分类器,识别字符。常用的字符统计特征有矩和频域特征,常用的字符结构特征有run-length特征、LBP特征以及Gabor特征;然而这些特征无论哪一种都难以兼具高识别率和高识别速度,而且用于训练的样本集选取和训练,对于用户来说将是一件非常重要却比较繁琐的事情。
这两种方法对于相似字符如0和D,8和B,4和A等不具有很好的区分性。
目前,不同的字符识别方法在不同程度都存在缺陷。具体来说:
1)模板匹配字符识别算法对于笔画粗细和字符在图像中的位置和噪声相当敏感,而车牌识别场景复杂,镜头的远近、环境的好坏都将影响定位分割出的字符前景;
2)神经网络和基于EHMM的字符识别算法需要采集样本训练学习,过程繁琐,尤其选取样本的过程对于用户来说相当困难,并且神经网络识别速度较慢,不能满足实时性的要求;
3)特征统计匹配法面对车牌字符笔画出现融合、断裂、部分缺失无能为力,鲁棒性较差。因此,以上现有的字符识别方法都不具有理想的实际应用效果。
发明内容
本方案的发明目的是为了解决现有技术存在的上述问题,提出了一种基于笔画分解的车牌字符识别方法。
本发明具体的技术方案为:一种基于笔画分解的车牌字符识别方法,具体包括如下分步骤:
S1,根据车牌字体特征,建立字符识别规则库,所述字符包括数字0-9和24个大写英文字母A、B、C、D、E、F、G、H、J、K、L、M、N、P、Q、R、S、T、U、V、W、X、Y、Z;
S2,对待识别的车牌图像进行预处理,并对预处理后的车牌图像进行二值化操作;
S3,在二值化图像的基础上,提取出字符的笔画,具体为:计算x方向的图像差分,提取字符在y方向的笔画信息,计算y方向的图像差分,提取字符在x方向的笔画信息;所述笔画信息具体包括横线、竖线、横线位置、竖线位置、竖线长短、竖线是否垂直竖立;
S4,根据步骤S3得到的笔画信息分析字符笔画特征并编码字符笔画,即将图像在垂直方向上平均分为两份,称为二分图;在水平方向上平均分为三份,称为三分图,所述二分图和三分图用于表示字符的横竖笔画长短和位置,通过所述二分图和三分图将字符笔画归类并编码;
S5,根据步骤S4得到的字符笔画编码和步骤S1建立的字符识别规则库查询此字符编码,得到字符识别结果。
本发明的有益效果:在发明的方案,采用笔画分解的方法,对每一个字符的特征进行总结,最后编码成一个字符规则库,该规则库不依赖于任何样本集,只依赖于该字体的字符特征。在发明的方法首先提取出字符的笔画信息,然后编码建立字符规则库,根据从字符规则库中调用规则进行判断,识别出是哪一个字符,对每一个字符使用一串二进制码来表示,使得判断的速度很快,并且占用的内存空间也很少,提高了工作效率。本发明的方法既能保证更快的速度、更高识别率,又能保证方案简单易用更智能。
附图说明
图1为基于笔画分解的车牌字符识别方法的总体流程图。
图2为字符规则库的树形结构。
图3为图像预处理结果。
图4为笔画提取的结果。
图5为字符图像的二分图和三分图表示。
图6为字符笔画的分区实例。
图7为相似字符的特殊处理示例。
具体实施方式
下面结合附图和具体实施例对本发明做进一步的说明。
本发明实施例的基于笔画分解的车牌字符识别方法的总体流程图如图1所示,包括建立字符识别规则库,待识别的车牌字符图像预处理,笔画信息提取,分析字符笔画特征并编码字符笔画和字符识别。具体过程如下:
S1,根据车牌字体特征,建立字符识别规则库,所述字符包括数字0-9和24个大写英文字母A、B、C、D、E、F、G、H、J、K、L、M、N、P、Q、R、S、T、U、V、W、X、Y、Z;
S2,对待识别的车牌图像进行预处理,并对预处理后的车牌图像进行二值化操作;
S3,在二值化图像的基础上,提取出字符的笔画,具体为:计算x方向的图像差分,提取字符在y方向的笔画信息,计算y方向的图像差分,提取字符在x方向的笔画信息;所述笔画信息具体包括横线、竖线、横线位置、竖线位置、竖线长短、竖线是否垂直竖立;
S4,根据步骤S3得到的笔画信息分析字符笔画特征并编码字符笔画,即将图像在垂直方向上平均分为两份,称为二分图;在水平方向上平均分为三份,称为三分图,所述二分图和三分图用于表示字符的横竖笔画长短和位置,通过所述二分图和三分图将字符笔画归类并编码;
S5,根据步骤S4得到的字符笔画编码和步骤S1建立的字符识别规则库查询此字符编码,得到字符识别结果。
在建立字符识别规则库过程中,具体基于人的先验知识,例如识别字符“H”,根据人的先验知识,字符“H”是由三部分组成:左边一竖,中间一横,右边一竖。对于每一个字符,在人类看来,总有它的特征。
建立字符识别规则库(如图2所示)属于字符识别之前的准备工作,是一个比较独立的过程,此步是字符识别的一个重点。
为了便于实现,这里的字符识别规则库具体可以是一个可供查询的决策树——类似于霍夫编码(如图2所示),根据车牌字体特征,建立字符识别规则库的分步骤具体如下:
步骤S11.按照字符否有内轮廓将34个字符分为两大类。在分析字符图像的特征时,字符“B”,“A”等,有内轮廓。有些字符有2个内轮廓,有些字符有1个内轮廓,有些字符一个内轮廓也没有。我们可以利用这些内轮廓辅助字符的分类。
根据字符图像中内轮廓信息,将34个字符分类如下:没有洞的字符:1、2、3、5、7、C、E、F、G、H、J、K、L、M、N、S、T、U、V、W、X、Y、Z;有洞的字符:0、4、6、8、9、A、B、D、P、Q、R。
步骤S12.分析笔画信息的长短和位置,包括横线、竖线、横线位置、竖线位置、竖线长短、竖线是否垂直竖立,对字符进行编码分类,将该字体在垂直方向上分为两份,记为二分图;在水平方向上平均分为三分,记为三分图,在对横笔画信息进行编码时,只使用三分图,在对竖笔画信息进行编码时则使用二分图和三分图;
对于一个横条在三分图中,可能有三种情况,并使用两位二进制码对其进行编码:只占有第1区,二进制编码是00;只占有第2区,二进制编码是01;只占有第3区,二进制编码是10;
根据上面定义的编码规则,在横图中,某一个横条就可以使用两位二进制码表示,用符号v表示竖条,那么字符E的三个横条信息可以表示为:最上面的横条,用符号表示是v1(00),00代表横条处于三分图中的第1区;位于中间的横条,用符号表示是v2(01),01代表横条处于三分图中的第2区;位于最下方的横条,用符合表示是v3(10),10代表横条处于三分图中的第3区;如果用符号V表示一个横图中的所有横条信息,那么字符E的横笔画信息用符号V可以表示为V(v1(00)+v2(01)+v3(10));
如果笔画是竖,则在二分图和三分图中根据笔画位置和长短进行编码,对于一个竖条,在二分图中可能出现的情况有四种:只占第1区;只占第2区;既占有第1区,也占有第2区,并且自上到下是先经第1区再经过第2区;既占有第1区,也占有第2区,并且自上到下是先经第2区再经过第1区;可以使用两位二进制码表示:只占第1区:二进制码是00;只占第2区:二进制码是01;既占有第1区,也占有第2区,并且自上到下是先经第1区再经过第2区:二进制码是10;既占有第1区,也占有第2区,并且自上到下是先经第2区再经过第1区:二进制编码是11;
对于一个竖条,在三分图中可能有六种情况,并且使用3位二进制码对其进行编码:只占第1区:二进制编码是000;只占第2区:二进制编码是001;只占第3区:二进制编码是010;既占有第1区,也占有第2区:二进制编码是011;既占有第2区,也占有第3区:二进制编码是100;第1区,第2区,第3区都占有:二进制编码是101。
根据以上的定义,对一个字符中的某一竖条使用两段二进制码表示,一段二进制码是对二分图进行编码,另一段二进制码是对三分图进行编码;用符号h表示竖条,字符V的两个竖条信息可以表示:最长那个竖条,用符号表示是h1(00,101),00代表竖条处于二分图中的左侧,101代表竖条在三分图中占有第1区,第2区和第3区;次长的那个竖条,用符号表示是h2(01,011),01代表竖条处于二分图的右侧,011代表竖条在三分图中既占有第1区,也占有第2区;如果用符号H表示一个字符的所有竖条信息,那么字符V的所有竖条表示为H(h1(00,101)+h2(01,011));
根据以上的编码规则,一个字符一共由三段二进制码表示,对字符P进行笔画分解,则字符P可以编码为H(h1(00,101)+h2(01,011))+V(v1(00)+v2(01));
步骤S13.根据字符笔画信息和以上编码规则,将两大类字符继续树形分类,其中,VS和HS分别表示横笔画总数和竖笔画总数,VS1、VS2、VS3分别表示有一个横笔画、两个横笔画、三个横笔画;HS1、HS2、HS3、HS4分别表示有一个竖笔画、两个竖笔画、三个竖笔画、四个竖笔画;V(NULL)表示没有横笔画信息,同理H(NULL)表示没有竖笔画信息;
对于没有内轮廓的字符,根据是否有横线信息分为两大类,有横线信息的为一类:{2、3、5、7、C、E、F、G、H、J、L、S、T、U、Z},没有横线信息的为一类:{1、K、M、N、V、W、X、Y};
对于字符集{2、3、5、7、C、E、F、G、H、J、L、S、T、U、Z}按照竖条的属性包括笔画的位置和长短分为5类:最长竖线在二分图一区并且长度占了三分图三个区(h(00,101))为一类:{C、E、F、G、H、L、U},最长竖线在二分图二区并且长度占了三分图三个区(h(01,101))为一类:{J、T},最长竖线从二分图一区横跨二分图二区并且长度占了三分图三个区(h(10,101))为一类:{S},最长竖线从二分图二区横跨二分图一区并且长度占了三分图三个区(h(11,101))为一类:{2,7,Z},最长竖线在三分图中没有占满3个区(!h(,101))为一类:{3,5};
对于字符集{1、K、M、N、V、W、X、Y},按照最长竖线的位置将其分为两大类:最长竖线在二分图第一区并占满三分图(h(01,101))为一类:{K、M、N、V、W、X、Y},最长竖线没有在二分图第一区的为一类:{1};
根据横线总数将字符子集{C、E、F、G、H、L、U}分为三类:{H,L,U}、{C,F}、{E,G};子集{J,T}按照横线的位置分为两类{J}、{T};子集{S}为叶子节点;子集{2,7,Z}按照横线位置分为两类{2,Z}、{7};子集{3,5}按照横线数量分为{3}、{5};子集{1}为叶子节点;子集{K,M,N,V,W,X,Y}按照横线数量分为三类{V,Y}、{K,N,X}、{M,W};
按照横线位置将子集{H,L,U}分为两类{H}、{L,U};按照横线位置将子集{C,F}分为两类{F}、{C};按照竖线总数将子集{E,G}分为两类{E}、{G};子集{2,Z}按照竖线总数分为两类{2}、{Z};子集{V,Y}按照次长竖线信息分为两类{V}、{Y};子集{K,N,X}按照次长竖笔画长短分为两类{K,N}、{X};子集{M,W}按照次长竖笔画长短分为两类{M}、{W};
将子集{L,U}按照次长竖线位置分为两类{U}、{L};将子集{K,N}按非最长竖的长短信息分为两类{N}、{K};
对于有内轮廓的字符集{0、4、6、8、9、A、B、D、P、Q、R},将其分为两类:两个内轮廓的子集{8、B}、一个内轮廓的子集{0、4、6、9、A、D、P、Q、R};
对于内轮廓的子集{0、4、6、9、A、D、P、Q、R},根据最长竖线是否在二分图中的一区中并且占满三分图中的三个分区将其分为子集{0、6、A、D、P、Q、R}和{4、9};
对于子集{0、6、A、D、P、Q、R},根据横图横线总数分为子集{0、6、D、P}和{A、Q、R};对于{4、9},根据竖图中是否有竖线经过2区再到1区并且占满横图中的三区,将其分为两类{4}和{9};
根据二分图中第二区是否有占满三分图的长竖,将子集{0、6、D、P}分为两类{0、D}和{6、P};按照横线总数,将子集{A、Q、R}分为两类{A}、{Q、R};
根据三分图第一区是否有横线信息将子集{6、P}分类为{P}{6},根据三分图第三区是否有横线信息将子集{Q、R}分类为{Q}{R}。
将所有字符逐步分类,只有一些很相似的字符被分在同一个类中,进行下一步的精细识别。否则,一个字符分成一个单类,作为最后查询时的识别结果。如此迭代直到分完所有字符为止,即完成字符识别规则库的建立。
上述建立字符识别规则库的过程中,根据上述规则,8和B,0和D对应的编码是一样的,是区分不开的,在对车牌图像具体识别过程中,针对上述两组字符还需要单独的识别。
在得到待识别车牌图像之后,由于识别环境所限,图像大小不一或者图像有噪声不清晰等都会影响识别结果,对该图像作一系列的预处理工作,使得可以进行后续的识别工作。图3中给出了字符预处理的效果显示图;得到预处理之后的图像之后,按照笔画分解识别字符的思路,要分析字符的笔画信息,图4a和图4b为使用sobel算子处理预处理之后的二值图效果图,从而得到了待识别字符的横竖信息;为了对横竖的长短、位置、形状等信息进行描述和编码,对每一张预处理之后的待识别字符图像进行分区——分为二分图和三分图(如图5所示),而图6a、6b、6c、6d分别为个别字符的笔画分区实例;完成上述步骤之后,就可以用得到的带识别字符的笔画编码查询最先已经建立好的字符识别规则库,得到识别结果(极个别非常相似的字符无法通过字符规则库查询得到最终的识别结果,只需要做一些特殊处理即可识别,如图7)。
预处理步骤具体如下:
S21.对待识别的字符图像统一到固定大小。
S22.对待识别的字符图像进行直方图均衡化,增强图像效果,这里具体使用的是局部均值化方法。车牌在室外受到各种光照的影响,使得有些字符图像亮,有的字符图像暗,为了让各种光照条件下的字符图像在颜色上没有太大差异,这里采用一种特殊的图像均衡化方法。
设源图像是src、均衡化后的图像是dst,E(src)表示源图像的均值,E(dst)表示图像dst的均值,E(dst)是预先给定的一个值。
这里采用的均衡化方法:
其中,cof是预先设定的常数。在本实施例中,设定E(dst)=100,cof=2.9,其颜色归一化的效果见图3中调整颜色一列所示。
S24.对待识别的字符图像进行二值化操作,便于除噪和分析笔画。车牌图像在进行字符分割后,就变成一个字符一张图像了。由于切分后,字符图像比较小,在这样的一个局部区域内,其背景信息远比车牌图像要简单。图像成分比较单一,只包含两种信息,即字符和背景,所以在本实施例中采用聚类的方法进行二值化。
S25.对待识别的字符图像进行轮廓分析,由于所有字符都是一个轮廓,可以保留下最大的轮廓除去其他小轮廓,达到除噪的目的。由于已知一幅字符图像中只有一个字符,所以,当二值化之后,选取图像中最大的一个团块(即为字符前景)作为最后的结果。
经过图像预处理之后,得到了一个待识别的车牌字符二值图像。在二值化图像的基础上,提取出字符的笔画,具体步骤如下:
S31.判断轮廓是否有内轮廓——是否有内轮廓,经过简单的轮廓分析很容易得到这个信息。
S32.使用Sobel算子计算x方向的图像差分,提取字符在y方向的笔画信息。
S33.使用Sobel算子计算y方向的图像差分,提取字符在x方向的笔画信息,所得到的效果图如图4a和图4b。
S34.分析笔画信息的长短和位置,包括横线、竖线、横线位置、竖线位置、竖线长短、竖线是否垂直竖立等。
经过上述步骤处理即可得到了待识别的字符笔画信息——字符各笔画的长短和位置。为了表示所有笔画的这些信息,对每一种笔画进行了编码,此编码可以唯一的表示笔画的横竖、长短和位置信息。具体步骤如下:
S41.对步骤S2预处理之后的同样大小图像进行分区,即将图像在垂直方向上分为两份,称为二分图;在水平方向上平均分为三分,称为三分图,具体如图5所示。
S42.根据步骤S3得到的笔画信息,判断横线位置和数量,判断竖线位置、长短和数量
S43.具体的编码规则与步骤S12中的相同,
在对横图信息进行编码时,只使用三分图,如图6b所示。
对于一个横条在三分图中,可能有三种情况,并使用两位二进制码对其进行编码:
只占有第1区,二进制编码是00;只占有第2区,二进制编码是01;只占有第3区二进制编码是10。
在横图中,某一个横条就可以使用两位二进制码表示。用符号v表示竖条,那么图6b中的三个横条信息可以表示为:最上面的横条,用符号表示是v1(00),00代表横条处于三分图中的第1区;位于中间的横条,用符号表示是v2(01),01代表横条处于三分图中的第2区;位于最下方的横条,用符合表示是v3(10),10代表横条处于三分图中的第3区。
如果用符号V表示一个横图中的所有横条信息,那么图中横条用符号V可以表示为V(v1(00)+v2(01)+v3(10))。
如果笔画是竖,则在二分图和三分图中根据笔画位置和长短进行编码。对于一个竖条,在二分图中可能出现的情况有四种:只占第1区;只占第2区;既占有第1区,也占有第2区,并且自上到下是先经第1区再经过第2区;既占有第1区,也占有第2区,并且自上到下是先经第2区再经过第1区。可以使用两位二进制码表示:
只占第1区:二进制码是00;只占第2区:二进制码是01;既占有第1区,也占有第2区,并且自上到下是先经第1区再经过第2区:二进制码是10;既占有第1区,也占有第2区,并且自上到下是先经第2区再经过第1区:二进制编码是11。
对于一个竖条,在三分图中可能有六种情况,并且使用3位二进制码对其进行编码:只占第1区:二进制编码是000;只占第2区:二进制编码是001;只占第3区:二进制编码是010;既占有第1区,也占有第2区:二进制编码是011;既占有第2区,也占有第3区:二进制编码是100;第1区,第2区,第3区都占有:二进制编码是101。
根据以上的定义,就可以对一个字符竖图中的某一竖条使用两段二进制码表示,一段二进制码是对二分图进行编码,另一段二进制码是对三分图进行编码,例子如图6a所示。
用符号h表示竖条,那么图6a的两个竖条信息可以表示:最长那个竖条,用符号表示是h1(00,101),00代表竖条处于二分图中的左侧,101代表竖条在三分图中占有第1区,第2区和第3区。次长的那个竖条,用符号表示是h2(01,011),01代表竖条处于二分图的右侧,011代表竖条在三分图中既占有第1区,也占有第2区。
如果用符号H表示一个字符的所有竖条信息,那么如图中的所有竖条表示为H(h1(00,101)+h2(01,011))。
当然,在判断某个笔画具体是位于哪个区域时,有时会有一些模糊。如图6d所示。最长的竖条当然是没有争议的,它占有3个区。右上角的那个竖条,在第2区中也有一点点,可以通过统计的方法,当然某个笔画的绝大部分位于某个区时,就判定它是哪个区;或者使用一个阈值T,当某个笔画在某个区域内所占比重大于T时,认为通过该区域。
根据以上的编码规则,一个字符一共由两段二进制码表示,对字条P进行笔画分解,如图6c所示。则字符“P”可以编码为H(h1(00,101)+h2(01,011))+V(v1(00)+v2(01))。
经过前几步的处理之后,对于一个输入的待识别字符图像我们已经得到了它的笔画信息编码,根据此编码查询决策树即可得到识别结果。
根据笔画信息和编码查询字符规则库,要么找到叶子节点,要么将一些非常相似的字符分在一起,叶子节点则识别结束打印识别结果。
对于相似字符0和D、8和B其对应的编码是一样的,可以采用如下过程进行识别:
字符0和D的识别:如图7a所示。字符0与字符D的相似度极高。仔细的分析,可以发现,它们在两个角上有区别,并且足以区分这两个字符。如图7a中的左上方矩形框内和左下方矩形框内部分所示,字符0与字符D可以从这两个角上进行区分。这里采用的方法是:设定一矩形框,统计二值化图像后左上方矩形框内和左下方矩形框内白色像素点的百分比,当大于设定的阈值时,认为是D,否则是0;
字符8和字符B:判别之前先给出“凸点”的定义:一条轮廓(一条轮廓指的是围绕连通区域的一系列点)上的第i个点p(xi,yi),如果Sleft>ST,而且Sright>ST,那么就认为是一个凸点,其中ST是阈值(如ST=10)。Sleft,Sright的计算方法参见公式(2)和公式(3),t表示轮廓上和第i个点的距离(如i是轮廓上的第10个点,t为5时,则i-t则是轮廓上的第5个点,i+t是第10个点),这个t采用滑动窗口的方式在一个固定的区间内取值(如0<t≤20),第i-t个点的坐标为p(xi-t,yi-t),第i+t个点的坐标为p(xi+t,yi+t)。如图7b所示,由于字符8的竖图最长竖中间有凹进去的部分,所以在此竖中,可以看出有至少有一个“凸点”存在(“凸点”的多少根据阈值ST不同而不同)。在实际处理的过程中,可以结合实际情况,只需要判断字符在高度中间部分的轮廓点是否有“凸点”即可(这样直接减少了判断不必要点的可能,也避免了图像边界的判断问题)。如果在轮廓图对应三分图第二区检测到至少一个凸点,则认为是字符8,否则是字符B。
Sleft=(xi>xi-1)+(xi>xi-2)+...+(xi>xi-t) 公式(2)
Sright=(xi>xi+1)+(xi>xi+2)+...+(xi>xi+t) 公式(3)
为验证本发明的效率,在数据集通用LPR库上,将本发明的方法与基于EHMM的字符识别方法和基于模板匹配的方法进行比较。比较结果如表1所示。
表1
方法 | 准确率 | 速度 | 是否需要训练 | 是否需要样本 | 通用性 |
模板匹配法 | 85.8% | 20ms | 不需要 | 需要 | 一般 |
基于EHMM法 | 93.5% | 15ms | 需要 | 需要 | 弱 |
本发明的方法 | 98.8% | 16ms | 不需要 | 不需要 | 强 |
通过本方案,不需要复杂的采集样本训练学习的过程,并可以对相似的字符采取特殊处理的方式,更加提高了识别率,提高了识别方法的灵活性,可以应对多种特殊情况,非常灵活,而且可以达到完全实时。
Claims (3)
1.一种基于笔画分解的车牌字符识别方法,具体包括如下分步骤:
S1,根据车牌字体特征,建立字符识别规则库,所述字符包括数字0-9和24个大写英文字母A、B、C、D、E、F、G、H、J、K、L、M、N、P、Q、R、S、T、U、V、W、X、Y、Z;
S2,对待识别的车牌图像进行预处理,并对预处理后的车牌图像进行二值化操作;
S3,在二值化图像的基础上,提取出字符的笔画,具体为:计算x方向的图像差分,提取字符在y方向的笔画信息,计算y方向的图像差分,提取字符在x方向的笔画信息;所述笔画信息具体包括横线、竖线、横线位置、竖线位置、竖线长短、竖线是否垂直竖立;
S4,根据步骤S3得到的笔画信息分析字符笔画特征并编码字符笔画,即将图像在垂直方向上平均分为两份,称为二分图;在水平方向上平均分为三份,称为三分图,所述二分图和三分图用于表示字符的横竖笔画长短和位置,通过所述二分图和三分图将字符笔画归类并编码;
S5,根据步骤S4得到的字符笔画编码和步骤S1建立的字符识别规则库查询此字符编码,得到字符识别结果。
2.根据权利要求1所述的基于笔画分解的车牌字符识别方法,其特征在于,建立字符识别规则库的具体过程如下:
步骤S11.按照字符否有内轮廓将34个字符分为两大类,没有洞的字符:1、2、3、5、7、C、E、F、G、H、J、K、L、M、N、S、T、U、V、W、X、Y、Z;有洞的字符:0、4、6、8、9、A、B、D、P、Q、R;
步骤S12.分析笔画信息的长短和位置,包括横线、竖线、横线位置、竖线位置、竖线长短、竖线是否垂直竖立,对字符进行编码分类,将该字体在垂直方向上分为两份,记为二分图;在水平方向上平均分为三分,记为三分图,在对横笔画信息进行编码时,只使用三分图,在对竖笔画信息进行编码时则使用二分图和三分图;
对于一个横条在三分图中,可能有三种情况,并使用两位二进制码对其进行编码:只占有第1区,二进制编码是00;只占有第2区,二进制编码是01;只占有第3区,二进制编码是10;
根据上面定义的编码规则,在横图中,某一个横条就可以使用两位二进制码表示,用符号v表示竖条,那么字符E的三个横条信息可以表示为:最上面的横条,用符号表示是v1(00),00代表横条处于三分图中的第1区;位于中间的横条,用符号表示是v2(01),01代表横条处于三分图中的第2区;位于最下方的横条,用符合表示是v3(10),10代表横条处于三分图中的第3区;
如果笔画是竖,则在二分图和三分图中根据笔画位置和长短进行编码,对于一个竖条,在二分图中可能出现的情况有四种:只占第1区;只占第2区;既占有第1区,也占有第2区,并且自上到下是先经第1区再经过第2区;既占有第1区,也占有第2区,并且自上到下是先经第2区再经过第1区;可以使用两位二进制码表示:只占第1区:二进制码是00;只占第2区:二进制码是01;既占有第1区,也占有第2区,并且自上到下是先经第1区再经过第2区:二进制码是10;既占有第1区,也占有第2区,并且自上到下是先经第2区再经过第1区:二进制编码是11;
对于一个竖条,在三分图中可能有六种情况,并且使用3位二进制码对其进行编码:只占第1区:二进制编码是000;只占第2区:二进制编码是001;只占第3区:二进制编码是010;既占有第1区,也占有第2区:二进制编码是011;既占有第2区,也占有第3区:二进制编码是100;第1区,第2区,第3区都占有:二进制编码是101。
根据以上的定义,对一个字符中的某一竖条使用两段二进制码表示,一段二进制码是对二分图进行编码,另一段二进制码是对三分图进行编码;用符号h表示竖条,字符V的两个竖条信息可以表示:最长那个竖条,用符号表示是h1(00,101),00代表竖条处于二分图中的左侧,101代表竖条在三分图中占有第1区,第2区和第3区;次长的那个竖条,用符号表示是h2(01,011),01代表竖条处于二分图的右侧,011代表竖条在三分图中既占有第1区,也占有第2区;
步骤S13.根据字符笔画信息和以上编码规则,将两大类字符继续树形分类,其中,VS和HS分别表示横笔画总数和竖笔画总数,VS1、VS2、VS3分别表示有一个横笔画、两个横笔画、三个横笔画;HS1、HS2、HS3、HS4分别表示有一个竖笔画、两个竖笔画、三个竖笔画、四个竖笔画;V(NULL)表示没有横笔画信息,H(NULL)表示没有竖笔画信息;
对于没有内轮廓的字符,根据是否有横线信息分为两大类,有横线信息的为一类:{2、3、5、7、C、E、F、G、H、J、L、S、T、U、Z},没有横线信息的为一类:{1、K、M、N、V、W、X、Y};
对于字符集{2、3、5、7、C、E、F、G、H、J、L、S、T、U、Z}按照竖条的属性包括笔画的位置和长短分为5类:最长竖线在二分图一区并且长度占了三分图三个区(h(00,101))为一类:{C、E、F、G、H、L、U},最长竖线在二分图二区并且长度占了三分图三个区(h(01,101))为一类:{J、T},最长竖线从二分图一区横跨二分图二区并且长度占了三分图三个区(h(10,101))为一类:{S},最长竖线从二分图二区横跨二分图一区并且长度占了三分图三个区(h(11,101))为一类:{2,7,Z},最长竖线在三分图中没有占满3个区(!h(,101))为一类:{3,5};
对于字符集{1、K、M、N、V、W、X、Y},按照最长竖线的位置将其分为两大类:最长竖线在二分图第一区并占满三分图(h(01,101))为一类:{K、M、N、V、W、X、Y},最长竖线没有在二分图第一区的为一类:{1};
根据横线总数将字符子集{C、E、F、G、H、L、U}分为三类:{H,L,U}、{C,F}、{E,G};子集{J,T}按照横线的位置分为两类{J}、{T};子集{S}为叶子节点;子集{2,7,Z}按照横线位置分为两类{2,Z}、{7};子集{3,5}按照横线数量分为{3}、{5};子集{1}为叶子节点;子集{K,M,N,V,W,X,Y}按照横线数量分为三类{V,Y}、{K,N,X}、{M,W};
按照横线位置将子集{H,L,U}分为两类{H}、{L,U};按照横线位置将子集{C,F}分为两类{F}、{C};按照竖线总数将子集{E,G}分为两类{E}、{G};子集{2,Z}按照竖线总数分为两类{2}、{Z};子集{V,Y}按照次长竖线信息分为两类{V}、{Y};子集{K,N,X}按照次长竖笔画长短分为两类{K,N}、{X};子集{M,W}按照次长竖笔画长短分为两类{M}、{W};
将子集{L,U}按照次长竖线位置分为两类{U}、{L};将子集{K,N}按非最长竖的长短信息分为两类{N}、{K};
对于有内轮廓的字符集{0、4、6、8、9、A、B、D、P、Q、R},将其分为两类:两个内轮廓的子集{8、B}、一个内轮廓的子集{0、4、6、9、A、D、P、Q、R};
对于内轮廓的子集{0、4、6、9、A、D、P、Q、R},根据最长竖线是否在二分图中的一区中并且占满三分图中的三个分区将其分为子集{0、6、A、D、P、Q、R}和{4、9};
对于子集{0、6、A、D、P、Q、R},根据横图横线总数分为子集{0、6、D、P}和{A、Q、R};对于{4、9},根据竖图中是否有竖线经过2区再到1区并且占满横图中的三区,将其分为两类{4}和{9};
根据二分图中第二区是否有占满三分图的长竖,将子集{0、6、D、P}分为两类{0、D}和{6、P};按照横线总数,将子集{A、Q、R}分为两类{A}、{Q、R};
根据三分图第一区是否有横线信息将子集{6、P}分类为{P}{6},根据三分图第三区是否有横线信息将子集{Q、R}分类为{Q}{R}。
3.根据权利要求2所述的基于笔画分解的车牌字符识别方法,其特征在于,步骤S5中,当识别出来的字符是0和D或8和B时,还包括如下的处理过程:
字符0和D的识别:设定一矩形框,统计二值化图像后左上方矩形框内和左下方矩形框内白色像素点的百分比,当大于设定的阈值时,认为是D,否则是0;
字符8和字符B:定义一凸点,具体为:一条轮廓上的第i个点p(xi,yi),如果Sleft>ST,而且Sright>ST,那么就认为是一个凸点,其中ST是预先设定的阈值。Sleft=(xi>xi-1)+(xi>xi-2)+...+(xi>xi-t),Sright=(xi>xi+1)+(xi>xi+2)+...+(xi>xi+t);t表示轮廓上和第i个点的距离,第i-t个点的坐标为p(xi-t,yi-t),第i+t个点的坐标为p(xi+t,yi+t),如果在轮廓图对应三分图第二区检测到至少一个凸点,则认为是字符8,否则是字符B。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310245266.8A CN103295009B (zh) | 2013-06-20 | 2013-06-20 | 基于笔画分解的车牌字符识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310245266.8A CN103295009B (zh) | 2013-06-20 | 2013-06-20 | 基于笔画分解的车牌字符识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103295009A true CN103295009A (zh) | 2013-09-11 |
CN103295009B CN103295009B (zh) | 2016-03-02 |
Family
ID=49095840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310245266.8A Expired - Fee Related CN103295009B (zh) | 2013-06-20 | 2013-06-20 | 基于笔画分解的车牌字符识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103295009B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156721A (zh) * | 2014-07-31 | 2014-11-19 | 南京师范大学 | 一种基于模板匹配的脱机汉字笔画提取方法 |
CN105761351A (zh) * | 2016-01-08 | 2016-07-13 | 东方通信股份有限公司 | 基于结构特征的字符识别方法 |
CN105825218A (zh) * | 2016-04-01 | 2016-08-03 | 深圳市元征科技股份有限公司 | 汽车车辆识别码的识别方法及装置 |
CN106611175A (zh) * | 2016-12-29 | 2017-05-03 | 成都数联铭品科技有限公司 | 用于图像文字识别的字符图片自动切分系统 |
CN106682667A (zh) * | 2016-12-29 | 2017-05-17 | 成都数联铭品科技有限公司 | 非常见字体的图像文字ocr识别系统 |
CN109615719A (zh) * | 2019-01-04 | 2019-04-12 | 天地协同科技有限公司 | 基于道路安全监控系统的货运车辆不停车收费系统及方法 |
CN110852142A (zh) * | 2018-08-20 | 2020-02-28 | Ib研究株式会社 | 文献解析装置、文献解析方法、文献解析程序以及文献解析系统 |
CN112329769A (zh) * | 2020-10-27 | 2021-02-05 | 广汽本田汽车有限公司 | 一种车辆铭牌识别方法、装置、计算机设备及存储介质 |
CN113627420A (zh) * | 2020-05-09 | 2021-11-09 | 富士通株式会社 | 定位已识别文本行中的每个字符的方法、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995008158A1 (en) * | 1993-09-17 | 1995-03-23 | Fficiency Software, Inc. | Universal symbolic handwriting recognition system |
US6433706B1 (en) * | 2000-12-26 | 2002-08-13 | Anderson, Iii Philip M. | License plate surveillance system |
CN101515325A (zh) * | 2009-04-08 | 2009-08-26 | 北京邮电大学 | 基于字符切分和颜色聚类的数字视频中的字符提取方法 |
CN102147858A (zh) * | 2011-03-31 | 2011-08-10 | 重庆大学 | 车牌字符识别方法 |
CN102163287A (zh) * | 2011-03-28 | 2011-08-24 | 北京邮电大学 | 一种基于类Haar特征和支持向量机的车牌字符识别方法 |
-
2013
- 2013-06-20 CN CN201310245266.8A patent/CN103295009B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995008158A1 (en) * | 1993-09-17 | 1995-03-23 | Fficiency Software, Inc. | Universal symbolic handwriting recognition system |
US6433706B1 (en) * | 2000-12-26 | 2002-08-13 | Anderson, Iii Philip M. | License plate surveillance system |
CN101515325A (zh) * | 2009-04-08 | 2009-08-26 | 北京邮电大学 | 基于字符切分和颜色聚类的数字视频中的字符提取方法 |
CN102163287A (zh) * | 2011-03-28 | 2011-08-24 | 北京邮电大学 | 一种基于类Haar特征和支持向量机的车牌字符识别方法 |
CN102147858A (zh) * | 2011-03-31 | 2011-08-10 | 重庆大学 | 车牌字符识别方法 |
Non-Patent Citations (2)
Title |
---|
杨悼砚等: "车牌识别算法的研究和实现", 《2009年中国高校通信类院系学术研讨会论文集》, 31 December 2009 (2009-12-31), pages 238 - 242 * |
陈振学,汪国有,刘成云: "一种新的车牌图像字符分割与识别算法", 《微电子学与计算机》, vol. 24, 31 December 2007 (2007-12-31), pages 42 - 44 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156721A (zh) * | 2014-07-31 | 2014-11-19 | 南京师范大学 | 一种基于模板匹配的脱机汉字笔画提取方法 |
CN104156721B (zh) * | 2014-07-31 | 2017-06-23 | 南京师范大学 | 一种基于模板匹配的脱机汉字笔画提取方法 |
CN105761351A (zh) * | 2016-01-08 | 2016-07-13 | 东方通信股份有限公司 | 基于结构特征的字符识别方法 |
CN105825218A (zh) * | 2016-04-01 | 2016-08-03 | 深圳市元征科技股份有限公司 | 汽车车辆识别码的识别方法及装置 |
CN106611175A (zh) * | 2016-12-29 | 2017-05-03 | 成都数联铭品科技有限公司 | 用于图像文字识别的字符图片自动切分系统 |
CN106682667A (zh) * | 2016-12-29 | 2017-05-17 | 成都数联铭品科技有限公司 | 非常见字体的图像文字ocr识别系统 |
CN110852142A (zh) * | 2018-08-20 | 2020-02-28 | Ib研究株式会社 | 文献解析装置、文献解析方法、文献解析程序以及文献解析系统 |
CN109615719A (zh) * | 2019-01-04 | 2019-04-12 | 天地协同科技有限公司 | 基于道路安全监控系统的货运车辆不停车收费系统及方法 |
CN113627420A (zh) * | 2020-05-09 | 2021-11-09 | 富士通株式会社 | 定位已识别文本行中的每个字符的方法、设备和存储介质 |
CN113627420B (zh) * | 2020-05-09 | 2025-01-03 | 富士通株式会社 | 定位已识别文本行中的每个字符的方法、设备和存储介质 |
CN112329769A (zh) * | 2020-10-27 | 2021-02-05 | 广汽本田汽车有限公司 | 一种车辆铭牌识别方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103295009B (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103295009B (zh) | 基于笔画分解的车牌字符识别方法 | |
CN102208023B (zh) | 基于边缘信息和分布熵的视频字幕识别设计方法 | |
CN105205488B (zh) | 基于Harris角点和笔画宽度的文字区域检测方法 | |
CN104809481B (zh) | 一种基于自适应色彩聚类的自然场景文本检测方法 | |
CN100565559C (zh) | 基于连通分量和支持向量机的图像文本定位方法和装置 | |
CN104751142B (zh) | 一种基于笔划特征的自然场景文本检测方法 | |
CN113128442B (zh) | 基于卷积神经网络的汉字书法风格识别方法和评分方法 | |
CN104156721B (zh) | 一种基于模板匹配的脱机汉字笔画提取方法 | |
Xu et al. | Page segmentation for historical handwritten documents using fully convolutional networks | |
CN104408449B (zh) | 智能移动终端场景文字处理方法 | |
CN103310211B (zh) | 一种基于图像处理的填注标记识别方法 | |
CN104715252B (zh) | 一种动态模板结合像素点的车牌字符分割方法 | |
CN107895492A (zh) | 一种基于传统视频的高速公路智能分析方法 | |
CN101038686A (zh) | 一种基于信息融合的机读旅行证件识别方法 | |
CN103279770B (zh) | 基于笔画片段和轮廓特征的笔迹识别方法 | |
CN101122952A (zh) | 一种图片文字检测的方法 | |
CN104573685A (zh) | 一种基于线性结构提取的自然场景文本检测方法 | |
CN102509109B (zh) | 一种唐卡图像与非唐卡图像的区分方法 | |
CN103902981A (zh) | 一种基于字符融合特征的车牌字符识别方法及系统 | |
CN107122775A (zh) | 一种基于特征匹配的安卓手机身份证字符识别方法 | |
CN107066972A (zh) | 基于多通道极值区域的自然场景文本检测方法 | |
CN110046618B (zh) | 基于机器学习和最大极值稳定区域的车牌识别方法 | |
CN109271882B (zh) | 一种区分颜色的手写体汉字提取方法 | |
Li | An effective approach to offline arabic handwriting recognition | |
CN112070116B (zh) | 一种基于支持向量机的艺术画作自动分类系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160302 Termination date: 20180620 |