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

一种字符识别方法、装置、设备及存储介质与流程

2022-11-23 12:31:56 来源:中国专利 TAG:


1.本技术涉及图像处理技术领域,具体涉及一种字符识别方法、装置、设备及存储介质。


背景技术:

2.字符识别是指识别出图像中包含的字符的技术。例如,在录入证件号码时,对实体证件拍摄得到证件图像后,计算设备通过字符识别技术能够自动识别出证件图像中包含的证件号码,从而无需用户手动输入证件号码。
3.相关技术中,用户会在计算设备上设置一个固定的角度。计算设备获得一个原始图像后,根据预先设置的角度对原始图像进行旋转,基于旋转后的图像进行文字识别,得到识别结果。
4.然而实践中发现,采用上述方法来进行字符识别时,识别结果的准确度较低。


技术实现要素:

5.本技术提供一种字符识别方法、装置、设备及存储介质,能够提高识别结果的准确度。
6.第一方面,本技术提供一种字符识别方法,包括:
7.获取原始图像,该原始图像包括第一二维码以及待识别的第一字符;
8.根据该第一二维码,确定第一旋转角度;
9.根据该第一旋转角度,对该原始图像进行矫正,得到第一图像;
10.基于该第一图像,获得该第一字符的第一识别结果。
11.在一些实施例中,该根据该第一二维码,确定第一旋转角度,包括:
12.根据该第一二维码与该第一字符之间的位置关系,确定该第一旋转角度。
13.在一些实施例中,该根据该第一二维码与该第一字符之间的位置关系,确定该第一旋转角度,包括:
14.根据对应于该第一二维码的连通域的第一边与水平方向的角度,确定该第一旋转角度,该第一边与对应于该第一字符的连通域的第二边平行,该第二边为该对应于该第一字符的连通域中最长的边。
15.在一些实施例中,该根据该第一二维码与该第一字符之间的位置关系,确定该第一旋转角度,包括:
16.根据对应于该第一二维码的连通域的对角线与水平方向的角度,确定该第一旋转角度。
17.在一些实施例中,该根据该第一二维码与该第一字符之间的位置关系,确定该第一旋转角度,包括:
18.根据对应于该第一二维码的连通域与对应于该第一字符的连通域之间的位置关系,确定该第一旋转角度。
19.在一些实施例中,该根据该第一二维码,确定第一旋转角度,包括:
20.根据该第一二维码包括的定位信息,确定第一旋转角度。
21.在一些实施例中,该第一二维码为快速响应qr码,该定位信息为该qr码包括的回字形定位点;或者,
22.该第一二维码为数据矩阵dm码,该定位信息为该dm码包括的l形边界。
23.在一些实施例中,该原始图像还包括第二二维码以及待识别的第二字符,该方法还包括:
24.在确定该第二二维码与该第一二维码不平行,或该第二字符与该第一字符不平行的情况下,根据该第二二维码,确定第二旋转角度;
25.根据该第二旋转角度,对该原始图像进行矫正,得到第二图像;
26.基于该第二图像,获得该第二字符的识别结果。
27.在一些实施例中,该原始图像还包括第二二维码以及待识别的第二字符,该方法还包括:
28.在确定该第二二维码与该第一二维码平行,且该第二字符与该第一字符平行的情况下,基于该第一图像,获得该第二字符的识别结果。
29.在一些实施例中,该原始图像包括第一区域和第二区域,该第一二维码和该第一字符均位于该第一区域,该第二二维码和该第二字符均位于该第二区域。
30.在一些实施例中,该基于该第一图像,获得该第一字符的第一识别结果之后,该方法还包括:
31.在确定该第一识别结果为期望结果的情况下,输出该第一识别结果。
32.在一些实施例中,该基于该第一图像,获得该第一字符的第一识别结果之后,该方法还包括:
33.在确定该第一识别结果不为期望结果的情况下,将该第一图像旋转180度,得到第三图像;
34.基于该第三图像,获得该第一字符的第二识别结果。
35.在一些实施例中,该基于该第一图像,获得该第一字符的第一识别结果之后,该方法还包括:
36.在确定该第一识别结果不为期望结果的情况下,将该第一图像输入文字识别模型,通过该文字识别模型对该第一图像处理,输出该第一字符的第三识别结果,该文字识别模型用于识别旋转角度为180度的字符。
37.第二方面,本技术提供一种字符识别装置,包括:
38.获取模块,用于获取原始图像,该原始图像包括第一二维码以及待识别的第一字符;
39.确定模块,用于根据该第一二维码,确定第一旋转角度;
40.矫正模块,用于根据该第一旋转角度,对该原始图像进行矫正,得到第一图像;
41.该获取模块,还用于基于该第一图像,获得该第一字符的第一识别结果。
42.第三方面,本技术提供一种计算机设备,计算机设备包括处理器和存储器,存储器中存储有计算机程序指令,该处理器执行计算机程序指令时实现上述第一方面的方法中的步骤。
43.第四方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述第一方面的方法中的步骤。
44.第五方面,本技术提供一种计算机程序产品,计算机程序产品包括计算机程序指令,计算机程序指令被处理器执行时实现上述第一方面的方法中的步骤。
45.由此可见,本技术具有如下有益效果:
46.利用原始图像包含的二维码作为辅助信息,来确定原始图像的旋转角度,因此确定出的旋转角度更加准确,根据旋转角度能够更准确地对原始图像进行矫正,从而获得更准确的字符识别结果。
附图说明
47.图1为本技术实施例提供的一种字符识别方法的流程图;
48.图2为本技术实施例提供的一种字符识别方法的流程图;
49.图3为本技术实施例提供的一种字符识别装置300的结构示意图;
50.图4为本技术实施例提供的一种计算机设备400的结构示意图;
51.图5为本技术实施例提供的一种计算机可读存储介质500的结构示意图。
具体实施方式
52.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合图和具体实施方式对本技术实施例作进一步详细的说明。
53.本技术的发明人发现,现有的光学字符识别(optical character recognition,ocr)技术通常只能识别正向的字符。对于倾斜或者反向的字符,现有的ocr技术通常识别准确性较差。有鉴于此,当获取到待进行ocr的原始图像后,需要先将图像矫正,使得图像中的字符从倾斜旋转为正向,再去识别图像中的字符,从而提高识别准确性。为了矫正图像,在传统技术中,通常会人工设置一个固定的角度,通过对原始图像进行固定角度的旋转,从而进行ocr识别。但该固定角度需要人工进行设置,并且在实际工业场景中,原始图像的旋转角度并不固定,使用固定角度对原始图像进行旋转后,旋转的图像中的字符可能无法被ocr模型识别,或者ocr识别后的字符准确度较低。此外,传统技术中在原始图像为多张的情况下,需要每个原始图像的方向一致,即多个原始图像之间的旋转角度较为一致,才可获得较好的字符识别效果。但对于多张旋转角度并不完全相同的原始图像,现有方案无法进行ocr识别,或者ocr识别后的字符准确度较低。
54.基于此,在本技术的一些实施例中,基于二维码与字符之间的相对位置关系,来使用二维码辅助旋转图像。在本技术的另一些实施例中,考虑到二维码通常包含定位信息,例如快速响应(quick response,qr)码包含回字形定位点,数据矩阵(data matrix,dm)码包含实线l和虚线l组成的外边框,因此利用二维码本身包含的定位信息来辅助旋转图像。通过本技术实施例提供的方法,由于有了二维码作为辅助信息,矫正图像时使用的旋转角度会更加准确,从而解决了在实际工业场景中,由于原始图像的旋转角度无法固定,并且通过人工设置固定角度的方法准确度较低,从而使原始图像中的字符难以被ocr模型识别的问题,从而提升处理图像的成功率,实现字符识别更准确的效果。此外,解决了多张旋转角度
并不完全相同,甚至旋转角度相差较大的原始图像中的字符难以被ocr模型识别的问题。
55.图1为本技术实施例提供的一种字符识别方法的流程图。本技术的一些实施例中涉及一个原始图像包括多个二维码的情况。为了区分不同的二维码,用“第一二维码”、“第二二维码”区分描述多个不同的二维码。
56.本技术的一些实施例中涉及一个原始图像包括多个字符的情况。为了区分不同的字符,用“第一字符”、“第二字符”区分描述多个不同的字符。第一字符可以是一个字符,或者是一个字符串。
57.图1所示方法包括以下步骤s101至步骤s104。
58.步骤s101、计算机设备获取原始图像,该原始图像包括第一二维码以及待识别的第一字符。
59.在一些实施例中,计算机设备获得原始图像后,计算机设备先对原始图像进行预处理,再执行后续步骤。该预处理包括而不限于高斯滤波、增强对比度、中值滤波、均值滤波或形态学处理。形态学处理包括而不限于开闭运算、膨胀、腐蚀等。通过进行预处理,可以滤除原始图像中的噪声,从而提高后续步骤中图像处理的成功率。预处理的过程是可选步骤。在另一些实施例中,在原始图像较为清晰或易于后续处理的情况下,计算机设备可以不对原始图像进行预处理,直接基于获取到的原始图像执行后续确定旋转角度的步骤。
60.步骤s102、计算机设备根据第一二维码,确定第一旋转角度。
61.步骤s103、计算机设备根据第一旋转角度,对该原始图像进行矫正,得到第一图像。
62.步骤s104、计算机设备基于该第一图像,获得第一字符的第一识别结果。
63.在一些实施例中,计算设备将第一图像输入ocr模型,通过ocr模型对第一图像进行ocr处理,输出第一识别结果。ocr模型例如是深度学习模型或者其他类型的机器学习模型。由于第一图像是经过矫正的图像,因此第一图像中字符的方向为ocr模型可以识别的方向,例如ocr模型可以识别的字符为水平方向的字符,第一图像中第一字符的方向为水平方向。
64.在一些实施例中,计算机设备获得第一字符的第一识别结果后,计算机设备输出第一识别结果。输出第一识别结果可以是将第一识别结果显示在计算机设备的显示屏上,或者可以是将第一识别结果保存在计算机设备中的存储器中,或者可以是将第一识别结果发送给其他设备。
65.本实施例提供的方法,以原始图像中的二维码作为辅助信息,来确定原始图像的旋转角度,因此确定出的旋转角度更加准确,根据旋转角度能够更准确地对原始图像进行矫正,从而获得更准确的字符识别结果。
66.针对如何根据二维码确定旋转角度,本技术的一些实施例提供了多种实现方式。下面以根据第一二维码确定旋转角度的过程为例,结合下面两种实现方式举例说明。
67.实现方式一、计算机设备根据该第一二维码与该第一字符之间的位置关系,确定该第一旋转角度。
68.针对如何确定第一二维码与第一字符之间的位置关系,本实施例提供了多种实现方式。在一些实施例中,计算机设备使用ocr模型,确定第一二维码的位置和第一字符的位置,根据第一二维码的位置和第一字符的位置,确定第一二维码与第一字符之间的位置关
系。在另一些实施例中,计算机设备从原始图像中,确定对应于二维码的连通域以及对应于字符的连通域。计算机设备确定对应于二维码的连通域与对应于字符的连通域之间的位置关系,作为第一二维码与第一字符之间的位置关系。
69.在一些实施例中,计算机设备根据对应于该第一二维码的连通域的第一边与水平方向的角度,确定该第一旋转角度。该第一边与对应于该第一字符的连通域的第二边平行,该第二边为对应于该第一字符的连通域中最长的边。
70.由于二维码和字符通常至少有一条边是平行的,因此可以根据二维码与水平方向的角度估算出字符的长边与水平方向的角度,通过将字符的长边旋转至与水平方向贴合,即可实现字符的矫正。换句话说,将二维码旋转为正向,能够将字符也旋转为正向或者将字符旋转为反向。特别的,由于图像和二维码通常也至少一条边是平行的,所以通过这种方式,能够将原始图像旋转为“长方形”,使原始图像的较长边与水平方向旋转贴合。这样旋转后的图像只有两种状态,一种是正的,一种是反的,可通过再次对图像180度旋转来使得原始图像矫正。
71.在一些实施例中,计算机设备根据对应于该第一二维码的连通域的对角线与水平方向的角度,确定该第一旋转角度。具体的,根据二维码的对角线与水平方向的角度,能够确定二维码相对于水平方向倾斜的角度,从而将二维码旋转为正向。由于二维码和字符通常至少有一条边是平行的,因此通过将二维码旋转为正向,能够将字符也旋转为正向或者将字符旋转为反向。进一步地,考虑到一些场景下,图像中二维码的长边存在缺失或者干扰,而通过这种方式,使用的是对角线来对齐水平线,而不是长边,一些特定场景下会更稳定。
72.在一些实施例中,计算机设备根据对应于该第一二维码的连通域与对应于该第一字符的连通域之间的位置关系,确定该第一旋转角度。
73.在一些实施例中,如果原始图像中对应于第一二维码的连通域位于对应于第一字符的连通域的左侧,则可以确定第一旋转角度为90
°
,并且原始图像相对于正向图像的旋转方向为逆时针旋转,即在矫正时需要对原始图像进行顺时针旋转。将原始图像顺时针旋转90度后,得到的图像中第一二维码位于第一字符的上方。又如,如果原始图像中第一二维码位于第一字符的上方,则确定不需要旋转。又如,如果原始图像中第一二维码位于第一字符的下方,则确定第一旋转角度为180
°

74.在一些实施例中,确定对应于二维码的连通域的过程包括以下步骤a至步骤c。
75.步骤a、计算机设备对原始图像进行二值化处理,获得二值化图像。对原始图像进行二值化处理可以是将原始图像中像素值大于第一预设阈值的像素值设为1,将原始图像中像素值小于第一预设阈值的像素值设为0。
76.步骤b、计算机设备对二值化图像进行膨胀操作,确定原始图像中的n个连通域。对二值化图像进行膨胀操作时所使用的膨胀矩阵可以为预设矩阵。n为大于或等于1的正整数。
77.步骤c、计算机设备根据原始图像中的n个连通域,确定对应于二维码的连通域。具体的,计算机设备可以根据原始图像中第n个连通域的四个顶点的位置,确定第n个连通域是否为长方形或正方形。若第n个连通域不为长方形或正方形,则计算机设备确定第n 1个连通域是否为长方形或正方形。若第n个连通域为长方形或正方形,则计算机设备根据第n
个连通域的四个顶点或两个顶点(该两个顶点为对角顶点)的位置,确定第n个连通域的长与宽。若第n个连通域的长与预设长度的差值小于第二预设阈值,并且第n个连通域的宽与预设宽度的差值小于第三预设阈值,则可以将第n个连通域确定为对应于二维码的连通域。第二预设阈值可以与第三预设阈值相同,或者也可以不同,本实施例并不限定。
78.由于二维码的长度和宽度通常在一定的范围内,可以通过长度和宽度是否符合条件来判断连通域是否为对应于二维码的连通域。有鉴于此,在上述确定对应于二维码的连通域的实现方式中,通过设定两个阈值(第二预设阈值和第三预设阈值),利用这两个阈值判断连通域的长度和宽度是否符合条件,从而找到对应于二维码的连通域。
79.若第n个连通域的长与预设长度的差值大于或等于第三预设阈值,或者第n个连通域的宽与预设宽度的差值大于或等于第四预设阈值,则计算机设备可以将第n个连通域确定为对应于字符的连通域。
80.与确定二维码连通域的实现方式同理,由于字符连通域的长度和宽度通常也在一定的范围内,可以通过长度和宽度是否符合条件来判断连通域是否为对应于字符的连通域。有鉴于此,在上述确定对应于字符的连通域的实现方式中,通过设定两个阈值(第三预设阈值和第四预设阈值),利用这两个阈值判断连通域的长度和宽度是否符合条件,从而找到对应于字符的连通域。
81.实现方式二、计算机设备根据该第一二维码包括的定位信息,确定第一旋转角度。
82.定位信息是指二维码包含的定位标记,通过该定位信息能正确解析二维码,使得二维码不管是从何种方向读取都可以被辨识。例如,该第一二维码为qr码,该定位信息为该qr码包括的回字形定位点。其中,qr码包括三个回字形定位点,可以基于该三个回字形定位点确定第一旋转角度。具体地,由于qr二维码有一个特性:将qr二维码中三个回字形定位点连线后,可以得到一个l形,利用该l形可以知道二维码的倾斜角度。由于二维码相对于图像来说通常是正的,因此可以将二维码的倾斜角度作为图像的倾斜角度,通过将二维码旋转为正向来将图像旋转为正向。又如,该第一二维码为dm码,该定位信息为该dm码包括的l形边界。
83.上述图1所示实施例描述了如何基于第一二维码来识别第一字符。在一些实施例中,若一个原始图像包括多个二维码和多个待识别的字符,计算机设备可以根据每个二维码,分别确定各个字符的识别结果。
84.在一些实施例中,计算机设备将原始图像划分为多个区域,每个区域中均包括二维码和待识别的字符,计算机设备根据每个区域中的二维码,获得每个区域的旋转角度,基于每个区域的旋转角度,分别获得每个区域中字符的识别结果。
85.其中,对于同一个原始图像中任意两个区域而言,若两个区域中的二维码平行,且两个区域中的字符平行,则计算机设备确定两个区域的旋转角度相同;若两个区域中的二维码不平行,或两个区域中的字符不平行,则计算机设备确定两个区域的旋转角度不同。
86.例如,该原始图像包括第一区域和第二区域,第一区域和第二区域是两个不同的区域。第一区域包括该第一二维码和该第一字符,第二区域包括该第二二维码和该第二字符。针对这个例子,字符识别的过程包括以下情况a至情况b。
87.情况a、两个区域对应的旋转角度相同。
88.例如,计算机设备根据该第一二维码,确定第一旋转角度;计算机设备根据该第一
旋转角度,对该原始图像进行矫正,得到第一图像;计算机设备基于该第一图像,获得该第一字符的第一识别结果。计算机设备在确定该第二二维码与该第一二维码平行,且该第二字符与该第一字符平行的情况(即第一区域与第二区域的二维码平行,且第一区域与第二区域的字符平行)下,计算机设备根据第一二维码与第一字符的位置关系,或者根据第一二维码本身包括的定位信息,确定第一区域的旋转角度(即上述第一旋转角度);计算机设备根据该第一旋转角度,对该第一区域进行矫正,得到第一图像;计算机设备基于该第一图像,获得该第一字符的第一识别结果。而由于第二区域的旋转角度与第一区域的旋转角度相同,那么计算机设备无需为第二区域重复确定旋转角度,根据该第一旋转角度,对该第二区域进行矫正,得到第二图像;计算机设备基于该第二图像,获得该第二字符的识别结果。
89.情况b、两个区域对应的旋转角度不同。
90.例如,计算机设备根据该第一二维码,确定第一旋转角度;计算机设备根据该第一旋转角度,对该原始图像进行矫正,得到第一图像;计算机设备基于该第一图像,获得该第一字符的第一识别结果。计算机设备在确定该第二二维码与该第一二维码平行,或该第二字符与该第一字符平行的情况(即第一区域与第二区域的二维码平行,或第一区域与第二区域的字符平行)下,计算机设备根据第一二维码与第一字符的位置关系,或者根据第一二维码本身包括的定位信息,确定第一区域的旋转角度(即上述第一旋转角度);计算机设备根据该第一旋转角度,对该第一区域进行矫正,得到第一图像;计算机设备基于该第一图像,获得该第一字符的第一识别结果。此外,计算机设备根据第二二维码与第二字符的位置关系,或者根据第二二维码本身包括的定位信息,确定第二区域的旋转角度(即上述第二旋转角度);计算机设备根据该第二旋转角度,对该第二区域进行矫正,得到第二图像;计算机设备基于该第二图像,获得该第二字符的识别结果。
91.针对如何判断两个二维码平行,在一些实施例中,计算机设备根据两个二维码的长边是否平行,来判断两个二维码是否平行。针对如何判断两个二维码的长边是否平行,在一些实施例中,计算机设备获取两个二维码的长边之间的夹角,根据该夹角与阈值的关系,来判断两个二维码的长边是否平行。示例性地,计算机设备获取第二二维码的长边与第一二维码的长边之间的夹角;如果第二二维码的长边与第一二维码的长边之间的夹角小于第一角度阈值,则确定第二二维码与第一二维码平行。如果第二二维码的长边与第一二维码的长边之间的夹角大于或等于第一角度阈值,则确定第二二维码与第一二维码不平行。
92.针对如何判断两个字符平行,在一些实施例中,计算机设备根据两个字符的长边是否平行,来判断两个字符是否平行。针对如何判断两个字符的长边是否平行,在一些实施例中,计算机设备获取两个字符的长边之间的夹角,根据该夹角与阈值的关系,来判断两个字符的长边是否平行。示例性地,计算机设备获取第二字符的长边与第一字符的长边之间的夹角;如果第二字符的长边与第一字符的长边之间的夹角小于第二角度阈值,则确定第二字符与第一字符平行。如果第二字符的长边与第一字符的长边之间的夹角大于或等于第二角度阈值,则确定第二字符与第一字符不平行。
93.本实施例对于不同区域的字符识别的顺序不做限定,例如采用一前一后的处理顺序,又如并发处理。例如,计算机设备可以先基于第一图像获得第一字符的识别结果,后基于第二图像获得第二字符的识别结果;又如,计算机设备可以在基于第一图像获得第一字符的识别结果的同时,基于第二图像获得第二字符的识别结果。
94.图2为本技术实施例提供的一种字符识别方法的流程图。图2所示方法在图1所示方法的基础上,进一步包括以下步骤s105至步骤s108。图2所示方法中步骤s101至步骤s104可参考对图1的介绍。
95.步骤s105、计算机设备判断第一识别结果是否为期望结果。
96.例如,计算机设备判断第一识别结果的格式是否满足预设条件,如果第一识别结果的格式满足预设条件,则计算机设备确定第一识别结果为期望结果;如果第一识别结果的格式不满足预设条件,则计算机设备确定第一识别结果不为期望结果。
97.识别结果的格式例如识别结果中字符的类型、字符的类型的数量、字符的数量。预设条件例如是识别结果包含大写字母、小写字母、数字和符号的组合,又如是识别结果中字符的数量在8位字符至20位字符之间。再如,在识别产品编号的场景中,如果识别结果的格式为批次-生产周数-型号-日期,则确定识别结果的格式满足预设条件。
98.例如,计算机设备判断第一识别结果的格式是否重复出现过,如果第一识别结果的格式未重复出现过,则计算机设备确定第一识别结果为期望结果;如果第一识别结果的格式重复出现过,则计算机设备确定第一识别结果不为期望结果。
99.例如,计算机设备判断第一识别结果的格式是否被记录在预设数据库中并且未重复出现过,如果第一识别结果的格式被记录在预设数据库中并且未重复出现过,则计算机设备确定第一识别结果为期望结果;如果第一识别结果的格式未被记录在预设数据库中,或者第一识别结果的格式被记录在预设数据库中但第一识别结果的格式重复出现过,则计算机设备确定第一识别结果不为期望结果。
100.步骤s106、计算机设备在确定该第一识别结果为期望结果的情况下,计算机设备输出该第一识别结果。
101.步骤s107、计算机设备在确定该第一识别结果不为期望结果的情况下,计算机设备将该第一图像旋转180度,得到第三图像。
102.若第一识别结果不为期望结果,则表示根据二维码的位置与字符的位置确定的旋转角度有误,即根据该旋转角度旋转后的字符方向与实际字符方向相反。因此,计算机设备可以对第一图像进行顺时针或逆时针的180度旋转,获得第三图像。该第三图像中字符的方向与实际字符方向相同。
103.步骤s108、计算机设备基于该第三图像,获得该第一字符的第二识别结果。
104.本实施例提供的方法,通过判断第一次识别出的字符识别结果(第一识别结果)是否为期望结果,并在该字符识别结果不是期望结果的情况下,对第一次旋转后的图像(第一图像)再次进行180度旋转,使得再次旋转后的图像(第二图像)中字符的方向与字符方向相同,通过再次旋转后的图像从而获得原始图像中的字符识别结果,从而避免根据二维码确定的旋转角度有误导致识别结果不准确,因此提高字符识别的准确性。
105.可替代的,上述实施例中也可以不是将第一图像旋转180度,得到第三图像,而是直接使用可以识别旋转角度为180度的字符的ocr模型来识别第一字符。例如,计算机设备在确定该第一识别结果不为期望结果的情况下,将该第一图像输入文字识别模型,通过该文字识别模型对该第一图像处理,输出该第一字符的第三识别结果,该文字识别模型用于识别旋转角度为180度的字符。
106.上述实施例以针对一个原始图像获得字符识别结果的流程为例进行说明。在另一
些实施例中,计算机设备获得多个原始图像,在多个原始图像的旋转角度并不完全相同的情况下,计算机设备可以根据每个原始图像中的二维码与字符区域的位置,自适应性的确定每个原始图像的旋转角度,从而获得每个原始图像较为准确的字符识别结果。
107.图3是本技术实施例提供的一种字符识别装置300的结构示意图。参见图3,该装置300包括:
108.获取模块301,用于获取原始图像,该原始图像包括第一二维码以及待识别的第一字符;
109.确定模块302,用于根据该第一二维码,确定第一旋转角度;
110.矫正模块303,用于根据该第一旋转角度,对该原始图像进行矫正,得到第一图像;
111.该获取模块301,还用于基于该第一图像,获得该第一字符的第一识别结果。
112.在一些实施例中,该确定模块302,用于根据该第一二维码与该第一字符之间的位置关系,确定该第一旋转角度。
113.在一些实施例中,该确定模块302,用于根据对应于该第一二维码的连通域的第一边与水平方向的角度,确定该第一旋转角度,该第一边与对应于该第一字符的连通域的第二边平行,该第二边为该对应于该第一字符的连通域中最长的边。
114.在一些实施例中,该确定模块302,用于根据对应于该第一二维码的连通域的对角线与水平方向的角度,确定该第一旋转角度。
115.在一些实施例中,该确定模块302,用于根据对应于该第一二维码的连通域与对应于该第一字符的连通域之间的位置关系,确定该第一旋转角度。
116.在一些实施例中,该确定模块302,用于根据该第一二维码包括的定位信息,确定第一旋转角度。
117.在一些实施例中,该第一二维码为快速响应qr码,该定位信息为该qr码包括的回字形定位点;或者,
118.该第一二维码为数据矩阵dm码,该定位信息为该dm码包括的l形边界。
119.在一些实施例中,该原始图像还包括第二二维码以及待识别的第二字符,该确定模块302,还用于在确定该第二二维码与该第一二维码不平行,或该第二字符与该第一字符不平行的情况下,根据该第二二维码,确定第二旋转角度;
120.该矫正模块303,还用于根据该第二旋转角度,对该原始图像进行矫正,得到第二图像;
121.该获取模块301,还用于基于该第二图像,获得该第二字符的识别结果。
122.在一些实施例中,该原始图像还包括第二二维码以及待识别的第二字符,该获取模块301,还用于在确定该第二二维码与该第一二维码平行,且该第二字符与该第一字符平行的情况下,基于该第一图像,获得该第二字符的识别结果。
123.在一些实施例中,该原始图像包括第一区域和第二区域,该第一二维码和该第一字符均位于该第一区域,该第二二维码和该第二字符均位于该第二区域。
124.在一些实施例中,该装置还包括:
125.输出模块,用于在确定该第一识别结果为期望结果的情况下,输出该第一识别结果。
126.在一些实施例中,该矫正模块303,还用于在确定该第一识别结果不为期望结果的
情况下,将该第一图像旋转180度,得到第三图像;
127.该获取模块301,还用于基于该第三图像,获得该第一字符的第二识别结果。
128.在一些实施例中,该获取模块301,还用于在确定该第一识别结果不为期望结果的情况下,将该第一图像输入文字识别模型,通过该文字识别模型对该第一图像处理,输出该第一字符的第三识别结果,该文字识别模型用于识别旋转角度为180度的字符。
129.上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
130.需要说明的是:上述实施例提供的字符识别装置在字符识别时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将字符识别装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的字符识别装置与字符识别方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
131.图4为本技术实施例提供的一种计算机设备400的结构示意图。
132.计算机设备400包括至少一个处理器401、存储器402以及至少一个网络接口403。
133.处理器401例如是通用中央处理器(central processing unit,cpu)、网络处理器(network processer,np)、图形处理器(graphics processing unit,gpu)、神经网络处理器(neural-network processing units,npu)、数据处理单元(data processing unit,dpu)、微处理器或者一个或多个用于实现本技术方案的集成电路。例如,处理器401包括专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。pld例如是复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程逻辑门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合。
134.存储器402例如是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。可选地,存储器402独立存在,并通过内部连接404与处理器401相连接。或者,可选地存储器402和处理器401集成在一起。
135.网络接口403使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口403例如包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,wlan)接口,蜂窝网络接口或其组合等。
136.在一些实施例中,处理器401包括一个或多个cpu,如图4中所示的cpu0和cpu1。
137.在一些实施例中,计算机设备400可选地包括多个处理器,如图4中所示的处理器401和处理器405。这些处理器中的每一个例如是一个单核处理器(single-cpu),又如是一个多核处理器(multi-cpu)。这里的处理器可选地指一个或多个设备、电路、和/或用于处理
数据(如计算机程序指令)的处理核。
138.在一些实施例中,计算机设备400还包括内部连接404。处理器401、存储器402以及至少一个网络接口403通过内部连接404连接。内部连接404包括通路,在上述组件之间传送信息。可选地,内部连接404是单板或总线。可选地,内部连接404分为地址总线、数据总线、控制总线等。
139.在一些实施例中,计算机设备400还包括输入输出接口406。输入输出接口406连接到内部连接404上。
140.可选地,处理器401通过读取存储器402中保存的程序代码实现上述实施例中的方法,或者,处理器401通过内部存储的程序代码实现上述实施例中的方法。在处理器401通过读取存储器402中保存的程序代码实现上述实施例中的方法的情况下,存储器402中保存实现本技术实施例提供的字符识别方法的程序代码410。
141.处理器401实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
142.图5是本技术实施例提供的一种计算机可读存储介质500的结构示意图,该计算机可读存储介质中存储有计算机程序指令501,该计算机程序指令501被处理器执行时实现上述图1实施例所示的方法中的步骤。
143.本技术实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序指令,该计算机程序指令被处理器执行时实现上述图1实施例所示的方法中的步骤。
144.需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
145.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
146.还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
147.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术
领域内所公知的任意其它形式的存储介质中。
148.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献