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

图像处理方法、装置、电子设备和计算机可读存储介质与流程

2022-06-01 13:09:38 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种图像处理方法、装置、电子 设备、计算机可读存储介质和计算机程序产品。


背景技术:

2.随着计算机技术的发展,计算机视觉技术在零售、制造业、医疗、自动驾 驶和农业等各种领域得到了广泛的应用。光学字符识别(optical characterrecognition,ocr)是计算机视觉技术中的重要分支,ocr是指对文本资料的图 像文件进行分析识别处理,获取文字及版面信息的过程,即将图像中的文字进 行识别,得到文本识别结果。然而,目前光学字符识别处理过程中的效率较低。


技术实现要素:

3.本技术实施例提供了一种图像处理方法、装置、电子设备、计算机可读存 储介质和计算机程序产品,可以提高图像处理的效率。
4.一种图像处理方法,包括:
5.确定待处理图像中的若干个字符区域;
6.通过第一处理线程,对字符区域进行字符识别处理中的预处理,获得预处 理结果;
7.通过第二处理线程,对预处理结果进行字符识别处理中的推理处理,获得 推理结果;
8.通过第三处理线程,对推理结果进行字符识别处理中的后处理,得到待处 理图像的字符识别结果;
9.其中,第二处理线程,与第一处理线程和第三处理线程中的至少一个并行。
10.一种图像处理装置,包括:
11.字符区域确定模块,用于确定待处理图像中的若干个字符区域;
12.预处理模块,用于通过第一处理线程,对字符区域进行字符识别处理中的 预处理,获得预处理结果;
13.推理模块,用于通过第二处理线程,对预处理结果进行字符识别处理中的 推理处理,获得推理结果;
14.后处理模块,用于通过第三处理线程,对推理结果进行字符识别处理中的 后处理,得到待处理图像的字符识别结果;
15.其中,第二处理线程,与第一处理线程和第三处理线程中的至少一个并行。
16.一种电子设备,包括存储器和处理器,存储器存储有计算机程序,处理器 执行计算机程序时实现以下步骤:
17.确定待处理图像中的若干个字符区域;
18.通过第一处理线程,对字符区域进行字符识别处理中的预处理,获得预处 理结
果;
19.通过第二处理线程,对预处理结果进行字符识别处理中的推理处理,获得 推理结果;
20.通过第三处理线程,对推理结果进行字符识别处理中的后处理,得到待处 理图像的字符识别结果;
21.其中,第二处理线程,与第一处理线程和第三处理线程中的至少一个并行。
22.一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器 执行时实现以下步骤:
23.确定待处理图像中的若干个字符区域;
24.通过第一处理线程,对字符区域进行字符识别处理中的预处理,获得预处 理结果;
25.通过第二处理线程,对预处理结果进行字符识别处理中的推理处理,获得 推理结果;
26.通过第三处理线程,对推理结果进行字符识别处理中的后处理,得到待处 理图像的字符识别结果;
27.其中,第二处理线程,与第一处理线程和第三处理线程中的至少一个并行。
28.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实 现以下步骤:
29.确定待处理图像中的若干个字符区域;
30.通过第一处理线程,对字符区域进行字符识别处理中的预处理,获得预处 理结果;
31.通过第二处理线程,对预处理结果进行字符识别处理中的推理处理,获得 推理结果;
32.通过第三处理线程,对推理结果进行字符识别处理中的后处理,得到待处 理图像的字符识别结果;
33.其中,第二处理线程,与第一处理线程和第三处理线程中的至少一个并行。
34.上述图像处理方法、装置、电子设备、计算机可读存储介质和计算机程序 产品,对于待处理图像中的若干个字符区域,通过第一处理线程对字符区域进 行字符识别处理中的预处理,通过第二处理线程对预处理结果进行推理处理, 通过第三处理线程对推理结果进行后处理,得到待处理图像的字符识别结果, 第二处理线程与第一处理线程和第三处理线程中的至少一个并行。在图像处理 过程中,字符识别处理中的预处理、推理处理和后处理分别通过不同的处理线 程执行,且执行推理处理的线程,与执行预处理的线程和执行后处理的线程中 的至少一个线程并行,从而实现了字符识别处理中的并行处理,有利于提高图 像处理效率。
附图说明
35.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还
可以根据这些附图获得其他的附图。
36.图1为一个实施例中图像处理方法的应用环境图;
37.图2为一个实施例中图像处理方法的流程图;
38.图3为另一个实施例中图像处理方法的流程图;
39.图4为一个实施例中字符识别处理耗时示意图;
40.图5为一个实施例中顺序执行耗时示意图;
41.图6为一个实施例中流水线执行耗时示意图;
42.图7为一个实施例中字符识别处理平均耗时示意图;
43.图8为另一个实施例中字符识别处理平均耗时示意图;
44.图9为一个实施例中图像处理装置的结构框图;
45.图10为一个实施例中电子设备的内部结构图;
46.图11为另一个实施例中电子设备的内部结构图。
具体实施方式
47.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本技术,并不用于限定本技术。
48.本技术实施例提供的图像处理方法,可以应用于如图1所示的应用环境中。 其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务 器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在 云上或其他网络服务器上。终端102可以将待处理图像通过网络发送至服务器 104,服务器104接收到待处理图像后,可以确定待处理图像中的若干个字符区 域,服务器104对于待处理图像中的若干个字符区域,通过第一处理线程对字 符区域进行字符识别处理中的预处理,通过第二处理线程对预处理结果进行推 理处理,通过第三处理线程对推理结果进行后处理,得到待处理图像的字符识 别结果,第二处理线程与第一处理线程和第三处理线程中的至少一个并行。服 务器104还可以将待处理图像的字符识别结果返回至终端102。此外,图像处理 方法还可以由服务器104或终端102单独实现,即由服务器104单独实现图像 处理方法,或由终端102单独实现图像处理方法。
49.其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、 平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能 电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手 环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服 务器集群来实现。
50.在一个实施例中,如图2所示,提供了一种图像处理方法,以该方法应用 于图1中的服务器或终端为例进行说明,包括以下步骤:
51.步骤202,确定待处理图像中的若干个字符区域。
52.其中,待处理图像是需要进行处理的图像,具体可以为需要进行字符识别 处理的图像。待处理图像可以由终端拍摄得到,待处理图像中存在文本,通过 对待处理图像进行字符识别处理,可以从待处理图像中识别出文本。字符区域 是待处理图像中检测到存在字符的区域,在具体应用中,字符区域可以为外接 矩形框,以框示出图像中的字符。待处理图
像中可以存在若干个字符区域,从 而可以基于字符区域进行字符识别,以从待处理图像中识别出文本。
53.具体地,服务器可以确定待处理图像中的若干个字符区域,具体实现时, 服务器可以获取待处理图像,并对待处理图像进行字符检测,从而从待处理图 像中检测出若干个字符区域,实现对待处理图像中字符的定位,具体可以通过 外接矩形框的形式进行标示。此外,服务器也可以直接获取待处理图像中的字 符区域,对待处理图像进行字符区域检测的处理可以预先实现,服务器直接获 取待处理图像中的若干个字符区域,以进行字符识别处理。
54.步骤204,通过第一处理线程,对字符区域进行字符识别处理中的预处理, 获得预处理结果。
55.其中,线程是操作系统能够进行运算调度的最小单位。第一处理线程用于 执行字符识别处理中的预处理。字符识别处理可以为ocr处理,旨在通过计算 机视觉技术自动提取并识别目标图像或视频中的文字,是目前计算机视觉领域 应用最广泛的技术之一。预处理的具体处理可以根据字符识别处理所采用的算 法对应确定,具体可以包括根据字符区域坐标在原图裁剪出文字区域、尺寸归 一化、取值归一化、二值化处理等各种处理。
56.具体地,服务器可以通过第一处理线程,对待处理图像中字符区域进行字 符识别处理中的预处理,即通过第一处理线程反复执行字符识别处理中的预处 理步骤,以对待处理图像中的若干个字符区域分别进行预处理,得到预处理结 果。
57.步骤206,通过第二处理线程,对预处理结果进行字符识别处理中的推理处 理,获得推理结果。
58.其中,推理处理是对预处理结果进行字符识别的具体识别过程,如可以通 过预先训练的人工神经网络模型对预处理结果进行字符识别。例如,可以通过 cnn(convolutional neural network,卷积神经网络)、rnn(recurrent neuralnetwork,递归神经网络)、lstm(long short term memory,长短期记忆)等 各种模型实现字符识别处理中的推理处理,得到推理结果。
59.具体地,服务器可以通过第二处理线程获取由第一处理线程处理得到的预 处理结果,并由第二处理线程对预处理结果进行字符识别处理中的推理处理, 以利于预处理结果进行字符推理,得到推理结果。
60.步骤208,通过第三处理线程,对推理结果进行字符识别处理中的后处理, 得到待处理图像的字符识别结果;其中,第二处理线程,与第一处理线程和第 三处理线程中的至少一个并行。
61.其中,后处理的具体处理可以根据字符识别处理所采用的算法对应确定, 具体可以包括遍历模型输出概率向量、字典映射等各种处理。字符识别结果是 从待处理图像中进行字符识别处理后得到的处理结果,具体可以为待处理图像 中的文本。第二处理线程,与第一处理线程和第三处理线程中的至少一个并行。 具体地,第二处理线程可以与第一处理线程并行,即第一处理线程进行预处理 的同时,第二处理线程对第一处理线程得到的预处理结果进行推理处理。第二 处理线程可以与第三处理线程并行,即第二处理线程进行推理处理的同时,第 三处理线程对第二处理线程得到的推理处理结果进行后处理。第一处理线程、 第二处理线程和第三处理线程可以均并行执行,即同时通过第一处理线程执行 预处
理,通过第二处理线程执行推理处理,通过第三处理线程执行后处理,从 而可以实现字符处理的流水线处理方式,有利于提高图像处理效率。
62.具体地,服务器可以通过第三处理线程,对第二处理线程进行推理处理得 到的推理结果进行后处理,得到待处理图像的字符识别结果。第一处理线程、 第二处理线程和第三处理线程为不同的线程,第二处理线程可以与第二处理线 程、第三处理线程中的至少一个线程并行处理,从而提高图像的处理效率。
63.上述图像处理方法中,对于待处理图像中的若干个字符区域,通过第一处 理线程对字符区域进行字符识别处理中的预处理,通过第二处理线程对预处理 结果进行推理处理,通过第三处理线程对推理结果进行后处理,得到待处理图 像的字符识别结果,第二处理线程与第一处理线程和第三处理线程中的至少一 个并行。在图像处理过程中,字符识别处理中的预处理、推理处理和后处理分 别通过不同的处理线程执行,且执行推理处理的线程,与执行预处理的线程和 执行后处理的线程中的至少一个线程并行,从而实现了字符识别处理中的并行 处理,有利于提高图像处理效率。
64.在一个实施例中,如图3所示,通过第一处理线程,对字符区域进行字符 识别处理中的预处理,获得预处理结果,包括:
65.步骤302,通过第一处理线程,对从字符区域序列中按序获得批量处理数量 的字符区域进行字符识别处理中的预处理,获得批量预处理结果;字符区域序 列,是通过对字符区域按照区域大小进行排序得到的。
66.其中,字符区域序列是通过对字符区域按照区域大小进行排序得到的。在 待处理图像可以检测出多个字符区域,各个字符区域的大小不一。对于字符检 测框而言,字符检测框的高度相同,但宽度可以不同,即字符数量越多的区域, 对应的字符检测框的宽度越大。字符区域的区域大小可以指字符区域的宽度, 具体可以按照字符区域的宽度大小,将待处理图像中的各字符区域进行排序, 得到字符区域序列。例如,可以按照区域大小从小到达进行排序,或者按照区 域大小从大到小进行排序,得到字符区域序列。批量处理数量是指在对字符区 域进行批量处理时,每一次批量处理时批量处理的字符区域的数量,可以认为 是批量大小。批量处理数量可以根据实际需要进行设置,以确保图像处理的稳 定性且提高处理效率。批量预处理结果为对批量处理数量的字符区域进行预处 理,对应获得的预处理结果。
67.具体地,服务器可以通过第一处理线程,对从字符区域序列中按序获得批 量处理数量的字符区域,并对获得的字符区域批量进行字符识别处理中的预处 理,获得批量预处理结果。在具体应用中,在确定待处理图像中的若干个字符 区域后,可以按照各字符区域的区域大小进行排序,得到字符区域序列。服务 器可以通过第一处理线程,从字符区域序列中按序连续获取批量处理数量的字 符区域,从而得到需要进行批量预处理的字符区域,服务器通过第一处理线程 对获得的字符区域批量进行预处理,得到批量预处理结果。
68.进一步地,通过第二处理线程,对预处理结果进行字符识别处理中的推理 处理,获得推理结果,包括:
69.步骤304,通过第二处理线程,对批量预处理结果进行字符识别处理中的推 理处理,获得批量推理结果。
70.具体地,对于第一处理线程对字符区域进行批量预处理,得到的批量预处 理结
果,服务器可以通过第二处理线程对批量预处理结果进行批量推理处理, 获得批量推理结果。
71.进一步地,通过第三处理线程,对推理结果进行字符识别处理中的后处理, 得到待处理图像的字符识别结果,包括:
72.步骤306,通过第三处理线程,对批量推理结果进行字符识别处理中的后处 理,得到待处理图像的字符识别结果。
73.具体地,对于第二处理线程对批量预处理结果进行批量推理处理,得到的 批量推理结果,服务器可以通过第三处理线程,对批量推理结果进行字符识别 处理中的后处理,得到待处理图像的字符识别结果。
74.本实施例中,对于字符区域按照区域大小进行排序得到的字符区域序列, 从字符区域序列中获取批量处理数量的字符区域,批量进行字符识别处理,可 以对待处理图像中的字符区域进行批量字符识别处理,能够减少字符识别处理 的次数,提高图像处理效率。
75.在一个实施例中,通过第一处理线程,对从字符区域序列中按序获得批量 处理数量的字符区域进行字符识别处理中的预处理,获得批量预处理结果,包 括:通过第一处理线程,从字符区域序列中按序获得批量处理数量的批量字符 区域;通过第一处理线程,对批量字符区域分别进行字符识别处理中的预处理, 得到批量字符区域对应的预处理结果;通过第一处理线程,将批量字符区域对 应的预处理结果进行数据扩展处理,获得批量预处理结果。
76.其中,批量处理数量是指在对字符区域进行批量处理时,每一次批量处理 时批量处理的字符区域的数量,可以认为是批量大小。批量处理数量可以根据 实际需要进行设置,以确保图像处理的稳定性且提高处理效率。批量字符区域 是批量处理数量的字符区域组成的批量数据。
77.具体地,服务器通过第一处理线程,获取对字符区域按照区域大小进行排 序得到的字符区域序列,并从字符区域序列中按序获得批量处理数量的批量字 符区域。得到批量字符区域后,服务器通过第一处理线程,对批量字符区域分 别进行字符识别处理中的预处理,得到批量字符区域对应的预处理结果。具体 可以对批量字符区域中的各字符区域,分别进行字符识别处理中的预处理,根 据各字符区域的预处理结果,得到批量字符区域对应的预处理结果。在第二处 理线程进行推理处理时,需要确保推理处理的数据大小统一,而批量字符区域 对应的预处理结果的数据大小,与各自对应的字符区域的大小一致,此时需要 对批量字符区域对应的预处理结果进行数据扩展,以使批量字符区域对应的预 处理结果的数据大小统一。具体由服务器通过第一处理线程,将批量字符区域 对应的预处理结果进行数据扩展处理,获得批量预处理结果。
78.具体实现时,服务器可以通过第一处理线程对批量字符区域对应的预处理 结果进行数据填充,以将批量字符区域对应的预处理结果扩展为相同大小。例 如,服务器可以通过第一处理线程对批量字符区域对应的预处理结果进行 0-padding,具体可以将批量字符区域对应的预处理结果,按照批量字符区域中 区域最大的字符区域进行0-padding,使得批量字符区域对应的预处理结果的大 小,与批量字符区域中区域最大的字符区域的区域大小相同。
79.本实施例中,通过第一处理线程从字符区域序列中获取批量处理数量的批 量字
符区域后,进行预处理,并对批量字符区域对应的预处理结果进行数据扩 展处理,得到大小统一的批量预处理结果,便于后续对批量预处理结果批量推 理处理,有利于提高图像处理效率。
80.在一个实施例中,通过第三处理线程,对批量推理结果进行字符识别处理 中的后处理,得到待处理图像的字符识别结果,包括:通过第三处理线程,将 批量推理结果进行拆分,获得与批量字符区域对应的区域推理结果;通过第三 处理线程,对区域推理结果分别进行字符识别处理中的后处理,得到待处理图 像的字符识别结果。
81.其中,批量推理结果为第二处理线程批量进行推理处理得到的推理结果, 包括批量字符区域中各字符区域对应的推理结果。区域推理结果即为批量字符 区域中各字符区域所各自对应的推理结果。
82.具体地,服务器对于得到的批量推理结果,通过第三处理线程将批量推理 结果进行拆分,以得到与批量字符区域对应的区域推理结果。具体实现时,每 个字符区域所对应的推理结果大小相同,从而可以根据批量处理数量将批量推 理结果进行同等拆分,得到批量字符区域对应的预处理结果。服务器通过第三 处理线程,对区域推理结果分别进行字符识别处理中的后处理,从而实现对批 量字符区域中各字符区域分别进行后处理,得到各字符区域的字符识别结果, 从而获得待处理图像的字符识别结果。
83.本实施例中,通过第三处理线程将得到的批量推理结果进行拆分后,分别 进行字符识别处理中的后处理,实现了对字符区域的批量字符识别处理,有利 于提高图像处理效率。
84.在一个实施例中,图像处理方法还包括:通过第二处理线程,将字符区域 序列中的字符区域与字符识别结果进行匹配,得到与待处理图像中的字符区域 相匹配的字符识别结果。
85.其中,在对各字符区域进行批量字符识别处理时,各字符区域按照区域大 小进行排序,各字符区域的实际处理顺序与字符区域在待处理图像中的分布位 置不同,在字符识别处理完成后,需要将各字符识别结果与待处理图像中的各 字符区域进行匹配,从而确保字符识别结果的准确性。
86.具体地,服务器可以通过第二处理线程,将字符区域序列中的字符区域与 字符识别结果进行匹配,如服务器可以通过第二处理线程,根据字符区域序列 中各字符区域的索引信息,将各字符区域与字符识别结果进行匹配,从而得到 与待处理图像中的字符区域相匹配的字符识别结果,确保了字符识别结果与各 字符区域的对应。其中,索引信息可以在将各字符区域进行排序组成字符区域 序列时生成得到。
87.本实施例中,将各字符识别结果与待处理图像中的各字符区域进行匹配, 从而确保了字符识别结果的准确性。
88.在一个实施例中,第二处理线程为主线程,第一处理线程和第三处理线程 为子线程。
89.其中,主线程指运行在前台的线程,一般只有一个,第二处理线程为主线 程,从而通过主线程执行推理处理,确保耗时更长的推理处理的处理效率。子 线程指运行在后台的线程,数量不定,第一处理线程和第三处理线程为子线程。 具体地,服务器将第二处理线程设置到主线程中执行,而将第一处理线程和第 三处理线程设置到子线程中执行,从而将耗
时更长的推理处理设置到计算能力 更强的主线程中执行,避免在字符识别并行处理时产生阻塞问题,从而确保图 像处理效率。
90.在一个实施例中,在通过第一处理线程,对字符区域进行字符识别处理中 的预处理,获得预处理结果之后,还包括:通过第一处理线程将预处理结果存 储至预处理结果队列中。
91.其中,预处理结果队列为预先设置的存储队列,用于存储预处理结果。具 体地,服务器通过第一处理线程对字符区域进行预处理后,通过第一处理线程 将预处理结果存储至预处理结果队列中。
92.进一步地,通过第二处理线程,对预处理结果进行字符识别处理中的推理 处理,获得推理结果,包括:通过第二处理线程,从预处理结果队列中获取预 处理结果,并进行字符识别处理中的推理处理,将获得的推理结果存储至推理 结果队列中。
93.其中,推理结果队列为预先设置的存储队列,用于存储推理结果。具体地, 服务器通过第二处理线程从预处理结果队列中获取预处理结果,并对获取的预 处理结果进行字符识别处理中的推理处理,得到推理结果。服务器通过第二处 理线程将得到的推理结果存储至推理结果队列中。
94.进一步地,通过第三处理线程,对推理结果进行字符识别处理中的后处理, 得到待处理图像的字符识别结果,包括:通过第三处理线程,从推理结果队列 中获取推理结果,并进行字符识别处理中的后处理,将得到的字符识别结果存 储至识别结果队列中。
95.其中,识别结果队列为预先设置的存储队列,用于字符识别结果。具体地, 服务器通过第三处理线程从推理结果队列中获取推理处理结果,并对获取的推 理处理结果进行字符识别处理中的后处理,得到字符识别结果。服务器通过第 三处理线程将得到的字符识别结果存储至识别结果队列中。
96.进一步地,图像处理方法还包括:通过第二处理线程,从识别结果队列中 获得待处理图像的字符识别结果。
97.具体地,在第三处理线程将得到的字符识别结果存储至识别结果队列中后, 服务器还可以通过第二处理线程从识别结果队列中,读取得到待处理图像的字 符识别结果,从而可以将待处理图像的字符识别结果进行输出或展示。
98.本实施例中,第一处理线程、第二处理线程和第三处理线程各自的处理结 果可以分别存储至对应预设的存储队列中,能够避免字符识别并行处理时的阻 塞问题,从而确保字符识别并行处理的处理效率,确保了图像的处理效率。
99.本技术还提供一种应用场景,该应用场景应用上述的图像处理方法。具体 地,该图像处理方法在该应用场景的应用如下:
100.本实施例涉及对图像进行ocr的处理,ocr即光学字符识别算法,旨在通 过计算机视觉技术自动提取并识别目标图像或视频中的字符,是目前计算机视 觉领域应用最广泛的技术之一。一般地ocr算法包含两大部分:检测过程,即 定位到字符区域,以及识别过程,即提取字符区域的字符,即将像素值映射为 字符串。一般地,在输入待识别图像后,首先对整幅图像进行ocr检测,得出 n个字符区域,具体可以以外接矩形框的形式展示;再利用ocr识别算法对这 n个字符区域逐个进行识别,得出最后的结果。当输入图像的尺寸相似时,ocr 检测可以一次性得出所有检测框,所以检测步骤的耗时大体是接近的;但是, 由于ocr
检测步骤是对字符区域逐个进行的,因此ocr检测步骤的耗时与输 入图像中字符的数量正相关。目前ocr识别可以基于cnn实现,一次完整的ocr识别过程一般包括预处理、模型推理、后处理三大模块,其中预处理、后 处理操作可以在cpu(central processing unit,中央处理器)上进行,而推理操 作在gpu(gaphics processing unit,图形处理器)上进行,当检测框较多时, cpu、gpu间存在大量的数据传输,会浪费大量时间,使得cpu和gpu设备 利用率也较低。而且,对字符较多的图片,如文档、报纸照片等,ocr识别时 间过长,导致图像处理效率低。
101.如图4所示,对于一次ocr处理的耗时分析,单个字符区域的耗时约为 10.2ms。其中,预处理耗时0.84ms,耗时占比为8%;推理处理耗时4.77ms,耗 时占比为47%;后处理耗时4.59ms,耗时占比为45%。对文字较多的图片,比 如文档图片有67个文字检测框时,若逐个进行识别,耗时约683ms,ocr处理 效率低。同时,由于ocr识别中不同操作运行在不同设备上,同一时间只有一 种设备在工作,导致设备利用率较低。
102.而本实施例的图像处理方法,基于批量流水线处理的ocr识别流程,通过 合理调度使得不同字符区域的预处理,即前处理、模型的推理处理、后处理操 作同时进行,能够有效降低整体耗时,并提升设备利用率。具体地,若在某次 ocr任务中,共3个字符检测框。对单次ocr识别,字符识别在预处理、模型 的推理处理、后处理所耗费的时间相同都是t。如图5所示,若按顺序逐个进行 ocr识别时,单次ocr识别操作的耗时为3t,则3个字符检测框的总耗时为 9t。如图6所示,若采用流水线操作,将不同字符检测框的ocr识别操作同时 进行,具体在进行字符检测框1的推理处理时,同时进行字符检测框2的预处 理;在进行字符检测框1的后处理时,同时进行字符检测框2的推理处理与字 符检测框3的预处理,如此能保证设备一直处于满负荷状态,并且缩短总耗时 到5t。更一般地,假设预处理、模型的推理处理、后处理的耗时分别为t1、t2、 t3,其中最大值为tm,一共有n个字符区域。那么顺序执行的总耗时为 n*(t1 t2 t3),流水线执行的总耗时为t1 t2 t3 (n-1)*tm,在n大于3时,可以 有效降低ocr识别的处理耗时,提高ocr识别的处理效率。
103.进一步地,本实施例基于多线程机制实现ocr识别的流水线执行,具体老 考虑到推理处理耗时最长,为避免队列阻塞,可以将推理处理放在主线程中进 行,而将预处理和后处理放在子线程中。在具体实现时,也可以将任意操作放 在主线程而将其它操作放在子线程。具体地,可以预先设置字符识别处理中预 处理的具体处理,如可以包括根据检测框坐标在原图裁剪出文字区域、尺寸归 一化、取值归一化等处理;对于后处理,具体可以包括遍历模型输出概率向量、 字典映射等处理。服务器建立三个队列,队列a用于存储预处理好的预处理结 果,队列b用于存储模型输出的推理结果,而队列c用于存储后处理得到的字 符识别结果。
104.进一步地,初始化预处理线程pr,pr的输入为原图及n个字符检测框, pr执行的操作为,遍历每一个字符检测框,逐个执行预处理操作并将结果存入 队列a。而pr的处理结束条件可以为操作完所以n个字符检测框的预处理。主 线程执行的操作为进行n次循环,单次循环的操作为从队列a取一个模型输入, 即从队列a中获取预处理结果,执行模型推理处理,并将推理结果存入队列b, 在队列a为空则主线程阻塞等待。初始化后处理线程po,po的输入为队列b 和检测框数量n,po执行的操作为从队列b中读取模型输出,即获取推理结果, 执行后处理操作后,将字符识别结果存入队列c,po的结束条件可以为后处理 次数达到n。
此外,在后处理的循环结束后,主线程还可以从队列c取出n个 输出并返回,以得到ocr识别结果。如图7所示,在一个具体应用中,ocr识 别处理的总耗时从683ms下降到384ms,下降约44%。对于每一次的ocr处理 的平均耗时,前处理耗时为0.02ms,耗时占比接近0%;推理处理耗时为4.97ms, 耗时占比为99%;后处理耗时为0.04ms,耗时占比为1%。
105.此外,ocr识别还可以基于批量流水线实现。ocr识别可以基于cnn模 型实现,cnn模型支持批量推理,且随着批大小bs的增加,耗时增加远小于 线性增加。例如,单次推理耗时10ms,对两个文字区域,做两次bs为1的推 理需要耗时20ms,做一次bs为2的推理耗时可能降低为15ms,因此可以采用 批量处理并结合流水线的方式进一步提高处理效率。
106.由于cnn结构的限制,同批次输入必须保持尺寸相同,因此批量处理时, 需要解决尺寸选择的问题,而ocr识别算法需要保持输入字符区域的高度保持 一致,比如可以为32像素。在具体实现是,可以取固定值w为同一宽度,对 宽度不够的区域,用补0,即0-padding的方式进行扩展;而对宽度超过的部分, 用插值的方式进行压缩。但w难以取定,w太大时,导致大量区域都需要扩展, 扩展增加的耗时会抵消批处理减少的耗时,影响ocr处理效率;而w太小时, 大量区域都被压缩,使得字符粘连在一起,导致识别效果变差,降低了字符识 别准确度。也可以选取同一批次内宽度最长区域的框作为当前批次的统一宽度, 如此可以保证没有文字区域被压缩,但由于文字区域宽度的分布比较随机,因 此每个批次内都有很长、很短的文字区域,对很短的区域进行大尺度扩展导致 ocr的耗时增加。
107.基于此,可以先将待处理图像中的所有字符检测框按宽度从小达到进行排 序,并按顺序以一定的批大小,比如4或8得批大小,进行批次构建,从而保 证统一批次内的字符区域宽度较接近,从而避免大尺度扩展。具体地,可以预 先设置字符识别处理中预处理的具体处理,如可以包括根据检测框坐标在原图 裁剪出文字区域、尺寸归一化、取值归一化等处理;对于后处理,具体可以包 括遍历模型输出概率向量、字典映射等处理。服务器建立三个队列,队列a用 于存储预处理好的预处理结果,队列b用于存储模型输出的推理结果,而队列 c用于存储后处理得到的字符识别结果。
108.进一步地,服务器对所有字符检测框按宽度以从小到大的顺序进行排序, 并保留原始索引信息。例如,排序后位次为1的宽即最短者是原本的第18个框。 初始化预处理线程pr,pr的输入为原图、n个字符检测框以及批大小bs,pr 执行的操作为,按顺序取bs个字符检测框,在字符检测框不足bs个时则可以 取实际数量的字符检测框,预处理线程pr遍历bs个字符检测框,逐个执行预 处理操作,pr以字符检测框宽度最大者为目标,对各预处理结果进行0-padding, 组成一个批数据后存入队列a。而pr的处理结束条件可以为操作完所以n个字 符检测框的预处理。主线程执行的操作为进行n次循环,单次循环的操作为从 队列a取一个模型输入,即从队列a中获取预处理结果,执行模型推理处理, 并将推理结果存入队列b,在队列a为空则主线程阻塞等待。初始化后处理线 程po,po的输入为队列b和检测框数量n,po执行的操作为从队列b中读取 模型输出,即获取推理结果,po将批输出拆分为单个字符区域输出,并对每个 字符区域输出执行后处理操作后,将字符识别结果存入队列c,po的结束条件 可以为后处理次数达到n。在后处理的循环结束后,主线程还可以从队列c取 出n个输出,按原始索引进行重新排序,使得最终的字符识别结果与原始检测 框按顺序一一对应并返回,以得到ocr识别结果。
109.如图8所示,在一个具体应用中,ocr识别处理的总耗时从683ms下降到 131ms,下
降约80%。对于每一次的ocr处理的平均耗时,前处理耗时为0.04ms, 耗时占比接近2%;推理处理耗时为1.83ms,耗时占比为93%;后处理耗时为 0.09ms,耗时占比为5%。
110.本实施的图像处理方法,通过流水线式的推理处理流程,使得电子设备能 够同时处理不同字符区域的不同识别过程,通过增加设备利用效率以提升识别 速度,从而提高了图像的处理效率。
111.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按 照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执 行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些 步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的 至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然 是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执 行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者 阶段的至少一部分轮流或者交替地执行。
112.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的 图像处理方法的图像处理装置。该装置所提供的解决问题的实现方案与上述方 法中所记载的实现方案相似,故下面所提供的一个或多个图像处理装置实施例 中的具体限定可以参见上文中对于图像处理方法的限定,在此不再赘述。
113.在一个实施例中,如图9所示,提供了一种图像处理装置900,包括:字符 区域确定模块902、预处理模块904、推理模块906和后处理模块908,其中:
114.字符区域确定模块902,用于确定待处理图像中的若干个字符区域;
115.预处理模块904,用于通过第一处理线程,对所述字符区域进行字符识别处 理中的预处理,获得预处理结果;
116.推理模块906,用于通过第二处理线程,对所述预处理结果进行所述字符识 别处理中的推理处理,获得推理结果;
117.后处理模块908,用于通过第三处理线程,对所述推理结果进行所述字符识 别处理中的后处理,得到所述待处理图像的字符识别结果;其中,所述第二处 理线程,与所述第一处理线程和所述第三处理线程中的至少一个并行。
118.在一个实施例中,预处理模块904,还用于通过第一处理线程,对从字符区 域序列中按序获得批量处理数量的字符区域进行字符识别处理中的预处理,获 得批量预处理结果;字符区域序列,是通过对字符区域按照区域大小进行排序 得到的;推理模块906,还用于通过第二处理线程,对批量预处理结果进行字符 识别处理中的推理处理,获得批量推理结果;后处理模块908,还用于通过第三 处理线程,对批量推理结果进行字符识别处理中的后处理,得到待处理图像的 字符识别结果。
119.在一个实施例中,预处理模块904包括批量区域获得模块、批量预处理模 块和数据扩展模块;其中:批量区域获得模块,用于通过第一处理线程,从字 符区域序列中按序获得批量处理数量的批量字符区域;批量预处理模块,用于 通过第一处理线程,对批量字符区域分别进行字符识别处理中的预处理,得到 批量字符区域对应的预处理结果;数据扩展模块,用于通过第一处理线程,将 批量字符区域对应的预处理结果进行数据扩展处理,获得批量预处理结果。
120.在一个实施例中,后处理模块908,还用于通过第三处理线程,将批量推理 结果进
行拆分,获得与批量字符区域对应的区域推理结果;通过第三处理线程, 对区域推理结果分别进行字符识别处理中的后处理,得到待处理图像的字符识 别结果。
121.在一个实施例中,还包括识别结果匹配模块,用于通过第二处理线程,将 字符区域序列中的字符区域与字符识别结果进行匹配,得到与待处理图像中的 字符区域相匹配的字符识别结果。
122.在一个实施例中,第二处理线程为主线程,第一处理线程和第三处理线程 为子线程。
123.在一个实施例中,还包括预处理结果存储模块,用于通过第一处理线程将 预处理结果存储至预处理结果队列中;推理模块906,还用于通过第二处理线程, 从预处理结果队列中获取预处理结果,并进行字符识别处理中的推理处理,将 获得的推理结果存储至推理结果队列中;后处理模块908,还用于通过第三处理 线程,从推理结果队列中获取推理结果,并进行字符识别处理中的后处理,将 得到的字符识别结果存储至识别结果队列中;还包括识别结果获得模块,用于 通过第二处理线程,从识别结果队列中获得待处理图像的字符识别结果。
124.上述图像处理装置中的各个模块可全部或部分通过软件、硬件及其组合来 实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可 以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个 模块对应的操作。
125.在一个实施例中,提供了一种电子设备,该电子设备可以是服务器,其内 部结构图可以如图10所示。该电子设备包括处理器、存储器、输入/输出接口 (input/output,简称i/o)和通信接口。其中,处理器、存储器和输入/输出接口 通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该电 子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性 存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数 据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供 环境。该电子设备的数据库用于存储图像处理数据。该电子设备的输入/输出接 口用于处理器与外部设备之间交换信息。该电子设备的通信接口用于与外部的 终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图像处理方 法。
126.在一个实施例中,提供了一种电子设备,该电子设备可以是终端,其内部结构图可以如图11所示。该电子设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的输入/输出接口用于处理器与外部设备之间交换信息。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种图像处理方法。该电子设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
127.本领域技术人员可以理解,图10和图11中示出的结构,仅仅是与本技术 方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的电子设备 的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某 些部件,或者具有不同的部件布置。
128.本技术实施例还提供了一种计算机可读存储介质。一个或多个包含计算机 可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个 或多个处理器执行时,使得所述处理器执行图像处理方法的步骤。
129.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上 运行时,使得计算机执行图像处理方法。
130.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、 用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示 的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数 据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
131.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于 一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述 各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、 数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一 种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、 软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、 磁变存储器(magnetoresistive random access memory,mram)、铁电存储器 (ferroelectric random access memory,fram)、相变存储器(phase changememory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器 (random access memory,ram)或外部高速缓冲存储器等。作为说明而非局 限,ram可以是多种形式,比如静态随机存取存储器(static random accessmemory,sram)或动态随机存取存储器(dynamic random access memory, dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库 和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数 据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理 器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计 算的数据处理逻辑器等,不限于此。
132.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述 实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特 征的组合不存在矛盾,都应当认为是本说明书记载的范围。
133.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细, 但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域 的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和 改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利 要求为准。
再多了解一些

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

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

相关文献