专利名称:对基于成像器的光学代码读取器所读取的光学代码进行解码的系统与方法
技术领域:
本发明涉及光学代码读取器。特别是,本发明涉及对基于成像器的光学代码读取器所读取的光学代码进行解码的系统和方法。
背景技术:
光学代码是由一些具有不同反光或发光特性的图像区域构成的图形,它们通常根据先验规则组合起来。术语“条形码”有时被用于描述某些类别的光学代码。选择光学代码的光学特性和图形,以使它们在外表上与使用它们的背景环境区分开。用于从光学代码中识别出或提取出数据的设备有时候被称为“光学代码读取器”,条形码扫描器就是其中的一种。
光学代码读取器以固定或便携的安装方式用于各种环境,比如在商店里用于收银服务,在生产场所用于作业流程和存量控制,以及在运输车辆中用于跟踪包裹处理。例如,通过从许多条形码的印刷列表中读取目标条形码,光学代码便可以用作一种迅速且通用的数据输入手段。在一些应用中,光学代码读取器连接到便携式数据处理设备或数据收集和传输设备。通常,光学代码读取器包括手持传感器,它手动地瞄准目标代码。
常规光学代码的示例是一维条形码符号。条形码是一种宽度可变的矩形条构成的图形,这些矩形条之间的间隔空间宽度是固定的或是可变的。这些条和空间具有不同的反光特性。一维条形码的一个示例是UPC/EAN代码,被用于识别例如产品清单。二维或层叠式条形码的示例是PDF417条形码。Shellhanmmer等人的美国专利5,635,697中描述了PDF417条形码并揭示了对其进行解码的技术,该专利已转让给Symbol Technologies公司并且全部引用在此作为参考。另一种常规的光学代码被称为“MaxiCode”。它包括中心取景器图形或公牛眼中心以及围绕着该中心取景器的六边形栅格。应该注意到,通常,本专利申请中所揭示的本发明的各个方面可以应用于各种光学代码读取器,而不用考虑它们适合读取的特定类型的光学代码。本发明也可以应用于一些相关的图像识别或分析。
光学代码读取器可以是基于激光器的或基于成像器的。在常规基于成像器的光学代码读取器中,设置了一种具有图像传感器的成像引擎,该图像传感器具有光电池或光传感器的两维阵列,比如区域电荷耦合器件(CCD),这与该引擎视场中的像元或像素相对应。成像引擎还包括透镜组件,用于聚焦入射到图像传感器上的光线;以及相关电路,耦合到图像传感器,用于输出与视场的两维像素信息阵列相对应的电子信号阵列。这些电子信号被数字化并且作为图像数据被提供给处理器以便于处理,其中包括处理该图像数据以便对光学代码进行解码。
按照惯例,操作人员将光学代码读取器瞄准目标代码并扣动板机,这会发信号给光学代码读取器使其处理所获得的图像,通常在板机扣动之后获得下一个图像。图像获取通常是根据连续的帧序列而执行的。在一个使用常规的30帧/秒视频流的系统中,大约每33毫秒出现一个帧。该处理可以包括解码操作,此处解码时间延长到下一个帧。
对于光学代码扫描器而言,高度优先的是使读取时间最小化,例如从板机扣动到解码完成之间的时间间隔。在可以买到的基于成像器的光学代码读取器中,与基于激光器的光学代码读取器相比,其读取时间相对较长。减小基于成像器的光学代码读取器中的读取时间以便实现可以与基于激光器的光学代码读取器相比的速度,这将是很有利的。
读取时间包括下列各种时间的总和完成当前这个帧的剩余部分所需的时间(例如在使用30帧/秒的情况下,该剩余部分在0-33毫秒之间);完成下一个帧所需的时间(例如33毫秒);以及执行解码处理所需的时间(例如10毫秒),在所提供的示例中总共至少43毫秒。此外,在一些光学代码读取器系统中,读取时间可以进一步包括附加的帧,比如用于处理检测到的特性,调节与成像或信号处理相关的参数设置,以及用调节好的参数设置来获取图像数据或处理图像数据。
在一些系统中,通过在部分地获取图像数据时就开始处理图像数据,比如当获得了与视场的一部分相对应的图像数据时(例如,始于视场的上部分),这样来尝试减小读取时间。然而,如果目标光学代码所处的那部分视场没有被包括到与上述部分获得相对应的已处理的那部分中,则读取时间并不显著减小。
相应地,本发明的一个方面是提供一种系统和方法,其中对于基于成像器的光学代码读取器的图像获取和光学代码解码而言,读取时间显著减小。
本发明的另一个方面是,对环境光进行采用并调节参数设置,这些参数设置用于对基于成像器的光学代码读取器的图像传感器所产生的信号进行信号处理。
本发明的另一个方面是,减小调节参数设置所需的时间,这些参数设置用于对基于成像器的光学代码读取器的图像传感器所产生的信号进行信号处理。
本发明的另一个方面是,提供初始化参数设置,这些参数设置用于对基于成像器的光学代码读取器的图像传感器所产生的信号进行信号处理,且这些参数设置最适于处理与板机启动前的一个帧内所执行的图像获取相对应的那些信号。
发明内容
根据本发明,在系统的一个实施例中,光学代码读取器系统具有成像模块,用于给至少一个目标成像,其中包括获取并处理与一连串的至少一个帧相对应的图像数据;以及至少一个存储介质,用于存储与上述至少一个帧中各个获取的帧相对应的图像数据,其中至少包括与当前的帧(帧(N))相对应的图像数据以及与前一个帧(帧(N-1))相对应的图像数据。光学代码读取器系统还包括处理器组件,该处理器组件包括至少一个处理器,用于在帧(N)期间接收启动信号,该启动信号指示读取操作的开始。此外,该处理器组件包括帧抓取器模块,该模块可以在上述至少一个处理器上执行,用于从上述至少一个存储介质中检索与帧(N-1)相对应的至少一部分图像数据;以及解码器模块,该模块可以在上述至少一个处理器上执行,用于对检索到的图像数据进行解码操作。
在本发明的另一个实施例中,光学代码读取器设备具有成像模块,用于给至少一个目标成像,其中包括获取并处理与一连串的至少一个帧相对应的图像数据;以及至少一个存储介质,用于存储与上述至少一个帧中各个获取的帧相对应的图像数据,其中至少包括与当前的帧(帧(N))相对应的图像数据以及与前一个帧(帧(N-1))相对应的图像数据。光学代码读取器还包括处理器组件,该处理器组件包括至少一个处理器,用于在帧(N)期间接收启动信号,该启动信号指示读取操作的开始。此外,该处理器组件还包括帧抓取器模块,该模块可以在上述至少一个处理器上执行,用于从上述至少一个存储介质中检索与帧(N)相对应的至少一部分图像数据;以及解码器模块,该模块可以在上述至少一个处理器上执行,用于对检索到的图像数据进行解码操作。
在本发明的另一个实施例中,提供了一种用于读取光学代码的方法。该方法包括如下步骤给至少一个目标成像,其中包括获取并处理与一连串的至少一个帧相对应的图像数据;存储与上述至少一个帧中各个获取的帧相对应的图像数据,其中至少包括与当前的帧(帧(N))相对应的图像数据以及与前一个帧(帧(N-1))相对应的图像数据;在帧(N)期间接收启动信号,该启动信号指示读取操作的开始;检索与帧(N-1)相对应的至少一部分图像数据;对检索到的图像数据进行解码操作。
在本发明的另一个实施例中,光学代码读取设备具有成像模块,用于给至少一个目标成像,其中包括获取并处理与一连串的至少一个帧相对应的图像数据,获取和处理这两种操作中的至少一种是根据至少一个可调节参数来执行的;以及环境光传感器组件,用于检测环境光的至少一种属性并产生与该检测相对应的环境光信号。该光学代码读取设备还包括处理器组件,该处理器组件具有至少一个处理器,其中该处理器组件包括至少一个可以在上述至少一个处理器上执行的模块,该模块用于在帧(N)期间接收启动信号,该启动信号指示读取操作的开始,并且该模块响应于启动信号的接收进而访问与上述一连串的至少一个帧中的某一个帧相对应的至少一部分图像数据;以及参数调节器模块,该模块可在上述至少一个处理器上执行,用于响应于启动信号的接收进而在帧(N+2)的开始之前根据上述至少一个可调节参数的分析设置来分析该环境光信号。
在本发明的又一个实施例中,提供了一种用于给光学代码成像的方法。该方法包括如下步骤给至少一个目标成像,其中包括获取并处理与一连串的至少一个帧相对应的图像数据,获取和处理这两种操作中的至少一种是根据至少一个可调节参数来执行的;检测环境光的至少一种属性;产生与该检测相对应的环境光信号;在帧(N)期间接收启动信号,该启动信号指示读取操作的开始。该方法还包括如下步骤响应于启动信号的接收,访问与上述一连串的至少一个帧中的某一个帧相对应的至少一部分图像数据并且对访问到的图像数据进行解码;响应于启动信号的接收,分析上述环境光信号;以及在帧(N+2)的开始之前,根据上述分析步骤的结果来调节上述至少一个可调节参数的设置。
下文将参照附图描述本发明的各个实施例,其中图1是根据本发明的光学代码读取器系统的示意图;图2是图1所示光学代码读取器系统各组件的方框图;图3是图1所示光学代码读取器系统的视频处理电路各元件的方框图;图4是图1所示光学代码读取器系统的处理器组件的各元件的方框图;图5是由图4所示处理器组件所执行的各步骤的流程图;以及图6是一定时图,示出了图1所示光学代码读取器系统的操作过程。
具体实施例方式
本发明提供了一种基于成像器的光学代码读取器,它使用默认参数设置,这些设置用于成像器驱动电路和/或视频处理电路,比如用于光学代码读取器的曝光和/或增益处理,是针对移动状态中的成像而进行优化的。在帧(N)期间启动器给出启动时,开始读取操作,其中包括对前一个帧即帧(N-1)中所获取的图像数据进行解码操作。因为帧(N-1)是在板机扣动之前获得的,所以用户很可能已经瞄准了光学代码,但是光学代码读取器和/或目标代码很可能仍然在移动。因此,用默认成像器驱动电路参数设置来获取可解码的目标光学代码图像并且首次解码尝试便成功的几率很高。
在帧(N)期间执行解码操作的同时,分析由环境光传感器输出的信号,并且根据该分析来调节比如用于视频处理电路或图像驱动电路的参数设置,使得在下一个帧即帧(N+1)中,用调节后的参数设置来获取和/或处理(例如数字化)图像。如果首次解码尝试并不成功,则在帧(N+1)期间对帧(N)期间所获得的数据执行另一次解码尝试。在最糟糕的情况下,如果前一次解码尝试并不成功,则在下一个帧即帧(N+2)的开始处,用帧(N+1)期间调节过的参数设置对所获取的图像执行解码操作。
在常规的基于成像器的光学代码读取器中,图像是在帧(N+1)期间获得的。在帧(N+2)中,对帧(N+1)期间所获得的数据进行首次解码尝试。如果解码尝试不成功,则分析帧(N+1)期间所获得的图像并且相应地调节成像器驱动或视频处理电路参数设置。在帧(N+3)中,用调节后的设置来获取图像。在帧(N+4)中,对帧(N+3)期间用调节后的设置获取的图像,执行第二次解码操作。
参照图1,示出了典型的光学代码读取器系统2,它包括基于成像器的光学代码读取器10,该读取器10具有光传感器阵列孔径12和环境光传感器孔径14。光传感器阵列孔径12和环境光传感器孔径14可以被包括在一个孔径中或者分别在单独的孔径中。光学代码读取器系统2配有启动器16,比如板机、开关(硬件或软件),该启动器16可以由用户、传感器、主机终端等来启动,以便在其启动时产生开始读取操作的启动信号。该启动信号可以由主机终端产生并由光学代码读取器10接收,比如可采用命令的形式。光学代码读取器10可以被配置成手持式、便携式和/或静止的设备。光学代码读取器还可以被嵌入另一种设备中,比如PDA或手机。
通过通信接口22,光学代码读取器可以与至少一个其它设备20(比如主机终端或网络)进行有线或无线通信。例如,光学代码读取器10可以实现在包括一个或多个部件的系统内,这些部件可以是键盘、显示器、打印机、数据存储器、应用程序软件和数据库。该系统还可以与另一个系统或网络进行通信。通信接口22可以是有线的或无线的,并且包括例如电缆、电话交换网络,通过调制解调器或ISDN接口、红外数据接口(IRDA)和/或多触点滑轨。由通信接口22传输的数据可以包括压缩数据。
参照图2,示出了光学代码读取器系统2的各典型部件的方框图,其中包括处理器组件202、环境光传感器组件204、含成像器光传感器阵列206和视频处理电路208的成像器模块201、照明组件210、包括至少一个存储介质设备214的存储介质组件212、启动器16以及设备20。环境光传感器组件204包括一个或多个光传感器,这些光传感器通过检测穿过环境光传感器孔径14的光线而对环境光条件进行采样。可以任选地设置包括一个或多个透镜的光学系统(未示出),用于将穿过环境光传感器孔径14的环境光聚焦到环境光光传感器组件204上。
环境光传感器组件204能够检测环境光的至少一种属性(比如光强范围),还能够产生至少一个电信号(图示的环境光信号203)该电信号对应于该检测并且指示环境光属性(例如强度)。环境光信号203可以作模拟信号被提供给处理器组件202,比如通过模数(A/D)端口进行A/D转换。环境光信号203最好包括比图像信号205或图像数据207少得多的信息,相应地与图像信号205或图像数据207的处理相比,环境光信号203的处理相对简单且迅速。
环境光传感器组件204可以包括在处理器组件202外部对环境光信号203进行处理的电路。例如,可以设置包括比较器的模拟电路,以便将环境光信号203与阈值进行比较,比较的结果被提供给处理器组件202。在另一个示例中,环境光传感器组件204可以包括A/D电路,以便在将环境光信号203提供给处理器组件202之前先将环境光信号203从模拟信号转换成数字信号。
在2004年3月18日提交的题为“SYSTEM AND METHOD FOR SENSINGAMBIENT LIGHT IN AN OPTICAL CODE READER”美国专利申请10/803,669中,描述了用于在光学代码读取器中检测环境光的系统和方法,该专利申请已转让给Symbol Technologies公司,其全部内容引用在此作为参考。
成像器模块201不断地获取与成像器模块201的视场(FOV)相对应的图像,并且将相应的图像数据作为一连串的帧提供给处理器组件202。成像器光传感器阵列206包括光传感器阵列,用于检测在光学代码读取器10的视场(FOV)内的物体所反射的光线,该光线穿过光传感器阵列孔径14。图像光传感器阵列206产生用于表示图像的、对应于该检测的电信号阵列,即图示的图像信号205,这些图像信号205被提供给视频处理电路208。可以提供光学系统(未示出),用于将穿过光传感器阵列孔径14的光线聚焦到光传感器阵列206。光传感器阵列206可以包括CCD或其它相似的设备。
视频处理电路208包括用于影响图像获取并处理(例如数字化)图像信号205以便产生图像数据207的电路。视频处理电路208不断地向处理器组件202输出一连串的一个或多个图像数据帧207,经处理器组件202将接收到的一连串的图像数据帧207提供给存储介质组件212以便进行存储。另外,视频处理电路208将帧同步信号209输出给处理器组件202,该帧同步信号209被用于使帧的生成、传输和/或处理同步化。在所示的示例中,视频处理电路208通过视频端口与处理器组件202相接。
照明组件210可以包括一种或多种光源,比如发光二极管(LED)、氙管或激光源,以便在用光传感器阵列206进行检测期间提供照明。照明组件210可以根据至少一个可调节的参数来运行,以便在一定范围的持续时间内产生一定范围的照明强度。较佳地,可以根据可调的照明强度参数来选择照明强度,并且可以根据可调的照明持续时间参数来选择照明持续时间。在所示的示例中,照明组件210通过通用I/O端口(GPIO)与处理器组件202相接。
环境光传感器组件204的各传感器可以被包括到光传感器阵列206中,此处光传感器阵列206包括上述环境光传感器阵列204中的一个或多个传感器。例如,环境光传感器组件204和光阵列传感器206可以设置在同一电路板上。此外,当环境光传感器组件204和/或光阵列传感器206两者中的至少一种所含的各光传感器启用时,可以禁用204和206这两者中另外一种所含的各光传感器。
较佳地,环境光传感器组件204中光传感器的数目显著地小于光传感器阵列206的阵列中所包含的光传感器的数目。当扫描操作没有正在执行时,光传感器阵列206中没有被包括到环境光传感器组件204中的那些光传感器可能是“闭合的”(即禁用的)。例如,通过以物理的手段阻断光线使其不落在传感器上,或者通过以电学的手段阻止被阻断的传感器产生电信号、阻止电信号的转移、或电信号的处理(比如数字化、图像处理和/或解码),便可以使传感器处于“闭合”。
环境光传感器组件204可以专用于检测环境光,并且可以在正执行扫描操作时处于“闭合”,或者可以用于环境光检测和扫描操作或其组合(此处,环境光传感器组件204的一部分专用于环境光检测)。环境光传感器组件204可以分布在光传感器阵列206的各个传感器之中,或者可以定位成一组或其组合。如上所述,可以只设置一个包括环境光传感器孔径12和光传感器阵列孔径14的孔径,以便使光线透射到环境光传感器组件204和光传感器阵列206。环境光传感器204的FOV可能与光传感器阵列206的FOV一致或覆盖光传感器阵列206的FOV,也可能不这样。
参照图3,视频处理电路208至少包括增益电路304和/或曝光电路306,以便控制图像获取期间的曝光以及图像信号207的增益处理。增益和曝光处理分别根据各自的参数设置来操作,这些参数设置是可调的,下文会给出描述。
增益电路404包括像增益放大器这样的电路,通常用于A/D转换中的增益处理。增益电路404根据可调增益参数来处理至少一部分图像信号205,以便处理其增益。图像信号205可以由附加电路(未示出)来处理,比如用于缓冲、滤波和/或数字化多个第二电子信号,从而使图像信号205准备好由处理器组件202来处理。
曝光电路406可以通过控制快门来控制曝光时间(即积分时间),这可以包括控制电子快门或机械快门。曝光电路406根据可调的曝光参数,控制快门(电子的或机械的)打开一定的时间量。曝光电路406可以产生控制信号,用于控制快门打开的时间量。对于机械快门而言,该控制信号可以被转换成模拟信号,该模拟信号的特征(比如电压)对应于该控制信号的值。可以控制快门,以使该快门打开一定的时间量,该时间量对应于模拟控制信号的特征大小。
回到图2,储存介质组件212包括至少一种储存设备214,比如RAM、闪存、磁鼓、CD-ROM等。对于处理器组件202而言,上述至少一种储存设备214可以是内部的、外部的或两种的组合。储存介质组件212可以被处理器组件202访问到,比如通过主要的总线来访问。
处理器组件202可以包括一个或多个模拟部件和/或一个或多个数字处理器,比如微处理器、现场可编程门阵列(FPGA)等。此外,设备20和处理器组件202可以共享资源,以便执行它们各自的处理功能。处理器组件202的一个或多个处理器可能被集成到光学代码读取器10的内部和/或远离光学代码读取器10的一个或多个设备20之中;可能彼此之间进行数据通信(有线的或无线的);和/或可能彼此独立地运行。
启动器16在激活启动器16时产生启动信号215。如上所述,启动信号215可以由硬件(比如光学代码读取器10或设备20上的开关或板机)来产生;或者由软件(比如通过像处理器组件202或设备20或主机终端等处理器所产生的命令)来产生。
参照图4,处理器组件202执行若干软件模块,其中包括参数调节器模块404、解码器模块406以及帧抓取器模块408。每一个模块包括一系列的可编程指令,这些指令可以在处理器组件202上获得执行。这一系列可编程指令可以储存在计算机可读介质上,比如RAM、硬盘、CD、智能卡、3.5寸的磁盘等,或者通过传播信号来传输,这些传播信号被处理器组件202执行以便执行本文所揭示的功能并实现本发明的技术效果。处理器组件202并不限于所描述的这些软件模块。各软件模块的功能可以被组合成一个模块,或者分布在不同的模块组合中。
参数调节器模块404分析环境光信号203,并且根据该分析来调节视频处理电路208或图像驱动电路的参数设置。与对图像数据207进行的处理相比,处理并分析环境光信号203包括少得多的处理,相应地就包括少得多的时间。在读取操作完成时且新的读取操作开始之前,参数调节器模块404也将这些参数设置设为默认值。解码器模块406执行解码操作,其中包括接收数据、对该数据执行解码算法并在解码操作成功时输出解码后的信息。帧抓取器模块408从存储介质组件212中检索与合适的帧或其部分相对应的数据,使得该数据可以被进一步处理,比如被解码。图像模块201提供作为一系列帧的连续图像数据流,它们可以被存储介质储存并且可以被帧抓取器模块408访问。
参照图5,提供了典型的流程图500,它示出了处理器组件202所执行的各步骤。在步骤502处,参数调节器模块404将用于增益和或曝光电路的参数设置设为默认值。步骤502是在开始读取操作之前执行的,这包括在前一个读取操作完成时。默认值是针对处理移动状态下所获得的图像信号而优化的。这种优化是想要的,因为首次待处理的图像数据很可能是在移动状态下获得的。如下文所述,在激活启动器16以便开始读取操作时,处理器组件202在当前的帧即帧(N)中接收并处理启动信号215。首次处理的图像数据对应于激活启动器之前的那个帧即帧(N-1)。
因为帧(N-1)是在激活启动器16之前,所以用户很可能正在完成光学代码读取器10朝着目标光学代码瞄准的过程,因此很可能光学代码读取器10和目标光学代码中的至少一种处于移动之中。为了抵消移动使图像数据的模糊达到最小,用于增益电路304和/或曝光电路306的参数设置被设为为使移动效应最小化而优化的设置。
相应地,增益电路304的增益参数的默认值最好被设为最大值(MAX),并且曝光电路306的曝光参数最好被设为2毫秒。在图2所示的典型实施例中,处理器组件202通过I2C总线将参数设置输出给视频处理电路208。
在步骤504中,处理器组件202等待以便接收启动信号215,该启动信号指示读取操作的开始。当接收到启动信号215时,执行步骤S506,此处帧抓取器模块408从存储介质组件212中抓取与帧(N-1)相对应的至少一部分图像数据。在所提供的示例中,步骤506处所抓取的图像数据是与帧(N-1)相对应的一组完整的图像数据。然而,可以预料,步骤506处所抓取的图像数据可能是与帧(N-1)相对应的图像数据的一部分。
在步骤508中,所抓取的图像数据接着被提供给解码器模块406以执行解码操作,其中包括解码与被成像的光学代码相对应的那部分图像数据并产生解码后的信息。在步骤510中,判断解码操作是否成功(例如,所抓取的图像数据被成功解码并且可以得到解码后的信息)。当解码操作成功时,执行步骤512,此时解码器模块406输出解码后的信息,比如可用于提供(例如,显示)给用户和/或提供给主机处理器以便进一步处理,比如还可用于处理交易、更新数据库(例如,存货清单)等。接下来,执行步骤502,以便设置默认的参数设置并且等待下一次读取操作的开始。
由此,如果步骤508处执行的解码操作是成功的,则在激活启动器16之后就很快地输出解码后的信息。根据本示例,解码后的信息大约是在激活启动器16之后10毫秒时输出的。帧持续时间是33毫秒。相应地,根据在帧(N)期间启动器激活发生的那一刻,解码后的信息是在与帧(N+1)相对应的数据获取完成之前输出的,并且最好在与帧(N+1)相对应的数据获取开始之前就输出解码后的信息。
与步骤506、508和510中的至少一个步骤的执行过程大致同步的是,步骤514和516中的至少一个步骤按下述来执行(例如,通过并行处理)。在步骤514中,参数调节器模块404处理数字化的环境光信号203(或外部处理的结果,比如像上文所述用比较器与阈值进行比较的结果)。环境光分析器模块404确定究竟需要对照明强度、照明持续时间、增益和/或曝光参数作什么样的调节才能使成像过程在环境光传感器组件204所检测到的环境光条件下达到最佳化。
在步骤516中,通过产生参数调节信号217并将参数调节信号217提供给视频处理电路208,参数调节器模块404便调节了照明强度、照明持续时间、增益和/或曝光参数的设置。相应地,调节照明组件210、增益模块304和/或曝光模块306的参数,以便用于下一次图像数据的获取(这最好发生在帧(N+1)期间)和/或数据处理(例如,立即对当前的图像数据处理有效,或对下一次图像数据获取所对应的图像数据处理有效)。
当完成步骤514和516时,根据步骤510的确定结果,执行步骤512或步骤518。如果在步骤510中确定解码操作不成功,则执行步骤518。在步骤518中,从存储介质组件212中抓取与帧(N)相对应的至少一部分图像数据。在所提供的示例中,步骤518中所抓取的图像数据是与帧(N)相对应的一组完整的图像数据。然而,可以预料,步骤518中所抓取的图像数据可以是与帧(N)相对应的一部分图像数据。
通过使用增益和/或曝光的默认参数设置,获取在帧(N)中所抓取的图像数据。帧(N)的一部分(在激活启动器16之前的那部分)很可能是在移动的状态中获得的。尽管帧(N-1)和帧(N)的获取过程之间的时间量非常短,但是获取帧(N)所对应的数据时的条件有可能不同于获取帧(N-1)所对应的数据时的条件(例如,用户瞄准了不同的目标光学代码)。在步骤520中,对所抓取的图像数据执行解码操作。
在步骤522中,判断步骤520中所执行的解码操作是否成功。当确定解码操作成功时,执行步骤512,在步骤512中,解码器模块406输出解码后的信息。接下来,执行步骤502,以便设置默认参数设置并等待下一次读取操作的开始。
因此,如果步骤520中所执行的解码操作不成功,则在帧(N+1)开始之后很快就输出解码后的信息。根据本示例,在帧(N+1)开始之后大约10毫秒时就输出解码后的信息。
如果确定解码操作不成功,则执行步骤524和526。在步骤524中,从存储介质组件212中抓取与帧(N+1)相对应的至少一部分图像数据。在所提供的示例中,步骤524中所抓取的图像数据是与帧(N+1)相对应的一组完整的图像数据。然而,可以预料,步骤524中所抓取的图像数据可以是与帧(N+1)相对应的图像数据的一部分。通过使用调节后的照明强度、照明持续时间、增益和/或曝光的参数设置,获得了与帧(N+1)相对应的图像数据。在步骤526中,对所抓取的图像数据执行解码操作。
在步骤528中,确定步骤526中所执行的解码操作是否成功。当确定解码操作成功时,执行步骤512,在步骤512中,解码器模块406输出解码后的信息。接下来,执行步骤502,以便设置默认参数设置并等待下一次读取操作的开始。
因此,如果步骤526中所执行的解码操作成功,则在帧(N+2)开始之后就很快地输出解码后的信息。根据本示例,在帧(N+2)开始之后大约10毫秒时输出解码后的信息。
如果确定解码操作不成功,则根据设计选择来执行相关步骤。在所示的示例中,中断失败的读取尝试并将控制传递到步骤502,以便设置默认的参数设置并等待下一次读取操作的开始。没有解码后的数据被输出。可以预料,可以执行进一步的检测、调节和/或处理,并且在中断读取操作之前进一步尝试解码。还可以预料,当读取失败时,可以向用户提供一则消息或指示,用于向用户传达读取操作失败。
可以预料,在步骤506、518和/或524中,所抓取的图像数据包括在各步骤中处理的特定帧所对应的那部分图像数据,并且可以执行若干次反复,以便抓取与特定的帧相对应的图像数据的各个连续部分并且尝试对所抓取的图像数据进行解码操作直到符合某一条件(比如解码成功),对特定的帧执行充分的解码尝试,或出现超时条件。上述连续部分可以与图像数据的可用性相一致,或者可以是与设计选择相一致的各个选定的图像数据部分。
参照图6,针对典型读取操作的若干种情况,示出了时间线600。示出了一系列的帧,每一个帧的持续时间大约是33毫秒。在帧(N)中激活启动器16,这可能离帧(N)的开始处即点A有0-33毫秒。在所示的示例中,在点B处接收并处理启动信号215,这发生在点A之后大约5毫秒。较佳地,一旦收到启动信号215,就抓取图像数据并且执行解码操作,比如像结合图5的步骤506、508所描述的那样。如果期望的话,可以在接收到启动信号215之后选定的时刻用不同的数据部分来执行或重复步骤506、508。在当前的示例中,抓取数据和解码操作占据了大约10毫秒。相应地,步骤508中所成功执行的解码操作(这是最佳情形)完成于点C,这在点B的读取操作开始之后大约10毫秒时发生。
在下一种情形中,抓取图像数据并执行解码操作,比如像结合步骤518和520所描述的那样,这始于帧(N+1)的开始(图中即点D处)并完成于点E,点E是在D后的10毫秒。如果期望的话,可以在点D之前或之后选定的时刻,用不同的数据部分来执行或重复步骤518、520。
在最糟的情况下,抓取图像数据或执行解码操作,比如像结合步骤524和526所描述的那样,这始于帧(N+2)的开始处(图示点F处)并结束于步骤G处,G在F后面10毫秒。如果期望的话,可以在点F之前或之后选定的时刻,用不同的数据部分来执行或重复步骤524、526。
相应地,最佳的情形是在点C处成功地完成,这在读取操作开始之后的10毫秒。其次是在点E处成功地完成,这在读取操作开始之后38毫秒。最差的情形是在点G处成功地完成,这发生在读取操作开始之后71毫秒。可以预料,当更快地进行解码操作时便可以改善上述典型的情形,从而处理与特定的帧相对应的数据部分、在点D之前就执行步骤518、520、和/或在点F之前执行步骤524、526。
在常规光学代码读取设备所执行的读取操作的最佳情况下,解码大约在点G处完成,点G在开始读取操作之后71毫秒,而这则是本发明的最差情况。在常规的光学代码读取器设备中,在激活启动器之后,解码是从帧(N+2)的开端开始的,这之前,先抓取在接收到启动信号215之后下一个完整的帧(N+1)内所获得的数据。分析帧(N+1)内所获得的数据,并且相应地对帧(N+2)期间的曝光和增益作出调节。直到帧(N+3),才用调节后的参数设置来获取和/或处理数据,并且直到帧(N+4)才对该数据进行解码。
可以预料,与常规的光学代码读取器系统相比,光学代码读取器系统2通过上述技术的任意组合减小了读取时间,这些技术包括设置针对移动状态中的图像获取而优化的默认设置;当激活启动器以便开始读取操作时,抓取与前一个帧相对应的数据并对所抓取的数据进行解码;在激活启动器之后,立即检测环境光并处理该检测结果以便调节参数设置,这最好与启动器的激活处于同一个帧中以便使下一个帧中所获取的数据是根据调节后的参数来获取和/或处理的;抓取激活启动器的那个帧所对应的数据,并对所抓取的数据进行解码;抓取用调节后的参数获取和/或处理图像的那个帧所对应的数据,并且对所抓取的数据进行解码。
还可以预料,如果在帧(N)的末端或靠近末端激活启动器,则可以在处理(比如解码)与帧(N-1)所对应的数据的同时或者紧随其后,抓取帧(N)所对应的数据。环境光信号的处理和参数设置的调节将在最早的机会执行,以便用调节后的参数来进行最早可行的图像获取和/或处理,即使调节后的参数只用于图像获取和/或处理的一部分。
本发明所描述的实施例旨在给出解释说明而并非具有限制性,并且不代表本发明的每一个实施例。在不背离权利要求书及其等价方案所限定的本发明的精神和范围的情况下,各种修改和变化都是可能的。
权利要求
1.一种光学代码读取器系统,包括成像模块,用于给至少一个目标成像,这其中包括获取并处理与一连串的至少一个帧相对应的图像数据;至少一个存储介质,用于存储与所述至少一个帧中各个获得的帧相对应的图像数据,这其中至少包括与当前的帧(帧(N))相对应的图像数据以及与前一个帧(帧(N-1))相对应的图像数据;以及处理器组件,它包括至少一个处理器,用于在帧(N)期间接收用来指示读取操作开始的启动信号,所述处理器组件包括帧抓取器模块,可在所述至少一个处理器上执行,用于从所述至少一个存储介质中检索与帧(N-1)相对应的图像数据的至少一部分;和解码器模块,可在所述至少一个处理器上执行,用于对检索到的图像数据执行解码操作。
2.如权利要求1所述的光学代码读取器,还包括环境光传感器组件,用于检测环境光的至少一种属性并产生与所述检测相对应的环境光信号;其中所述处理器组件还包括参数调节器模块,该模块可以在所述至少一个处理器上执行,用于分析所述环境光信号并根据所述分析来调节所述成像模块的至少一种参数的设置,该设置被用于获取和处理所述图像数据这两种操作中的至少一种。
3.如权利要求2所述的光学代码读取器,其特征在于,所述参数调节器模块执行分析和调节这两种操作中的至少一种,而与之大致同步的是由所述帧抓取器模块进行的检索以及由所述解码模块执行的解码操作这两种操作中的至少一种。
4.如权利要求2所述的光学代码读取器,其特征在于,所述成像器模块包括图像传感器阵列,用于检测从目标图像处反射的入射光并产生与所述检测相对应的多个图像信号;以及增益电路、曝光电路和照明组件中的至少一种,所述增益电路根据用来确定增益的增益参数来处理多个图像信号的增益,所述曝光电路根据用来确定曝光时间的曝光参数来控制图像传感器阵列的曝光时间,而所述照明组件根据用来确定照明强度的照明强度参数和用来确定照明持续时间的照明持续时间参数中的至少一种参数来提供检测期间的照明;以及所述至少一种参数包括增益参数、曝光参数、照明强度参数和照明持续时间参数中的至少一种参数。
5.如权利要求1所述的光学代码读取器,其特征在于,从所述至少一个存储介质中检索与帧(N-1)相对应的图像数据的至少一部分以及对检索到的图像数据执行解码操作这两种操作中的至少一种是在帧(N+1)开始之前执行的。
6.如权利要求1所述的光学代码读取器,其特征在于,所述处理器组件进一步执行至少一种如下的反复操作确定针对先前检索到的图像数据而执行的解码操作是否成功;以及如果不成功,则所述帧抓取器模块从所述至少一个存储介质中检索与先前检索到的图像数据不同的图像数据,并且所述解码器模块对检索到的不同的图像数据执行解码操作。
7.如权利要求2所述的光学代码读取器,其特征在于,分析所述环境光信号和调节所述至少一个参数这两种操作中的至少一种是在帧(N+1)开始之前执行的。
8.如权利要求1所述的光学代码读取器,其特征在于,成功的解码操作是在帧(N+2)的开始之前执行的。
9.如权利要求2所述的光学代码读取器,其特征在于,在帧(N+4)开始之前,针对根据调节后的至少一个参数来获取并处理的至少一个图像数据,执行成功的解码操作。
10.如权利要求2所述的光学代码读取器,其特征在于,在开始读取操作之前,用于所述至少一个参数的设置被初始化成默认设置,这些默认设置是针对在移动状态下获取和处理图像数据这两种操作中的至少一种而优化的。
11.一种光学代码读取器设备,包括成像模块,用于给至少一个目标成像,这其中包括获取并处理与一连串的至少一个帧相对应的图像数据;至少一个存储介质,用于存储与所述至少一个帧中各个获得的帧相对应的图像数据,这其中至少包括与当前的帧(帧(N))相对应的图像数据以及与前一个帧(帧(N-1))相对应的图像数据;以及处理器组件,它包括至少一个处理器,用于在帧(N)期间接收用来指示读取操作开始的启动信号,所述处理器组件包括帧抓取器模块,可在所述至少一个处理器上执行,用于从所述至少一个存储介质中检索与帧(N)相对应的图像数据的至少一部分;和解码器模块,可在所述至少一个处理器上执行,用于对检索到的图像数据执行解码操作。
12.如权利要求11所述的光学代码读取器,其特征在于,所述帧抓取器模块检索与帧(N-1)相对应的数据,并且所述解码器模块对接检索到的与帧(N-1)相对应的图像数据执行解码操作。
13.一种用于读取光学代码的方法,包括如下步骤给至少一个目标成像,这其中包括获取并处理与一连串的至少一个帧相对应的图像数据;存储与所述至少一个帧中各个获得的帧相对应的图像数据,这其中至少包括与当前的帧(帧(N))相对应的图像数据以及与前一个帧(帧(N-1))相对应的图像数据;在帧(N)期间接收用来指示读取操作开始的启动信号;检索与帧(N-1)相对应的图像数据的至少一部分;以及对检索到的图像数据执行解码操作。
14.如权利要求13所述的方法,还包括如下步骤检测环境光的至少一种属性;产生与所述检测相对应的环境光信号;分析所述环境光信号;以及根据所述分析来调节所述成像模块的至少一种参数的设置,该设置被用于获取和处理所述图像数据这两种操作中的至少一种。
15.如权利要求14所述的方法,还包括如下步骤检测从目标图像处反射的入射光;产生与所述检测相对应的多个图像信号;以及根据用来确定增益的增益参数来处理多个图像信号的增益、根据用来确定曝光时间的曝光参数来控制用于检测反射光的曝光时间、根据用来确定照明强度的照明强度参数和用来确定照明持续时间的照明持续时间参数中的至少一种参数来产生检测期间的照明这几种操作中的至少一种;其中所述至少一种参数包括增益参数、曝光参数、照明强度参数和照明持续时间参数中的至少一种参数。
16.如权利要求13所述的方法,还包括如下步骤确定针对帧(N-1)所对应的图像数据执行的解码操作是否成功;并且如果不成功,则检索与帧(N)相对应的图像数据的一部分;以及对检索到的与帧(N)相对应的图像数据,执行解码操作。
17.如权利要求13所述的方法,其特征在于,所述执行解码操作的步骤在帧(N+1)开始之前已成功执行。
18.如权利要求14所述的方法,其特征在于,在帧(N+3)开始之前,针对根据调节后的至少一种参数获取并处理的至少一个图像数据,已成功地执行了解码操作步骤。
19.如权利要求14所述的方法,还包括如下步骤在开始读取操作之前,使所述至少一种参数的设置初始化成默认设置,该默认设置是针对移动状态中获取和处理图像数据这两种操作中的至少一种而优化的。
20.如权利要求14所述的方法,其特征在于,所述分析和调节步骤中的至少一个步骤是在帧(N+2)开始之前就执行了。
21.一种光学代码读取设备,包括成像模块,用于给至少一个目标成像,这其中包括获取并处理与一连串的至少一个帧相对应的图像数据,其中所述获取和处理这两种操作中的至少一种是根据至少一种可调参数来执行的;环境光传感器组件,用于检测环境光的至少一种属性并产生与所述检测相对应的环境光信号;以及处理器组件,它包括至少一个处理器,所述处理器组件包括至少一个可在所述至少一个处理器上执行的模块,用于在帧(N)期间接收用来指示读取操作开始的启动信号,并且响应于所述启动信号的接收,访问与所述一连串的至少一个帧中的某一个帧相对应的至少一部分图像数据;以及可在所述至少一个处理器上执行的参数调节器模块,该模块响应于所述启动信号的接收,根据所述至少一种可调参数的分析调节设置,在帧(N+2)开始之前分析所述环境光信号。
22.如权利要求21所述的光学代码读取设备,其特征在于,所述参数调节模块在帧(N+1)开始之前调节所述至少一个可调参数的设置。
23.如权利要求21所述的光学代码读取设备,其特征在于,所述成像模块包括图像传感器阵列,用于检测从目标图像处反射的入射光并产生与所述检测相对应的多个图像信号;以及增益电路、曝光电路和照明组件中的至少一种,所述增益电路根据用来确定增益的增益参数来处理多个图像信号的增益,所述曝光电路根据用来确定曝光时间的曝光参数来控制图像传感器阵列的曝光时间,而所述照明组件根据用来确定照明强度的照明强度参数和用来确定照明持续时间的照明持续时间参数中的至少一种参数来提供检测期间的照明;以及所述至少一种可调参数包括增益参数、曝光参数、照明强度参数和照明持续时间参数中的至少一种参数。
24.一种用于给光学代码成像的方法,包括如下步骤给至少一个目标成像,这其中包括获取并处理与一连串的至少一个帧相对应的图像数据,其中所述获取和处理这两种操作中的至少一种是根据至少一种可调参数来执行的;检测环境光的至少一种属性;产生与所述检测相对应的环境光信号;在帧(N)期间接收用来指示读取操作开始的启动信号;响应于所述启动信号的接收,访问与所述一连串的至少一个帧中某一个帧相对应的至少一部分图像数据并且对所访问的图像数据进行解码;响应于所述启动信号的接收,分析所述环境光信号;以及在帧(N+2)开始之前,根据所述分析步骤的结果,调节所述至少一种可调参数的设置。
25.如权利要求24所述的方法,其特征在于,调节设置的步骤是在帧(N+1)开始之前执行的。
26.如权利要求24所述的方法,还包括如下步骤检测从目标图像处反射的入射光;产生与所述检测相对应的多个图像信号;以及根据用来确定增益的增益参数来处理多个图像信号的增益、根据用来确定曝光时间的曝光参数来控制用于检测反射光的曝光时间、根据用来确定照明强度的照明强度参数和用来确定照明持续时间的照明持续时间参数中的至少一种参数来产生检测期间的照明这几种操作中的至少一种;其中所述至少一种可调参数包括增益参数、曝光参数、照明强度参数和照明持续时间参数中的至少一种参数。
全文摘要
提供了一种用于读取光学代码的系统和方法。该方法包括如下步骤给至少一个目标成像,这其中包括获取并处理与一连串的至少一个帧相对应的图像数据;存储与上述至少一个帧中各个获得的帧相对应的图像数据,这其中至少包括与当前的帧(帧(N))相对应的图像数据以及与前一个帧(帧(N-1))相对应的图像数据;在帧(N)期间接收用来指示读取操作开始的启动信号;检索与帧(N-1)相对应的图像数据的至少一部分;以及对检索到的图像数据执行解码操作。
文档编号G06K7/10GK101076809SQ200580029779
公开日2007年11月21日 申请日期2005年7月27日 优先权日2004年7月29日
发明者M·帕特尔, R·J·庞 申请人:讯宝科技公司