图像识别方法、设备、存储介质及程序产品与流程
1.本技术涉及图像处理技术领域,尤其涉及一种图像识别方法、设备、存储介质及程序产品。
背景技术:
2.图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术。
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.至少一个处理器;以及
37.与所述至少一个处理器通信连接的存储器;
38.其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行上述任一方面所述的方法。
39.第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述任一方面所述的方法。
40.第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方面所述的方法。
41.本技术实施例提供的图像识别方法、设备、存储介质及程序产品,响应于用户操作,通过将原始图像进行初步的目标检测,基于初步的图形码检测结果调用预设算法,采用预设算法并行对多个图形码执行编码识别,如此实现了在一图多码场景下一次性输出多个码的内容,提高终端的码识别效率,扩大了图形码识别的适用范围。
附图说明
42.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
43.图1为本技术实施例提供的一种电子设备的结构示意图;
44.图2a为本技术实施例提供的一种图像识别系统的场景架构示意图;
45.图2b为本技术实施例提供的一种用户界面的场景示意图;
46.图3为本技术实施例提供的一种图像识别方法的流程示意图;
47.图4为本技术实施例提供的又一种图像识别方法的流程示意图;
48.图5为本技术实施例提供的一种图像识别装置的结构示意图。
49.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
50.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。
51.本文中术语“和/或”,用于描述关联对象的关联关系,具体表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
52.为了清楚地描述本技术实施例的技术方案,首先对本技术所涉及的术语进行释义:
53.条形码:bar code,是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。
54.二维码:是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形。又称二维条码,常见的二维码为qr code,qr全称quick response,是一个近几年来移动设备上流行的一种编码方式,它比传统的bar code条形码能存更多的信息,也能表示更多的数据类型。
55.ai:artificial intelligence,人工智能,它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
56.cnn:convolutional neural networks,卷积神经网络。
57.svm:support vector machine,支持向量机。
58.yolo:you only look once,是一个用于目标检测的网络,目标检测任务包括确定图像中存在某些对象的位置,以及对这些对象进行分类,其仅仅使用一个cnn网络直接预测不同目标的类别与位置。
59.r-cnn:region-cnn,基于卷积神经网络(cnn),线性回归,和支持向量机(svm)等算法,实现目标检测技术。
60.mnn:是一个高效、轻量的深度学习框架。
61.app:application,应用程序。
62.如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以实现一图多码的一次性识别,提高终端的码识别效率,扩大图形码识别的适用范围。
63.于一实施例中,存储器12既可以是独立的,也可以跟处理器11集成在一起。
64.于一实施例中,电子设备1可以是手机、平板电脑、笔记本电脑、台式计算机或者多个计算机组成的大型运算系统。
65.本技术实施例可以应用于任意需要进行图像识别的领域。
66.对于电商场景而言,app的扫一扫是核心功能之一,它能帮助用户在复杂的图片中识别出多种类型的图形码、如二维码、条形码等。图形码识别是多个电商业务中不可缺少的一部分,可以广泛用于店铺分享、购物车分享、扫码登录、辨别商品真伪等场景。因此识码的速度和准确度,对于用户体验和电商平台的业务增长来说都是至关重要的。
67.随着电子信息技术的发展,电商业务越来越丰富,图形码也越来越普遍,往往一张图片中会包含多个图形码。而传统识码方法不支持多码识别功能,通常只能识别单个图形码,针对一图多码的场景,传统识码方法会随机选择一个码识别,或者让用户选择一个图形码进行识别,或者直接报错,这给用户带来了非常不好的体验。
68.为了解决上述问题,本技术实施例提供一种图像识别方案,可以实现一图多码的一次性识别,提高终端的码识别效率,扩大图形码识别的适用范围,进而提高终端的交互性能。
69.图2a为本技术实施例提供的一种图像识别系统200的场景示意图。如图2a所示,该系统包括:服务器210和终端220,其中,服务器210可以是电商的数据平台,比如线上购物平台等。实际场景中,一个线上购物平台可能有多个服务器210,图2a中以1个服务器210为例。终端220可以是登录线上购物平台时使用的电脑、手机、平板等设备,终端220也可以有多个,图2a中以2个终端220为例进行示意。
70.终端220和服务器210之间可以通过互联网进行信息传输,以使终端220可以访问服务器210上的数据。上述终端220和/或者服务器210均可以由电子设备1来实现。
71.以电商购物场景为例,服务器210中存储有在线购物的虚拟资源数据,比如图片、音视频等商品信息。服务器210还可以为用户管理账户信息。用户可以通过终端220登录至服务器210,并可以通过在终端220上录入操作指令,来访问服务器210上的数据,服务器210可以将终端220需要访问的数据展示在用户界面中,传输给终端220,进而使得用户可以通过终端220屏幕上展示的用户界面,查看服务器210上的商品信息。
72.如图2b所示,为本技术实施例终端220的用户界面221的示意图,用户界面221中可以配置有图形码识别的控件1,比如“扫一扫”对应的控件1。当用户想要识别图像中的图形码时,此时用户可以触发扫一扫功能,来识别特定图像中的多个图形码。比如一张实体图上的二维码和条形码,该二维码中携带有店铺链接,条形码中携带有物流信息。当用户想要查看该实体图中二维码和/或条形码的内容信息时,可以在用户界面221上触发控件1,开启扫一扫功能,来扫描该实体图,采用本技术实施例的方式进行一图多码的识别过程。服务器210中还可以部署有图形码识别的算法引擎,以对用户触发的图像识别操作提供算法支持。
73.下面结合附图,对本技术的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
74.请参看图3,其为本技术一实施例的图像识别方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2a至图2b所示的图像识别的应用场景中,以实现在一图多码场景下一次性输出多个码的内容,提高终端220的码识别效率,扩大图形码识别的适用范围,
进而提高终端220的交互体验。该方法包括如下步骤:
75.步骤301:响应于用户的操作指令,获取待处理的原始图像。
76.在本步骤中,当用户想要识别图像中的图形码时,可以触发扫一扫功能,来识别特定图像中的多个图形码。比如用户可以在手机屏幕上显示的用户界面221触发购物app的扫一扫功能。终端220响应于用户的操作,获取要识别的原始图像,此处原始图像是指用户选定的图像。该原始图像可以来源于数据库,比如手机本地数据库或者远端数据库等。原始图像也可以现场通过摄像头采集得到。用户可以基于实际需求选择,提高终端220的交互性能。
77.于一实施例中,步骤301具体可以包括:响应于第一操作指令,开启终端220的图像采集器,从图像采集器的采集结果中,选取原始图像。
78.在本实施例中,图像采集器可以是终端220的内置摄像头或者外接摄像头,第一操作指令可以是用于开启摄像头的指令,第一操作指令可以是触摸指令、隔空手势指令和语音指令中的一种或多种。当用户触发扫一扫功能后,终端220可以给出提示,询问用户是否开启摄像头,当用户确定开启摄像头时,可以通过第一操作指令触发开启,实时获取摄像头采集的图像,并从图像采集结果中选取合适的图片作为原始图像。比如一张实体图上的二维码和条形码,该二维码中携带有店铺链接,条形码中携带有物流信息,当用户想要查看该实体图中二维码和/或条形码的内容信息时,可以在手机app上触发扫一扫功能开启,来扫描该实体图,得到原始图像。该方式适用于现场采像的场景,便于用户灵活选择。
79.于一实施例中,步骤301具体还可以包括:响应于第二操作指令,从数据库中选取目标图像作为原始图像。
80.在本实施例中,数据库可以是本地数据库,比如手机的本地相册,也可以是远端数据库,比如云端服务器210中的相册。第二操作指令可以是用于开启数据库并进行图片选中的指令,第二操作指令也可以是触摸指令、隔空手势指令和语音指令中的一种或多种。有些场景下,待处理的原始图像可能是别的用户发来的电子图片,比如好友发来的店铺分享的图片,图片中有包含店铺链接的图形码,此时可以将该图片缓存到本地相册中,当用户想要识别该图中的图形码时,可以在相册中选择一张图片作为待处理的原始图像。该方式不需要开启摄像头,节约终端220资源,操作简单,便于用户灵活选择。
81.步骤302:对原始图像进行目标检测,得到原始图像中图形码的检测结果信息。
82.在本步骤中,在客户端侧,可以采用基于卷积神经网络的算法,对原始图像进行初步的目标检测,进而得到原始图像中可能包含的图形码,以降低后续码识别过程的计算量,提高识别效率。
83.于一实施例中,步骤302具体可以包括:对原始图像进行矫正处理。将矫正后的原始图像输入预设检测模型,输出原始图像中图形码的检测结果信息。
84.在本实施例中,原始图像可能存在倾斜、尺寸过小或者过大等现象,尤其是通过摄像头现场采像的场景,采集的原始图像会收到用户的拍摄技术的影响,原始图像的质量或好或坏,为了适用于不同的拍摄场景,可以通过yolo算法针对倾斜、大小不合适图片进行矫正处理,矫正处理后的图像可以更加准确的体现图形码的特征信息,因此可以提高目标检测的准确度。然后将校正后的原始图像输入到预先训练好的检测模型,检测模型就会输出检测结果信息,此处检测结果信息包含但不限于:原始图像中每个图形码的类型、每个图形
码的大小、每个图形码的位置和每个图形码的置信度中的一个或多个。如此,通过预设的检测模型对原始图像中的图形码的数量、位置、类型进行预判,可以为后续的识码过程节省很多计算量,提高整体识码过程的效率。
85.于一实施例中,在将矫正后的原始图像输入预设检测模型,输出原始图像中图形码的检测结果信息之前,还包括训练预设检测模型的步骤,如下:获取样本图象集,样本图像集中包括多个样本图像,每个样本图像中包括不同的样本图形码。对样本图象集进行标注,标注内容包括:每个样本图形码的类型、每个样本图形码的大小和每个样本图形码的位置。采用标注的样本图象集训练预设的神经网络模型,得到预设检测模型。
86.在本实施例中,样本图象集可以通过图像采集获得,或者通过第三方数据库获得。由于后续的识码过程是基于预设检测模型的输出结果,因此预设检测模型采用的智能算法的精确度和效率是至关重要的。在模型训练过程中,对样本图像的标注准确度和量级均有一定的要求。比如样本图像集中包括尽可能多的样本图像,样本图像中的图形码分布尽量丰富,在标注的时候,分别标注每一个样本图像中每个样本图形码的类型、每个样本图形码的大小和每个样本图形码的位置等信息,多样丰富的样本图像集,可以使训练得到的检测模型更加准确。
87.神经网络模型可以采用yolo算法模型,yolo智能算法相比传统的r-cnn(区域卷积分算法)耗时更短。
88.步骤303:当检测结果信息中包括多个图形码时,基于检测结果信息调用预设算法。
89.在本步骤中,预设算法可以是基于mnn的智能算法也可以是其他具备并行能力的中台算法。此处当检测结果信息中包括多个图形码时,可以利用mnn的智能算法并行处理能力,提高yolo智能算法的运行速度,进一步提高检测模型的效率。
90.于一实施例中,可以依赖mnn的模型动态更新能力,实现检测模型的动态更新,不依赖客户端发版,可以快速迭代,提高效率。
91.步骤304:采用预设算法分别对多个图形码并行执行编码识别,得到原始图像中多个图形码对应的内容信息。
92.在本步骤中,对于多个图形码的情况,可以采用预设算法并行执行编码识别的过程,比如使用mnn作为中台进行实施,利用mnn的智能算法并行处理能力,来提高编码识别的运行速度,提高识别效率。
93.于一实施例中,步骤304具体可以包括:根据检测结果信息,采用预设算法将原始图像切割成多个子图像,其中,一个子图像中包括一个图形码的检测结果信息。采用预设算法,对多个子图像中的图形码并行执行编码识别,得到原始图像中多个图形码对应的内容信息。
94.在本实施例中,检测结果信息中可以包括原始图像中可能存在的图形码的类型和位置,可以基于此采用预设算法将原始图像切割成多个子图像,切割后的一个子图像中包括检测模型认为的一个图形码的检测结果信息。就是说,步骤302中预设检测模型输出的是原始图像中可能包含的图形码的检测结果,为了能够把原始图像中多个图形码都识别出来,采用预设算法将原始图像按照图形码进行切割,一个子图像中包括一个可能的图形码。切割后的子图像相较于原始图像数据量更小,可以提高图像识别速率。比如一张原始图像
中包括3个图形码,在步骤302中检测模型给出了这个3个图形码的类型分别为:二维码、二维码和条形码,并给出了对应的位置,则可以将这个三个图形码分别切割到一个子图像上,就是原始图像被切割成3个子图像。对于切割后的子图像,可以分别并行执行编码识别,假设将原始图像切割成3个子图像,则可以并行对这3个子图像执行编码识别过程,提高识别速度。图形码是一种编码图像,编码识别的过程就是解码的过程,由于子图像中只包含一个图形码,因此识别速度相对较快。
95.于一实施例中,检测结果信息中包括:原始图像中每个图形码的大小、每个图形码的位置和每个图形码的置信度。此时根据检测结果信息,采用预设算法将原始图像切割成多个子图像具体可以包括:根据检测结果信息,筛选出置信度大于预设阈值的目标图形码。根据每个目标图形码的大小、每个目标图形码的位置,将原始图像切割成多个子图像,一个子图像中包括一个目标图形码的检测结果信息。
96.在本实施例中,预设检测模型可以输出原始图像中每个图形码的大小、每个图形码的位置以及每个图形码的置信度,置信度可以表征一个目标是图形码的可能性大小,置信度越大,这个目标是图形码的概率就越大,在计算时,可以通过置信度筛选出可能性较大的目标图形码,然后基于目标图形码的大小和位置,来切割原始图像,得到的多个子图像中,一个子图像中会包括一个目标图形码的检测结果信息,如此可以进一步节省后续的数据计算量,提高计算效率。
97.预设阈值可以基于实际需求设定,如果解码算法对精度要求比较高,则可以将预设阈值相应的配置较高一点,以适应后续解码算法。
98.于一实施例中,步骤304具体可以包括:根据每个图形码的类型,获取每个图形码对应的解码算法。基于每个图形码对应的解码算法,分别对相应的图形码进行编码识别,得到原始图像中图形码对应的内容信息。
99.在本实施例中,检测结果信息中可以包括:原始图像中每个图形码的类型。类型可以是图形码的编码类型,比如二维码、条形码等类型。每种编码类型都可以预先配置对应的解码算法,在对多个图形码进行编码识别时,可以通过类型来查询到对应的解码算法,进而基于每个图形码对应的解码算法,分别对相应的图形码进行编码识别,得到原始图像中图形码对应的内容信息。比如二维码,可以采用二维码的解码算法对其进行编码识别,得到该二维码包含的内容信息。一个条形码,可以采用条形码的解码算法对其进行编码识别,得到该条形码包含的内容信息。如此,通过图形码类型,匹配到对应的解码算法,来对图形码进行解码,解码过程调理清晰不混杂,提高计算效率。
100.步骤305:输出原始图像中多个图形码对应的内容信息到终端220的用户界面221。
101.在本步骤中,可以将最终多个图形码的识别结果进行汇总输出,展示在用户界面221中,比如展示在用户手机的界面中,用户可以实时查看每个图形码的内容信息。此处可以基于图形码在原始图像中的位置,将对应的内容信息展示在图形码的附近,或者以半透明提示框的方式展示在图形码的上方,以供用户查看和点击,提高终端220的交互性能。
102.上述图像识别方法,通过响应于用户操作,将原始图像进行初步的目标检测,基于初步的图形码检测结果调用预设算法,采用预设算法并行对多个图形码执行编码识别,如此实现了在一图多码场景下一次性输出多个码的内容,提高终端220的码识别效率,扩大了图形码识别的适用范围。
103.另一方面,利用人工智能算法(比如yolo算法)对于图片中可能出现的码位置进行预处理,输出码类型、位置、置信度等,大幅降低了后续的处理工作量,提高计算效率。利用mnn的智能算法并行处理能力,提高yolo智能算法的运行速度。使用yolo人工智能算法和传统解码策略结合的方式进行解码,在保证识码精确度的前提下,提高效率。
104.请参看图4,其为本技术一实施例的图像识别方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2a至图2b所示的图像识别的应用场景中,以实现在一图多码场景下一次性输出多个码的内容,提高终端220的码识别效率,扩大图形码识别的适用范围,进而提高终端220的交互体验。本实施例以相机链路获取原始图像为例进行详细说明,该方法包括如下步骤:
105.步骤401:响应于第一操作指令,开启终端220的图像采集器。详细参见上述实施例中对步骤301的描述。
106.步骤402:获取采集结果中的当前帧图像。
107.在本步骤中,图像采集器以手机的摄像头为例,当步骤401中开启了摄像头时,摄像头会实时捕捉镜头内扫描到的画面,采集结果就是实时的拍摄画面,终端220实时从拍摄画面中读取当前帧图像。
108.步骤403:判断当前帧图像中是否存在清晰度达到预设值的目标物。若是,进入步骤404,否则丢弃当前帧图像,并可以返回步骤402获取下一帧图像。
109.在本步骤中,目标物是指图形码,对于从相机链路获取待处理的原始图像的场景,由于摄像头采集的图像会受到用户拍摄习惯、相机硬件参数以及现场环境等因素的影响,在拍摄过程中可能会出现晃动、摇摆等情况,此时可能会导致摄像头的拍摄画面是模糊的,拍摄的图像中的图形码也是模糊的,这种情况无法准确识别出图形码,因此这样的当前帧图像就是不符合标准的。而有些场景可能是用户误操作使得摄像头对着一张纯物体进行拍照,这时得到的当前帧图像会是纯的,不包含图形码,也就没有必要进行后续的编码识别过程。因此,为了避免模糊不清或者不存在图形码的图像浪费计算资源,可以先对摄像头采集到的图像进行筛选,判断当前帧图像中是否存在清晰度达到预设值的目标物,如果是进入步骤404,否则,说明当前帧图像可能是模糊的或者纯的,不符合编码识别标准,可以丢弃当前帧图像,并返回步骤402,对采集结果中的下一帧图像进行检测,继续筛选判断,直至选出符合标准的图像帧作为原始图。筛选过程,可以减少不必要的资源浪费,进一步提高图形码识别效率。
110.其中,清晰度的预设值可以基于实际需求灵活设定,如果对识别精度要求较高,则需要原始图像的清晰度较高,此时可以将清晰度的预设值配置的高一点,如果识别精度要求没那么高,那么相应地清晰度的预设值也可以稍低一些。只要能够保证最终识别出图形码中的内容信息就可以。
111.步骤404:将当前帧图像作为原始图像。
112.在本步骤中,当当前帧图像中存在清晰度达到预设值的目标物时,也就是当前帧图像清晰度是足够的,并且包含图形码,此时将当前帧图像作为待处理的原始图像。
113.步骤405:对原始图像进行目标检测,得到原始图像中图形码的检测结果信息。详细参见上述实施例中对步骤302的描述。
114.步骤406:当检测结果信息中包括多个图形码时,基于检测结果信息调用预设算
法。详细参见上述实施例中对步骤303的描述。
115.步骤407:根据检测结果信息,采用预设算法将原始图像切割成多个子图像,其中,一个子图像中包括一个图形码的检测结果信息。详细参见上述实施例中对步骤304的描述。
116.步骤408:对子图像进行二值化处理。
117.在本步骤中,图像的二值化,就是将图像上的像素点的灰度值设置为0或255,把大于某个临界灰度值的像素灰度设为灰度极大值,把小于这个值的像素灰度设为灰度极小值,从而实现二值化,二值图像是每个像素只有两个可能值的数字图像。预设算法中可以包括具备并行执行二值化处理的算法,因此可以采用并行执行的方式,分别将每个子图像进行二值化处理,可以降低图像的计算量,简化计算过程。
118.在并行执行过程中,可以借助终端部署的预设算法,并行执行二值化过程,也可以是借助中台服务器210中部署的算法引擎mnn的并行能力,来提高计算效率。
119.步骤409:在二值化处理后的每个子图像中,建立图形码区域。
120.在本步骤中,二值化处理的后的子图像为二值图像,便于计算,由于图形码所在区域的像素值是区别于子图像中的其他像素点的像素值的,因此可以基于像素点的分布,在二值化的子图像中分别框出图形码的像素点所在的区域,建立图形码区域。
121.然后对每个子图像的图形码区域进行编码识别,得到原始图像中图形码对应的内容信息。可以采用并行执行的方式对每个图像执行编码识别过程,具体如下:
122.步骤410:对每个子图像的图形码区域进行编码识别,判断是否有识别出对应的内容信息。如果有进入步骤412,否则进入步骤411。
123.在本步骤中,此处可以采用子图像中图形码对应类型的解码算法来实现编码识别。比如一个二维码的图形码区域,可以采用二维码的解码算法对其进行编码识别。一个条形码的图形码区域,可以采用条形码的解码算法对其进行编码识别。由于子图像是在步骤404的初步目标检测结果的基础上切割得到的,如果步骤404中的目标检测过程不够准确,也会导致一个子图像中的图形码是不存在的,这样也就无法识别出对应的内容信息。为了减少这种情况带来的损失,提高识别精准度,可以对每个子图像的编码识别结果进行筛选,判断该子图像经过编码识别后是否有识别出的对应内容信息,如果有进入步骤412,否则进入步骤411。
124.步骤411:判断子图像的二值化次数是否小于预设次数。若是,返回步骤408。
125.在本步骤中,若子图像的图形码区域未识别出对应的内容信息,则说明该子图像中可能原本就不包含图形码,也可能是该子图像中包含图形码,但是步骤410中的编码识别过程未能准确识别出来,为了避免遗漏图形码,可以对该子图像再次进行识别。另一方面,多一次识别也就多消耗时长,过长的识别时间对用户来说是不希望看到的,因此通过配置多次识别的预设次数,来限制最终的识别时长。
126.若子图像的图形码区域未识别出对应的内容信息,则首先判断该子图像的二值化次数是否小于预设次数,如果是,则说明该子图像的预设次数还未用完,在时长允许范围内,可以返回步骤408,继续对子图像再次进行二值化处理以及后续码识别流程。否则,说明该子图像的预设次数已经用完了,识别时长已经比较长了,此时还未能识别出内容信息,很大可能是该子图像中原本就没有图形码,则可以丢弃该子图像。
127.于一实施例中,当原始图像为终端220的图像采集器采集的图像时,预设次数为第
一次数,当原始图像为数据库中的图像时,预设次数为第二次数,其中,第一次数小于第二次数。
128.在本实施例中,在扫一扫业务的实际场景中,一般由两个情况:相机链路和相册链路。相机链路偏重于快速返回识别结果,相册链路则更加偏重精确度,因此本方案跟进业务场景设计了效率优先和精确度优先两种策略。
129.相机链路情况下,用户对于识别过程的耗时要求较高,即用户希望能够快速识别出镜头中的图形码,因此对子图像进行二值化的第一次数可以配置稍低。由于相册链路用户心理上预期耗时较长,因此在处理流程上精确度优先,为了达到目的,在编码识别流程中进行二值化处理的第二次数可以大于第一次数,以便得到精确的结果。
130.于一实施例中,若预设检测模型的精确度不是很高的情况下,也可以适当增加二值化的预设次数,来均衡最终的识别精度。
131.步骤412:将识别出的内容信息与原始图像中其他子图像的识别结果汇总,得到原始图像中多个图形码对应的内容信息。
132.在本步骤中,若子图像识别出对应的内容信息,则将并行执行的各个编码识别流程中识别出的内容信息进行汇总,汇总过程中,一个图形码对应一个识别出的内容信息,将汇总的结果作为该原始图像中多个图形码对应的内容信息。
133.步骤413:输出原始图像中多个图形码对应的内容信息到终端220的用户界面221。详细参见上述实施例中对步骤305的描述。
134.上述图像识别方法,对于可能出现的码位置进行并行处理,并适当增加二值化的次数来进一步增加精确度。可以根据相册链路和相机链路的场景不同,增加或减少二值化的次数,来达到精确度优先和效率优先的不同结果,便于在不同业务场景下进行切换,提高终端220的交互性能。
135.本方案可以广泛应用于客户端app的扫一扫和拍照识图的模块上,可以快速、准确地识别到用户相册和摄像机镜头里的二维码、条形码等,从而为货品分享、店铺分享、订单分享、物流查询、货品正品鉴别等业务提供保障。
136.请参看图5,其为本技术一实施例的图像识别装置500,该装置可应用于图1所示的电子设备1,并可以应用于图2a至图2b所示的图像识别的应用场景中,以实现在一图多码场景下一次性输出多个码的内容,提高终端220的码识别效率,扩大图形码识别的适用范围,进而提高终端220的交互体验。该装置包括:获取模块501、检测模块502、调用模块503和识别模块504,各个模块的功能如下:
137.获取模块501,用于响应于用户的操作指令,获取待处理的原始图像。
138.检测模块502,用于对原始图像进行目标检测,得到原始图像中图形码的检测结果信息。
139.调用模块503,用于当检测结果信息中包括多个图形码时,基于检测结果信息调用预设算法。
140.识别模块504,用于采用预设算法分别对多个图形码并行执行编码识别,得到原始图像中多个图形码对应的内容信息。
141.输出模块506,用于输出原始图像中多个图形码对应的内容信息到终端220的用户界面221。
142.于一实施例中,获取模块501,用于响应于第一操作指令,开启终端220的图像采集器,从图像采集器的采集结果中,选取原始图像。
143.于一实施例中,获取模块501,具体用于获取采集结果中的当前帧图像。判断当前帧图像中是否存在清晰度达到预设值的目标物。当当前帧图像中存在清晰度达到预设值的目标物时,将当前帧图像作为原始图像,否则,丢弃当前帧图像,并对采集结果中的下一帧图像进行检测,直至选出原始图像。
144.于一实施例中,获取模块501,还用于响应于第二操作指令,从数据库中选取目标图像作为原始图像。
145.于一实施例中,检测模块502,用于对原始图像进行矫正处理。将矫正后的原始图像输入预设检测模型,输出原始图像中图形码的检测结果信息,其中,检测结果信息中包括:原始图像中每个图形码的类型、每个图形码的大小、每个图形码的位置和每个图形码的置信度中的一个或多个。
146.于一实施例中,还包括:训练模块505,用于在将矫正后的原始图像输入预设检测模型,输出原始图像中图形码的检测结果信息之前,获取样本图象集,样本图像中包括不同的样本图形码。对样本图象集进行标注,标注内容包括:每个样本图形码的类型、每个样本图形码的大小和每个样本图形码的位置。采用标注的样本图象集训练预设的神经网络模型,得到预设检测模型。
147.于一实施例中,识别模块504,用于根据检测结果信息,采用预设算法将原始图像切割成多个子图像,其中,一个子图像中包括一个图形码的检测结果信息;采用预设算法,对多个子图像中的图形码并行执行编码识别,得到原始图像中多个图形码对应的内容信息。
148.于一实施例中,检测结果信息中包括:原始图像中每个图形码的大小、每个图形码的位置和每个图形码的置信度。识别模块504,用于根据检测结果信息,筛选出置信度大于预设阈值的目标图形码。根据每个目标图形码的大小、每个目标图形码的位置,将原始图像切割成多个子图像,一个子图像中包括一个目标图形码的检测结果信息。
149.于一实施例中,检测结果信息中包括:原始图像中每个图形码的类型。识别模块504,用于根据每个图形码的类型,获取每个图形码对应的解码算法。基于每个图形码对应的解码算法,分别对相应的图形码进行编码识别,得到原始图像中多个图形码对应的内容信息。
150.于一实施例中,识别模块504,用于分别对每个子图像进行二值化处理。在二值化处理后的每个子图像中,建立图形码区域。对每个子图像的图形码区域进行编码识别,得到原始图像中多个图形码对应的内容信息。
151.于一实施例中,识别模块504,还用于对每个子图像的图形码区域进行编码识别,判断是否有识别出对应的内容信息。若子图像未识别出内容信息,则判断子图像的二值化次数是否小于预设次数。若子图像的二值化次数小于预设次数,则对子图像再次进行二值化处理以及后续码识别流程,否则,丢弃子图像。若子图像识别出对应的内容信息,则将识别出的内容信息与原始图像中其他子图像的识别结果汇总,得到原始图像中多个图形码对应的内容信息。
152.于一实施例中,当原始图像为终端220的图像采集器采集的图像时,预设次数为第
一次数,当原始图像为数据库中的图像时,预设次数为第二次数,其中,第一次数小于第二次数。
153.上述图像识别装置500的详细描述,请参见上述实施例中相关方法步骤的描述,其实现原理和技术效果类似,本实施例此处不再赘述。
154.本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现前述任一实施例的方法。
155.本技术实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一实施例的方法。
156.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
157.上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本技术各个实施例方法的部分步骤。
158.应理解,上述处理器可以是中央处理单元(central processing unit,简称cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。
159.上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
160.一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuits,简称asic)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
161.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
162.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
163.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下
前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例的方法。
164.本技术的技术方案中,所涉及的用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
165.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
技术特征:
1.一种图像识别方法,其特征在于,包括:响应于用户的操作指令,获取待处理的原始图像;对所述原始图像进行目标检测,得到所述原始图像中图形码的检测结果信息;当所述检测结果信息中包括多个图形码时,基于所述检测结果信息调用预设算法;采用所述预设算法分别对所述多个图形码并行执行编码识别,得到所述原始图像中多个图形码对应的内容信息;输出所述原始图像中多个图形码对应的内容信息到终端的用户界面。2.根据权利要求1所述的方法,其特征在于,所述响应于用户的操作指令,获取待处理的原始图像,包括:响应于第一操作指令,开启终端的图像采集器,从所述图像采集器的采集结果中,选取所述原始图像。3.根据权利要求2所述的方法,其特征在于,所述从所述图像采集设备的采集结果中,选取所述原始图像,包括:获取所述采集结果中的当前帧图像;判断所述当前帧图像中是否存在清晰度达到预设值的目标物;当所述当前帧图像中存在清晰度达到所述预设值的所述目标物时,将所述当前帧图像作为所述原始图像,否则,丢弃所述当前帧图像,并对所述采集结果中的下一帧图像进行检测,直至选出所述原始图像。4.根据权利要求1所述的方法,其特征在于,所述响应于用户的操作指令,获取待处理的原始图像,包括:响应于第二操作指令,从数据库中选取目标图像作为所述原始图像。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述对所述原始图像进行目标检测,得到所述原始图像中图形码的检测结果信息,包括:对所述原始图像进行矫正处理;将矫正后的原始图像输入预设检测模型,输出所述原始图像中图形码的检测结果信息,其中,所述检测结果信息中包括:所述原始图像中每个所述图形码的类型、每个所述图形码的大小、每个所述图形码的位置和每个所述图形码的置信度中的一个或多个。6.根据权利要求5所述的方法,其特征在于,在所述将矫正后的原始图像输入预设检测模型,输出所述原始图像中图形码的检测结果信息之前,还包括:获取样本图像集,所述样本图像集中包括多个样本图像,每个所述样本图像中包括不同的样本图形码;对所述样本图像集进行标注,标注内容包括:每个所述样本图形码的类型、每个所述样本图形码的大小和每个所述样本图形码的位置;采用标注的样本图像集训练预设的神经网络模型,得到所述预设检测模型。7.根据权利要求1所述的方法,其特征在于,所述采用所述预设算法分别对所述多个图形码并行执行编码识别,得到所述原始图像中多个图形码对应的内容信息,包括:根据所述检测结果信息,采用所述预设算法将所述原始图像切割成多个子图像,其中,一个所述子图像中包括一个图形码的检测结果信息;采用所述预设算法,对所述多个子图像中的图形码并行执行编码识别,得到所述原始
图像中多个图形码对应的内容信息。8.根据权利要求7所述的方法,其特征在于,所述检测结果信息中包括:所述原始图像中每个所述图形码的大小、每个所述图形码的位置和每个所述图形码的置信度;所述根据所述检测结果信息,采用所述预设算法将所述原始图像切割成多个子图像,包括:根据所述检测结果信息,筛选出所述置信度大于预设阈值的目标图形码;根据每个所述目标图形码的大小、每个所述目标图形码的位置,将所述原始图像切割成多个子图像,一个所述子图像中包括一个所述目标图形码的检测结果信息。9.根据权利要求7所述的方法,其特征在于,所述采用所述预设算法,对所述多个子图像中的图形码并行执行编码识别,得到所述原始图像中多个图形码对应的内容信息,包括并行执行如下步骤:分别对每个所述子图像进行二值化处理;在二值化处理后的每个所述子图像中,建立图形码区域;对每个所述子图像的所述图形码区域进行编码识别,得到所述原始图像中多个图形码对应的内容信息。10.根据权利要求9所述的方法,其特征在于,所述对每个所述子图像的所述图形码区域进行编码识别,得到所述原始图像中多个图形码对应的内容信息,包括:对每个所述子图像的所述图形码区域进行编码识别,判断是否有识别出对应的内容信息;若所述子图像未识别出内容信息,则判断所述子图像的二值化次数是否小于预设次数;若所述子图像的二值化次数小于所述预设次数,则对所述子图像再次进行二值化处理以及后续码识别流程,否则,丢弃所述子图像;若所述子图像识别出对应的内容信息,则将识别出的内容信息与所述原始图像中其他子图像的识别结果汇总,得到所述原始图像中多个图形码对应的内容信息。11.根据权利要求10所述的方法,其特征在于,当所述原始图像为终端的图像采集器采集的图像时,所述预设次数为第一次数,当所述原始图像为数据库中的图像时,所述预设次数为第二次数,其中,所述第一次数小于第二次数。12.根据权利要求1所述的方法,其特征在于,所述检测结果信息中包括:所述原始图像中每个所述图形码的类型;所述采用所述预设算法分别对所述多个图形码并行执行编码识别,得到所述原始图像中多个图形码对应的内容信息,包括:根据每个所述图形码的类型,获取每个所述图形码对应的解码算法;基于每个所述图形码对应的解码算法,分别对相应的图形码并行执行编码识别,得到所述原始图像中图形码对应的内容信息。13.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行权利要求1-12任一项所述的方法。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机
执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-12任一项所述的方法。15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-12任一项所述的方法。
技术总结
本申请提供一种图像识别方法、设备、存储介质及程序产品,其中方法包括响应于用户的操作指令,获取待处理的原始图像;对所述原始图像进行目标检测,得到所述原始图像中图形码的检测结果信息;当所述检测结果信息中包括多个图形码时,基于所述检测结果信息调用预设算法;采用所述预设算法分别对所述多个图形码并行执行编码识别,得到所述原始图像中多个图形码对应的内容信息;输出所述原始图像中多个图形码对应的内容信息到终端的用户界面。本申请实现了在一图多码场景下一次性输出多个码的内容,提高终端的码识别效率,扩大了图形码识别的适用范围。别的适用范围。别的适用范围。