一种车牌识别方法及装置与流程

文档序号:11143304阅读:392来源:国知局
一种车牌识别方法及装置与制造工艺

本发明涉及图像处理技术领域,特别是涉及一种车牌识别方法及装置。



背景技术:

目前,车牌识别设备已经被广泛应用于停车场、城市道路、高速公路等区域进行车辆号牌的自动抓拍和识别。最近两年,一些新出的车款的车头是突出的,有一定的角度。尤其是奔驰和凯迪拉克等高档汽车。在摄像机采集回来的图像中,这些车牌是呈弯曲状。在距离摄像机较远的位置,车牌还比较接近传统的水平的车牌。一旦车辆行驶到靠近摄像机的位置,该类车牌就会看起来弯曲比较厉害。在本发明申请中,把该类车牌称为“弯车牌”。传统的车牌是平的,没有任何角度,而弯车牌看起来有角度的。

传统的车牌识别算法是按照传统的平的车牌开发的,弯车牌带来的一个问题是字符的间距改变了,正的车牌的间距是固定的。现场由于摄像机安装在一侧,查看弯车牌的时候,弯车牌会出现部分字符的间距变大,而部分字符的间距变小的现象。另外一个问题是字符的大小改变了,由于车牌是弯的,摄像机安装在通道的一侧,成像后会造成部分字符变大,而部分字符变小的现象。

对车牌上的字符进行分割的方法一般是“套模板”的方式,即预先按照每种车牌的格式制作模板,然后把模板套到检测到的车牌区域,就可以完成字符分割。对于传统车牌,该方法十分有效并且快速。但是对于弯车牌,当使用传统套模板的方法时,会容易造成切分后的字符不完整,或者一个模板内包含超过一个字符,这样就会造成后续的字符识别不正确的现象。鉴于此,提供一种对弯车牌进行识别的方法及装置是非常有必要的。



技术实现要素:

本发明的目的是提供一种车牌识别方法及装置,以解决现有车牌识别技术对弯车牌进行字符分割后容易导致字符识别不正确的问题。

为解决上述技术问题,本发明提供一种车牌识别方法,包括:

对待识别图像中包含车牌的区域进行定位,生成车牌字符区域;

对所述车牌字符区域进行列投影,确定所述车牌字符区域内的列投影识别字符块;

根据预先建立的车牌字符模板,确定所述车牌字符区域内的模板识别字符块;

根据所述模板识别字符块以及所述列投影识别字符块,动态调整所述车牌字符模板的位置,将模板匹配后的字符块确定为分割后的字符块;

对分割后的字符块中的字符进行识别,生成车牌识别结果。

可选地,所述根据所述模板识别字符块以及所述列投影识别字符块,动态调整所述车牌字符模板的位置,将模板匹配后的字符块确定为分割后的字符块包括:

根据所述车牌字符模板中字符的个数,将所述列投影识别字符块按照预设顺序依次划分为多个字符块组合;

将所述字符块组合分别与所述模板识别字符块进行匹配,确定重合度最高的字符块组合;

从所述字符块组合中选择重合度最高的字符作为基准字符,动态调整所述车牌字符模板的位置,确定分割后的字符块。

可选地,所述重合度为每个列投影识别字符块的中心与对应模板识别字符块的中心的距离值。

可选地,所述动态调整所述车牌字符模板的位置,确定分割后的字符块包括:

以每个字符的模板的中心为起点,寻找非0字符像素点,通过区域生长以及连通域的方法确定分割后的字符块。

可选地,所述以每个字符的模板的中心为起点,寻找非0字符像素点,通过区域生长以及连通域的方法确定分割后的字符块包括:

若字符的模板的中心点不为非0像素点,则以所述中心点为起点,依次搜索包围所述中心点的8个相邻像素点,直到找到一个非0像素点为止,将所述非0像素点作为参考点;

若字符的模板的中心点为非0像素点,则将所述中心点作为所述参考点;

依次检测与所述参考点相邻的8个像素点,若检测到不为0的像素点,则将对应像素点添加到队列里,并标记为已添加;循环操作,直到再也找不到没有添加的像素点为止;

将添加的所述像素点连接起来,确定分割后的字符块。

可选地,所述对待识别图像中包含车牌的区域进行定位,生成车牌字符区域包括:

对所述待识别图像中包含车牌的区域进行水平校正以及垂直校正;

对校正后的图像进行包含车牌字符区域的边界定位,确定所述车牌字符区域。

可选地,所述对所述车牌字符区域进行列投影,确定所述车牌字符区域内的列投影识别字符块包括:

统计所述车牌字符区域内每一列上的白色像素;

根据所述每一列上的白色像素的个数对所述车牌字符区域内的字符进行划分,确定列投影识别字符块。

可选地,所述根据预先建立的车牌字符模板,确定所述车牌字符区域内的模板识别字符块包括:

对所述待识别图像中的车牌进行类型判断;

根据车牌类型判断结果,调用预先建立的车牌类型对应的车牌字符模板;

将所述车牌字符模板放置于所述车牌字符区域,确定模板识别字符块。

可选地,在所述动态调整所述车牌字符模板的位置,将模板匹配后的字符块确定为分割后的字符块之前还包括:

计算所述模板识别字符块与所述列投影识别字符块的重合度;

将所述重合度与预设阈值进行比较;

当所述重合度大于预设阈值时,将所述模板识别字符块作为分割后的字符;

当所述重合度不大于预设阈值时,则执行后续动态调整所述车牌字符模板的位置,将模板匹配后的字符块确定为分割后的字符块的操作。

本发明还提供了一种车牌识别装置,包括:

车牌定位模块,用于对待识别图像中包含车牌的区域进行定位,生成车牌字符区域;

列投影处理模块,用于对所述车牌字符区域进行列投影,确定所述车牌字符区域内的列投影识别字符块;

模板处理模块,用于根据预先建立的车牌字符模板,确定所述车牌字符区域内的模板识别字符块;

字符划分模块,用于根据所述模板识别字符块以及所述列投影识别字符块,动态调整所述车牌字符模板的位置,将模板匹配后的字符块确定为分割后的字符块;

字符识别模块,用于对分割后的字符块中的字符进行识别,生成车牌识别结果。

本发明所提供的车牌识别方法及装置,通过对待识别图像中包含车牌的区域进行定位,生成车牌字符区域;对车牌字符区域进行列投影,确定车牌字符区域内的列投影识别字符块;根据预先建立的车牌字符模板,确定车牌字符区域内的模板识别字符块;根据模板识别字符块以及列投影识别字符块,动态调整车牌字符模板的位置,将模板匹配后的字符块确定为分割后的字符块;对分割后的字符块中的字符进行识别,生成车牌识别结果。本发明所提供的车牌识别方法及装置,结合列投影方法以及套模板的方法,通过动态调整模板以进行匹配,解决了字符切分不正确的问题,有效解决了弯车牌的字符识别问题,避免了采用现有车牌识别技术对弯车牌进行字符分割后容易导致字符识别不正确的问题。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的车牌识别方法的一种具体实施方式的流程图;

图2为本发明所提供的车牌识别方法的一种具体实施方式中进行动态调整的过程示意图;

图3为本发明所提供的车牌识别方法的一种具体实施方式中动态调整所述车牌字符模板的位置,确定分割后的字符块的过程示意图;

图4为本发明所提供的车牌识别方法的另一种具体实施方式流程图;

图5为本发明实施例提供的车牌识别装置的结构框图。

具体实施方式

与传统直车牌的识别相比,对弯车牌上的字符进行识别的最大困难就是如何能正确切分字符并且保证每个字符都是完整的。由于车牌是弯的,车牌上下边界定位的时候只能保证部分字符是对齐的,另外部分字符不能对齐。使用套模板就容易造成字符切不正确的情况。因此本发明针对弯车牌的字符的切分进行了相应地改进。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明所提供的车牌识别方法的一种具体实施方式的流程图如图1所示,该方法包括:

步骤S101:对待识别图像中包含车牌的区域进行定位,生成车牌字符区域;

本步骤为在摄像机采集到的图像上定位到包含车牌的区域。车牌区域定位的方法有很多,在此不再赘述。

本步骤对待识别图像中包含车牌的区域进行定位,生成车牌字符区域的过程可以具体包括:对所述待识别图像中包含车牌的区域进行水平校正以及垂直校正;对校正后的图像进行包含车牌字符区域的边界定位,确定所述车牌字符区域。需要指出的是,在获取到整个车牌的区域后,通过对包含车牌的区域进行水平矫正、垂直矫正以及对字符的上下、左右边界进行定位,找到车牌字符区域的精确位置,即车牌字符区域。

步骤S102:对所述车牌字符区域进行列投影,确定所述车牌字符区域内的列投影识别字符块;

列投影即统计整个车牌区域上的每一列上的白色像素,对于有字符的地方就会有一定数量的白色像素点,而字符之间的空隙不包含字符,也就没有白色像素点或者仅有少数噪声点。通过列投影后就可以得到每个字符在车牌区域的精确位置。

该过程可以具体为:统计所述车牌字符区域内每一列上的白色像素;根据所述每一列上的白色像素的个数对所述车牌字符区域内的字符进行划分,确定列投影识别字符块。

步骤S103:根据预先建立的车牌字符模板,确定所述车牌字符区域内的模板识别字符块;

具体地,该过程可以为:对所述待识别图像中的车牌进行类型判断;根据车牌类型判断结果,调用预先建立的车牌类型对应的车牌字符模板;将所述车牌字符模板放置于所述车牌字符区域,确定模板识别字符块。

步骤S104:根据所述模板识别字符块以及所述列投影识别字符块,动态调整所述车牌字符模板的位置,将模板匹配后的字符块确定为分割后的字符块;

步骤S105:对分割后的字符块中的字符进行识别,生成车牌识别结果。

本发明所提供的车牌识别方法,通过对待识别图像中包含车牌的区域进行定位,生成车牌字符区域;对车牌字符区域进行列投影,确定车牌字符区域内的列投影识别字符块;根据预先建立的车牌字符模板,确定车牌字符区域内的模板识别字符块;根据所述模板识别字符块以及所述列投影识别字符块,动态调整所述车牌字符模板的位置,将模板匹配后的字符块确定为分割后的字符块;对分割后的字符块中的字符进行识别,生成车牌识别结果。本发明所提供的车牌识别方法,结合列投影方法以及套模板的方法,通过动态调整模板以进行匹配,解决了字符切分不正确的问题,有效解决了弯车牌的字符识别问题,避免了采用现有车牌识别技术对弯车牌进行字符分割后容易导致字符识别不正确的问题。

在上述实施例的基础上,如图2所示,本发明所提供的车牌识别方法中根据所述模板识别字符块以及所述列投影识别字符块,动态调整所述车牌字符模板的位置,将模板匹配后的字符块确定为分割后的字符块的过程可以具体包括:

步骤S201:根据所述车牌字符模板中字符的个数,将所述列投影识别字符块按照预设顺序依次划分为多个字符块组合;

步骤S202:将所述字符块组合分别与所述模板识别字符块进行匹配,确定重合度最高的字符块组合;

步骤S203:从所述字符块组合中选择重合度最高的字符作为基准字符,动态调整所述车牌字符模板的位置,确定分割后的字符块。

其中,重合度为每个列投影识别字符块的中心与对应模板识别字符块的中心的距离值。

进一步地,上述动态调整所述车牌字符模板的位置,确定分割后的字符块的过程可以具体为:以每个字符的模板的中心为起点,寻找非0字符像素点,通过区域生长以及连通域的方法确定分割后的字符块。

作为一种具体实施方式,如图3所示,动态调整所述车牌字符模板的位置,确定分割后的字符块的过程可以具体包括如下步骤:

步骤S301:若字符的模板的中心点不为非0像素点,则以所述中心点为起点,依次搜索包围所述中心点的8个相邻像素点,直到找到一个非0像素点为止,将所述非0像素点作为参考点;

步骤S302:若字符的模板的中心点为非0像素点,则将所述中心点作为所述参考点;

步骤S303:依次检测与所述参考点相邻的8个像素点,若检测到不为0的像素点,则将对应像素点添加到队列里,并标记为已添加;循环操作,直到再也找不到没有添加的像素点为止;

步骤S304:将添加的所述像素点连接起来,确定分割后的字符块。

参照图4本发明所提供的车牌识别方法的另一种具体实施方式流程图,下面对其实施的过程进行进一步详细阐述。

步骤S401:对包含车牌的区域进行定位。

步骤S402:对包含车牌的区域进行水平矫正,垂直矫正以及字符的上下、左右边界定位,生成车牌字符区域,即车牌字符区域的精确位置。

步骤S403:对整个车牌进行列投影,得到每个字符在车牌区域的精确位置。

列投影即统计整个车牌区域上的每一列上的白色像素,对于有字符的地方就会有一定数量的白色像素点,而字符之间的空隙不包含字符就没有白色像素点或者仅有少数噪声点。通过列投影后就可以得到每个字符在车牌区域的精确位置。由于车牌附近的车身上可能有一些东西,例如是泥块。另外有些车使用了比较粗的车牌边框,经过处理后,就会有可能得到超过车牌字符数量的列投影结果。

步骤S404:对车牌的类型进行判断,使用预先制作的模板套在车牌区域,得到字符切分的结果。

车牌字符模板是预先通过大量的图片进行统计获得。例如蓝色的车牌,包含7个字符,每个字符在车牌上的位置,以及字符之间的间距是确定的,通过事先统计就可以获得一个标准的模板。不同类型的车牌会有不同的模板,例如武警的车牌会有单层武警车牌以及双层武警车牌。单层武警车牌只有1层,并包含8个字符。双层武警车牌有两层,上面一层3个字符,下面一层5个字符。判断出车牌的类型后,模板一套就可以得到切分的结果。

步骤S405:计算列投影的结果与套模板得到的结果的重合度;将得到的重合度与预设阈值进行比较;当重合度大于预设阈值时,将模板识别字符块作为分割后的字符;当重合度不大于预设阈值时,则执行后续操作。

计算列投影的结果与套模板得到的结果的重合度,如果重合度高,超过了阈值,说明是普通的车牌,不需要进行进一步处理。如果不重合,说明的弯车牌,则需要进行进一步处理。

投影得到的结果可能会得到比模板的字符个数多或者少。套模板的过程就是把模板中的每个字符的中心与列投影得到的对应位置的字符的中心对齐。如果车牌类型判断没有失败,并且车牌上的字符都能通过列投影确定,那么模板套上去,模板中的每个字符的中心与列投影得到的对应位置的字符的中心就会基本重合,它们之间的距离的和会很小,就可以选择距离的和最小的结果作为套模板的结果。

例如列投影有10个字符,就把第1-7个字符套一次,第2-8个字符套一次,第3-9个字符套一次以及第4-10个字符套一次,然后选择中心距离之和最小的作为本次套模板的结果。如果列投影得到的字符的个数比模板的字符的个数少,套模板的时候也是把模板的字符中心与列投影的中心对齐,找到重合度最高的结果。列投影得到的字符的个数比模板的字符的个数少,原因有可能是:投影失败了;字符出现了粘连,导致字符的个数减少或者车牌类型判断失误。

步骤S406:选择重合度最高的那一个字符作为基准字符,使用列投影的结果动态调整模板的位置。

在找到了重合度最高的一组字符后,再从这些字符中寻找重合度最高的单个字符,并以这个字符为基准字符,使用列投影的结果来动态调整模板中的字符的位置,即把模板的每个字符的中心与列投影结果的字符的中心对齐。调整的时候为了避免由于中间缺失字符或者投影结果不准导致调整后模板字符之间的间距过大,会把调整的范围控制在字符宽度的20%以内,超过20%就不调整。动态调整后,模板就能基本反应当前车牌的字符的位置。

步骤S407:以每个字符的模板的中心为起点,寻找非0字符像素点,然后进行区域生长,通过连通域的方法确定字符。

由于车牌是弯的,使用传统的模板套上去,会导致部分字符的上下不准,即可能只包含半个字符。另外由于模板的动态调整,也会导致字符的左右也不准。为了能够得到一个完整的字符,最后一步就进行以模板的中心为起点,寻找字符像素点,然后进行区域生长,通过连通域的方法确定字符的。

如果模板的中心刚好在空白处,那么就不是非0像素点。就以该字符模板的中心为起点,依次搜索包围该中心的8个相邻像素点。如果仍然没有找到非0像素点,就搜索外围一圈,以此类推直到找到一个非0像素点为止。

如果模板的中心就是一个非0像素点,那么对于模板中心或者找到的一个非0像素点,依次检查与该点连接的8个像素点,如果发现不为0的点,就把这个点添加到队列里,并标记为已添加。队列有了初始值后,对于队列里的每个点,依次检查与该中心点连接的8个像素点,如果发现不为0的点,并且还没添加到队列的,就把这个点添加到队列里,并标记为已添加。一直循环操作,直到再也找不到没有添加的点为止。最后再把所有的这些点连接起来,就能得到一个完整的字符。本发明实施例通过这个方法,能够解决字符不完整的问题。

本发明实施例首先使用预先制作的模板套在车牌区域,得到字符切分的结果。再计算列投影的结果与套模板得到的结果的重合度,并选择重合度最高的一组字符结果。然后再选择重合度最高的一个字符作为基准字符,使用列投影的结果调整模板的位置。最后以每个字符的模板的中心为起点,寻找字符像素点,通过进行区域生长以及连通域的方法确定字符。模板动态调整能解决上述的切分不正确的问题,而字符区域生长加连通域的方法能解决字符不完整的问题。该方法能有效解决弯车牌的字符识别的问题,并且运算量少,能在嵌入式设备实现。

下面对本发明实施例提供的车牌识别装置进行介绍,下文描述的车牌识别装置与上文描述的车牌识别方法可相互对应参照。

图5为本发明实施例提供的车牌识别装置的结构框图,参照图5车牌识别装置可以包括:

车牌定位模块100,用于对待识别图像中包含车牌的区域进行定位,生成车牌字符区域;

列投影处理模块200,用于对所述车牌字符区域进行列投影,确定所述车牌字符区域内的列投影识别字符块;

模板处理模块300,用于根据预先建立的车牌字符模板,确定所述车牌字符区域内的模板识别字符块;

字符划分模块400,用于根据所述模板识别字符块以及所述列投影识别字符块,动态调整所述车牌字符模板的位置,将模板匹配后的字符块确定为分割后的字符块;

字符识别模块500,用于对分割后的字符块中的字符进行识别,生成车牌识别结果。

本实施例的车牌识别装置用于实现前述的车牌识别方法,因此车牌识别装置中的具体实施方式可见前文中的车牌识别方法的实施例部分,例如,车牌定位模块100,列投影处理模块200,模板处理模块300,字符划分模块400,字符识别模块500,分别用于实现上述车牌识别方法中步骤S101,S102,S103,S104,S105,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明所提供的车牌识别装置,通过对待识别图像中包含车牌的区域进行定位,生成车牌字符区域;对车牌字符区域进行列投影,确定车牌字符区域内的列投影识别字符块;根据预先建立的车牌字符模板,确定车牌字符区域内的模板识别字符块;根据模板识别字符块以及列投影识别字符块,动态调整车牌字符模板的位置,将模板匹配后的字符块确定为分割后的字符块;对分割后的字符块中的字符进行识别,生成车牌识别结果。本发明所提供的车牌识别装置,结合列投影方法以及套模板的方法,通过动态调整模板以进行匹配,解决了字符切分不正确的问题,有效解决了弯车牌的字符识别问题,避免了采用现有车牌识别技术对弯车牌进行字符分割后容易导致字符识别不正确的问题。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的车牌识别方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1