一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

轻量级字符识别模型的训练方法、电子设备及存储介质

2022-04-16 13:09:12 来源:中国专利 TAG:


1.本技术涉及文字识别技术领域,特别涉及一种轻量级字符识别模型的训练方法、电子设备及计算机可读存储介质。


背景技术:

2.随着人工智能的发展,ocr技术得到了广泛的应用。ocr(optical character recognition,光学字符识别)是指电子设备对文本资料进行扫描,并对扫描所获得的图像文件进行处理,最终将文本资料翻译为计算机字符的过程。现有技术中,通过训练字符识别模型,并利用训练完成的字符识别模型完成字符识别工作。然而,为保证字符识别精度,该方法中所使用的字符识别模型规模较大,增加了资源占用,降低了字符识别效率。


技术实现要素:

3.本技术实施例的目的在于提供一种轻量级字符识别模型的训练方法、电子设备及计算机可读存储介质,用于训练出文字识别效果好且规模小的模型。
4.一方面,本技术提供了一种轻量级字符识别模型的训练方法,包括:
5.对若干机器学习模型进行训练,得到初始字符检测模型及初始字符识别模型;
6.基于已训练的初始字符检测模型及初始字符识别模型,构建目标字符识别模型;
7.将所述目标字符识别模型转换为ncnn框架下的指定格式,获得轻量级字符识别模型。
8.在一实施例中,所述初始字符检测模型通过下述方法训练得到:
9.基于字符检测训练集训练第一db模型及第二db模型;其中,所述第一db模型骨干网络为resnet网络,所述第二db模型骨干网络为mobilenet网络;
10.基于已训练的第一db模型,对已训练的第二db模型进行知识蒸馏,得到所述初始字符检测模型。
11.在一实施例中,所述初始字符识别模型包括指定vgg网络及ctc算法,所述指定vgg网络经过参数预筛减和bn层剪支处理;
12.所述初始字符识别模型通过下述方法训练得到:
13.基于字符识别训练集训练所述指定vgg网络,获得已训练的指定vgg网络;
14.基于已训练的指定vgg网络对所述字符识别训练集的识别结果,对所述ctc算法进行训练;
15.对已训练的指定vgg网络和已训练的ctc算法进行连接,得到所述初始字符识别模型。
16.在一实施例中,在所述获得轻量级字符识别模型之后,所述方法还包括:
17.将所述轻量级字符识别模型部署至目标设备。
18.在一实施例中,在所述获得轻量级字符识别模型之后,所述方法还包括:
19.获取所述待识别图像,并对所述待识别图像进行预处理;
20.将预处理后的待识别图像输入所述轻量级字符识别模型,获得所述轻量级字符识别模型输出的目标字符。
21.在一实施例中,所述对所述待识别图像进行预处理,包括:
22.通过白平衡算法对所述待识别图像进行亮度调节。
23.在一实施例中,在获得所述轻量级字符识别模型输出的目标字符之后,所述方法还包括:
24.通过指定应用场景对应的所述正则表达式及校验位算法,对所述目标字符进行信息提取,获得所述指定应用场景对应的文字识别结果。
25.另一方面,本技术还提供了一种轻量级字符识别模型的训练装置,包括:
26.训练模块,用于对若干机器学习模型进行训练,得到初始字符检测模型及初始字符识别模型;
27.构建模块,用于基于已训练的初始字符检测模型及初始字符识别模型,构建目标字符识别模型;
28.格式转换模块,用于将所述目标字符识别模型转换为ncnn框架下的指定格式,获得轻量级字符识别模型。
29.进一步的,本技术还提供了一种电子设备,所述电子设备包括:
30.处理器;
31.用于存储处理器可执行指令的存储器;
32.其中,所述处理器被配置为执行上述轻量级字符识别模型的训练方法。
33.另外,本技术还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述轻量级字符识别模型的训练方法。
34.本技术方案中,通过训练若干机器识别模型,构建目标字符识别模型,并对上述目标字符识别模型进行格式转换,已得到轻量级字符识别模型。本技术中的轻量级字符识别模型的规模较小,字符识别效果好,节省资源占用,提高了字符识别效率。
附图说明
35.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍。
36.图1为本技术一实施例提供的电子设备的结构示意图;
37.图2为本技术一实施例提供的轻量级字符识别模型的训练方法的流程示意图;
38.图3为本技术一实施例提供的初始字符检测模型的训练示意图;
39.图4为本技术一实施例提供的待识别图像的示意图;
40.图5为本技术一实施例提供的待识别图像的热力图示意图;
41.图6为本技术一实施例提供的待识别图像的字符检测结果示意图;
42.图7为本技术一实施例提供的待识别图像的字符检测结果示意图;
43.图8为本技术一实施例提供的轻量级字符识别模型的训练装置的框图。
具体实施方式
44.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
45.相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
46.如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器11为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程。在一实施例中,电子设备1可以是服务器及服务器集群等,用于执行轻量级字符识别模型的训练方法。
47.存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read only memory,简称eprom),可编程只读存储器(programmable red-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
48.本技术还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器11执行以完成本技术提供的轻量级字符识别模型的训练方法。
49.电子设备采用ocr方法进行字符识别时,主要分为字符检测及字符识别两个步骤。具体的,电子设备在获得图像数据后,将图像数据输入到已训练的机器学习模型中,机器学习模型先识别出图像中字符所在区域,并对上述区域内的字符进行识别,最终获得字符识别结果。将字符数据存储在电子设备中,以便于用户完成相应的业务操作。
50.举例来说,图书管理员为便于对图书进行管理,需要将图书编码导入到图书管理系统中。为解决人工录入效率低的问题,可以采用上述方法将图书编码录入到图书管理系统中。具体方式为,采用图像采集装置采集若干图像数据;其中,若干图像数据中携带有若干图书编码。采集完毕后将图像数据导入到电子设备中,由电子设备将若干图像数据输入到已训练的机器学习模型中,由机器学习模型识别出图像数据中的图书编码信息,并将图书编码信息录入到图书管理系统中。
51.进行上述字符识别操作前需要先对机器学习模型进行训练,当机器学习模型满足识别精度时,才可进行上述字符识别操作。
52.然而,现有训练方法中所训练出的机器学习模型的规模较大,资源占据大,降低了对字符的识别速度。
53.本技术中为解决上述问题,提出一种轻量级字符识别模型的训练方法,下面详细讲解该方法的具体工作流程。
54.如图2所示,其为本技术一实施例提供的轻量级字符识别模型的训练方法的流程示意图。参见图2,该方法可以包括以下步骤s210-步骤s230。
55.步骤s210:对若干机器学习模型进行训练,得到初始字符检测模型及初始字符检测模型。
56.其中,若干机器学习模型可以包含不同的骨干网络。
57.为训练出规模较小的字符识别模型,可以先对若干机器学习模型进行训练,以获得识别效果好且规模较小的轻量级字符识别模型。
58.首先获取若干训练集,每个训练集中可以包括若干样本图像。其中,样本图像中包括待识别的目标字符。示例性的,样本图像可以为身份证照片,此时目标字符可以为姓名、出身日期、身份证号码及家庭住址等;或者,样本图像可以为银行卡照片,此时目标字符可以为银行卡号及金融机构名称等;或者,样本图像可以为图书照片,此时目标字符可以为图书名称、出版方及图书编码等。
59.电子设备使用上述训练集对若干机器学习模型进行训练。其中,训练集中包括字符检测训练集和字符识别训练集。训练结束后可以获得已训练的初始字符检测模型及字符识别模型,初始字符检测模型负责检测字符所在区域,初始字符识别模型负责对上述区域内的字符进行字符识别。
60.步骤s220:基于已训练的初始字符检测模型及初始字符识别模型,构建目标字符识别模型。
61.电子设备获得已训练的初始字符检测模型和初始字符识别模型后,可以将初始字符检测模型和初始字符识别模型进行连接,构建目标字符识别模型。
62.构建完成后即可使用目标字符识别模型进行相应的字符识别工作。
63.步骤s230:将目标字符识别模型转换为ncnn框架下的指定格式,获得轻量级字符识别模型。
64.其中,ncnn为一个专门针对移动设备的深度学习前向框架;轻量级字符识别模型为使用上述方法所训练出的规模较小的用于字符识别的机器学习模型。
65.本技术中为进一步减小目标字符识别模型的模型大小,且便于在移动终端设备上完成字符识别操作,可以将已训练的目标字符识别模型转换为ncnn框架下的指定格式。同时,使用量化技术对目标字符识别模型进行参数转换。转换成功后可以获得轻量级字符识别模型。示例性的,可以采用pytorch构建轻量级字符识别模型。量化技术可以将pytorch中float32的模型参数转变为ncnn中int8的模型参数。通过上述操作,使得机器学习模型的模型大小减小了
66.本技术中的轻量级字符识别模型的规模较小,字符识别效果好,节省资源占用,提高了文字识别效率。
67.在一实施例中,可以通过下述方式训练初始字符检测模型:
68.基于字符检测训练集训练第一db(real-time scene text detection with differentiable binarization,可微分二值化处理)模型及第二db模型;其中,第一db模型骨干网络为resnet网络,第二db模型骨干网络为mobilenet网络;训练完成后基于已训练的第一db模型,对已训练的第二db模型进行知识蒸馏,得到初始字符检测模型。具体的,第一db模型骨干网络为resnet34;第二db模型的骨干网络为mobilenetv3 small。
69.如图3所示,其为本技术一实施例提供的初始字符检测模型的训练示意图。参见图3,先使用字符检测训练集训练第一db模型及第二db模型。其中,当第一db模型及第二db模型的损失函数的函数值趋于稳定时,可以认为训练完成。训练完成后使用第一db模型的模型参数优化第二db模型的模型参数,即对第二db模型进行知识蒸馏。具体的,通过下面公式(1)对第二db模型进行知识蒸馏处理:
70.l=l
hard
al
soft
ꢀꢀꢀꢀ
(1)
71.其中,l为知识蒸馏后的第二db模型的损失函数,l
hard
为知识蒸馏前的第二db模型的损失函数,a为优化系数,l
soft
可以通过下面公式(2)获得;
[0072][0073]
其中,pi为对第一db模型的输出进行soft变换后所得到的结果,qi为对第二db模型的输出进行soft变换后所得到的结果。
[0074]
优化系数a的值可以根据需要进行自由选择。示例性的,a=0.1。
[0075]
优化完成后,分离出第二db模型的模型参数,并将第二db模型作为初始字符检测模型。
[0076]
通过上述措施,通过精度较高的第一db模型对第二db模型进行优化,在保证字符检测精度的基础上减小了初始字符检测模型的模型大小,提高了字符检测速度。
[0077]
在一实施例中,初始字符识别模型包括指定vgg网络及ctc(connectionist temporal classification,联结主义时间分类)算法,此时可以通过下述方式训练初始字符识别模型:
[0078]
基于字符识别训练集训练指定vgg网络,获得已训练的指定vgg网络;其中,指定vgg网络经过参数预筛减和bn层剪支处理。
[0079]
指定vgg网络的网络模型为剪支vgg模型;剪支vgg模型可以通过对vgg模型进行参数预筛减和bn层剪支处理后获得,且指定vgg网络中去掉了lstm循环层。
[0080]
示例性的,指定vgg网络的网络参数可以为:
[0081]
ks=[5,3,3,3,3,3,2]
[0082]
ps=[2,1,1,1,1,1,0]
[0083]
ss=[2,1,1,1,1,1,1]
[0084]
nm=[32,64,128,128,256,256,256]
[0085]
其中,ks为convrelu模块的卷积核大小,ps为padding大小,ss为步长大小,nm为输出通道大小。
[0086]
通过上述措施,对vgg模型进行参数预筛减和bn剪支,并将原有的vgg模型中的lstm循环层去掉,极大地提高了对字符的识别速度。
[0087]
获得已训练的指定vgg网络之后,可以基于已训练的指定vgg网络对字符识别训练集的识别结果,对ctc算法进行训练。其中,ctc算法负责完成字符对齐操作。
[0088]
具体的,可以将字符识别训练集输入到已训练的指定vgg网络中,并将指定vgg网络的输出特征输入到ctc算法中,对ctc算法进行训练。当ctc算法的损失函数的函数值趋于稳定时,训练结束。
[0089]
最后对已训练的指定vgg网络和已训练的ctc算法进行连接,得到初始字符识别模型。
[0090]
综上所述,轻量级字符识别模型由经过格式转换的初始字符检测模型及初始字符识别模型组成。其中,初始字符检测模型可以为上述第二db模型;初始字符识别模型可以由指定vgg网络及ctc算法组成。
[0091]
在一实施例中,在获得轻量级字符识别模型之后,可以获取待识别图像,并对待识别图像进行预处理。其中,预处理为对待处理图像进行去噪等提高图像质量的操作;其中,
待识别图像可以为银行卡照片及身份证照片等。
[0092]
在一实施例中,电子设备中存储有白平衡算法。其中,所述白平衡算法引用论文《a novel automatic white balance method for digital still cameras》中的算法。电子设备在接收到待识别图像后可以使用白平衡算法对待识别图像进行亮度调节。
[0093]
具体的,白平衡算法可以将待识别图像分成12部分,每部分图像的宽高比为4:3。计算每个图像部分的亮度情况,根据计算结果选出亮度参考点。以亮度参考点的亮度作为亮度基准,对各部分图像进行亮度调整。调整结束后,获得亮度调整后的待识别图像。
[0094]
通过上述措施,提高待识别图像的图像质量,便于电子设备更好的完成字符识别操作。
[0095]
预处理结束后可以将预处理后的图像输入轻量级字符识别模型中,识别结束后获得轻量级字符识别模型输出的目标字符。
[0096]
举例来说,当待识别图像为身份证照片时,可以将身份证照片输入到电子设备中。电子设备在接收到身份证照片后,可以先对身份证照片进行预处理,预处理后将身份证照片输入到格式转换后的初始字符检测模型中,由初始字符检测模型框选出身份证照片的字符区域;框选完成后将字符区域输入到格式转换后的初始字符识别模型中,由初始字符识别模型对上述区域内的字符进行识别。识别结束后,电子设备可以获得轻量级字符识别模型输出的目标字符。此时,目标字符为身份证号、姓名、性别及家庭住址等。
[0097]
在一实施例中,电子设备在获得轻量级字符识别模型输出的目标字符之后,可以通过指定应用场景对应的正则表达式及校验位算法,对目标字符进行信息提取,获得指定应用场景对应的文字识别结果。
[0098]
其中,指定应用场景为上述轻量级字符识别模型的使用场合。
[0099]
举例来说,应用场景可以为图书管理员将图书编码导入到图书管理系统中,此时该应用场景对应的正则表达式及校验位算法可以在目标字符中提取出图书编码信息,并将提取出的图书编码信息录入到图书管理系统中;或者,应用场景可以为社区工作人员统计社区居民的身份证卡号信息,此时该应用场景对应的正则表达式及校验位算法可以在目标字符中提取出居民身份证卡号信息,便于对居民信息进行统一管理。
[0100]
通过使用本技术上述实施例提供的方法所训练出的轻量级字符识别模型规模较小,字符识别精度好;且能够看出将本技术的轻量级字符识别模型应用于服务器中进行字符识别时,极大地提高字符识别的速度。
[0101]
在一实施例中,在获得轻量级字符识别模型之后,可以将轻量级字符识别模型部署至目标设备。其中,目标设备可以为手机和平板等移动终端设备。示例性的,可以使用c 将轻量级字符识别模型部署在目标设备中,使得目标设备可以完成字符识别操作。
[0102]
因轻量级字符识别模型的格式为ncnn框架下的指定格式,所以该轻量级字符识别模型可应用于移动终端设备中。
[0103]
在一实施例中,轻量级字符识别模型在目标设备中所占据资源为8m左右;其中,格式转换后的初始字符检测模型所占据资源为3m左右;格式转换后的初始字符识别模型所占据资源为5m左右。
[0104]
由此看出,本技术中的轻量级字符识别模型减少了对目标设备的资源占用。
[0105]
本技术中通过将目标字符识别模型转化为ncnn框架下的指定格式可以解决,移动
终端设备api不完善,且需分别使用java和oc两套框架将字符识别模型部署到目标设备中,程序繁琐的问题;同时可以解决机器学习模型无法很好的衔接opencv等图像处理框架,和无法支持cuda的问题;极大地降低了字符识别模型的模型大小,使得移动终端设备可以完成字符识别操作。
[0106]
在一实施例中,可以将上述轻量级字符识别模型打包为一安装包,并将安装包发送至目标设备中,使得用户可以在目标设备中安装上述安装包,实现移动设备的字符识别功能。
[0107]
下面详细讲解目标设备进行字符识别的工作流程,为便于介绍,以目标设备是手机为例进行讲解:
[0108]
当用户初次使用手机中的某一应用软件时,需要将用户的基本信息录入到应用软件中。示例性的,当用户初次使用金融软件时,需要将用户的银行卡号录入到金融软件中,以实现将用户的银行卡与金融软件绑定,便于后续查询相应的金融信息。参见图4,此时待识别图像为银行卡照片,用户可以使用手机端拍摄银行卡照片。手机端接收到银行卡照片后使用白平衡算法对照片进行亮度调节,减少拍摄角度对字符识别精度的影响。
[0109]
亮度调整结束后,手机将调整后的银行卡照片输入到轻量级字符识别模型中,由轻量级字符识别模型进行字符识别。具体的,格式转换后的初始字符检测模型先对银行卡照片进行可微分二值化处理,获得如图5所示的银行卡照片所对应的热力图。获得热力图后,可以对上述热力图进行阈值处理筛选出银行卡照片的字符区域,并框选出字符区域。框选结束后可以获得如图6所示的银行卡照片的字符检测结果示意图,图6中在银行卡照片中框选出了字符区域。
[0110]
最后通过连通阈算法计算出上述字符区域的最小外接矩形区域坐标值,并根据上述坐标值对上述字符区域进行裁剪,裁剪为若干张字符识别图片。示例性的,若干张字符识别图片的高度为32帧,宽度为64帧。
[0111]
获得若干张字符识别图片后,由格式转换后的初始字符识别模型对每张图片进行下采样操作,下采样后可以生成对应的概率矩阵,概率矩阵中的每个元素为上述图片中的字符为词表中对应字符的概率,选取概率最大的值所对应的字符作为字符识别结果。其中,轻量级字符识别模型中存储有一词表,词表中包括若干字符,实际进行字符识别时可以计算上述图片中的字符为词表中对应字符的概率;字符识别结果为该字符在词表中的存储标识。示例性的,词表中可以含有5000字符,实际进行字符识别时可以分别计算图片中的字符为图表中第一字符的概率、计算图片中的字符为图表中为第二字符的概率,以此类推。
[0112]
对裁剪后的每张图片识别完毕后,使用解码函数将上述字符识别结果转换为真实的字符串。转换结束后,手机端可以获得用户的银行卡号信息,并将用户的银行卡号录入到金融软件中,实现将用户的银行卡与金融软件绑定,便于后续查询相应的金融信息。
[0113]
在一实施例中,图7为未进行知识蒸馏的初始字符检测模型对银行卡照片的字符检测结果示意图。如图7所示,此时会出现漏检情况,极大地降低了字符识别的准确率。将图7与图6对比后可发现,本技术中采用知识蒸馏操作,极大地提高了字符检测准确率,减少了漏检情况的发生。
[0114]
如图8所示,其为本技术一实施例提供的轻量级字符识别模型的训练装置的框图。参见图8,轻量级字符识别模型的训练装置300可以包括如下模块:
[0115]
训练模块310,用于对若干机器学习模型进行训练,得到初始字符检测模型及初始字符识别模型。
[0116]
构建模块320,用于基于已训练的初始字符检测模型及初始字符识别模型,构建目标字符识别模型。
[0117]
格式转换模块330,用于将目标字符识别模型转换为ncnn框架下的指定格式,获得轻量级字符识别模型。
[0118]
上述装置中各个模块的功能和作用的实现过程具体详见上述轻量级字符识别模型的训练方法中对应步骤的实现过程,在此不再赘述。
[0119]
在本技术所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0120]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0121]
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献