本技术涉及图像识别,特别是涉及一种图形码识别方法、装置、电子设备及存储介质。
背景技术:
1、图形码可以包括条形码、二维码和彩色条码等。通过对图像进行图形码识别,可以对图像中的图形码进行译码,从而得到图像中图形码的释义信息。
2、相关技术中,在识别图形码时,通常需要对图形码所在的整张图像进行运算识别。图像的图像尺寸即图像所包含的总像素数,图像的图像尺寸越大,图像的数据量也就越大。因此,相关技术中,对图像尺寸较大的图像中的图形码进行识别的计算量较大,识别效率较低。
技术实现思路
1、本技术实施例的目的在于提供一种图形码识别方法、装置、电子设备及存储介质,以降低图形码识别的计算量,提高图形码识别的效率。具体技术方案如下:
2、第一方面,本技术实施例提供了一种图形码识别方法,所述方法包括:
3、确定目标图像中包括待识别图形码的待识别区域和所述待识别区域的第一位置信息;
4、基于所述第一位置信息,确定所述目标图像中包括所述待识别区域的目标矩形区域,并确定所述目标矩形区域内的各图形码的第二位置信息和释义信息;其中,所述目标矩形区域的边缘线与所述目标图像的边缘线之间的最小夹角为0度;
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、信息确定模块,用于确定目标图像中包括待识别图形码的待识别区域和所述待识别区域的第一位置信息;
37、区域确定模块,用于基于所述第一位置信息,确定所述目标图像中包括所述待识别区域的目标矩形区域,并确定所述目标矩形区域内的各图形码的第二位置信息和释义信息;其中,所述目标矩形区域的边缘线与所述目标图像的边缘线之间的最小夹角为0度;
38、信息输出模块,用于根据所述第一位置信息和所述第二位置信息,确定所述目标矩形区域内的各图形码中,位于所述待识别区域内部的所述待识别图形码,并输出所述待识别图形码的释义信息。
39、可选的,一种具体实现方式中,所述区域确定模块包括:
40、区域确定子模块,用于基于所述第一位置信息,确定所述目标图像中,所述待识别区域的最小外接矩形所包括的区域,作为所述待识别区域的目标矩形区域。
41、可选的,一种具体实现方式中,若所述待识别区域为圆形,则所述第一位置信息包括:所述待识别区域的圆心坐标和半径;若所述待识别区域为多边形,则所述第一位置信息包括:所述待识别区域的各个顶点的顶点坐标中,最大横坐标、最小横坐标、最大纵坐标和最小纵坐标;
42、所述区域确定子模块具体用于:
43、若所述待识别区域为圆形,则基于所述圆心坐标和所述半径,确定所述目标图像中,所述待识别区域的最小外接矩形所包括的区域,作为所述待识别区域的目标矩形区域;
44、若所述待识别区域为多边形,则基于所述最大横坐标、所述最小横坐标、所述最大纵坐标和所述最小纵坐标,确定所述目标图像中,所述待识别区域的最小外接矩形所包括的区域,作为所述待识别区域的目标矩形区域。
45、可选的,一种具体实现方式中,所述信息输出模块包括:
46、顶点确定子模块,用于针对所述目标矩形区域内的每个图形码,根据所述第一位置信息和该图形码的第二位置信息,确定该图形码的各个顶点是否均位于所述待识别区域内部;
47、第一确定子模块,用于若该图形码的各个顶点均位于所述待识别区域内部,且所述待识别区域为凸多边形或圆形,则将该图形码确定为待识别图形码;
48、第二确定子模块,用于若该图形码的各个顶点均位于所述待识别区域内部,且所述待识别区域为凹多边形,则确定该图形码所在的图形码区域内部是否存在所述待识别区域的顶点;
49、第三确定模块,用于若不存在,则将该图形码确定为待识别图形码。
50、可选的,一种具体实现方式中,所述顶点确定子模块具体用于:
51、针对所述目标矩形区域内的每个图形码,根据所述第一位置信息和该图形码的第二位置信息,执行如下步骤:
52、针对该图形码的每个顶点,确定以该顶点为起点,且以指定方向为延伸方向的射线,并确定所述射线与所述待识别区域的各个边缘线的交点的数量;
53、如果所述数量为奇数,则确定该顶点位于所述待识别区域内部;
54、如果所述数量为偶数,则确定该顶点未位于所述待识别区域内部。
55、可选的,一种具体实现方式中,所述顶点确定子模块具体用于:
56、遍历所述待识别区域的各个边缘线,在遍历到每个边缘线时,确定所述射线与所述边缘线的交点数量,并对预设计数值增加所述交点数量;其中,所述预设计数值的初始值为偶数;
57、在遍历完所述待识别区域的全部边缘线后,将所述预设计数值的当前数值确定为所述射线与所述待识别区域的各个边缘线的交点的数量。
58、可选的,一种具体实现方式中,所述目标矩形区域内的每个图形码的第二位置信息包括:该图形码的中心点位置、码宽度、码高度和码角度;
59、所述装置还包括:
60、坐标计算模块,用于针对所述目标矩形区域内的每个图形码,根据所述第一位置信息和该图形码的第二位置信息,基于该图形码的中心点位置、码宽度、码高度和码角度,计算该图形码的各个顶点的位置坐标;
61、所述顶点确定子模块具体用于:
62、针对所述目标矩形区域内的每个图形码,基于所述第一位置信息和该图形码的各个顶点的位置坐标,确定该图形码的各个顶点是否均位于所述待识别区域内部。
63、可选的,一种具体实现方式中,所述待识别图形码为所述待识别区域中所包括的指定类型的图形码;
64、所述区域确定模块具体用于:
65、确定所述目标矩形区域内的图形码类型为所述指定类型的各图形码的第二位置信息和释义信息;
66、所述信息输出模块具体用于:
67、确定所述目标矩形区域内的图形码类型为所述指定类型的各图形码中,位于所述待识别区域内部的所述待识别图形码。
68、第三方面,本技术实施例提供了一种电子设备,包括:
69、存储器,用于存放计算机程序;
70、处理器,用于执行存储器上所存放的程序时,实现上述任一所述的图形码识别方法。
71、第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的图形码识别方法。
72、本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的图形码识别方法。
73、本技术实施例有益效果:
74、以上可见,应用本技术实施例提供的方案,在对目标图像进行图形码识别时,可以先确定目标图像中包括待识别图形码的待识别区域和待识别区域的第一位置信息;然后,基于第一位置信息,确定目标图像中包括待识别区域的目标矩形区域,并确定目标矩形区域内的各图形码的第二位置信息和释义信息;最后,根据第一位置信息和第二位置信息,确定目标矩形区域内的各图形码中,位于待识别区域内部的待识别图形码,并输出待识别图形码的释义信息。
75、基于此,在对目标图像进行图形码识别时,可以只对目标矩形区域进行识别,而不必对整张目标图像进行识别。因此,应用本技术实施例提供的方案,可以降低图形码识别的计算量,提高图形码识别的效率。
76、另外,由于通常情况下,电子设备对除矩形图像外的不规则形状图像的识别效率较低,而在应用本技术实施例提供的方案,在对目标图像进行图形码识别时,可以对包括待识别区域的目标矩形区域进行识别,而不直接对待识别区域进行识别。因此,应用本技术实施例提供的方案,上述待识别区域的形状为任意形状时,均可以以较高的效率进行图形码识别,并输出待识别区域中的待识别图形码的释义信息。
77、并且,根据第一位置信息和第二位置信息,确定目标矩形区域内的各图形码中,位于待识别区域内部的待识别图形码,可以过滤掉目标矩形区域内的各图形码中,除待识别图形码外的图形码。因此,应用本技术实施例提供的方案,可以只输出待识别图形码的释义信息,从而降低除待识别图形码外的图形码的释义信息对图形码识别结果的干扰,提高图形码识别的准确性。
78、当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。