CN108009455A - 一种条形码的扫描信号的解码方法及装置 - Google Patents
一种条形码的扫描信号的解码方法及装置 Download PDFInfo
- Publication number
- CN108009455A CN108009455A CN201711084857.6A CN201711084857A CN108009455A CN 108009455 A CN108009455 A CN 108009455A CN 201711084857 A CN201711084857 A CN 201711084857A CN 108009455 A CN108009455 A CN 108009455A
- Authority
- CN
- China
- Prior art keywords
- character
- extreme point
- scanning signal
- point
- extreme
- 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.)
- Granted
Links
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/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10821—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
-
- 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/146—Methods for optical code recognition the method including quality enhancement steps
-
- 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/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1486—Setting the threshold-width for bar codes to be decoded
Abstract
一种条形码的扫描信号的解码方法、装置及计算机可读存储介质,由于对扫描信号进行预处理,从而减少了极值点的定位误差,大大提高了边缘位置的定位准确度,解决了分辨率过低导致计算边缘位置产生较大的误差、必要的边缘存在一定偏移的问题,提高了在扫描信号低分辨率、必要边缘产生偏移的情形下字符解析的成功率,从而提升整体字符解析算法的鲁棒性。
Description
技术领域
本发明涉及对条形码的解码领域。
背景技术
条形码技术是在计算机的应用实践中产生和发展起来的自动识别技术,具有速度快、准确性高、可靠性强、成本低等优点,已广泛应用于商品流通、工业生产自动化、办公自动化等领域。目前,世界性的物品统一编码活动已经在各个国家广泛普及,条形码自动识别技术已经成为全球物品管理和贸易往来的共同语言,进而渗透至更多的技术领域。
目前的条形码识别设备主要分为两种:激光式读码器与图像式读码器。激光式读码器的原理是通过光电转化器将光信号转换为一维的扫描信号,进而对一维扫描信号进行字符解析。图像式读码器可以通过图像处理领域常见的一些算法对条码图像进行采样从而获取一维扫描信号,然后对一维扫描信号进行字符解析。
可以看到,目前的技术方案都是先获取条形码的一维扫描信号,然后对该扫描信号进行字符解析,从而完成条形码的识别。
目前对条形码的一维扫描信号进行字符解析的方案有:
1、通过计算相邻条空的宽度之和,并衡量其与标准编码的相邻条空宽度之和的相似度,从而确定相对应的码值。这种方法在处理条码由于存在噪声、划痕污染的情形时,容易找到错误的边缘(例如噪声、划痕),从而导致计算相邻条空的距离之和的值错误,进而导致字符解析失败;
2、在上一种方法的基础上,加入一种边缘删除器,作用是判断边缘是否为必要边缘,从而减小由于存在噪声、划痕污染时所带来的多余边缘;但是考虑到在条形码的必要边缘也存在偏移的情况,例如单位模块的分辨率过低导致的计算边缘位置产生较大的误差、图像过曝或打印时油墨扩散导致的实际边缘的位置偏离等,这些情况都会导致衡量相似度的时候字符解析失败。
发明内容
针对上述问题,本申请提供一种条形码的扫描信号的解码方法及装置。
根据第一方面,一种实施例中提供一种条形码的扫描信号的解码方法,包括:
对扫描信号进行预处理,包括:
(101)计算出扫描信号上的所有极值点;
(102)判断各相邻极值点是否相似,若相似,则取消这两个相邻极值点,并将两个相邻极值点之间的一预设点设置为极值点;
(103)重复步骤(102),直至所有相邻极值点都不相似;
(104)计算步骤(103)后的各相邻极值点的间距,得到间距集合;
(105)根据条形码的类型对所述间距集合进行聚类;
(106)将最小的聚类中心作为条形码的单位模块宽度值X;
(107)根据所述单位模块宽度值X,对所述扫描信号进行插值或降采样操作;
(108)对经过步骤(107)处理的扫描信号,再次进行步骤(101)、(102)和(103),以获得各极值点;
(109)对步骤(108)所获得的各极值点中的每一个极值点,分别向该极值点的左、右搜索,以找到该极值点左边的第一个与该极值点不相似的点、以及该极值点右边的第一个与该极值点不相似的点,并根据该极值点的这两个不相似点,对该极值点的位置进行校正;
判断经过预处理的扫描信号的起始位置与终止位置;
从扫描信号的起始位置开始逐个字符进行字符解析,直到到达终止位置,完成解析。
在一实施例中,所述预设点为中点;和/或,对极值点的位置进行校正,包括:将该极值点的两个不相似点的中点的位置,作为该极值点的位置。
在一实施例中,在判断任意两个点是否相似时,包括:判断这两个点的灰度值之差的绝对值是否小于一阈值Tg,若小于,则判断这两个点相似,反之,则判断这两个点不相似;
其中Tg=|GRound(0.4*n)-GRound(0.6*n)|,Round()表示对括号内的数进行四舍五入取整数值;为所有原始的相邻极值点的灰度值之差的绝对值的排序。
在一实施例中,步骤(107)根据所述单位模块宽度值X,对所述扫描信号进行插值或降采样操作,包括:
当所述单位模块宽度值X小于或等于一预设常数TargetSize时,则对所述扫描信号进行插值操作,插值的倍数为Round(TargetSize/X);
当所述单位模块宽度值X大于所述预设常数TargetSize时,则对所述扫描信号进行降采样操作,降采样的倍数为Round(X/TargetSize);其中Round()表示对括号内的数进行四舍五入取整数值。
在一实施例中,对任意一个字符进行字符解析包括:
(301)建立该字符的字符模型,其中字符模型中的参数包括该字符的起始位置、终止位置、条形码的单位模块宽度值X;
(302)在该字符的范围内搜索极值点;
(303)根据该字符的范围内的极值点,计算该字符的相似边缘距离,并根据该字符的相似边缘距离与标准的码字的相似度获取若干个候选字符;
(304)根据该字符的字符模型获取该字符的采样序列;
(305)计算该字符的采样序列与每个候选字符的字符模板的相似度;
(306)将相似度最大的字符模板所对应的候选字符,作为该字符的解析结果。
在一实施例中,当条形码为双宽度条码时,步骤(301)中所建立的字符模型,还包括宽条与窄条的宽度比。
在一实施例中,步骤(302)在该字符的范围内搜索极值点,包括:
在该字符的起始位置与终止位置之间搜索所有极值点;
判断极值点的个数是否与该字符相匹配;
当判断极值点个数有多余时,则根据所搜索到的每个极值点与其相邻极值点的距离来判断哪些极值点是多余的极值点,并删除;
当判断极值点个数缺少时,则根据所搜索到的每个极值点与其相邻极值点的距离来判断哪些位置可能遗漏有极值点,并将这些位置的点设置为极值点。
在一实施例中,步骤(304)根据该字符的字符模型获取该字符的采样序列,包括:
根据该字符的起始位置与终止位置,确定采样范围;
根据所述单位模块宽度值X,确定采样率;
根据所述采样范围与采样率进行采样,以获取采样序列;
对获取的采样序列进行归一化。
在一实施例中,任意一候选字符的字符模板包括该候选字符的若干个可变字符模板,至少包括:对该候选字符的标准抛物线模型所生成的原型函数进行等距采样得到的字符模板,以及对该候选字符的标准抛物线模型进行调整后所生成的原型函数进行等距采样得到的字符模板。
在一实施例中,在对任意一个字符进行字符解析时,还包括:调整若干次该字符的字符模型中的参数的值,每调整一次后,根据调整后的字符模型进行步骤(302)、(303)、(304)、(305)和(306),并用计算得到相似度最大的采样序列所对应的字符模型来修正下一个字符的字符模型。
在一实施例中,所述相似度至少包括余弦相似度、欧式距离、模糊相似度和皮尔逊相关系数中的一种。
根据第二方面,一种实施例中提供一种条形码的扫描信号的解码装置,包括:
存储器,用于存储程序;
处理器,用于通过执行所述存储器存储的程序以实现上述任一实施例中所述的方法。
根据第三方面,一种实施例中提供一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现上述任一实施例中所述的方法。
依据上述实施例的条形码的扫描信号的解码方法、装置及计算机可读存储介质,由于对扫描信号进行预处理,从而减少了极值点的定位误差,大大提高了边缘位置的定位准确度,解决了分辨率过低导致计算边缘位置产生较大的误差、必要的边缘存在一定偏移的问题,提高了在扫描信号低分辨率、必要边缘产生偏移的情形下字符解析的成功率,从而提升整体字符解析算法的鲁棒性;
由于引用可变字符模板,模拟不同程度的过曝或油墨打印扩散情形来生成原型函数,根据生成的原型函数采样得到字符模板,用这样的字符模板来与字符的采样序列进行匹配,或者说相似度计算,从而使得可以解析出过曝或打印时油墨扩散的条码扫描信号,提升了整体字符解析的鲁棒性;
由于在对字符进行解析时,先根据相似边缘距离来选取候选字符,降低了相似边缘距离方法带来的不稳定性,然后只对候选字符进行字符匹配得到最后的解析结果,降低了计算量,提高了算法效率。
附图说明
图1为一种实施例的条形码的扫描信号的解码方法的流程图;
图2为一种实施例的解码方法中对扫描信号进行预处理的流程图;
图3为一种实施例的Code39类型的条形码的示意图;
图4为一种实施例的相似边缘距离的说明图;
图5为一种实施例的解码方法中对任意一个字符进行字符解析的流程图;
图6为一种实施例中生成原型函数的抛物线模型及对过曝或油墨打印扩散情形的模拟后调整的抛物线模型;
图7为一种实施例中对原型函数进行等距采样的示意图;
图8为一种实施例的条形码的扫描信号的解码装置的结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
请参照图1,本发明一实施例中提供一种条形码的扫描信号的解码方法,该解码方法包括步骤S100~S300,下面具体说明。
步骤S100:对扫描信号进行预处理。需要说明的是,条形码的扫描信号的获取,可以采用现有的技术,也可以采用未来出现的技术。在一实施例中,请参照图2,步骤S100对扫描信号进行预处理,包括步骤S101~S109。
步骤S101:计算出扫描信号上的所有极值点。计算扫描信号的极值点有多种方式,例如搜索这样的点,当该点的灰度值f(x)大于该点左边的点的灰度值f(x-1),且该点的灰度值f(x)大于该点右边的点的灰度值f(x+1)时,则该点为极值点,且为极值点中的局部极大值点;当该点的灰度值f(x)小于该点左边的点的灰度值f(x-1),且该点的灰度值f(x)小于该点右边的点的灰度值f(x+1)时,则该点为极值点,且为极值点中的局部极小值点。当然也可以通过计算扫描信号各点的一阶导数来找到极值点,例如,当一点的灰度值的一阶导的绝对值|f′(x)|小于该点右边的点的灰度值的一阶导的绝对值|f′(x+1)|,且该点的灰度值的一阶导的绝对值|f′(x)|小于该点左边的点的灰度值的一阶导的绝对值|f′(x-1)|,则这样的点为极值点。这样计算得到的极值点,一般来讲,其位置是条形码的条(黑条)的中点和空(白条)的中点。
步骤S102:判断各相邻极值点是否相似,若相似,则取消这两个相邻极值点,并将两个相邻极值点之间的一预设点设置为极值点。在一实施例中,该预设点为中点。例如,假设有相邻极值点A和B,如果判断这两个相邻极值点A和B相似,则取消这两个相邻极值点A和B,即将它们设置为不是极值点,然后将这两个点A和B之间的一预设点(例如中点)设置为极值点。在一实施例中,在判断任意两个点是否相似时,包括:判断这两个点的灰度值之差的绝对值是否小于一阈值Tg,若小于,则判断这两个点相似,反之,则判断这两个点不相似;
其中Tg=|GRound(0.4*n)-GRound(0.6*n)|,Round()表示对括号内的数进行四舍五入取整数值;为所有原始的相邻极值点的灰度值之差的绝对值的排序,这里原始的相邻极值点指的是一开始时由步骤S101计算得到的极值点,也就是没有经过步骤S102操作后设置或取消极值点的操作的那些最开始的极值点。
步骤S103:重复步骤S102,直至所有相邻极值点都不相似。
步骤S104:计算步骤S103后的各相邻极值点的间距,得到间距集合。
步骤S105:根据条形码的类型对上述间距集合进行聚类。例如,根据条形码的类型对上述间距集合进行相应截止层次的聚类。条形码的类型可以分为两大类:双宽度条码与多宽度条码;双宽度条码的条与空只存在两种宽度,例如Code39码,交叉25码,Codabar码,MSI码,Pharmacode码等;多宽度条码的条与空则可能是单位宽度(单位宽度指条码中最窄的条或空)的1到4的整数倍,例如Code128,EAN/UPC码,Code93码,DataBar码等。条形码的类型不同,其相似边缘距离的种类数也就不相同,以Code39为例,请参照图3,Code39是一种双宽度的条码,其相似边缘距离包含宽-宽,宽-窄,窄-窄三种不同的情形,所以做层次聚类的截止层次设为3;其中相似边缘距离指的是相邻条、空的总宽度,如图4所示。除了采用层次聚类外,还可以采用其他聚类方法,例如:k-means、SOM、FCM等方法。
步骤S106:将最小的聚类中心作为条形码的单位模块宽度值X。
步骤S107:根据上述单位模块宽度值X,对所述扫描信号进行插值或降采样操作。在一实施例中,步骤S107包括:当上述单位模块宽度值X小于或等于一预设常数TargetSize时,则对扫描信号进行插值操作,插值的倍数为Round(TargetSize/X);当单位模块宽度值X大于上述预设常数TargetSize时,则对所述扫描信号进行降采样操作,降采样的倍数为Round(X/TargetSize),其中Round()如上所述表示对括号内的数进行四舍五入取整数值。在一实施例中,预设常数TargetSize,其取值一般10~16之间,当分辨率较低时,预设常数TargetSize的取值可以偏大一些,反之,预设常数TargetSize的取值可以偏小一些。插值操作可以是抛物线插值,也可以是其他函数模型进行插值,比如:正弦函数模型、点扩散函数(PSF)等对扫描信号进行插值。
步骤S108:对经过步骤S107处理的扫描信号,再次进行步骤S101、S102和S103,以获得各极值点。
步骤S109:对步骤S108所获得的各极值点中的每一个极值点,分别向该极值点的左、右搜索,以找到该极值点左边的第一个与该极值点不相似的点、以及该极值点右边的第一个与该极值点不相似的点,并根据该极值点的这两个不相似点,对该极值点的位置进行校正。在一实施例中,对极值点的位置进行校正,包括:将该极值点的两个不相似点的中点的位置,作为该极值点的位置。例如,对于任意一极值点P,该极值点P左边的第一个与该极值点P不相似的点不妨令为P1,该极值点P右边的第一个与该极值点P不相似的点不妨令为P2,则根据点P1和P2对点P的位置校正时,点P的位置=(点P1的位置+点P2的位置)/2。
步骤S100对扫描信号进行预处理,从而减少了极值点的定位误差,大大提高了边缘位置的定位准确度,解决了分辨率过低导致计算边缘位置产生较大的误差、必要的边缘存在一定偏移的问题,提高了在扫描信号低分辨率、必要边缘产生偏移的情形下字符解析的成功率,从而提升整体字符解析算法的鲁棒性。
步骤S200:判断经过预处理的扫描信号的起始位置与终止位置。例如,通过起始字符、终止字符的相似边缘距离的相似度来判断扫描信号的起始位置和终止位置,并可以通过起始字符和终止字符附近是否存在静空白区来进一步确认扫描信号的起始位置和终止位置。
步骤S300:从扫描信号的起始位置开始逐个字符进行字符解析,直到到达终止位置,完成解析。在一实施例中,请参照图5,步骤S300对任意一个字符进行字符解析包括步骤S301~S309。
步骤S301:建立该字符的字符模型,其中字符模型中的参数包括该字符的起始位置、终止位置、条形码的单位模块宽度值X。在一实施例中,当条形码为双宽度条码时,步骤301中所建立的字符模型,还包括宽条与窄条的宽度比。
步骤S302:在该字符的范围内搜索极值点。在一实施例中,步骤S302在找到该字符的范围内的极值点后,还判断极值点的个数是否正确;例如,步骤S302可以包括:在该字符的起始位置与终止位置之间搜索所有极值点;判断极值点的个数是否与该字符相匹配;当判断极值点个数有多余时,则根据所搜索到的每个极值点与其相邻极值点的距离来判断哪些极值点是多余的极值点,并删除;当判断极值点个数缺少时,则根据所搜索到的每个极值点与其相邻极值点的距离来判断哪些位置可能遗漏有极值点,并将这些位置的点设置为极值点。
步骤S303:根据该字符的范围内的极值点,计算该字符的相似边缘距离,并根据该字符的相似边缘距离与标准的码字的相似度获取若干个候选字符。在一实施例中,本发明中涉及的相似度包括余弦相似度。
步骤S304:根据该字符的字符模型获取该字符的采样序列。在一实施例中,步骤S304包括:根据该字符的起始位置与终止位置,确定采样范围;根据上述单位模块宽度值X,确定采样率;根据采样范围与采样率进行采样,以获取采样序列;较优地,还可以对获取的采样序列进行归一化。在一实施例中,根据上述单位模块宽度值X,确定采样率时,具体可以进行如下考虑:例如,采样率Ds根据采样定理需满足大于或等于2/X,一般选取Ds=2/X,当条形码为双宽度条码时,可以将窄条采样率取为2/X,宽条采样率取为4/(X*r),其中r为上述的宽条与窄条的宽度比。在一实施例中,对获取的采样序列进行归一化,方法可以包括:在当前采样点附近搜索极值点,其中记录范围内极值点的最大灰度值Gmax,最小灰度值Gmin,若该采样点的原始灰度值为Gs,归一化后的灰度值为(Gs-Gmin)/(Gmax-Gmin)。步骤S304对扫描信号再次采样得到采样序列,在保证了扫描信号完整性的前提下,减少了字符的采样序列的数量,并且可以采用向量化的计算方法,大大提升了算法的计算效率。
步骤S305:计算该字符的采样序列与每个候选字符的字符模板的相似度。
在一实施例中,本发明中涉及的相似度至少包括余弦相似度、欧式距离、模糊相似度和皮尔逊相关系数中的一种。对于余弦相似度来讲,是指计算得到的余弦相似度的值越接近1,则相似度越大;对于欧式距离来讲,是指计算得到的欧式距离的值越小,相似度越大;对于模糊相似度来讲,是指计算得到的模糊相似度的值越接近1,则相似度越大;对于皮尔逊相关系数来讲,是指计算得到的皮尔逊相关系数的值越接近1,则相似度越大。
在一实施例中,任意一候选字符的字符模板包括该候选字符的若干个可变字符模板,至少包括:对该候选字符的原型函数进行等距采样得到的字符模板,以及对该候选字符的原型函数调整后进行等距采样得到的字符模板。引用可变字符模板,主要是模拟不同程度的过曝或油墨打印扩散情形来生成原型函数,根据生成的原型函数采样得到字符模板,用这样的字符模板来与字符的采样序列进行匹配,或者说相似度计算,从而使得可以解析出过曝或打印时油墨扩散的条码扫描信号,提升了整体字符解析的鲁棒性。例如,请参照图6和图7,显示了原型函数由抛物线模型所生成以及对原型函数进行等距采样的情景,根据不同的情况可以对原型函数进行调整,比如,考虑到黑条扩散(例如打印时油墨扩散导致)和白条扩散(例如过曝等原因导致)等情况,可以对抛物线模型进行一个调整,然后由该调整后的抛物线模型来生成原型函数,这样就完成了对原型函数的调整。当然图6显示是由抛物线模型所生成的原型函数,实际中,原型函数也可以是正弦函数模型、点扩散函数(PSF)等,进一步地,该处的原型函数可以与步骤S107中对扫描信号进行插值操作的函数保持类型一致。
在一实施例中,对字符的采样序列与字符模板可以均采用向量化的储存方式方便使用硬件加速技术,比如:GPU加速、指令集加速、CPU多核加速等。
步骤S306:将相似度最大的字符模板所对应的候选字符,作为该字符的解析结果。
在一实施例中,步骤S300对任意一个字符进行字符解析还包括:调整若干次该字符的字符模型中的参数的值,每调整一次后,根据调整后的字符模型进行步骤302、步骤303、步骤304、步骤305和步骤306,将这些调整后计算得到的所有相似度中最大的字符模板所对应的候选字符,作为该字符的解析结果;并用计算得到相似度最大的采样序列所对应的字符模型来修正下一个字符的字符模型。
步骤S300在对字符进行解析时,先根据相似边缘距离来选取候选字符,降低了相似边缘距离方法带来的不稳定性,然后只对候选字符进行字符匹配得到最后的解析结果,降低了计算量,提高了算法效率。
请参照图8,本发明一实施例中还提供一种条形码的扫描信号的解码装置,包括存储器01和处理器03,其中存储器01用于存储程序,处理器03用于通过执行上述存储器01存储的程序以实现本发明中任一实施例所述的条形码的扫描信号的解码方法。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (13)
1.一种条形码的扫描信号的解码方法,其特征在于,包括:
对扫描信号进行预处理,包括:
(101)计算出扫描信号上的所有极值点;
(102)判断各相邻极值点是否相似,若相似,则取消这两个相邻极值点,并将两个相邻极值点之间的一预设点设置为极值点;
(103)重复步骤(102),直至所有相邻极值点都不相似;
(104)计算步骤(103)后的各相邻极值点的间距,得到间距集合;
(105)根据条形码的类型对所述间距集合进行聚类;
(106)将最小的聚类中心作为条形码的单位模块宽度值X;
(107)根据所述单位模块宽度值X,对所述扫描信号进行插值或降采样操作;
(108)对经过步骤(107)处理的扫描信号,再次进行步骤(101)、(102)和(103),以获得各极值点;
(109)对步骤(108)所获得的各极值点中的每一个极值点,分别向该极值点的左、右搜索,以找到该极值点左边的第一个与该极值点不相似的点、以及该极值点右边的第一个与该极值点不相似的点,并根据该极值点的这两个不相似点,对该极值点的位置进行校正;
判断经过预处理的扫描信号的起始位置与终止位置;
从扫描信号的起始位置开始逐个字符进行字符解析,直到到达终止位置,完成解析。
2.如权利要求1所述的解码方法,其特征在于,所述预设点为中点;和/或,对极值点的位置进行校正,包括:将该极值点的两个不相似点的中点的位置,作为该极值点的位置。
3.如权利要求1所述的解码方法,其特征在于,在判断任意两个点是否相似时,包括:判断这两个点的灰度值之差的绝对值是否小于一阈值Tg,若小于,则判断这两个点相似,反之,则判断这两个点不相似;
其中Tg=|GRound(0.4*n)-GRound(0.6*n)|,Round()表示对括号内的数进行四舍五入取整数值;所有原始的相邻极值点的灰度值之差的绝对值的排序。
4.如权利要求1所述的解码方法,其特征在于,步骤(107)根据所述单位模块宽度值X,对所述扫描信号进行插值或降采样操作,包括:
当所述单位模块宽度值X小于或等于一预设常数TargetSize时,则对所述扫描信号进行插值操作,插值的倍数为Round(TargetSize/X);
当所述单位模块宽度值X大于所述预设常数TargetSize时,则对所述扫描信号进行降采样操作,降采样的倍数为Round(X/TargetSize);其中Round()表示对括号内的数进行四舍五入取整数值。
5.如权利要求1至4中任一项所述的解码方法,其特征在于,对任意一个字符进行字符解析包括:
(301)建立该字符的字符模型,其中字符模型中的参数包括该字符的起始位置、终止位置、条形码的单位模块宽度值X;
(302)在该字符的范围内搜索极值点;
(303)根据该字符的范围内的极值点,计算该字符的相似边缘距离,并根据该字符的相似边缘距离与标准的码字的相似度获取若干个候选字符;
(304)根据该字符的字符模型获取该字符的采样序列;
(305)计算该字符的采样序列与每个候选字符的字符模板的相似度;
(306)将相似度最大的字符模板所对应的候选字符,作为该字符的解析结果。
6.如权利要求5所述的解码方法,其特征在于,当条形码为双宽度条码时,步骤(301)中所建立的字符模型,还包括宽条与窄条的宽度比。
7.如权利要求5所述的解码方法,其特征在于,步骤(302)在该字符的范围内搜索极值点,包括:
在该字符的起始位置与终止位置之间搜索所有极值点;
判断极值点的个数是否与该字符相匹配;
当判断极值点个数有多余时,则根据所搜索到的每个极值点与其相邻极值点的距离来判断哪些极值点是多余的极值点,并删除;
当判断极值点个数缺少时,则根据所搜索到的每个极值点与其相邻极值点的距离来判断哪些位置可能遗漏有极值点,并将这些位置的点设置为极值点。
8.如权利要求5所述的解码方法,其特征在于,步骤(304)根据该字符的字符模型获取该字符的采样序列,包括:
根据该字符的起始位置与终止位置,确定采样范围;
根据所述单位模块宽度值X,确定采样率;
根据所述采样范围与采样率进行采样,以获取采样序列;
对获取的采样序列进行归一化。
9.如权利要求5所述的解码方法,其特征在于,任意一候选字符的字符模板包括该候选字符的若干个可变字符模板,至少包括:对该候选字符的标准抛物线模型所生成的原型函数进行等距采样得到的字符模板,以及对该候选字符的标准抛物线模型进行调整后所生成的原型函数进行等距采样得到的字符模板。
10.如权利要求5所述的解码方法,其特征在于,在对任意一个字符进行字符解析时,还包括:调整若干次该字符的字符模型中的参数的值,每调整一次后,根据调整后的字符模型进行步骤(302)、(303)、(304)、(305)和(306),并用计算得到相似度最大的采样序列所对应的字符模型来修正下一个字符的字符模型。
11.如权利要求5所述的解码方法,其特征在于,所述相似度至少包括余弦相似度、欧式距离、模糊相似度和皮尔逊相关系数中的一种。
12.一种条形码的扫描信号的解码装置,其特征在于,包括:
存储器,用于存储程序;
处理器,用于通过执行所述存储器存储的程序以实现如权利要求1-11中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711084857.6A CN108009455B (zh) | 2017-11-07 | 2017-11-07 | 一种条形码的扫描信号的解码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711084857.6A CN108009455B (zh) | 2017-11-07 | 2017-11-07 | 一种条形码的扫描信号的解码方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108009455A true CN108009455A (zh) | 2018-05-08 |
CN108009455B CN108009455B (zh) | 2019-04-30 |
Family
ID=62051315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711084857.6A Active CN108009455B (zh) | 2017-11-07 | 2017-11-07 | 一种条形码的扫描信号的解码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108009455B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020034103A1 (zh) * | 2018-08-14 | 2020-02-20 | 深圳配天智能技术研究院有限公司 | 一种一维码识别方法、终端、装置及具有存储功能的装置 |
CN112561014A (zh) * | 2020-12-21 | 2021-03-26 | 宁波尚臣物联科技有限公司 | 一种一维条码的编解码方法 |
CN114580457A (zh) * | 2022-05-09 | 2022-06-03 | 深圳市华汉伟业科技有限公司 | 一种低分辨率条件下的条形码解码方法、存储介质 |
CN116385742A (zh) * | 2023-03-20 | 2023-07-04 | 北京兆讯恒达技术有限公司 | 一种低质量条码图像信号提取方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446868B1 (en) * | 1998-11-23 | 2002-09-10 | Informatics, Inc. | Scanning system for decoding two-dimensional barcode symbologies with a one-dimensional general purpose scanner |
US20070181691A1 (en) * | 2006-02-09 | 2007-08-09 | Simpleact Incorporated | System and method for information retrieval with barcode using digital image capture devices |
CN102799850A (zh) * | 2012-06-30 | 2012-11-28 | 北京百度网讯科技有限公司 | 一种条形码识别方法和装置 |
CN103034830A (zh) * | 2011-09-30 | 2013-04-10 | 无锡爱丁阁信息科技有限公司 | 条码解码方法及装置 |
CN103336938A (zh) * | 2013-06-05 | 2013-10-02 | 华南理工大学 | 一种基于一维条形码图像的识别方法 |
CN106446750A (zh) * | 2016-07-07 | 2017-02-22 | 深圳市华汉伟业科技有限公司 | 一种条形码读取方法及装置 |
-
2017
- 2017-11-07 CN CN201711084857.6A patent/CN108009455B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446868B1 (en) * | 1998-11-23 | 2002-09-10 | Informatics, Inc. | Scanning system for decoding two-dimensional barcode symbologies with a one-dimensional general purpose scanner |
US20070181691A1 (en) * | 2006-02-09 | 2007-08-09 | Simpleact Incorporated | System and method for information retrieval with barcode using digital image capture devices |
CN103034830A (zh) * | 2011-09-30 | 2013-04-10 | 无锡爱丁阁信息科技有限公司 | 条码解码方法及装置 |
CN102799850A (zh) * | 2012-06-30 | 2012-11-28 | 北京百度网讯科技有限公司 | 一种条形码识别方法和装置 |
CN103336938A (zh) * | 2013-06-05 | 2013-10-02 | 华南理工大学 | 一种基于一维条形码图像的识别方法 |
CN106446750A (zh) * | 2016-07-07 | 2017-02-22 | 深圳市华汉伟业科技有限公司 | 一种条形码读取方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020034103A1 (zh) * | 2018-08-14 | 2020-02-20 | 深圳配天智能技术研究院有限公司 | 一种一维码识别方法、终端、装置及具有存储功能的装置 |
CN112561014A (zh) * | 2020-12-21 | 2021-03-26 | 宁波尚臣物联科技有限公司 | 一种一维条码的编解码方法 |
CN112561014B (zh) * | 2020-12-21 | 2023-03-14 | 宁波尚臣物联科技有限公司 | 一种一维条码的编解码方法 |
CN114580457A (zh) * | 2022-05-09 | 2022-06-03 | 深圳市华汉伟业科技有限公司 | 一种低分辨率条件下的条形码解码方法、存储介质 |
CN114580457B (zh) * | 2022-05-09 | 2022-11-01 | 深圳市华汉伟业科技有限公司 | 一种低分辨率条件下的条形码解码方法、存储介质 |
CN116385742A (zh) * | 2023-03-20 | 2023-07-04 | 北京兆讯恒达技术有限公司 | 一种低质量条码图像信号提取方法和装置 |
CN116385742B (zh) * | 2023-03-20 | 2024-04-12 | 北京兆讯恒达技术有限公司 | 一种低质量条码图像信号提取方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108009455B (zh) | 2019-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108009455B (zh) | 一种条形码的扫描信号的解码方法及装置 | |
US20210382937A1 (en) | Image processing method and apparatus, and storage medium | |
US11216510B2 (en) | Processing an incomplete message with a neural network to generate suggested messages | |
US11238277B2 (en) | Systems and methods for document image analysis with cardinal graph convolutional networks | |
Yujian et al. | A normalized Levenshtein distance metric | |
Bunke et al. | Towards the unification of structural and statistical pattern recognition | |
WO2020233332A1 (zh) | 文本结构化信息提取方法、服务器及存储介质 | |
CN110825857B (zh) | 多轮问答识别方法、装置、计算机设备及存储介质 | |
US20200104635A1 (en) | Invertible text embedding for lexicon-free offline handwriting recognition | |
US11636308B2 (en) | Differentiable set to increase the memory capacity of recurrent neural net works | |
CN111160041B (zh) | 语义理解方法、装置、电子设备和存储介质 | |
CN110309301B (zh) | 企业类别的分类方法、装置及智能终端 | |
CN113032580B (zh) | 关联档案推荐方法、系统及电子设备 | |
US20210073257A1 (en) | Logical document structure identification | |
CN110866402A (zh) | 一种命名实体识别的方法、装置、存储介质及电子设备 | |
CN111209396A (zh) | 实体识别模型的训练方法及实体识别方法、相关装置 | |
CN111382572A (zh) | 一种命名实体识别方法、装置、设备以及介质 | |
WO2023092960A1 (zh) | 一种用于法律文书的命名实体识别的标注方法和装置 | |
CN112035645A (zh) | 数据查询方法以及系统 | |
CN111639500A (zh) | 语义角色标注方法、装置、计算机设备及存储介质 | |
CN113434682A (zh) | 文本情感分析方法、电子装置及存储介质 | |
CN116932730B (zh) | 基于多叉树和大规模语言模型的文档问答方法及相关设备 | |
Zheng et al. | Generative semantic hashing enhanced via Boltzmann machines | |
CN117216279A (zh) | Pdf文件的文本提取方法、装置、设备及存储介质 | |
CN110032716B (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 |