代码信息读取装置和代码信息读取方法与流程

文档序号:20490761发布日期:2020-04-21 22:01阅读:173来源:国知局
代码信息读取装置和代码信息读取方法与流程

所公开的技术涉及代码信息读取技术。



背景技术:

例如,为了避免产品装运中的错误并确保工厂中用于生产产品的被合并的零件的可追溯性,现在需要保持产品和零件的可追溯性,直到产品和零件被消耗或丢弃为止。为了以这种方式跟踪产品和零件,在装运和接收产品和零件的场所和在生产线场所读取被赋予瓦楞纸板、产品、零件等的代码信息,例如条形码或qr码(注册商标)。

作为用于读取代码信息的技术,已经提出了一种用于检索在条形码中包含的信息的方法。该方法包括以下步骤:检测在具有第一图像质量并捕获第一区域的第一图像中存在条形码。该方法还包括以下步骤:当检测到条形码存在时,获取具有第二图像质量并捕获第二区域的第二图像,第二图像质量高于第一图像质量,并且第二区域至少部分地与第一区域重叠。该方法还包括基于第二图像对条形码进行解码以检索信息的步骤。

还提出了即使当条形码标签在未指定的方向上通过时也能够高精度地识别附接至移动物体的条形码标签的技术。在该技术中,从安装在用于移动附有条形码标签的移动物体的带式输送机上方的多个多摄像机单元捕获的图像被发送到条形码识别装置。条形码识别装置对输入图像执行过滤处理,以从多摄像机单元捕获的图像中提取条形码。然后,条形码识别装置检测所提取的条形码的倾斜度,根据该倾斜度提取条形码的特征量,并基于所提取的特征量来识别条形码。

例如,在国际专利申请第2011-513809号的日本国家阶段公布和日本公开特许公报第9-185671号中公开了现有技术。



技术实现要素:

技术问题

在需要上述对产品和零件进行追踪的场所,当前采用一种方法,该方法要求工人使用手持式读码器逐一手动读取条形码或qr码(注册商标)。在这种情况下,工人必须暂时停止其预期的工作例如产品的接收或零件的合并等,并拿上读码器以读取条形码或qr码(注册商标)。因此,这降低了预期的工作的效率。

还存在一种安装型条形码读取器,该条形码读取器通常在装运场所等处使用,被安装在带式输送机上方,并且如上述相关技术中一样,在产品在条形码读取器下方流动的时刻读取条形码。与普通的手持式条形码读取器相比,安装型条形码读取器具有更长的可能的图像捕获距离和更大的可能的图像捕获范围。安装型条形码读取器在硬件中断等时刻捕获一个场景(一帧)的图像,识别条形码,并输出结果。

为了从一个场景的捕获图像中读取条形码或qr码(注册商标),必须在图像捕获时刻由摄像机以可识别的状态捕获条形码或qr码(注册商标)。即,必须在条形码或qr码(注册商标)未被工人、阴影等遮挡的状态下捕获要识别的条形码或qr码(注册商标)。

然而,难以在工人正进行他们的预期的工作时未意识到条形码或qr码(注册的商标)的读取的情况下,在许多工人正在工作的组装线或接收和装运产品的场所的图像捕获时刻维持前述状态。因此,由于条形码或qr码被工人、阴影等遮挡,故可能无法读取代码信息。

问题的解决方案

根据实施方式的一方面,代码信息读取装置(codeinformationreadingapparatus)包括处理单元,以当从顺序捕获的多个图像中检测到代码时,读取检测到的代码的代码信息,执行与代码信息相对应的代码在多个图像中的检测频率的计算,以及根据计算出的检测频率执行代码信息的输出。

技术效果

一方面,可以有利地抑制在读取工作目标对象所被赋予的代码信息时的失败。

附图说明

图1是根据第一实施方式的代码信息读取装置的功能框图。

图2是用于描述代码信息的检测和识别的图。

图3是示出根据第一实施方式的记录表的示例的图。

图4是示出多个帧中的代码信息的检测结果和识别结果的示例的图。

图5是示出用作根据第一实施方式的代码信息读取装置的计算机的示意性配置的框图。

图6是示出根据第一实施方式的代码信息读取处理的示例的流程图。

图7是根据第二实施方式和第三实施方式的代码信息读取装置的功能框图。

图8a和图8b是示出多个帧中的代码信息的检测结果和识别结果的示例的图。

图9是示出根据第二实施方式的记录表的示例的图。

图10是示出概率计算结果的示例的图。

图11是示出用作根据第二实施方式和第三实施方式的代码信息读取装置的计算机的示意性配置的框图。

图12是示出根据第二实施方式的代码信息读取处理的示例的流程图。

图13a和图13b是示出多个帧中的代码信息的检测结果和识别结果的示例的图。

图14是示出根据第三实施方式的记录表的示例的图。

图15是示出概率计算结果的示例的图。

图16是示出代码信息的检测结果和识别结果的示例的图。

具体实施方式

如图1所示,根据第一实施方式的代码信息读取装置10获取由摄像机30捕获的运动图像数据,并输出通过从所获取的运动图像数据读取代码信息例如条形码或qr码(注册商标)而获得的读取结果。

例如,摄像机30被安装在赋予代码信息的工作目标产品的接收和装运线的流水线上方或安装在组装线上方。摄像机30连续地捕获工人对产品进行工作的区域的运动图像并输出运动图像数据。

代码信息读取装置10在功能上包括识别单元12、计算单元16和输出单元18。

识别单元12从包括在从摄像机30获取的运动图像数据中的多个帧中的每个帧中检测代码信息,并且识别由代码信息表示的字符串。可以使用现有技术的已知技术来检测和识别代码信息。例如,如图2所示,识别单元12从每个帧70检测围绕代码信息72的外形的矩形框架74。识别单元12还识别矩形框架74中的图像,并且获取作为识别结果的字符串。

识别单元12将每个帧70的识别结果例如与帧70的帧编号相关联地记录在如图3所示的记录表80中。在如图3所示的示例中,将“帧编号”、“识别结果”和“概率”彼此关联地记录在记录表80中。稍后将描述“概率”。

当工人在未意识到代码信息72的读取的情况下完成其预期的工作例如产品的接收或零件的合并等时,要读取的代码信息72的一部分可能会丢失,可能被手遮挡,可能被掩盖等。因此,在某些情况下,代码信息72的检测和识别可能会失败。

图4示出了多个帧70中的代码信息72的检测结果和识别结果的示例。从运动图像数据的起始帧70开始,依次向每个帧70赋予帧编号。在下文中,具有帧编号i的帧70被称为“帧#i”。在图4所示的示例中,代码信息72在帧#1、#4和#5的每一个中被正确地检测和识别到。另一方面,在帧#2中,仅代码信息72的一部分被错误地检测到。因此,代码信息72的识别结果也不正确。此外,在帧#3中,工人的手在帧70中。因此,代码信息72的检测失败,并且没有获得识别结果。

如上所描述,在针对多个帧70获得的识别结果之中,正确的识别结果和错误的识别结果共存。

因此,计算单元16针对由识别单元12获得的每种类型的识别结果来统计地计算识别结果的概率。例如,计算单元16计算在一定时段内每种类型的识别结果相比于运动图像数据中包括的帧数的出现频率,作为识别结果的概率。一定时段可以是例如对一种产品进行的工作从开始到结束的时段。

例如,在图4的情况下,帧数等于5,并且获得两种类型的识别结果:“123456”和“a06745”。识别结果“123456”出现3次,并且识别结果“a06745”出现1次。在这种情况下,计算单元16将识别结果“123456”的概率计算为“3/5(60%)”,并且将识别结果“a06745”的概率计算为“1/5(20%)”。

每当在每个帧70中获得识别结果时,计算单元16就可以计算每种类型的识别结果的概率。在这种情况下,计算单元16可以基于直到当前帧70的帧数以及每种类型的识别结果已经出现的次数来计算每种类型的识别结果的概率。然后,计算单元16将计算出的每种类型的识别结果的概率记录在记录表80中的与“帧编号”相对应的“概率”字段中。

输出单元18基于由计算单元16获得的识别结果的概率计算结果,将从多种类型的识别结果中选择的识别结果作为最终读取结果输出。选择作为最终读取结果的识别结果可以是具有最高概率的识别结果。可以选择具有大于或等于某个值的概率的多个识别结果。

代码信息读取装置10可以由例如图5所示的计算机40实现。计算机40包括中央处理单元(cpu)41、用作临时存储区域的存储器42以及非易失性存储单元43。计算机40还包括输入/输出设备44,例如输入单元和显示单元,以及控制从存储介质49读取数据和向存储介质49写入数据的读/写(r/w)单元45。计算机40还包括耦接到网络例如因特网的通信接口(i/f)46。cpu41、存储器42、存储单元43、输入/输出设备44、r/w单元45和通信i/f46经由总线47彼此耦接。

存储单元43可以由硬盘驱动器(hdd)、固态驱动器(ssd)、闪存等实现。用于使计算机40用作代码信息读取装置10的代码信息读取程序50被存储在用作存储介质的存储单元43中。代码信息读取程序50包括识别处理52、计算处理56和输出处理58。

cpu41从存储单元43读取代码信息读取程序50,将代码信息读取程序50加载到存储器42中,并顺序执行代码信息读取程序50中包括的处理。cpu41执行识别处理52来作为图1所示的识别单元12进行操作。cpu41执行计算处理56来作为图1所示的计算单元16进行操作。cpu41执行输出处理58来作为图1所示的输出单元18进行操作。因此,执行代码信息读取程序50的计算机40用作代码信息读取装置10。执行代码信息读取程序50的cpu41是硬件。

由代码信息读取程序50实现的功能还可以由例如半导体集成电路来实现,更具体地可以由专用集成电路(asic)等来实现。

接下来,将描述由根据第一实施方式的代码信息读取装置10执行的操作。

当指示了针对被赋予代码信息72例如条形码或qr码(注册商标)的工作目标产品的工作开始的信号被输入到代码信息读取装置10时,代码信息读取装置10执行图6所示的代码信息读取处理。代码信息读取处理是所公开的技术的代码信息读取方法的示例。

指示上述工作开始的信号可以是例如响应于针对每个产品开始工作时工人按下操作开关而输出的信号,或者是响应于传感器检测到由带式输送机等输送的产品经过某个位置而从传感器输出的信号。当未检测到代码信息72的帧70在从摄像机30输入到代码信息读取装置10的运动图像数据中持续一定时段或更长时段(例如,一秒或更多秒)时,可以识别为当前产品的工作已经完成,并且针对下一个产品的工作将要开始。

在图6所示的代码信息读取处理的步骤s12中,识别单元12从摄像机30输入的运动图像数据中获取一帧的图像数据。

在步骤s14中,识别单元12然后从在步骤s12中获取的帧70中检测代码信息72,并识别由代码信息72表示的字符串。

在步骤s16中,识别单元12然后例如与帧编号相关联地将识别结果记录在如图3所示的记录表80中。

例如,当在帧#1中获得识别结果“123456”时,识别单元12将“1”记录在记录表80的“帧编号”字段中,并将“123456”记录在记录表80的“识别结果”字段中,如图3所示。

在步骤s18中,计算单元16然后计算每种类型的识别结果相比于从工作开始到当前时间已处理的帧数的出现频率作为识别结果的概率,并将计算出的概率记录在记录表80的“概率”字段中。

例如,在上述示例的情况下,直至当前帧为止的帧数为1,并且识别结果“123456”出现一次。因此,识别结果“123456”的概率“1/1(100%)”被记录在如图3中的列p所示的“概率”字段中。假设在帧#2中获得了与帧#1的识别结果不同的识别结果“a06745”。在这种情况下,识别结果“123456”的概率“1/2(50%)”和识别结果“a06745”的概率“1/2(50%)”被记录在如图3中的列q所示的“概率”字段中。

在步骤s20中,识别单元12然后确定当前经受工作的产品的工作是否完成。例如,当工人按下指示工作结束的操作开关时,或者当传感器检测到工作目标产品由带式输送机等输送并从工作区域中退出时等,可以确定工作完成。当输入了指示工作开始的上述信号时,可以确定要开始下一个产品的工作,即,完成了当前经受工作的产品的工作。如果当前经受工作的产品的工作尚未完成,则处理返回到步骤s12。如果工作完成,则处理进入步骤s22。

在步骤s22中,输出单元18基于由计算单元16确定的识别结果的概率计算结果,将从各类型的识别结果中选择的识别结果作为最终读取结果输出。

例如,假设当在步骤s20中确定完成了当前经受工作的产品的工作时,直至帧#5为止的识别结果和各类型的识别结果的概率被记录在如图3所示的记录表80中。在这种情况下,输出单元18通过使用针对最后一帧70(在这种情况下为帧#5)计算出的概率来选择最终读取结果。例如,输出单元18可以将识别结果“123456”的概率“3/5(60%)”与识别结果“a06745”的概率“1/5(20%)”进行比较,并输出“123456”作为最终读取结果。

当最终读取结果的输出完成时,代码信息读取处理结束。代码信息读取装置10等待指示下一个工作开始的信号的输入。在通过使用指示工作开始的信号做出步骤s20中的确定的情况下,在步骤s22完成之后,处理返回到步骤s12。

如上所描述,根据第一实施方式的代码信息读取装置针对通过从运动图像数据中包括的多个帧的每一个中识别代码信息而获得的每种类型的识别结果,统计地计算识别结果的概率。当工人在未意识到读取代码信息的操作的情况下做其预期的工作例如产品的接收和零件的合并时,可能存在由于要识别的代码信息的一部分暂时丢失,暂时被手遮挡,暂时被掩盖等而致使代码信息不被正确识别的帧。如上所描述,根据第一实施方式的代码信息读取装置统计地对从运动图像数据的多个帧中的每个帧获取的识别结果进行处理。因此,代码信息读取装置可以准确地读取代码信息。即,不再需要有意识地读取代码信息的工作。因此,用于读取被赋予每个工作目标对象的代码信息的工作可以变得高效。

在第一实施方式中,已经描述了基于每种类型的识别结果相比于帧总数的出现频率来计算概率的情况;然而,配置不限于此。例如,可以基于每种类型的识别结果相比于所有帧中获得识别结果的帧的数量的出现频率来计算概率。在这种情况下,例如,当存在从中不能获得识别结果的帧时,例如图3和图4中的帧#3,在概率的计算中不使用这种帧。

在第一实施方式中,已经描述了基于概率来选择识别结果并且将所选择的识别结果作为最终读取结果输出的情况;然而,配置不限于此。由于读取结果的使用取决于在随后的阶段执行的处理,因此所有类型的识别结果可以与各种类型的识别结果的概率计算结果相关联并且可以作为读取结果输出。例如,在图3所示的示例的情况下,识别结果“123456”的概率“3/5(60%)”和识别结果“a06745”的概率“1/5(20%)”可以作为读取结果一起输出。

接下来将描述第二实施方式。在第一实施方式中,描述了向一个工作目标产品赋予一条代码信息72的示例;然而,在某些情况下,可以向一个产品赋予两条或更多条代码信息72。由于工人进行合并工作等,故代码信息72不一定出现在每个帧70中的相同位置。因此,当在一帧中包括两条或更多条代码信息72时,识别结果必须通过每条代码信息72进行分组。

在第二实施方式中,将描述解决这种情况的配置。在根据第二实施方式的代码信息读取装置中,与根据第一实施方式的代码信息读取装置10的配置基本相同的配置由相同的附图标记表示,并且将省略其详细描述。

如图7所示,根据第二实施方式的代码信息读取装置210在功能上包括识别单元12、分组单元214、计算单元216和输出单元18。

分组单元214基于由识别单元12检测到的代码信息72的特征,对从多个帧70获得的识别结果进行分组。例如,分组单元214将被估计是从相同的代码信息72识别的识别结果分组成同一组。具体地,分组单元214通过使用关于代码信息72的大小的信息作为代码信息72的特征来对识别结果进行分组。当代码信息72具有矩形形状时,关于代码信息72的大小的信息可以是代码信息72的纵横比、代码信息72的长度大小和宽度大小中的至少之一等。在第二实施方式中,将描述使用代码信息72的长度大小和宽度大小的情况。

图8a和图8b示出了在每个帧70中包括两条不同的代码信息72的情况的示例。在图8a和图8b所示的示例中,在帧#1和#2中,检测到代码信息72a,如矩形框架74a所指示的,并且检测到代码信息72b,如矩形框架74b所指示的。在帧#3中,检测到代码信息72a和代码信息72b。然而,代码信息72b被错误地识别。在帧#4和#5中,代码信息72b被部分丢失,并且未检测到代码信息72b本身。因此,没有获得识别结果。

当无区别地描述代码信息72a和代码信息72b时,以下将代码信息72a和代码信息72b简称为“代码信息72”。当无区别地描述矩形框架74a和74b时,以下将矩形框架74a和74b简称为“矩形框架74”。

在第二实施方式中,与矩形的左下角相对应的像素的坐标位置(x1,y1)和与矩形的右上角相对应的像素的坐标位置(x2,y2)被用作表示矩形框架74的矩形信息。

针对每个帧70,分组单元214根据从帧70中检测到的每条代码信息72的矩形信息((x1,y1),(x2,y2))来计算代码信息72的长度大小(=x2-x1)和宽度大小(=y2-y1)。例如,在图8a和图8b所示的帧#1中,分组单元214根据识别结果为“12345”的代码信息72a的矩形信息((3,4),(7,7))来计算长度大小(=7-3=4)和宽度大小(=7-4)。

分组单元214将计算出的代码信息72的大小例如与帧70的帧编号和识别结果相关联地记录在如图9所示的记录表280的“大小”字段中。在图9所示的示例中,大小在“大小”字段中以代码信息72的长度大小×宽度大小的形式记录。

在图9所示的记录表280中,“处理编号”被分配给从各个帧70获得的每个识别结果。除了与第一实施方式中的记录表80基本上相同的“帧编号”字段和“识别结果”字段之外,记录表280包括上述的“大小”字段和稍后描述的“组”字段。

分组单元214基于在记录表280中记录的大小向每个识别结果分配组。具体地,当具有等于所计算的大小的大小的识别结果已经记录在记录表280中时,分组单元214将与等同大小的识别结果相同的组分配给该识别结果。当等同大小的识别结果未记录在记录表280中时,分组单元214将新的组分配给该识别结果。分组单元214将分配给每个识别结果的组的身份信息记录在记录表280的“组”字段中。

例如,在图9所示的示例中,从帧#1中检测到的由矩形框架74a指示的代码信息72a的识别结果被作为处理编号#1记录在记录表280中。由于此时没有记录其他大小,因此分组单元214将新的组“a”分配给该识别结果。同样,从帧#1中检测到的由矩形框架74b指示的代码信息72b的识别结果被作为处理编号#2记录在记录表280中。由于此时未记录等于与处理编号#2的识别结果相对应的大小“4×1”的大小,因此分组单元214将新的组“b”分配给该识别结果。

从帧#2中检测到的由矩形框架74a指示的代码信息72a的识别结果被作为处理编号#3记录在记录表280中。与处理编号#3的识别结果相对应的大小是“4×3”,其等于与处理编号#1的识别结果相对应的大小。因此,如在处理编号#1的情况下一样,分组单元214将组“a”分配给处理编号#3的识别结果。

针对每个组中的每种类型的识别结果,计算单元216计算识别结果的概率。具体地,计算单元216计算每种类型的识别结果相比于每组的计数(每组中包括的识别结果的总数)的出现频率作为识别结果的概率。

例如,图10示出基于图9所示的记录表280的概率计算结果。具体地,对于组“a”,计数等于5,并且只有出现五次的一种类型的识别结果“12345”。在这种情况下,计算单元216将组“a”的识别结果“12345”的概率计算为“5/5(100%)”。对于组“b”,计数等于3,并且有两种类型的识别结果“abcde”和“acdg”。识别结果“abcde”出现两次,并且识别结果“acdg”出现一次。在这种情况下,计算单元216将识别结果“abcde”的概率计算为“2/3(66%)”,并且将识别结果“acdg”的概率计算为“1/3(33%)”。

代码信息读取装置210可以由例如图11所示的计算机40实现。用于使计算机40用作代码信息读取装置210的代码信息读取程序250被存储在用作存储介质的存储单元43中。代码信息读取程序250包括识别处理52、分组处理254、计算处理256和输出处理58。

cpu41从存储单元43读取代码信息读取程序250,将代码信息读取程序250加载到存储器42中,并顺序执行代码信息读取程序250中包括的处理。cpu41执行分组处理254来作为图7所示的分组单元214进行操作。cpu41执行计算处理256来作为图7所示的计算单元216进行操作。其他处理与根据第一实施方式的代码信息读取程序50的处理基本相同。因此,执行代码信息读取程序250的计算机40用作代码信息读取装置210。

由代码信息读取程序250实现的功能还可以由例如半导体集成电路来实现,更具体地可以由asic等来实现。

接下来将描述由根据第二实施方式的代码信息读取装置210执行的操作。在第二实施方式中,代码信息读取装置210执行图12所示的代码信息读取处理。在根据第二实施方式的代码信息读取处理中,与根据第一实施方式的代码信息读取处理基本相同的处理由相同的附图标记表示,并且将省略其详细描述。

在图12所示的代码信息读取处理的步骤s12和s14之后,分组单元214在接下来的步骤s32中从在步骤s14中获得的识别结果中选择一个识别结果。

在步骤s34中,分组单元214然后通过使用与所选择的识别结果相对应的矩形框架74的矩形信息来计算与在步骤s32中选择的识别结果相对应的代码信息72的大小。

在步骤s36中,分组单元214然后参考记录表280,以确定是否存在与等于在步骤s34中计算出的大小的大小相关联的识别结果。如果存在与等同大小相关联的识别结果,则处理进入步骤s38。如果不存在这种识别结果,则处理进入步骤s40。

在步骤s38中,分组单元214将与在步骤s36中确定存在与等同大小相关联的识别结果的与该识别结果相关联的组相同的组分配给在步骤s32中选择的识别结果。

另一方面,在步骤s40中,分组单元214将新的组分配给在步骤s32中选择的识别结果。

在步骤s216中,识别单元12然后将在步骤s32中选择的识别结果记录在记录表280的“识别结果”字段中。分组单元214还将在步骤s34中计算出的大小和在步骤s38或s40中分配的组的身份信息分别记录在记录表280的“大小”和“组”字段中。

在步骤s42中,分组单元214然后确定在步骤s14中获得的识别结果中是否存在未执行步骤s32至s216的处理的识别结果。如果存在未处理的识别结果,则处理返回到步骤s32。如果不存在未处理的识别结果,则处理进入步骤s20。

如果在步骤s20中确定完成了当前经受工作的产品的工作,则计算单元216针对每个组中的每种类型的识别结果在步骤s218中计算识别结果的概率。

在步骤s22中,输出单元18然后输出最终读取结果。例如,在图9和图10所示的示例的情况下,输出单元18针对组a输出具有“100%”的概率的“12345”,并且针对组b输出具有较高概率的识别结果“abcde”,作为最终读取结果。然后,代码信息读取处理结束。

如上所描述,根据第二实施方式的代码信息读取装置基于代码信息的特征例如代码信息的大小,对从多个帧获得的识别结果进行分组。针对每个组中的每种类型的识别结果,代码信息读取装置计算识别结果的概率。因此,代码信息读取装置可以实现与第一实施方式的优点类似的优点,并且即使当一帧中包括多条代码信息时,也可以准确地获得每条代码信息的识别结果。

在第二实施方式中,已经描述了在完成一个产品的工作之后计算每个识别结果的概率的情况;然而,配置不限于此。如在第一实施方式中,可以针对每个帧计算概率,并且可以通过使用针对最终帧计算的概率来输出最终读取结果。

在第二实施方式中,已经描述了当代码信息72的大小等于记录的大小时相同的组被分配给代码信息72的识别结果的情况;然而,关于大小是否相等的确定不限于关于大小是否完全匹配的确定。甚至当代码信息72的大小的差异小于或等于某个值时,也可以考虑代码信息72的检测误差来确定大小是等同的。

接下来将描述第三实施方式。在第二实施方式中,已经描述了一帧包括两条或更多条具有不同特征例如大小的代码信息72的情况。然而,一帧可以包括具有相同特征例如大小的不同条代码信息72。在这种情况下,可能无法通过基于诸如大小的特征进行分组来对识别结果正确地进行分组。

在第三实施方式中,将描述解决这种情况的配置。在根据第三实施方式的代码信息读取装置中,与根据第二实施方式的代码信息读取装置210的配置基本相同的配置由相同的附图标记表示,并且将省略其详细描述。

如图7所示,根据第三实施方式的代码信息读取装置310在功能上包括识别单元12、分组单元314、计算单元216和输出单元18。

分组单元314通过使用关于各个帧70中的各条代码信息72的位置的信息来对各条代码信息72进行分组。例如,当两个连续帧70中的各条代码信息72的位置之间的差小于或等于特定值时,分组单元314将两个帧70中包括的各条代码信息72分组为同一组。当各条代码条信息72的位置之间的差超过特定值时,分组单元314将两个帧70中包括的代码条信息72分组为不同的组。

图13a和图13b示出了在每个帧70中包括具有等同大小的两条代码信息72的情况的示例。在图13a和图13b所示的示例中,从每个帧70中检测到代码信息72a,如矩形框架74a所指示的。从帧#1、#2、#4和#5中检测到代码信息72b,如由矩形框架74b指示的。在帧#3中错误地检测到代码信息72b,如由矩形框架74c所示的。结果,在代码信息72b的识别结果中也引起错误。

针对每个帧70,分组单元314在如图14所示的记录表380的“位置”字段中例如与帧70的帧编号和识别结果相关联地记录从当前帧70中检测到的每条代码信息72的参考位置(x0,y0)。参考位置可以是例如检测到代码信息72的矩形框架74的左下角的坐标位置。

除了上述的“位置”字段之外,图14所示的记录表380还包括与第二实施方式中的记录表280基本相同的“处理编号”字段、“帧编号”字段、“识别结果”字段和“组”字段。

针对每个帧70,分组单元314计算从当前帧70中检测到的每条代码信息72的参考位置(x0,y0)与从前一帧70中检测到的每条代码信息72的参考位置(xi,yi)之间的差。分组单元314以以下方式计算位置差di。

di=√((xi-x0)2+(yi-y0)2)

当位置差di小于或等于特定值a时,分组单元314将与和参考位置(xi,yi)相对应的识别结果的组相同的组分配给具有参考位置(x0,y0)的代码信息72的识别结果。当位置差di超过特定值a时,分组单元314将新的组分配给具有参考位置(x0,y0)的代码信息72的识别结果。

可以基于例如在一帧的周期中的代码信息72的最大移动距离来设置特定值a。具体地,当被赋予了代码信息72的工作目标对象在线例如带式输送机上时,根据线的移动速度来确定一帧的周期(30fps(每秒传输帧数)的情况下为33msec(毫秒))的移动距离。然后将移动距离转换为帧70中的像素数。像素数可以用作特定值a。可以考虑由于工人对工作目标对象执行工作而引起的移动量以及线的移动速度来确定该特定值a。考虑到当使用矩形框架74检测代码信息72时引起的位置误差,在特定值a中可以包括裕度。

分组单元314将分配给每个识别结果的组的身份信息记录在记录表380的“组”字段中。

例如,假设当前帧70是帧#2。在这种情况下,将通过使用图13a和图13b所示的示例来描述要分配给与当前帧#2中的处理编号#3相关联的识别结果的组。处理编号#3的参考位置(x0,y0)为(3,3)。分组单元314以下列方式计算参考位置(x0,y0)=(3,3)与前一帧#1中的处理编号#1的参考位置(x1,y1)=(3,4)之间的差和参考位置(x0,y0)=(3,3)与前一帧#1中的处理编号#2的参考位置(x2,y2)=(10,12)之间的差:

d1=√((3-3)2+(4-3)2)=1

d2=√((10-3)2+(12-3)2)=11.4

例如,当特定值a=3时,由于d1≤a并且d2>a,因此分组单元314将分配给处理编号#1的识别结果的组“a”分配给处理编号#3的识别结果。当当前帧70中的参考位置与前一帧70中的所有参考位置之间的差超过特定值a时,分组单元314将新的组分配给当前帧70的识别结果。在前一帧70中存在满足d1≤a的多个参考位置的情况下,可以分配与在距离上最接近的参考位置相对应的组。

如在第二实施方式中,计算单元216针对每个组中的每种类型的识别结果来计算识别结果的概率。

例如,图15示出基于图14所示的记录表380的概率计算结果。具体地,对于组“a”,计数等于5,并且只有出现五次的一种类型的识别结果“12345”。在这种情况下,计算单元216将组“a”的识别结果“12345”的概率计算为“5/5(100%)”。对于组“b”,计数等于5,并且获得两种类型的识别结果“abcde”和“acdg”。识别结果“abcde”出现四次,并且识别结果“acdg”出现一次。在这种情况下,计算单元216将识别结果“abcde”的概率计算为“4/5(80%)”,并且将识别结果“acdg”的概率计算为“1/5(20%)”。

代码信息读取装置310可以由例如图11所示的计算机40实现。用于使计算机40用作代码信息读取装置310的代码信息读取程序350被存储在用作存储介质的存储单元43中。代码信息读取程序350包括识别处理52、分组处理354、计算处理256和输出处理58。

cpu41从存储单元43读取代码信息读取程序350,将代码信息读取程序350加载到存储器42中,并顺序执行代码信息读取程序350中包括的处理。cpu41执行分组处理354来作为图7所示的分组单元314进行操作。其他处理与根据第二实施方式的代码信息读取程序250的处理基本相同。因此,执行代码信息读取程序350的计算机40用作代码信息读取装置310。

由代码信息读取程序350实现的功能还可以由例如半导体集成电路来实现,更具体地可以由asic等来实现。

将描述由根据第三实施方式的代码信息读取装置310执行的操作。如在第二实施方式中,在第三实施方式中执行图12所示的代码信息读取处理。下面将描述与根据第二实施方式的代码信息读取处理的不同之处。

在步骤s34中,分组单元314计算与在步骤s32中选择的识别结果相对应的参考位置(x0,y0)与前一帧70中的每个识别结果的参考位置(xi,yi)之间的位置差di。在步骤s36中,分组单元314确定是否存在位置差di小于或等于特定值a的参考位置(xi,yi)。如果存在满足di≤a的参考位置(xi,yi),则处理进入步骤s38。如果不存在这样的参考位置(xi,yi),则处理进入步骤s40。

在步骤s38中,分组单元314将与满足di≤a的参考位置(xi,yi)相对应的识别结果的组相同的组分配给与参考位置(x0,y0)相对应的识别结果。另一方面,在步骤s40中,分组单元314将新的组分配给与参考位置(x0,y0)相对应的识别结果。

如上所描述,根据第三实施方式的代码信息读取装置基于各条代码信息在各帧中的位置之间的差,对从多个帧获得的识别结果进行分组。代码信息读取装置针对每个组中的每种类型的识别结果来计算识别结果的概率。因此,代码信息读取装置可以实现与第一实施方式的优点类似的优点,并且即使当一帧中包括具有相同特征例如大小的多条代码信息时,也可以准确地获得每条代码信息的识别结果。

存在以下情况:如图16所示,暂时仅检测到代码信息72的一部分,因此在识别结果中出现错误。在这种情况下,如在第二实施方式中,当根据关于代码信息72的大小的信息对识别结果进行分组时,可能会带来不便。例如,为在图16所示的帧70中暂时检测到的矩形框架74d的大小分配新的组,并且该组的识别结果“acd”的概率被计算为1/1(100%)。

为了避免这种情况,可以在排除可能是错误识别的识别结果之后计算每种类型的识别结果的概率。例如,可以排除矩形框架74的大小与预定大小不匹配的识别结果、开始部分的字符串与预定字符串不匹配的识别结果、字符的数量与字符的预定数量不匹配的识别结果等。可以排除在两个或更多个帧中未连续出现(暂时出现)的识别结果。

尽管在上述实施方式的每一个中示出并描述了条形码作为代码信息的示例,但是这些实施方式类似地适用于qr代码(注册商标)。

在上述实施方式中,已经描述了代码信息读取程序被预先存储(安装)在存储单元中的配置;然而,配置不限于此。可以以存储有代码信息读取程序的存储介质例如光盘只读存储器(cd-rom)、数字多功能光盘(dvd)-rom、通用串行总线(usb)存储器等的形式来提供根据所公开的技术的代码信息读取程序。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1