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

OCR模型训练方法、装置、计算机设备、存储介质与流程

2021-10-24 03:54:00 来源:中国专利 TAG:装置 模型 训练 计算机 方法

ocr模型训练方法、装置、计算机设备、存储介质
技术领域
1.本技术涉及ocr技术领域,特别是涉及一种ocr模型训练方法、装置、计算机设备和存储介质。


背景技术:

2.ocr(光学字符识别)技术是将文字图像转化为字符串信息的一个技术。最早ocr识别应用于文档识别,并且其方案是分割出每个字符的图像,然后对每个字符图像进行识别。往后,出现基于文本行图像识别端到端方法,实现了对单行文本框图像直接识别出整个字符串信息。目前,随着神经网络的发展,ocr的识别范围慢慢的从文档图像的字符识别,延伸到了对任意场景下的字符识别;并且也出现了不需要对文本进行分割的完全端对端识别方法。
3.在文档字符识别的情景下,对于现有的深度学习ocr引擎用于识别特殊质量、字体等情况的文档时,需要针对该特殊情况进行训练才能得到极高的字符识别准确率。但这一过程往往需要花费大量人工去对训练图像进行标注,这会消耗非常大的人工成本。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能节省人工标注成本的ocr模型训练方法、装置、计算机设备和存储介质。
5.一种ocr模型训练方法,包括:
6.获取待处理图像,对待处理图像进行文本区域检测,提取得到文本行图像;
7.识别文本行图像中的字符得到文本行字符串,获取文本行字符串中字符的识别置信度和预测字符位置信息;
8.以预测字符位置信息为参考,根据识别置信度对文本行图像进行字符标注,生成文本行图像的训练数据;
9.根据训练数据进行ocr模型训练。
10.在其中一个实施例中,获取待处理图像,对待处理图像进行文本区域检测,提取得到文本行图像,包括:
11.获取待处理图像,对待处理图像进行去噪处理;
12.获取去噪处理后的待处理图像中的文本区域坐标信息;
13.根据文本区域坐标信息得到文本行图像。
14.在其中一个实施例中,根据文本区域坐标信息得到文本行图像,包括:
15.根据文本区域坐标信息对去噪处理后的待处理图像进行切割,得到文本图像;
16.获取文本图像的水平映射特征和垂直映射特征;
17.根据水平映射特征和垂直映射特征,获取文本图像中相应方向的连续白色区域范围;
18.根据连续白色区域范围获取白色边界区域的像素宽度,获取文本行字符串坐标位
置;
19.根据文本行字符串坐标位置和白色边界区域的像素宽度对文本图像进行切割得到文本行图像。
20.在其中一个实施例中,识别文本行图像中的字符得到文本行字符串,获取文本行字符串中字符的识别置信度和预测字符位置信息,包括:
21.对文本行图像进行ocr识别,得到文本行图像中的文本行字符串和每个字符的识别置信度;
22.获取文本行字符串中字符的字符起始位置和字符宽度,作为文本行图像中字符的预测字符位置信息。
23.在其中一个实施例中,获取识别字符串中字符的字符起始位置和字符宽度,包括:
24.对文本行图像进行水平映射,获取文本行图像的水平映射特征;
25.根据水平映射特征,获取文本行图像的黑白色切换的水平像素位置,获取文本行图像中黑色区域起始像素位置和黑色区域像素宽度;
26.获取预设字符像素宽度,根据黑色区域起始像素位置、黑色区域像素宽度、预设字符像素宽度,获取字符的字符起始位置和字符宽度。
27.在其中一个实施例中,以预测字符位置信息为参考,根据识别置信度对文本行图像进行字符标注,包括:
28.根据预测字符位置信息,得到文本行图像的图像宽度;
29.当图像宽度超过预设宽度阈值,对图像宽度超过预设宽度阈值的文本行图像进行切割,得到多张文本行图像,根据识别置信度对多张文本行图像进行字符标注;
30.当图像宽度未超过预设宽度阈值,根据识别置信度对文本行图像进行字符标注。
31.在其中一个实施例中,生成文本行图像的训练数据,包括:
32.根据文本行图像对应的文本行字符串中字符的识别置信度,计算切割后的文本行图像的平均识别置信度,平均识别置信度是指文本行字符串中包含的所有字符对应的识别置信度的平均值;
33.根据文本行图像的平均识别置信度,对文本行图像进行排序;
34.按照排序结果依次选取文本行图像,对识别置信度低于预设置信度阈值的字符,参考预测字符位置信息在选取的文本行图像和文本行字符串中进行标注;
35.参考选取的文本行图像,在文本行字符串中修正被标注的字符,得到修正后的文本行字符串;
36.根据选取的文本行图像和修正后的文本行字符串得到训练数据。
37.在其中一个实施例中,参考选取的文本行图像,在文本行字符串中修正被标注的字符,得到修正后的文本行字符串,包括:
38.参考文本行图像,修正文本行字符串中的被标注字符,判断当前标注字符是否正确,若当前标注字符不正确,修改当前字符,若当前标注字符正确,则跳过当前字符。
39.一种ocr模型训练装置,包括:
40.图像提取模块,用于获取待处理图像,对待处理图像进行文本区域检测,提取得到文本行图像;
41.识别模块,用于识别文本行图像中的字符得到文本行字符串,获取文本行图像中
字符的字符识别置信度和预测字符位置信息;
42.标注模块,用于以预测字符位置信息为参考,根据字符识别置信度对文本行图像进行字符标注,生成文本行图像的训练数据;
43.训练模块,用于根据训练数据进行ocr模型训练。
44.一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
45.获取待处理图像,对待处理图像进行文本区域检测,提取得到文本行图像;
46.识别文本行图像中的字符得到文本行字符串,获取文本行字符串中字符的识别置信度和预测字符位置信息;
47.以预测字符位置信息为参考,根据识别置信度对文本行图像进行字符标注,生成文本行图像的训练数据;
48.根据训练数据进行ocr模型训练。
49.一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
50.获取待处理图像,对待处理图像进行文本区域检测,提取得到文本行图像;
51.识别文本行图像中的字符得到文本行字符串,获取文本行字符串中字符的识别置信度和预测字符位置信息;
52.以预测字符位置信息为参考,根据识别置信度对文本行图像进行字符标注,生成文本行图像的训练数据;
53.根据训练数据进行ocr模型训练。
54.上述ocr模型训练方法、装置、计算机设备和存储介质,通过获取待处理图像,对待处理图像进行文本区域检测提取得到文本行图像,识别文本行图像中的字符得到文本行字符串,以预测字符位置信息为参考,对文本行图像进行字符标注,生成文本行图像的训练数据,最后根据训练数据进行ocr模型训练。本方案实现了在ocr能够通过预测字符位置信息标注可能识别错误的字符,能够准确定位到可能识别错误的字符并进行修正,极大的提高了ocr模型训练过程中校对修正的效率,大大降低了人工校对修订的成本。
附图说明
55.图1为一个实施例中ocr模型训练方法的流程示意图;
56.图2为一个实施例中步骤102的流程示意图;
57.图3为一个实施例中步骤104的流程示意图;
58.图4为一个实施例中步骤106的流程示意图;
59.图5为一个实施例中步骤106进行字符标注的流程示意图;
60.图6为一个实施例中步骤106生成训练数据的流程示意图;
61.图7为一个实施例中步骤608切割前文本行图像的效果图;
62.图8为一个实施例中步骤608切割的第一张文本行图像的效果图;
63.图9为一个实施例中步骤608切割的第二张文本行图像的效果图;
64.图10为一个实施例中ocr模型训练装置的结构框图;
65.图11为一个实施例中计算机设备的内部结构图。
具体实施方式
66.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
67.在一个实施例中,如图1所示,提供了一种ocr模型训练方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方案包括以下步骤:
68.步骤102,获取待处理图像,对待处理图像进行文本区域检测,提取得到文本行图像。
69.具体的,待处理图像是从大量网络上的图像获取到的可供处理的图像。服务器获取到待处理图像,可对待处理图像进行预处理后,对预处理后的待处理图像进行文本区域检测,得到图像中的文本区域,进一步的,服务器提取文本区域中的文本行图像。
70.步骤104,识别文本行图像中的字符得到文本行字符串,获取文本行字符串中字符的识别置信度和预测字符位置信息。
71.本实施例中,服务器通过ocr识别,识别出文本行图像中的字符,得到文本行字符串。识别置信度是表示字符在被识别时的准确率数值,根据这个准确率数值可以判断字符的识别结果是否正确,若一个字符的识别置信度很低,则该字符的识别结果很大可能错误。每一个字符都对应一个识别置信度,识别置信度是ocr在进行字符识别的同时直接生成的。预测字符位置信息是指识别出的字符在文本行图像得到文本行字符串中字符的预测字符位置信息。
72.步骤106,以预测字符位置信息为参考,根据识别置信度对文本行图像进行字符标注,生成文本行图像的训练数据。
73.本实施例中,可预先设定一个置信度阈值,将每一个字符的识别置信度与预设置信度阈值对比,识别置信度低于预设置信度阈值的字符会被标注。具体的,可根据预测字符位置信息找到需要标注的字符在文本行图像和文本行字符串中的具体位置,同时在文本行图像和文本行字符串中进行标注。修正文本行字符串中的标注字符,根据修正后的文本行字符串和文本行图像得到训练数据,训练数据中每张文本行图像和文本行字符串是一一对应的。
74.步骤108,根据训练数据进行ocr模型训练。
75.具体的,训练数据可直接输入ocr模型中进行训练,也可以将训练数据和现有的ocr训练集进行组合后得到整合训练数据文件,将整合训练数据文件输入ocr模型中进行训练。
76.上述ocr模型训练方法通过获取待处理图像,对待处理图像进行文本区域检测提取得到文本行图像,识别文本行图像中的字符得到文本行字符串,以预测字符位置信息为参考,对文本行图像进行字符标注,生成文本行图像的训练数据,最后根据训练数据进行ocr模型训练。本方案实现了在ocr能够通过预测字符位置信息标注可能识别错误的字符,能够准确定位到可能识别错误的字符并进行修正,极大的提高了ocr模型训练过程中校对修正的效率,大大降低了人工校对修订的成本。
77.在一个实施例中,如图2所示,获取待处理图像,对待处理图像进行文本区域检测,
提取得到文本行图像,包括:
78.步骤202,获取待处理图像,对待处理图像进行去噪处理。
79.本实施例中,获取到待处理图像,可对待处理图像进行预处理,其中预处理包括去噪处理,去噪处理包括二值化处理、对比度变化、白平衡等。通过对待处理图像进行去噪处理,可以获得更加清晰的图像,提高了后续图像处理的准确度。
80.步骤204,获取去噪处理后的待处理图像中的文本区域坐标信息。
81.本实施例中,待处理图像中包括了文本区域部分。本实施例中,可通过文本框检测算法来获取去噪处理后的待处理图像中的文本区域坐标信息。文本区域坐标信息标识了待处理图像中的文本区域部分的位置。文本框检测算法可采用opencv、深度学习文本框检测算法等,其中,opencv是一个基于bsd许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在linux、windows、android和mac os操作系统上。
82.步骤206,根据文本区域坐标信息对去噪处理后的待处理图像进行切割,得到文本图像。
83.具体的,文本图像中可能还存在空白的区域,比如段前段后的空白,行与行之间的过宽的间距等,这些空白区域需要切割去,得到供后续处理的文本图像。
84.步骤208,获取文本图像的水平映射特征和垂直映射特征。
85.具体的,可通过水平垂直映射算法获取文本图像的水平映射特征,通过垂直映射算法获取文本图像的垂直映射特征。
86.步骤210,根据水平映射特征和垂直映射特征,获取文本图像中相应方向的连续白色区域范围。
87.具体的,根据水平映射特征获取文本图像中上下边界的连续白色区域范围,通过垂直映射特征获取文本图像中左右边界的连续白色区域范围。
88.步骤212,根据连续白色区域范围获取白色边界区域的像素宽度,获取文本行字符串坐标位置。
89.步骤214,根据文本行字符串坐标位置和白色边界区域的像素宽度对文本图像进行切割得到文本行图像。
90.具体的,文本区域坐标信息是一个较为粗略的位置信息,根据文本区域坐标信息得到的文本图像是一个粗略范围的图像,需要通过结合水平、垂直映射特征,得到更精确的文本行字符串坐标位置,进而获得切割范围更准确的文本行图像。
91.本实施例中,在步骤206对待处理图像进行切割,得到文本图像之后,可对文本图像进行切割调整。具体的,可获取文本图像的水平映射特征和垂直映射特征对文本图像进行切割调整。切割调整后得到的文本行图像,可使得文本行字符尽可能的占据整个文本行图像。在一个实施例中,可不断对去噪处理后的待处理图像进行切割和切割调整,直到得到文本行图像。
92.在一个实施例中,如图3所示,识别文本行图像中的字符得到文本行字符串,获取文本行字符串中字符的识别置信度和预测字符位置信息,包括:
93.步骤302,对文本行图像进行ocr识别,得到文本行图像中的文本行字符串和每个字符的识别置信度。
94.具体的,文本行字符串是ocr识别文本行图像之后输出的一个文本数据,文本行图
像与文本行字符串是一一对应的,文本行字符串中每个字符的识别置信度能够在ocr识别文本行图像之后得到。
95.步骤304,对文本行图像进行水平映射,获取文本行图像的水平映射特征。
96.本实施例中,获取文本行图像的水平映射特征的目的是为了识别出文本行图像中黑色像素和白色像素,黑色像素即为存在字符的区域。
97.步骤306,根据水平映射特征,获取文本行图像的黑白色切换的水平像素位置,获取文本行图像中黑色区域起始像素位置和黑色区域像素宽度。
98.本实施例中,获取文本行图像的黑白色切换的水平像素位置是为了确定字符起始位置,获取文本行图像中黑色区域起始像素位置和黑色区域像素宽度是为了确定字符宽度,黑色区域也就是文本行图像中有字符的区域。
99.步骤308,获取预设字符像素宽度,根据黑色区域起始像素位置、黑色区域像素宽度、预设字符像素宽度,获取字符的字符起始位置和字符宽度。
100.具体的,获取预设字符像素宽度之前,需要对文本行字符串中的每一个字符进行字符类型分类,类型具体包括中文、英文、数字、标点符号等。对每种类型的字符分别设定预设字符像素宽度,即为每种类型对应一个预设字符像素宽度。最后根据黑色区域起始像素位置、黑色区域像素宽度、字符类型和预设字符像素宽度获取字符的粗略字符起始位置和字符宽度,对粗略字符宽度超出或小于该字符类型对应的预设字符像素宽度的字符进行逻辑判断矫正,得到字符起始位置和字符宽度,作为文本行图像中字符的预测字符位置信息。
101.在一个实施例中,如图4所示,以预测字符位置信息为参考,根据识别置信度对文本行图像进行字符标注,包括:
102.步骤402,根据预测字符位置信息,得到文本行图像的图像宽度。
103.具体的,预测字符位置信息中包括字符起始位置和字符宽度,根据文本行图像中的最后一个字符的预测字符位置信息得到图像宽度。
104.步骤404,当图像宽度超过预设宽度阈值,对图像宽度超过预设宽度阈值的文本行图像进行切割,得到多张文本行图像,根据识别置信度对多张文本行图像进行字符标注。当图像宽度未超过预设宽度阈值,根据识别置信度对文本行图像进行字符标注。
105.具体的,若切割得到的多张文本行图像中还存在图像宽度超过预设宽度阈值的文本行图像,则对该文本行图像进行再次切割,直到所有切割后的文本行图像的图像宽度均不超过预设宽度阈值。预设宽度阈值根据实际情况进行设定,也可以不设定,若不设定,则对所有的文本行图像不做切割处理,直接进行标注。
106.具体的,当图像宽度超过预设宽度阈值,对所述图像宽度超过预设宽度阈值的文本行图像image_s进行切割,得到多张文本行图像(例如image_s_1和image_s_2),切割后得到的所有文本行图像的图像宽度均要小于等于预设宽度阈值。例如,文本行图像image_s切割成两张文本行图像image_s_1和文本行图像image_s_2,此时若image_s_1和image_s_2的图像宽度都在预设宽度阈值以内,则不再做切割,若image_s_1的图像宽度在预设宽度阈值以内,但image_s_2的图像宽度仍大于预设宽度阈值,则对image_s_2按照预设宽度阈值继续切割,直到切割后的文本图像的图像宽度全部小于预设宽度阈值。参考切割后得到的文本行图像image_s_1和image_s_2,对原文本行图像image_s对应的文本行字符串chars也进行切割,对文本行图像image_s_1和image_s_2重新计算字符起始位置、重新分配字符宽度
和识别置信度(字符宽度和识别置信度是与每个字符一一对应的,所以不需要重新计算处理,只需重新分配以对应切割后的文本行图像),得到与文本行图像image_s_1对应的文本行字符串chars_1和字符起始位置,得到与文本行图像image_s_2对应的文本行字符串chars_2和字符起始位置。
107.本实施例中,通过根据预测字符位置信息得到文本行图像的图像宽度,对图像宽度超过预设宽度阈值的文本行图像进行切割。能够将宽度过大的文本行图像处理在一个设定的宽度范围内,方便后续处理。
108.在一个实施例中,如图5所示,生成文本行图像的训练数据,包括:
109.步骤502,根据文本行图像对应的文本行字符串中字符的识别置信度,计算切割后的文本行图像的平均识别置信度,平均识别置信度是指文本行字符串中包含的所有字符对应的识别置信度的平均值。
110.本实施例中,通过ocr识别可以得到每个字符的识别置信度,文本行字符串中包含多个字符,根据文本行字符串中每个字符的识别置信度可以计算得到文本行字符串的平均识别置信度,其中,平均识别置信度是指文本行字符串中包含的所有字符对应的识别置信度的平均值。
111.步骤504,根据文本行图像的平均识别置信度,对文本行图像进行排序。
112.具体的,根据文本行图像的平均识别置信度,对文本行图像进行升序排序,平均识别置信度越低,说明该文本行字符串可能被标注的字符就越多,将平均识别置信度低的文本行字符串排在前面,从而能够优先处理较多的标注字符。
113.步骤506,按照排序结果依次选取文本行图像,对识别置信度低于预设置信度阈值的字符,参考预测字符位置信息在选取的文本行图像和文本行字符串中进行标注。
114.具体的,按照升序排序结果依次选取文本行图像,对每张文本行图像中,识别置信度低于预设置信度阈值的字符,参考预测字符位置信息在选取的文本行图像和文本行字符串中进行标注,文本行图像中的标注字符用于参考,文本行字符串中的标注字符用于直接编辑修正。
115.步骤508,参考选取的文本行图像,在文本行字符串中修正被标注的字符,得到修正后的文本行字符串。
116.具体的,在一个实施例中,参考选取的文本行图像,在文本行字符串中修正被标注的字符,判断当前标注字符是否正确,若当前标注字符不正确,修改当前字符,若当前标注字符正确,则跳过当前字符,最后得到修正后的文本行字符串。
117.步骤510,根据选取的文本行图像和修正后的文本行字符串得到训练数据。
118.具体的,训练数据中包括多张文本行图像和多个修正后的文本行字符串,每张文本行图像和每个修正后的文本行字符串一一对应。
119.本实施例中,通过计算文本行字符串的平均识别置信度,对文本行图像进行升序排序,然后按照排序依次选取文本行图像进行字符标注,最后修正被标注的字符。能够优先处理字符标注较多的文本行图像,达到提高ocr模型训练过程中校对修正效率的目的。
120.在一个实施例中,如图6所示,提供了一种ocr模型训练方法,该方法以应用于服务器进行举例说明,该方法包括:
121.步骤602,获取待处理图像,对待处理图像进行文本区域检测,提取得到文本图像。
122.具体的,通过互联网等途径获取待处理图像,对待处理图像进行二值化、对比度变化、白平衡等去噪处理,以获得更加清晰的待处理图像。然后对待处理图像通过opencv、深度学习文本框检测算法进行文本区域检测,获取待处理图像中的文本区域坐标信息。根据文本区域坐标信息对待处理图像进行切割,得到如图7所示的文本行图像“二、申购和赎回的开放日及时间”。
123.步骤604,对文本行图像进行ocr识别,得到文本行图像中的文本行字符串和每个字符的识别置信度。
124.具体的,使用预设的crnn ocr识别引擎服务对所述文本行图像进行ocr识别,在识别之前,要先将文本行图像进行base64编码传入至crnn ocr识别引擎服务中,然后crnn ocr识别引擎服务对接收到的base64图像编码信息进行解码,重新获得文本行图像。使用opencv代码对文本行图像等比缩放至图像高度为32像素,得到缩放的文本行图像。再次使用crnn ocr识别引擎服务对缩放的文本行图像进行识别,获得文本行图像中的文本行字符串、以及各个识别字符所对应的识别置信度,识别置信度能够从ocr识别引擎服务直接输出得到。上述缩放文本行图像的过程只是一种特定的处理方式,仅仅是在对文本行图像的图像高度有要求的情况下采用,所述32像素可以根据实际情况设置成任意预设值,在对图像高度没有要求时,可直接使用文本行图像进行后续处理操作。
125.进一步的,获取识别的文本行字符串中字符的字符起始位置和字符宽度,包括:对文本行图像进行水平映射,获取文本行图像的水平映射特征。根据所述水平映射特征,获取文本行图像的黑白色切换的水平像素位置,获取所述文本行图像中黑色区域起始像素位置和黑色区域像素宽度。获取预设字符像素宽度,根据所述黑色区域起始像素位置、黑色区域像素宽度、预设字符像素宽度,获取字符的字符起始位置和字符宽度。具体的,根据黑色区域起始像素位置和黑色区域像素宽度能够获取文本行图像中原字符的字符位置和字符宽度,然后结合预设字符像素宽度,得到生成字符的字符起始位置和字符宽度。
126.步骤606,获取文本行字符串中字符的字符起始位置和字符宽度,作为文本行图像中字符的预测字符位置信息。
127.具体的,获取预设字符像素宽度之前,需要对文本行字符串中的每一个字符进行字符类型分类,类型具体包括中文、英文、数字、标点符号等。对每种类型的字符分别设定预设字符像素宽度,即为每一种字符类型对应一个预设字符像素宽度。最后根据黑色区域起始像素位置、黑色区域像素宽度、字符类型和预设字符像素宽度获取字符的粗略字符起始位置和字符宽度,对粗略字符宽度超出或小于该字符类型对应的预设字符像素宽度的字符进行逻辑判断矫正,得到字符起始位置和字符宽度,作为所述文本行图像中字符的预测字符位置信息。
128.步骤608,以预测字符位置信息为参考,根据识别置信度对文本行图像进行字符标注,生成文本行图像的训练数据。
129.具体的,根据所述预测字符位置信息,得到所述文本行图像的图像宽度,图像宽度是根据文本行图像中的文本行字符串中每个字符的字符起始位置和字符宽度相加得到,字符起始位置和字符宽度相加得到的最大值就是所述文本行图像的图像宽度。
130.举例说明,预设宽度阈值为280,如图7所示的文本行图像image_s识别出的文本行字符串“申购和赎回的开放日及时间”,和文本行字符串中每个字符的字符起始位置
position_s和字符宽度position_w如下所示:
131.position_s:[4,35,73,106,139,169,205,240,271,306,337,367,403,438]
[0132]
position_w:[31,13,33,33,31,35,35,31,35,31,31,35,35,34]
[0133]
其中,图7中,字符“二”的字符起始位置position_s是4,字符宽度position_w是31;字符“、”的字符起始位置position_s是35,字符宽度position_w是13;以此类推,每个字符都对应一组字符起始位置position_s和字符宽度position_w。该文本行图像image_s的图像宽度就是字符“间”的字符起始位置position_s和字符宽度position_w相加,即图像宽度是438 34=472。
[0134]
进一步的,对该文本行图像image_s进行切割,切割位置在字符“的”和字符“开”之间,因为字符“的”的字符起始位置position_s和字符宽度position_w之和是271,而字符“开”的字符起始位置position_s和字符宽度position_w之和是306,字符“的”就是图像宽度小于280的最大字符位置。对该文本行图像image_s使用切片算法进行切割得到文本行图像image_s_1和image_s_2,并对原文本行图像image_s对应的文本行字符串chars做对应切割得到文本行字符串“二、申购和赎回的”(如图8所示)和文本行字符串“开放日及时间”(如图9所示),重新计算每个字符的字符起始位置position_s,重新分配每个字符的字符宽度position_w,得到如图8和图9所示的切割结果图像。
[0135]
图8示出了文本行图像对应的文本行字符串,该文本行字符串中每个字符的字符起始位置position_s_1和字符宽度position_w如下所示:
[0136]
position_s_1:[4,35,73,106,139,169,205,240]
[0137]
position_w:[31,13,33,33,31,35,35,31]
[0138]
文本行图像image_s_1是切割之后的第一张文本行图像,因此字符起始位置position_s无需重新计算,只按照字符char数量进行分配得到position_s_1。
[0139]
文本行图像image_s_2中的文本字符串如图9所示,对应的文本行字符串中每个字符的字符起始位置position_s_2和字符宽度position_w如下所示:
[0140]
position_s_2:[0,35,66,96,132,167]
[0141]
position_w:[35,31,31,35,35,34]
[0142]
文本行图像image_s_2是切割之后的第二张文本行图像,因此字符起始位置position_s需要重新计算得到position_s_2。此时文本行图像image_s_2的图像宽度是字符“间”的字符起始位置position_s_2和字符宽度position_w相加,即图像宽度是167 34=201,即文本行图像image_s_2的图像宽度小于预设宽度阈值280,所以不再做进一步切割,本次切割得到两张文本行图像image_s_1和image_s_2。
[0143]
进一步的,根据文本行图像对应的文本行字符串中的字符的识别置信度confidence_chars,计算所述文本行图像的平均识别置信度confidence_m,所述平均置信度confidence_m是指文本行字符串中包含的所有的字符识别置信度的平均值,即confidence_m=mean(confidence_chars)。根据所述文本行字符串的平均识别置信度confidence_m,对文本行图像进行升序排序,平均识别置信度confidence_m越低的文本行字符串对应的文本行图像排序越靠前,这是为了在后续的标注字符修正时,优先处理平均识别置信度confidence_m低的文本行图像image_s,因为当文本行字符串的平均识别置信度confidence_m越低,该文本行字符串中被标注的字符就越多,出现识别错误的可能行就
越大。
[0144]
进一步的,最后根据识别置信度对所述切割并排序后的多张文本行图像进行字符标注。
[0145]
具体的,对识别置信度低于预设置信度阈值z的字符,参考预测字符位置信息在文本行图像和文本行字符串中进行标注,在文本行字符串中的标注是为了后续对标注字符直接做修正,在文本行图像中的标注是为了后续在做标注字符修正时可直接参考图像中的对应字符。参考所述文本行图像image_s,修正所述文本行字符串chars中的被标注字符,判断当前标注字符是否正确,若当前标注字符不正确,修改当前字符,若当前标注字符正确,则跳过当前字符。根据所述文本行图像和修正后的文本行字符串得到训练数据。
[0146]
步骤610,根据训练数据进行ocr模型训练。
[0147]
具体的,所述训练数据包括文本行图像和与其对应的文本行字符串。将所述训练数据与ocr模型的内置训练集进行组合,得到整合训练数据文件,将整合训练数据文件输入到ocr模型中进行优化训练。多数情况下,现有的ocr模型都会有内置训练集,将内置训练集和所述训练数据整合,能够使最终的训练数据复杂性更高,这样进行优化训练的效果会更好。
[0148]
上述ocr模型训练方法中,通过识别、切割、标注、训练一体化流程,解决了目前ocr引擎无法输出位置信息的问题,以便在图像切割的过程中,能较好的对文本行图像进行切割,并且能够准确定位到可能识别错误的字符;还实现了标注、修正、训练流程的一体化,实现了对可能自动识别错误的字符进行自动标注、根据识别错误的可能性大小进行自动排序,极大的提高了校对修正的效率,直接提高了ocr模型训练的效率。
[0149]
应该理解的是,虽然图1至图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1至图6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0150]
在一个实施例中,如图10所示,提供了一种ocr模型训练装置,包括:图像提取模块1001、识别模块1002、标注模块1003和训练模块1004,其中:
[0151]
图像提取模块1001,用于获取待处理图像,对待处理图像进行文本区域检测,提取得到文本行图像;
[0152]
识别模块1002,用于识别文本行图像中的字符得到文本行字符串,获取文本行图像中字符的字符识别置信度和预测字符位置信息;
[0153]
标注模块1003,用于以预测字符位置信息为参考,根据字符识别置信度对文本行图像进行字符标注,生成文本行图像的训练数据;
[0154]
训练模块1004,用于根据训练数据进行ocr模型训练。
[0155]
在一个实施例中,图像提取模块1001包括:
[0156]
预处理模块,用于获取待处理图像,对待处理图像进行去噪处理;
[0157]
文本区域提取模块,用于获取去噪处理后的待处理图像中的文本区域坐标信息;
[0158]
文本行获取模块,用于根据文本区域坐标信息得到文本行图像。
[0159]
在一个实施例中,文本行获取模块包括:
[0160]
文本获取模块,用于根据文本区域坐标信息对去噪处理后的待处理图像进行切割,得到文本图像;
[0161]
映射模块,用于获取文本图像的水平映射特征和垂直映射特征;
[0162]
白色区域获取模块,用于根据水平映射特征和垂直映射特征,获取文本图像中相应方向的连续白色区域范围;
[0163]
字符串获取模块,用于根据连续白色区域范围获取白色边界区域的像素宽度,获取文本行字符串坐标位置;
[0164]
白色区域切割模块,用于根据文本行字符串坐标位置和白色边界区域的像素宽度对文本图像进行切割得到文本行图像。
[0165]
在一个实施例中,识别模块1002包括:
[0166]
字符识别模块,用于对文本行图像进行ocr识别,得到文本行图像中的文本行字符串和每个字符的识别置信度;
[0167]
字符信息获取模块,用于获取文本行字符串中字符的字符起始位置和字符宽度,作为文本行图像中字符的预测字符位置信息。
[0168]
在一个实施例中,字符信息获取模块包括:
[0169]
水平映射模块,用于对文本行图像进行水平映射,获取文本行图像的水平映射特征;
[0170]
黑色区域获取模块,用于根据水平映射特征,获取文本行图像的黑白色切换的水平像素位置,获取文本行图像中黑色区域起始像素位置和黑色区域像素宽度;
[0171]
位置宽度获取模块,用于获取预设字符像素宽度,根据黑色区域起始像素位置、黑色区域像素宽度、预设字符像素宽度,获取字符的字符起始位置和字符宽度。
[0172]
在一个实施例中,标注模块1003包括:
[0173]
图像宽度提取模块,用于根据预测字符位置信息,得到文本行图像的图像宽度。
[0174]
切割判定模块,用于当图像宽度超过预设宽度阈值,对图像宽度超过预设宽度阈值的文本行图像进行切割,当图像宽度未超过预设宽度阈值,不进行切割。
[0175]
图像排序模块,用于根据文本行图像对应的文本行字符串中字符的识别置信度,计算文本行图像的平均识别置信度,平均置信度是指文本行字符串中包含的所有字符对应的识别置信度的平均值;根据文本行图像的平均识别置信度,对文本行图像进行排序。
[0176]
字符标注模块,按照排序结果依次选取文本行图像,对识别置信度低于预设置信度阈值的字符,参考预测字符位置信息在选取的文本行图像和文本行字符串中进行标注。
[0177]
字符修正模块,用于参考文本行图像,在文本行字符串中修正被标注的字符,得到修正后的文本行字符串;参考文本行图像,修正文本行字符串中的被标注字符,判断当前标注字符是否正确,若当前标注字符不正确,修改当前字符,若当前标注字符正确,则跳过当前字符。
[0178]
数据生成模块,用于根据文本行图像和修正后的文本行字符串得到训练数据。
[0179]
关于ocr模型训练装置的具体限定可以参见上文中对于ocr模型训练方法的限定,在此不再赘述。上述ocr模型训练装置中的各个模块可全部或部分通过软件、硬件及其组合
来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0180]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储训练数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种ocr模型训练方法。
[0181]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种ocr模型训练方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0182]
本领域技术人员可以理解,图11中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0183]
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0184]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0185]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read

only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0186]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0187]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜