车牌识别模型训练方法、车牌识别方法及装置与流程

文档序号:19117069发布日期:2019-11-13 01:17阅读:656来源:国知局
车牌识别模型训练方法、车牌识别方法及装置与流程

本公开一般地涉及图像识别领域,具体涉及一种车牌识别模型训练方法、车牌识别方法及装置。



背景技术:

随着现代交通技术的迅速发展,汽车车牌识别技术已然成为一项非常重要的研究课题,并在现实生活中得到广泛应用。例如高速公路收费管理、超速违章自动拍照、停车场管理、小区进出车辆管理、交通执法、车辆定位等场合都离不开车牌识别技术。

在车牌识别技术中,由于车牌的位数固定,采用模型,如深度卷积网络等,对每一位分别进行字符的分类是一种常用的方法。但是由于车牌字符类别有代表各省市的中文、英文字母和数字,样本中各字符的分类难度是不一样的。首先因为训练集中各字符的训练样本很可能不均衡,其次它们的分类难度本身不一样,比如中文的字符比英文和数字都要复杂,因此比较难于识别。采用传统方法,不能很好的训练提高模型的识别准确率,并且训练的成本较高。



技术实现要素:

为了解决现有技术中存在的上述问题,本公开的第一方面提供一种车牌识别模型训练方法,其中,方法包括:输入步骤,将一个或多个具有多个字符的车牌图像输入模型;输出步骤,通过模型,输出得到每个车牌图像的每个字符的分类损失值和/或识别结果;困难字符确定步骤,基于字符的分类损失值和/或识别结果,确定字符中的困难字符;回传步骤,将困难字符的分类损失值进行回传,忽略其余字符的分类损失值;更新模型参数步骤,根据回传的困难字符的分类损失值,更新模型的模型参数。

在一例中,困难字符确定步骤包括:基于字符的分类损失值,将车牌图像中的全部字符的分类损失值最大的n个字符,作为困难字符,其中n为正整数。

在一例中,困难字符确定步骤包括:基于字符的分类损失值,将车牌图像中的全部字符的分类损失值超过损失阈值的字符,作为困难字符。

在一例中,困难字符确定步骤包括:基于识别结果,将识别错误的字符作为困难字符。

在一例中,在困难字符确定步骤之后,方法还包括:二次识别步骤,将包含困难字符的车牌图像输入模型,通过模型,输出得到困难字符的分类损失值。

本公开的第二方面提供一种车牌识别方法,其中,方法包括:获取步骤,获取车牌图像;识别步骤,将车牌图像输入模型,对车牌图像进行识别,得到车牌识别结果,其中,模型通过如第一方面的车牌识别模型训练方法训练得到。

本公开的第三方面提供一种车牌识别模型训练装置,其中,装置包括:输入模块,用于将一个或多个具有多个字符的车牌图像输入模型;输出模块,用于通过模型,输出得到每个车牌图像的每个字符的分类损失值和/或识别结果;困难字符确定模块,用于基于字符的分类损失值和/或识别结果,确定字符中的困难字符;回传模块,用于将困难字符的分类损失值进行回传,忽略其余字符的分类损失值;更新模型参数模块,用于根据回传的困难字符的分类损失值,更新模型的模型参数。

本公开的第四方面提供一种车牌识别装置,其中,装置包括:获取模块,用于获取车牌图像;识别模块,用于将车牌图像输入模型,对车牌图像进行识别,得到车牌识别结果,其中,模型通过如第一方面的车牌识别模型训练方法训练得到。

本公开的第五方面提供一种电子设备,包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行第一方面的车牌识别模型训练方法或第二方面的车牌识别方法。

本公开的第六方面提供一种计算机可读存储介质,其中存储有指令,指令被处理器执行时,执行第一方面的车牌识别模型训练方法或第二方面的车牌识别方法。

本公开提供的车牌识别模型训练方法、车牌识别方法及装置通过确定困难字符,使得训练更侧重于难度更大的样本,对困难样本和其余的容易样本采取不一样的训练方法,对困难样本做针对性的更大量的训练,从而使其提高对困难样本的识别能力,保持对容易样本的识别能力,从而提高训练效果,降低训练成本。

附图说明

通过参考附图阅读下文的详细描述,本公开实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:

图1示出了根据本公开一实施例车牌识别模型训练方法的流程示意图;

图2示出了根据本公开另一实施例车牌识别模型训练方法的流程示意图;

图3示出了根据本公开一实施例车牌识别方法的流程示意图;

图4示出了根据本公开一实施例车牌识别模型训练装置的示意图;

图5示出了根据本公开一实施例车牌识别装置的示意图;

图6是本公开实施例提供的一种电子设备示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。

需要注意,虽然本文中使用“第一”、“第二”等表述来描述本公开的实施方式的不同模块、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的模块、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。

为了降低训练成本,同时提高车牌识别模型的训练效果,使得训练得到的模型能够更准确的识别车牌字符,尤其是高难度的字符的识别准确率,图1示出了本公开实施例提供的一种车牌识别模型训练方法100,包括:输入步骤110,输出步骤120,困难字符确定步骤130,回传步骤140,更新模型参数步骤150。下面对上述步骤进行详细说明。

输入步骤110,将一个或多个具有多个字符的车牌图像输入模型。其中,模型可以是卷积神经网络,通过分类算法对车牌的各个字符进行分类识别,每个字符作为一个样本单元。

输出步骤120,通过模型,输出得到每个车牌图像的每个字符的分类损失值和/或识别结果。经过卷积神经网络的一层或多层卷积提取特征值,并可以得到每个字符的识别结果,并可以根据识别结果得到分类损失值,其中分类损失值可以通过分类损失函数得到,如交叉熵损失函数(crossentropyerrorfunction)等。

困难字符确定步骤130,基于字符的分类损失值和/或识别结果,确定字符中的困难字符。其中,困难字符是难于识别的字符,或者说识别的错误率相对高的字符,需要重点、有针对性的对模型进行训练。

在一例中,困难字符确定步骤130包括:基于字符的分类损失值,将车牌图像中的全部字符的分类损失值最大的n个字符,作为困难字符,其中n为正整数。可以根据输出步骤120得到的分类损失值按大小进行排序,将最大的n个字符作为困难字符,分类损失值大可以一定程度上反映出该字符的识别困难程度。

在一例中,困难字符确定步骤130包括:基于字符的分类损失值,将车牌图像中的全部字符的分类损失值超过损失阈值的字符,作为困难字符。通过预设损失阈值,分类损失值超过该损失阈值的字符可以认为该字符识别相对困难,因此将其作为困难字符。损失阈值可以根据实际情况进行设定,损失阈值设置高,定义的困难字符少,训练成本低;损失阈值设置第,定义的困难字符多,训练效果更好。

在一例中,困难字符确定步骤130包括:基于识别结果,将识别错误的字符作为困难字符。根据输出步骤120得到的识别结果,识别错误的字符可以认为是难于识别的字符,需要有针对性的训练模型,因此可以直接将识别错误的字符作为困难字符。

在又一例中,图2示出了本公开实施例提供的另一种车牌识别模型训练方法100,如图2所示,在困难字符确定步骤130之后,车牌识别模型训练方法100还包括:二次识别步骤160,将包含困难字符的车牌图像输入模型,通过模型,输出得到困难字符的分类损失值。在输出步骤120没有输出分类损失值时,基于识别结果确定了困难字符,将含有困难字符的车牌图片输入模型,通过模型得到困难字符的分类损失值。

回传步骤140,将困难字符的分类损失值进行回传,忽略其余字符的分类损失值。这里仅将前面得到的困难字符的分类损失值进行回传,而其余字符的分类损失值进行忽略,这样使得每个车牌中,难训练的那些字符得到训练,而模型已经能很好训练的那些字符,就不进行训练了。

更新模型参数步骤150,根据回传的困难字符的分类损失值,更新模型的权重参数。仅根据回传的困难字符的分类损失值对模型进行训练,更新模型参数,从而降低了训练成本,提高了训练效率。通过困难字符样本的分类损失值对模型做针对性的训练,从而高效率的提高模型的性能。

通过上述实施例,能够为了降低用于车牌识别的模型训练成本,同时提高车牌识别模型的训练效果,针对难识别的字符,进行针对性的训练,从而使得识别精度大幅提高。

下面本公开通过在线和离线两种状态车牌识别模型训练方法100的具体实施例进行说明,但仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。

在线状态中,向模型输入训练样本,即车牌图像,前向传播过程中完成本轮训练样本(以每个样本的每个字符为单位)的困难负样本筛选,并进行部分回传。从工程实现上而言,对于每个车牌样本,前向传播时将全部的字符通过前向传播之后根据损失值排序;然后在反向传播过程中仅选取损失值最大的前n个的字符样本进行模型参数更新,忽略对低损失值样本的损失值。

离线状态中,先使用预训练数据对识别模型进行预训练。再令已预训练好的识别模型分别在训练样本原图上运行,获得大量误识别的字符作为困难样本。由于这些字符都在车牌中,一个车牌中可能包含有困难和容易字符样本,因此得到的其实是这些包含困难字符的车牌图以及其中的困难字符标记。然后将这些困难样本按大比例混合进部分原始数据中,获得一个针对困难情形更有表征力的新数据集,并重新微调模型。其中包含困难字符的车牌图,根据标记训练中只回传其中标记困难的字符的损失值。

本公开还提供一种车牌识别方法200,图3是本公开实施例提供的另一种车牌识别方法200流程示意图,如图3所示,车牌识别方法200包括:获取步骤210,获取车牌图像;识别步骤220,将车牌图像输入模型,对车牌图像进行识别,得到车牌识别结果,其中,模型通过如前述任一实施例所述的车牌识别模型训练方法100训练得到。通过车牌识别模型训练方法100训练得到的模型,进行车牌识别,能够得到更准确的结果。

图4示出了本公开实施例提供的一种车牌识别模型训练装置300,如图4所示,车牌识别模型训练装置300包括:输入模块310,用于将一个或多个具有多个字符的车牌图像输入模型;输出模块320,用于通过模型,输出得到每个车牌图像的每个字符的分类损失值和/或识别结果;困难字符确定模块330,用于基于字符的分类损失值和/或识别结果,确定字符中的困难字符;回传模块340,用于将困难字符的分类损失值进行回传,忽略其余字符的分类损失值;更新模型参数模块350,用于根据回传的困难字符的分类损失值,更新模型的模型参数。

在一例中,困难字符确定模块330还用于:基于字符的分类损失值,将车牌图像中的全部字符的分类损失值最大的n个字符,作为困难字符,其中n为正整数。

在一例中,困难字符确定模块330还用于:基于字符的分类损失值,将车牌图像中的全部字符的分类损失值超过损失阈值的字符,作为困难字符。

在一例中,困难字符确定模块330还用于:基于识别结果,将识别错误的字符作为困难字符。

在一例中,车牌识别模型训练装置300还包括:二次识别模块,用于将包含困难字符的车牌图像输入模型,通过模型,输出得到困难字符的分类损失值。

在一例中,更新模型参数模块350,还用于根据回传的困难字符的分类损失值,更新模型的与困难字符对应的模型参数。

本公开实施例还提供的一种车牌识别装置400,如图5所示,包括:获取模块410,用于获取车牌图像;识别模块420,用于将车牌图像输入模型,对车牌图像进行识别,得到车牌识别结果,其中,模型通过前述任一例的车牌识别模型训练方法训练得到。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

如图6所示,本公开的一个实施方式提供了一种电子设备500。其中,该电子设备500包括存储器501、处理器502、输入/输出(input/output,i/o)接口503。其中,存储器501,用于存储指令。处理器502,用于调用存储器501存储的指令执行本公开实施例的图像数据清洗方法或的图像处理方法。其中,处理器502分别与存储器501、i/o接口503连接,例如可通过总线系统和/或其他形式的连接机构(未示出)进行连接。存储器501可用于存储程序和数据,包括本公开实施例中涉及的图像数据清洗方法或的图像处理方法的程序,处理器502通过运行存储在存储器501的程序从而执行电子设备500的各种功能应用以及数据处理。

本公开实施例中处理器502可以采用数字信号处理器(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现,所述处理器502可以是中央处理单元(centralprocessingunit,cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元中的一种或几种的组合。

本公开实施例中的存储器501可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(randomaccessmemory,ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd)等。

本公开实施例中,i/o接口503可用于接收输入的指令(例如数字或字符信息,以及产生与电子设备500的用户设置以及功能控制有关的键信号输入等),也可向外部输出各种信息(例如,图像或声音等)。本公开实施例中i/o接口503可包括物理键盘、功能按键(比如音量控制按键、开关按键等)、鼠标、操作杆、轨迹球、麦克风、扬声器、和触控面板等中的一个或多个。

可以理解的是,本公开实施例中尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。

本公开实施例涉及的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“模块”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。

此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。

出于示例和描述的目的,已经给出了本公开实施的前述说明。前述说明并非是穷举性的也并非要将本公开限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本公开的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本公开的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本公开。

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