一种识别模型的训练方法和装置与流程

文档序号:16308603发布日期:2018-12-19 05:11阅读:413来源:国知局
一种识别模型的训练方法和装置与流程

本发明涉及机器识别技术领域,特别涉及一种识别模型的训练方法和装置。

背景技术

在通过ann(人工神经网络)进行车牌字符训练的时候,先指定迭代次数和步长,然后,生成相应的ann分类器,最终,通过训练得到的ann分类器对字符进行识别分类。

然而,现有的ann模型训练,存在迭代过度导致过拟合或是迭代欠佳导致欠拟合的问题,进一步的,在识别的过程中,无论怎么迭代,即使刚好拟合,也无法消除局部误分类、正检率很低的现象的产生。

针对现有的识别模型的识别准确率低的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种识别模型的训练方法,以提高训练得到的识别模型的识别率,该方法包括:

获取第一训练集和第二训练集;

基于所述第一训练集,通过多次迭代过程对ann模型进行训练,得到多个训练后的ann模型;

通过所述第二训练集确定各个训练后的ann模型的测试正确率,其中,测试正确率是ann模型对所有字符进行测试的平均正确率;

根据各个训练后的ann模型的测试正确率,选取正确率最高的模型作为全局最优的识别模型。

在一个实施方式中,在通过所述第二训练集确定各个训练后的ann模型的测试正确率的过程中,包括:

通过所述第二训练集,确定当前的训练后的ann模型是否存在识别正确率低于预设准确率的字符;

如果存在,则增加该字符在所述当前的训练后的ann模型中权重系数,继续进行迭代训练,直至迭代训练后的ann模型对该字符的识别正确率高于所述预设准确率。

在一个实施方式中,所述增加权重系数包括:将权重系数调整为当前权重系数的1.25倍,所述预设准确率为98.5%。

在一个实施方式中,根据各个训练后的ann模型的测试正确率,选取正确率最高的模型作为全局最优的识别模型,包括:

如果随着迭代次数的增多,测试准确率一直处于下降状态且没有超出当前的误差绝对值和,则获取当前冲量系数下作为第一冲量系数,并重复执行以下操作第一预定次数:

将当前的冲量系数增大为原本的十倍以上,继续迭代五次之后,将冲量系数恢复至所述第一冲量系数,以当前的误差绝对值和为基准,确定是否超出所述当前的误差绝对值和;

从重复迭代的过程中,选择正确率最高的ann模型作为全局最优的识别模型。

在一个实施方式中,根据各个训练后的ann模型的测试正确率,选取正确率最高的模型作为全局最优的识别模型,包括:

选择一层的隐含层进行训练,每次增加隐含层的神经元系数为4个进行训练,得到每个神经元系数的个数下的最高正确率模型;

选出相邻个数的神经元系数的模型正确率最高的两个神经元系数的模型,按照神经元系数增加步长为1的方式,进行训练,得到一个正确率最高的模型,作为所述全局最优的识别模型。

本发明实施例还提供了一种识别模型的训练装置,以提高训练得到的识别模型的识别率,该装置包括:

获取模块,用于获取第一训练集和第二训练集;

训练模块,用于基于所述第一训练集,通过多次迭代过程对ann模型进行训练,得到多个训练后的ann模型;

确定模块,用于通过所述第二训练集确定各个训练后的ann模型的测试正确率,其中,测试正确率是ann模型对所有字符进行测试的平均正确率;

选取模块,用于根据各个训练后的ann模型的测试正确率,选取正确率最高的模型作为全局最优的识别模型。

在一个实施方式中,所述确定模块在通过所述第二训练集确定各个训练后的ann模型的测试正确率的过程中,还用于通过所述第二训练集,确定当前的训练后的ann模型是否存在识别正确率低于预设准确率的字符;如果存在,则增加该字符在所述当前的训练后的ann模型中权重系数,继续进行迭代训练,直至迭代训练后的ann模型对该字符的识别正确率高于所述预设准确率。

在一个实施方式中,所述增加权重系数包括:将权重系数调整为当前权重系数的1.25倍,所述预设准确率为98.5%。

在一个实施方式中,所述选取模块包括:

确定单元,用于确定是否存在随着迭代次数的增多,测试准确率一直处于下降状态且没有超出当前的误差绝对值和的情况;

重复执行单元,用于在确定随着迭代次数的增多,测试准确率一直处于下降状态且没有超出当前的误差绝对值和的情况下,获取当前冲量系数下作为第一冲量系数,并重复执行以下操作第一预定次数:将当前的冲量系数增大为原本的十倍以上,继续迭代五次之后,将冲量系数恢复至所述第一冲量系数,以当前的误差绝对值和为基准,确定是否超出所述当前的误差绝对值和;

选取单元,用于从重复迭代的过程中,选择正确率最高的ann模型作为全局最优的识别模型。

在一个实施方式中,所述选取模块包括:

训练单元,用于选择一层的隐含层进行训练,每次增加隐含层的神经元系数为4个进行训练,得到每个神经元系数的个数下的最高正确率模型;

选择单元,用于选出相邻个数的神经元系数的模型正确率最高的两个神经元系数的模型,按照神经元系数增加步长为1的方式,进行训练,得到一个正确率最高的模型,作为所述全局最优的识别模型。

本发明实施例还提供了一种识别模型的训练方法和装置,通过预设用于模型训练的第一训练集和用于检测模型准确率的第二训练集,然后选择多次迭代过程中,训练得到的模型中准确率最高的模型作为最终训练得到的识别模型。通过上述方式解决了现有训练出的识别模型识别准确率低的技术问题,达到了有效提高训练得到的识别模型的识别率的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1是根据本发明实施例的识别模型的训练方法的方法流程图;

图2是根据本发明实施例的识别模型的训练装置的结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

为了更好地说明本申请,下面对本申请涉及的一些名词解释如下:

1)ann模型,是神经网络检测或是识别的一种分类器;

2)ann训练,用于训练ann模型中系数;

3)ann检测,使用ann模型进行的检测,将待检测或识别的目标输入到ann模型中,可以得到检测或识别结果;

4)车牌字符,车牌中的字符,一共有71个字符;

5)误差绝对值和,是样本训练中一种结果的判断方式。对训练中生成的ann模型进行检测训练,检测结果得分与实际结果的绝对值和,就是误差。

6)ann模型识别得分,通过ann模型进行识别后,会有一个得分,一般得分在-1.05到1.05之间,越是接近1,则识别对象是该字符的可能性越高。

在本例中提供了一种识别模型的训练方法,如图1所示,可以包括如下步骤:

步骤101:获取第一训练集和第二训练集;

步骤102:基于所述第一训练集,通过多次迭代过程对ann模型进行训练,得到多个训练后的ann模型;

步骤103:通过所述第二训练集确定各个训练后的ann模型的测试正确率,其中,测试正确率是ann模型对所有字符进行测试的平均正确率;

步骤104:根据各个训练后的ann模型的测试正确率,选取正确率最高的模型作为全局最优的识别模型。

在一个实施方式中,在上述步骤103通过所述第二训练集确定各个训练后的ann模型的测试正确率的过程中,可以通过所述第二训练集,确定当前的训练后的ann模型是否存在识别正确率低于预设准确率的字符;如果存在,则增加该字符在所述当前的训练后的ann模型中权重系数,继续进行迭代训练,直至迭代训练后的ann模型对该字符的识别正确率高于所述预设准确率。加权操作可以是实时进行的,通过实时对训练样本进行加权,从而可以达到对训练出的分类器消除局部误分类现象的目的。

具体的,上述的增加权重系数可以包括:将权重系数调整为当前权重系数的1.25倍,上述预设准确率可以为98.5%。

例如:在模型训练的训练过程中,每次迭代后,可以使用训练集2测试模型的正确率,其中,正确率可以是所有字符的平均正确率。如果出现某个字符的正确率低于平均值的98.5%,那么就对该字符实行加权处理,增加该字符对应的权重系数设置为原来系数的1.25倍。在迭代训练结束后,如果再次出现低于平均值的98.5%,那么在增加权重的基础上,再次增加1.25倍,依次类推。

在一个实施方式中,在上述步骤104根据各个训练后的ann模型的测试正确率,选取正确率最高的模型作为全局最优的识别模型,可以包括:如果随着迭代次数的增多,测试准确率一直处于下降状态且没有超出当前的误差绝对值和,则获取当前冲量系数下作为第一冲量系数,并重复执行以下操作第一预定次数:将当前的冲量系数增大为原本的十倍以上,继续迭代五次之后,将冲量系数恢复至所述第一冲量系数,以当前的误差绝对值和为基准,确定是否超出所述当前的误差绝对值和;从重复迭代的过程中,选择正确率最高的ann模型作为全局最优的识别模型。即,自适应冲量步长进行训练,从而实现全局最优结果。

例如,根据训练集2(即,第二训练集)测试出的正确率情况,如果连续30次迭代,正确率一直下降,没有超过当前这个值误差绝对值和,就将冲量系数增大10倍,或是更大。迭代5次后,将冲量系数恢复到原来的大小,以此时误差绝对值和为基准,比较变化情况,继续训练。这样重复修改冲量30次,从中选择正确率最高的模型。

在一个实施方式中,根据各个训练后的ann模型的测试正确率,选取正确率最高的模型作为全局最优的识别模型,可以包括:选择一层的隐含层进行训练,每次增加隐含层的神经元系数为4个进行训练,得到每个神经元系数的个数下的最高正确率模型;选出相邻个数的神经元系数的模型正确率最高的两个神经元系数的模型,按照神经元系数增加步长为1的方式,进行训练,得到一个正确率最高的模型,作为所述全局最优的识别模型。即,训练出适合训练样本的最优神经元数目对应的最优ann模型。

例如,选择一层的隐含层进行训练,每次增加隐含层的神经元个数为4个,假设最小的训练神经元个数是10个,最大是100个。设置的每个神经元个数的训练都会有一个对应的最高正确率的模型。选择出相邻神经元的模型正确率加和高的两个神经元个数n,n+4。在(n-2,n+6)范围内,按照神经元增加步长1,进行训练,选择一个正确率最高的一个模型,记录相应的神经元数和模型,将该模型作为全局最优ann模型。

通过上例解决了迭代过度和迭代欠佳的问题,通过实时对训练样本加权,从而消除了训练出的分类器的局部误分类现象,通过自适应冲量步长进行训练,从而实现了全局最优结果。进一步的,根据样本特性训练出对应样本特性的隐含层神经元数目,最终训练处适合训练样本的最优神经元数目对应的最优ann模型。

下面结合一个具体实施例,对上述识别模型的训练方法进行说明,然而值得注意的是,该实施例仅是为了更好地说明本申请,并不构成本申请的不当限定。

ann训练认为是一个拟合的过程,为了寻找最佳的系数。然而,在拟合过程中,由于神经元系数过少,样本数量大并且多样性很强,因此,经常会出现欠拟合现象。但是,如果神经元系数过多,多于样本的多样性,那么无法实现样本拟合的规律。因此,在训练过程中,选择的样本数目一般会多于神经元系数的数目,有时甚至是神经元系数的几十倍。然而,神经元系数过多,训练迭代次过多,会导致泛化能力减弱;神经元系数过少,或迭代次数不够,会导致训练出的系数甚至连样本本身都无法正常分类。

对于训练而言,一般是样本越多越好,因为能够代表更多的不同样本,神经元系数过多,也会导致运算时间上的增加。因此,一般需要一个较佳的神经元系数个数。为了获得一个较佳的神经元系数的个数,通过遍历从每个神经元系数的个数,选择每个神经元系数个数下的最佳ann模型,训练一个最佳的模型。训练过程中对每次训练出的最佳模型进行保存,然后,比较最佳模型的程度,使用第二个训练集进行测试正确率,通过实际正确率选择最佳的程度。

在训练某个神经元数目的最佳模型时,需要训练出该神经元系数的个数下的全局最优的最佳模型。由于容易出现局部最优,而不是全局最优,因此,可以采用停滞或是倒退识别效果时,增大冲量数值,从而使得跳出局部最优,到下一个局部最优,在知道所有的局部最优之后,就可以找到全局最优,其中,全局最优是局部最优的一部分。

考虑到在训练过程中,会出现某些字符识别率很低的现象,这是由于这种样本比较复杂,样本数目相对复杂程度过少,由于训练中样本最大数目固定,因此可以通过加权样本的方式进行训练。如果存在更多的样本,那么可以使用算法通过训练过程中自动增加样本的方式消除该字符识别率低的情况,这样可以有效降低出现识别率低的情况的概率。

在模型训练的时候,可以按照以下几种方式进行训练:

1)双训练集的训练模式:

使用两个训练集:一个是训练真正的ann神经元系数的训练集1,另一个是测试ann系数好坏的训练集2。即,对每次迭代后的结果测试正确率,以确定正确率最高的模型。这与现有的训练方式是不同的。

2)样本的加权训练模式:

在模型训练的训练过程中,每次迭代后,使用训练集2测试模型的正确率。这里正确率是所有字符的平均正确率。如果出现某个字符的正确率低于平均值的98.5%,那么就对该字符实行加权处理,增加该字符对应的权重系数设置为原来系数的1.25倍。在迭代训练结束后,如果再次出现低于平均值的98.5%,那么在增加权重的基础上,再次增加1.25倍,依次类推。

3)冲量的跳跃选择的训练模式:

根据训练集2测试出的正确率情况,如果连续30次迭代,正确率一直下降,没有超过当前这个值误差绝对值和,就将冲量系数增大10倍,或是更大。迭代5次后,将冲量恢复到原来的大小,以此时误差绝对值和为基准,比较变化情况,继续训练。这样重复修改冲量30次,从中选择正确率最高的模型。

4)全局的最优智能型训练模式:

选择一层的隐含层进行训练,每次增加隐含层的神经元个数为4个,最小训练神经元个数是10个,最大是100个。设置的每个神经元个数的训练都会有一个对应的最高正确率的模型。选择出相邻神经元的模型正确率加和高的两个神经元个数n,n+4。在(n-2,n+6)范围内,按照神经元增加步长1,进行训练,选择一个正确率最高的一个模型,记录相应的神经元数和模型,将该模型作为全局最优ann模型。

在上例中,通过双训练集的训练模式、利样本的加权训、冲量的跳跃选择和全局的最优智能型训练达到了有效训练处识别准确率高的识别模型的技术效果。

基于同一发明构思,本发明实施例中还提供了一种识别模型的训练装置,如下面的实施例所述。由于识别模型的训练装置解决问题的原理与识别模型的训练方法相似,因此识别模型的训练装置的实施可以参见识别模型的训练方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图2是本发明实施例的识别模型的训练装置的一种结构框图,如图2所示,可以包括:获取模块201、训练模块202、确定模块203和选取模块204,下面对该结构进行说明。

获取模块201,用于获取第一训练集和第二训练集;

训练模块202,用于基于所述第一训练集,通过多次迭代过程对ann模型进行训练,得到多个训练后的ann模型;

确定模块203,用于通过所述第二训练集确定各个训练后的ann模型的测试正确率,其中,测试正确率是ann模型对所有字符进行测试的平均正确率;

选取模块204,用于根据各个训练后的ann模型的测试正确率,选取正确率最高的模型作为全局最优的识别模型。

在一个实施方式中,确定模块203可以在通过所述第二训练集确定各个训练后的ann模型的测试正确率的过程中,还可以用于通过所述第二训练集,确定当前的训练后的ann模型是否存在识别正确率低于预设准确率的字符;如果存在,则增加该字符在所述当前的训练后的ann模型中权重系数,继续进行迭代训练,直至迭代训练后的ann模型对该字符的识别正确率高于所述预设准确率。

在一个实施方式中,所述增加权重系数可以包括:将权重系数调整为当前权重系数的1.25倍,所述预设准确率可以为98.5%。

在一个实施方式中,选取模块204可以包括:确定单元,用于确定是否存在随着迭代次数的增多,测试准确率一直处于下降状态且没有超出当前的误差绝对值和的情况;重复执行单元,用于在确定随着迭代次数的增多,测试准确率一直处于下降状态且没有超出当前的误差绝对值和的情况下,获取当前冲量系数下作为第一冲量系数,并重复执行以下操作第一预定次数:将当前的冲量系数增大为原本的十倍以上,继续迭代五次之后,将冲量系数恢复至所述第一冲量系数,以当前的误差绝对值和为基准,确定是否超出所述当前的误差绝对值和;选取单元,用于从重复迭代的过程中,选择正确率最高的ann模型作为全局最优的识别模型。

在一个实施方式中,选取模块204可以包括:训练单元,用于选择一层的隐含层进行训练,每次增加隐含层的神经元系数为4个进行训练,得到每个神经元系数的个数下的最高正确率模型;选择单元,用于选出相邻个数的神经元系数的模型正确率最高的两个神经元系数的模型,按照神经元系数增加步长为1的方式,进行训练,得到一个正确率最高的模型,作为所述全局最优的识别模型。

在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。

在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。

从以上的描述中,可以看出,本发明实施例实现了如下技术效果:本发明实施例还提供了一种识别模型的训练方法和装置,通过预设用于模型训练的第一训练集和用于检测模型准确率的第二训练集,然后选择多次迭代过程中,训练得到的模型中准确率最高的模型作为最终训练得到的识别模型。通过上述方式解决了现有训练出的识别模型识别准确率低的技术问题,达到了有效提高训练得到的识别模型的识别率的技术效果。

显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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