CN116842977B - 条形码识别方法 - Google Patents
条形码识别方法 Download PDFInfo
- Publication number
- CN116842977B CN116842977B CN202311110523.7A CN202311110523A CN116842977B CN 116842977 B CN116842977 B CN 116842977B CN 202311110523 A CN202311110523 A CN 202311110523A CN 116842977 B CN116842977 B CN 116842977B
- Authority
- CN
- China
- Prior art keywords
- character
- boundary
- sequence
- nth
- length
- 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
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000012795 verification Methods 0.000 claims abstract description 10
- 238000000605 extraction Methods 0.000 claims description 18
- 238000007781 pre-processing Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005260 corrosion Methods 0.000 description 1
- 230000007797 corrosion Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/153—Segmentation of character regions using recognition of characters or words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/18—Extraction of features or characteristics of the image
- G06V30/1801—Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections
- G06V30/18019—Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections by matching or filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/19007—Matching; Proximity measures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Character Discrimination (AREA)
- Character Input (AREA)
Abstract
本申请公开了一种条形码识别方法,涉及图像识别技术领域,该方法包括:对待识别条形码进行信息提取,得到待识别条形码的条空分界信息;基于条空分界信息与预设的m种条空数量,提取得到N种字符序列集,提取每个字符序列过程中采用的条空数量相同或不同,m与N为正整数;将N种字符序列集中第n字符序列集与字符序列模板库中包含的字符序列模板进行匹配,得到第n字符匹配结果,字符序列模板库中包含不同字符对应的字符序列模板,其中,n为正整数,且n∈N;在第n字符匹配结果校验通过的情况下,基于第n字符匹配结果确定待识别条形码中包含的各个字符。本申请实施例提供的方法,有效的提高了亚像素级低分辨率下条形码识别的能力。
Description
技术领域
本申请涉及图像识别技术领域,尤其是一种条形码识别方法。
背景技术
条形码由于其存储信息量大、可靠性强、灵活使用等特点,极大地提高了自动化管理的工作效率,在当今互联网时代扮演着越来越重要的作用。其应用正逐步的渗透到商业、交通运输、图书管理、物流配送以及工程项目等不同行业中。
条形码识别技术是条形码使用过程的关键环节,直接关系到整个***工作的效率和质量。现有条形码识别技术多用于对正常分辨率的条形码信息读取,而对于清晰度较低的条形码,如亚像素级低分辨率下的条形码,条形码条空边缘位置会产生混淆,无法准确提取边缘位置,从而导致识别率及识别准确度较低。
发明内容
本申请人针对上述问题及技术需求,提出了一种条形码识别方法,本申请的技术方案如下:
一方面,提供一种条形码识别方法,包括如下步骤:
对待识别条形码进行信息提取,得到所述待识别条形码的条空分界信息,所述条空分界信息中包含所述待识别条形码中条与空的分界位置信息;
基于所述条空分界信息与预设的m种条空数量,提取得到N种字符序列集,所述条空数量为单个字符所包含的条与空的数量,且提取每个字符序列过程中采用的所述条空数量相同或不同,m与N为正整数;
将N种字符序列集中第n字符序列集与字符序列模板库中包含的字符序列模板进行匹配,得到第n字符匹配结果,所述字符序列模板库中包含不同字符对应的字符序列模板,其中,n为正整数,且n∈N;
在所述第n字符匹配结果校验通过的情况下,基于所述第n字符匹配结果确定所述待识别条形码中包含的各个字符。
其中,进一步的方案为:
所述m种条空数量根据所述待识别条形码对应的目标编码规则预设得到,所述m种条空数量中包含所述目标编码规则规定的条空数量;
基于所述条空分界信息与预设的m种条空数量,提取得到N种字符序列集,包括:
基于所述条空分界信息与m种所述条空数量,提取得到N种起始终止边界,所述起始终止边界中包含所述待识别条形码中起始字符的起始边界与终止字符的终止边界;
基于第n起始终止边界确定第n参考字符长度区间,以及基于所述第n参考字符长度区间与m种所述条空数量,确定第n中间边界集,中间边界集种包含各个中间字符的字符边界,所述中间字符是所述起始字符与所述终止字符之间的字符,参考字符长度区间是所有中间字符的字符长度所需遵循的长度范围;
基于所述第n起始终止边界以及所述第n中间边界集提取得到第n字符序列集;
所述得到第n字符匹配结果,包括:
将所述第n字符序列集中包含的字符序列与各个所述字符序列模板进行匹配,得到所述第n字符匹配结果。
所述基于所述条空分界信息与m种所述条空数量,提取得到N种起始终止边界,包括:
基于所述条空分界信息与第i条空数量,确定所述起始字符的第i组起始边界,以及基于所述条空分界信息与第k条空数量,确定所述终止字符的第k组终止边界,i与k为正整数,i与k相同或不同,且i≤m,k≤m;
所述基于第n起始终止边界确定第n参考字符长度区间,包括:
基于所述第i组起始边界中第s起始边界指示的所述起始字符的第s字符长度,和/或所述第k组终止边界中第t终止边界指示的所述终止字符的第t字符长度,确定所述第n参考字符长度区间,s与k为正整数。
所述基于所述条空分界信息与第i条空数量,确定所述起始字符的第i组起始边界,包括:
基于所述条空分界信息与所述第i条空数量,在起始字符搜索区间内搜索得到所述起始字符的候选边界,所述起始字符搜索区间根据所述待识别条形码的序列总长度设置;
基于各种所述候选边界提取得到候选字符序列,以及将各种所述候选字符序列与所述字符序列模板进行匹配,得到候选字符;
将所述候选字符中属于起始字符类型的字符对应的边界,添加至所述第i组起始边界中。
所述确定所述第n参考字符长度区间,包括:
在所述第s起始边界与所述第t终止边界之间的字符序列长度在预设长度范围之内的情况下,确定所述第n参考字符长度区间,所述预设长度范围根据所述目标编码规则设定。
所述基于所述第n参考字符长度区间与m种所述条空数量,确定第n中间边界集,包括:
遍历m种所述条空数量,在遍历过程中,基于所述条空数量与第p中间字符的字符边界,确定第p+1字符的字符边界,p为正整数;
基于所述第i字符长度、和/或所述第k字符长度、和/或第p字符长度确定第p+1字符参考长度;
确定m种字符边界指示的所述第p+1字符的字符长度,以及确定m种所述字符长度与所述p+1字符参考长度之间的长度差值;
在最小长度差值对应的字符边界所指示的字符长度在所述第n参考字符长度区间内的情况下,将最小长度差值对应的字符边界确定为所述第p+1字符的第n中间字符边界。
所述方法还包括:
基于编码规则,生成各个字符对应的理想条空灰度序列,不同编码规则指示的字符对应的条空组合方式不同;
对所述理想条空灰度序列进行图像预处理,得到各个字符对应的字符序列模板,所述图像预处理用于使所述理想条空灰度序列接近实际拍摄条件下拍摄得到的灰度序列;
将各个字符对应的字符序列模板添加至模板库中,得到所述编码规则对应的字符序列模板库;
所述将N种字符序列集中第n字符序列集与字符序列模板库中包含的字符序列模板进行匹配,包括:
将所述第n字符序列集与目标编码规则对应的字符序列模板库中包含的所述字符序列模板进行匹配,所述目标编码规则是所述待识别条形码对应的编码规则。
所述方法还包括:
对所述字符序列模板库中的字符序列模板进行特征提取,得到各个所述字符序列模板对应的曲线灰度特征模板,组成曲线灰度特征模板库;
所述将所述第n字符序列集与所述目标编码规则对应的字符序列模板库中包含的所述字符序列模板进行匹配,包括:
对所述第n字符序列集中的字符序列进行特征提取,得到曲线灰度特征;
将所述曲线灰度特征与所述曲线灰度特征模板进行匹配。
所述得到第n字符匹配结果,包括:
基于所述曲线灰度特征与各个所述曲线灰度特征模板之间的特征相似度确定所述第n字符匹配结果,所述第n字符匹配结果中字符的特征相似度高于其他字符的特征相似度。
所述对所述第n字符序列集中的字符序列进行特征提取,得到曲线灰度特征,包括:
基于缩放比例,对所述字符序列进行缩放,所述缩放比例根据所述字符序列的序列长度与所述字符序列模板的序列长度间的比值确定;
对缩放后的所述字符序列进行特征提取,得到所述曲线灰度特征。
所述方法还包括:
对所述待识别条形码进行水平方向分割,得到子条形码集合,所述子条形码集合中包含若干子条形码;
对所述子条形码进行条形码识别,得到若干个子条形码的识别结果;
在若干个子条形码的识别结果相同的次数大于预设阈值的情况下,基于相同识别结果确定所述待识别条形码中的各个字符。
本申请的有益技术效果是:
本申请实施例中,预设有若干种条空数量,在对条形码的识别过程中,基于待识别条形码的条空分界信息与预设的条空数量进行字符序列提取,之后,可将字符序列与模板库中各个字符的字符序列模板进行匹配,根据匹配结果确定条形码中的字符。在此过程中,根据条空分界与若干种条空数量可提取到若干种字符序列集,以进行多轮匹配过程,通过多轮匹配过程,可降低条空边界不准确对条形码识别的影响,从而可提高条形码识别的准确性,有效提高对亚像素级低分辨率下条形码识别的能力。
附图说明
图1是本申请一个示例性实施例提供的条形码识别方法的流程图;
图2是本申请一个示例性实施例提供的code128条形码的示意图;
图3是本申请一个示例性实施例提供的低分辨率条形码与正常分辨率条形码的对比图;
图4是本申请一个示例性实施例提供的起始终止字符匹配过程的流程图;
图5是本申请一个示例性实施例提供的中间字符匹配过程的流程图;
图6是本申请一个示例性实施例提供的字符序列模板与曲线灰度特征模板的示意图;
图7是本申请一个示例性实施例提供特征匹配过程的示意图;
图8是本申请另一个示例性实施例提供的条形码识别方法的流程图。
具体实施方式
下面结合附图对本申请的具体实施方式做进一步说明。
请参考图1,其示出了本申请一个示例性实施例提供的条形码识别方法的流程图,该方法以计算机设备执行为例进行说明。该方法包括如下步骤:
步骤101,对待识别条形码进行信息提取,得到待识别条形码的条空分界信息。
其中,待识别的条形码可为拍摄得到的条形码,可为实时拍摄得到的,也可为预先拍摄后上传的条形码。或者,待识别条形码也可为计算机设备模拟生成的条形码,本实施例对此不做限定。
且待识别条形码可为拍摄得到的亚像素级低分辨率条形码,也可为正常分辨率条形码。
条空分界信息中包含待识别条形码中条与空之间的分界位置信息。
条形码是将黑色线条与空白条按照一定编码规则组合起来的符号,编码规则中包含对编码类型、字符组成、字符密度以及字符长度等多方面的规定。本申请实施例中,所提及的“条”即为条形码中的黑色线条,“空”即为条形码中的空白条。
示意性的,Code128类型条形码对应的编码规则中规定:除终止字符外,单个字符由3条3空组成(即单个字符包含的条空数量为6),每个条或空由1-4个单位模块组成,即每个条或空的宽度为单位模块对应宽度的1-4倍,且每个字符总的字符长度为11个单位模块的宽度,终止字符由4条3空组成,字符长度为13(即终止字符由13个单位模块组成,且包含的条空数量为7)。如图2所示,其示出了一种Code128类型的条形码,包含起始字符201,由3条3空组成;数据字符202,包含三个字符,每个字符分别由3条3空组成;校验字符203,由3条3空组成以及终止字符204,由4条3空组成。
在一种可能的方式中,在接收到待识别条形码之后,可首先提取待识别条形码中的条空分界信息,包含各个“条”与各个“空”之间的条空分界位置坐标,以及条空属性(条空属性即指示该位置为“条”或者为“空”的属性)。
步骤102,基于条空分界信息与预设的m种条空数量,提取得到N种字符序列集,字符序列集中包含各个字符的字符序列。
其中,条空数量为单个字符所包含的条与空的总数量。在条形码识别过程中,可能存在条形码中的条空粘连以致无法有效划分条空边界,此时,由于条空边界提取到的字符边界与理想情况下对应字符模板所对应的条空数量不同,若根据条形码对应编码规则中规定的条空数量进行字符边界的划分,会导致字符边界划分不准确的情况,从而影响后续条形码中字符的识别。如图3所示,低分辨率下的条形码301相较于正常分辨率下的条形码302条空粘连,边界不清晰,无法基于标准条空数量进行识别。
因此,本申请实施例中,通过预设m种条空数量,分别根据不同种的条空数量提取字符边界,再基于字符边界提取字符序列以进行条形码的识别,以通过多轮匹配过程降低条空边界划分不清对条形码识别的影响,m为正整数。
在一种可能的实施方式中,可先根据条空分界信息与预设的条空数量,确定各个字符的字符边界,再基于各个字符的字符边界提取得到各个字符对应的字符序列。根据条空分界信息与预设的条空数量确定字符边界的过程中,可从上一字符的结束边界起开始条空计数,当条空计数的数量达到条空数量时,将最后一个条或空的结束边界确定为当前字符的字符边界。示意性的,当条空数量为4时,起始字符的边界即为第1个条空的起始边界与第4个条空的结束边界。
在提取各个字符的字符边界的过程中,采用的预设条空数量可以相同,也可不同,即提取每个字符序列的过程中采用的条空数量相同或不同,因此,根据m种条空数量,可提取得到N种字符序列集,在一种字符序列集中,各个字符序列可能基于相同或不同的预设条空数量提取得到,N为正整数。
得到各个字符的字符边界之后,可将单个字符对应的两个边界所围成的区域提取出来,以得到该字符对应的字符序列。将各个字符对应的字符序列提取出来,得到字符序列集。
步骤103,将N种字符序列集中第n字符序列集与字符序列模板库中包含的字符序列模板进行匹配,得到第n字符匹配结果。
字符序列模板库中包含不同字符对应的字符序列模板。
本申请实施例中,预先构建有字符序列模板库。其中,字符序列模板库中包含各种字符对应的字符序列模板,且不同编码规则下不同字符对应的字符序列(由条空组成)不同,因此,可预先构建有不同类型的字符序列模板库,不同类型的模板库分别对应不同的编码规则。
在对待识别条形码识别过程中,可先根据待识别条形码的编码规则确定对应的目标模板库。之后,将字符序列集中的字符序列与目标模板库中的字符序列模板进行匹配。示意性的,当待识别条形码为Code128码时,可将基于Code128编码规则生成的字符序列模板库确定为目标模板库。也可将目标模板库设置为多个不同条码类别的模板库,预先设定各模板库的匹配顺序,前面类别模板库识别失败时,按序调用下一类别模板库进行识别,本实施例对此不进行限定。
根据m种预设条空数量,提取得到N种字符序列集,对于N种字符序列集,可将每一种字符序列集均与字符序列模板库进行匹配,得到每一种字符序列集的字符匹配结果。在一种可能的实施方式中,第n字符序列集即为N种字符序列集中的第n种字符序列集,可将第n字符序列集中每个字符的字符序列与字符序列模板库中各个字符序列模板进行匹配,得到每个字符序列对应的字符匹配结果,组成第n字符匹配结果,其中,n为正整数,且n∈N。
步骤104,在第n字符匹配结果校验通过的情况下,基于第n字符匹配结果确定待识别条形码中包含的各个字符。
在得到第n字符匹配结果之后,需要对第n字符匹配结果中指示的字符进行校验,若校验通过,则可根据第n字符匹配结果确当待识别条形码中包含的各个字符。
在条形码中包含有校验字符,在对第n字符匹配结果校验过程中,可基于编码规则指示的校验方式对第n字符匹配结果中各个字符进行计算,并将计算结果与第n字符匹配结果中指示的校验字符匹配,若二者相同,则确定校验通过,若二者不同,则确定校验失败。
若第n字符匹配结果校验失败,则可将N种字符序列集中第n+1字符序列集与字符序列模板进行匹配,得到第n+1字符匹配结果,再对第n+1字符匹配结果进行校验,直至匹配结果校验成功为止。可见,本申请实施例中,通过预设不同种的条空数量,进行多轮匹配校验的过程,可提高对条形码识别的准确性。
本申请实施例中,预设有若干种条空数量,在对条形码的识别过程中,基于待识别条形码的条空分界信息与预设的条空数量进行字符序列提取,之后,可将字符序列与模板库中各个字符的字符序列模板进行匹配,根据匹配结果确定条形码中的字符。在此过程中,根据条空分界与若干种条空数量可提取到若干种字符序列集,以进行多轮匹配过程,通过多轮匹配过程,可降低条空边界不准确对条形码识别的影响,从而可提高条形码识别的准确性,有效提高对亚像素级低分辨率下条形码识别的能力。
本申请实施例中对条形码的识别基于字符序列模板库进行。下面对构建字符序列模板库的方式进行说明,包含如下步骤:
步骤一,基于编码规则,生成各个字符对应的理想条空灰度序列,不同编码规则指示的字符对应的条空组合方式不同。
不同类型的条形码具有不同的编码规则,编码规则中指示有各个字符对应的条空组合方式,根据条空组合方式以及预设字符灰度序列长度,生成理想条空灰度序列。其中,预设字符灰度序列长度根据编码规则中标准字符序列长度设置。由于实际拍摄的条形码中条或空对应的宽度可能并非编码规则下的标准宽度,组成的字符序列长度也并非标准长度。因此,在构建模板时,利用预设字符灰度序列长度生成字符序列模板,以避免利用标准长度进行对比造成识别错误的情况。在一种可能的实施方式中,预设字符灰度序列长度可为编码规则中标准字符序列长度的整数倍,且倍数越高,条形码识别准确率越高,可根据实际需求选择。在生成理想条空灰度序列的过程中,可利用预设字符灰度序列长度确定单位模块宽度。
示意性的,针对Code128码,除终止字符外,其他字符的标准字符序列长度为11,因此,预设灰度序列长度可为22,33或44等。
理想条空灰度序列即由灰度值为0的黑条与灰度值为255的空白条组成。对于各个字符,可根据预设灰度序列长度指示的单位模块宽度,与该字符对应条空组合方式生成对应的理想条空灰度序列。
步骤二,对理想条空灰度序列进行图像预处理,得到各个字符对应的字符序列模板,图像预处理用于使理想条空灰度序列接近实际拍摄条件下拍摄得到的灰度序列。
由于理想条空灰度序列与实际环境下拍摄得到的待识别条形码的灰度序列差别较大,为使理想条空灰度序列的特征与待识别条形码的特征接近,在得到理想条空灰度序列之后,可对其进行图像预处理,使其可接近实际拍摄条件下拍摄得到的灰度序列,提高特征匹配的准确性。
其中,图像预处理的过程包含但不限于模糊处理、插值缩放以及腐蚀膨胀等方式。对理想条空灰度序列进行图像预处理后,即可得到该字符对应的字符灰度序列模板。模糊处理、插值缩放以及腐蚀膨胀的方式可采用本领域技术人员常用的技术手段,本实施例在此不再赘述。
对字符对应的理想条空灰度序列进行图像预处理之后,可得到字符对应的字符序列模板。如图6所示,对理想条空灰度序列601进行图像预处理之后,得到字符序列模板602。
步骤三,将各个字符对应的字符序列模板添加至模板库中,得到目标编码规则对应的字符序列模板库。
在一种可能的实施方式中,基于编码规则生成的各个字符的理想条空灰度序列,再经图像预处理后得到的字符序列模板,即组成编码规则对应的字符序列模板库。
对于任一编码规则,均可通过上述方式生成对应的字符序列模板库。在对待识别条形码进行识别过程中,可根据待识别条形码的目标编码规则选择对应的目标模板库进行匹配。即在对第n字符序列集进行匹配的过程中,将第n字符序列集与目标编码规则对应的字符序列模板库中包含的字符序列模板进行匹配。
且在将待识别条形码的字符序列与字符序列模板进行匹配时,利用字符序列对应的曲线灰度特征进行匹配,根据曲线灰度特征的特征相似度确定匹配结果。
为提高匹配效率,在生成字符序列模板库后,可对字符序列模板库中的字符序列模板进行特征提取,得到各个字符序列模板对应的曲线灰度特征模板,组成曲线灰度特征模板库,在实时识别条形码的过程中,可直接调用曲线灰度特征模板库获取其中的曲线灰度特征模板进行匹配。
生成模板库后,可将各个模板库(包含字符序列模板库以及曲线灰度特征模板库)存储在本地,进行匹配时直接从本地调用即可,可提高实时识别条形码的性能。
在一种可能的实施方式中,根据m种条空数量提取字符序列时,可先提取一组起始字符与终止字符的字符序列,再以该组起始字符与终止字符的字符序列为参考,提取中间字符的字符序列,以进一步提高字符序列提取的准确性。下面将以示例行实施例进行说明。该方法包含如下步骤:
步骤s1,对待识别条形码进行信息提取,得到待识别条形码的条空分界信息。
对于待识别条形码,待识别条形码中一列的灰度值不均匀,实际上为二维灰度数组,而字符序列模板中一列的灰度值均匀,为一维灰度数组,为进行二者的匹配,可对待识别条形码进行处理,计算待识别条形码列平均灰度值,从而将其简化为一维灰度数组,通过列平均计算可降低因噪声等原因造成的数据波动对条形码识别的影响。计算待识别条形码列平均灰度值的过程可视为待识别条形码中像素值在列方向上的投影,即灰度投影,之后,可计算灰度投影各处的梯度幅值与梯度方向,基于梯度幅值与梯度方向可确定条空分界信息,可选的,根据梯度方向确定条空属性。示意性的,对于条形码中的黑条,左边界为空白条到黑条的跳变,梯度方向为负,右边界为黑条到白条的跳变,梯度方向为正。且可根据梯度幅值确定条空分界位置坐标,可选的,可采用梯度算子如Sobel算子、Roberts交叉算子或Laplacian算子中至少一种确定边界坐标;或者,也可采用Marr-Hildreth、Canny等边缘检测算法确定边界坐标,本实施例对此不做限定。
通过上述方式可得到待识别条形码中各个条空之间的条空分界位置坐标以及各区域的条空属性。之后,可根据待识别条形码的条空分界信息与条空数量进行匹配。
步骤s2,基于条空分界信息与m种条空数量,提取得到N种起始终止边界,起始终止边界中包含待识别条形码中起始字符的起始边界与终止字符的终止边界。
其中,m种条空数量根据待识别条形码对应的目标编码规则预设得到,m种条空数量中包含目标编码规则规定的标准条空数量。示意性的,对于Code128码,其中,对于除终止字符之外的其他字符。标准条空数量为6,预设条空数量可为2,4,6或8等,其中包含标准条空数量。
在一种可能的实施方式中,首先可提取起始字符与终止字符的字符边界,并提取得到起始字符与终止字符的字符序列。对于起始字符的提取,存在m种条空数量,每一种条空数量可提取得到一组起始边界(一组起始边界中可能包含多种边界),m种条空数量可提取得到m1种起始边界,同样的,可提取到m2种终止字符的终止边界,每种起始边界与每种终止边界可组合为一组起始终止边界,m1种起始边界与m2种终止边界可组成N种起始终止边界。
可选的,在提取第n起始终止边界(即第n组起始终止边界)时,基于条空分界信息与第i条空数量,确定起始字符的第i组起始边界,以及基于条空分界信息与第k条空数量,确定终止字符的第k组终止边界,i与k为正整数,i与k相同或不同,且i≤m,k≤m。即可分别根据不同或相同的条空数量,提取得到第i组起始边界与第k组终止边界后,第i组起始边界中的第s起始边界与第k组中的第t终止边界可组成第n起始终止边界,其中,s≤m1,t≤m2。
起始字符存在于条形码起始的一段区域内,在一种可能的实施方式中,可预先设置起始字符搜索区间,在起始字符搜索区间内,利用预设的条空数量进行搜索。其中,起始字符搜索区间可根据待识别条形码的序列总长度设置。示意性的,起始字符搜索区间的区间长度可为序列总长度的1/2、1/3或1/4。
可选的,基于第i条空数量在起始字符搜索区间内搜索得到第i组起始边界的过程可包含如下步骤:
步骤s21,基于条空分界信息与第i条空数量,在起始字符搜索区间内搜索得到起始字符的候选边界。
利用第i条空数量在起始字符搜索区间内进行搜索,可得到若干种起始字符的候选边界,若干种候选边界所对应的条空数量均为第i条空数量。示意性的,当第i条空数量为2时,可基于条空数量2在起始字符搜索区间内进行搜索,得到若干种候选边界。
步骤s22,基于各种候选边界提取得到候选字符序列,以及将各种候选字符序列与字符序列模板进行匹配,得到候选字符。
对于一种候选边界,可提取得到对应的候选字符序列,在将候选字符序列与字符序列模板库中的字符序列模板进行匹配,得到对应的候选字符。
在将候选字符序列与字符序列模板进行匹配的过程中,将特征相似度大于预设阈值的模板对应的字符确定为候选字符。预设阈值可根据特征分布规律及每种特征的取值范围进行设置,本实施例对此不做限定。通过预设阈值的设定可限定特征相似度的取值范围,对于相似度差值较大的匹配结果进行删除,以提高匹配准确性。
步骤s23,将候选字符中属于起始字符类型的字符对应的边界,添加至第i组起始边界中。
为提高匹配效率,先确定候选字符是否属于起始字符。对于一种类型的条形码,其起始字符是固定的一些字符。在一种可能的实施方式中,可获取待识别条形码对应的条形码种类所对应的固定起始字符,再检测候选字符是否属于固定起始字符,若属于,则确定该候选字符匹配成功,可将其对应的边界确定为一种起始字符的边界,添加至第i组起始边界中。
同理,可预先设置终止字符搜索边界,并基于第k条空数量在终止字符边界中搜索得到第k组终止边界,方式可参考上述提取第i组起始边界的过程,在此不再赘述。
第i组起始边界中的任一起始边界可与第k组终止边界中的任一终止边界可组合得到第n起始终止边界,第n起始终止边界中可包含第i组起始边界中第s起始边界与第k组终止边界中的第t终止边界。
步骤s3,基于第n起始终止边界确定第n参考字符长度区间,以及基于第n参考字符长度区间与m种条空数量,确定第n中间边界集,中间边界集种包含各个中间字符的字符边界,参考字符长度区间是所有中间字符的字符长度所需遵循的长度范围。
本实施例中,以起始字符和/或终止字符和/或当前中间字符的前一字符的字符长度为参考,进行中间字符序列的提取。中间字符是起始字符与终止字符之间的字符,可选的,中间字符包含数据字符以及校验字符。
N种起始终止边界所指示的起始终止字符序列中可能存在并不匹配的起始终止字符序列,基于不匹配的起始终止字符序列为参考,将导致中间字符提取错误。因此,在以一组起始终止字符为参考进行中间字符进行提取时,需先对该组起始终止字符进行配对,在配对成功的情况下,再以此为参考。
可选的,在对第n起始终止边界指示的起始终止字符配对时,在第s起始边界与第t终止边界之间的字符序列长度在预设长度范围之内的情况下,确定第n参考字符长度区间,预设长度范围根据目标编码规则设定。
即配对过程中,以第s起始边界与第t终止边界指示的所有中间字符的字符序列长度为基准进行配对,在一种可能的实施方式中,可基于第s起始边界与第t终止边界的坐标计算得到边界之间的字符序列长度(即为所有字符的字符序列长度),在字符序列长度属于预设长度范围的情况下,确定配对成功,可基于第s起始边界和/或第t终止边界确定第n参考字符长度区间。可选的,预设长度范围可为预设比例的标准中间字符长度,标准中间字符长度是目标编码规则中规定的所有中间字符序列合并起来的字符长度,即中间字符数量与单字符长度的乘积。示意性的,预设长度范围可为最少字符数量、最多字符数量与单字符长度的乘积组成的区间。示意性的,最少字符数量为4,即条形码包含1个起始符、1个数据字符、1个校验字符、1个终止符(即包含2个中间字符),最多字符数量设置为100、200等常数值。当然,还可采用其他方式设定预设长度范围,本实施例对此不做限定。
在第n起始终止边界配对成功后,可基于第s起始边界指示的起始字符的第s字符长度,和/或第t终止边界指示的终止字符的第t字符长度,确定第n参考字符长度区间。
在此过程中,可根据第s字符长度确定第一参考长度,且可基于第t字符长度确定第二参考长度。示意性的,当目标编码规则指示中间字符与起始字符的字符长度比例为第一比例,与终止字符的字符长度比例为第二比例时,可计算第一比例与第s字符长度的乘积,得到第一参考长度,且计算第二比例与第t字符长度的乘积,得到第二参考长度。
可选的,可将第一参考长度与第二参考长度围成的区间确定为第n参考字符长度区间。在此过程中,结合第一参考长度、第二参考长度、小端比例a、大端比例b确定第n参考字符长度区间,其中,第一参考长度、第二参考长度中的小者与小端比例的乘积为区间首端,第一参考长度、第二参考长度中的大者与大端比例的乘积为区间末端,示意性的,小端比例a小于1,大端比例b大于1,如a为0.9,b为1.1。
第n参考字符长度区间对应所有中间字符的长度范围,即所有中间字符的字符长度均应在第n参考字符长度区间内。可基于第n参考字符长度区间提取第n中间边界集。为提高边界提取准确性,在一种可能的实施方式中,对于每一个中间字符,还可以上一字符的字符长度为参考进行边界划分。该方式可包含如下步骤:
步骤s31,遍历m种条空数量,在遍历过程中,基于条空数量与第p中间字符的字符结束边界,确定第p+1字符的字符边界,p为正整数。
针对中间字符中的每一个字符,可结合m种条空数量,得到m种字符边界,在一种可能的实施方式中,结合参考字符长度在m种字符边界中选取得到字符边界。
首先,可基于一种条空数量与上一字符的结束边界,确定当前字符的字符边界。即对于第p+1字符,可以第p中间字符的字符结束边界为起点,进行条空计数,在条空计数达到条空数量时,将结束边界确定为第p+1字符的字符边界。
步骤s32,基于第s字符长度、和/或所述第t字符长度、和/或第p字符长度确定第p+1字符参考长度。
对于第p+1字符可结合m种条空数量得到m种字符边界,在一种可能的实施方式中,可结合第p+1字符参考长度,在m中字符边界中选取第p+1字符的字符边界。
可选的,可以起始字符对应的第s字符长度为参考,也可以终止字符对应的第t字符长度为参考,也可以上一字符(第p字符)的字符长度为参考;或者,也可结合上述三者中的多项为参考,确定第p+1字符参考长度。
结合上述实施例,当以第s字符长度为参考时,可将第一参考长度确定为第p+1字符参考长度;当以第t字符长度为参考时,可将第二参考长度确定为第p+1字符参考长度。
当以第p字符长度为参考时,由于所有中间字符的字符长度相同,因此,可将第p字符长度直接作为第p+1字符参考长度,用于第p+1字符边界的提取。
当结合三者中的多项(如两两结合,或者三者共同结合)确定第p+1字符参考长度时,可对结合项加以一定的权重比例计算得到加权均值,将加权均值确定为第p+1字符参考长度。示例性的,当以第s字符长度、第t字符长度以及第p字符长度为参考时,可将第一参考长度、第二参考长度、第三参考长度加以一定的权重比例计算三者的加权均值,得到第p+1字符参考长度。其中,第三参考长度即为第p字符的第p字符长度。示意性的,三者的权重比例可为1:1:2。该种方式下,当p=0时,可以第一参考长度以及第二参考长度计算第1字符参考长度。
步骤s33,确定m种字符边界指示的第p+1字符的字符长度,以及确定m种字符长度与第p+1字符参考长度之间的长度差值。
对于第p+1字符可结合m种条空数量得到m种字符边界,可分别计算m种字符边界对应的m种字符长度,再分别计算m种字符长度与第p+1字符参考长度之间的长度差值。其中,在根据一种字符边界计算字符长度时,可根据字符边界的坐标计算得到字符长度。
示意性的,对于第一个中间字符,根据条空数量2提取得到第一种字符边界,对应第一种字符长度,根据条空数量4得到第二种字符边界,对应第二种字符长度,根据条空数量6提取的第三种字符边界,得到第三种字符长度,根据条空数量8提取得到第四种字符边界,得到第四种字符长度,分别计算四种字符长度与第p+1字符参考长度之间的长度差值。
步骤s34,在最小长度差值对应的字符边界所指示的字符长度在第n参考字符长度区间内的情况下,将最小长度差值对应的字符边界确定为第p+1字符的第n中间字符边界。
即先确定m个长度差值中最小长度差值,再计算最小长度差值是否在所有中间字符均需在的第n参考字符长度区间内,若字符长度在第n参考字符长度区间内,则可将最小长度差值对应的字符边界确定为第p+1字符的第n中间字符边界。
通过上述方式可在第s起始边界与第t终止边界之间的中间字符搜索区间内逐个搜索各个中间字符边界,直至搜索至中间字符搜索区间的末尾为止,搜索结束后,记录搜索得到各个第n中间字符边界,组成第n中间边界集。
步骤s4,基于第n起始终止边界以及第n中间边界集提取得到第n字符序列集。
第n起始终止边界包含第s起始边界与第t终止边界,根据第s起始边界可提取得到起始字符的第n起始字符序列,根据第t终止边界可提取得到终止字符的第n终止字符序列。且根据第n中间边界集中各个中间字符的第n中间字符序列。第n起始字符序列、第n终止字符序列以及第n中间字符序列组成第n字符序列集。
步骤s5,将第n字符序列集中包含的字符序列与各个字符序列模板进行匹配,得到第n字符匹配结果。
将第n起始字符序列与字符序列模板进行匹配,可得到第n起始字符的匹配结果;将第n终止字符序列与字符序列模板进行匹配,可得到第n终止字符的匹配结果;将各个第n中间字符序列与字符序列模板进行匹配,可得到各个中间字符的第n中间字符匹配结果。
结合上述实施例中,起始终止字符的匹配过程如图4所示,包含如下步骤:
步骤401,提取待识别条形码的条空分界信息。
步骤402,确定起始终止字符搜索区间。
其中,起始终止字符搜索区间可根据待识别条形码的序列总长度确定。
步骤403,基于起始终止字符搜索区间,确定是否完成所有边界搜索,若是,则执行步骤408,若否,则执行步骤404。
可以起始终止字符搜索区间为限制,结合m种条空数量确定N种起始终止边界,可基于从小到大的条空数量,逐个搜索起始终止边界,在基于预设的条空数量确定得到的起始终止边界不在起始终止字符搜索区间内时,停止起始终止字符边界的匹配过程。
步骤404,基于预设条空数量,确定一组起始、终止字符边界。
步骤405,基于起始终止字符边界提取起始终止字符序列,进行字符序列匹配,得到匹配结果。
步骤406,确定匹配结果是否为起始终止字符,若是,执行步骤407,若否,执行步骤403。
对于匹配结果的判断是以模板库中的起始字符和终止字符为标准。当起始字符匹配为模板库中的起始字符,终止字符匹配为模板库中的终止字符时,即为匹配成功。
需要说明的是,将匹配结果中起始字符与终止字符与模板库进行匹配的过程是独立进行的。示例性的,当确定起始字符为模板库中的起始字符,而终止字符并非模板库中的终止字符时,可重新再选取一个终止字符边界,再次进行匹配过程。当二者均匹配完成后,将匹配成功的一个起始字符与一个终止字符进行组合,作为一组起始、终止字符,一组起始、终止字符配对成功后,用于后续中间字符的匹配过程。
步骤407,记录起始终止字符。
且一对起始、终止字符匹配成功并记录后,继续搜索下一对起始、终止字符,继续执行步骤403。
步骤408,结束边界搜索过程。
步骤409,基于起始、终止字符边界进行配对。
步骤410,记录配对结果。
中间字符的匹配过程如图5所示,包含如下步骤:
步骤501,获取一组配对的起始终止字符边界。
步骤502,确定中间字符搜索区间。
中间字符搜索区间即根据上述步骤501获取的起始终止字符边界确定得到。
步骤503,确定是否达到中间字符搜索区间末尾,若否,则执行步骤504,若是,则执行步骤506。
步骤504,结合条空分界信息与第p+1字符参考长度,以第p字符的字符结束边界为起点,确定第p+1中间字符的字符边界。
其中,第p+1字符参考长度根据上述配对的一组起始终止字符边界所对应的起始终止字符长度及已匹配的第p字符长度联合确定。
步骤505,记录第p+1中间字符的字符边界,更新第p+2字符参考长度,进行下一个字符搜索。
记录第p+1中间字符的字符边界后,可计算得到第p+1字符长度,再更新第p+2字符参考长度,搜索第p+2字符。
在一种可能的实施方式中,对于第一个中间字符,可根据起始终止字符的字符长度确定,而对于后续的中间字符,还可再结合上一字符的字符长度更新参考字符长度,以提高边界提取准确性。
步骤506,根据每个中间字符的字符边界提取得到中间字符序列,基于中间字符序列进行匹配。
步骤507,确定匹配结果是否校验成功,若是,则执行步骤508,若否,则执行步骤509。
基于中间字符序列匹配得到中间字符,校验过程中,匹配到的起始终止字符结合中间字符与其中的校验字符进行校验,校验成功的情况下,确定匹配结果校验成功。
步骤508,记录匹配结果。
步骤509,确定是否存在未处理的起始终止字符配对,若是,则执行步骤501,若否,则结束。
本申请实施例中,将字符序列与字符序列模板进行匹配时,基于对应的曲线灰度特征进行匹配。包含如下步骤:
步骤1,对第n字符序列集中的字符序列进行特征提取,得到曲线灰度特征。
字符序列模板库中各个字符的字符序列长度为固定长度,即上述提及的预设字符灰度序列长度,由于提取到的字符序列的序列长度不确定,将字符序列与字符序列模板的特征进行匹配前,需使字符序列与字符序列模板的比例保持一致。在一种可能的实施方式中,可根据预设字符灰度序列长度与字符序列长度之间的比例进行缩放,再进行特征提取,包含如下步骤:
步骤a,基于缩放比例,对字符序列进行缩放,缩放比例根据字符序列的序列长度与字符序列模板的序列长度间的比值确定。
首先,根据字符序列的序列长度与字符序列模板的序列长度(即预设字符灰度序列长度)间的比值确定缩放比例,再基于缩放比例对字符序列进行缩放。示意性的,字符序列的序列长度为20,预设字符灰度序列长度为22,则缩放比例为11/10。
可采用插值算法进行缩放,可选的,可采用最近邻插值、线性插值、双线性插值以及双立方插值中的其中一种,本实施例对此不做限定。
步骤b,对缩放后的字符序列进行特征提取,得到曲线灰度特征。
曲线灰度特征可包含灰度极值点幅值、灰度极值点位置、灰度极值点间幅值相对距离、灰度序列各处梯度变化方向等。
步骤2,将曲线灰度特征与曲线灰度特征模板进行匹配。
曲线灰度特征模板是对字符特征模板库中字符序列模板进行特征提取得到。结合上述实施例,在匹配时,曲线灰度特征模板可直接从曲线灰度特征模板库中获取,提高实时匹配性能。曲线灰度特征模板中包含的特征类型与曲线灰度特征中的特征类型相同,示意性的,一个字符的字符序列模板对应的曲线灰度特征模板中也包含灰度极值点幅值、灰度极值点位置、灰度极值点间幅值相对距离、灰度序列各处梯度变化方向等特征对应的特征模板。示意性的,如图6所示,对字符序列模板602进行特征提取,得到曲线灰度特征模板603(包含字符19,字符42以及字符90对应的模板)。
将曲线灰度特征中包含的各个特征分别与对应的特征模板进行匹配。
步骤3,基于曲线灰度特征与各个曲线灰度特征模板之间的特征相似度确定第n字符匹配结果,第n字符匹配结果中字符的特征相似度高于其他字符的特征相似度。
将曲线灰度特征中包含的各个特征分别与对应的特征模板进行匹配后,可得到各个特征对应的特征相似度,再将各个特征对应的特征相似度进行累加,得到总的特征相似度,根据总的特征相似度确定第n字符匹配结果。总的特征相似度的计算方式如下:
其中,S表示总的特征相似度;w为不同特征的权重系数,x为特征模板值,y为待识别条形码的特征值,r为特征类型的数量,q为每个特征的特征点数。i表示第i类特征,ij表示第i类特征的第j个特征点。
不同特征的权重系数为预先设定的参数,可根据经验值设定,本实施例对此不做限定。
如图7所示,将字符序列对应的曲线灰度特征(浅色)与字符序列模板(51,95以及48)对应的曲线灰度特征模板(深色)进行匹配,其中,与字符51对应的模板匹配成功,与字符95、48对应的模板匹配失败,可将字符序列确定为51对应的序列。
通过上述方式,可计算得到单个字符的字符序列与各个字符序列模板之间的特征相似度,并将特征相似度依次从高到底进行排序,可选的,可将特征相似度大于预设阈值且排序在第一位的字符序列模板对应的字符确定为该字符的匹配结果。得到各个字符的字符匹配结果,组成第n字符匹配结果。之后,对第n字符匹配结果进行校验,若校验通过,则将第n字符匹配结果确定为待识别条形码的识别结果。若校验不通过,则进入下一轮匹配过程。在下一轮匹配过程中,先提取得到第n+1起始终止边界(由N种起始终止边界组合序列中第n+1组合组成,第n+1组合与第n组合(第s起始边界与第t终止边界组成)的起始边界,和/或终止边界不同),再基于第n+1起始终止边界确定第n+1参考字符长度,基于第n+1参考字符长度与m种条空数量,提取第n+1中间边界集,之后,分别基于第n+1起始终止边界与第n+1中间边界集提取得到第n+1字符序列集,进行第n+1轮匹配。
在另一种可能的实施方式中,第n字符匹配结果中包含若干候选字符组,候选字符组是特征相似度排列在前t位的字符组成的字符组,示意性的,t为3。对于每组候选字符组进行校验,在存在一组校验通过的情况下,将其确定为待识别条形码的识别结果;而若各个候选字符组均未校验通过,则进入第n+1轮匹配过程。
本实施例中,首先提取起始终止边界,再基于边界指示的起始字符与终止字符的字符长度确定所有中间字符的参考字符长度区间,以根据条空数量与参考字符长度区间提取中间字符,且在提取每个中间字符的过程中,还可以上一字符的字符长度为参考,可提高字符序列提取准确性,且有助于提高中间字符序列的提取效率。
且本实施例中,在提取起始终止边界时,结合预设长度范围进行提取,避免出现与标准起始终止字符长度相差过大的起始终止字符,基于此过程可实现预先筛选,进一步提高条形码的识别效率。
且本实施例中,在特征匹配的过程中,先对待识别条形码的字符序列进行缩放,使其与模板的比例保持一致,确保匹配的准确性。
上述方式中,基于整个待识别条形码进行识别,而由于待识别条形码可能存在部分区域不清楚的问题,因此,为提高识别准确性,在一种可能的实施方式中,可将待识别条形码进行划分,得到子条形码图像,从而基于多个子条形码图像进行多次识别,根据多次识别结果确定待识别条形码中包含的字符。该方式包含如下步骤:
步骤一,对待识别条形码进行水平方向分割,得到子条形码集合,子条形码集合中包含若干子条形码。
在一种可能的实施方式中,可将待识别条形码的整个图像沿水平方向分割,得到包含n个子条形码的子条形码集合,且子条形码集合中子条形码的高度可以相同也可不同。示意性的,子图像高度可结合整个图像高度与预估可处理的子图像数量范围确定,子图像高度可为8,12,16,20以及32等值。
步骤二,对子条形码进行条形码识别,得到若干个子条形码的识别结果。
对于各个子条形码进行条形码识别,其中,条形码识别的方法可参考上述实施例中对整个待识别条形码的识别方式,本实施例在此不再赘述。
通过对若干个子条形码进行条形码识别,可得到若干个子条形码的识别结果。
步骤三,在若干个子条形码的识别结果相同的次数大于预设阈值的情况下,基于相同识别结果确定待识别条形码中的各个字符。
在若干种识别结果中,当识别结果相同的次数大于预设阈值的情况下,可确定识别成功,相同的识别结果即为待识别条形码的最终识别结果。
其中预设阈值可根据划分得到的子条形码数量(z)与预设比例确定。示意性的,当预设比例为80%,且z为5的情况下,预设阈值为4。
通过对条形码的划分,可实现利用不同区域的条形码进行多次识别,以避免某个区域不清楚对条形码识别的影响,有助于提高识别准确性。
结合上述实施例,在一种可能的实施方式中,条形码识别方法包含如下步骤:
步骤801,初始化字符序列模板库。
步骤802,对待识别条形码进行水平分割,得到若干子条形码。
步骤803,获取子条形码条空分界信息。
步骤804,基于子条形码的条空分界信息进行起始、终止字符匹配。
步骤805,基于配对的起始、终止字符进行中间字符匹配。
步骤806,确定起始、终止字符以及中间字符是否校验成功,若是,则执行步骤807,若否,则执行步骤803。
步骤807,子条形码识别成功,记录识别结果。
步骤808,确定识别结果相同次数是否达到次数阈值,若是,则执行步骤809,若否,则执行步骤803。
步骤809,记录相同识别结果。
其中,步骤801-809的实施方式可参考上述实施例,在此不再赘述。
以上所述的仅是本申请的优选实施方式,本申请不限于以上实施例。可以理解,本领域技术人员在不脱离本申请的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本申请的保护范围之内。
Claims (9)
1.一种条形码识别方法,其特征在于,所述方法包括:
对待识别条形码进行信息提取,得到所述待识别条形码的条空分界信息,所述条空分界信息中包含所述待识别条形码中条与空的分界位置信息;
基于所述条空分界信息与预设的m种条空数量,提取得到N种起始终止边界,所述条空数量为单个字符所包含的条与空的数量,所述起始终止边界中包含所述待识别条形码中起始字符的起始边界与终止字符的终止边界,m与N为正整数;
基于所述N种起始终止边界中的第n起始终止边界确定第n参考字符长度区间,以及基于所述第n参考字符长度区间与m种所述条空数量,确定第n中间边界集,中间边界集中包含各个中间字符的字符边界,所述中间字符是所述起始字符与所述终止字符之间的字符,参考字符长度区间是所有中间字符的字符长度所需遵循的长度范围,其中,n为正整数,且n∈N;
基于所述第n起始终止边界以及所述第n中间边界集提取得到第n字符序列集;
将所述第n字符序列集中包含的字符序列与字符序列模板库中包含的字符序列模板进行匹配,得到第n字符匹配结果,所述字符序列模板库中包含不同字符对应的字符序列模板;
在所述第n字符匹配结果校验通过的情况下,基于所述第n字符匹配结果确定所述待识别条形码中包含的各个字符。
2.根据权利要求1所述的方法,其特征在于,所述基于所述条空分界信息与预设的m种所述条空数量,提取得到N种起始终止边界,包括:
基于所述条空分界信息与第i条空数量,确定所述起始字符的第i组起始边界,以及基于所述条空分界信息与第k条空数量,确定所述终止字符的第k组终止边界,i与k为正整数,i与k相同或不同,且i≤m,k≤m;
所述基于所述N种起始终止边界中的第n起始终止边界确定第n参考字符长度区间,包括:
基于所述第i组起始边界中第s起始边界指示的所述起始字符的第s字符长度,和/或所述第k组终止边界中第t终止边界指示的所述终止字符的第t字符长度,确定所述第n参考字符长度区间,s与k为正整数。
3.根据权利要求2所述的方法,其特征在于,所述基于所述条空分界信息与第i条空数量,确定所述起始字符的第i组起始边界,包括:
基于所述条空分界信息与所述第i条空数量,在起始字符搜索区间内搜索得到所述起始字符的候选边界,所述起始字符搜索区间根据所述待识别条形码的序列总长度设置;
基于各种所述候选边界提取得到候选字符序列,以及将各种所述候选字符序列与所述字符序列模板进行匹配,得到候选字符;
将所述候选字符中属于起始字符类型的字符对应的边界,添加至所述第i组起始边界中。
4.根据权利要求2所述的方法,其特征在于,所述确定所述第n参考字符长度区间,包括:
在所述第s起始边界与所述第t终止边界之间的字符序列长度在预设长度范围之内的情况下,确定所述第n参考字符长度区间,所述预设长度范围根据目标编码规则设定,所述目标编码规则是所述待识别条形码对应的编码规则。
5.根据权利要求2所述的方法,其特征在于,所述基于所述第n参考字符长度区间与m种所述条空数量,确定第n中间边界集,包括:
遍历m种所述条空数量,在遍历过程中,基于所述条空数量与第p中间字符的字符结束边界,确定第p+1字符的字符边界,p为正整数;
基于所述第s字符长度、和/或所述第t字符长度、和/或第p字符长度确定第p+1字符参考长度;
确定m种字符边界指示的所述第p+1字符的字符长度,以及确定m种所述字符长度与所述第p+1字符参考长度之间的长度差值;
在最小长度差值对应的字符边界所指示的字符长度在所述第n参考字符长度区间内的情况下,将最小长度差值对应的字符边界确定为所述第p+1字符的第n中间字符边界。
6.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
基于编码规则,生成各个字符对应的理想条空灰度序列,不同编码规则指示的字符对应的条空组合方式不同;
对所述理想条空灰度序列进行图像预处理,得到各个字符对应的字符序列模板,所述图像预处理用于使所述理想条空灰度序列接近实际拍摄条件下拍摄得到的灰度序列;
将各个字符对应的字符序列模板添加至模板库中,得到所述编码规则对应的字符序列模板库;
所述将所述第n字符序列集中包含的字符序列与字符序列模板库中包含的字符序列模板进行匹配,包括:
将所述第n字符序列集与目标编码规则对应的字符序列模板库中包含的所述字符序列模板进行匹配,所述目标编码规则是所述待识别条形码对应的编码规则。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
对所述字符序列模板库中的字符序列模板进行特征提取,得到各个所述字符序列模板对应的曲线灰度特征模板,组成曲线灰度特征模板库;
所述将所述第n字符序列集与所述目标编码规则对应的字符序列模板库中包含的所述字符序列模板进行匹配,包括:
对所述第n字符序列集中的字符序列进行特征提取,得到曲线灰度特征;
将所述曲线灰度特征与所述曲线灰度特征模板进行匹配;
所述得到第n字符匹配结果,包括:
基于所述曲线灰度特征与各个所述曲线灰度特征模板之间的特征相似度确定所述第n字符匹配结果,所述第n字符匹配结果中字符的特征相似度高于其他字符的特征相似度。
8.根据权利要求7所述的方法,其特征在于,所述对所述第n字符序列集中的字符序列进行特征提取,得到曲线灰度特征,包括:
基于缩放比例,对所述字符序列进行缩放,所述缩放比例根据所述字符序列的序列长度与所述字符序列模板的序列长度间的比值确定;
对缩放后的所述字符序列进行特征提取,得到所述曲线灰度特征。
9.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
对所述待识别条形码进行水平方向分割,得到子条形码集合,所述子条形码集合中包含若干子条形码;
对所述子条形码进行条形码识别,得到若干个子条形码的识别结果;
在若干个子条形码的识别结果相同的次数大于预设阈值的情况下,基于相同识别结果确定所述待识别条形码中的各个字符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311110523.7A CN116842977B (zh) | 2023-08-31 | 2023-08-31 | 条形码识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311110523.7A CN116842977B (zh) | 2023-08-31 | 2023-08-31 | 条形码识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116842977A CN116842977A (zh) | 2023-10-03 |
CN116842977B true CN116842977B (zh) | 2023-11-17 |
Family
ID=88174679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311110523.7A Active CN116842977B (zh) | 2023-08-31 | 2023-08-31 | 条形码识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116842977B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833641A (zh) * | 2010-06-01 | 2010-09-15 | 福建新大陆电脑股份有限公司 | 条码解码芯片 |
CN103034831A (zh) * | 2011-09-30 | 2013-04-10 | 无锡爱丁阁信息科技有限公司 | 线性条码识别方法和*** |
CN106991348A (zh) * | 2017-03-21 | 2017-07-28 | 浙江华睿科技有限公司 | 一种条码解码方法及装置 |
CN109299628A (zh) * | 2017-07-24 | 2019-02-01 | 杭州海康威视数字技术股份有限公司 | 一种条码的译码方法及装置 |
CN109670364A (zh) * | 2018-12-24 | 2019-04-23 | 艾体威尔电子技术(北京)有限公司 | 一种模板识别信息校对方法 |
CN111027343A (zh) * | 2019-12-12 | 2020-04-17 | 中科微至智能制造科技江苏有限公司 | 条形码区域定位方法和装置 |
CN112241641A (zh) * | 2019-07-19 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 对条形码的解码方法、终端设备及存储介质 |
-
2023
- 2023-08-31 CN CN202311110523.7A patent/CN116842977B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833641A (zh) * | 2010-06-01 | 2010-09-15 | 福建新大陆电脑股份有限公司 | 条码解码芯片 |
CN103034831A (zh) * | 2011-09-30 | 2013-04-10 | 无锡爱丁阁信息科技有限公司 | 线性条码识别方法和*** |
CN106991348A (zh) * | 2017-03-21 | 2017-07-28 | 浙江华睿科技有限公司 | 一种条码解码方法及装置 |
CN109299628A (zh) * | 2017-07-24 | 2019-02-01 | 杭州海康威视数字技术股份有限公司 | 一种条码的译码方法及装置 |
CN109670364A (zh) * | 2018-12-24 | 2019-04-23 | 艾体威尔电子技术(北京)有限公司 | 一种模板识别信息校对方法 |
CN112241641A (zh) * | 2019-07-19 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 对条形码的解码方法、终端设备及存储介质 |
CN111027343A (zh) * | 2019-12-12 | 2020-04-17 | 中科微至智能制造科技江苏有限公司 | 条形码区域定位方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116842977A (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5334042B2 (ja) | 文字列認識方法及び文字列認識装置 | |
US5754695A (en) | Degraded gray-scale document recognition using pseudo two-dimensional hidden Markov models and N-best hypotheses | |
JP2001283152A (ja) | 帳票類判別装置、帳票類判別方法、およびこれらの方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
CN102870399A (zh) | 在ocr过程中将词语位图分割为单个字符或字形 | |
CN111339797B (zh) | 一种能够准确识别受损一维条码的解码方法及终端 | |
US20010033694A1 (en) | Handwriting recognition by word separation into sillouette bar codes and other feature extraction | |
CN109657515B (zh) | 一种一维条形码的解码方法及设备 | |
WO2011011051A2 (en) | Image-based barcode reader | |
CN109508571B (zh) | 一种条空定位方法、装置、电子设备及存储介质 | |
CN102782705B (zh) | 包括经历ocr处理的文本的图像的分辨率调整 | |
CN116842977B (zh) | 条形码识别方法 | |
EP0877335B1 (en) | Character recognition method, character recognition apparatus | |
CN105844200A (zh) | 一种判断条码类型的方法 | |
CN117195928A (zh) | 一种基于深度学习的条码定位检测方法 | |
CN112329495A (zh) | 一种条形码识别方法、装置及*** | |
CN113837119A (zh) | 一种基于灰度图像识别易混淆字符的方法及设备 | |
CN115438682A (zh) | 用于确定解码方向的方法、装置及解码设备 | |
Lin et al. | Multi-symbology and multiple 1d/2d barcodes extraction framework | |
CN111368576B (zh) | 一种基于全局优化的Code128条码自动识读方法 | |
CN114120309A (zh) | 一种仪表读数识别方法、装置及计算机设备 | |
CN114495135A (zh) | 票据识别方法及装置 | |
CN113158704A (zh) | 一种快速定位Dotcode码的方法及其*** | |
CN112632313A (zh) | 一种基于深度学习的蕾丝花边检索方法 | |
Tseng et al. | Retrospective tracking for barcode reading | |
CN118097676B (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 |