CN113761961B - 一种二维码识别方法和装置 - Google Patents

一种二维码识别方法和装置 Download PDF

Info

Publication number
CN113761961B
CN113761961B CN202111044728.0A CN202111044728A CN113761961B CN 113761961 B CN113761961 B CN 113761961B CN 202111044728 A CN202111044728 A CN 202111044728A CN 113761961 B CN113761961 B CN 113761961B
Authority
CN
China
Prior art keywords
image
decoding
target
dimensional code
identified
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111044728.0A
Other languages
English (en)
Other versions
CN113761961A (zh
Inventor
张涛
万其明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202111044728.0A priority Critical patent/CN113761961B/zh
Publication of CN113761961A publication Critical patent/CN113761961A/zh
Application granted granted Critical
Publication of CN113761961B publication Critical patent/CN113761961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1482Methods for optical code recognition the method including quality enhancement steps using fuzzy logic or natural solvers, such as neural networks, genetic algorithms and simulated annealing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Toxicology (AREA)
  • General Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Automation & Control Theory (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)

Abstract

本申请实施例提供了一种二维码识别方法和装置,涉及图像处理技术领域,方法包括:若待识别图像的分辨率小于指定分辨率,对待识别图像进行填充,得到指定分辨率的目标图像;若待识别图像的分辨率大于指定分辨率,对待识别图像进行切分,得到多个指定分辨率的目标图像;将得到的目标图像输入至卷积译码模型,得到对应的目标译码矩阵;若得到的目标译码矩阵为一个,则根据生成二维码的编码规则对应的译码规则,对该目标译码矩阵进行译码,得到待识别图像的识别结果;反之,则对各目标译码矩阵进行组合,并根据译码规则对组合结果进行译码,得到待识别图像的识别结果。能够提高卷积译码模型的适用范围,降低卷积译码模型的部署成本。

Description

一种二维码识别方法和装置
技术领域
本申请涉及图像处理技术领域,特别是涉及一种二维码识别方法和装置。
背景技术
二维码是用特定的几何图形,按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形。另外,随着计算机技术的快速发展,二维码被应用于越来越多的场景中。例如,电商、物流、汽车、电池、医药行业等。
发明内容
本申请实施例的目的在于提供一种二维码识别方法和装置,能够提高卷积译码模型的适用范围,降低卷积译码模型的部署成本。具体技术方案如下:
第一方面,为了达到上述目的,本申请实施例公开了一种二维码识别方法,所述方法包括:
获取包含二维码的待识别图像;
若所述待识别图像的分辨率小于指定分辨率,对所述待识别图像进行填充,得到所述指定分辨率的目标图像;其中,所述指定分辨率表示训练卷积译码模型所使用的样本图像的分辨率;所述卷积译码模型用于获取输入的图像中二维码对应的译码矩阵;
若所述待识别图像的分辨率大于所述指定分辨率,对所述待识别图像进行切分,得到多个所述指定分辨率的目标图像;
将得到的目标图像输入至所述卷积译码模型,得到对应的目标译码矩阵;
若得到的目标译码矩阵为一个,则根据生成所述二维码的编码规则对应的译码规则,对该目标译码矩阵进行译码,得到所述待识别图像的识别结果;
若得到的目标译码矩阵为多个,则对各目标译码矩阵进行组合,并根据所述译码规则对组合结果进行译码,得到所述待识别图像的识别结果。
可选的,所述对所述待识别图像进行切分,得到多个所述指定分辨率的目标图像,包括:
确定所述待识别图像中二维码内部的各个用于定位的功能边,与所述待识别图像中二维码的边界线的交点;
针对相对的两个边界线中每两个对应位置处的交点,确定以该两个交点为端点的线段,作为目标线段;
确定所述待识别图像中以所述边界线和所述目标线段为边界的多个最小的四边形区域,作为待处理区域;
针对每一待处理区域,基于该待处理区域的图像,得到对应的所述指定分辨率的目标图像。
可选的,所述针对每一待处理区域,基于该待处理区域的图像,得到对应的所述指定分辨率的目标图像,包括:
针对每一待处理区域,将该待处理区域的图像,以及该待处理区域邻域内指定大小区域的图像,确定为对应的第一图像;
生成每一第一图像对应的所述指定分辨率的目标图像。
可选的,所述生成每一第一图像对应的所述指定分辨率的目标图像,包括:
对每一第一图像进行透视变换,得到第二图像;其中,所述第二图像中每一二维码块包含的像素点的数目,与所述样本图像中每一二维码块包含的像素点的数目相同;
对每一第二图像进行填充,得到所述指定分辨率的目标图像。
可选的,所述卷积译码模型采用如下步骤训练获得:
获得包含二维码的样本图像,以及所述样本图像中二维码对应的样本译码矩阵;
将所述样本图像输入至待训练的卷积译码模型,得到预测译码矩阵;
基于所述预测译码矩阵与所述样本译码矩阵,调整所述卷积译码模型的模型参数,继续训练,直到所述卷积译码模型收敛。
第二方面,为了达到上述目的,本申请实施例公开了一种二维码识别装置,所述装置包括:
待识别图像获取模块,用于获取包含二维码的待识别图像;
图像填充模块,用于若所述待识别图像的分辨率小于指定分辨率,对所述待识别图像进行填充,得到所述指定分辨率的目标图像;其中,所述指定分辨率表示训练卷积译码模型所使用的样本图像的分辨率;所述卷积译码模型用于获取输入图像对应的译码矩阵;
图像切分模块,用于若所述待识别图像的分辨率大于所述指定分辨率,对所述待识别图像进行切分,得到多个所述指定分辨率的目标图像;
目标译码矩阵获取模块,用于将得到的目标图像输入至所述卷积译码模型,得到对应的目标译码矩阵;
第一译码模块,用于若得到的目标译码矩阵为一个,则根据生成所述二维码的编码规则对应的译码规则,对该目标译码矩阵进行译码,得到所述待识别图像的识别结果;
第二译码模块,用于若得到的目标译码矩阵为多个,则对各目标译码矩阵进行组合,并根据所述译码规则对组合结果进行译码,得到所述待识别图像的识别结果。
可选的,所述图像切分模块,包括:
交点确定子模块,用于确定所述待识别图像中二维码内部的各个用于定位的功能边,与所述待识别图像中二维码的边界线的交点;
目标线段确定子模块,用于针对相对的两个边界线中每两个对应位置处的交点,确定以该两个交点为端点的线段,作为目标线段;
待处理区域确定子模块,用于确定所述待识别图像中以所述边界线和所述目标线段为边界的多个最小的四边形区域,作为待处理区域;
目标图像获取子模块,用于针对每一待处理区域,基于该待处理区域的图像,得到对应的所述指定分辨率的目标图像。
可选的,所述目标图像获取子模块,包括:
第一图像确定单元,用于针对每一待处理区域,将该待处理区域的图像,以及该待处理区域邻域内指定大小区域的图像,确定为对应的第一图像;
目标图像获取单元,用于生成每一第一图像对应的所述指定分辨率的目标图像。
可选的,所述目标图像获取单元,具体用于对每一第一图像进行透视变换,得到第二图像;其中,所述第二图像中每一二维码块包含的像素点的数目,与所述样本图像中每一二维码块包含的像素点的数目相同;
对每一第二图像进行填充,得到所述指定分辨率的目标图像。
可选的,所述装置还包括:
卷积译码模型训练模块,用于获得包含二维码的样本图像,以及所述样本图像中二维码对应的样本译码矩阵;
将所述样本图像输入至待训练的卷积译码模型,得到预测译码矩阵;
基于所述预测译码矩阵与所述样本译码矩阵,调整所述卷积译码模型的模型参数,继续训练,直到所述卷积译码模型收敛。
在本申请实施的另一方面,为了达到上述目的,本申请实施例还公开了一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现如上述任一所述的二维码识别方法。
在本申请实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一所述的二维码识别方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的二维码识别方法。
本申请实施例有益效果:
本申请实施例提供的二维码识别方法,可以获取包含二维码的待识别图像;若待识别图像的分辨率小于指定分辨率,对待识别图像进行填充,得到指定分辨率的目标图像;其中,指定分辨率表示训练卷积译码模型所使用的样本图像的分辨率;卷积译码模型用于获取输入的图像中二维码对应的译码矩阵;若待识别图像的分辨率大于指定分辨率,对待识别图像进行切分,得到多个指定分辨率的目标图像;将得到的目标图像输入至卷积译码模型,得到对应的目标译码矩阵;若得到的目标译码矩阵为一个,则根据生成二维码的编码规则对应的译码规则,对该目标译码矩阵进行译码,得到待识别图像的识别结果;若得到的目标译码矩阵为多个,则对各目标译码矩阵进行组合,并根据译码规则对组合结果进行译码,得到待识别图像的识别结果。
基于上述处理,能够利用同一个卷积译码模型,对不同分辨率的待识别图像进行识别,能够提高卷积译码模型的适用范围。即,针对多种不同分辨率的待识别图像,只需要部署一个卷积译码模型,也就能够降低卷积译码模型的部署成本。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的一种二维码识别方法的流程图;
图2为本申请实施例提供的一种对图像进行填充的示意图;
图3为本申请实施例提供的一种对待识别图像进行切分的流程图;
图4为本申请实施例提供的一种二维码的示意图;
图5为本申请实施例提供的一种待处理区域的示意图;
图6为本申请实施例提供的另一种对待识别图像进行切分的流程图;
图7为本申请实施例提供的另一种对待识别图像进行切分的流程图;
图8为本申请实施例提供的一种训练卷积译码模型的流程图;
图9为本申请实施例提供的一种二维码识别的流程示意图;
图10为图9中识别模块的识别流程示意图;
图11为图9中识别模块的识别原理示意图;
图12为本申请实施例提供的一种二维码识别装置的结构图;
图13为本申请实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种二维码识别方法,该方法可以应用于电子设备,该电子设备可以获取包含二维码的待识别图像,并对待识别图像进行识别。例如,该电子设备可以采集包含二维码的待识别图像,以进行识别,或者,该电子设备也可以获取其他设备采集的包含二维码的待识别图像,并进行识别。
参见图1,图1为本申请实施例提供的一种二维码识别方法的流程图,该方法可以包括以下步骤:
S101:获取包含二维码的待识别图像。
S102:若待识别图像的分辨率小于指定分辨率,对待识别图像进行填充,得到指定分辨率的目标图像。
其中,指定分辨率表示训练卷积译码模型所使用的样本图像的分辨率。卷积译码模型用于获取输入的图像中二维码对应的译码矩阵。
S103:若待识别图像的分辨率大于指定分辨率,对待识别图像进行切分,得到多个指定分辨率的目标图像。
S104:将得到的目标图像输入至卷积译码模型,得到对应的目标译码矩阵。
S105:若得到的目标译码矩阵为一个,则根据生成二维码的编码规则对应的译码规则,对该目标译码矩阵进行译码,得到待识别图像的识别结果。
S106:若得到的目标译码矩阵为多个,则对各目标译码矩阵进行组合,并根据译码规则对组合结果进行译码,得到待识别图像的识别结果。
本申请实施例提供的二维码识别方法,能够利用同一个卷积译码模型,对不同分辨率的待识别图像进行识别,能够提高卷积译码模型的适用范围。即,针对多种不同分辨率的待识别图像,只需要部署一个卷积译码模型,也就能够降低卷积译码模型的部署成本。
若待识别图像的分辨率较大,则可以对待识别图像进行切分,并基于切分得到的目标图像进行识别,也就使得本申请实施例的方法,能够基于复杂度较低的卷积译码模型对较大分辨率的待识别图像进行识别,降低卷积译码模型的复杂度。
本申请实施例中的卷积译码模型可以为深度学习模型,相应的,基于本申请实施例提供的二维码识别方法,能够降低深度学习模型部署的硬件门槛,使得基于深度学习模型对较大分辨率的二维码进行识别能够落地。
在一个实施例中,若待识别图像的分辨率等于指定分辨率,则可以直接将待识别图像输入至卷积译码模型,得到对应的译码矩阵,并按照译码规则对该译码矩阵进行译码,得到识别结果。或者,也可以按照上述步骤S103和S106进行处理。
针对步骤S101,本申请实施例中的二维码可以为不同类型的二维码,例如,可以为DM(Data Matrix,数据矩阵)二维码,或者,也可以为QR(Quick Response,快速响应)二维码,但并不限于此。
待识别图像可以是基于ROI(Region Of Interest,感兴趣区域)检测算法,对采集的包含二维码的原始图像进行处理得到的灰度图。
针对步骤S102,一种实现方式中,可以在待识别图像的四周填充黑色像素点,得到指定分辨率的目标图像。
参见图2,图2为本申请实施例提供的一种对图像进行填充的示意图。图2中,可以对左侧的图像进行填充(Padding)处理,得到右侧的图像。
参见图2,一个二维码包含多个黑色块和白色块,每一个块可以称为一个二维码块。其中,黑色的二维码块的译码值可以用1表示,白色的二维码块的译码值可以用0表示。一个二维码中各二维码块的译码值可以构成对应的译码矩阵。基于译码矩阵和译码规则,可以对二维码进行译码,得到译码结果。
针对步骤S103,一种实现方式中,可以按照指定分辨率对待识别图像进行切分,切分得到的多个目标图像的并集为该待识别图像。例如,得到的多个目标图像之间可以存在重叠的区域。
在一个实施例中,还可以基于待识别图像中二维码的功能边进行切分,得到多个指定分辨率的目标图像。
相应的,参见图3,上述步骤S103可以包括以下步骤:
S1031:确定待识别图像中二维码内部的各个用于定位的功能边,与待识别图像中二维码的边界线的交点。
S1032:针对相对的两个边界线中每两个对应位置处的交点,确定以该两个交点为端点的线段,作为目标线段。
S1033:确定待识别图像中以边界线和目标线段为边界的多个最小的四边形区域,作为待处理区域。
S1034:针对每一待处理区域,基于该待处理区域的图像,得到对应的指定分辨率的目标图像。
在本申请实施例中,二维码可以包括功能边和数据区。其中,功能边用于对二维码进行定位,数据区表示二维码的业务数据部分。
例如,参见图4,图4为本申请实施例提供的一种二维码的示意图。
图4所示的二维码中,四条边界线,以及二维码内部横向的五条线,以及二维码内部纵向的五条线均表示该二维码的功能边。除上述功能边以外的区域,表示该二维码的数据区。
一种实现方式中,在获取待识别图像后,电子设备可以结合二维码的版本(即该二维码中二维码块的数目),确定该二维码内部的各个功能边的位置,进而,可以确定二维码内部的各个功能边与边界线的交点。例如,图4中所示的各个交点(白色圆点)。
然后,针对相对的两个边界线中每两个对应位置处的交点,确定以该两个交点为端点的线段,能够得到多个目标线段。
例如,针对图4所示的二维码,确定出的目标线段为十个。也就是说,若获取的待处理图像不存在畸变,且能够准确地识别出二维码的位置,则确定出的目标线段也就是二维码内部的十个功能边。
进而,可以确定出多个最小的,以上述边界线和目标线段为边界的四边形区域(即待处理区域)。也就是说,可以以上述目标线段对二维码进行划分,得到多个区域,即待处理区域。
参见图5,图5为本申请实施提供的一种待处理区域的示意图。
图5中,由于对二维码进行定位的精度不够高,导致确定出的二维码的四个顶点存在偏差,相应的,确定出的二维码内部的各个功能边与边界线的交点,也存在偏差。图5中,16个最小的四边形区域也就是待处理区域。
针对上述步骤S1034,一种实现方式中,针对每一待处理区域,若该待处理区域的图像的分辨率小于指定分辨率,则可以对该待处理区域的图像进行填充,得到指定分辨率的目标图像。
在一个实施例中,参见图6,在图3的基础上,上述步骤S1034可以包括以下步骤:
S10341:针对每一待处理区域,将该待处理区域的图像,以及该待处理区域邻域内指定大小区域的图像,确定为对应的第一图像。
S10342:生成每一第一图像对应的指定分辨率的目标图像。
在本申请实施例中,由于对二维码进行定位的精度不够高(例如,识别出的二维码的边界线可能位于二维码的内部)。因此,为了保证得到的各目标图像能够完整的包含整个二维码对应的区域,针对每一待处理区域,可以对该待处理区域进行扩展,将扩展后的区域的图像作为第一图像。
例如,针对每一待处理区域,可以将该待处理区域的四条边界线向外部扩展,进而,将扩展后的区域对应的图像,作为第一图像。基于上述处理,使得得到的各第一图像能够完整的包含整个二维码,相应的,基于各第一图像得到的各目标图像能够完整的包含整个二维码。相应的,各第一图像之间存储重叠的区域。
针对上述步骤S10342,在一个实施例中,针对每一第一图像,可以直接对该第一图像进行填充,得到指定分辨率的图像,作为目标图像。
在另一个实施例中,参见图7,在图6的基础上,上述步骤S10342可以包括以下步骤:
S103421:对每一第一图像进行透视变换,得到第二图像。
S103422:对每一第二图像进行填充,得到指定分辨率的目标图像。
其中,第二图像中每一二维码块包含的像素点的数目,与样本图像中每一二维码块包含的像素点的数目相同。
在本申请实施例中,由于采集二维码的图像时,采集设备与二维码之间的距离的影响,可能会导致待识别图像中每一二维码块包含的像素点的数目过大,或者,每一二维码块包含的像素点的数目过小。因此,为了提高基于卷积译码模型进行处理的精确度,则可以对第一图像进行透视变换,使得变换后的第一图像(即第二图像)中每一二维码块包含的像素点的数目,与样本图像中每一二维码块包含的像素点的数目相同。另外,由于采集二维码的图像时可能会存在畸变,因此,对第一图像进行透视变换,也可以消除该畸变。
针对步骤S104,卷积译码模型可以为深度学习模型,例如,可以为CNN(卷积神经网络,Convolutional Neural Networks)模型,或者,也可以为RNN(循环神经网络,RerrentNeural Network)模型,但并不限于此。该卷积译码模型用于获取输入的图像中二维码对应的译码矩阵。也就是说,针对输入的包含二维码的图像,该卷积译码模型可以确定出该图像中黑色的二维码块和白色的二维码块,得到该图像中各二维码块的译码值,也就能够得到该图像中二维码对应的译码矩阵。
也就是说,在基于步骤S102得到一个目标图像后,可以将该目标图像输入至卷积译码模型,得到一个目标译码矩阵。
在基于步骤S103得到多个目标图像后,可以将每一目标图像输入至卷积译码模型,得到对应的目标译码矩阵,也就可以得到多个目标译码矩阵。
针对步骤S105,目标译码矩阵为一个,即,目标图像为一个,且该目标图像为基于步骤S102对待识别图像进行填充得到的。该目标译码矩阵包含了待识别图像中的二维码中所有二维码块的译码值,因此,可以对该目标译码矩阵进行译码,得到待识别图像的识别结果。
一种实现方式中,由于目标图像为对待识别图像进行填充得到的,因此,可以获取目标译码矩阵中该待识别图像对应的部分,并对该部分进行译码,得到待识别图像的识别结果。
针对步骤S106,目标译码矩阵为多个,即,目标图像为多个。一个目标译码矩阵对应一个目标图像,该目标译码矩阵包含对应的目标图像中的二维码中所有二维码块的译码值。在得到多个目标译码矩阵后,对各目标译码矩阵进行组合。然后,可以基于译码规则,对组合结果进行译码,得到识别结果。
可以理解的是,若多个目标图像之间存在重叠的区域,相应的,多个目标译码矩阵之间也存在重复的部分,因此,在对各目标译码矩阵进行组合时,可以去除重复的部分。
在一个实施例中,参见图8,图8为本申请实施例提供的一种训练卷积译码模型的流程图,可以包括以下步骤:
S801:获得包含二维码的样本图像,以及样本图像中二维码对应的样本译码矩阵。
S802:将样本图像输入至待训练的卷积译码模型,得到预测译码矩阵。
S803:基于预测译码矩阵与样本译码矩阵,调整卷积译码模型的模型参数,继续训练,直到卷积译码模型收敛。
一种实现方式中,可以基于预设的损失函数,计算预测译码矩阵与样本译码矩阵之间损失函数值,并基于该损失函数值,按照梯度下降算法,调整卷积译码模型的模型参数,直到卷积译码模型收敛。
参见图9,图9为本申请实施例提供的一种二维码识别的流程示意图。
相机拍摄图片:即,获取包含二维码的原始图像。通过定位模块可以基于ROI检测算法获取原始图像中二维码的位置信息,得到灰度图(即本申请实施例中的待识别图像)。识别模块可以基于本申请实施例的二维码识别方法对待识别图像进行处理,得到译码结果。
参见图10,图10为图9中识别模块的识别流程示意图。
ROI灰度图:即,获取包含二维码的待识别图像。切分:即,对待识别图像进行切分,得到多个指定分辨率的目标图像。深度学习模块,可以基于卷积译码模型获取每一目标图像对应的目标译码矩阵。中间输出结果组合:即,对各个目标译码矩阵进行组合。进而,可以基于二维码的译码规则,对组合结果进行译码,得到译码结果。
参见图11,图11为图9中识别模块的识别原理示意图。
图11中,最左侧为包含二维码的待识别图像。基于二维码的功能边,可以对待识别图像进行切分,得到多个目标图像。针对每一目标图像,基于深度学习模型,可以获取对应的目标译码矩阵(即中间输出)。进而,可以对各个目标译码矩阵进行组合,并基于二维码的译码规则,对组合结果进行译码,得到译码结果(即最终输出)。
基于相同的发明构思,本申请实施例还提供了一种二维码识别装置,参见图12,图12为本申请实施例提供的一种二维码识别装置的结构图,该装置可以包括:
待识别图像获取模块1201,用于获取包含二维码的待识别图像;
图像填充模块1202,用于若所述待识别图像的分辨率小于指定分辨率,对所述待识别图像进行填充,得到所述指定分辨率的目标图像;其中,所述指定分辨率表示训练卷积译码模型所使用的样本图像的分辨率;所述卷积译码模型用于获取输入图像对应的译码矩阵;
图像切分模块1203,用于若所述待识别图像的分辨率大于所述指定分辨率,对所述待识别图像进行切分,得到多个所述指定分辨率的目标图像;
目标译码矩阵获取模块1204,用于将得到的目标图像输入至所述卷积译码模型,得到对应的目标译码矩阵;
第一译码模块1205,用于若得到的目标译码矩阵为一个,则根据生成所述二维码的编码规则对应的译码规则,对该目标译码矩阵进行译码,得到所述待识别图像的识别结果;
第二译码模块1206,用于若得到的目标译码矩阵为多个,则对各目标译码矩阵进行组合,并根据所述译码规则对组合结果进行译码,得到所述待识别图像的识别结果。
可选的,所述图像切分模块1203,包括:
交点确定子模块,用于确定所述待识别图像中二维码内部的各个用于定位的功能边,与所述待识别图像中二维码的边界线的交点;
目标线段确定子模块,用于针对相对的两个边界线中每两个对应位置处的交点,确定以该两个交点为端点的线段,作为目标线段;
待处理区域确定子模块,用于确定所述待识别图像中以所述边界线和所述目标线段为边界的多个最小的四边形区域,作为待处理区域;
目标图像获取子模块,用于针对每一待处理区域,基于该待处理区域的图像,得到对应的所述指定分辨率的目标图像。
可选的,所述目标图像获取子模块,包括:
第一图像确定单元,用于针对每一待处理区域,将该待处理区域的图像,以及该待处理区域邻域内指定大小区域的图像,确定为对应的第一图像;
目标图像获取单元,用于生成每一第一图像对应的所述指定分辨率的目标图像。
可选的,所述目标图像获取单元,具体用于对每一第一图像进行透视变换,得到第二图像;其中,所述第二图像中每一二维码块包含的像素点的数目,与所述样本图像中每一二维码块包含的像素点的数目相同;
对每一第二图像进行填充,得到所述指定分辨率的目标图像。
可选的,所述装置还包括:
卷积译码模型训练模块,用于获得包含二维码的样本图像,以及所述样本图像中二维码对应的样本译码矩阵;
将所述样本图像输入至待训练的卷积译码模型,得到预测译码矩阵;
基于所述预测译码矩阵与所述样本译码矩阵,调整所述卷积译码模型的模型参数,继续训练,直到所述卷积译码模型收敛。
本申请实施例还提供了一种电子设备,如图13所示,包括处理器1301、通信接口1302、存储器1303和通信总线1304,其中,处理器1301,通信接口1302,存储器1303通过通信总线1304完成相互间的通信,
存储器1303,用于存放计算机程序;
处理器1301,用于执行存储器1303上所存放的程序时,实现如下步骤:
获取包含二维码的待识别图像;
若所述待识别图像的分辨率小于指定分辨率,对所述待识别图像进行填充,得到所述指定分辨率的目标图像;其中,所述指定分辨率表示训练卷积译码模型所使用的样本图像的分辨率;所述卷积译码模型用于获取输入的图像中二维码对应的译码矩阵;
若所述待识别图像的分辨率大于所述指定分辨率,对所述待识别图像进行切分,得到多个所述指定分辨率的目标图像;
将得到的目标图像输入至所述卷积译码模型,得到对应的目标译码矩阵;
若得到的目标译码矩阵为一个,则根据生成所述二维码的编码规则对应的译码规则,对该目标译码矩阵进行译码,得到所述待识别图像的识别结果;
若得到的目标译码矩阵为多个,则对各目标译码矩阵进行组合,并根据所述译码规则对组合结果进行译码,得到所述待识别图像的识别结果。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一二维码识别方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一二维码识别方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (10)

1.一种二维码识别方法,其特征在于,所述方法包括:
获取包含二维码的待识别图像;
若所述待识别图像的分辨率小于指定分辨率,对所述待识别图像进行填充,得到所述指定分辨率的目标图像;其中,所述指定分辨率表示训练卷积译码模型所使用的样本图像的分辨率;所述卷积译码模型用于获取输入的图像中二维码对应的译码矩阵;
若所述待识别图像的分辨率大于所述指定分辨率,对所述待识别图像进行切分,得到多个所述指定分辨率的目标图像;
将得到的目标图像输入至所述卷积译码模型,得到对应的目标译码矩阵;
若得到的目标译码矩阵为一个,则根据生成所述二维码的编码规则对应的译码规则,对该目标译码矩阵进行译码,得到所述待识别图像的识别结果;
若得到的目标译码矩阵为多个,则对各目标译码矩阵进行组合,并根据所述译码规则对组合结果进行译码,得到所述待识别图像的识别结果;
所述对所述待识别图像进行切分,得到多个所述指定分辨率的目标图像,包括:
确定所述待识别图像中二维码内部的各个用于定位的功能边,与所述待识别图像中二维码的边界线的交点;
针对相对的两个边界线中每两个对应位置处的交点,确定以该两个交点为端点的线段,作为目标线段;
确定所述待识别图像中以所述边界线和所述目标线段为边界的多个最小的四边形区域,作为待处理区域;
针对每一待处理区域,基于该待处理区域的图像,得到对应的所述指定分辨率的目标图像。
2.根据权利要求1所述的方法,其特征在于,所述针对每一待处理区域,基于该待处理区域的图像,得到对应的所述指定分辨率的目标图像,包括:
针对每一待处理区域,将该待处理区域的图像,以及该待处理区域邻域内指定大小区域的图像,确定为对应的第一图像;
生成每一第一图像对应的所述指定分辨率的目标图像。
3.根据权利要求2所述的方法,其特征在于,所述生成每一第一图像对应的所述指定分辨率的目标图像,包括:
对每一第一图像进行透视变换,得到第二图像;其中,所述第二图像中每一二维码块包含的像素点的数目,与所述样本图像中每一二维码块包含的像素点的数目相同;
对每一第二图像进行填充,得到所述指定分辨率的目标图像。
4.根据权利要求1所述的方法,其特征在于,所述卷积译码模型采用如下步骤训练获得:
获得包含二维码的样本图像,以及所述样本图像中二维码对应的样本译码矩阵;
将所述样本图像输入至待训练的卷积译码模型,得到预测译码矩阵;
基于所述预测译码矩阵与所述样本译码矩阵,调整所述卷积译码模型的模型参数,继续训练,直到所述卷积译码模型收敛。
5.一种二维码识别装置,其特征在于,所述装置包括:
待识别图像获取模块,用于获取包含二维码的待识别图像;
图像填充模块,用于若所述待识别图像的分辨率小于指定分辨率,对所述待识别图像进行填充,得到所述指定分辨率的目标图像;其中,所述指定分辨率表示训练卷积译码模型所使用的样本图像的分辨率;所述卷积译码模型用于获取输入图像对应的译码矩阵;
图像切分模块,用于若所述待识别图像的分辨率大于所述指定分辨率,对所述待识别图像进行切分,得到多个所述指定分辨率的目标图像;
目标译码矩阵获取模块,用于将得到的目标图像输入至所述卷积译码模型,得到对应的目标译码矩阵;
第一译码模块,用于若得到的目标译码矩阵为一个,则根据生成所述二维码的编码规则对应的译码规则,对该目标译码矩阵进行译码,得到所述待识别图像的识别结果;
第二译码模块,用于若得到的目标译码矩阵为多个,则对各目标译码矩阵进行组合,并根据所述译码规则对组合结果进行译码,得到所述待识别图像的识别结果;
所述图像切分模块,包括:
交点确定子模块,用于确定所述待识别图像中二维码内部的各个用于定位的功能边,与所述待识别图像中二维码的边界线的交点;
目标线段确定子模块,用于针对相对的两个边界线中每两个对应位置处的交点,确定以该两个交点为端点的线段,作为目标线段;
待处理区域确定子模块,用于确定所述待识别图像中以所述边界线和所述目标线段为边界的多个最小的四边形区域,作为待处理区域;
目标图像获取子模块,用于针对每一待处理区域,基于该待处理区域的图像,得到对应的所述指定分辨率的目标图像。
6.根据权利要求5所述的装置,其特征在于,所述目标图像获取子模块,包括:
第一图像确定单元,用于针对每一待处理区域,将该待处理区域的图像,以及该待处理区域邻域内指定大小区域的图像,确定为对应的第一图像;
目标图像获取单元,用于生成每一第一图像对应的所述指定分辨率的目标图像。
7.根据权利要求6所述的装置,其特征在于,所述目标图像获取单元,具体用于对每一第一图像进行透视变换,得到第二图像;其中,所述第二图像中每一二维码块包含的像素点的数目,与所述样本图像中每一二维码块包含的像素点的数目相同;
对每一第二图像进行填充,得到所述指定分辨率的目标图像。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
卷积译码模型训练模块,用于获得包含二维码的样本图像,以及所述样本图像中二维码对应的样本译码矩阵;
将所述样本图像输入至待训练的卷积译码模型,得到预测译码矩阵;
基于所述预测译码矩阵与所述样本译码矩阵,调整所述卷积译码模型的模型参数,继续训练,直到所述卷积译码模型收敛。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
CN202111044728.0A 2021-09-07 2021-09-07 一种二维码识别方法和装置 Active CN113761961B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111044728.0A CN113761961B (zh) 2021-09-07 2021-09-07 一种二维码识别方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111044728.0A CN113761961B (zh) 2021-09-07 2021-09-07 一种二维码识别方法和装置

Publications (2)

Publication Number Publication Date
CN113761961A CN113761961A (zh) 2021-12-07
CN113761961B true CN113761961B (zh) 2023-08-04

Family

ID=78793546

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111044728.0A Active CN113761961B (zh) 2021-09-07 2021-09-07 一种二维码识别方法和装置

Country Status (1)

Country Link
CN (1) CN113761961B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2417561A1 (de) * 2009-04-08 2012-02-15 Continental Teves AG & Co. oHG Zweidimensionaler symbolcode und verfahren zum lesen des symbolcodes
CN108108746A (zh) * 2017-09-13 2018-06-01 湖南理工学院 基于Caffe深度学习框架的车牌字符识别方法
CN108520193A (zh) * 2018-03-27 2018-09-11 康体佳智能科技(深圳)有限公司 基于神经网络的二维码识别系统及识别方法
WO2020083029A1 (zh) * 2018-10-22 2020-04-30 腾讯科技(深圳)有限公司 图形码识别方法、装置、终端及存储介质
CN112528700A (zh) * 2020-12-11 2021-03-19 马鞍山市博浪热能科技有限公司 一种基于大数据的二维码识别分析系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2417561A1 (de) * 2009-04-08 2012-02-15 Continental Teves AG & Co. oHG Zweidimensionaler symbolcode und verfahren zum lesen des symbolcodes
CN108108746A (zh) * 2017-09-13 2018-06-01 湖南理工学院 基于Caffe深度学习框架的车牌字符识别方法
CN108520193A (zh) * 2018-03-27 2018-09-11 康体佳智能科技(深圳)有限公司 基于神经网络的二维码识别系统及识别方法
WO2020083029A1 (zh) * 2018-10-22 2020-04-30 腾讯科技(深圳)有限公司 图形码识别方法、装置、终端及存储介质
CN112528700A (zh) * 2020-12-11 2021-03-19 马鞍山市博浪热能科技有限公司 一种基于大数据的二维码识别分析系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于iPhone嵌入式平台的QR码识别研究;刘志强等;内蒙古农业大学学报(自然科学版);第35卷(第6期);129-133 *

Also Published As

Publication number Publication date
CN113761961A (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
US10614574B2 (en) Generating image segmentation data using a multi-branch neural network
CN109325954B (zh) 图像分割方法、装置及电子设备
CN112634209A (zh) 一种产品缺陷检测方法和装置
CN111914654B (zh) 一种文本版面分析方法、装置、设备和介质
CN111476719A (zh) 图像处理方法、装置、计算机设备及存储介质
CN112580561B (zh) 目标检测方法、装置、电子设备及存储介质
CN111598087B (zh) 不规则文字的识别方法、装置、计算机设备及存储介质
CN112597918A (zh) 文本检测方法及装置、电子设备、存储介质
CN112418243A (zh) 特征提取方法、装置及电子设备
CN111179270A (zh) 基于注意力机制的图像共分割方法和装置
CN111738272A (zh) 一种目标特征提取方法、装置及电子设备
CN113658196A (zh) 红外图像中船舶的检测方法、装置、电子设备和介质
CN113761961B (zh) 一种二维码识别方法和装置
CN116258873A (zh) 一种位置信息确定方法、对象识别模型的训练方法及装置
CN116580407A (zh) 文本检测模型的训练方法、文本检测方法及装置
CN114998630B (zh) 一种从粗到精的地对空图像配准方法
CN114239760B (zh) 多模态模型训练以及图像识别方法、装置、电子设备
CN116664829A (zh) 一种rgb-t语义分割方法、系统、装置及存储介质
CN116309628A (zh) 车道线识别方法和装置、电子设备和计算机可读存储介质
CN115841672A (zh) 文字检测识别方法、装置及设备
CN112950652B (zh) 机器人及其手部图像分割方法和装置
CN112084874B (zh) 一种物体检测方法、装置及终端设备
CN114399657A (zh) 车辆检测模型训练方法、装置、车辆检测方法及电子设备
US10832076B2 (en) Method and image processing entity for applying a convolutional neural network to an image
CN116958954B (zh) 基于关键点与旁路矫正的车牌识别方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant