本申请涉及图像识别技术领域,特别是涉及字符注册方法、装置、电子设备及存储介质。
背景技术:
随着计算机技术的发展,尤其是深度学习网络的出现,使得计算机视觉技术迅猛发展,基于计算机视觉技术的字符识别的应用也越来越广泛。实际应用中,针对个人或小企业等训练样本少、深度学习网络训练技能差的用户,会提供深度学习网络的在线开放平台,以减少这些用户的训练投入。
相关字符识别技术中,深度学习网络一般包括特征提取网络及分类器两部分,其中,特征提取网络用于提取图像的深度学习特征,分类器用于对深度学习特征进行分类,即确定深度学习特征所属的字符类,从而确定图像中的字符。相关字符识别技术中,需要将标记有真值字符的样本图像输入到深度学习网络中,深度学习网络的分类器会输出的预测字符,根据真值字符及预测字符计算深度学习网络的损失,并基于损失调整深度学习网络的参数继续训练,直至深度学习网络的损失收敛,得到训练好的深度学习网络。
但是采用上述方法,深度学习网络仅能识别训练过的字符,当有新的字符出现时,需要用户利用包含新字符的图像对深度学习网络再次进行训练,然而对深度学习网络再次进行训练本身就会产生训练成本,并且普通用户一般不具备训练深度学习网络的专业知识,需要找专业的人员进行训练,造成用户训练成本偏高。
技术实现要素:
本申请实施例的目的在于提供一种字符注册方法、装置、电子设备及存储介质,以实现减少新增字符时用户的训练成本。具体技术方案如下:
第一方面,本申请实施例提供了一种字符注册方法,所述方法包括:
获取待注册字符图像及所述待注册字符图像中包括的字符;
利用预先训练的特征提取网络,提取所述待注册字符图像中字符的深度学习特征,得到待注册字符深度学习特征;
将所述待注册字符深度学习特征添加为所述待注册字符图像中包括的字符的样本字符深度学习特征;
其中,所述样本字符深度学习特征用于与目标字符深度学习特征进行特征差异的计算,所述目标字符深度学习特征为所述特征提取网络提取的待识别字符图像的字符深度学习特征,且最小的特征差异的样本字符深度学习特征所对应的字符为所述待识别字符图像的特征比对字符识别结果。
在一种可能的实施方式中,所述方法还包括:
获取待识别字符图像;
利用所述特征提取网络,提取所述待识别字符图像的字符深度学习特征,得到目标字符深度学习特征;
计算所述目标字符深度学习特征与各样本字符深度学习特征的特征差异,其中,所述样本字符深度学习特征是根据所述特征提取网络提取的样本字符图像的字符深度学习特征得到的;
选取与所述目标字符深度学习特征特征差异最小的样本字符深度学习特征所对应的字符,得到所述目标字符深度学习特征的特征比对字符识别结果。
在一种可能的实施方式中,将所述待注册字符深度学习特征添加为所述待注册字符图像中包括的字符的样本字符深度学习特征
若已经存储有所述待注册字符图像标记的字符,则将所述待注册字符深度学习特征添加为所述待注册字符图像标记的字符的样本字符深度学习特征;
若未存储有所述待注册字符图像标记的字符,则新增并存储所述待注册字符图像标记的字符,将所述待注册字符深度学习特征作为所述待注册字符图像标记的字符的样本字符深度学习特征。
在一种可能的实施方式中,在所述利用所述特征提取网络,提取所述待识别字符图像的字符深度学习特征,得到目标字符深度学习特征之后,所述方法还包括:
利用预先训练的字符分类网络,对所述目标字符深度学习特征进行字符分类,得到所述目标字符深度学习特征的分类字符识别结果及所述分类字符识别结果的置信度;
当所述分类字符识别结果的置信度大于预设置信度阈值时,将所述分类字符识别结果作为所述待识别字符图像的字符识别结果。
在一种可能的实施方式中,所述计算所述目标字符深度学习特征与各样本字符深度学习特征的特征差异,包括:
当所述分类字符识别结果的置信度不大于预设置信度阈值时,计算所述目标字符深度学习特征与各样本字符深度学习特征的特征差异。
在一种可能的实施方式中,在所述选取与所述目标字符深度学习特征特征差异最小的样本字符深度学习特征所对应的字符,得到所述目标字符深度学习特征的特征比对字符识别结果之后,所述方法还包括:
当所述分类字符识别结果的置信度不大于预设置信度阈值、且所述特征比对字符识别结果对应的特征差异小于预设差异度阈值时,将所述特征比对字符识别结果作为所述待识别字符图像的字符识别结果。
在一种可能的实施方式中,所述方法还包括:
获取白名单配置消息,其中,所述白名单配置消息表示在白名单中对指定字符的样本字符深度学习特征进行添加或删除;
按照所述白名单配置消息,在所述白名单中添加或删除指定字符的样本字符深度学习特征;
所述计算所述目标字符深度学习特征与各样本字符深度学习特征的特征差异,包括:
计算所述目标字符深度学习特征与所述白名单中的各样本字符深度学习特征的特征差异。
在一种可能的实施方式中,所述方法还包括:
获取待新增的目标字符及所述目标字符的目标字符形式;
生成包含所述目标字符形式的目标字符的图像,得到目标字符图像;
利用预先训练的特征提取网络,提取所述目标字符图像的字符深度学习特征;
新增及存储所述目标字符,并将所述目标字符图像的字符深度学习特征保存为所述目标字符的样本字符深度学习特征。
在一种可能的实施方式中,预先训练特征提取网络的步骤包括:
获取训练样本集及待训练的特征提取网络,其中,所述训练样本集包括多个三元组样本,所述三元组样本包括锚样本图像、正样本图像及负样本图像,同一所述三元组样本中的锚样本图像中的字符与正样本图像中的字符相同,同一所述三元组样本中的锚样本图像中的字符与负样本图像中的字符不同;
在所述训练样本集中选取一三元组样本,将选取的三元组样本的锚样本图像、正样本图像及负样本图像分别输入到特征提取网络中进行特征提取,得到选取的三元组样本中的锚样本图像的字符深度学习特征、正样本图像的字符深度学习特征及负样本图像的字符深度学习特征;
根据选取的三元组样本中的锚样本图像的字符深度学习特征、正样本图像的字符深度学习特征及负样本图像的字符深度学习特征,计算特征提取网络的损失,其中,特征提取网络的损失与第一特征差异正相关,特征提取网络的损失与第二特征差异负相关,所述第一特征差异为选取的锚样本图像的字符深度学习特征与选取的正样本图像的字符深度学习特征的特征差异,所述第二特征差异为选取的锚样本图像的字符深度学习特征与选取的负样本图像的字符深度学习特征的特征差异;
根据特征提取网络的损失调整特征提取网络的参数,在所述训练样本集中选取一三元组样本继续训练,直至满足预设结束条件,得到训练好的特征提取网络。
第二方面,本申请实施例提供了一种字符注册装置,所述装置包括:
注册信息获取模块,用于获取待注册字符图像及所述待注册字符图像中包括的字符;
注册特征提取模块,用于利用预先训练的特征提取网络,提取所述待注册字符图像中字符的深度学习特征,得到待注册字符深度学习特征;
注册特征保存模块,用于将所述待注册字符深度学习特征添加为所述待注册字符图像中包括的字符的样本字符深度学习特征;
其中,所述样本字符深度学习特征用于与目标字符深度学习特征进行特征差异的计算,所述目标字符深度学习特征为所述特征提取网络提取的待识别字符图像的字符深度学习特征,且最小的特征差异的样本字符深度学习特征所对应的字符为所述待识别字符图像的特征比对字符识别结果。
在一种可能的实施方式中,所述注册特征保存模块,具体用于:若已经存储有所述待注册字符图像标记的字符,则将所述待注册字符深度学习特征添加为所述待注册字符图像标记的字符的样本字符深度学习特征;若未存储有所述待注册字符图像标记的字符,则新增并存储所述待注册字符图像标记的字符,将所述待注册字符深度学习特征作为所述待注册字符图像标记的字符的样本字符深度学习特征。
在一种可能的实施方式中,所述装置还包括:
字符图像获取模块,用于获取待识别字符图像;
字符特征提取模块,用于利用所述特征提取网络,提取所述待识别字符图像的字符深度学习特征,得到目标字符深度学习特征;
特征差异计算模块,用于计算所述目标字符深度学习特征与各样本字符深度学习特征的特征差异,其中,所述样本字符深度学习特征是根据所述特征提取网络提取的样本字符图像的字符深度学习特征得到的;
第一结果确定模块,用于选取与所述目标字符深度学习特征特征差异最小的样本字符深度学习特征所对应的字符,得到所述目标字符深度学习特征的特征比对字符识别结果。
在一种可能的实施方式中,所述装置还包括:
分类结果输出模块,用于利用预先训练的字符分类网络,对所述目标字符深度学习特征进行字符分类,得到所述目标字符深度学习特征的分类字符识别结果及所述分类字符识别结果的置信度;
第二结果确定模块,用于当所述分类字符识别结果的置信度大于预设置信度阈值时,将所述分类字符识别结果作为所述待识别字符图像的字符识别结果。
在一种可能的实施方式中,所述特征差异计算模块,具体用于:当所述分类字符识别结果的置信度不大于预设置信度阈值时,计算所述目标字符深度学习特征与各样本字符深度学习特征的特征差异。
在一种可能的实施方式中,所述装置还包括:
第三结果确定模块,用于当所述分类字符识别结果的置信度不大于预设置信度阈值、且所述特征比对字符识别结果对应的特征差异小于预设差异度阈值时,将所述特征比对字符识别结果作为所述待识别字符图像的字符识别结果。
在一种可能的实施方式中,所述装置还包括:
配资消息获取模块,用于获取白名单配置消息,其中,所述白名单配置消息表示在白名单中对指定字符的样本字符深度学习特征进行添加或删除;
白名单配置模块,用于按照所述白名单配置消息,在所述白名单中添加或删除指定字符的样本字符深度学习特征;
所述特征差异计算模块,具体用于:计算所述目标字符深度学习特征与所述白名单中的各样本字符深度学习特征的特征差异。
在一种可能的实施方式中,所述装置还包括第一注册模块,用于:
获取待新增的目标字符及所述目标字符的目标字符形式;
生成包含所述目标字符形式的目标字符的图像,得到目标字符图像;
利用预先训练的特征提取网络,提取所述目标字符图像的字符深度学习特征;
新增及存储所述目标字符,并将所述目标字符图像的字符深度学习特征保存为所述目标字符的样本字符深度学习特征。
在一种可能的实施方式中,所述装置还包括特征提取网络训练模块,用于:
获取训练样本集及待训练的特征提取网络,其中,所述训练样本集包括多个三元组样本,所述三元组样本包括锚样本图像、正样本图像及负样本图像,同一所述三元组样本中的锚样本图像中的字符与正样本图像中的字符相同,同一所述三元组样本中的锚样本图像中的字符与负样本图像中的字符不同;
在所述训练样本集中选取一三元组样本,将选取的三元组样本的锚样本图像、正样本图像及负样本图像分别输入到特征提取网络中进行特征提取,得到选取的三元组样本中的锚样本图像的字符深度学习特征、正样本图像的字符深度学习特征及负样本图像的字符深度学习特征;
根据选取的三元组样本中的锚样本图像的字符深度学习特征、正样本图像的字符深度学习特征及负样本图像的字符深度学习特征,计算特征提取网络的损失,其中,特征提取网络的损失与第一特征差异正相关,特征提取网络的损失与第二特征差异负相关,所述第一特征差异为选取的锚样本图像的字符深度学习特征与选取的正样本图像的字符深度学习特征的特征差异,所述第二特征差异为选取的锚样本图像的字符深度学习特征与选取的负样本图像的字符深度学习特征的特征差异;
根据特征提取网络的损失调整特征提取网络的参数,在所述训练样本集中选取一三元组样本继续训练,直至满足预设结束条件,得到训练好的特征提取网络。
第三方面,本申请实施例提供了一种电子设备,包括处理器及存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述任一所述的字符注册方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的字符注册方法。
本申请实施例提供的字符注册方法、装置、电子设备及存储介质,获取待注册字符图像及待注册字符图像中包括的字符;利用预先训练的特征提取网络,提取待注册字符图像中字符的深度学习特征,得到待注册字符深度学习特征;将待注册字符深度学习特征添加为待注册字符图像中包括的字符的样本字符深度学习特征;其中,样本字符深度学习特征用于与目标字符深度学习特征进行特征差异的计算,目标字符深度学习特征为特征提取网络提取的待识别字符图像的字符深度学习特征,且最小的特征差异的样本字符深度学习特征所对应的字符为待识别字符图像的特征比对字符识别结果。采用特征比对的方式,选取与目标字符深度学习特征特征差异最小的样本字符深度学习特征所对应的字符,得到特征比对字符识别结果,不用基于分类器的分类。因此在注册新字符时,仅需要提取新字符的深度学习特征,并保存为相应字符的样本字符深度学习特征即可,不用重新进行训练,能够降低新增字符时用户的训练成本。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的字符注册方法的第一种示意图;
图2为图1所示的实施例中步骤s103的具体实现方式的一种示意图;
图3为本申请实施例的字符注册方法中字符识别过程的第一种示意图;
图4为本申请实施例的特征提取网络训练方法的第一种示意图;
图5a为本申请实施例的三元组样本的一种示意图;
图5b为本申请实施例的特征提取网络训练方法的第二种示意图;
图5c为本申请实施例的特征提取网络训练训练目标的一种示意图;
图6为本申请实施例的字符注册方法中字符识别过程的第二种示意图;
图7为本申请实施例的字符注册方法中字符识别过程的第三种示意图;
图8为本申请实施例的字符注册方法中字符识别过程的第四种示意图;
图9为本申请实施例的字符注册方法中字符识别过程的第五种示意图;
图10为本申请实施例的字符注册装置的一种示意图;
图11为本申请实施例的电子设备的一种示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了减少用户的训练成本,本申请实施例提供了一种字符注册方法,参见图1,该方法包括:
s101,获取待注册字符图像及上述待注册字符图像中包括的字符。
本申请实施例的字符注册方法可以通过电子设备实现,具体的,该电子设备可以为在线开放平台中的服务器设备或客户端设备等。用户可以将标记有字符的待注册字符图像上传到在线开放平台的服务器设备中,由服务器设备进行字符注册;也可以预先将字符注册的相关数据下载到客户端设备中,由客户端设备进行字符注册等。
用户可以向电子设备中输入待注册字符图像,并标记该待注册字符图像中包括的字符。
s102,利用预先训练的特征提取网络,提取上述待注册字符图像中字符的深度学习特征,得到待注册字符深度学习特征。
其中,经过特征提取网络得到的字符深度学习特征中,相同字符之间字符深度学习特征的特征差异小于不同字符之间字符深度学习特征的特征差异。相同字符即表示同一字符的字符,例如宋体“国”与隶书“国”为相同字符,宋体“国”与宋体“家”为不同字符。
特征提取网络是深度学习网络的一种,具体可以为卷积神经网络等。可以采用基于深度度量学习的方法,例如,tripletloss方法等,训练得到特征提取网络。特征提取网络用于对字符图像进行深度学习特征的提取,即提取字符深度学习特征。具体的,可以先对待识别字符图像进行字符定位,然后对定位出的字符进行字符深度学习特征的提取。其中,字符定位的方法可以参见相关技术中的字符定位方法,例如,可以采用模板匹配、传统或深度学习字符区域定位方法等,本申请实施例中并不对字符定位的方法进行具体限定。
s103,将上述待注册字符深度学习特征添加为上述待注册字符图像中包括的字符的样本字符深度学习特征。
其中,上述样本字符深度学习特征用于与目标字符深度学习特征进行特征差异的计算,上述目标字符深度学习特征为上述特征提取网络提取的待识别字符图像的字符深度学习特征,且最小的特征差异的样本字符深度学习特征所对应的字符为上述待识别字符图像的特征比对字符识别结果。
随着时间的推移,字符可能会增加。例如,针对识别工作服中工人的姓名的场景,会随着人员的增新而增加新的字符;例如,针对识别船身的船名的场景,可能会随着新增船只的增加新增字符等。因此,针对字体或背景导致识别效果差,或存在新增字符的场景,可以进行线上注册,来添加新的字符。其中,字符线上注册功能,适用于获取特征比对字符识别结果。
在本申请实施例中,因为采用特征比对的方式,选取与目标字符深度学习特征特征差异最小的样本字符深度学习特征所对应的字符,得到特征比对字符识别结果,不用基于分类器的分类。因此在注册新字符时,仅需要提取新字符的深度学习特征,并保存为相应字符的样本字符深度学习特征即可,不用重新进行训练,能够降低新增字符时用户的训练成本。
在一种可能的实施方式中,参见图2,上述s103,将上述待注册字符深度学习特征添加为上述待注册字符图像中包括的字符的样本字符深度学习特征,包括:
s1031,若已经存储有上述待注册字符图像标记的字符,则将上述待注册字符深度学习特征添加为上述待注册字符图像标记的字符的样本字符深度学习特征。
当待注册字符图像标记的字符已存在时,将待注册字符深度学习特征添加为该字符的样本字符深度学习特征。
s1032,若未存储有上述待注册字符图像标记的字符,则新增并存储上述待注册字符图像标记的字符,将上述待注册字符深度学习特征作为上述待注册字符图像标记的字符的样本字符深度学习特征。
当待注册字符图像标记的字符不存在时,新增并存储该字符,并将待注册字符深度学习特征存储为该字符的样本字符深度学习特征。
具体的,针对字体或背景导致识别效果差的待注册字符图像,采集该待注册字符图像,并标记待注册字符图像中字符的真值,利用特征提取网络提取字符深度学习特征,将该字符深度学习特征与其对应的字符关联存储。其中,一个字符可以对应多个字符深度学习特征,在计算特征差异的过程中,可以与同一字符的多个字符深度学习特征均进行特征差异的计算,从而提高识别准确度。
针对出现新增字符的待注册字符图像,采集该待注册字符图像,并标记待注册字符图像中字符的真值,利用特征提取网络提取字符深度学习特征,将字符的真值映射为新增字符,并对提取的字符深度学习特征注册登记,与该字符的真值进行关联存储。
如果无法采集到新增字符的待注册字符图像,可以只提供新增的字符及字符形式,例如针对中文字符,可以提供新增汉字以及新增汉字的字体,平台自动生成汉字,并提取字符深度学习特征,映射为新增类别,注册登记。在一种可能的实施方式中,上述方法还包括:
步骤一,获取待新增的目标字符及上述目标字符的目标字符形式。
步骤二,生成包含目标字符形式的目标字符的图像,得到目标字符图像。
步骤三,利用预先训练的特征提取网络,提取上述目标字符图像的字符深度学习特征。
步骤四,新增及存储目标字符,并将目标字符图像的字符深度学习特征保存为目标字符的样本字符深度学习特征。
若未存储有目标字符,则新增并存储目标字符,将提取的目标字符图像的字符深度学习特征作为目标字符对应的样本字符深度学习特征进行关联存储。
例如,在新增中文字符时,用户针对实现本申请字符注册方法的电子设备,输出待新增的中文字符及该中文字符的字体。电子设备获取该中文字符(以下称为目标中文字符)及该中文字符的字体(以下称为目标字体),并生成包括目标字体的目标中文字符的目标字符图像。利用预先训练的特征提取网络,提取目标字符图像的字符深度学习特征。注册新增目标中文字符,并存储目标中文字符,同时将目标字符图像的字符深度学习特征保存为目标中文字符的样本字符深度学习特征。
在本申请实施例中,支持线上注册字符、新增字符,线上无需训练即可快速进行定制场景识别效果的优化,能够满足用户多方面的需求,并降低用户的训练成本。
在一种可能的实施方式中,参见图3,图3本申请实施例的字符注册方法中字符识别过程的一种示意图,包括:
s11,获取待识别字符图像。
待识别字符图像是指包括字符的图像,例如,可以为车牌图像、路标牌图像、广告牌图像或文本图像等。待识别字符图像中包括一个或多个字符,字符的形式可以为中文类字符、英文类字符或其他类字符等,本申请实施例中并不对字符的形式进行具体限定。
s12,利用预先训练的特征提取网络,提取上述待识别字符图像的字符深度学习特征,得到目标字符深度学习特征。
其中,经过特征提取网络得到的字符深度学习特征中,相同字符之间字符深度学习特征的特征差异小于不同字符之间字符深度学习特征的特征差异。相同字符即表示同一字符的字符,例如宋体“国”与隶书“国”为相同字符,宋体“国”与宋体“家”为不同字符。
特征提取网络是深度学习网络的一种,具体可以为卷积神经网络等。可以采用基于深度度量学习的方法,例如,tripletloss方法等,训练得到特征提取网络。特征提取网络用于对字符图像进行深度学习特征的提取,即提取字符深度学习特征。具体的,可以先对待识别字符图像进行字符定位,然后对定位出的字符进行字符深度学习特征的提取。其中,字符定位的方法可以参见相关技术中的字符定位方法,例如,可以采用模板匹配、传统或深度学习字符区域定位方法等,本申请实施例中并不对字符定位的方法进行具体限定。
待识别字符图像中可以包括一个或多个字符,因此目标字符深度学习特征可以包括一个或多个字符的字符深度学习特征。一般情况下,需要对每个字符的字符深度学习特征进行单独比对,因此本申请实施例中的目标字符深度学习特征可以为待识别字符图像中任意一个字符的字符深度学习特征,对待识别字符图像中每个字符的字符深度学习特征均执行与目标字符深度学习特征相同的操作,从而可以得到待识别字符图像中所有字符的字符识别结果。
s13,计算上述目标字符深度学习特征与各样本字符深度学习特征的特征差异,其中,上述样本字符深度学习特征是根据上述特征提取网络提取的样本字符图像的字符深度学习特征得到的。
分别计算目标字符深度学习特征与每个样本字符深度学习特征的特征差异。具体的,可以计算目标字符深度学习特征与样本字符深度学习特征的欧式距离,作为其对应的特征差异。各样本字符深度学习特征可以提前获取并存储在数据库中,计算特征差异时直接读取即可。可以预先利用特征提取网络,提取各样本字符图像的字符深度学习特征,根据各样本字符图像的字符深度学习特征,得到各样本字符深度学习特征。一个样本字符深度学习特征仅对应一个字符,一个字符可以对应一个或多个样本字符深度学习特征。例如,楷体“国”的样本字符深度学习特征对应的字符为“国”,而字符“国”可以对应楷体“国”的样本字符深度学习特征、宋体“国”的样本字符深度学习特征、隶书体“国”的样本字符深度学习特征等。
可以将同一字符的各字符深度学习特征均作为该字符对应的样本字符深度学习特征。例如,针对中文字符“国”,有楷体“国”的字符深度学习特征、宋体“国”的字符深度学习特征、隶书体“国”的字符深度学习特征。则字符“国”对应的样本字符深度学习特征包括楷体“国”的样本字符深度学习特征、宋体“国”的样本字符深度学习特征及隶书体“国”的样本字符深度学习特征。
为了减少目标字符深度学习特征与各样本字符深度学习特征的比对次数,当同一字符对应有多个字符深度学习特征时,在一种可能的实施方式中,任一字符的样本字符深度学习特征,为该字符对应的各字符深度学习特征的中心空间特征,其中,各字符深度学习特征的中心空间特征为与各字符深度学习特征间距离的和最小的特征。
具体的,针对任一字符,可以计算该字符对应的各字符深度学习特征的特征空间中心,得到该字符中各字符深度学习特征的中心空间特征,作为该字符的样本字符深度学习特征,其中,各字符深度学习特征的中心空间特征为特征空间中与各字符深度学习特征间距离的和最小的特征,特征空间为各字符深度学习特征所属的特征空间。一般情况下,字符深度学习特征是采用矩阵的形式进行表示的,同一特征提取网络提取的各字符深度学习特征的矩阵维度是相同的,因此各字符深度学习特征均属于一个特征空间。在该特征空间中确定一个特征,使得该特征与各字符深度学习特征间距离的和最小(即小于该特征空间中其他任一特征与各字符深度学习特征间距离的和),将该特征称为各字符深度学习特征的中心空间特征。其具体计算方法可以参见相关技术中的计算方法,本申请实施例中不做具体限定。
s14,选取与上述目标字符深度学习特征特征差异最小的样本字符深度学习特征所对应的字符,得到上述目标字符深度学习特征的特征比对字符识别结果。
在计算得到的各特征差异中,选取最小的特征差异,将最小的特征差异的样本字符深度学习特征所对应的字符,作为目标字符深度学习特征的特征比对字符识别结果。
在一种可能的实施方式中,上述选取与上述目标字符深度学习特征特征差异最小的样本字符深度学习特征所对应的字符,得到上述目标字符深度学习特征的特征比对字符识别结果,包括:当最小的特征差异小于预设差异度阈值时,选取最小的特征差异对应的样本字符深度学习特征所对应的字符,作为目标字符深度学习特征的特征比对字符识别结果。
为了增加特征比对字符识别结果的准确度,可以设置预设差异度阈值,当最小的特征差异不大于预设差异度阈值时,认为得到的特征比对字符识别结果是准确的;当最小的特征差异大于预设差异度阈值时,认为得到的特征比对字符识别结果不准确,此时可以输出表示字符识别失败的提示消息。
在本申请实施例中,采用特征比对的方式,选取与目标字符深度学习特征特征差异最小的样本字符深度学习特征所对应的字符,得到特征比对字符识别结果,不用基于分类器的分类,受应用场景的影响小,可以直接利用在线开放平台中的深度学习网络进行字符识别,用户不用上传其应用场景的字符图像对深度学习网络进行再次训练,能够降低用户的训练成本。尤其适合开放平台线上中文字符识别场景,可基于特定场景快速定制,省去用户的训练工作。
在一种可能的实施方式中,参见图4,预先训练特征提取网络的步骤包括:
s21,获取训练样本集及待训练的特征提取网络,其中,上述训练样本集包括多个三元组样本,上述三元组样本包括锚样本图像、正样本图像及负样本图像,同一上述三元组样本中的锚样本图像中的字符与正样本图像中的字符相同,同一上述三元组样本中的锚样本图像中的字符与负样本图像中的字符不同。
特征提取网络是深度学习网络的一种,特征提取网络可以为卷积神经网络等,具体的,特征提取网络可以采用多层卷积层加一层l2normalization(l2归一化层)的结构。
每个三元组样本均包括锚样本图像、正样本图像、负样本图像。可以利用多个字符的样本图像随机构造三元组样本。从多个字符的样本图像中随机选一个样本,该样本称为锚样本图像,然后再选取一个和锚样本图像的字符相同的样本图像作为正样本图像,选取一个和锚样本图像的字符不同的样本图像作为负样本图,由此构成一个三元组样本。例如,一个三元组样本可以如图5a所示。
s22,在上述训练样本集中选取一三元组样本,将选取的三元组样本的锚样本图像、正样本图像及负样本图像分别输入到特征提取网络中进行特征提取,得到选取的三元组样本中的锚样本图像的字符深度学习特征、正样本图像的字符深度学习特征及负样本图像的字符深度学习特征。
例如图5b所示,将一个三元组样本中的锚样本图像xa、正样本图像xp及负样本图像xn分别输入到特征提取网络中进行特征提取,分别得到锚样本图像的字符深度学习特征f(xa)、正样本图像的字符深度学习特征f(xp)及负样本图像的字符深度学习特征f(xn)。
s23,根据选取的三元组样本中的锚样本图像的字符深度学习特征、正样本图像的字符深度学习特征及负样本图像的字符深度学习特征,计算特征提取网络的损失,其中,特征提取网络的损失与第一特征差异正相关,特征提取网络的损失与第二特征差异负相关,上述第一特征差异为选取的锚样本图像的字符深度学习特征与选取的正样本图像的字符深度学习特征的特征差异,上述第二特征差异为选取的锚样本图像的字符深度学习特征与选取的负样本图像的字符深度学习特征的特征差异。
根据同一三元组样本的f(xa)、f(xp)及f(xn),计算特征提取网络的损失。f(xa)与f(xp)的特征差异称为第一特征差异,f(xa)与f(xn)的特征差异称为第二特征差异。具体的,可以采用欧式距离表示字符深度学习特征之间的差异。特征提取网络的损失与第一特征差异正相关,即第一特征差异越大,特征提取网络的损失越大;特征提取网络的损失与第二特征差异负相关,即第二特征差异越大,特征提取网络的损失越小。
可选的,通过如下公式计算特征提取网络的损失:
其中,l为特征提取网络的损失,f(xa)为锚样本图像的字符深度学习特征,f(xp))为正样本图像的字符深度学习特征,f(xn)为负样本图像的字符深度学习特征,
s24,根据特征提取网络的损失调整特征提取网络的参数,在上述训练样本集中选取一三元组样本继续训练,直至满足预设结束条件,得到训练好的特征提取网络。
例如图5c所示,通过参数调整,使得锚样本图像字符深度学习特征与正样本图像字符深度学习特征的距离小于锚样本图像字符深度学习特征与负样本图像字符深度学习特征的距离,以实现样本的相似性计算。预设结束条件可以根据实际情况进行设定,例如特征提取网络的损失收敛,或达到预设的训练次数等。训练完成后,得到的特征提取网络具备如下特点:相同字符经过特征提取网络提取的字符深度学习特征的特征差异较小,不同字经过特征提取网络提取的字符深度学习特征的特征差异较大。这里的特征差异与训练时损失函数里所用的特征差异相同,一般可以是欧式距离。
在本申请实施例中,利用三元组样本对特征提取网络进行训练,使得通过特征提取网络得到的字符深度学习特征中,相同字符的特征差异较小,不同字符的特征差异较大,为后续利用特征差异进行字符识别提供了前提。
在一种可能的实施方式中,参见图6,在上述利用预先训练的特征提取网络,提取上述待识别字符图像的字符深度学习特征,得到目标字符深度学习特征之后,上述方法还包括:
s15,利用预先训练的字符分类网络,对上述目标字符深度学习特征进行字符分类,得到上述目标字符深度学习特征的分类字符识别结果及上述分类字符识别结果的置信度。
s16,当上述分类字符识别结果的置信度大于预设置信度阈值时,将上述分类字符识别结果作为上述待识别字符图像的字符识别结果。
字符分类网络即分类器,具体可以为全连接层等,字符分类网络的训练方法可以参见相关技术中分类器的训练方法,例如可以通过交叉熵损失方法进行训练,此处不再赘述。预设置信度阈值可以根据实际情况自定义设置,例如设置为70%,80%或90%等。
在本申请实施例中,为了便于客户应用,还可以提供字符分类网络即分类器用于字符识别,在分类字符识别结果的置信度大于预设置信度阈值时,认为分类字符识别结果是可信的,可以同时输出特征比对字符识别结果及分类字符识别结果供用户参考,也可以仅输出分类字符识别结果作为待识别字符图像最终的字符识别结果。
在一种可能的实施方式中,参见图7,上述计算上述目标字符深度学习特征与各样本字符深度学习特征的特征差异,包括:
s131,当上述分类字符识别结果的置信度不大于预设置信度阈值时,计算上述目标字符深度学习特征与各样本字符深度学习特征的特征差异。
具体的,可以在分类字符识别结果的置信度大于预设置信度阈值时,直接将分类字符识别结果作为待识别字符图像最终的字符识别结果,而不再进行特征差异的计算。当分类字符识别结果的置信度不大于预设置信度阈值时,认为分类字符识别结果不可信,此时在进行特征差异的计算。
在本申请实施例中,当分类字符识别结果的置信度不大于预设置信度阈值时,在进行特征差异的计算;分类字符识别结果的置信度大于预设置信度阈值时,不进行特征差异的计算,直接将分类字符识别结果作为待识别字符图像最终的字符识别结果,从而节约计算资源。
在一种可能的实施方式中,参见图8,在上述选取与上述目标字符深度学习特征特征差异最小的样本字符深度学习特征所对应的字符,得到上述目标字符深度学习特征的特征比对字符识别结果之后,上述方法还包括:
s17,当上述分类字符识别结果的置信度不大于预设置信度阈值、且上述特征比对字符识别结果对应的特征差异小于预设差异度阈值时,将上述特征比对字符识别结果作为上述待识别字符图像的字符识别结果。
为了增加特征比对字符识别结果的准确度,可以设置预设差异度阈值,当特征比对字符识别结果对应的特征差异小于预设差异度阈值时,认为得到的特征比对字符识别结果是准确的;当特征比对字符识别结果对应的特征差异不小于预设差异度阈值时,认为得到的特征比对字符识别结果不准确,此时可以输出表示字符识别失败的提示消息。
在一种可能的实施方式中,参见图9,上述方法还包括:
s181,获取白名单配置消息,其中,上述白名单配置消息表示在白名单中对指定字符的样本字符深度学习特征进行添加或删除。
s182,按照上述白名单配置消息,在上述白名单中添加或删除指定字符的样本字符深度学习特征。
上述计算上述目标字符深度学习特征与各样本字符深度学习特征的特征差异,包括:
s132,计算上述目标字符深度学习特征与上述白名单中的各样本字符深度学习特征的特征差异。
用户可以通过白名单配置消息对白名单进行管理,包括将指定字符的样本字符深度学习特征添加到白名单中,及将指定字符的样本字符深度学习特征从白名单中删除。当需要计算特征差异时,仅计算目标字符深度学习特征与白名单中的各样本字符深度学习特征的特征差异即可,从而可以大大减少了计算资源的消耗。可选的,可以通过相关指令开启或关闭白名单功能。当白名单功能开启时,计算目标字符深度学习特征与白名单中的各样本字符深度学习特征的特征差异;而当白名单功能关闭时,计算目标字符深度学习特征与所有样本字符深度学习特征的特征差异。
本申请实施例还提供了一种字符注册装置,参见图10,该装置包括:
注册信息获取模块201,用于获取待注册字符图像及所述待注册字符图像中包括的字符;
注册特征提取模块202,用于利用预先训练的特征提取网络,提取所述待注册字符图像中字符的深度学习特征,得到待注册字符深度学习特征;
注册特征保存模块203,用于将所述待注册字符深度学习特征添加为所述待注册字符图像中包括的字符的样本字符深度学习特征;
其中,所述样本字符深度学习特征用于与目标字符深度学习特征进行特征差异的计算,所述目标字符深度学习特征为所述特征提取网络提取的待识别字符图像的字符深度学习特征,且最小的特征差异的样本字符深度学习特征所对应的字符为所述待识别字符图像的特征比对字符识别结果。
在一种可能的实施方式中,所述注册特征保存模块203,具体用于:若已经存储有所述待注册字符图像标记的字符,则将所述待注册字符深度学习特征添加为所述待注册字符图像标记的字符的样本字符深度学习特征;若未存储有所述待注册字符图像标记的字符,则新增并存储所述待注册字符图像标记的字符,将所述待注册字符深度学习特征作为所述待注册字符图像标记的字符的样本字符深度学习特征。
在一种可能的实施方式中,上述装置还包括:
字符图像获取模块,用于获取待识别字符图像;
字符特征提取模块,用于利用预先训练的特征提取网络,提取上述待识别字符图像的字符深度学习特征,得到目标字符深度学习特征;
特征差异计算模块,用于计算上述目标字符深度学习特征与各样本字符深度学习特征的特征差异,其中,上述样本字符深度学习特征是根据上述特征提取网络提取的样本字符图像的字符深度学习特征得到的;
第一结果确定模块,用于选取与上述目标字符深度学习特征特征差异最小的样本字符深度学习特征所对应的字符,得到上述目标字符深度学习特征的特征比对字符识别结果。
在一种可能的实施方式中,上述装置还包括:
分类结果输出模块,用于利用预先训练的字符分类网络,对上述目标字符深度学习特征进行字符分类,得到上述目标字符深度学习特征的分类字符识别结果及上述分类字符识别结果的置信度;
第二结果确定模块,用于当上述分类字符识别结果的置信度大于预设置信度阈值时,将上述分类字符识别结果作为上述待识别字符图像的字符识别结果。
在一种可能的实施方式中,上述特征差异计算模块103,具体用于:当上述分类字符识别结果的置信度不大于预设置信度阈值时,计算上述目标字符深度学习特征与各样本字符深度学习特征的特征差异。
在一种可能的实施方式中,上述装置还包括:
第三结果确定模块,用于当上述分类字符识别结果的置信度不大于预设置信度阈值、且上述特征比对字符识别结果对应的特征差异小于预设差异度阈值时,将上述特征比对字符识别结果作为上述待识别字符图像的字符识别结果。
在一种可能的实施方式中,上述装置还包括:
配资消息获取模块,用于获取白名单配置消息,其中,上述白名单配置消息表示在白名单中对指定字符的样本字符深度学习特征进行添加或删除;
白名单配置模块,用于按照上述白名单配置消息,在上述白名单中添加或删除指定字符的样本字符深度学习特征;
上述特征差异计算模块,具体用于:计算上述目标字符深度学习特征与上述白名单中的各样本字符深度学习特征的特征差异。
在一种可能的实施方式中,上述装置还包括第一注册模块,用于:
获取待新增的目标字符及上述目标字符的目标字符形式;
生成包含上述目标字符形式的目标字符的图像,得到目标字符图像;
利用预先训练的特征提取网络,提取上述目标字符图像的字符深度学习特征;
新增及存储上述目标字符,并将上述目标字符图像的字符深度学习特征保存为上述目标字符的样本字符深度学习特征。
在一种可能的实施方式中,上述装置还包括特征提取网络训练模块,用于:
获取训练样本集及待训练的特征提取网络,其中,上述训练样本集包括多个三元组样本,上述三元组样本包括锚样本图像、正样本图像及负样本图像,同一上述三元组样本中的锚样本图像中的字符与正样本图像中的字符相同,同一上述三元组样本中的锚样本图像中的字符与负样本图像中的字符不同;
在上述训练样本集中选取一三元组样本,将选取的三元组样本的锚样本图像、正样本图像及负样本图像分别输入到特征提取网络中进行特征提取,得到选取的三元组样本中的锚样本图像的字符深度学习特征、正样本图像的字符深度学习特征及负样本图像的字符深度学习特征;
根据选取的三元组样本中的锚样本图像的字符深度学习特征、正样本图像的字符深度学习特征及负样本图像的字符深度学习特征,计算特征提取网络的损失,其中,特征提取网络的损失与第一特征差异正相关,特征提取网络的损失与第二特征差异负相关,上述第一特征差异为选取的锚样本图像的字符深度学习特征与选取的正样本图像的字符深度学习特征的特征差异,上述第二特征差异为选取的锚样本图像的字符深度学习特征与选取的负样本图像的字符深度学习特征的特征差异;
根据特征提取网络的损失调整特征提取网络的参数,在上述训练样本集中选取一三元组样本继续训练,直至满足预设结束条件,得到训练好的特征提取网络。
本申请实施例还提供了一种电子设备,包括:处理器及存储器;
上述存储器,用于存放计算机程序;
上述处理器用于执行上述存储器存放的计算机程序时,实现上述任一字符注册方法。
可选的,参见图11,本申请实施例的电子设备还包括通信接口302和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。
上述电子设备提到的通信总线可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现上述任一字符注册方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一字符注册方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。
需要说明的是,在本文中,各个可选方案中的技术特征只要不矛盾均可组合来形成方案,这些方案均在本申请公开的范围内。诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质及计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。