康耐视博客

详细了解移动设备的多码条码读取

Multi-Code large

毫无疑问,条码扫描可为很多流程带来速度和准确性方面的生产力提高。从杂货店到体育用品,几乎每个零售店都能从可扫描的产品条码中受益,因为它不仅可用于销售点,还可用于库存管理和补货。配送中心、仓库、活动门票、航线... 使用条码的行业和应用几乎没有尽头。

为了追求更高的生产力,现在各组织都希望一次扫描能读取多个条码。很明显,有半打左右 GS1 条码的货板标签这样的应用就是一种扩展应用。仓库收货时扫描多条码产品标签是另一种常见应用。但是随着移动设备解决方案变得越来越强大,使用了更好的相机和更快的处理器,用户也在寻找更高级的多码扫描用途。

例如有一个案例,最近有一个客户告诉我们他们有迫切的多码条码读取需求。在他们的案例中,物品是从供应柜中取出的,产品标签贴在重新整理的表格上;每个标签都有两个识别产品的条码;每页有 1 到 15 个标签,分为一到两列。他们希望使用移动设备扫描每页条码,只要将手机悬停在页面上即可扫描整个页面。

他们向我们展示了一个竞争产品的精巧演示,该演示可以比较快速地突出显示条码,然后返回一个结果列表。他们的第一次尝试是将手机停在纸的上方拍摄整个页面;但是因为条码比较小,其中有些可能有质量问题,软件无法一次全部读出,所以效果’不太好。’

他们的第二次尝试是使用“批处理模式”,即手机贴近代码,然后以扫描的方式在整个页面上移动,在这个过程中收集需要的代码。因为手机靠得比较近,所以这个方法效果较好一些。但有两个问题:条码未按纸上显示的顺序返回(这是他们的需求的关键),有时候结果中会莫名其妙地丢失一些代码。我们需要做的就是提供一个相同功能的解决方案,但要按顺序返回所有代码。很简单,对不对?并不是。

多条码读取工作原理

几十年来,康耐视一直在通过固定式系统手持扫描仪、以及最近的移动条码终端、手机和平板提供条码扫描系统。多条码读取在固定式应用中比较常见,但是在手持和移动设备中比较少见。主要原因是图像稳定性:在固定式应用中(扫码系统安装在固定位置),相机不移动,朝向已知,而且已根据扫描的物品调整到最佳扫描距离和视野。此外,因为照明和移动都是可控或可理解的,所以能够更好地调整扫描性能。虽然固定式扫描的这些特征可为多条码扫描提供更加可控的环境,但这并不是一项简单的工作。

在理想的世界中,图像扫描仪可以拍摄条码的快照并定位和解码每个条码;但实际上很少会是这种情况,—因为聚焦、照明、歪斜等原因,并不是每个条码都是可定位或可解码的,即使是固定式应用,这种情况几乎也从不会发生。实际上,识读多条码先要检查相机视频流中的多个图片(帧),然后总结这个系列的扫描结果。在大部分应用中,因为可能不会有一个帧中包含所有条码,这意味着要整合 10、20、30 甚至更多帧的解码结果。

因为要分析多个帧并总结结果,所以解码算法必须足够成熟,可以清理重复的同时避免筛选掉有效的数据。考虑以下四条码的简单示例:


多码 - 4 条码示例

用户使用多码扫描仪扫描这些代码时,它们预期是四个结果:{ A, B, C, A}。’假定我们扫描这些代码时,因为聚焦和照明的差异,我们要扫描两个图像(帧)才能找到所有代码。在第一帧,我们解码了上面的两个条码,{ A, B }:


多码 - 帧 1

在第二帧,我们解码了下面的三个 { B, C, A }:


多码 – 第二帧

每个帧都代表一个条码集,但我们’不能简单地将这两个集合整合到一起:否则我们的结果会成为 { A, B, C };’我们丢掉了第二个 A!因此,整合多个帧的结果要比简单地删除重复条码值更为复杂。

增加一点(或很多)动作

看起来,整合多个帧结果的解决方案应该在筛选重复项时包含位置信息和条码值;毕竟,’在我们的示例中,很明显第二个条码 A 的位置与第一帧中的第一个完全不同。某些多条码应用确实是这样判断条码的重复性。但是,这需要各个图像帧之间的条码相对位置不’会变化,或者至少变化极小。

我们再考虑使用移动设备的情况,这通常要通过相机在屏幕上提供实时图像,以便用户可以使用移动设备定位(瞄准)要扫描的条码。操作移动设备时,即使手非常稳定,手机也会一直移动,因此会拍摄和解码很多帧。

上面是一个非常简单的示例,用户可能一次即可完成相机定位并拍摄到所有四个条码。如果有很多代码(就像我们客户’的示例;一整张纸),现在用户要在所有条码上“移动”相机才能全部扫描到时,如何应对?换句话说,要拍摄所有条码,就需要移动相机。

处理手持终端的移动是一件非常困难的事,因为扫描仪通常不知道移动的速度和方向—而且更糟糕的是,随着用户继续移动设备,这些参数几乎肯定会继续发生变化。

要是只有多条码扫描这么简单也就好了

但另一个让多码扫描变得更复杂的问题是,它不仅要找到所有条码,还要判断什么时候停止查找更多条码。在我们上面的简单示例中,要扫描的条码数量是已知的。可以明确地配置扫描仪查找四个条码,然后返回结果。

但在客户的用例’中,一页上可能有两到 30 个条码中的任意数量时应如何?如果一个页面上有未知数量的条码,而且某些是丢失的或损坏的,多条码系统如何通知用户呢?多条码系统怎么才能知道已经读完了所有代码呢?到目前为止,这是未经过深思熟虑的多条码扫描解决方案的最大陷阱:丢失代码。如果处理不当,丢失的代码很容易会将多条码扫描方式带来的生产力提高消耗殆尽。

不要’认为演示就是一切的一切

在我们客户’的用例中,他们尝试使用的演示返回了不可靠的结果,很可能是因为:

  • 他们尝试扫描的条码中有数据有效的重复代码—但扫描软件未将它们作为相同条码的重复读取筛选出来。
  • 用户移动手机拍摄代码时,扫描仪软件无法准确地计算扫描方向,因此无法按代码在页面上的准确顺序返回代码。因为扫描软件不’知道页面“顶部”在哪里,所以条码是按扫描顺序返回的,而不是页面上的实际顺序。

但即使解决了这两个问题,这个工作流程仍然无法解决无法读取的条码—此类系统的用户无法知道丢失了哪个代码并需要手动处理。

最后,我们仍然推荐了一个多条码解决方案:用户每次扫描 2 个代码标签:这样的方法可以随着用户的移动检查各个标签/扫描,提供正面反馈(如果有问题则提供负面反馈)。这样的方法’虽然不像原来演示的那么美好,但它是用户可以使用且稳定的工作流程。

随着高分辨率相机和强大处理器的出现,手机和平板也越来越有能力执行复杂的条码扫描任务,包括多码读取。但不要’以为一次扫描整张纸上的条码或整个货架的产品会是最好的工作流程。这些场景通常是在理想情况下进行的,因此可能会产生一些美好的演示,但是’设计多码工作流程时要考虑到可能影响到其效果的所有变量。要了解康耐视提供的移动终端和其他移动解决方案,请下载移动解决方案产品指南

更多帖子

获得更多产品支持与培训

加入MYCOGNEX

是否有任何疑问?

世界各地的康耐视代表可以随时为您提供支持,满足您的视觉和工业读码需求。

联系我们
Loading...