一种可变长字符串识别方法与装置与流程

文档序号:19420393发布日期:2019-12-14 01:21阅读:182来源:国知局
一种可变长字符串识别方法与装置与流程

本发明涉及模式识别,更具体涉及一种可变长字符串识别方法与装置。



背景技术:

生活中有许多场景需要应用到计算机视觉领域的光学字符识别(ocr)和自然场景文字识别的技术。

近年来随着经济和科技的发展,汽车等交通工具越来越普及。汽车极大地改变了人们的生活方式,方便了人们出行。车牌是汽车的唯一标识。在安防监控中,车牌识别是十分重要的一环。首先要检测出车牌的位置,将车牌切割出来,再对车牌进行识别。车牌识别主要采用ocr技术进行识别。传统的车牌识别技术先对车牌进行字符分割,切分出单个字符,再对单个字符进行识别,最后完成整个车牌的识别。近年来随着深度学习的理论的发展和完善,在计算机视觉领域取得让人瞩目的成果。在车牌识别方法上各大安防厂商也开始引入深度学习的解决方案,有采用纯卷积神经网络方法的,也有采用卷积神经网络和循环神经网络相结合的方法的。在车牌识别过程中,因为遮挡或其他原因,有时需要识别的车牌并不是完整的车牌,而是车牌的一部分。这样给车牌识别带来了更大的挑战。

类似地,验证码、企业工牌信息、身份证信息、银行卡信息等等信息在识别过程中往往也有可能不是对完整的字符串进行识别,例如部分字符有遮挡或有污损、缺失等情况,这使得以规定的完整字符数对该字符串进行完整识别几乎成为不可能。由此,往往需要人们调整识别算法,对字符数变化(变长)的信息进行特殊识别,从而造成识别效率的下降。另外,在识别准确度方面,由于需要调整识别算法,即改变经大量训练的人工神经网络模型,与完整字符数识别的情况相比,变长字符串识别会出现不同程度的识别准确度下降。



技术实现要素:

本发明的实施例提供一种可变长字符串识别方法与装置,特别适用于可识别的字符串并非完整字符串的情况,例如部分字符有遮挡或有污损、缺失等情况。本发明的实施例根据字符串的情况设定一种或多种监督信号,通过监督信号来引导神经网络模型的训练,并将该模型用于识别可变长字符串。由此,提高了现有技术中对于此种情况的识别效率,同时亦能提高识别准确度。

为了实现本发明的目的,根据本发明的第一方面,提供一种可变长字符串识别方法。该方法可以包括:确定具有可变长字符串的识别区域;基于通过一个或多个监督信号而训练的卷积神经网络,识别所述可变长字符串。

优选地,所述的基于通过多种监督信号而训练的卷积神经网络,识别所述可变长字符串的步骤可以进一步包括:基于通过多种监督信号而训练的卷积神经网络,使用端到端深度学习方法来识别所述可变长字符串。

优选地,所述卷积神经网络可以包括多个分支。

具体地,所述卷积神经网络的多个分支可以包括分别对所述可变长字符串中每个字符进行识别的各个分支以及作为监督信号而存在的其他分支。

优选地,所述其他分支可以用于指示以下一种或多种监督信号:字符的数目;各个字符的存在与否;字符串的种类。

更具体地,对于所述识别区域是车牌,所述可变长字符串是车牌上可识别的字符串的这种情况而言,所述卷积神经网络的多个分支可以包括分别对车牌上每个可识别字符进行识别的各个分支以及作为监督信号而存在的其他分支。所述其他分支可以用于指示以下一种或多种监督信号:车牌上可识别的字符的总数目;车牌上应有的字符的存在与否;车牌的种类。

为了实现本发明的目的,根据本发明的第二方面,提供一种可变长字符串识别装置。该装置可以包括:识别区域确定模块,用于确定具有可变长字符串的识别区域;字符串识别模块,基于通过一个或多个监督信号而训练的卷积神经网络,识别所述可变长字符串。

优选地,所述字符串识别模块可以进一步被配置用于基于通过多种监督信号而训练的卷积神经网络,使用端到端深度学习方法来识别所述可变长字符串。

优选地,所述字符串识别模块可以进一步包括多个字符串识别分支子模块,用于分别基于所述卷积神经网络的多个分支识别所述可变长字符串。

具体地,所述多个字符串识别分支子模块可以进一步包括用于分别对所述可变长字符串中每个字符进行识别的各个分支子模块以及用于基于监督信号识别所述可变长字符串的分支子模块。

优选地,所述的用于基于监督信号识别所述可变长字符串的分支子模块可以进一步被配置用于基于以下一种或多种监督信号识别所述可变长字符串:字符的数目;各个字符的存在与否;字符串的种类。

更具体地,对于所述识别区域是车牌,所述可变长字符串是车牌上可识别的字符串的这种情况而言,所述字符串识别模块可以进一步包括多个字符串识别分支子模块,用于分别基于所述卷积神经网络的多个分支识别所述车牌上可识别的字符串,所述多个字符串识别分支子模块可以进一步包括用于分别对车牌上每个可识别字符进行识别的各个分支子模块以及用于基于监督信号识别所述车牌上可识别的字符串的分支子模块。所述的用于基于监督信号识别所述车牌上可识别的字符串的分支子模块进一步被配置用于基于以下一种或多种监督信号识别所述车牌上可识别的字符串:车牌上可识别的字符的总数目;车牌上应有的字符的存在与否;车牌的种类。

为了实现本发明的目的,根据本发明的第三方面,提供一种计算机可读介质。该计算机可读介质可以用于记录可由处理器执行的指令,所述指令在被处理器执行时,使得处理器执行可变长字符串识别方法,包括如下操作:确定具有可变长字符串的识别区域;基于通过一个或多个监督信号而训练的卷积神经网络,识别所述可变长字符串。

优选地,所述的基于通过一个或多个监督信号而训练的卷积神经网络,识别所述可变长字符串的操作可以进一步包括:基于通过多种监督信号而训练的卷积神经网络,使用端到端深度学习方法来识别所述可变长字符串。

在本发明的可变长字符串识别技术中,采用多监督信号和卷积神经网络对可变长车牌进行识别,这种方案简单易实现,同时识别精度也极高,能够较好的解决可变长字符串识别问题。

此外,尽管待识别的字符串的长度可变,但由于监督信号的存在,使得这样的字符串同样可以像完整字符串一样适用端到端深度学习方法来进行识别,从而进一步提高识别精度,减少时间损耗。

更具体到车牌识别的例子中,本发明的可变长字符串识别技术可以针对完整或不完整的车牌进行高效、准确地识别,从而以简单的实现方式充分满足日常安防的需求。

附图说明

下面参考附图结合实施例说明本发明。

图1示出了示出了根据本发明实施例的可变长字符串识别方法的流程图。

图2示出了根据本发明实施例的可变长字符串识别装置的示意框图。

图3示出了根据本发明具体实施例的针对不完整车牌进行车牌号码识别的过程。

具体实施方式

附图仅用于示例说明,不能理解为对本发明的限制。下面结合附图和实施例对本发明的技术方案做进一步的说明。

图1示出了示出了根据本发明实施例的可变长字符串识别方法的流程图。

如图1中所示,根据本发明实施例的可变长字符串识别方法100开始于步骤s110。在此步骤,确定具有可变长字符串的识别区域。

如前所述,本发明特别适用于需要识别的字符串不完整即可变长的情况。举例来说,在背景技术中提到了车牌中的不完整字符的情况。下文中将针对该车牌的情况给出一个应用本发明的具体实施例。

此外,我们还应该想到企业工牌或身份证识别的场景。这些证件上的字符可能由于污损或缺失而不可被机器识别,或者仅仅由于拍摄角度或拍摄质量的原因而无法完整识别。

类似地,验证码、银行卡信息等等信息也可能存在不完整的情况,使得识别的难度加大。这些场景都适用于本发明。

具体地说,在步骤s110,就是要首先确定待识别的区域。在这个待识别的区域中,分布有待识别的字符串,这个字符串的字符数目可能是完整的数目,也可能是不完整的数目。而本发明的最终目标在于,不管该字符串的数目完整或不完整,都可以将这个字符串依照固有的分类模型(例如车牌、身份证、银行卡)而整体进行识别。

接下来,在步骤s120,基于通过一个或多个监督信号而训练的卷积神经网络,识别所述可变长字符串。优选地,可以使用端到端深度学习方法来识别所述可变长字符串。

本领域技术人员应该能够理解端到端深度学习的概念。简而言之,对于以前的一些数据处理系统,或者学习系统,它们可能需要多个阶段的处理,而端到端深度学习,就是忽略所有这些不同的阶段,用单个神经网络代替它。以光学字符识别(ocr)为例,在传统方法中,输入一个带字符串的图像,需要把图像中的字符串映射到一个输出,就是对这些字符的识别结果(即一个或多个字符串)。所以传统上,字符识别可能需要很多阶段的处理,可能需要提取一些特征,对字符区域做分割使得每个字符单独被分割出来以便识别,然而分别应用机器学习算法识别并提取每个可识别的字符,最后将这些字符连接在一起构成独立的字符串。和之前的有很多阶段的流水线相比,端到端深度学习做的就是,训练一个巨大的神经网络,输入的是带有字符串的图像,而输出的就是一个完整的字符串识别结果;而不像现有技术一样,将字符串中每个字符进行分别识别,最后组合成一个识别结果。通过这样的端到端深度学习,可以减少识别过程中的中间环节,在使得识别技术更加智能的同时,进一步提高识别精度,减少时间损耗。

实际上,如果需要识别的是一个完整的字符串,则可以根据该字符串的种类,训练出一个专门针对该字符串种类的神经网络模型。然而,这样的神经网络模型往往对于字符串的完整度有较高的要求,例如,必须是规定的长度的字符串。对于长度上有缺失的变长字符串,训练出来的神经网络模型很可能不再适用。

本发明针对的就是这种情况的解决。解决的方式就是在模型训练的过程中,加入一个或多个监督信号来引导模型的训练。

具体地说,在识别过程中所使用的卷积神经网络可以包括多个分支。这多个分支可以包括分别对所述可变长字符串中每个字符进行识别的各个分支以及作为监督信号而存在的其他分支。所述的其他分支可以用于指示以下一种或多种监督信号:

字符的数目;

各个字符的存在与否;

字符串的种类。

本领域技术人员应该理解,多个分支还可以包括指示其他监督信号的分支,例如:字符的颜色、字体、粗细、字号大小、语言种类等等。

此外,本领域技术人员应该理解,本文中所提及的“字符”或“字符串”,指的可能是一个或多个的各种文字、数字、符号、标记等。其因为可被用于标识的作用而有意义,并且因此需要被识别。

通过利用这些监督信号,可变长字符串可以被构建为完整字符串的一部分,或者就是完整字符串本身。把字符的诸如存在或缺失用监督信号来表示,从而将不完整字符串与完整字符串的识别统一到了一种模型之中。

在步骤s120完成之后,方法100可以结束。

与图1的方法相对应,可以构建一个可变长字符串识别装置。

图2示出了根据本发明实施例的可变长字符串识别装置的示意框图。

如图2中所示,根据本发明实施例的可变长字符串识别装置200可以至少包括两个模块:识别区域确定模块201和字符串识别模块202。

识别区域确定模块201用于确定具有可变长字符串的识别区域。本领域技术人员应理解,该模块执行的操作是图1的方法100中的步骤s110。

字符串识别模块202用于基于通过一个或多个监督信号而训练的卷积神经网络,识别所述可变长字符串。本领域技术人员应理解,该模块执行的操作是图1的方法100中的步骤s120。从前文可知,所述字符串识别模块202可以使用端到端深度学习方法来识别所述可变长字符串。

此外,如前所述,所述卷积神经网络可以包括多个分支。由此,所述字符串识别模块202可以进一步包括多个字符串识别分支子模块(未示出),用于分别基于所述卷积神经网络的多个分支识别所述可变长字符串。所述多个字符串识别分支子模块可以进一步包括用于分别对所述可变长字符串中每个字符进行识别的各个分支子模块以及用于基于监督信号识别所述可变长字符串的分支子模块。所述的用于基于监督信号识别所述可变长字符串的分支子模块可以进一步用于基于以下一种或多种监督信号识别所述可变长字符串:

字符的数目;

各个字符的存在与否;

字符串的种类。

下面将给出应用本发明的可变长字符串识别方法与装置的一个具体实施例,即背景技术中所提到的不完整车牌的场景。

图1的方法100中的步骤s110,即确定具有可变长字符串的识别区域的步骤,在这个具体场景之中可以具体化为检测确定出完整或不完整的车牌。换句话说,图2的装置200的识别区域确定模块201被具体用于检测确定出完整或不完整的车牌。

图3示出了根据本发明具体实施例的针对不完整车牌进行车牌号码识别的过程。

在图3的这个例子中,如果所述识别区域是车牌的话,则所述可变长字符串就是车牌上可识别的字符串。这里需要注意的是,字符串之所以是可变长的,是因为车牌可能不完整,则可识别的字符串可能就是不完整的,因此字符串的字符数目并不是固定的。一般情况下,由于车牌被污损,或者拍摄的原因,车牌上可识别的字符串的字符数目可能小于或等于标准车牌上字符的数目。

前面提到,卷积神经网络可以包括多个分支。在车牌的例子中,所述字符串识别模块202可以进一步包括多个字符串识别分支子模块(未示出),用于分别基于所述卷积神经网络的多个分支识别所述车牌上可识别的字符串。所述多个字符串识别分支子模块可以进一步包括用于分别对车牌上每个可识别字符进行识别的各个分支子模块(未示出)以及用于基于监督信号识别所述车牌上可识别的字符串的分支子模块(未示出)。

例如,多个分支的卷积神经网络的分支数目是16。前7个分支对车牌的7个字符分别进行识别,可以由用于分别对车牌上每个可识别字符进行识别的各个分支子模块进行识别;第8分支识别车牌种类(例如不同年份制式的民用号码、军用或警用号牌、使馆车号牌等等),第9到15分支则指示前7个字符的存在与否,最后一个分支是对字符总数进行分类,其最大值为7。也就是说,所述的用于基于监督信号识别所述车牌上可识别的字符串的分支子模块用于基于以下一种或多种监督信号识别所述车牌上可识别的字符串:车牌上可识别的字符的总数目;车牌上应有的字符的存在与否;车牌的种类。

如图3所示,待识别的车牌为目前广泛使用的九二式机动车号牌。该车牌号的字符规则是:由中文与英文字母的发牌机关代码与五位号码组成。比如“苏a-12345”,“苏”代表江苏省,a是南京市公安局车辆管理所发牌代码,代表此车是由南京市公安局车辆管理所发牌。后面五位数是序号。

具体到图3的例子,车牌中的第一个字符不可识别,但第二个字符以及后续的五位字符是可识别的。因此,对该号牌的识别结果可以表示为“*ne6163”。具体套用之前例子中的监督信号来表示,则这样的识别结果可以被表示为:id(*)id(n)id(e)id(6)id(1)id(6)id(3)101111116。可以解释为:前7个分支对车牌的7个字符分别进行识别(*ne6163),第8分支识别车牌种类(“1”),第9到15分支则指示前7个字符的存在与否(0111111,即只缺第一个),最后一个分支是对字符总数进行分类(6,即有6个可识别字符)。

在另一个例子中,待识别的车牌为目前广泛使用的九二式机动车号牌,其前四个字符是可识别的,而后续的字符缺失。例如,对该号牌的识别结果可以表示为“京a3l***”。具体套用之前例子中的监督信号来表示,则这样的识别结果可以被表示为:id(京)id(a)id(3)id(l)id(*)id(*)id(*)111110004。可以解释为:前7个分支对车牌的7个字符分别进行识别(京a3l***),第8分支识别车牌种类(“1”),第9到15分支则指示前7个字符的存在与否(1111000,即缺后三个),最后一个分支是对字符总数进行分类(4,即有4个可识别字符)。

本领域技术人员应该理解,在使用卷积神经网络模型进行识别之前,也是使用这样的分支作为监督信号,针对大量车牌数据进行网络模型训练的。

这种特定的结构决定了本发明能够识别变长字符的车牌。对于检测车牌产生的误差,也有很好的适应性。

本领域普通技术人员应该认识到,本发明的方法可以实现为计算机程序。如上结合图1所述,根据上述实施例的方法可以执行一个或多个程序,包括指令来使得计算机或处理器执行结合附图所述的算法。这些程序可以使用各种类型的非瞬时计算机可读介质存储并提供给计算机或处理器。非瞬时计算机可读介质包括各种类型的有形存贮介质。非瞬时计算机可读介质的示例包括磁性记录介质(诸如软盘、磁带和硬盘驱动器)、磁光记录介质(诸如磁光盘)、cd-rom(紧凑盘只读存储器)、cd-r、cd-r/w以及半导体存储器(诸如rom、prom(可编程rom)、eprom(可擦写prom)、闪存rom和ram(随机存取存储器))。进一步,这些程序可以通过使用各种类型的瞬时计算机可读介质而提供给计算机。瞬时计算机可读介质的示例包括电信号、光信号和电磁波。瞬时计算机可读介质可以用于通过诸如电线和光纤的有线通信路径或无线通信路径提供程序给计算机。

因此,根据本发明,还可以提议一种计算机程序或一种计算机可读介质,用于记录可由处理器执行的指令,所述指令在被处理器执行时,使得处理器执行可变长字符串识别方法,包括如下操作:确定具有可变长字符串的识别区域;基于通过一个或多个监督信号而训练的卷积神经网络,识别所述可变长字符串。

在以上的计算机程序或计算机可读介质中,更具体地,所述的基于通过一个或多个监督信号而训练的卷积神经网络,识别所述可变长字符串的操作进一步包括:基于通过多种监督信号而训练的卷积神经网络,使用端到端深度学习方法来识别所述可变长字符串。

上面已经描述了本发明的各种实施例和实施情形。但是,本发明的精神和范围不限于此。本领域技术人员将能够根据本发明的教导而做出更多的应用,而这些应用都在本发明的范围之内。

也就是说,本发明的上述实施例仅仅是为清楚说明本发明所做的举例,而非对本发明实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、替换或改进等,均应包含在本发明权利要求的保护范围之内。

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