条码的识别方法及装置制造方法

文档序号:6524056阅读:151来源:国知局
条码的识别方法及装置制造方法
【专利摘要】本发明提出一种条码的识别方法及装置,属于计算机【技术领域】。其中,该条码的识别方法包括:获取当前条码的当前预览帧;计算当前预览帧的能量信息;判断当前预览帧的能量信息是否大于阈值,若大于,则对当前预览帧进行识别;若小于等于,则丢弃当前预览帧,获取下一预览帧,直至获取到的下一预览帧的能量信息大于阈值,并对大于阈值的下一预览帧进行识别。上述条码的识别方法及装置,通过在进行识别处理之前将低质量图像过滤掉,从而可以大大减少耗费在识别虚焦图像等低质量图像上的时间,降低CPU的资源占用率,提高条码识别速度。
【专利说明】条码的识别方法及装置
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种条码的识别方法及装置。
【背景技术】
[0002]随着计算机应用的不断普及,条形码(简称条码)的应用得到了很大的发展,条码可以标出商品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等信息,因而在许多领域得到了广泛的应用。
[0003]条码作为真实世界和信息世界的桥梁,越来越多地被人们接受和使用,包括利用移动设备例如手机识别商品条码找到对应的商品信息等。识别速度成为判断条码识别技术好坏的一个重要指标。
[0004]目前,移动设备识别条码的方法包括以下步骤:1.条码识别开始,移动设备上的相机开启,开始接收数据;2.相机进入自动对焦模式,即不断地改变相机的焦距;3.相机接收到预览(preview)巾贞的数据,将preview巾贞的数据传递给条码识别模块进行分析;4.条码识别模块对preview帧的数据进行识别,若识别错误,则跳转到步骤3,继续等待接收新的preview数据;若识别正确,则将识别出的条码信息交给信息展现模块进行处理。
[0005]由此可见,在实际的条码检测过程中,由于相机不断地改变焦距,预览得到的数据大部分是虚焦状态下的数据,因而条码识别模块对大部分preview帧的识别结果都是识别错误,因而条码识别过程会在步骤3和步骤4中进行多次循环,这时移动设备的很多CPU时间片都浪费在对虚焦preview帧的识别上,从而导致条码识别速度较慢,CPU资源占用率较闻。

【发明内容】

[0006]本发明旨在至少解决上述技术问题之一。
[0007]为此,本发明的第一个目的在于提出一种条码的识别方法。该方法通过在进行识别处理之前将低质量图像过滤掉,从而可以大大减少耗费在识别虚焦图像等低质量图像上的时间,降低CPU的资源占用率,提高条码识别速度。
[0008]本发明的第二个目的在于提出一种条码的识别装置。
[0009]为了实现上述目的,本发明第一方面实施例的方法,包括以下步骤:
[0010]获取当前条码的当前预览帧;
[0011]计算当前预览帧的能量信息;以及
[0012]判断当前预览帧的能量信息是否大于阈值,若大于,则对当前预览帧进行识别;若小于等于,则丢弃当前预览帧,获取下一预览帧,直至获取到的下一预览帧的能量信息大于阈值,并对大于阈值的下一预览帧进行识别。
[0013]本发明实施例的方法,计算出预览帧的能量信息,判断计算出的预览帧的能量信息是否大于阈值,只有当能量信息大于对应的阈值时,才可以进行后续的识别处理;当能量信息小于等于对应的阈值时,则将预览帧视为低质量图像,不进行后续的识别处理,从而达到在识别处理之前将低质量图像过滤掉的效果,进而可以大大减少耗费在识别虚焦图像等低质量图像上的时间,降低CPU的资源占用率,提高条码识别速度。
[0014]为了实现上述目的,本发明第二方面实施例的装置,包括:自动对焦模块和信息展现模块,该装置还包括:
[0015]获取模块,与自动对焦模块相连,用于获取当前条码的当前预览帧;
[0016]计算模块,用于计算获取模块获取的当前预览帧的能量信息;以及
[0017]识别模块,用于判断计算模块计算的当前预览帧的能量信息是否大于阈值,若大于,则对当前预览帧进行识别,并将识别出的信息发送至信息展现模块;若小于等于,则丢弃当前预览帧,获取下一预览帧,直至获取到的下一预览帧的能量信息大于阈值,对大于阈值的下一预览帧进行识别,并将识别出的信息发送至信息展现模块。
[0018]本发明实施例的装置,通过计算模块计算出预览帧的能量信息,通过识别模块在进行识别处理之前判断计算出的能量信息是否大于阈值,只有当能量信息大于对应的阈值时,才可以进行后续的识别处理;当能量信息小于等于对应的阈值时,则将预览帧视为低质量图像,不进行后续的识别处理,从而达到在识别处理之前将低质量图像过滤掉的效果,进而可以大大减少耗费在识别虚焦图像等低质量图像上的时间,降低CPU的资源占用率,提高条码识别速度。
[0019]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0020]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
[0021]图1是根据本发明一个实施例的条码的识别方法的流程图;
[0022]图2是根据本发明另一个实施例的条码的识别方法的流程图;
[0023]图3是根据本发明一个实施例的平均梯度能量的计算区域的示意图;
[0024]图4是根据本发明一个实施例的条码的识别装置结构示意图。
【具体实施方式】
[0025]下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0026]在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0027]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0028]下面结合说明书附图详细说明本发明实施例的条码的识别方法及装置。
[0029]为了解决现有技术中条码的识别速度较慢和CPU资源占用率较高的问题,本发明提出一种条码的识别方法。
[0030]图1是根据本发明一个实施例的条码的识别方法的流程图。如图1所示,条码的识别方法包括以下步骤:
[0031]S101,获取当前条码的当前预览帧。
[0032]在移动设备的条码识别装置例如相机启动自动对焦模式后,可以获取当前条码的当前预览帧,其中该当前条码可以为一维码,也可以为二维码。
[0033]在本发明的一个实施例中,该移动设备可以是智能手机、平板电脑、个人数字助理等硬件设备。
[0034]S102,计算当前预览帧的能量信息。
[0035]其中,该能量信息可以反映出预览帧对应图像的清晰度,该能量信息可以为平均梯度能量,也可以为根据平均梯度能量进行计算的结果,例如可以为平均梯度能量的0.9
Y立坐坐I口寸寸。
[0036]在本发明实施例中,之所以采用平均梯度能量等能量信息是因为:一方面,能量信息可以更好地反映出图像的清晰度,对于清晰的一维码图像,由于在X轴方向上存在明显的明暗交替,其平均梯度能量会显著地大于一般平滑过渡的自然图像,也会明显大于虚焦状态的一维码图像,对于清晰的二维码图像,由于其在X轴和y轴方向上都存在明显的明暗交替,其平均梯度能量更是比自然图像和虚焦状态的二维图像要大;另一方面,能量信息计算简单,计算速度快;例如,在主频IGhz的手机上进行测试,平均梯度能量的平均计算时间为2.5ms,而进行一次条码识别的时间为120ms。
[0037]具体地,计算当前预览帧的能量信息的方法可以为:确定平均梯度能量等能量信息的计算区域;计算位于计算区域的当前预览帧的能量信息,详细实现过程可参见图2对应的实施例。
[0038]S103,判断当前预览帧的能量信息是否大于阈值,若大于,则执行步骤S104 ;若小于等于,则执行步骤S105。
[0039]在本实施例中,阈值的设置以可以区分出清晰图像和低质量图像例如虚焦图像为前提,在该前提下可以灵活设置;对于一维码和二维码可以设置两个阈值,即一维码对应第一预定值,二维码对应第二预定值,此时的第二预定值大于第一预定值。若识别装置无法区分当前条码为一维码还是二维码时,可以采用数值较低的一维码对应的第一预定值作为阈值,即可以理解为此时的第二预定值等于第一预定值。当然,上述第一预定值和第二预定值可以根据需要灵活设置。
[0040]S104,对当前预览帧进行识别。
[0041]S105,丢弃当前预览帧,获取下一预览帧,直至获取到的下一预览帧的能量信息大于阈值,并对大于阈值的下一预览帧进行识别。[0042]在本实施例中,只有当平均梯度能量等能量信息超过对应的阈值时,才可以进行后续的识别处理;若平均梯度能量等能量信息未超过对应的阈值,则视为低质量图像,不进行后续的识别处理。
[0043]本发明实施例,通过在进行识别处理之前将低质量图像过滤掉,从而可以大大减少耗费在识别虚焦图像等低质量图像上的时间,降低CPU的资源占用率,提高条码识别速度。
[0044]图2是根据本发明另一个实施例的条码的识别方法的流程图。该实施例以平均梯度能量作为能量信息来详细描述条码的识别过程,如图2所示,该识别过程包括以下步骤:
[0045]S201,启动自动对焦模式。
[0046]识别装置例如相机开启后,启动自动对焦模式;该步骤为可选步骤,即只要相机启动后进入自动对焦模式即可,不需要每次都进行设置。
[0047]S202,获取当前条码的当前预览帧。
[0048]由于进入自动对焦模式后会不断地改变相机的焦距,此时,获取的预览帧对应的数据大部分是虚焦状态下的数据。该当前条码可以为一维码,也可以为二维码,一维码的形状一般为矩形,二维码的形状一般为正方形。
[0049]S203,确定平均梯度能量的计算区域。
[0050]条码的识别界面是一个取景框,在取景框的中央会有一个数据采集框即数据采集区域,数据采集区域用来对准条码的内容。若将数据采集区域对准一维码,数据采集区域的上部和下部都为无效区域,将该无效区域合并入有效区域计算出的平均梯度能量会不准确,从而影响到条码清晰度的判断。因此,根据条码形状的特点,为了达到快速检测的目的,本发明实施例选取位于数据采集区域内部且与数据采集区域的中心重合的区域作为平均梯度能量的计算区域,其中,上述数据采集区域为矩形时,该计算区域的高度可以为数据采集区域的1/4至1/3,该计算区域的宽度可以为数据采集区域的1/2至2/3。如图3所示,可以选取位于数据采集区域中间位置的矩形区域作为平均梯度能量的计算区域,该计算区域的高度为数据采集区域的1/3,宽度为数据采集区域的2/3。需要说明的是,图3所示的平均梯度能量的计算区域仅为一个示例,在实际应用中,我们可以根据具体情况进行灵活选取。
[0051]在本实施例中,之所以采用平均梯度能量作为能量信息是因为:平均梯度能量可以更好地反映出图像的清晰度,对于清晰的一维码图像,由于在X轴方向上存在明显的明暗交替,其平均梯度能量会显著地大于一般平滑过渡的自然图像,也会明显大于虚焦状态的一维码图像,对于清晰的二维码图像,由于其在X轴和y轴方向上都存在明显的明暗交替,其平均梯度能量更是比自然图像和虚焦状态的二维图像要大;另一方面,平均梯度能量的计算简单,计算速度快;例如,在主频IGhz的手机上进行测试,平均梯度能量的平均计算时间仅为2.5ms,而进行一次条码识别的时间为120ms,因此在识别之前进行计算可以满足速度上的要求。
[0052]S204,计算位于计算区域的当前预览帧的平均梯度能量。
[0053]确定好计算区域后,就可以计算位于计算区域内的当前预览帧的平均梯度能量,假设平均梯度能量的计算区域为m行η列,V(i, j)表示第i行第j列对应的像素点的灰度值,按照从上到下和从左到右的顺序遍历计算区域内的所有像素点,即可通过以下能量信息计算公式计算出位于该计算区域的当前预览帧的平均梯度能量,该能量信息计算公式为:
【权利要求】
1.一种条码的识别方法,其特征在于,包括: 获取当前条码的当前预览帧; 计算所述当前预览帧的能量信息;以及 判断所述当前预览帧的能量信息是否大于阈值,若大于,则对所述当前预览帧进行识别;若小于等于,则丢弃所述当前预览帧,获取下一预览帧,直至获取到的下一预览帧的能量信息大于所述阈值,并对大于所述阈值的下一预览帧进行识别。
2.根据权利要求1所述的方法,其特征在于,所述能量信息包括平均梯度能量。
3.根据权利要求1或2所述的方法,其特征在于,所述计算所述当前预览帧的能量信息包括: 确定能量信息的计算区域; 计算位于所述计算区域的当前预览帧的能量信息。
4.根据权利要求3所述的方法,其特征在于,当所述能量信息为平均梯度能量时,所述确定能量信息的计算区域包括: 根据条码所在的位置确定出数据采集区域,将位于所述数据采集区域内部且与所述数据采集区域的中心重合的区域作为所述计算区域。
5.根据权利要求4所述的方法,其特征在于,所述数据采集区域为矩形时,所述计算区域的高度为所述数据采集区域的1/4至1/3,所述计算区域的宽度为所述数据采集区域的1/2 至 2/3。
6.根据权利要求3所述 的方法,其特征在于,当所述能量信息为平均梯度能量时,所述计算位于所述计算区域的当前预览帧的能量信息包括: 通过能量信息计算公式计算位于所述计算区域的当前预览帧的能量信息,所述能量信息计算公式为:
I fnz} ? I
7-τη~?.Σ (/) — ν(ζ., J + Ο)2 + (v’(/_,) — v(i +1, j)f
-1)(//-1)广。 其中,所述计算区域为m行η列,V(i, j)表示所述计算区域的第i行第j列对应的像素点的灰度值。
7.根据权利要求1所述的方法,其特征在于,当所述当前条码为一维码时,所述阈值为第一预定值;当所述当前条码为二维码时,所述阈值为第二预定值。
8.根据权利要求7所述的方法,其特征在于,所述第二预定值大于等于所述第一预定值。
9.一种条码的识别装置,包括自动对焦模块和信息展现模块,其特征在于,还包括: 获取模块,与所述自动对焦模块相连,用于获取当前条码的当前预览帧; 计算模块,用于计算所述获取模块获取的所述当前预览帧的能量信息;以及 识别模块,用于判断所述计算模块计算的所述当前预览帧的能量信息是否大于阈值,若大于,则对所述当前预览帧进行识别,并将识别出的信息发送至所述信息展现模块;若小于等于,则丢弃所述当前预览帧,获取下一预览帧,直至获取到的下一预览帧的能量信息大于所述阈值,对大于所述阈值的下一预览帧进行识别,并将识别出的信息发送至所述信息展现模块。
10.根据权利要求9所述的装置,其特征在于,所述能量信息包括平均梯度能量。
11.根据权利要求9所述的装置,其特征在于,所述识别模块,具体用于: 确定能量信息的计算区域; 计算位于所述计算区域的当前预览帧的能量信息。
12.根据权利要求11所述的装置,其特征在于,当所述能量信息为平均梯度能量时,所述识别模块,具体用于: 根据条码所在的位置确定出数据采集区域,将位于所述数据采集区域内部且与所述数据采集区域的中心重合的区域作为所述计算区域。
13.根据权利要求12所述的装置,其特征在于,所述数据采集区域为矩形时,所述计算区域的高度为所述数据采集区域的1/4至1/3,所述计算区域的宽度为所述数据采集区域的 1/2 至 2/3。
14.根据权利要求11所述的装置,其特征在于,当所述能量信息为平均梯度能量时,所述识别模块,具体用于: 通过能量信息计算公式计算位于所述计算区域的当前预览帧的能量信息,所述能量信息计算公式为:

15.根据权利要求9所述的装置,其特征在于,当所述当前条码为一维码时,所述阈值为第一预定值;当所述当前条码为二维码时,所述阈值为第二预定值。
16.根据权利要求15所述的装置,其特征在于,所述第二预定值大于等于所述第一预定值。
17.根据权利要求9-16任一权利要求所述的装置,其特征在于,所述装置位于移动设备上。
【文档编号】G06K7/10GK103632124SQ201310690501
【公开日】2014年3月12日 申请日期:2013年12月16日 优先权日:2013年12月16日
【发明者】龚龙 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1