(12)发明专利申请
(10)申请公布号 CN 110377591 A(43)申请公布日 2019.10.25
(21)申请号 201910506752.8(22)申请日 2019.06.12
(71)申请人 北京百度网讯科技有限公司
地址 100085 北京市海淀区上地十街10号
百度大厦2层(72)发明人 刘珊珊 李轩 刘家铭 刘涛
许海伦 韩钧宇 (74)专利代理机构 北京鸿德海业知识产权代理
事务所(普通合伙) 11412
代理人 田宏宾(51)Int.Cl.
G06F 16/215(2019.01)G06K 9/62(2006.01)
权利要求书3页 说明书10页 附图2页
()发明名称
训练数据清洗方法、装置、计算机设备及存储介质(57)摘要
本发明公开了训练数据清洗方法、装置、计算机设备及存储介质,其中方法可包括:获取识别模型对输入的作为训练数据的任一图片序列及对应的标注文本进行预定处理后得到的CTC解码结果;根据CTC解码结果构建置信度矩阵;根据置信度矩阵确定出图片序列是否为脏数据。应用本发明所述方案,可提高处理结果的准确性等。
CN 110377591 ACN 110377591 A
权 利 要 求 书
1/3页
1.一种训练数据清洗方法,其特征在于,包括:
获取识别模型对输入的作为训练数据的任一图片序列及对应的标注文本进行预定处理后得到的连接时序分类CTC解码结果;
根据所述CTC解码结果构建置信度矩阵;
根据所述置信度矩阵确定出所述图片序列是否为脏数据。2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
将作为训练数据的所有图片序列按照长度由大到小的顺序进行排序,从排在首位的图片序列开始,每次提取出Q个图片序列,Q为大于一的正整数;
将提取出的第一个图片序列的长度作为基准长度,将提取出的其余Q-1个图片序列的长度分别填充至所述基准长度;
将进行填充处理后的Q个图片序列及对应的标注文本批量输入所述识别模型。3.根据权利要求1所述的方法,其特征在于,所述预定处理包括:对所述图片序列进行图像特征提取、对所述图像特征进行门控循环单元GRU编码,以及,根据GRU编码结果和所述标注文本进行CTC解码;所述识别模型以CTC Loss作为损失函数。
4.根据权利要求1所述的方法,其特征在于,所述CTC解码结果包括:N个不同时刻中,每个时刻分别预测出每个标签label的概率;所预测的label包括:原始label及空格blank;N为大于一的正整数;
其中,所述CTC解码过程中,利用所述标注文本中包含的字符组成第一序列,将所述第一序列中的字符作为原始label,在首个原始label之前以及最后一个原始label之后分别插入一个blank,并在每相邻的两个原始label之间分别插入一个blank,得到第二序列。
5.根据权利要求4所述的方法,其特征在于,
所述根据所述CTC解码结果构建置信度矩阵包括:构建M*N的置信度矩阵,M的取值为2*G+1,G表示所述原始label数;针对所述置信度矩阵中的每个元素Pi,j,0≤i≤M-1,0≤j≤N-1,分别根据i和j的取值,按照与所述取值对应的赋值方式,基于所述CTC解码结果对所述Pi,j进行赋值。
6.根据权利要求5所述的方法,其特征在于,所述赋值方式包括:静态赋值方式;按照静态赋值方式,基于所述CTC解码结果对所述Pi,j进行赋值包括:当i和j的取值均为0时,将时刻j预测出label0的概率赋值给所述Pi,j;当i的取值为0,j的取值大于或等于1时,计算时刻j预测出label0的概率与Pi=0,j-1的乘积,将所述乘积赋值给所述Pi,j;
当i的取值为1,j的取值为0时,将时刻j预测出label1的概率赋值给所述Pi,j;当i的取值为1,j的取值大于或等于1时,计算Pi,j-1与Pi-1,j-1相加之和,并用所述相加之和乘以时刻j预测出label1的概率,将得到的乘积赋值给所述Pi,j;
其中,将所述第二序列中的各label依次编号为label0~labelM-1。7.根据权利要求5所述的方法,其特征在于,所述赋值方式包括:动态赋值方式;
2
CN 110377591 A
权 利 要 求 书
2/3页
按照所述动态赋值方式,基于所述CTC解码结果对所述Pi,j进行赋值包括:当i的取值大于1时,若确定labeli为blank或所述第一序列中与所述labeli相邻的前一个原始label与所述labeli相同,则计算Pi,j-1与Pi-1,j-1相加之和,并用所述相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给所述Pi,j;若确定所述第一序列中与所述labeli相邻的前一个原始label与所述labeli不同,则计算Pi,j-1、Pi-1,j-1以及Pi-2,j-1相加之和,并用所述相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给所述Pi,j;
其中,将所述第二序列中的各label依次编号为label0~labelM-1。8.根据权利要求5所述的方法,其特征在于,
所述根据所述置信度矩阵确定出所述图片序列是否为脏数据包括:将所述置信度矩阵中的PM-1,N-1与预定阈值进行比较;若所述PM-1,N-1小于所述阈值,则确定所述图片序列为脏数据。9.一种训练数据清洗装置,其特征在于,包括:获取单元、构建单元以及确定单元;所述获取单元,用于获取识别模型对输入的作为训练数据的任一图片序列及对应的标注文本进行预定处理后得到的连接时序分类CTC解码结果;
所述构建单元,用于根据所述CTC解码结果构建置信度矩阵;所述确定单元,用于根据所述置信度矩阵确定出所述图片序列是否为脏数据。10.根据权利要求9所述的装置,其特征在于,所述装置中进一步包括:预处理单元;所述预处理单元,用于将作为训练数据的所有图片序列按照长度由大到小的顺序进行排序,从排在首位的图片序列开始,每次提取出Q个图片序列,Q为大于一的正整数,将提取出的第一个图片序列的长度作为基准长度,将提取出的其余Q-1个图片序列的长度分别填充至所述基准长度,将进行填充处理后的Q个图片序列及对应的标注文本批量输入所述识别模型。
11.根据权利要求9所述的装置,其特征在于,所述预定处理包括:对所述图片序列进行图像特征提取、对所述图像特征进行门控循环单元GRU编码,以及,根据GRU编码结果和所述标注文本进行CTC解码;所述识别模型以CTC Loss作为损失函数。
12.根据权利要求9所述的装置,其特征在于,所述CTC解码结果包括:N个不同时刻中,每个时刻分别预测出每个标签label的概率;所预测的label包括:原始label及空格blank;N为大于一的正整数;
其中,所述CTC解码过程中,利用所述标注文本中包含的字符组成第一序列,将所述第一序列中的字符作为原始label,在首个原始label之前以及最后一个原始label之后分别插入一个blank,并在每相邻的两个原始label之间分别插入一个blank,得到第二序列。
13.根据权利要求12所述的装置,其特征在于,所述构建单元构建M*N的置信度矩阵,M的取值为2*G+1,G表示所述原始label数,针对所述置信度矩阵中的每个元素Pi,j,0≤i≤M-1,0≤j≤N-1,分别根据i和j的取值,按照与所述取值对应的赋值方式,基于所述CTC解码结果对所述Pi,j进行赋值。
14.根据权利要求13所述的装置,其特征在于,所述赋值方式包括:静态赋值方式;
3
CN 110377591 A
权 利 要 求 书
3/3页
所述构建单元当i和j的取值均为0时,将时刻j预测出label0的概率赋值给所述Pi,j;当i的取值为0,j的取值大于或等于1时,计算时刻j预测出label0的概率与Pi=0,j-1的乘积,将所述乘积赋值给所述Pi,j;当i的取值为1,j的取值为0时,将时刻j预测出label1的概率赋值给所述Pi,j;当i的取值为1,j的取值大于或等于1时,计算Pi,j-1与Pi-1,j-1相加之和,并用所述相加之和乘以时刻j预测出label1的概率,将得到的乘积赋值给所述Pi,j;其中,将所述第二序列中的各label依次编号为label0~labelM-1。
15.根据权利要求13所述的装置,其特征在于,所述赋值方式包括:动态赋值方式;所述构建单元当i的取值大于1时,若确定labeli为blank或所述第一序列中与所述labeli相邻的前一个原始label与所述labeli相同,则计算Pi,j-1与Pi-1,j-1相加之和,并用所述相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给所述Pi,j;若确定所述第一序列中与所述labeli相邻的前一个原始label与所述labeli不同,则计算Pi,j-1、Pi-1,j-1以及Pi-2,j-1相加之和,并用所述相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给所述Pi,j;其中,将所述第二序列中的各label依次编号为label0~labelM-1。
16.根据权利要求13所述的装置,其特征在于,
所述确定单元将所述置信度矩阵中的PM-1,N-1与预定阈值进行比较,若所述PM-1,N-1小于所述阈值,则确定所述图片序列为脏数据。
17.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~8中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~8中任一项所述的方法。
4
CN 110377591 A
说 明 书
训练数据清洗方法、装置、计算机设备及存储介质
1/10页
【技术领域】
[0001]本发明涉及计算机应用技术,特别涉及训练数据清洗方法、装置、计算机设备及存储介质。
【背景技术】
[0002]为训练得到优质的深度学习模型如光学字符识别(OCR,Optical Character Recognition)模型,训练集需要具备数据量大、分布广泛、准确率高等特点。[0003]在实际应用中,训练集中的训练数据通常来自于人工标注和虚拟生成,由于虚拟生成的数据与实际场景数据可能分布不一致或差异较大,因此人工标注的数据必不可少,这样就会导致含有很多不可控制的脏数据。脏数据通常包含标注错误、不完整数据、含噪声数据等。
[0004]对于模型训练来说,若含有较多脏数据,容易造成特征学习混乱、难以达到预期精度等问题。
[0005]因此,需要进行训练数据清洗,即识别出训练数据中的脏数据,并剔除。目前通常采用以下训练数据清洗方式:对于损失(Loss)很大的训练数据,认为现在模型没有很好地学习到这类数据的特征,那么就认为这类数据是无用数据,可能是标注错误或含有噪声的脏数据。
[0006]但是,上述方式在实际应用中也会存在一定的问题,如:Loss大的训练数据在模型训练中可能为所认为的脏数据,也可能是模型需要加强学习的难样本,如果强行去掉Loss大的训练数据,会一定程度上降低模型的泛化能力,也就是说,按照上述方式识别出的脏数据很可能是错误的,识别结果的准确性较低。【发明内容】
[0007]有鉴于此,本发明提供了训练数据清洗方法、装置、计算机设备及存储介质。[0008]具体技术方案如下:
[0009]一种训练数据清洗方法,包括:
[0010]获取识别模型对输入的作为训练数据的任一图片序列及对应的标注文本进行预定处理后得到的连接时序分类CTC解码结果;[0011]根据所述CTC解码结果构建置信度矩阵;
[0012]根据所述置信度矩阵确定出所述图片序列是否为脏数据。[0013]根据本发明一优选实施例,该方法进一步包括:
[0014]将作为训练数据的所有图片序列按照长度由大到小的顺序进行排序,从排在首位的图片序列开始,每次提取出Q个图片序列,Q为大于一的正整数;[0015]将提取出的第一个图片序列的长度作为基准长度,将提取出的其余Q-1个图片序列的长度分别填充至所述基准长度;
[0016]将进行填充处理后的Q个图片序列及对应的标注文本批量输入所述识别模型。
5
CN 110377591 A[0017]
说 明 书
2/10页
根据本发明一优选实施例,所述预定处理包括:对所述图片序列进行图像特征提
取、对所述图像特征进行门控循环单元GRU编码,以及,根据GRU编码结果和所述标注文本进行CTC解码;所述识别模型以CTC Loss作为损失函数。[0018]根据本发明一优选实施例,所述CTC解码结果包括:N个不同时刻中,每个时刻分别预测出每个label的概率;所预测的label包括:原始label及blank;N为大于一的正整数;[0019]其中,所述CTC解码过程中,利用所述标注文本中包含的字符组成第一序列,所述第一序列中的字符作为原始标签label,在首个原始label之前以及最后一个原始label之后分别插入一个空格blank,并在每相邻的两个原始label之间分别插入一个blank,得到第二序列。
[0020]根据本发明一优选实施例,所述根据所述CTC解码结果构建置信度矩阵包括:[0021]构建M*N的置信度矩阵,M的取值为2*G+1,G表示所述原始label数;[0022]针对所述置信度矩阵中的每个元素Pi,j,0≤i≤M-1,0≤j≤N-1,分别根据i和j的取值,按照与所述取值对应的赋值方式,基于所述CTC解码结果对所述Pi,j进行赋值。[0023]根据本发明一优选实施例,所述赋值方式包括:静态赋值方式;[0024]按照静态赋值方式,基于所述CTC解码结果对所述Pi,j进行赋值包括:[0025]当i和j的取值均为0时,将时刻j预测出label0的概率赋值给所述Pi,j;[0026]当i的取值为0,j的取值大于或等于1时,计算时刻j预测出label0的概率与Pi=0,j-1的乘积,将所述乘积赋值给所述Pi,j;[0027]当i的取值为1,j的取值为0时,将时刻j预测出label1的概率赋值给所述Pi,j;[0028]当i的取值为1,j的取值大于或等于1时,计算Pi,j-1与Pi-1,j-1相加之和,并用所述相加之和乘以时刻j预测出label1的概率,将得到的乘积赋值给所述Pi,j;[0029]其中,将所述第二序列中的各label依次编号为label0~labelM-1。[0030]根据本发明一优选实施例,所述赋值方式包括:动态赋值方式;[0031]按照所述动态赋值方式,基于所述CTC解码结果对所述Pi,j进行赋值包括:[0032]当i的取值大于1时,若确定labeli为blank或所述第一序列中与所述labeli相邻的前一个原始label与所述labeli相同,则计算Pi,j-1与Pi-1,j-1相加之和,并用所述相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给所述Pi,j;若确定所述第一序列中与所述labeli相邻的前一个原始label与所述labeli不同,则计算Pi,j-1、Pi-1,j-1以及Pi-2,j-1相加之和,并用所述相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给所述Pi,j;[0033]其中,将所述第二序列中的各label依次编号为label0~labelM-1。[0034]根据本发明一优选实施例,所述根据所述置信度矩阵确定出所述图片序列是否为脏数据包括:
[0035]将所述置信度矩阵中的PM-1,N-1与预定阈值进行比较;[0036]若所述PM-1,N-1小于所述阈值,则确定所述图片序列为脏数据。[0037]一种训练数据清洗装置,包括:获取单元、构建单元以及确定单元;[0038]所述获取单元,用于获取识别模型对输入的作为训练数据的任一图片序列及对应的标注文本进行预定处理后得到的连接时序分类CTC解码结果;[0039]所述构建单元,用于根据所述CTC解码结果构建置信度矩阵;[0040]所述确定单元,用于根据所述置信度矩阵确定出所述图片序列是否为脏数据。
6
CN 110377591 A[0041]
说 明 书
3/10页
根据本发明一优选实施例,所述装置中进一步包括:预处理单元;
[0042]所述预处理单元,用于将作为训练数据的所有图片序列按照长度由大到小的顺序进行排序,从排在首位的图片序列开始,每次提取出Q个图片序列,Q为大于一的正整数,将提取出的第一个图片序列的长度作为基准长度,将提取出的其余Q-1个图片序列的长度分别填充至所述基准长度,将进行填充处理后的Q个图片序列及对应的标注文本批量输入所述识别模型。
[0043]根据本发明一优选实施例,所述预定处理包括:对所述图片序列进行图像特征提取、对所述图像特征进行门控循环单元GRU编码,以及,根据GRU编码结果和所述标注文本进行CTC解码;所述识别模型以CTC Loss作为损失函数。[0044]根据本发明一优选实施例,所述CTC解码结果包括:N个不同时刻中,每个时刻分别预测出每个label的概率;所预测的label包括:原始label及blank;N为大于一的正整数;[0045]其中,所述CTC解码过程中,利用所述标注文本中包含的字符组成第一序列,所述第一序列中的字符作为原始标签label,在首个原始label之前以及最后一个原始label之后分别插入一个空格blank,并在每相邻的两个原始label之间分别插入一个blank,得到第二序列。
[0046]根据本发明一优选实施例,所述构建单元构建M*N的置信度矩阵,M的取值为2*G+1,G表示所述原始label数,针对所述置信度矩阵中的每个元素Pi,j,0≤i≤M-1,0≤j≤N-1,分别根据i和j的取值,按照与所述取值对应的赋值方式,基于所述CTC解码结果对所述Pi,j进行赋值。
[0047]根据本发明一优选实施例,所述赋值方式包括:静态赋值方式;[0048]所述构建单元当i和j的取值均为0时,将时刻j预测出label0的概率赋值给所述Pi,j;当i的取值为0,j的取值大于或等于1时,计算时刻j预测出label0的概率与Pi=0,j-1的乘积,将所述乘积赋值给所述Pi,j;当i的取值为1,j的取值为0时,将时刻j预测出label1的概率赋值给所述Pi,j;当i的取值为1,j的取值大于或等于1时,计算Pi,j-1与Pi-1,j-1相加之和,并用所述相加之和乘以时刻j预测出label1的概率,将得到的乘积赋值给所述Pi,j;其中,将所述第二序列中的各label依次编号为label0~labelM-1。[0049]根据本发明一优选实施例,所述赋值方式包括:动态赋值方式;[0050]所述构建单元当i的取值大于1时,若确定labeli为blank或所述第一序列中与所述labeli相邻的前一个原始label与所述labeli相同,则计算Pi,j-1与Pi-1,j-1相加之和,并用所述相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给所述Pi,j;若确定所述第一序列中与所述labeli相邻的前一个原始label与所述labeli不同,则计算Pi,j-1、Pi-1,j-1以及Pi-2,j-1相加之和,并用所述相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给所述Pi,j;其中,将所述第二序列中的各label依次编号为label0~labelM-1。[0051]根据本发明一优选实施例,所述确定单元将所述置信度矩阵中的PM-1,N-1与预定阈值进行比较,若所述PM-1,N-1小于所述阈值,则确定所述图片序列为脏数据。[0052]一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如以上所述的方法。[0053]一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
7
CN 110377591 A[00]
说 明 书
4/10页
基于上述介绍可以看出,采用本发明所述方案,可在将作为训练数据的图片序列
等输入到识别模型后,获取CTC解码结果,并可根据CTC解码结果构建置信度矩阵,进而可根据置信度矩阵确定出图片序列是否为脏数据,从而避免了现有技术中的问题,提高了处理结果的准确性,并确保了识别模型的泛化能力等。
【附图说明】
[0055]图1为本发明所述训练数据清洗方法实施例的流程图。
[0056]图2为本发明所述训练数据清洗装置实施例的组成结构示意图。
[0057]图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。【具体实施方式】
[0058]为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案进行进一步说明。[0059]显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。[0060]另外,应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。[0061]图1为本发明所述训练数据清洗方法实施例的流程图。如图1所示,包括以下具体实现方式。
[0062]在101中,获取识别模型对输入的作为训练数据的任一图片序列及对应的标注文本进行预定处理后得到的连接时序分类(CTC,Connectionist Temporal Classification)解码结果。
[0063]在102中,根据CTC解码结果构建置信度矩阵。[00]在103中,根据置信度矩阵确定出图片序列是否为脏数据。[0065]优选地,本实施例中所述的识别模型为OCR模型。OCR模型可对变长序列进行识别,训练数据为图片序列及其对应的标注文本,图片序列是指行级别图片,标注文本是指图片序列中包含的文本信息。图片序列和标注文本的长度均不是固定长度。[0066]为加快训练效率等,OCR模型通常采用批量(batch)处理方式,如每次输入Q个图片序列及对应的标注文本,Q为大于一的正整数,取值等于批量处理要求的个数(batch_size)。
[0067]在实际应用中,可将作为训练数据的所有图片序列按照长度由大到小的顺序进行排序,从排在首位的图片序列开始,每次提取出Q个图片序列,批量输入OCR模型。由于每次输入的图片序列的长度通常要求一致,因此在提取出Q个图片序列后,还可将提取出的第一个图片序列的长度作为基准长度,将提取出的其余Q-1个图片序列的长度分别填充(padding)至该基准长度,之后可将进行填充处理后的Q个图片序列及对应的标注文本批量输入OCR模型。
[0068]OCR模型可对输入的图片序列进行图像特征提取,提取方式不限,比如,可采用基
8
CN 110377591 A
说 明 书
5/10页
于卷积神经网络(CNN,Convolutional Neural Network)和残差网络(Resnet,Residual Networks)的特征提取器来提取图像特征。针对同时输入的多个图片序列,OCR模型可分别获取到每个图片序列对应的图像特征。
[0069]对于提取出的任一图片序列的图像特征,可对其进行编码,优选地,可采用门控循环单元(GRU,Gated Recurrent Unit)编码方式。进一步地,可根据GRU编码结果和标注文本进行CTC解码,从而可得到CTC解码结果。GRU编码以及CTC解码的具体实现均为现有技术。[0070]OCR模型以CTC Loss作为损失函数,可根据GRU编码结果与图片序列对应的标注文本进行Loss计算,并通过梯度反传机制更新OCR模型参数,达到不断学习优化模型的效果。[0071]另外,在CTC解码过程中,可利用图片序列对应的标注文本中包含的字符组成第一序列,将第一序列中的字符作为原始标签(label),进一步地,可在首个原始label之前以及最后一个原始label之后分别插入一个空格(blank),并在每相邻的两个原始label之间分别插入一个blank,从而得到第二序列。如第一序列中包含三个原始label,分别为label1、label2和label3,那么可按照以下方式插入blank:blank、label1、blank、label2、blank、label3、blank。[0072]相应地,得到的CTC解码结果中可包括:N个不同时刻中,每个时刻分别预测出每个label的概率;所预测的label包括:原始label及blank。N的具体取值可由算法根据输入的图片序列的长度等确定。
[0073]假设原始label分别为label1、label2和label3,那么每个时刻分别预测出每个label的概率即指:当前时刻分别预测出label1、label2、label3及blank的概率,blank也作为一个label进行处理。
[0074]基于CTC解码结果,可构建出置信度矩阵。置信度矩阵的大小为M*N,其中,M的取值为2*G+1,G表示原始label数,N表示时刻数。针对置信度矩阵中的每个元素Pi,j,0≤i≤M-1,0≤j≤N-1,可分别根据i和j的取值,按照与取值对应的赋值方式,基于CTC解码结果对Pi,j进行赋值。
[0075]赋值方式可包括静态赋值方式和动态赋值方式。可将第二序列中的各label依次编号为label0~labelM-1。[0076]其中,按照静态赋值方式,基于CTC解码结果对Pi,j进行赋值可包括:[0077]1)当i和j的取值均为0时,将时刻j预测出label0的概率赋值给Pi,j;[0078]基于前述介绍可知,label0为blank,因此,时刻j预测出label0的概率即指时刻0预测出blank的概率。
[0079]2)当i的取值为0,j的取值大于或等于1时,计算时刻j预测出label0的概率与Pi=0,j-1的乘积,将该乘积赋值给Pi,j;[0080]基于前述介绍可知,label0为blank,因此,时刻j预测出label0的概率即指时刻j预测出blank的概率。
[0081]3)当i的取值为1,j的取值为0时,将时刻j预测出label1的概率赋值给Pi,j。[0082]4)当i的取值为1,j的取值大于或等于1时,计算Pi,j-1与Pi-1,j-1相加之和,并用相加之和乘以时刻j预测出label1的概率,将得到的乘积赋值给Pi,j;[0083]基于现有的CTC解码方式,这种情况下,当前路径只存在两种可能,即前一时刻预测出labeli,或前一时刻预测出labeli-1,因此,可将Pi,j赋值为Rj(label1)*(Pi,j-1+Pi-1,j-1),
9
CN 110377591 A
说 明 书
6/10页
其中,Rj(label1)表示时刻j预测出label1的概率。[0084]当i的取值大于1时,可采用动态赋值方式,此时,基于CTC解码结果对Pi,j进行赋值的方式可包括:
[0085]1)若确定labeli为blank或第一序列中与labeli相邻的前一个原始label与labeli相同,则计算Pi,j-1与Pi-1,j-1相加之和,并用相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给Pi,j,即Pi,j=Rj(label1)*(Pi,j-1+Pi-1,j-1)。[0086]基于现有的CTC解码方式,这种情况下,当前路径只存在两种可能,即前一时刻预测出labeli,或前一时刻预测出labeli-1,因此,可将Pi,j赋值为Rj(label1)*(Pi,j-1+Pi-1,j-1),其中,Rj(label1)表示时刻j预测出label1的概率。[0087]比如,第一序列中包含以下三个原始label:“a”、“a”、“t”,labeli为第一序列中的第二个字符“a”,那么第一序列中与labeli相邻的前一个原始label即与labeli相同,同为“a”。
[0088]2)若确定第一序列中与labeli相邻的前一个原始label与labeli不同,则计算Pi,j-1、Pi-1,j-1以及Pi-2,j-1相加之和,并用相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给Pi,j,即Pi,j=Rj(label1)*(Pi,j-1+Pi-1,j-1+Pi-2,j-1);[00]基于现有的CTC解码方式,这种情况下,当前路径存在三种可能,即前一时刻预测出labeli,或前一时刻预测出labeli-1,或前一时刻预测出labeli-2,因此,可将Pi,j赋值为Rj(label1)*(Pi,j-1+Pi-1,j-1+Pi-2,j-1),其中,Rj(label1)表示时刻j预测出label1的概率。[0090]比如,第一序列中包含以下三个原始label:“c”、“a”、“t”,labeli为“a”,那么第一序列中与labeli相邻的前一个原始label即与labeli不同。[0091]按照上述方式,可分别得到置信度矩阵中的各个元素的取值,从而可构建出置信度矩阵,之后,可根据置信度矩阵确定出图片序列是否为脏数据。[0092]具体地,可将置信度矩阵中的PM-1,N-1与预定阈值进行比较,即提取输入文本标注的最大概率路径,若PM-1,N-1小于阈值,则可认为图片序列标记错误或偏离训练集等,为脏数据,并可从训练集中剔除,反之,若PM-1,N-1大于或等于阈值,则可认为其为正常数据。[0093]需要说明的是,对于前述的方法实施例,为了简单描述,将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。[0094]总之,采用本发明方法实施例所述方案,可避免现有技术中出现的问题,提高了处理结果的准确性,并确保了模型的泛化能力等,而且,实验显示,按照本发明方法实施例所述方案剔除的训练样本占据较少的比例,约5%~8%左右,训练集主体分布仍然保留,尽可能地避免了降低泛化能力的风险。另外,本发明方法实施例所述方案可适用于各种不同的场景,如可应用在中文、英文、日文、韩文、法文等各个语种训练数据的清洗上,具有广泛适用性。再有,采用本发明方法实施例所述方案后,可获取更高精度的训练集,从而可提高模型的识别能力等。
[0095]以上是关于方法实施例的介绍,以下通过装置实施例,对本发明所述方案进行进一步说明。
10
CN 110377591 A[0096]
说 明 书
7/10页
图2为本发明所述训练数据清洗装置实施例的组成结构示意图。如图2所示,可包
括:获取单元201、构建单元202以及确定单元203。[0097]获取单元201,用于获取识别模型对输入的作为训练数据的任一图片序列及对应的标注文本进行预定处理后得到的CTC解码结果。[0098]构建单元202,用于根据CTC解码结果构建置信度矩阵。[0099]确定单元203,用于根据置信度矩阵确定出图片序列是否为脏数据。[0100]本实施例中所述的识别模型可为OCR模型。
[0101]图2所示装置中还可进一步包括预处理单元200,用于将作为训练数据的所有图片序列按照长度由大到小的顺序进行排序,从排在首位的图片序列开始,每次提取出Q个图片序列,Q为大于一的正整数,将提取出的第一个图片序列的长度作为基准长度,将提取出的其余Q-1个图片序列的长度分别填充至该基准长度,将进行填充处理后的Q个图片序列及对应的标注文本批量输入识别模型。[0102]所述预定处理可包括:对图片序列进行图像特征提取、对图像特征进行GRU编码,以及,根据GRU编码结果和标注文本进行CTC解码;识别模型以CTC Loss作为损失函数。[0103]CTC解码结果中可包括:N个不同时刻中,每个时刻分别预测出每个label的概率;所预测的label包括:原始label及blank;N为大于一的正整数。[0104]其中,CTC解码过程中,可利用标注文本中包含的字符组成第一序列,将第一序列中的字符作为原始label,并在首个原始label之前以及最后一个原始label之后分别插入一个blank,在每相邻的两个原始label之间也分别插入一个blank,从而得到第二序列。[0105]构建单元202可根据CTC解码结果构建M*N的置信度矩阵,M的取值为2*G+1,G表示原始label数,其中,针对置信度矩阵中的每个元素Pi,j,0≤i≤M-1,0≤j≤N-1,可分别根据i和j的取值,按照与取值对应的赋值方式,基于CTC解码结果对Pi,j进行赋值。[0106]赋值方式可包括静态赋值方式以及动态赋值方式。[0107]其中,静态赋值方式中,构建单元202可在当i和j的取值均为0时,将时刻j预测出label0的概率赋值给Pi,j;当i的取值为0,j的取值大于或等于1时,计算时刻j预测出label0的概率与Pi=0,j-1的乘积,将该乘积赋值给Pi,j;当i的取值为1,j的取值为0时,将时刻j预测出label1的概率赋值给Pi,j;当i的取值为1,j的取值大于或等于1时,计算Pi,j-1与Pi-1,j-1相加之和,并用相加之和乘以时刻j预测出label1的概率,将得到的乘积赋值给Pi,j;其中,可将第二序列中的各label依次编号为label0~labelM-1。[0108]动态赋值方式中,构建单元202可在当i的取值大于1时,若确定labeli为blank或第一序列中与labeli相邻的前一个原始label与labeli相同,则计算Pi,j-1与Pi-1,j-1相加之和,并用相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给Pi,j;若确定第一序列中与labeli相邻的前一个原始label与labeli不同,则计算Pi,j-1、Pi-1,j-1以及Pi-2,j-1相加之和,并用相加之和乘以时刻j预测出labeli的概率,将得到的乘积赋值给Pi,j;其中,可将第二序列中的各label依次编号为label0~labelM-1。[0109]构建出置信度矩阵之后,确定单元203可将置信度矩阵中的PM-1,N-1与预定阈值进行比较,若PM-1,N-1小于阈值,则可确定图片序列为脏数据,并可从训练集中剔除。
[0110]图2所示装置实施例的具体工作流程请参照前述方法实施例中的相关说明,不再赘述。
11
CN 110377591 A[0111]
说 明 书
8/10页
图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图3显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何。
[0112]如图3所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器(处理单元)16,存储器28,连接不同系统组件(包括存储器28和处理器16)的总线18。[0113]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。[0114]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0115]存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0116]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0117]计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图3所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。[0118]处理器16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现图1所示实施例中的方法。
[0119]本发明同时公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时将实现如图1所示实施例中的方法。
12
CN 110377591 A[0120]
说 明 书
9/10页
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算
机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0121]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。[0122]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0123]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0124]在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法等,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0125]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0126]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。[0127]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
13
CN 110377591 A[0128]
说 明 书
10/10页
以上所述仅为本发明的较佳实施例而已,并不用以本发明,凡在本发明的精
神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
14
CN 110377591 A
说 明 书 附 图
1/2页
图1
图2
15
CN 110377591 A
说 明 书 附 图
2/2页
图3
16
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务