CN114580457B - 一种低分辨率条件下的条形码解码方法、存储介质 - Google Patents
一种低分辨率条件下的条形码解码方法、存储介质 Download PDFInfo
- Publication number
- CN114580457B CN114580457B CN202210495572.6A CN202210495572A CN114580457B CN 114580457 B CN114580457 B CN 114580457B CN 202210495572 A CN202210495572 A CN 202210495572A CN 114580457 B CN114580457 B CN 114580457B
- Authority
- CN
- China
- Prior art keywords
- signal
- value
- bar code
- dimensional scanning
- sub
- 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/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/1408—Methods for optical code recognition the method being specifically adapted for the type of code
Abstract
一种低分辨率条件下的条形码解码方法、存储介质,其中条形码解码方法包括:获取条形码图像;对条形码图像中的条形码区域进行扫描以得到多条一维的扫描线;对于每一条扫描线,利用采样模板估计每一点处的局部条码角度,利用局部条码角度对应的采样模板计算该点的灰度投影值以得到一条一维扫描信号;利用所获得的多条一维扫描信号进行高分辨率信号重建得到一高分辨率扫描信号;检测高分辨率扫描信号中的亚像素边缘位置,根据所有相邻间亚像素边缘位置的间距进行解码。通过估计每一点处的局部条码角度、进行高分辨率信号重建、检测高分辨率扫描信号中的亚像素边缘位置等,有效地提高了低分辨率条件下条形码解码的能力。
Description
技术领域
本发明涉及条形码解码技术领域,具体涉及一种低分辨率条件下的条形码解码方法、存储介质。
背景技术
条形码是将宽度不等的多个黑条(或黑块)和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。将按照一定规则编译出来的条形码转换成有意义的信息,需要经历扫描和译码两个过程。扫描的目的是根据图像的灰度信息,获得相邻的黑白相间的条纹的宽度和亮暗信息,然后根据条形码编码标准,将宽度信息和亮暗信息按照标准转化为条形码的解码信息。由以上说明可知,条形码解码的关键在于识别:(1)条码的明暗:也就是值为0或为1;(2)条码的大小:也就是0或1的个数。
条码的宽度和距离会影响条形码的解码能力,容易理解,条码的宽度和距离越大,则条码越容易被分辨出来,也就越容易进行解码;条码的宽度和距离越小,则条码越难以被分辨出来,从而解码难度越大。因此,对于低条码宽度和距离情况下条形码的解码是一个非常重要的技术问题。
发明内容
本发明提供一种低分辨率条件下的条形码解码方法,旨在对低条码宽度和距离情况下的条形码进行解码。
根据第一方面,一种实施例中提供一种低分辨率条件下的条形码解码方法,包括:
获取条形码图像I;
对所述条形码图像I中的条形码区域进行扫描以得到多条一维的扫描线;
预先设置具有预设形状的采样模板,采样模板根据角度值进行设置,每个角度值对应一个采样模板;对于每条一维的扫描线,分别将其每个点作为采样位置p 0,利用采样模板估计点p 0处的局部条码角度,利用局部条码角度对应的采样模板计算点p 0的灰度投影值;由一维的扫描线上各点的灰度投影值组成一条一维扫描信号;
利用所获得的多条一维扫描信号进行高分辨率信号重建以得到一高分辨率扫描信号;
检测所述高分辨率扫描信号中的亚像素边缘位置,根据所有相邻间亚像素边缘位置的间距进行解码。
根据以下公式,将[0,359]范围内的角度值进行量化,得到量化角度值θ i :
θ i = i×π/180,i∈[0,359],
其中i为整数;根据量化角度值θ i 计算对应的采样模板长度l:
l = min(0.25×h,max(1,d c )),
其中d c =Round(1/sinθ i ),Round()表示做四舍五入运算,h表示条形码区域的高度;
其中Y n 表示图像Y轴方向上的采样模板偏移序列索引,X n 表示图像X轴方向上的采样模板偏移序列索引。
一种实施例中,所述利用采样模板估计点p 0处的局部条码角度,利用局部条码角度对应的采样模板计算点p 0的灰度投影值,包括:
预先设置初始条码角度θ 0和搜索范围[θ 0–δ θ ,θ 0 +δ θ ],其中δ θ 为预设的角度搜索宽度;
对于搜索范围[θ 0–δ θ ,θ 0+δ θ ]内的每个量化角度值θ i ,根据其对应的采样模板偏移序列索引,计算位置范围[p 0 –δ p , p 0 +δ p ]内各点的灰度投影值G j ,得到灰度投影值序列,用公式表示为:
其中δ p 为预设的邻域宽度,下标j表示位置,I(X,Y)表示所述条形码图像I中坐标(X,Y)处的灰度值,w 1、w 2、w 3、w 4表示权重,,,,,(X j ,Y j )表示位置j处的点在所述条形码图像I中的坐标,表示向上取整,表示向下取整;
计算每个灰度投影值序列的方差,取方差最大的灰度投影值序列对应的量化角度值θ opt 作为p 0处的局部条码角度,根据量化角度值θ opt 对应的采样模板偏移序列索引计算p 0处的灰度投影值G p0 。
一种实施例中,所述利用所获得的多条一维扫描信号进行高分辨率信号重建以得到一高分辨率扫描信号,包括:
选取一条一维扫描信号作为基准信号,基于所述基准信号对其他一维扫描信号进行亚像素精度的配准得到配准位置Δt i ,其中Δt i 表示第i条一维扫描信号的配准位置;
对所述基准信号进行插值以得到一初始高分辨率扫描信号;
计算由高分辨率信号模拟得到的低分辨率信号与实际低分辨率信号间的残差,其中B(n)S(n)h(n)+e(n)为由高分辨率信号模拟得到的低分辨率信号,B(n)表示信号模糊函数,h(n)表示高分辨率扫描信号,当第一次进行计算时,h(n)为所述初始高分辨率扫描信号,S(n)表示对高分辨率扫描信号h(n)进行降采样的函数,e(n)表示噪声,实际低分辨率信号指一维扫描信号,l i (m)表示第i条一维扫描信号;根据凸集投影算法得到一新的高分辨率扫描信号,将该新的高分辨率扫描信号作为h(n);
重复上一步骤直至残差r的L2范数小于预设的残差阈值kσ,其中k为预定的置信区间对应的临界值,σ为噪声e(n) 的标准差。
一种实施例中,
其中gˊ(n)表示一维扫描信号的一阶导,t 1为预设的一阶导阈值;
S(n)为线性插值函数。
一种实施例中,所述选取一条一维扫描信号作为基准信号,基于所述基准信号对其他一维扫描信号进行亚像素精度的配准得到配准位置Δt i ,包括:
计算每条一维扫描信号的灰度投影值方差,选取灰度投影值方差最大的一维扫描信号作为基准信号S b ;
以0值填充的方式将所有一维扫描信号的长度调整至与最长的一维扫描信号的长度相同;
一种实施例中,所述检测所述高分辨率扫描信号中的亚像素边缘位置包括:
获取所述高分辨率扫描信号的二阶导零交叉点作为初始亚像素边缘位置,并记录其对应的一阶导值;
剔除一阶导绝对值小于预设的一阶导绝对值阈值t2的初始亚像素边缘位置,在剩余的初始亚像素边缘位置中,查找是否存在一阶导极性相同的连续边缘位置,若存在则由一阶导极性相同的连续边缘位置组成集合,取替代作为最终的初始亚像素边缘位置,其中N表示一阶导极性相同的连续边缘位置的数量,表示一阶导极性相同的连续边缘位置p i 对应的一阶导;
对于每个初始亚像素边缘位置P,查找从其左侧预设点到右侧预设点的范围内的灰度极大值g max和灰度极小值g min,根据位置、位置处的灰度值以及灰度极大值g max和灰度极小值g min进行插值计算得到最终的亚像素边缘位置。
其中g(pos)表示位置pos处的灰度值。
一种实施例中,所述根据所有相邻间亚像素边缘位置的间距进行解码,包括:
计算所有相邻间亚像素边缘位置的间距,对于每个间距,计算其与所有字符编码的标准间距的相似度,在相似度大于预设的相似度阈值的标准间距中,取相似度最大的标准间距对应的字符作为最终解码结果。
根据第二方面,一种实施例中提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现如上述第一方面所述的条形码解码方法。
依据上述实施例的低分辨率条件下的条形码解码方法、存储介质,在获得条形码图像后,对条形码图像中的条形码区域进行扫描以得到多条一维的扫描线,之后对于每一条扫描线,利用采样模板估计每一点处的局部条码角度,利用局部条码角度对应的采样模板计算该点的灰度投影值以得到一条一维扫描信号,然后利用所获得的多条一维扫描信号进行高分辨率信号重建得到一高分辨率扫描信号,检测高分辨率扫描信号中的亚像素边缘位置,根据所有相邻间亚像素边缘位置的间距进行解码,通过估计每一点处的局部条码角度、进行高分辨率信号重建、检测高分辨率扫描信号中的亚像素边缘位置等,有效地提高了低分辨率条件下条形码解码的能力。此外由于根据局部条码角度进行计算来得到一维扫描信号,保证了存在透视变换的图像中也能够提取出条形码的低模糊扫描信号,提高了存在透视变换的图像中的条形码解码成功率。并且通过从单张条形码图像中提取多条一维扫描信号,将它们合成为一条高分辨率扫描信号,在不提高硬件成本和不降低算法性能的前提下提高了对低分辨率条件下的条形码解码成功率。
附图说明
图1为一种实施例中的低分辨率条件下的条形码解码方法的流程图;
图2为一次拍摄中得到的条形码图像;
图3为采样模板和条码角度的示意图;
图4为一种实施例中利用多条一维扫描信号进行高分辨率信号重建得到高分辨率扫描信号的流程图;
图5为一种实施例中获得的高分辨率扫描信号与低分辨率扫描信号的对比图;
图6为一种实施例中检测高分辨率扫描信号中的亚像素边缘位置的流程图;
图7为一种实施例中从高分辨率扫描信号上获得的边缘位置的极性示意图;
图8为一阶导极性相同的连续边缘位置的示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
基于图像的条形码识别技术是一种广泛应用于商品流通、工业自动化、办公自动化等领域的自动识别技术。在其广泛的应用场景中,往往需要对不同大小和距离的条码或者说条纹进行识别、解码,对不同分辨率的条形码解码便成为了一个非常重要的技术问题。这里的分辨率可以是指条形码中条码间的距离。目前条形码解码的方法有:
(1)根据光源发出的光在条形码上反射后,反射光照射到条形码扫描器内部的光电转换器上,光电转换器根据强弱不同的反射光信号,转换成相应的电信号以进行识别和解码,该方法需要人手动控制扫描方向;
(2)直接对图像二值化后提取边缘然后计算边缘距离进行解码,因为奈奎斯特采样定理,这种方法在条码的分辨率接近2个像素时就会产生混淆导致边缘位置偏差过大无法解码成功;
(3)对条形码图像提取一维扫描信号,并通过调整亚采样率和亚采样系数获得高分辨率的一维扫描信号,并对这个一维扫描信号计算边缘位置然后利用边缘位置解码,这种方法能够有效降低采样混淆下边缘提取的误差,但是本质上没有解决图像采样混淆的问题,一般当条码分辨率接近1个像素时就会经常解码失败;
(4)为了解决图像低分辨率采样混淆问题,国外有人提出通过OIS(Optical ImageStabilization,光学防抖)模块获取多张低分辨率图像,由多张低分辨图像经过去模糊模型解得一张高分辨率图像,这种方法可以从理论上解决图像低分辨率采样混淆问题,但是实际应用中需要采集多张图像以及额外增加OIS模块,算法的效率和设备成本限制了其在一些场景中的应用。
此外在工业检测中,很多条形码是印刷在钢材、铸铁等材料上,通过激光雕刻等方式进行印刷处理,这就导致条形码的成像质量比较低,存在划痕、脏污、低对比度等情形。另外,由于激光雕刻的材质包括玻璃、金属、塑料等等,部分材质的表面颜色与扫码枪发射的光线颜色较为接近,又进一步提高了识别难度。而条形码的对比度和亮度越均匀解码能力越强,否则越弱。
为了提升在低分辨率、低对比度、光照不均匀等情况下的条形码解码能力,本申请提供一种低分辨率条件下的条形码解码方法,其基本原理为利用条形码在纵向上存在信息冗余,提取多条低分辨的一维扫描信号,利用这些低分辨率的一维扫描信号重建出一高分辨率的扫描信号,然后进行解码。可以将整个过程归纳为三个部分:(1)对获取到的低分辨的条形码图像进行扫描采样得到多条低分辨的一维扫描信号;(2)由多条低分辨率的一维扫描信号重构得到一条高分辨率的扫描信号;(3)对高分辨率的一维扫描信号进行解码。本申请的条形码解码方法可以对条码分辨率大于0.7像素的条形码进行解码,且无需多次采集图像,满足了实际应用中高效率的需求。
下面对本申请的低分辨率条件下的条形码解码方法进行说明,请参考图1,一种实施例中该方法包括步骤110~160,下面具体说明。
步骤110:获取条形码图像I。条形码图像I可以采用任意类型的拍摄装置对条形码进行拍摄得到。由于拍摄装置的设置、条形码所在物体表面的凹凸、弯曲等原因,所获得的条形码图像I通常不是规整的方方正正的条形码图像,常会存在透视变换等。请参考图2,图2为一次拍摄中得到的条形码图像,可以看到所拍摄出来的条形码呈梯形,条纹呈向中间倾斜的趋势。
步骤120:对条形码图像I中的条形码区域进行扫描以得到多条一维的扫描线。这里的扫描与日常生活中使用扫码枪扫描条形码的方式类似,需横跨整个条形码区域中的条纹,得到一条一维的扫描线,如图2中的L即为一条扫描线。通过在不同位置上进行扫描从而得到多条一维的扫描线。
步骤130:对一维的扫描线采用采样模板进行处理得到一维扫描信号。本步骤中主要使用采样模板来对各条一维的扫描线进行处理得到用于后续合成高分辨率信号的一维扫描信号。采样模板用于估计一维的扫描线上某一点处的局部条码角度。条码角度表征条形码的方向,请参考图3,一种实施例中可以将条码角度定义为垂直于条形码的条纹的方向与水平方向的夹角。对于如图3中所示的规整的条形码来说,其条码角度是确定的,然而如上文所述,条形码图像I通常是存在透视变换的,其上每一点处估计得到的条码角度可能不相同,将各点处的条码角度称为局部条码角度。为了适应这种透视变换,本申请提出一种利用采样模板估计局部条码角度,根据局部条码角度进行计算来得到一维扫描信号的方法。
采样模板需要预先设置,且采样模板根据角度值进行设置,每个角度值对应一个采样模板。请参考图3,采样模板具有预设的形状,例如线形、矩形、椭圆形等,图3中以矩形作为示例,实际应用中可根据实际情况选择合适的形状。采样模板决定了对于某一点,使用该点周围的哪些点计算灰度投影值。采样模板可以采用离线设置的方式预先设置好,储存至程序的静态变量区,之后在线对一维的扫描线进行处理时对其进行调用即可,从而提高了在线处理阶段的性能。本申请中提供一种线形模板,下面对其进行具体介绍。在本申请的一种实施例中,先对[0,359]范围内的角度值进行量化,得到量化后的角度值,根据量化后的角度值来设置采样模板。对于线形模板的设置主要设置其长度l和偏移序列索引。具体的,首先根据以下公式,将[0,359]范围内的角度值进行量化,得到量化角度值θ i :
θ i = i×π/180,i∈[0,359],
其中i为整数。然后根据量化角度值θ i 计算对应的采样模板长度l:
l = min(0.25×h,max(1,d c )),
其中d c =Round(1/sinθ i ),Round()表示做四舍五入运算,h表示条形码区域的高度;
其中Y n 表示图像Y轴方向上的采样模板偏移序列索引,X n 表示图像X轴方向上的采样模板偏移序列索引。
完成采样模板的设置后,可在线利用采样模板对一维的扫描线进行处理。对于每条一维的扫描线,分别将其每个点作为采样位置p 0,利用采样模板估计点p 0处的局部条码角度,利用局部条码角度对应的采样模板计算点p 0的灰度投影值。以上面设置的线形模板为例,首先需要预先设置初始条码角度θ 0和搜索范围[θ 0 –δ θ ,θ 0 +δ θ ],其中δ θ 为预设的角度搜索宽度,可根据实际需要进行设置,一个实例为δ θ =π/60。然后对于搜索范围[θ 0 –δ θ ,θ 0 +δ θ ]内的每个量化角度值θ i ,根据其对应的采样模板偏移序列索引,计算位置范围[p 0 –δ p , p 0 +δ p ]内各点的灰度投影值G j ,得到灰度投影值序列,用公式表示为:
其中δ p 为预设的邻域宽度,可根据实际需要进行设置,一个实例为δ p =3;下标j表示位置,I(X,Y)表示条形码图像I中坐标(X,Y)处的灰度值,w 1、w 2、w 3、w 4表示权重,可以使用归一化的双线性系数作为这里的权重;,,,,(X j ,Y j )表示位置j处的点在条形码图像I中的坐标,表示向上取整,表示向下取整。
由每个量化角度值都得到了一个灰度投影值序列,最后计算每个灰度投影值序列的方差,取方差最大的灰度投影值序列对应的量化角度值θ opt 作为p 0处的局部条码角度,根据量化角度值θ opt 对应的采样模板偏移序列索引计算p 0处的灰度投影值G p0,即
最后由一维的扫描线上各点的灰度投影值组成一条一维扫描信号。
步骤140:利用所获得的多条一维扫描信号进行高分辨率信号重建以得到一高分辨率扫描信号。步骤130中获得的多条一维扫描信号的分辨率较低,本步骤中利用它们进行高分辨率信号重建,得到高分辨率扫描信号用于进行解码,请参考图4,一种实施例中该步骤包括步骤141~144,下面具体说明。
步骤141:选取一条一维扫描信号作为基准信号,基于该基准信号对其他一维扫描信号进行亚像素精度的配准得到配准位置Δt i ,其中Δt i 表示第i条一维扫描信号的配准位置。
一种实施例中,对于基准信号S b ,可以先计算每条一维扫描信号的灰度投影值方差,选取灰度投影值方差最大的一维扫描信号作为基准信号S b 。获得基准信号S b 后,将其他一维扫描信号向该基准信号S b 进行配准。对于配准,一种实施例中可以按以下方式进行:
(1)以0值填充的方式将所有一维扫描信号的长度调整至与最长的一维扫描信号的长度相同。这里以最长的一维扫描信号的长度为标准,将所有一维扫描信号的长度调整至统一的长度,长度不满的一维扫描信号则以0进行填充,使其达到目标长度。
(3)对于第i条一维扫描信号,分别将其每个点作为中心点截取预设长度的信号S m ,计算S m 与的NCC(Normalized Cross Correlation,归一化互相关)相关系数,记录NCC相关系数最大的位置及其相邻位置,然后进行插值得到该一维扫描信号的亚像素的配准位置Δt i ,其中插值可以采用抛物线插值等,当采用抛物线插值时,可根据以下公式计算得到Δt i :
其中p max表示NCC相关系数最大的位置,N 0表示位置p max处的NCC相关系数值,N 1和N 2分别表示位置p max的左、右相邻位置处的NCC相关系数值。
步骤142:对基准信号S b 进行插值以得到一初始高分辨率扫描信号。插值的方式可以是抛物线插值等。
步骤143:计算由高分辨率信号模拟降质过程计算得到的低分辨率信号与实际低分辨率信号间的残差r,利用残差r根据凸集投影算法得到一新的高分辨率扫描信号,其中当第一次进行计算时,使用步骤142中获得的初始高分辨率扫描信号作为这里的高分辨率信号。本步骤中的低分辨率信号指一维扫描信号,本步骤中主要是利用已获得的高分辨率信号模拟一维扫描信号,然后根据与实际一维扫描信号(即实际低分辨率信号)的误差对高分辨率信号进行更新。
由高分辨率信号模拟降质过程计算得到低分辨率信号是通过降质模型来实现的,因此需预先构建降质模型,降质模型可以表示为:l i (m) = B(n)S(n)h(n)+e(n),其中l i (m)指需模拟的低分辨率信号,即第i条一维扫描信号,B(n)表示信号模糊函数,h(n)表示高分辨率扫描信号,当第一次进行计算时,h(n)为步骤142中获得的初始高分辨率扫描信号,S(n)表示对高分辨率扫描信号h(n)进行降采样的函数,e(n)表示噪声。需要说明的是,高分辨率信号经降质后其变量发生了变化,例如原先有200个点,经降质后可能只有100个点,因此降质前后的变量不同,分别用n和m来表示。对于信号模糊函数B(n),一种实施例中可以使用高斯函数与幂函数的复合函数,用公式表示为:
其中gˊ(n)表示一维扫描信号的一阶导,t 1为预设的一阶导阈值。
对于S(n),可以采用线性插值函数等。
根据降质模型,由高分辨率信号模拟降质过程计算得到一低分辨率信号,计算其与实际低分辨率信号间的残差r,其中实际低分辨率信号需要先使用步骤141中获得的配准位置Δt i 进行偏移,残差r的计算公式可以表示为:
其中B(n)S(n)h(n)+e(n)即为由高分辨率信号模拟降质过程计算得到的低分辨率信号,l i (m+Δt i )即为实际低分辨率信号。获得残差后,根据凸集投影算法得到一新的高分辨率扫描信号作为h(n)。
步骤144:判断残差r的L2范数是否小于预设的残差阈值kσ,若不是则返回步骤143,若是则结束流程,获得最终的高分辨率扫描信号,其中k为预定的置信区间对应的临界值(也常称为Z值),例如98%置信区间的临界值为2.3263,σ为噪声e(n) 的标准差。图5给出了一种实施例中获得的高分辨率扫描信号与低分辨率扫描信号的对比图。
下面继续介绍步骤150~160。
步骤150:检测高分辨率扫描信号中的亚像素边缘位置。请参考图6,一种实施例中本步骤可以包括步骤151~153,下面具体说明。
步骤151:获取高分辨率扫描信号的二阶导零交叉点作为初始亚像素边缘位置,并记录其对应的一阶导值。
步骤152:对初始亚像素边缘位置进行同极性筛选。请参考图7,理想情况下由于条形码上有黑白相间的条纹,因此从高分辨率扫描信号上获得的边缘位置的极性应该是正负相间的,即一阶导正负号相间,然而由于噪声或异常等情况,常会出现极性相同的相邻边缘位置,因此本申请提出一种方法对这种情况进行处理,以提高鲁棒性。
具体的,在获得的初始亚像素边缘位置中剔除一阶导绝对值小于预设的一阶导绝对值阈值t2的初始亚像素边缘位置,以此降低噪声干扰。顺序地遍历剩余的初始亚像素边缘位置,查找是否存在一阶导极性相同即一阶导正负号相同的连续边缘位置,若存在则由一阶导极性相同的连续边缘位置组成集合,其中N表示一阶导极性相同的连续边缘位置的数量,表示一阶导极性相同的第i个连续边缘位置p i 对应的一阶导,连续边缘位置指多个相邻的边缘位置。请参考图8,图8中边缘位置p B 、p C 和p D 为一阶导极性相同的连续边缘位置,它们组成了集合。对集合中的边缘位置进行合并处理,可以计算替代作为最终的初始亚像素边缘位置,即不再将中的边缘位置作为初始亚像素边缘位置,而以计算得到的p取而代之。
步骤153:利用局部灰度极值对初始亚像素边缘位置进行再优化。对于每个初始亚像素边缘位置P,查找从其左侧预设点到右侧预设点的范围内的灰度极大值g max和灰度极小值g min,根据位置、位置处的灰度值以及灰度极大值g max和灰度极小值g min进行插值计算得到最终的亚像素边缘位置。一种实施例中,左侧预设点和右侧预设点可以是与P相邻的左右两个初始亚像素边缘位置。一种实施例中,可以根据以下公式进行插值计算得到最终的亚像素边缘位置:
其中g(pos)表示位置pos处的灰度值。
根据上述方法提取到的亚像素边缘位置,能够抑制噪声的影响,提高了条形码解码方法对噪声的鲁棒性。
步骤160:根据所有相邻间亚像素边缘位置的间进行解码。一种实施例中,可以计算所有相邻间亚像素边缘位置的间距,对于每个间距,计算其与所有字符编码的标准间距的相似度,在相似度大于预设的相似度阈值的标准间距中,取相似度最大的标准间距对应的字符作为最终解码结果。相似度可以采用余弦相似度、欧氏距离、Pearson相关系数等来表示,对于余弦相似度来说,计算得到的余弦相似度的值越接近1,则相似度越大;对于欧式距离来说,计算得到的欧式距离的值越小,相似度越大;对于Pearson相关系数来说,计算得到的Pearson相关系数的值越接近1,则相似度越大。
依据上述实施例的低分辨率条件下的条形码解码方法,在获得条形码图像后,对条形码图像中的条形码区域进行扫描以得到多条一维的扫描线,之后对于每一条扫描线,利用采样模板估计每一点处的局部条码角度,利用局部条码角度获得该点的灰度投影值以得到一条一维扫描信号,然后利用所获得的多条一维扫描信号进行高分辨率信号重建,检测重建得到的高分辨率扫描信号的亚像素边缘位置进行解码,通过估计每一点处的局部条码角度、进行高分辨率信号重建、检测高分辨率扫描信号中的亚像素边缘位置等,有效地提高了低分辨率条件下条形码解码的能力,也能有效适应低对比度、光照不均匀等条件下的条形码解码。此外由于根据局部条码角度进行计算来得到一维扫描信号,保证了存在透视变换的图像中也能够提取出条形码的低模糊扫描信号,提高了存在透视变换的图像中的条形码解码成功率。在有的实施例中,通过离线设置用于估计局部条码角度的采样模板,之后在线对一维的扫描线进行处理时对其进行调用即可,提高了在线处理阶段的性能。此外通过从单张条形码图像中提取多条一维扫描信号,将它们合成为一条高分辨率扫描信号,可以在不提高硬件成本和不降低算法性能的前提下提高对低分辨率条件下的条形码解码成功率。本申请一种实施例中亚像素边缘的提取和处理方法,能够抑制噪声的影响,提高了条形码解码方法对噪声的鲁棒性。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (9)
1.一种低分辨率条件下的条形码解码方法,其特征在于,包括:
获取条形码图像I;
对所述条形码图像I中的条形码区域进行扫描以得到多条一维的扫描线;
预先设置具有预设形状的采样模板,采样模板根据角度值进行设置,每个角度值对应一个采样模板;对于每条一维的扫描线,分别将其每个点作为采样位置p 0,利用采样模板估计点p 0处的局部条码角度,利用局部条码角度对应的采样模板计算点p 0的灰度投影值;由一维的扫描线上各点的灰度投影值组成一条一维扫描信号;
利用所获得的多条一维扫描信号进行高分辨率信号重建以得到一高分辨率扫描信号;
检测所述高分辨率扫描信号中的亚像素边缘位置,根据所有相邻间亚像素边缘位置的间距进行解码;
其中所述利用所获得的多条一维扫描信号进行高分辨率信号重建以得到一高分辨率扫描信号,包括:
选取一条一维扫描信号作为基准信号,基于所述基准信号对其他一维扫描信号进行亚像素精度的配准得到配准位置Δt i ,其中Δt i 表示第i条一维扫描信号的配准位置;
对所述基准信号进行插值以得到一初始高分辨率扫描信号;
计算由高分辨率信号模拟得到的低分辨率信号与实际低分辨率信号间的残差,其中B(n)S(n)h(n)+e(n)为由高分辨率信号模拟得到的低分辨率信号,B(n)表示信号模糊函数,h(n)表示高分辨率扫描信号,当第一次进行计算时,h(n)为所述初始高分辨率扫描信号,S(n)表示对高分辨率扫描信号h(n)进行降采样的函数,e(n)表示噪声,实际低分辨率信号指一维扫描信号,l i (m)表示第i条一维扫描信号;根据凸集投影算法得到一新的高分辨率扫描信号,将该新的高分辨率扫描信号作为h(n);
重复上一步骤直至残差r的L2范数小于预设的残差阈值kσ,其中k为预定的置信区间对应的临界值,σ为噪声e(n) 的标准差。
2.如权利要求1所述的条形码解码方法,其特征在于,所述角度值为将[0,359]范围内的角度值进行量化后的角度值,所述预设形状为线形,所述预先设置具有预设形状的采样模板包括预先设置采样模板长度l和采样模板偏移序列索引 ,具体包括:
根据以下公式,将[0,359]范围内的角度值进行量化,得到量化角度值θ i :
θ i = i×π/180,i∈[0,359],
其中i为整数;根据量化角度值θ i 计算对应的采样模板长度l:
l = min(0.25×h,max(1,d c )),
其中d c =Round(1/sinθ i ),Round()表示做四舍五入运算,h表示条形码区域的高度;
其中Y n 表示图像Y轴方向上的采样模板偏移序列索引,X n 表示图像X轴方向上的采样模板偏移序列索引。
3.如权利要求2所述的条形码解码方法,其特征在于,所述利用采样模板估计点p 0处的局部条码角度,利用局部条码角度对应的采样模板计算点p 0的灰度投影值,包括:
预先设置初始条码角度θ 0和搜索范围[θ 0–δ θ ,θ 0+δ θ ],其中δ θ 为预设的角度搜索宽度;
对于搜索范围[θ 0–δ θ ,θ 0+δ θ ]内的每个量化角度值θ i ,根据其对应的采样模板偏移序列索引,计算位置范围[p 0–δ p , p 0+δ p ]内各点的灰度投影值G j ,得到灰度投影值序列,用公式表示为:
其中δ p 为预设的邻域宽度,下标j表示位置,I(X,Y)表示所述条形码图像I中坐标(X,Y)处的灰度值,w 1、w 2、w 3、w 4表示权重,,,,,(X j ,Y j )表示位置j处的点在所述条形码图像I中的坐标,表示向上取整,表示向下取整;
计算每个灰度投影值序列的方差,取方差最大的灰度投影值序列对应的量化角度值θ opt 作为p 0处的局部条码角度,根据量化角度值θ opt 对应的采样模板偏移序列索引计算p 0处的灰度投影值G p0。
5.如权利要求4所述的条形码解码方法,其特征在于,所述选取一条一维扫描信号作为基准信号,基于所述基准信号对其他一维扫描信号进行亚像素精度的配准得到配准位置Δt i ,包括:
计算每条一维扫描信号的灰度投影值方差,选取灰度投影值方差最大的一维扫描信号作为基准信号S b ;
以0值填充的方式将所有一维扫描信号的长度调整至与最长的一维扫描信号的长度相同;
6.如权利要求1所述的条形码解码方法,其特征在于,所述检测所述高分辨率扫描信号中的亚像素边缘位置包括:
获取所述高分辨率扫描信号的二阶导零交叉点作为初始亚像素边缘位置,并记录其对应的一阶导值;
剔除一阶导绝对值小于预设的一阶导绝对值阈值t2的初始亚像素边缘位置,在剩余的初始亚像素边缘位置中,查找是否存在一阶导极性相同的连续边缘位置,若存在则由一阶导极性相同的连续边缘位置组成集合,取替代作为最终的初始亚像素边缘位置,其中N表示一阶导极性相同的连续边缘位置的数量,表示一阶导极性相同的连续边缘位置p i 对应的一阶导;
8.如权利要求1所述的条形码解码方法,其特征在于,所述根据所有相邻间亚像素边缘位置的间距进行解码,包括:
计算所有相邻间亚像素边缘位置的间距,对于每个间距,计算其与所有字符编码的标准间距的相似度,在相似度大于预设的相似度阈值的标准间距中,取相似度最大的标准间距对应的字符作为最终解码结果。
9.一种计算机可读存储介质,其特征在于,所述介质上存储有程序,所述程序能够被处理器执行以实现如权利要求1-8中任一项所述的条形码解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210495572.6A CN114580457B (zh) | 2022-05-09 | 2022-05-09 | 一种低分辨率条件下的条形码解码方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210495572.6A CN114580457B (zh) | 2022-05-09 | 2022-05-09 | 一种低分辨率条件下的条形码解码方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114580457A CN114580457A (zh) | 2022-06-03 |
CN114580457B true CN114580457B (zh) | 2022-11-01 |
Family
ID=81769208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210495572.6A Active CN114580457B (zh) | 2022-05-09 | 2022-05-09 | 一种低分辨率条件下的条形码解码方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114580457B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116385742B (zh) * | 2023-03-20 | 2024-04-12 | 北京兆讯恒达技术有限公司 | 一种低质量条码图像信号提取方法和装置 |
CN116757231A (zh) * | 2023-08-22 | 2023-09-15 | 北京紫光青藤微系统有限公司 | 用于条码图像的超分辨率训练图集的生成方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573674A (zh) * | 2015-01-29 | 2015-04-29 | 杨克己 | 面向实时嵌入式系统的一维条码识别方法 |
CN108009455A (zh) * | 2017-11-07 | 2018-05-08 | 深圳市华汉伟业科技有限公司 | 一种条形码的扫描信号的解码方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2864012B2 (ja) * | 1997-05-07 | 1999-03-03 | ユナイテツド パーセル サービス オブ アメリカ インコーポレイテツド | ピクセル・イメージのバーコード・シンボルの読取り方法および装置 |
EP1837826A1 (en) * | 2006-03-20 | 2007-09-26 | Matsushita Electric Industrial Co., Ltd. | Image acquisition considering super-resolution post-interpolation |
EP2393036B1 (en) * | 2010-06-01 | 2016-03-02 | Fujian Newland Computer Co., Ltd. | Barcode decoding chip |
-
2022
- 2022-05-09 CN CN202210495572.6A patent/CN114580457B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573674A (zh) * | 2015-01-29 | 2015-04-29 | 杨克己 | 面向实时嵌入式系统的一维条码识别方法 |
CN108009455A (zh) * | 2017-11-07 | 2018-05-08 | 深圳市华汉伟业科技有限公司 | 一种条形码的扫描信号的解码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114580457A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114580457B (zh) | 一种低分辨率条件下的条形码解码方法、存储介质 | |
US7301564B2 (en) | Systems and methods for processing a digital captured image | |
US8469274B2 (en) | Method for fast locating decipherable pattern | |
US6408109B1 (en) | Apparatus and method for detecting and sub-pixel location of edges in a digital image | |
CN108764004B (zh) | 一种基于编码环采样的环状编码标记点解码识别方法 | |
Chang et al. | A General Scheme for Extracting QR Code from a non-uniform background in Camera Phones and Applications | |
US8810633B2 (en) | Robust image alignment for distributed multi-view imaging systems | |
D'Amiano et al. | Video forgery detection and localization based on 3D patchmatch | |
US6640008B1 (en) | Rotation and scale invariant pattern matching method | |
CN106169173B (zh) | 一种图像插值方法 | |
US20150302236A1 (en) | Method and device for identifying a two-dimensional barcode | |
CN108256375B (zh) | 一种一维条形码扫描方法 | |
CN112651257B (zh) | 一种二维码、条形码图像定位及识别方法及其存储介质 | |
CN106296587B (zh) | 轮胎模具图像的拼接方法 | |
US20150294129A1 (en) | Method and device for identifying a two-dimensional barcode | |
Li et al. | FDnCNN-based image denoising for multi-labfel localization measurement | |
CN109064536B (zh) | 一种基于双目结构光的书页三维重建方法 | |
CN113313628B (zh) | 基于仿射变换和均值像素法的环状编码点鲁棒性识别方法 | |
CN112069852B (zh) | 一种基于游程编码的低质量二维码信息提取方法及装置 | |
CN105359165A (zh) | 确定文档中的条形码位置 | |
Bodnár et al. | A novel method for barcode localization in image domain | |
CN110458757B (zh) | 一种阈值自适应的特征点匹配图像拼接方法 | |
CN113095102B (zh) | 一种条形码区域的定位方法 | |
CN113538483B (zh) | 高精度近景摄影测量标志的编解码方法和测量方法 | |
CN112669360B (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 |