用于在不同位置执行不同解码算法的方法和装置的制作方法

文档序号:6386611阅读:160来源:国知局
专利名称:用于在不同位置执行不同解码算法的方法和装置的制作方法
技术领域
本发明涉及代码读取器,更特别地,涉及试图优化解码过程以在所获得的图像中加快候选码的分析的代码读取器。
背景技术
多年来,对使用光学代码的产品的自动识别已广泛实现于工业操作以及许多其它应用中。光学代码是由具有不同光反射或发射的元素所组成并根据预定义规则聚集而成的图案。光学代码中的元素可以是线性条码中的条形或空白,或者可以是二维矩阵码中的开/关图案。条码或符号可打印在产品包装的标签上,或通过直接部件标记而直接印在产品本身上。条码或符号中编码的信息可利用固定安装的装置或便携式手持设备中的光学读取器来解码。当在手持读取器设备的情况下,设备用户将设备朝向代码,通常借助于该设备产生的出现在要成像的物体表面的光目标图案,并且该设备自动获取包括代码的图像,或者用户激活该设备以获取图像。
至少某些读取器设备包括能够生成视场二维图像的相机。例如,现有的多种系统利用二维CCD图像传感器,其获取图像并生成提供至处理器的图像数据。该处理器被编程以检查图像数据、标识候选码(例如候选条码或符号)以及尝试对候选码进行解码。至少某些读取器设备被编程以连续快速地获取FOV图像并尝试对所获得图像中的任何候选码尽可能快地解码。为了进行解码,处理器运行一个或多个解码算法。
当获取代码的图像时,图像质量依赖于若干因素,包括传感器相对于设置代码的表面之间的角度、设置代码的表面的材料和纹理、代码标记质量或标记后的损坏、周围和设备光照特性、与设置代码表面的距离、光学模糊、相机分辨率等。图像质量影响着处理器运行特定算法来解码代码的能力。例如,在多种情况下简单解码算法不能将图像中的代码成功解码,除非图像采集周围的环境相当理想。
为补偿不完美的图像采集,已经开发了相对较复杂的解码算法。例如,已开发某些解码算法,其至少部分地补偿了不完美的光照、设置代码的弯曲表面、不完美的传感器与设置代码的表面的夹角等。
尽管复杂的解码算法起到了补偿缺陷图像的作用,但一大缺点在于,复杂的算法通常需要更多的处理能力和相当数量的时间来执行。下文中,除非另外指出,相对复杂的算法或一般而言需要相对长时间来执行的算法将被称为“昂贵的”或“较昂贵的”算法,而相对简单的算法或一般而言需要相对短时间完成的算法将被称为“廉价的”或“较廉价的”算法。
尽管较昂贵的算法在某些应用中不会成为问题,但在图像被连续快速获取的应用中,需要相对长时间来完成的昂贵算法会产生远超出读取器处理器性能的计算需求。更特别地,在某些情况下,图像传感器能够快速地获取并提供图像,以使读取器设备的处理器在接收下一图像之前,无法在图像中的所有候选码上执行昂贵算法。
当处理器跟不上对快速图像系列中所有候选码执行昂贵算法所需要的计算需求时,一个解决方案可以是先行分析下一图像中的候选,直到读取器设备已尝试解码当前图像中的所有候选码。因此,举例而言,在尝试解码第一图像中所有候选码的所需时段期间第二至第四图像被获取,当第五图像被获取且第五图像中的候选码被检查时第二至第四图像将被丢弃。虽然这一解决方案保证了该昂贵算法应用于当前或第一图像的所有候选码,但该解决方案在第一图像中的候选码被处理时简单地忽略了第二至第四图像中的候选码,而不管后续图像中的候选可能更适合被解码的事实。在这种情况下,成功地成像并解码代码所需的总时间将被延长,其中设备无法成功解码第一图像中的任何候选,这将给设备用户带来困扰的延迟。

发明内容
与本发明某些实施例的至少一方面相一致,已经认识到具有不同相对开销(即需要不同时间量来完成)的解码算法可用于分析所获取的图像,来加快总体解码过程,以使处理器能够尝试至少标识图像中候选码的子集的全部并利用至少某一算法来解码该子集中的全部候选。更特别地,可以有利地由图像中的位置确定将哪种算法应用在图像的部分来标识候选以及将哪种算法应用于图像中的特定候选码。例如,在设备用户使用期间手动地移动读取器设备以将读取器的视场(FOV)对准待读取代码的手持读取器设备的情况下,多数用户持续不断地移动读取器设备以将该代码与FOV更好地对准,并将该读取器相对于设置代码的表面更好地定位,直到该设备指示该代码已被成功解码(例如发射光、发出声音、在通信信道上返回数据等)。因而,在手动对准过程开始和包括代码的第一图像被获取时,该代码可能位于FOV外边界附近,而相机可能相对于设置有代码的表面形成夹角。通过手动调整以及在后续成像期间,代码将更加对准于FOV的中心部分而相机与表面的夹角将更为合适。在这种情况下,至少某些实施例中,可行的是将FOV划分为中心关注区(ROI)和外围R0I,尝试标识中心ROI中的候选码并利用较昂贵的算法对中心ROI中的候选码进行解码,同时尝试标识外围ROI中的候选码并利用较廉价的算法对外围ROI中的候选码进行解码。这样,在FOV不完美地对准代码时获取的第一图像中,代码可位于外围ROI中,此时只有较廉价的算法用于标识候选码并对代码进行解码。在中心ROI包括代码的后续图像中,较昂贵的算法可用于标识候选码并解码该候选码。在本文许多情况下,较廉价的算法将成功解码第一或早期图像中的候选码,该设备将指示成功解码,并且该过程完成。在其它情况下,当第一或早期图像被检查时,算法不能成功解码代码。然而,在后续图像中,与代码相关的候选码将反映更优选的FOV与代码的对准,因而昂贵算法能够相对较快地完成,且平均而言,总体解码过程被缩短。在其它情况下FOV可划分为三个或更多个R0I,不同的解码算法可应用于三个或更多个ROI的每一个中的候选。尽管ROI可基于使用读取器设备的假定方式被预先指定,但在其它实施例中ROI仍可实时地进行实质性改变,以反映设备被使用的方式。例如在某些情况下,“昂贵的R0I”表示处理器尝试定位并利用较昂贵的解码算法来解码候选的ROI,并且可被分配至先前代码最后被成功解码的FOV区域。因此,最近被解码的代码位于FOV的左侧附近时,昂贵的ROI可移动至该位置,其中FOV的余部可包括较廉价的ROI。
在某些实施例中,ROI可实时地进行实质性改变,以基于设备能够多快完成图像的全部所需候选解码尝试来改变其相对大小。例如,如果在处理器以相似方式从相机接收下一图像之前的至少一阈值时段以前或以内,处理器对一个或一系列图像完成全部解码尝试,则中心昂贵ROI的大小可增加,如果处理器无法在所需时段内尝试对全部图像候选解码,则昂贵的ROI的大小可减小。通过增加中心昂贵ROI的大小,在中心ROI会出现更多的候选码,用于后续图像中的解码尝试,从而增加完成图像全部解码尝试所需要的时间。
在某些实施例中,候选码的位置可通过其它方式来使用,以确定将哪些算法应用于哪种代码。例如,可能对于特定的昂贵算法,已知处理器始终能够在接收下一图像之前尝试对三个候选进行解码。此时,该处理器可被编程以选择三个位置最中心的候选码用于利用昂贵算法进行解码尝试,并可尝试利用较廉价的算法解码所有其它候选。
在其它实施例中,读取器设备处理器可被编程以从图像中的关注点开始,以下列次序对候选码排序,即距离该关注点最近的候选为第一且距离该点较远的候选列在其后,并尝试以该次序来解码候选码直到某个下一图像事件发生。此处,下一图像事件可以是接收到的来自相机的下一图像。在其它情况下,下一图像事件可由计时器的超时来触发,其超出应在接收下一图像之前期满的时段。其它下一图像事件是可预期的。
与本发明某些实施例的另一方面相一致,读取器设备处理器可被编程以将第一相对廉价的代码算法应用于一系列图像中的候选码,并且如果该设备处理器未能成功解码任一图像中的代码,可以将该图像存储至存储器。其后,该处理器可被编程以在一组图像被存储之后,再次访问图像中的一个或子集或全部并将较昂贵的解码算法应用于一个或多个图像中的全部候选码或其子集,以尝试解码候选。在至少某些情况下,当一个或多个图像被再次访问时,较昂贵的算法以与上述任一种教导相一致的方式来应用,例如,通过将昂贵的算法应用于一个或多个图像中小于FOV的R0I,通过将昂贵的算法仅应用于该图像或每个图像中最接近关注点的候选的子集(如3个),等等。在某些情况下,当处理器再次访问一个以上的图像时,处理器可首先开始处理最近存储的图像并朝更早存储的图像进行回向处理,因为在至少某些应用(如手持应用)中FOV与代码的对准或定位在后续图像中会更好。也可构想处理存储图像的其它顺序。
在其它实施例中,当处理器未能成功解码图像中的候选码时,在对图像进行存储用于后续处理之前,处理器可将解码成功因子分配至该图像,其可由该处理器用来标识处理器应利用昂贵算法来分析的所存储图像的子集。
在其它实施例中,处理器可被编程以尝试利用廉价算法来解码全部候选码,并当全部尝试失败时,基于任一上述示例所表示的位置,尝试仅解码该候选的子集。在该可选项中,处理器可被编程以将解码成功因子至少分配至基于较廉价解码尝试而具有利用昂贵算法被成功解码的最大可能性的候选码的子集(如3-5个),然后可将该昂贵算法应用于该候选子集。
此外,在至少某些实施例中,当处理器再次访问其之前尝试利用较廉价算法解码的候选码时,该处理器可使用应用较廉价算法时所生成的信息,以加快完成较昂贵算法的过程。例如,当处理器能够利用较廉价算法来分析四分之三的代码时,该信息可能被用于加快后续算法。
某些实施例包括一种用于使用包括二维视场(FOV)的图像传感器对设置在物体上的代码进行解码的方法,该方法包括提供被编程以执行以下步骤的处理器的步骤:获取FOV的图像;标识图像中至少第一和第二关注区(ROI),其中第一 ROI不同于第二 ROI ;尝试利用第一解码算法解码第一 ROI中的候选码并尝试利用不同于第一解码算法的第二解码算法解码第二 ROI中的候选码。在某些情况下,该第一解码算法在计算上比第二解码算法复杂。在某些情况下,第一解码算法比第二解码算法需要更多的时间量来完成。在某些情况下,第一 ROI包括FOV的中心部分。在某些情况下,第二 ROI包括FOV中围绕第一 ROI的部分。在某些情况下,该第一解码算法包括该第二解码算法以及附加解码算法。在某些情况下,该第一 ROI包括对应于先前图像中成功解码的位置的ROI。在某些情况下,该方法进一步包括以下步骤:标识图像中不同于第一和第二 ROI的至少第三R0I,以及尝试利用不同于第一和第二解码算法的第三解码算法对该第三ROI中的候选码进行解码。在某些实施例中,该方法进一步包括从个人接收指示第一 ROI或最佳位置的指示的步骤。在某些情况下,该第一 ROI包括FOV中的位置和相对于该位置的距离。在某些情况下,该位置由图像中沿单个轴向的位置组成。在某些情况下,图像传感器组成便携式代码读取设备的一部分。在某些情况下,图像传感器组成手持代码读取设备的一部分。在某些实施例中,传感器以重复方式获取图像且其中该第一 ROI的大小至少部分地与尝试解码先前获取图像的第一 ROI中的候选码所需时间相关地来确定。在某些情况下,传感器以重复方式获取图像且其中第二解码算法至少部分地与尝试解码先前获取图像中的候选码所需时间相关地来选择。在某些情况下,该第一和第二 ROI在获取图像之前被预先指定。某些实施例包括一种用于使用包括二维视场(FOV)的图像传感器对设置在物体上的代码进行解码的方法,该方法包括提供被编程以执行以下步骤的处理器的步骤:获取FOV图像并将不同的解码算法应用于候选码,以尝试解码该候选码,其中应用于每个候选的解码算法与候选码在FOV中的位置相关。在某些情况下,该第一解码算法应用于第一关注区(ROI)中的候选码而不同于第一解码算法的第二解码算法应用于不同于第一ROI的第二ROI中的候选码。在某些情况下,第一 ROI包括传感器FOV的中心部分而第二 ROI包括FOV中围绕第一 ROI的部分。在某些情况下,该传感器组成手持设备的一部分。在某些情况下,用于确定哪些解码算法应用于哪些候选码的函数发生改变,以最优化解码过程。在某些情况下,该解码算法包括至少第一相对复杂的解码算法和第二相对简单的解码算法,且其中该函数发生改变以修改采用第一和第二解码算法的候选码的比率。在某些情况下,该比率与尝试利用第一和第二解码算法解码FOV中的候选码所需时间相关地改变。其它实施例包括一种用于使用包括二维视场(FOV)的图像传感器对设置在物体上的代码进行解码的方法,该方法包括提供被编程以执行以下步骤的处理器的步骤:(i)获取FOV图像,(ii)尝试利用第一解码算法对图像中的候选码进行解码,(iii)在尝试解码候选码失败时,将图像保存在存储器中,(iv)重复步骤(i)至(iii)直到阈值数量的解码候选码尝试失败和候选码被成功解码中之一,在阈值数量的解码候选码尝试失败时,访问保存在存储器中的图像并尝试利用不同于第一解码算法的第二解码算法至少对存储于存储器中的图像的子集中的候选码进行解码。其它实施例包括一种用于读取设置于物体上的代码的装置,该装置包括具有二维视场(FOV)的图像传感器,可链接至该传感器以从其获取图像数据的处理器,该处理器被编程以执行以下步骤:获取FOV的图像;标识图像中至少第一和第二关注区(ROI),其中第一 ROI不同于第二 ROI ;尝试利用第一解码算法解码第一 ROI中的候选码;以及尝试利用不同于第一解码算法的第二解码算法解码第二 ROI中的候选码。在某些情况下,该第一解码算法在计算上比第二解码算法复杂。在某些情况下,第一解码算法比第二解码算法需要更多的时间量来完成。在某些情况下,第一 ROI包括FOV的中心部分。另一实施例包括一种用于使用包括二维视场(FOV)的图像传感器对设置在物体上的代码进行解码的装置,该装置包括具有二维视场(FOV)的图像传感器,可链接至该图像传感器的处理器,该处理器被编程以执行以下步骤:获取FOV图像并将不同的解码算法应用于候选码,以尝试解码候选码,其中应用于每个候选的解码算法与候选码在FOV中的位置相关。在某些情况下,该第一解码算法应用于第一关注区(ROI)中的候选码而不同于第一解码算法的第二解码算法应用于不同于第一 ROI的第二 ROI中的候选码。其它实施例包括一种用于使用包括二维视场(FOV)的图像传感器对设置在物体上的代码进行解码的装置,该装置包括具有二维视场(FOV)的图像传感器,可链接至该图像传感器的处理器,该处理器被编程以执行以下步骤:(i)从传感器获取对应于FOV图像的图像数据,(ii)尝试利用第一解码算法对图像中的候选码进行解码,(iii)在尝试解码该候选码失败时,将图像保存在存储器中,(iv)重复步骤(i)至(iii)直到阈值数量的解码候选码尝试失败和候选码被成功解码中之一,在阈值数量的解码候选码尝试失败时,访问保存在存储器中的图像数据并尝试利用不同于第一解码算法的第二解码算法至少对存储于存储器中的图像的子集中的候选码进行解码。为实现前述和相关目标,本发明包含了下文全面描述的特征。下文的描述和附图详细提出了本发明的某些说明性方面。然而,这些方面表示应用本发明的原理的各种方式,但只是其中少数几个。本发明的其它方面、优点和新颖性将在随后的发明详细描述中结合附图考虑时变得显而易见。


图1是示出手持代码读取器的示意图,其具有与本发明至少某些方面相一致的特性;图2是示出图1所示包含在手持设备中的内部组件的示意图;图3是示例性视场、视场中的示例性关注区以及视场中示例性候选码的视图;图4与图3相似,但不出了相对于视场和关注区在不同相对位置的候选码;图5是示出一种方法的流程图,由此图2所示的处理器对视场中不同关注区的候选码执行不同的解码算法;图6是与图3相似的示意图,但示出了不同的关注区图案;
图7与图3相似,但示出了另一关注区的图案;
图8与图3相似,但不出了另一关注区的图案;
图9与图3相似,但示出了视场内的关注点以及候选码;
图10与图9相似,但示出了视场内的关注线;
图11是可替代图5所示过程的一部分的子过程,由此视场内的关注区图案被改变以优化解码过程;
图12是可由图2所示处理器执行的过程,用于优化解码过程;
图13是可由图2所示处理器执行的另一过程,用于优化解码过程;
图14是可由图2所示处理器所执行的过程,由此一系列连续图像在利用简单解码算法解码候选码的尝试中首先被检查,之后该系列图像在利用相对较复杂的解码算法解码候选的尝试中被重新检查;以及
图15是示出可替代图14所示过程一部分的子过程的流程图,由此成功因子被分配至图像并随后用于标识在后续解码过程中使用的图像子集或图像次序。
尽管本发明允许多种修改和可替代的形式,但其特定实施例已通过附图中示例示出并在此详细描述。然而应当理解,本文对特定实施例的描述并非意图将本发明限制于所公开的特殊形式,相反,本发明意在包含落在如所附权利要求所定义的本发明精神和范围的所有修改、等同和替换。
具体实施方式
现将本发明的各方面结合附图来描述,其中类似的附图标记在多个视图中对应于相似的元素。然而应当理解,附图和下文相关的详细描述并非意图将所请求保护的主题限制于所公开的具体形式。相反,本发明意在包含落在要求保护主题的精神和范围的所有修改、等同和替换。
本文所用“组件”、“系统”等术语意指计算机相关实体,诸如硬件、软硬件结合、软件、或执行中的软件。例如,组件可以是但不限于运行在处理器上的进程、处理器、对象、可执行文件、执行线程、程序、和/或计算机。以说明的方式,运行在计算机上的应用以及计算机两者均可为组件。一个或多个组件可驻留于进程和/或执行线程中,并且组件可被定位于一台计算机和/或分布于两个或多个计算机或处理器之间。
“示例性”一词本文用于表示作为一个示例、实例或说明。本文描述为“示例性”的任何方面或设计并不一定被解释为优选的或优于其它方面或设计。
此外,所公开的主题可实现为利用标准编程和/或工程技术来生产软件、固件、硬件或其任意组合以控制计算机或基于处理器的设备来实现本文详述的方面的系统、方法、装置或制品。术语“制品”(或可替换地是“计算机程序产品”)在本文中意图用于涵盖从任意计算机可读设备、载体或介质中可存取的计算机程序。例如,计算机可读介质可包括但不限于,磁存储设备(如硬盘、软盘、磁带)、光盘(如压缩盘(CD)、数字通用盘(DVD)...)、智能卡、以及闪存设备(如卡、棒)。此外应当理解,可采用载波来承载计算机可读电子数据,诸如用于发送和接收电子邮件或接入网络(例如互联网或局域网(LAN))的那些数据。当然,本领域技术人员将会理解,对这种配置可进行多种修改而不偏离所要求保护主题的范围和精神。
现参见附图,其中类似的附图标记在多个视图中对应于相似的元素,更特别地,参见图1和图2,本发明将在示例性手持符号或代码读取器10的环境下描述,读取器10包括具有抓握部分102的外壳101、主体/圆筒部分104以及触发器IlUCXD或其它类型的相机/传感器105、光学器件/透镜106、处理器108、计时器109、一个或多个指示器LED132、用于照射读取器视场的LED (未示出)、扬声器/音频组件134、电池53、存储器52以及光源/子组件54。处理器108、计时器109、电池53、光学器件106、存储器52和光源54中的每一个均安装于外壳101中或以其它方式由其支撑。处理器108链接至计时器109、电池53、存储器52、光学器件106、相机/传感器105、光源54、指示器LED132、照明LED和输出134中的每一个。处理器108运行存储于存储器52的程序以执行创造性过程。
除非另外指出,本发明将在所图示的手持读取器设备10的环境下描述,并假设处理器108被编程以检查所获取图像中的候选码,并尝试解码该候选码,直到候选中的任一个被成功解码。当候选被成功解码时,处理器108使LED132和/或输出134生成信号,以向设备用户指示解码成功。然而,应当理解,本文至少某些方面和实施例适用于固定使用的读取器设备或处理器被编程以查找和解码任一图像或图像集合中的一个以上代码的情况。
仍参见图1和2,光学器件106将视场(FOV) 107聚焦在读取器10中的CXD或其它类型的传感器设备105上,由此生成包含位于F0V107中的事物的高分辨率图像的数据。视场107沿FOV轴109居中。因此,当F0V107朝向设置于事物130的表面128上的代码112且读取器10被激活以生成图像时,包括代码112的图像被获取。相机105生成快速的连续图像系列。尽管连续图像之间的时间短暂,但该时间基于代码读取领域技术人员熟知的若干因素而改变。
现参见图3,示出示例性F0V107。在所示F0V107中,有三个候选码112a、112b和112c,其中只有候选码112b对应于实际矩阵码。因此候选码112a和112c仅表示图像伪像,其在图像初始分析时具有与伪像是要解码的实际矩阵码相一致的某些特征。
仍参见图3,在本发明至少某些实施例中,F0V107可划分为分离的关注区(ROI),其中不同的解码算法由处理器108(仍见图2)使用,以尝试解码不同ROI中的候选码。例如在图3中,示例性R0I150包括F0V107的圆形中心部分。在这种情况下,第一 R0I150外部的F0V107的余部可被认为是第二 R0I212。在这一实施例中,可以构想,将第一解码算法用于尝试解码第一 R0I150中的任何候选码,而将第二解码算法用于解码第二 R0I210中存在的任何候选码。因此在图3中,第一解码算法可用于解码候选码112a,而第二解码算法可用于尝试解码候选码112c。
在至少某些实施例中,用于尝试解码部分处于第一 R0I150且部分处于第二R0I210中的候选码112b的解码算法可依赖于候选码112b存在于ROI150中的百分比。例如,当候选112b的50%以上存在于ROI150中时,第一解码算法可用于尝试解码候选112b。在其它实施例中,如果诸如112b之类的候选的任何部分存在于R0I150中,则第一解码算法可用于尝试解码候选112b。
在上述示例中,在至少某些实施例中,用于尝试解码处于或关联于第一 ROI150的候选码的第一解码算法可以是相对更稳健或复杂的算法,即比第二解码算法相对更加计算密集,因此需要比第二解码算法更多的时间量来完成。基于所需时间,本文的第一解码算法被称为比廉价的第二解码算法更昂贵。因此,举例而言,第一解码算法平均可能需要第二解码算法完成所需时段的三倍或更多倍的时段。以上结合图3描述的其中第一 R0I150包括视场107中心部分的示例在如图1示出的手持读取器设备10的环境中尤其有利,其中设备用户借助于来自设备10的瞄准照明而在附近移动设备10,以尝试将F0V107对准要被成像和解码的代码。因而,已经意识到尝试将FOV对准待成像代码的手持设备用户通常在附近移动设备,以增进FOV和代码的对准,直到代码被成像且成功解码。因而,虽然待成像代码在首次获取图像时最初存在于第二R0I210,但在短时间内待解码的代码典型地位于F0V107的第一 R0I150中。例如,仍参见图3,待解码的实际代码112b最初位于所示的外围R0I210。图4示出了类似于图3的图像,但其后的短时间内手持设备(仍见图1)由用户移动以将F0V107更好地对准候选112b,以使候选112b存在于ROI150中。现参见图5,示出了可由图2中的处理器108执行并与图3和4描述的示例一致的示例性过程170。在框171中,关注区被定义并存储于图2所示的存储器52中。仍参见图3,被定义并存储的示例性ROI在所示出的示例中包括ROI150和210。接下来在框172中,图2中的相机传感器105获取视场107的图像并将图像提供至处理器108。接收该图像后,在框174中处理器108标识图像中的候选码。仍然在图3中,待标识的示例性候选包括候选112a、112b和112c。在框176中,处理器108标识图像中的ROI150和210。继续,图5中的框178,处理器108尝试利用第一较昂贵或复杂的解码算法解码第一 ROI150中的候选码。仍参见图3,在框178中处理器108仅尝试利用昂贵算法解码候选码112a,因为其它候选码112b和112c位于ROI150之外。在框180中,处理器108尝试利用第二或较廉价的解码算法解码存在于第二 R0I210中(例如在第一 R0I150以外的视场部分之中)的候选码。因此,在框180中处理器108尝试利用第二较廉价的解码算法来解码候选码112b和候选码112c。在框180之后,控制返回至框172,其中相机105获取视场107的下一图像并将该图像提供至处理器108。图5所示过程重复进行,直到候选码中任一个被成功解码。因此,举例而言,如果候选码112b利用第二较廉价算法成功解码,则处理器108通过LED132照射和/或经音频输出134(仍见图2)生成声音来指示代码已被成功解码,而该图像获取和候选解码过程暂停。在图3和4所示的示例中,最终,该第二解码算法成功解码候选112b,或者候选112b出现于第一 R0I150中且第一较昂贵的算法由处理器108执行以解码该候选。虽然图5示出了第一解码算法首先执行,但在其它实施例中也可首先对第二 ROI中的候选执行第二解码算法,然后对第一 ROI中的候选执行第一算法。在另外的实施例中,该第一和第二算法可并行开始或至少部分地并行地执行,而非串行执行。尽管图3示出了圆形的中心第一 R0I150,但应当理解,F0V107可分为多个其它ROI图案。例如在图3示出的至少某些实施例中,第二 R0I210可分为第二和第三R0I212和210,相应地,第二 R0I212包括视场107中围绕第一 ROI150的部分,而第三R0I210包括视场107中围绕第二 R0I212的部分。这里可以构想,处理器108可被编程以通过类似于上述方式对出现于第一、第二和第三R0I150、212和210的候选码分别执行不同的第一、第二和第三解码算法。作为另一示例,参见图6,示出了 F0V107分为第一和第二 R0I220和222,相应地,第一 R0I220包括穿过视场107的中心水平带,而第二 R0I222包括在带220上方和下方的视场107余部。图6所示的实施例在读取器设备被安装用于传输线上固定操作的情况下尤其有效,其中已知用代码标记的物体将典型地位于传输线上,因而代码通常出现于带R0I220中。参见图7,示意性地示出了又一 ROI图案,其中第一 R0I221包括R0V107的矩形区域,而F0V107的余部形成了第二 R0I223。图7所示的ROI定义在以下情况下尤其有效,其中组件(例如参见图7的219)沿传输线移动穿过F0V107并且相机105由物体位置传感器触发以获取用于解码的图像,以及其中已知当触发产生时,出现在示例性物体上的代码典型地位于第一 R0I221中。图8示意性地示出了又一 ROI图案或定义,其中第一 R0I241包括F0V107的中心部分周围向一侧张开的空间,而第二 R0I242包括F0V107的余部。这一 ROI图案也可在固定读取器设备的环境下有效,其中传输线移动物体从右到左穿过视场107,如图8所示,以使对于每个候选,首先尝试较廉价的算法随后是较昂贵的算法,且其中该ROI反映出,在特定应用中代码可典型地出现于F0V107中心水平带中。在某些实施例中,可以构想,ROI还可由距F0V107内一个或多个点的距离来定义。为实现该目的,现参见图9,示例性中心点或F0V107内的关注中心点由数字240标识。这里每个候选码112a、112b和112c位于视场107的被获取图像中,与点240的距离各不相同。第一 ROI可由点240和距离点240的径向值Rl来定义,以使距离点240的距离为Rl的任何候选均处于第一 ROI中,因此利用第一较昂贵的解码算法来解码,而该空间之外的候选位于第二 ROI中并利用第二解码算法来解码。在又一实施例中,可以构想,基于获取下一图像的已知或估计时间,处理器108可被编程以尝试利用第一、相对昂贵的解码算法仅解码特定数量的候选码,其中候选可基于其位置来选择,更特别地,基于视场内的点(例如参见图9的240)与每个候选之间的距离来选择。例如,处理器108可被编程以尝试利用第一解码算法仅解码距图9中点240最近的三个候选码,并尝试利用第二解码算法解码视场107中的任何其它候选码。参见图10,作为基于到点的距离标识候选码位置的替换,位置可基于到线250的距离。此时,处理器108首先解码最接近线250的候选,再向外处理其它候选。除点和线外,也可构想其它几何形状用于作为候选位置的参考。再次参见图3,虽然上述参照图3描述的示例以及上述其它示例需要仅对处于完全独立于第一 ROI的第二 ROI中的候选码执行第二解码算法,但在至少某些实施例中,第二ROI可包括整个F0V,以对视场107中的每个候选码执行第二、较廉价的解码算法。因此,例如在图3中,在至少某些实施例中,最初对候选码112a、112b和112c中的每一个执行第二解码算法。如果第二解码算法成功解码代码,处理器108可指示解码成功并停止该过程。然而,在第二解码算法未能成功解码代码时,第一解码算法会用于第一 ROI中的任何候选码。在另外的实施例中,第一解码算法实际上可包括第二解码算法,以对图像中的所有候选有效地执行第二解码算法。在另外的实施例中,可基本实时地选择R0I,以反映读取器设备用户如何使用该设备。例如,昂贵的ROI可选择为在先前解码过程期间最近有代码被成功解码的FOV区域,或者当前昂贵的ROI可以与在先前解码期间最近成功解码代码的位置相关地改变。例如,再次参见图3,如果候选利用廉价的解码算法在F0V107左边界附近被常规地解码,这可能证明手持设备用户在与代码对准时常规地从左侧移动该设备。此时可以将昂贵的ROI从图3所示的中心ROI150改变至图8所示的ROI241,这是有效的。
此外,在至少某些实施例中,可以构想,ROI可以动态调整,以与读取器操作相关地优化解码过程。例如,在至少某些情况下,图像获取周围的环境可能会产生可利用复杂或昂贵的第一解码算法相对迅速地解码的较佳图像,以使第一 ROI (例如参见图3的150)的大小能够增加,同时在相机105产生下一图像之前仍尝试利用第一解码算法解码第一 ROI中的全部候选。
现参见图11,示出了可代替图5所示过程的一部分的子过程190,其中第一 ROI的大小被调整以优化解码过程。为实现该目的,在图5的框176中ROI被标识之后,控制转向图11的框198,其中处理器108尝试利用第二解码算法来解码第二 ROI中的候选码。在框200中,处理器108尝试利用第一相对昂贵的解码算法解码第一 ROI中的候选码。在框202中,处理器108判定该处理器是否已经尝试利用第一解码算法解码第一 ROI中的所有候选码。当存在附加的候选码时,控制转向框204,处理器108确定相机105是否已经提供下一图像。在相机105还未提供下一图像时,控制转向框200,重复上述过程。
仍参见图11,在框204中,已从照相机105获取当下一图像时,控制转向框207,其中第一 ROI的大小被减小,之后控制返回图5的框174。仍参见框202,当处理器108判定该处理器已经尝试利用第一解码算法解码第一 ROI中所有候选码时,控制转向框203。在判断框203,处理器判定是否已从相机105接收下一图像。在未从相机105接收下一图像时,控制转向框206,处理器108增加第一 ROI的大小,之后控制转向图5的框174。在框203中,如果处理器108确定下一图像已被获取,则控制简单地转向图5的框174而不调整第一ROI的大小。
尽管未示出,但在某些情况下,如果处理器108在框203判定下一图像未被获取,则处理器108可在获取下一图像之前确定最小时间,仅在该最小时间大于某一阈值的情况下增加第一 ROI的大小。此外,在至少某些情况下,处理器108可被编程以在框206中增加第一 ROI的大小之前,对一系列图像要求在框203中的否定值的连续系列(如5个、10个坐^寸/ ο
在至少某些实施例中,可以构想,处理器108仅可执行第一相对慢速和昂贵的解码算法,但该处理器仅对视场中的候选码子集执行该解码算法,其中该子集基于视场中的位置。例如,仍参见图9,处理器108可被编程以按照依赖于候选码距F0V107中心点240的距离的次序对候选码进行解码,其中该处理器在下一图像已被获取之后停止解码候选,并使用下一图像重新开始。因此,例如在图9中,处理器108开始于尝试解码最接近点240的候选112a。接下来,如果时间允许,处理器108会尝试利用第一解码算法解码第二最接近的候选码,候选112b,如果时间允许,随后尝试利用第一解码算法解码候选112c,以此类推。
参见图12,示出了可由处理器108执行以按照依赖于候选码与中心点相对位置的次序对候选码进行解码的过程300。在框302中,视场的图像被获取。在框204中,图像中的候选码被标识。在框310中,处理器108尝试利用第一相对昂贵的解码算法解码所获取图像中的候选码,从关注点(例如图9所示的中心点240)开始并从此点向外进行。在框312中,处理器108确定下一图像是否被获取。如果相机105在312已提供下一图像,则控制返回框304,过程继续。在框312中,如果下一图像未被获取, 控制转向框314,其中处理器108判定该处理器是否已尝试解码视场中的每个候选码。当处理器108未尝试解码视场中的至少一个候选码时,控制返回框310,如图所示,过程继续。如果在框314中处理器已尝试利用第一解码算法解码所有候选码,则控制返回框302,其中处理器108等待接收来自相机105的下一图像。在至少某些实施例中,可以构想,相机105以基本上规则的间隔(例如,在已知的时段范围内)提供图像,以使图像之间的时段大体上是已知的。在这种情况下,处理器108可被编程以利用计时器109为连续图像之间的时段计时,并在计时时段内尝试解码尽可能多的候选码,其中被解码的候选子集仍基于视场中的位置。举例而言,再参见图9,例如处理器108可被编程以按照以下次序解码候选码,即处理器首先尝试最接近中心点240的候选,随后是次最接近点240的候选,以此类推,直到耗尽成像计时时段。一旦耗尽计时时段,处理器108会实质上丢弃其尚未尝试解码的候选码,而开始尝试解码后续图像中的候选。参见图13,示出了过程320,由此处理器108利用成像超时计时器来控制解码过程。在框322中,处理器108从相机105获取视场的图像。在框324中,处理器108启动计时器109(仍见图2)。在框326中,处理器108标识图像中的候选码。在框328中,处理器108尝试利用第一相对昂贵和缓慢的解码算法来解码图像中的候选码,从关注点开始(例如参见图9的点240)并向外进行。在框330中,处理器108判定成像超时时段或阈值时段是否流逝。在超时时段未流逝的情况下,控制返回框328,处理器继续尝试解码候选码,从关注点开始向外进行。在框330中,一旦超时时段流逝,控制返回框322,处理器108从相机105获取下一图像。根据与本发明至少某些实施例相一致的另一方面,在至少某些情况下,处理器108可被编程以首先尝试利用简单而相对快速的解码算法来解码所获取图像中的候选码,并且在图像之一中的代码未被成功解码的情况下存储连续图像用于后续处理。因此,举例而言,处理器108可被编程以获取视场的第一图像,尝试利用简单而快速的解码算法来解码第一图像中的候选码,并当未成功解码图像中的代码时,存储该图像用于可能的后续处理。接下来,处理器108可被编程以获取视场的第二图像,对该第二图像的候选码执行简单和快速的解码算法,并且如果第二图像中的至少一个代码未被成功解码,则存储第二图像用于可能的后续分析。在至少一个实施例中,该过程可对五个连续图像持续进行,其中如果每个图像中的至少一个代码未被成功解码,则被存储。在该五个图像被存储之后,处理器108可被编程以至少再次访问所存储图像的子集,并尝试利用相对较昂贵的解码算法解码该图像子集中的候选码。现参见图14,示出过程350,其中处理器108利用第一解码算法处理所接收的图像,然后当解码尝试不成功时利用第二解码算法处理这些图像。在框352中,处理器108将表示所存储图像数量的计数器F设置为零。在框354中,处理器108获取视场的图像。在框356,处理器108标识图像中的候选码。在框358中,处理器108尝试利用简单或相对廉价的解码算法来解码图像中的候选码。在框360中,其中候选码未被成功解码,控制转向框368中,其中图像以永久方式(即以允许图像以后被访问用于可能的附加处理的方式)存储。在框370,图像计数器F加I。在框372,图像计数器与阈值(例如5)相比较。当图像计数器值F不等于该阈值时,控制返回框354,其中另一图像被获取且该过程继续。当图像计数器值F等于阈值时,控制从判断框372转向处理框374。在框374中,所存储的图像被访问。在框376中,处理器108尝试利用需要额外时间的相对复杂解码算法来解码所访问图像中的候选码。在框376之后,控制转向框378。
仍参见图14,在框378中,处理器108判定是否有任一图像中的代码已被成功解码。在代码未被成功解码时,控制转向框366,所有图像从存储器中清空,然后控制返回框352,图像计数器F重置为零。在框378中,在至少一个代码被成功解码时,控制转向框380,处理器108通过LED132和/或音频输出134指示解码成功。在框380之后,控制转向框366,图像从存储器中清空,然后控制返回框352,图像计数器F重置为零。
仍参见图14,在框360中,当处理器108判定代码被成功解码时,控制转向框362,处理器108通过LED132和/或音频输出134指示解码成功。在框362之后,控制转向框366,图像从存储器中清空,然后控制返回框352,图像计数器F重置为零。
在至少某些实施例中,可以构想,当简单解码算法被使用以尝试解码图像中的候选并且解码尝试均未成功时,可见解码成功因子分配给该图像或者分配给图像中的独立候选码,指示关于该图像的一个或多个解码尝试的成功程度。然后,在对应于若干图像的解码尝试不成功之后,当图像被再次访问以尝试利用较复杂或昂贵的解码算法来解码时,处理器108可被编程以尝试仅解码具有高成功因子的候选码或图像中的候选,或者利用昂贵解码算法检查图像或候选所采用的次序可以与成功因子相关。为实现该目的,如图15所示,示出了可代替图14所示过程的一部分的子过程400。仍参见图14,在框360中,当对图像中的候选码的解码尝试均未成功时,控制可转向图15的框402,其中处理器108标识并存储用于图像的解码成功因子或用于图像中每个候选子集的独立成功因子。在框404中,处理器108以永久方式存储图像,并且在框406中,处理器108将图像计数器F加I。
继续框408,处理器108判定图像计数器值F是否等于阈值。当图像计数器值F不等于阈值时,控制返回图14的框354。
仍参见图15,在框408中,当图像计数器F等于阈值时,控制转向框410,其中处理器108访问所存储图像中具有最佳解码成功因子的一个或多个,或访问图像中具有最佳解码成功因子的候选码。在框412中,处理器108尝试利用较复杂的解码算法来解码具有最佳解码成功因子的候选码或解码在被访问图像中的候选码。在框412之后,控制返回图14的框378。
在另外的实施例中,当图像被再次访问时,图像之一或图像子集中的候选码可利用昂贵的算法基于图像中的位置来处理。例如在某些情况下,处理器108可仅处理昂贵ROI中的候选或距离点、线或某些其它几何形状的阈值距离以内的候选,或可利用昂贵算法仅处理最接近几何形状的特定数量的候选码。
在至少某些情况下,当对不同的关注区执行不同解码算法时,不同的关注区可以是不重叠的完全分离区域,或可以至少部分重叠。
以上所公开的特殊实施例仅仅是说明性的,而本发明能够以不同但等同的方式来修改或实现,这对受益于本文教导的本领域技术人员是显而易见的。此外,在如下文权利要求所描述之外,没有对本文所示的结构或设计细节的任何限制。因此,显然以上所公开的特殊实施例可被改变或修改,并且所有这种变化均认为落在本发明的范围和精神之内。因而本文所寻求的保护在下文权利要求中阐述。
如上所述,在至少某些实施例中,术语“解码”用于指代如下过程:在候选码被标识之后从其中提取显著特征,然后通过数学地解释该特征来逻辑解码所提取的特征,以提取所编码数据,其中候选码由某些其它过程标识。在其它实施例中利用具有不同相对开销的算法来标识图像中的候选码是可行的,其中被选择以标识候选码的算法基于位置或图像R0L.例如,仍参见图3,在某些实施例中相对昂贵的算法可用于定位候选码、提取特征或在中心R0I150中逻辑解码中的每一个,而较廉价的算法可用于执行外围区域210中的相同功能。因此,可以通过在解码算法中包括标识候选码的步骤以使依赖位置的不同开销算法应用于整个候选标识、提取和逻辑解码过程,来修改上述每个实施例。此外,在解码算法包括候选标识过程的至少某些情况下,候选标识过程可具有不同的相对开销,而解码算法的其它部分是相同或基本类似的。例如,仍参见图3,与外围R0I210相比,解码过程的候选标识部分对于中心R0I150可相对昂贵,而算法的提取和逻辑解码部分是一致的。因而本发明涵盖落在如所附权利要求所定义的本发明精神和范围的所有修改、等同和替换。为公布本发明的范围,提出所附权利要求。
权利要求
1.一种用于使用包括二维视场(FOV)的图像传感器对设置在物体上的代码进行解码的方法,所述方法包括以下步骤: 提供被编程以执行以下步骤的处理器: 获取FOV的图像; 标识图像中至少第一和第二关注区(ROI),其中第一 ROI不同于第二 ROI ; 尝试利用第一解码算法解码第一 ROI中的候选码;以及 尝试利用不同于第一解码算法的第二解码算法解码第二 ROI中的候选码。
2.如权利要求1所述的方法,其特征在于,尝试解码第一ROI中的候选码的步骤包括标识第一 ROI中的候选码,且尝试解码第二 ROI中的候选码的步骤包括标识第二 ROI中的候选码。
3.如权利要求1所述的方法,其特征在于,第一解码算法在计算上比第二解码算法复杂。
4.如权利要求1所述的方法,其特征在于,第一解码算法比第二解码算法需要更多的时间量来完成。
5.如权利要求3所述的方法,其特征在于,第一ROI包括FOV的中心部分。
6.如权利要求5所述的方法,其特征在于,第二ROI包括FOV中围绕第一 ROI的部分。
7.如权利要求1所述的方法,其特征在于,第一解码算法包括第二解码算法以及附加解码算法。
8.如权利要求1所述的方法,其特征在于,第一ROI包括与先前图像中成功解码的代码的位置对应的ROI。
9.如权利要求1所述的方法,进一步包括以下步骤:标识图像中不同于第一和第二ROI的至少第三R0I,并尝试利用不同于第一和第二解码算法的第三解码算法对第三ROI中的候选码进行解码。
10.如权利要求1所述的方法,进一步包括从个人接收指示第一ROI的指示的步骤。
11.如权利要求1所述的方法,其特征在于,第一ROI包括FOV中的位置和相对于所述位置的距离。
12.如权利要求11所述的方法,其特征在于,所述位置由图像中沿单个轴的位置组成。
13.如权利要求1所述的方法,其特征在于,图像传感器形成便携式代码读取设备的一部分。
14.如权利要求1所述的方法,其特征在于,图像传感器形成手持代码读取设备的一部分。
15.如权利要求1所述的方法,其特征在于,传感器以重复方式获取图像,且其中第一ROI的大小至少部分地与尝试解码先前获取图像的第一 ROI中的候选码所需时间相关地来确定。
16.如权利要求1所述的方法,其特征在于,传感器以重复方式获取图像,且其中第二解码算法至少部分地与尝试解码先前获取图像中的候选码所需时间相关地来选择。
17.如权利要求1所述的方法,其特征在于,第一和第二ROI在获取图像之前被预先指定。
18.一种用于使用包括二维视场(FOV)的图像传感器对设置在物体上的代码进行解码的方法,所述方法包括以下步骤: 提供被编程以执行以下步骤的处理器: 获取FOV的图像;以及 对候选码应用不同的解码算法,以尝试解码候选码,其中应用于每个候选的解码算法与候选码在FOV中的位置相关。
19.如权利要求18所述的方法,其特征在于,应用不同解码算法的步骤包括标识FOV中的候选码。
20.如权利要求18所述的方法,其特征在于,第一解码算法应用于第一关注区(ROI)中的候选码,且不同于第一解码算法的第二解码算法应用于不同于第一 ROI的第二 ROI中的候选码。
21.如权利要求20所述的方法,其特征在于,第一ROI包括传感器FOV的中心部分,且第二 ROI包括FOV中围绕第一 ROI的部分。
22.如权利要求18所述的方法,其特征在于,传感器形成手持设备的一部分。
23.如权利要求18所述的方法,其特征在于,确定哪个解码算法应用于哪些候选码的函数发生改变以最优化解码过程。
24.如权利要求23所述的方法,其特征在于,解码算法包括至少第一相对复杂的解码算法和第二相对简单的解码算法,且其中所述函数发生改变以修改采用第一和第二解码算法的候选码的比率。
25.如权利要求24所述的方法,其特征在于,所述比率与尝试利用第一和第二解码算法来解码FOV中的候选码所需时间相关地被修改。
26.一种用于使用包括二维视场(FOV)的图像传感器对设置在物体上的代码进行解码的方法,所述方法包括以下步骤: 提供被编程以执行以下步骤的处理器: (i)获取FOV的图像; ( )尝试利用第一解码算法对图像中的候选码进行解码; (iii)在尝试解码候选码失败的情况下,将图像保存至存储器中; (iv)重复步骤(i)至(iii)直到阈值数量的解码候选码尝试失败以及候选码被成功解码中之一; 在阈值数量的解码候选码尝试失败时,访问保存在存储器中的图像并尝试利用不同于第一解码算法的第二解码算法至少对存储于存储器中的图像的子集中的候选码进行解码。
27.一种用于读取设置于物体上的代码的装置,所述装置包括: 包括二维视场(FOV)的图像传感器; 可链接至传感器以从其获取图像数据的处理器,处理器被编程以执行以下步骤: 获取FOV的图像; 标识图像中至少第一和第二关注区(ROI),其中第一 ROI不同于第二 ROI ; 尝试利用第一解码算法解码第一 ROI中的候选码;并且 尝试利用不同于第一解码算法的第二解码算法解码第二 ROI中的候选码。
28.如权利要求27所述的装置,其特征在于,第一解码算法在计算上比第二解码算法复杂。
29.如权利要求27所述的装置,其特征在于,第一解码算法比第二解码算法需要更多的时间量来完成。
30.如权利要求28所述的装置,其特征在于,第一ROI包括FOV的中心部分。
31.一种用于使用包括二维视场(FOV)的图像传感器对设置在物体上的代码进行解码的装置,所述装置包括: 包括二维视场(FOV)的图像传感器; 可链接至图像传感器的处理器,处理器被编程以执行以下步骤: 获取FOV的图像;以及 对候选码应用不同的解码算法,以尝试解码候选码,其中应用于每个候选的解码算法与候选码在FOV中的位置相关。
32.如权利要求31所述的装置,第一解码算法应用于第一关注区(ROI)中的候选码,且不同于第一解码算法的第二解码算法应用于不同于第一 ROI的第二 ROI中的候选码。
33.一种用于使用包括二维视场(FOV)的图像传感器对设置在物体上的代码进行解码的装置,所述装置包括: 包括二维视场(FOV)的图像传感器; 可链接至图像传感器的处理器,处理器被编程以执行以下步骤: (i)从传感器获取对应于FOV的图像的图像数据; (ii)尝试利用第一解码算法对图像中的候选码进行解码; (iii)在尝试解码候选码失败的情况下,将图像保存至存储器中; (iv)重复步骤(i)至(iii)直到阈值数量的解码候选码尝试失败以及候选码被成功解码中之一,在阈值数量的解码候选码尝试失败时,访问保存在存储器中的图像数据并尝试利用不同于第一解码算法的第二解码算法至少对存储于存储器中的图像数据的子集中的候选码进行解码。
全文摘要
公开一种用于在不同位置执行不同解码算法的方法和装置。一种用于使用包括二维视场(FOV)的图像传感器对设置在物体上的代码进行解码的方法和装置,该方法包括提供被编程以执行以下步骤的处理器的步骤获取FOV的图像并对所获取图像中的候选码应用不同的解码算法以尝试解码候选码,其中应用于每个候选的解码算法与候选码在FOV中的位置相关。
文档编号G06K7/10GK103150535SQ20121059576
公开日2013年6月12日 申请日期2012年11月2日 优先权日2011年11月3日
发明者J·内格罗, 叶芗芸 申请人:康耐视公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1