CN115577728B - 一维码定位方法、装置、计算机设备及存储介质 - Google Patents
一维码定位方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115577728B CN115577728B CN202211565787.7A CN202211565787A CN115577728B CN 115577728 B CN115577728 B CN 115577728B CN 202211565787 A CN202211565787 A CN 202211565787A CN 115577728 B CN115577728 B CN 115577728B
- Authority
- CN
- China
- Prior art keywords
- corner
- point
- dimensional code
- vector
- image
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1413—1D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/806—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Toxicology (AREA)
- Electromagnetism (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例提供了一种一维码定位方法、装置、计算机设备及存储介质,方法包括:将获取的待识别图像输入角点提取模型进行处理,输出待识别图像中的多个角点坐标;对多个角点坐标进行分组,以得到至少一个角点坐标组;其中,每个角点坐标组中的角点对应于同一个一维码;根据至少一个角点坐标组,确定待识别图像包含的一维码的数量和位置。通过以上方法,能够提高针对包含多个一维码的图像进行一维码定位的准确率。
Description
技术领域
本申请涉及图像识别技术领域,并且更具体地,涉及一维码定位方法、装置、计算机设备及存储介质。
背景技术
一维码,又称条形码,是由一组规则排列的条、空以及对应的字符组成的标记,这些条和空组成的数据表达一定的信息,并能够用特定的设备识读和转换成与计算机兼容的二进制和十进制信息。一维码输入速度快,准确度高,成本低,自其产生以来在诸多领域得到了广泛的应用。实际采集的一维码图像由于成像方式,光照条件、污损等多种因素的影响,当一张图像上具有多个一维码时,定位准确率低,对识读设备的要求高。
发明内容
本申请实施例提供一种一维码定位方法、装置、计算机设备及存储介质,能够提高针对包含多个一维码的图像进行一维码定位的准确率。
第一方面,提供了一种一维码定位方法,包括:
将获取的待识别图像输入角点提取模型进行处理,输出待识别图像中的多个角点坐标;
对多个角点坐标进行分组,以得到至少一个角点坐标组;其中,每个角点坐标组中的角点对应于同一个一维码;
根据至少一个角点坐标组,确定待识别图像包含的一维码的数量和位置。
通过以上实施方式,能够识别出一张图片中包含的一维码的数量和位置,以便于对图像中包含的所有一维码的快速识读。
在第一方面的一些可能的实现方式中,该角点提取模型包括检测头部网络,检测头部网络包括角点分支和/或中心点分支;
角点分支用于输出第一分类特征图;第一分类特征图指示第一概率,第一概率为待识别图像上的点是一维码的角点的概率;
中心点分支用于输出第二分类特征图和第二回归特征图;第二分类特征图指示第二概率,第二概率为待识别图像上的点是一维码的中心点的概率;第二回归特征图指示第三向量,第三向量为一维码的中心点指向一维码的角点的向量。
通过以上实施方式,可以在图像中的一维码能够完整显示时直接通过角点分支输出的角点坐标确定角点坐标组,从而快捷地定位图像中的一维码;在图像中的一维码不能完整显示时通过中心点分支输出的中心点坐标和第三向量的终点间接确定角点坐标组,继而确定一维码的位置,因此能够提高图像中存在多个一维码时的定位准确率。
在第一方面的一些可能的实现方式中,角点分支用于输出第一回归特征图,第一回归特征图指示第一向量和第二向量;第一向量为一维码短边的中点指向一维码的中心点的向量,第二向量为一维码短边的中点指向一维码的角点的向量。
通过以上实施方式,第一回归特征图能够与第一分类特征图所包含的信息相结合而定位图像中显示较为完整的一维码。
在第一方面的一些可能的实现方式中,将获取的待识别图像输入角点提取模型进行处理,输出待识别图像中的多个角点坐标,包括:
将获取的待识别图像输入角点提取模型中,经过角点分支的处理,得到第一分类特征图;
以第一概率大于预设的第一阈值的点的坐标作为待识别图像中的角点坐标。
在第一方面的一些可能的实现方式中,将获取的待识别图像输入角点提取模型进行处理,输出所述待识别图像中的多个角点坐标,包括:
将获取的待识别图像输入角点提取模型中,经过中心点分支的处理,得到第二分类特征图和所述第二回归特征图;
以第二概率大于预设的第二阈值的点的作为候选中心点;
以起点为候选中心点的第三向量的终点的坐标作为待识别图像中的角点坐标。
通过以上实施方式,在图像中的一维码不能完整显示时通过中心点分支输出的中心点坐标和第三向量的终点间接确定角点。
在第一方面的一些可能的实现方式中,将获取的待识别图像输入角点提取模型进行处理,输出所述待识别图像中的多个角点坐标,包括:
将获取的待识别图像输入角点提取模型中,分别经过角点分支和中心点分支的处理,得到第一分类特征图、第一回归特征图、第二分类特征图以及第二回归特征图;
以第一概率大于预设的第一阈值的点作为第一候选角点;
以第二概率大于预设的第二阈值的点的作为候选中心点;
以起点为候选中心点的第三向量的终点作为第二候选角点;
将相邻的两个第三向量相加,以得到第四向量;
若确定的第一角度大于或等于预设的第三阈值,则以第二候选角点的坐标作为待识别图像中的角点坐标;第一角度为第四向量与第一向量之间的夹角;
若确定的第一角度小于预设的第三阈值,则以第一候选角点的坐标作为待识别图像中的角点坐标。
通过以上实施方式,角点分支和中心点分支能够互补,从而能够从角点分支的输出和中心点分支的输出中确定出更接近真实角点的角点坐标,提高一维码的正确识读率。
在第一方面的一些可能的实现方式中,对多个角点坐标进行分组,以得到至少一个角点坐标组,包括:
以终点相同的两个第一向量的起点作为同一个一维码的两条短边的候选中点;
基于候选中点确定第二向量,以第二向量的四个终点构成的集合作为同一个一维码的候选角点;
若确定的第二角度小于预设的第四阈值,则以候选角点构成的集合作为一个角点坐标组,以得到至少一个角点坐标组;第二角度为候选角点构成的四边形相邻的两条边之间的夹角。
通过以上实施方式,能够在角点分支输出的多个角点中确定属于同一个一维码的角点坐标。
在第一方面的一些可能的实现方式中,对多个角点坐标进行分组,以得到至少一个角点坐标组,包括:
以起点相同的四个第三向量的终点作为同一个一维码的候选角点;
若确定的第二角度小于预设的第四阈值,则以候选角点构成的集合作为一个角点坐标组,以得到至少一个角点坐标组;第二角度为候选角点构成的四边形相邻的两条边之间的夹角。
通过以上实施方式,能够在中心点分支输出的多个角点中确定属于同一个一维码的角点坐标。
在第一方面的一些可能的实现方式中,对多个角点坐标进行分组,以得到至少一个角点坐标组,包括:
将起点相同且相邻的两个第三向量相加,以得到第四向量;
若确定的第三角度大于或等于预设的第五阈值,则以起点相同的四个第三向量的终点作为一个角点坐标组,以得到至少一个角点坐标组;其中,第三角度为第四向量与第一向量之间的夹角;
若确定的第三角度小于预设的第五阈值,则以角点分支输出的角点作为一个角点坐标组,以得到至少一个角点坐标组。
通过以上实施方式,能够以几何关系更为接近真实一维码上的各个角点组成的角点坐标组来定位一维码,从而提高一维码定位的准确性。
在第一方面的一些可能的实现方式中,角点提取模型包括主干网络和特征融合层;该方法还包括:
将待识别图像输入主干网络进行特征提取,得到待识别图像的图像特征;
将图像特征输入特征融合层进行下采样处理,得到下采样后的图像特征;
以下采样后的图像特征作为检测头部网络的输入。
通过以上实施方式,主干网络能够减少待识别图像中包含的原始数据的维度,提取出有效的特征,特征融合层能够对特征进行下采样,能够减少计算量,同时使得检测头部网络能够获得合适的感受野,从而有助于角点和中心点的正确识别。
在第一方面的一些可能的实现方式中,在将获取的待识别图像输入角点提取模型进行处理,添加输出待识别图像中的多个角点坐标之前,该方法还包括:
构建待训练神经网络;
获取训练集和测试集;其中,训练集包括若干个包含一维码的待识别图像,测试集包括与训练集对应的图像中的一维码的数量和位置的信息;
将训练集输入待训练神经网络进行处理,输出分类特征图和回归特征图;
根据待识别图像和待识别图像对应的真实识别结果构建损失函数,基于损失函数的值调整待训练神经网络的参数;
若确定待训练神经网络的输出值满足第一条件,则以当前的神经网络作为角点提取模型。
通过以上实施方式,可以根据神经网络各分支的实际输出和目标输出之间的偏差对神经网络中的参数进行调整和更新,提高系统的识别率和性能。
在第一方面的一些可能的实现方式中,根据待识别图像和待识别图像对应的真实识别结果构建损失函数,基于损失函数的值调整待训练神经网络的参数,包括:
根据分类特征图与分类特征图对应的真实识别结果构建第一损失函数;
若确定第一损失函数大于或等于预设的第六阈值,则根据第一损失函数调整待训练神经网络的参数;和/或,
根据回归特征图与回归特征图对应的真实识别结果构建第二损失函数;
若确定第二损失函数大于或等于预设的第七阈值,则根据第二损失函数调整待训练神经网络的参数。
通过以上实施方式,能够根据实际需求控制神经网络的参数,提高调整精度,从而提高神经网络系统输出的准确率。
在第一方面的一些可能的实施方式中,该第一条件包括:第一损失函数小于第六阈值,第二损失函数小于第七阈值;或神经网络的训练次数大于第八阈值。
在第一方面的一些可能的实施方式中,使用反向传播算法调整待训练神经网络的参数。
第二方面,提供了一种一维码定位装置,包括:
提取模块,用于将获取的待识别图像输入角点提取模型进行处理,输出待识别图像中的多个角点坐标;
分组模块,用于对多个角点坐标进行分组,以得到至少一个角点坐标组;其中,每个角点坐标组中的角点对应于同一个一维码;
确定模块,用于根据至少一个角点坐标组,确定待识别图像包含的一维码的数量和位置。
在第二方面的一些可能的实施方式中,角点提取模型包括检测头部网络,检测头部网络包括角点分支和/或中心点分支;
角点分支用于输出第一分类特征图和第一回归特征图;第一分类特征图指示待识别图像上的点是一维码的角点的概率,第一回归特征图指示第一向量和第二向量;第一向量为一维码短边的中点指向一维码的中心点的向量,第二向量为一维码短边的中点指向一维码的角点的向量;
中心点分支用于输出第二分类特征图和第二回归特征图;第二分类特征图指示待识别图像上的点是一维码的中心点的概率,第二回归特征图指示第三向量,第三向量为一维码的中心点指向一维码的角点的向量。
在第二方面的一些可能的实施方式中,识别分组模块用于:将起点相同且相邻的两个第三向量相加,以得到第四向量;若确定的第三角度大于或等于预设的第五阈值,则以起点相同的四个第三向量的终点作为一个角点坐标组,以得到至少一个角点坐标组;第三角度为第四向量与第一向量之间的夹角;若确定的第三角度小于预设的第五阈值,则以角点分支输出的角点作为一个角点坐标组,以得到至少一个坐标组。
在第二方面的一些可能的实施方式中,该装置还包括定位模块,用于在识别属于同一个一维码的角点坐标之后,确定第二角度小于第四阈值,以目标角点定位目标一维码;其中,第二角度为目标角点构成的四边形相对的两条边之间的夹角;分组识别模块用于,确定第二角度大于或等于第四阈值,重新识别目标角点。
在第二方面的一些可能的实施方式中,角点识别模型还包括主干网络和特征融合层;
提取模块还用于:将待识别图像输入主干网络进行特征提取,得到待识别图像的图像特征;将该图像特征输入特征融合层进行下采样处理,得到下采样后的图像特征;以下采样后的图像特征作为检测头部网络的输入。
在第二方面的一些可能的实施方式中,该装置还包括训练模块,用于:构建待训练神经网络;获取训练集和测试集;其中,训练集包括若干个包含一维码的待识别图像,测试集包括与训练集对应的图像中一维码的数量和位置的信息;将训练集输入待训练神经网络进行处理,输出分类特征图和回归特征图;根据待识别图像和待识别图像对应的真实识别结果构建损失函数,基于损失函数的值调整待训练神经网络的参数;若确定待训练神经网络的输出值满足第一条件,则以当前的神经网络作为角点提取模型。
在第二方面的一些可能的实施方式中,训练模块用于:根据分类特征图与分类特征图对应的真实识别结果构建第一损失函数;若确定的第一损失函数大于或等于预设的第六阈值,则根据第一损失函数调整待训练神经网络的参数;和/或,根据回归特征图与回归特征图对应的真实识别结果构建第二损失函数;若确定第二损失函数大于或等于第七阈值,则根据第二损失函数调整待训练神经网络的参数。
在第二方面的一些可能的实施方式中,该第一条件包括:第一损失函数小于第六阈值,第二损失函数小于第七阈值;或神经网络的训练次数大于第八阈值。
在第二方面的一些可能的实施方式中,训练模块用于:使用反向传播算法调整待训练神经网络的参数。
第二方面和第二方面任意一种可能的实现方式的有益效果与第一方面以及第一方面的任意一种可能的实施方式的有益效果相对应,在此不再赘述。
第三方面,提供了一种计算机设备,包括:存储器和处理器,其中,存储器存储有计算机程序;处理器执行该计算机程序时实现如第一方面或第一方面任意可能的实施方式的一维码定位方法中的步骤。
在具体实现中,该处理器的个数不作限制。该处理器可以是通用处理器,可以通过硬件或软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,也可以于处理器之外独立存在。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第一方面任意可能的实施方式的一维码定位方法中的步骤。这些计算机可读存储介质包括但不限于如下列举出的一种或多种:只读存储器、随机存取存储器、紧凑型光盘只读储存器(Compact Disc Read-OnlyMemory,CD-ROM)、硬盘驱动器(Hard Disk Drive,HDD)、数字视频光盘(Digital VideoDisc,DVD)、磁带以及光数据存储装置等。
第五方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现如上述第一方面或第一方面任意可能的实施方式的一维码定位方法中的步骤。
附图说明
图1为本申请实施例提供的一种一维码定位方法涉及的系统架构图;
图2为本申请实施例提供的一种一维码定位方法的流程示意图;
图3为本申请所涉及的一维码的结构示意图;
图4为本申请实施例提供的一种角点分支所涉及的点和向量的示意图;
图5为本申请实施例提供的一种中心点分支所涉及的点和向量的示意图;
图6为本申请实施例提供的一种神经网络训练流程示意图;
图7为本申请实施例提供的一种一维码定位装置的示意性结构框图;
图8为本申请实施例提供的一种计算机设备的示意性结构框图;
图9为本申请实施例提供的一种计算机可读存储介质的示意性结构框图。
具体实施方式
下面结合附图和实施例对本申请的实施方式作进一步详细描述。以下实施例的详细描述和附图用于示例性地说明本申请的原理,但不能用来限制本申请的范围,即本申请不限于所描述的实施例。应理解,本文中的具体的例子只是为了帮助本领域技术人员更好地理解本申请实施例,而非限制本申请实施例的范围。
还应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本申请实施例对此并不限定。
除非另有说明,本申请实施例所使用的所有技术和科学术语与本申请的技术领域的技术人员通常理解的含义相同。本申请中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本申请的范围。本申请所使用的术语“和/或”包括一个或多个相关的所列项的任意的和所有的组合。
为了更好地理解本申请实施例的方案,下面先结合图1对本申请实施例可能的应用场景进行简单的介绍。
如图1所示,本申请实施例提供了一种系统架构100。在图1中,数据采集设备160用于采集样本图像。针对本申请实施例的一维码定位方法来说,样本图像可以是包括一个或多个一维码的样本图像。
在采集到样本图像之后,数据采集设备160将这些样本图像存入数据库130,训练设备120基于数据库130中维护的样本图像训练得到目标模型/规则101。
上述目标模型/规则101能够用于实现本申请实施例的一维码定位方法。本申请实施例中的目标模型/规则101具体可以为神经网络。需要说明的是,在实际的应用中,该数据库130中维护的样本图像不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的样本图像进行目标模型/规则101的训练,也有可能从云端或其他地方获取样本图像进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备120训练得到的目标模型/规则101可以应用于不同的系统或设备中,如应用于图1所示的执行设备110,该执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑等,还可以是服务器或者云端等。在图1中,执行设备110配置输入/输出(input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,该输入数据在本申请实施例中可以包括:客户设备140输入的待检测图像。
在一些实施方式中,该客户设备140可以与上述执行设备110为同一设备,例如,客户设备140可以与上述执行设备110均为终端设备。
在另一些实施方式中,该客户设备140可以与上述执行设备110为不同设备,例如,客户设备140为终端设备,而执行设备110为云端、服务器等设备,客户设备140可以通过任何通信机制/通信标准的通信网络与执行设备310进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
执行设备110的计算模块111用于根据I/O接口112接收到的输入数据(如待检测图像)进行处理。在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
最后,I/O接口112将处理结果,如上述得到的目标区域定位结果返回给客户设备140,从而提供给用户。
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在图1中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库130。
值得注意的是,图1仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图1中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。
如图1所示,根据训练设备120训练得到目标模型/规则101,该目标模型/规则101在本申请实施例中可以是神经网络,具体的,本申请实施例的神经网络可以为卷积神经网络(convolutional neuron network,CNN)、区域卷积神经网络(region CNN,RCNN)或者其它类型的神经网络等等,本申请对此不做具体限定。
一维码由于其包含的信息量大、结构简单且识读方便而得到了广泛使用。在一维码的识读过程中,通常应用视觉技术对其进行检测,即,先识别图像中是否存在一维码,再识别包含一维码的矩形框,再对矩形框中包含的一维码进行识读。该方法在图像中只包含一个一维码的场景下,通常能够快捷准确地完成识读。但当图像中包含多个一维码时,定位准确度较低。因此,现有技术中出现了对一维码的角点坐标和倾斜方向进行识别而定位图像中一维码的技术方案。但当图像中的一维码存在污损或遮挡,尤其是角点被遮挡的情况下,通过该种方法对一维码进行定位的准确率和可靠性较低。
图2示出了本申请实施例的一维码定位方法200的流程示意图。该方法将包含一维码的图像输入到角点提取模型中,得到中心点分支和角点分支输出的分类特征图和回归特征图,再选取中心点分类特征图和角点分类特征图中响应较大的点作为候选的中心点和角点,再对选出来的角点和中心点进行组合,将属于同一个一维码的角点和中心点组合到一起,从而完成图像中一维码的定位。如图2所示,该一维码定位方法200可由图1中的执行设备110执行,该执行设备可以为计算机设备,该方法包括以下步骤:
210、将获取的待识别图像输入角点提取模型进行处理,输出待识别图像中的多个角点坐标。
220、对多个角点坐标进行分组,以得到至少一个角点坐标组;其中,每个角点坐标组中的角点对应于同一个一维码。
230、根据至少一个角点坐标组,确定待识别图像包含的一维码的数量和位置。
通过以上实施方式,能够识别出一张图片中包含的一维码的数量和位置,以便于对图像中包含的所有一维码的快速定位和识读。
图3为本申请所涉及的一维码300的结构示意图,图中310为由黑白相间的条纹组成的条码区,320为由数字和字母等符号组成的符号区。
在一些实施例中,角点提取模型包括检测头部网络(head),检测头部网络包括角点分支和/或中心点分支。其中,角点分支用于输出对图像中包含的一维码的角点坐标的预测值、由一维码短边的中点和一维码的中心点构成的向量(即第一向量)的预测值、以及由一维码同一条短边的两个端点构成的向量(即第二向量)的预测值。其中角点坐标的预测值以特征图的形式输出,即角点分类特征图,角点分类特征图包含的信息有图像上的点的坐标映射到角点分类特征图上的坐标以及该坐标是一维码的角点的概率。向量的预测值以角点回归特征图的形式输出,即角点回归特征图。中心点分支用于输出对图像中包含的一维码的中心点坐标的预测值,以及由一维码的中心点与一维码四个角点构成的向量(即第三向量)的预测值,其中中心点坐标的预测值以特征图的形式输出,即中心点分类特征图,中心点分类特征图包含的信息有图像上的点的坐标映射到中心点分类特征图上的坐标以及该坐标是一维码的中心点的概率。向量的预测值以特征图的形式输出,即中心点回归特征图。其中,一维码的中心点是指一维码的对角线的交点。
角点分支对一维码短边的中点和一维码的中心点构成的向量和由一维码同一条短边的两个端点构成的向量进行回归预测,获得第一向量和第二向量,其中第一向量能够体现一维码的短边相对于中心点的偏移,第二向量能够体现一维码短边的边长,利用上述几何特征能够确定属于同一个一维码的角点坐标组。图4为一个实施例中角点分支所涉及的点和向量的示意图;其中,一维码400包括条码区410和符号区420。图中点411a、411b、411c和411d分别为条码区的四个角点,点412为一维码的中心点,413a和413b分别为一维码条码区两条短边的中点。由点413a和点413b分别作为起点,点412作为终点的向量为第一向量。由点413a作为起点,点411a和411d分别作为终点的两个向量以及点413b作为起点,点411b和411c分别作为终点的两个向量为第二向量。
中心点分支对中心点指向一维码的四个角点的向量进行回归预测,获得第三向量,第三向量能够体现一维码中心点相对于一维码四个角点的偏移,预测的第三向量的终点坐标即为中心点分支输出的一维码四个角点的坐标。图5为一个实施例中中心点分支所涉及的点和向量的示意图;其中,一维码500包括条码区510和符号区520,图中点511a、511b、511c和511d分别为一维码的四个角点,点512为一维码的中心点。由点512作为起点,点511a、511b、511c和511d分别作为终点的向量为第三向量。当使用中心点分支获取一维码的角点时,通过点512的坐标和四个第三向量间接获取角点511a、511b、511c和511d的坐标。
当检测头部网络既包括角点分支又包括中心点分支时,以相邻的两个第三向量相加获得的向量为第四向量,计算水平的两个第四向量跟角点分支输出的第一向量之间的角度,即第一角度,当第一角度大于预设的第五阈值时说明中心点分支预测的角点(即第二候选角点)比角点分支输出的预测角点(即第一候选角点)更为准确,此时使用第二候选角点的坐标作为模型最终输出的角点坐标;当第一角度小于第五阈值时,说明角点分支输出的预测角点(即第一候选角点)比中心点分支预测的角点(即第二候选角点)更为准确,此时可通过角点分支输出的回归特征图反映的长边和短边的边长确定一个角点坐标组。
在一些实施例中,角点提取分支的头部网络可以仅包括角点分支。此时可以识别出图像中包含的轮廓结构显示完整的一维码。在另一些实施例中,角点提取分支的头部网络也可以仅包括中心点分支,此时通过中心点分支对图像上包含的一维码角点进行预测,既可以获得轮廓显示完整的一维码的角点,也可以获得轮廓显示不完整,尤其是角点被遮挡的一维码的角点。
在一些实施例中,角点提取分支的头部网络也可以既包括角点分支又包括中心点分支。此时可以在图像中的一维码能够完整显示时直接通过角点分支确定角点,继而确定一维码的位置。在图像中的一维码不能完整显示时通过中心点分支输出的中心点坐标和第三向量的终点间接确定角点,从而确定一维码的位置。两个分支能够互补,从而识别出图像上包含的一维码的尽可能多的角点,能够提高图像中存在多个一维码时的识别准确率。
在一些实施例中,角点提取模型还包括主干网络(backbone)和特征融合层(neck)。其中,主干网络用于进行特征提取。在一些实施例中,backbone可以采用mobilenetv2网络结构,该结构具有五个特征层(stage),以每个特征层的最后一层特征图作为该特征层的最终输出特征图。特征融合层对五个特征层输出的特征图进行融合,输出相对输入图像8倍下采样的特征图。下采样倍数决定了特征图的感受野大小,当下采样倍数为8倍时,其感受野的大小最适合进行一维码的检测。特征图是对原始图像提取特征后输出的维度为H×W×C的特征矩阵,其中,H和W分别代表特征图的高度和宽度,其数值与输入的待识别图像的大小有关,C为输入的待识别图像的通道数。
在一些实施例中,步骤210中的角点提取模型是预先训练的神经网络模型。神经网络的训练数据是对不同条件下采集的含有一维码的图像进行角点和中心点标注后的图像。训练过程为,输入训练图像,得到中心点分支和角点分支输出的特征图,计算特征图与设置的学习目标的损失函数,采用反向传播算法对神经网络参数进行调整,直至损失函数值下降到一定的阈值或者达到一定的迭代次数,训练停止。
训练角点提取模型的训练过程600如图6所示,该训练过程可以由图1中所示的训练设备120执行,该训练设备120可以为计算机设备。该训练过程包括如下步骤:
610、构建待训练神经网络。
620、获取训练集和测试集;其中训练集包括若干个包含一维码的待识别图像,测试集包括与训练集对应的图像中一维码的数量和位置的信息;将训练集输入待训练神经网络进行处理,输出分类特征图和回归特征图;
630、根据待识别图像和待识别图像对应的真实识别结果构建损失函数,基于损失函数的值调整待训练神经网络的参数;
640、若确定待训练神经网络的输出值满足第一条件,则以当前的神经网络作为角点提取模型。
以上实施例中,该第一条件包括:第一损失函数小于第六阈值,第二损失函数小于第七阈值;或神经网络的训练次数大于第八阈值。
训练神经网络时,角点分类特征图的学习目标是输出的特征图上的角点坐标即是真实一维码的角点坐标的概率为1,中心点特征图的学习目标是输出的特征图上的中心点坐标即是真实一维码的中心点坐标的概率为1。
当图像中存在多个一维码时,其他一维码的定位过程与前述过程相类似,在此不再赘述。上述实施例中涉及的各个阈值,可以根据实际需求进行设置。
图7示出了本申请实施例提供的一种一维码定位装置700的示意性框图。如图7所示,该装置包括:
提取模块710,用于将待识别图像输入角点提取模型进行处理,输出待识别图像中的多个角点坐标;
分组模块720,用于对多个角点坐标进行分组,以得到至少一个角点坐标组;其中,每个角点坐标组中的角点对应于同一个一维码;
确定模块730,用于根据至少一个角点坐标组,确定待识别图像包含的一维码的数量和位置。
在一些实施例中,角点提取模型包括检测头部网络,检测头部网络包括角点分支和/或中心点分支;
角点分支用于输出第一分类特征图和第一回归特征图;第一分类特征图指示待识别图像上的点是一维码的角点的概率,第一回归特征图指示第一向量和第二向量;第一向量为一维码短边的中点指向一维码的中心点的向量,第二向量为一维码短边的中点指向一维码的角点的向量;
中心点分支用于输出第二分类特征图和第二回归特征图;第二分类特征图指示待识别图像上的点是一维码的中心点的概率,第二回归特征图指示第三向量,第三向量为一维码的中心点指向一维码的角点的向量。
在一些实施例中,在对多个角点坐标进行分组,以得到至少一个角点坐标组方面,分组模块720具体用于:
将起点相同且相邻的两个第三向量相加,以得到第四向量;若确定的第三角度大于或等于预设的第五阈值,则以起点相同的四个第三向量的终点作为一个角点坐标组;第三角度为第四向量与第一向量之间的夹角;若确定的第三角度小于预设的第五阈值,则以角点分支输出的角点作为一个角点坐标组,以得到至少一个角点坐标组。
在一些实施例中,该装置包括定位模块740,用于在识别属于同一个一维码的角点坐标之后,确定第二角度小于第四阈值,以目标角点定位目标一维码;其中,第二角度为目标角点构成的四边形相对的两条边之间的夹角。分组模块720还用于,确定第二角度大于或等于第四阈值,重新识别目标角点。
在一些实施例中,角点提取模型还包括主干网络和特征融合层;提取模块710用于:将待识别图像输入主干网络进行特征提取,得到待识别图像的图像特征;将该图像特征输入特征融合层进行下采样处理,得到下采样后的图像特征;以下采样后的图像特征作为检测头部网络的输入。
在一些实施例中,该装置还包括训练模块750,用于:构建待训练神经网络;获取样本集和测试集,将训练集输入待训练神经网络,得到神经网络输出的分类特征图和回归特征图;其中,训练集包括包含一维码的待识别图像,测试集包括与训练集对应的图像中的一维码数量和位置信息;根据待识别图像和待识别图像对应的真实识别结果构建损失函数,基于损失函数的值调整待训练神经网络的参数;确定待训练神经网络的输出值满足第一条件,以当前的神经网络作为目标神经网络模型。
在一些实施例中,训练模块750用于:根据分类特征图与分类特征图对应的真实识别结果构建第一损失函数;确定第一损失函数大于或等于第六阈值,根据第一损失函数调整待训练神经网络的参数;和/或,根据回归特征图与回归特征图对应的真实识别结果构建第二损失函数;确定第二损失函数大于或等于第七阈值,根据第二损失函数调整待训练神经网络的参数。
在一些实施例中,该第一条件包括:第一损失函数小于第六阈值,第二损失函数小于第七阈值;或神经网络的训练次数大于第八阈值。
在一些实施例中,训练模块750用于:使用反向传播算法调整待训练神经网络的参数。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在本申请的另一个实施例中,提供了一种计算机设备,该计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述的一维码定位方法中的步骤。
图8是本申请实施例提供的一种计算机设备的硬件结构示意图。图8所示的计算机设备800包括存储器801、处理器802、通信接口803以及总线804。其中,存储器801、处理器802、通信接口803通过总线804实现彼此之间的通信连接。
存储器801可以是只读存储器(read-only memory,ROM),静态存储设备和随机存取存储器(random access memory,RAM)。存储器801可以存储程序,当存储器801中存储的程序被处理器802执行时,处理器802和通信接口803用于执行本申请实施例的一维码定位方法的各个步骤。
处理器802可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的一维码定位装置中的单元所需执行的功能,或者执行本申请实施例的一维码定位方法。
处理器802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例的一维码定位方法的各个步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器802还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、ASIC、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成本申请实施例的一维码定位的装置中包括的单元所需执行的功能,或者执行本申请实施例的一维码定位的方法。
通信接口803使用例如但不限于收发器一类的收发装置,来实现装置800与其他设备或通信网络之间的通信。例如,可以通过通信接口803获取未知设备的流量数据。
总线804可包括在装置800各个部件(例如,存储器801、处理器802、通信接口803)之间传送信息的通路。
应注意,尽管上述装置800仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置800还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置800还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置800也可仅仅包括实现本申请实施例所必须的器件,而不必包括图8中所示的全部器件。
如图9所示,在本申请的另一个实施例中,提供了一种计算机可读存储介质900,该计算机可读存储介质上存储有计算机程序910,该计算机程序910被处理器执行时实现如上述的一维码定位方法的步骤。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。这些计算机可读存储介质包括但不限于如下列举出的一种或多种:只读存储器、随机存取存储器、紧凑型光盘只读储存器(Compact Disc Read-Only Memory,CD-ROM)、硬盘驱动器(Hard Disk Drive,HDD)、数字视频光盘(Digital Video Disc,DVD)、磁带以及光数据存储装置等。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现如上述的一维码定位方法中的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,前述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”和“所述”旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。
所描述的实施例中的各方面、实施方式、实现或特征能够单独使用或以任意组合的方式使用。所描述的实施例中的各方面可由软件、硬件或软硬件的结合实现。所描述的实施例也可以由存储有计算机可读代码的计算机可读介质体现,该计算机可读代码包括可由至少一个计算装置执行的指令。该计算机可读介质可与任何能够存储数据的数据存储装置相关联,该数据可由计算机系统读取。用于举例的计算机可读介质可以包括只读存储器、随机存取存储器、紧凑型光盘只读储存器(Compact Disc Read-Only Memory,CD-ROM)、硬盘驱动器(Hard Disk Drive,HDD)、数字视频光盘(Digital Video Disc,DVD)、磁带以及光数据存储装置等。该计算机可读介质还可以分布于通过网络联接的计算机系统中,这样计算机可读代码就可以分布式存储并执行。
上述技术描述可参照附图,这些附图形成了本申请的一部分,并且通过描述在附图中示出了依照所描述的实施例的实施方式。虽然这些实施例描述的足够详细以使本领域技术人员能够实现这些实施例,但这些实施例是非限制性的;这样就可以使用其它的实施例,并且在不脱离所描述的实施例的范围的情况下还可以做出变化。比如,流程图中所描述的操作顺序是非限制性的,因此在流程图中阐释并且根据流程图描述的两个或两个以上操作的顺序可以根据若干实施例进行改变。作为另一个例子,在若干实施例中,在流程图中阐释并且根据流程图描述的一个或一个以上操作是可选的,或是可删除的。另外,某些步骤或功能可以添加到所公开的实施例中,或两个以上的步骤顺序被置换。所有这些变化被认为包含在所公开的实施例以及权利要求中。
另外,上述技术描述中使用术语以提供所描述的实施例的透彻理解。然而,并不需要过于详细的细节以实现所描述的实施例。因此,实施例的上述描述是为了阐释和描述而呈现的。上述描述中所呈现的实施例以及根据这些实施例所公开的例子是单独提供的,以添加上下文并有助于理解所描述的实施例。上述说明书不用于做到无遗漏或将所描述的实施例限制到本申请的精确形式。根据上述教导,若干修改、选择适用以及变化是可行的。在某些情况下,没有详细描述为人所熟知的处理步骤以避免不必要地影响所描述的实施例。虽然已经参考优选实施例对本申请进行了描述,但在不脱离本申请的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本申请并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,前述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。
需要说明的是,本申请所涉及的数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经经过各方充分授权的信息和数据。
本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上内容,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种一维码定位方法,其特征在于,包括:
将获取的待识别图像输入角点提取模型进行处理,输出所述待识别图像中的多个角点坐标;
对所述多个角点坐标进行分组,以得到至少一个角点坐标组;其中,每个角点坐标组中的角点对应于同一个一维码;
根据所述至少一个角点坐标组,确定所述待识别图像包含的一维码的数量和位置;
所述角点提取模型包括检测头部网络,所述检测头部网络包括角点分支和中心点分支;
所述角点分支用于输出第一分类特征图;所述第一分类特征图指示第一概率,所述第一概率为所述待识别图像上的点是一维码的角点的概率;
所述中心点分支用于输出第二分类特征图和第二回归特征图;所述第二分类特征图指示第二概率,所述第二概率为所述待识别图像上的点是一维码的中心点的概率;所述第二回归特征图指示第三向量,所述第三向量为一维码的中心点指向一维码的角点的向量;
所述角点分支用于输出第一回归特征图,所述第一回归特征图指示第一向量和第二向量;所述第一向量为一维码短边的中点指向一维码的中心点的向量,所述第二向量为一维码短边的中点指向一维码的角点的向量;
所述将获取的待识别图像输入角点提取模型进行处理,输出所述待识别图像中的多个角点坐标,包括:
将获取的待识别图像输入角点提取模型中,分别经过所述角点分支和所述中心点分支的处理,得到所述第一分类特征图、所述第一回归特征图、所述第二分类特征图以及所述第二回归特征图;
以所述第一概率大于预设的第一阈值的点作为第一候选角点;
以所述第二概率大于预设的第二阈值的点的作为候选中心点;
以起点为所述候选中心点的所述第三向量的终点作为第二候选角点;
将相邻的两个所述第三向量相加,以得到第四向量;
若确定的第一角度大于或等于预设的第三阈值,则以所述第二候选角点的坐标作为所述待识别图像中的角点坐标;所述第一角度为所述第四向量与所述第一向量之间的夹角;
若确定的所述第一角度小于预设的第三阈值,则以所述第一候选角点的坐标作为所述待识别图像中的角点坐标。
2.根据权利要求1所述的方法,其特征在于,所述对所述多个角点坐标进行分组,以得到至少一个角点坐标组,包括:
以终点相同的两个第一向量的起点作为同一个一维码的两条短边的候选中点;
基于所述候选中点确定第二向量,以所述第二向量的四个终点构成的集合作为同一个一维码的候选角点;
若确定的第二角度小于预设的第四阈值,则以所述候选角点构成的集合作为一个角点坐标组,以得到至少一个角点坐标组;所述第二角度为所述候选角点构成的四边形相邻的两条边之间的夹角。
3.根据权利要求1所述的方法,其特征在于,所述对所述多个角点坐标进行分组,以得到至少一个角点坐标组,包括:
以起点相同的四个第三向量的终点作为同一个一维码的候选角点;
若确定的第二角度小于预设的第四阈值,则以所述候选角点构成的集合作为一个角点坐标组,以得到至少一个角点坐标组;所述第二角度为所述候选角点构成的四边形相邻的两条边之间的夹角。
4.根据权利要求1所述的方法,其特征在于,所述对所述多个角点坐标进行分组,以得到至少一个角点坐标组,包括:
将起点相同且相邻的两个第三向量相加,以得到第四向量;
若确定的第三角度大于或等于预设的第五阈值,则以起点相同的四个第三向量的终点作为一个角点坐标组,以得到至少一个角点坐标组;所述第三角度为所述第四向量与所述第一向量之间的夹角;
若确定的所述第三角度小于预设的第五阈值,则以所述角点分支输出的角点作为一个角点坐标组,以得到至少一个角点坐标组。
5.根据权利要求1所述的方法,其特征在于,所述角点提取模型还包括主干网络和特征融合层;所述方法还包括:
将所述待识别图像输入所述主干网络进行特征提取,得到所述待识别图像的图像特征;
将所述图像特征输入所述特征融合层进行下采样处理,得到下采样后的图像特征;
以所述下采样后的图像特征作为所述检测头部网络的输入。
6.一种一维码定位装置,其特征在于,包括:
提取模块,用于将获取的待识别图像输入角点提取模型进行处理,输出所述待识别图像中的多个角点坐标;
分组模块,用于对所述多个角点坐标进行分组,以得到至少一个角点坐标组;其中,每个角点坐标组中的角点对应于同一个一维码;
确定模块,用于根据所述至少一个角点坐标组,确定所述待识别图像包含的一维码的数量和位置;
其中,所述角点提取模型包括检测头部网络,所述检测头部网络包括角点分支和中心点分支;
所述角点分支用于输出第一分类特征图;所述第一分类特征图指示第一概率,所述第一概率为所述待识别图像上的点是一维码的角点的概率;
所述中心点分支用于输出第二分类特征图和第二回归特征图;所述第二分类特征图指示第二概率,所述第二概率为所述待识别图像上的点是一维码的中心点的概率;所述第二回归特征图指示第三向量,所述第三向量为一维码的中心点指向一维码的角点的向量;
所述角点分支用于输出第一回归特征图,所述第一回归特征图指示第一向量和第二向量;所述第一向量为一维码短边的中点指向一维码的中心点的向量,所述第二向量为一维码短边的中点指向一维码的角点的向量;
所述将获取的待识别图像输入角点提取模型进行处理,输出所述待识别图像中的多个角点坐标,包括:
将获取的待识别图像输入角点提取模型中,分别经过所述角点分支和所述中心点分支的处理,得到所述第一分类特征图、所述第一回归特征图、所述第二分类特征图以及所述第二回归特征图;
以所述第一概率大于预设的第一阈值的点作为第一候选角点;
以所述第二概率大于预设的第二阈值的点的作为候选中心点;
以起点为所述候选中心点的所述第三向量的终点作为第二候选角点;
将相邻的两个所述第三向量相加,以得到第四向量;
若确定的第一角度大于或等于预设的第三阈值,则以所述第二候选角点的坐标作为所述待识别图像中的角点坐标;所述第一角度为所述第四向量与所述第一向量之间的夹角;
若确定的所述第一角度小于预设的第三阈值,则以所述第一候选角点的坐标作为所述待识别图像中的角点坐标。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的一维码定位方法中的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的一维码定位方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211565787.7A CN115577728B (zh) | 2022-12-07 | 2022-12-07 | 一维码定位方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211565787.7A CN115577728B (zh) | 2022-12-07 | 2022-12-07 | 一维码定位方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115577728A CN115577728A (zh) | 2023-01-06 |
CN115577728B true CN115577728B (zh) | 2023-03-14 |
Family
ID=84590220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211565787.7A Active CN115577728B (zh) | 2022-12-07 | 2022-12-07 | 一维码定位方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115577728B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066914A (zh) * | 2017-03-13 | 2017-08-18 | 广州卓德信息科技有限公司 | 一种复杂背景下的二维条码图像定位方法及系统 |
CN110009615A (zh) * | 2019-03-31 | 2019-07-12 | 深圳大学 | 图像角点的检测方法及检测装置 |
CN113591967A (zh) * | 2021-07-27 | 2021-11-02 | 南京旭锐软件科技有限公司 | 一种图像处理方法、装置、设备及计算机存储介质 |
CN114022558A (zh) * | 2022-01-05 | 2022-02-08 | 深圳思谋信息科技有限公司 | 图像定位方法、装置、计算机设备和存储介质 |
CN114155362A (zh) * | 2021-11-30 | 2022-03-08 | 成都新潮传媒集团有限公司 | 一种用于车牌识别的车牌定位方法、装置及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975894B (zh) * | 2016-05-11 | 2018-08-21 | 华中科技大学 | 一种基于自适应边缘检测和映射模型的一维码识别算法 |
CN109190434B (zh) * | 2018-06-25 | 2021-08-24 | 广东工业大学 | 一种基于亚像素级角点检测的条码识别算法 |
US11216631B2 (en) * | 2020-04-24 | 2022-01-04 | Avocado Scan, Inc. | Contrast edge barcodes |
-
2022
- 2022-12-07 CN CN202211565787.7A patent/CN115577728B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066914A (zh) * | 2017-03-13 | 2017-08-18 | 广州卓德信息科技有限公司 | 一种复杂背景下的二维条码图像定位方法及系统 |
CN110009615A (zh) * | 2019-03-31 | 2019-07-12 | 深圳大学 | 图像角点的检测方法及检测装置 |
CN113591967A (zh) * | 2021-07-27 | 2021-11-02 | 南京旭锐软件科技有限公司 | 一种图像处理方法、装置、设备及计算机存储介质 |
CN114155362A (zh) * | 2021-11-30 | 2022-03-08 | 成都新潮传媒集团有限公司 | 一种用于车牌识别的车牌定位方法、装置及存储介质 |
CN114022558A (zh) * | 2022-01-05 | 2022-02-08 | 深圳思谋信息科技有限公司 | 图像定位方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115577728A (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109960742B (zh) | 局部信息的搜索方法及装置 | |
US11475681B2 (en) | Image processing method, apparatus, electronic device and computer readable storage medium | |
WO2020125216A1 (zh) | 一种行人重识别方法、装置、电子设备及计算机可读存储介质 | |
CN111814794B (zh) | 文本检测方法、装置、电子设备及存储介质 | |
CN112990010B (zh) | 点云数据处理方法、装置、计算机设备和存储介质 | |
CN111179311A (zh) | 多目标跟踪方法、装置及电子设备 | |
CN110781756A (zh) | 基于遥感图像的城市道路提取方法及装置 | |
CN111860398B (zh) | 遥感图像目标检测方法、系统及终端设备 | |
Xu et al. | Fast vehicle and pedestrian detection using improved Mask R‐CNN | |
CN111104925B (zh) | 图像处理方法、装置、存储介质和电子设备 | |
CN113537254B (zh) | 图像特征提取方法、装置、电子设备及可读存储介质 | |
CN114022558B (zh) | 图像定位方法、装置、计算机设备和存储介质 | |
CN114066987B (zh) | 一种相机位姿估计方法、装置、设备及存储介质 | |
CN114565916B (zh) | 目标检测模型训练方法、目标检测方法以及电子设备 | |
CN114758145B (zh) | 一种图像脱敏方法、装置、电子设备及存储介质 | |
CN111753766A (zh) | 一种图像处理方法、装置、设备及介质 | |
CN111353429A (zh) | 基于眼球转向的感兴趣度方法与系统 | |
CN112241736A (zh) | 一种文本检测的方法及装置 | |
CN116168410B (zh) | 一种基于神经网络的药盒信息识别方法及系统 | |
CN113704276A (zh) | 地图更新方法、装置、电子设备及计算机可读存储介质 | |
WO2023241372A1 (zh) | 相机内参标定方法及相关设备 | |
CN115577728B (zh) | 一维码定位方法、装置、计算机设备及存储介质 | |
CN114549857A (zh) | 图像信息识别方法、装置、计算机设备和存储介质 | |
CN112084874B (zh) | 一种物体检测方法、装置及终端设备 | |
CN114445851B (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 |