一种模板识别信息校对方法与流程

文档序号:17490811发布日期:2019-04-23 20:29阅读:234来源:国知局
一种模板识别信息校对方法与流程

本发明涉及条形码技术领域,尤其涉及一种模板识别信息校对方法。



背景技术:

日常生活中,一维码二维码越来越常见。应用的范围也越来越广泛。随之而来一维码解码过程中存在的识别率低、速度慢、误码率高逐渐体现,尽管已有相应处理技术用于一维码解码,但,现有技术的处理过程中读取条形码图片,裁剪出条形码区域,通过图像预处理方法,包括灰度化、滤波以及二值化处理,扫描条形码,根据校验正确的前置码宽度获得黑白条的基本宽度,译码,校验,若校验正确则依次切换到下一行,重复识别校验过程,最后输出条形码信息,如图1所示;该过程复杂且冗余。



技术实现要素:

本发明的目的在于提供一种模板识别信息校对方法,从而解决现有技术中存在的前述问题。

为了实现上述目的,本发明采用的技术方案如下:

一种模板识别信息校对方法,主要包括以下步骤:

s1,利用形态学操作来粗略定位条形码所需区域的起点ol与终点or;

s2,基于先前粗略定位得到的条形码的起点与终点,计算条码中每个数字段的空间位置;

s3,通过局部代价函数来规范各数字段的形变取值,然后利用先验分布得到总的可能性;利用似然函数来测量条码中每个数字段的形变并比较其与模板之间的匹配程度,搜索找到与其匹配度最高的模板从而确定该数字段的形变参数;

s4,整合空间上所有形变的似然值,让条形码中不同尺寸的字符与每个二进制模板的独立似然最大化相对应,从而确定与该字符相对应的概率最大的二进制模板;

再给定一个全局代价函数,保证各个字符段之间不相互重叠从而使得识别结果不准确;最终将各个字符段的信息解析从而识别出条形码信息。

优选地,步骤s1中的形态学操作包括图像梯度和腐蚀膨胀方法。

优选地,步骤s2中具体包括:

s21,为一个给定的符号k(0≤k≤9)定义一个模板mk,考虑到缩放和移位,定义每个字符的空间位置:

其中,x表示字符当前位置,o表示条形码左侧的第j个数字段位置为:o=ol+3w+7w(j-1);w代表基本宽度:

s22,对于条形码中的每一个数字段,将扫描线的相应段的强度分布i(n)与模板比较;

s23,基于步骤s22中的比较结果,选择最适合数据的模型。

优选地,步骤s3中所述的形变参数能够最好阐述条形码数据的移位和缩放模板,以此避免许多现有算法算出的局部最大值带来的误码影响。

优选地,步骤s3中所述的似然函数为:

其中,对数似然项d可以表示为

i(n)表示所考虑的扫描线的强度分布,1≤n≤95;pk(i|o,w)为每个字符在估算的空间中的似然度。

优选地,步骤s3还包括:

使用代价函数搜索匹配度最大化的形变参数;

所述代价函数为:

μb为i(n)的最小50%的平均值的量;

μw为i(n)的最大50%的平均值的量;

σ2为μw和μb的方差。

优选地,步骤s4具体包括以下步骤:

s41,在对区域内多个形变模板整合定位的时候,通过整合空间上所有形变的似然度,和已经定义的形变参数的根据先验分布公式构造全局似然函数来确定所有形变的最优定位;

s42,对于每个可能的符号序列,基于可能出现的误差,定义一个全局代价函数对整个符号序列进行全局约束;

s43,用最小二乘回归得到形变参数,最后得到最小成本序列。

优选地,步骤s41中所述的先验分布为pk(i)=∫∫pk(i|o,w)p(o,w)dodw,其中,p(o,w)定义变形空间上的概率密度函数,pk(i|o,w)为每个字符在估算的空间中的似然度,pk(i)为所有字符在估算的空间中的总似然度;

将先验分布公式离散化后得到全局似然函数:

单元是(o,w)平面的最小分区是由方程的线定义的多边形,其中q是任何整数,r是每个内容区域宽度值,即模板内容区域中不同条宽比例构成了不同的模板,每个模板被分为多个区域,中间的区域为内容区域,l表示内容区域,其中t代表分区中单元的索引内的pk(i|o,w)是恒定的,其中对于中的任何(o,w);

其中0≤i≤5,设置

为了计算给定符号的观察扫描线的似然性,有必要考虑o和w的不确定性,这种不确定性来源于对ol和or估计的有限容差。例如,假设ol和or都是以±δo的公差计算的。然后,除了变形或透视效应外,o也具有±δo的容差,而w具有±2δo/95的容差。

优选地,步骤s42中可能出现的误差包括由于噪声、模糊、序列中出现的重叠或间隙引发的误差。

优选地,步骤s42中,针对序列中可能出现的重叠或间隙,假设第j位数值为k(j),估计的变形参数定义了支持的段定义第j个和(j+1)估计数字段之间的重叠间隙范围为

再定义一个全局代价函数如下:

其中α是一个平衡参数,并且总和延伸到所有数字段;pj,k(j)为全局似然函数计算所得的值,所述全局代价函数通过对可能存在的连续数字段间的重叠或间隙进行惩罚,从而降低了在两个连续数字段之间产生大的重叠或间隙的符号序列的可能性;可以使用动态规划来最小化在符号的序列{k}的空间上的代价函数c。

本发明的有益效果是:

本发明提供的模板识别信息校对方法是基于贝叶斯算法逆推匹配模板的起始与终止位置,另外通过对边界条件的追加判定,来使算法的效率与精确度得以提升,实现条形码扫描精度提高。

附图说明

图1是现有技术中条形码识别的流程图;

图2是本发明中模板识别信息校对的方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。

实施例

本实施例提供一种模板识别信息校对方法,包括以下步骤:

s1,利用形态学操作来粗略定位条形码所需区域的起点ol与终点or;

s2,基于先前粗略定位得到的条形码的起点与终点,计算条码中每个数字段的空间位置;

s3,通过局部代价函数来规范各数字段(模板的所占整个条形码的宽度比例)的形变取值,然后利用先验分布得到总的可能性;利用似然函数来测量条码中每个数字段的形变并比较其与模板之间的匹配程度,搜索找到与其匹配度最高的模板从而确定该数字段的形变参数;

s4,整合空间上所有形变的似然值,让条形码中不同尺寸的字符与每个二进制模板的独立似然最大化相对应,从而确定与该字符相对应的概率最大的二进制模板;

再给定一个全局代价函数,保证各个字符段(由实际像素点组成的字符)之间不相互重叠从而使得识别结果不准确;最终将各个字符段的信息解析从而识别出条形码信息。

以下为具体实施方式:为一个给定的符号k定义一个模板mk,作为在-1和1之间交替的连续分段常数函数,其中值-1(1)代表黑色(白色)条。条形码左半部分符号的模型mk以“-1”段开始并以“1”段结束,其中这两段的长度均为1。模板真实长度等于因此,一个完整的标准模型是数字部分加上两边的开头与结尾。这两个附加条具有基本宽度和已知极性,将这些条添加到模板会增加匹配过程的稳健性。

参数化模型是原始模型的移位和缩放(变形)版本:

其中o代表模型的起点,w代表基本宽度。模型是一个线性函数,而观察值i(n)是在像素的离散空间上定义的。

一旦条形码已经在图像中定位并且已经估计了所选扫描线的端点(ol,or),则计算出了条形码的每个数字段的大致位置。更确切地说,条形码左侧的第j个数字段假定从

o=ol+3w+7w(j-1)(2)

其中

是估计的基本宽度。这些表达式源于以下事实:条码的总长度(理想情况下)等于基本宽度的95倍,每个数字模板占据等于基本宽度的七倍,并且前三个是左护线。

对于一个通用的数字,考虑到(2)中计算的o的值通常是对数字段的实际左边缘的错误估计,因为估计中的误差(ol,or)的端点连同图像失真一样。然而,假设估计位置o和最小条宽w确实是正确的。然后,为了读取数字的值,可以简单地将段中的强度i(n)与模型比较(0≤k≤9),并选择最适合数据的模型。更准确地说,定义了计算出通用数字段内强度关于符号k(以估计位置o和单位宽度w为条件)的似然性为

其中i(n)表示所考虑的扫描线的强度分布。对数似然项d可以表示为

变量n只取整数值。请注意,这个总和是根据落在段[o-w,o+8w]中的所有像素计算的,而其中基于的是模板

对于模型和观测之间的差异的对数似然性d,可以考虑各种函数来实现。首先,计算表示i(n)的最大50%和最小50%的平均值的量μw和μb以及它们的方差σ2。然后,

这个函数约束当时很小的i(n)值或者当时较大的值。注意,这不等同于二值化数据。事实上,i(n)的原始值可以从d(i(n),-1)和d(i(n),1)中恢复。

为了计算给定符号的观察扫描线的似然性,有必要考虑o和w的不确定性。这种不确定性来源于对ol和or估计的有限容差。例如,假设ol和or都是以±δo的公差计算的。然后,除了变形或透视效应外,o也具有±δo的容差,而w具有±2δo/95的容差。

可以通过首先定义变形空间上的概率密度函数p(o,w)来解决这个问题。然后通过在这样的密度上平均pk(i|o,w)来计算总可能性pk(i):

pk(i)=∫∫pk(i|o,w)p(o,w)dodw(8)

计算这个积分似乎是一项艰巨的任务,尤其是如果需要在诸如手机等嵌入式系统上执行的话。相反,此算法证明了由于模型mk的特殊性质和假设先验p(o,w)的简单形式,(8)中的积分可以通过合理的小复杂度的数值方法精确计算。

此算法的推导利用了在(o,w)空间中是分段常量的事实。这反过来又是由于扫描线本身的分段常数造成的:如果o和w的变化足够小,则没有任何边界di将“跳”到不同的像素。如果将(5)中的和分解成6个片段,对应于取值为1或-1的片段,可以注意到在片段[di,di+1]中,对于0≤i≤5设置则函数等于(-1)i

因此,只有当它导致di-1或di越过整数值时,o或w的变化决定了ai(以及pk(i|o,w)的变化。因此,pk(i|o,w)是分段常数,并且(8)中的积分可以精确地计算为几十个项的和。

接下来计算这个总和中的项,假设是(o,w)平面的最小分区,使得每个单元(其中t代表分区中单元的索引)内的pk(i|o,w)是恒定的。然后,

其中对于中的任何(o,w)。单元是由方程的线定义的多边形,其中q是任何整数,并且i是1和4。单元格列表以及每个单元格内的p(o,w)的整数可以脱机计算并存储以供在线使用。很容易看到这些单元格形成了一个周期性模式(在o和w中周期等于1),因此只有这个时间段内的最小分区需要被存储。

使用贝叶斯规则可以计算出给定数字段内的强度分布i(n)的变形参数这在离散数据中相当于

模型进行简化的初始假设,即数字段等间距,这也意味着整个条形码的基本宽度w是恒定的。数字段的长度可能因段而异,通常在置信区间δo和δw内。然而,理想情况下,代表扫描线中给定数字的分段(从估计值计算得出)应该与相邻分段相邻(但不重叠)。由于单位数分析而选择不正确的k值可能会导致支持的部分与其他部分不能很好地配合。这种观察可以通过施加全局约束来利用,如下所示:

假设第j位数值为k(j)。(从现在开始,需要在符号中对j进行依赖)。估计的变形参数定义了支持的段定义第j个和(j+1)估计数字段之间的重叠间隙范围为

定义一个全局代价函数如下:

其中α是一个平衡参数,并且总和延伸到所有数字段。代价函数(14)降低了在两个连续数字段之间产生大的重叠或间隙的符号序列的可能性。可以使用动态规划来最小化在符号的序列{k}的空间上的代价函数c。

值得注意到的是,我们在实际运行的过程中,可以通过一些优化简便的算法使得整个算法更加简单可行:

1.(11)中的似然计算可以通过预先计算序列d(i(n),1)和d(i(n),-1)来加快。然后,对于每个单元格,只需要将这两个序列中的选定样本相加即可。假设(8)需要对nj个单元求和。对于每个单元需要计算负对数似然率dt,这需要每个采样两次加法和两次乘法,总体上每个采样需要2nj次加法和2nj次乘法。然而,通过预计算d(i(n),1)和d(i(n),-1),每个dt的计算只需要每个样本添加一次。这将计算重量减少到每个样本2+nj个加法和四个乘法。

2.在运行时,从列表中选择一组特定的单元格,基于对o和w的估计值的容差δo和δw,这些容易从估计的端点ol和or的容差导出。更确切地说,计算(11)中与矩形相交的单元格的总和,边长为[o-δo,o+δo]和[w-δw,w+δw],其中o和w由(2)估计。

3.如果在(o,w)空间中假定p(o,w)在所考虑的矩形内是均匀的,则在每个单元结果中p(o,w)的积分特别简单。在这种情况下,积分与多边形单元的面积成正比,可以很容易地计算并离线存储。

4.上述等式中的积分可以预先计算并存储以供在线使用。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1