用于验证标记的真实性的方法和系统转让专利

申请号 : CN201580062910.5

文献号 : CN107004110B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 迈克尔·C·苏波斯基

申请人 : 系统科技解决方案公司

摘要 :

在一个应用中,处理器:(1)从图像采集设备接收候选标记的图像,(2)使用该图像来测量候选标记上的多个位置处的一个或多个特征,产生第一组度量,(3)从第一组度量中删除具有优势幅值的度量,产生修整的第一组度量,(4)从计算机可读存储器检索表示在原始标记上的多个位置处测量的一个或多个特征的第二组度量,(5)从第二组度量中删除与从第一组度量中删除的度量相对应的度量,产生修整的第二组度量,(6)将修整的第一组度量与修整的第二组度量进行比较,以及(7)基于该比较确定候选标记是否是真实的。

权利要求 :

1.一种用于验证标记的真实性的方法,所述方法包括:从图像采集设备接收候选标记的图像;

使用所述图像来测量所述候选标记上多个位置处的一个或多个特征,得到第一组度量;

从所述第一组度量中删除指示所述候选标记受到损坏的度量,产生修整的第一组度量;

从计算机可读存储器检索表示在原始标记上多个位置处测量的一个或多个特征的第二组度量;

从所述第二组度量中删除与从所述第一组度量中删除的度量相对应的度量,从而产生修整的第二组度量;

将所述修整的第一组度量与所述修整的第二组度量进行比较;以及基于所述比较确定所述候选标记是否可被验证为是真实的。

2.根据权利要求1所述的方法,其中,所述删除指示所述候选标记受到损坏的度量包括:删除具有优势幅值的度量。

3.根据权利要求2所述的方法,还包括:将在所述第一组度量中的最高度量识别为具有所述优势幅值。

4.根据权利要求2所述的方法,还包括:将在所述第一组度量中最高并超过预定阈值的度量识别为具有所述优势幅值。

5.根据权利要求2所述的方法,还包括:如果确定所述度量高于预定阈值,则识别度量具有所述优势幅值。

6.根据权利要求1所述的方法,还包括:基于所述比较,如果所述标记被确定为不是真实的,则执行进一步动作,包括:从所述修整的第一组度量中删除指示所述候选标记受到损坏的另外度量,从而产生修整的第三组度量;

从所述修整的第二组度量中删除与从所述修整的第一组度量中删除的度量相对应的度量,从而产生修整的第四组度量;

将所述修整的第三组度量与所述修整的第四组度量进行比较;以及基于所述修整的第三组度量和所述修整的第四组度量的比较来确定所述标记是否可被验证为是真实的。

7.根据权利要求6所述的方法,还包括:对后续修整的度量组进行重复的删除、比较和确定步骤,直到所述候选标记的修整的度量组中剩余的度量小于预定阈值。

8.根据权利要求1所述的方法,还包括:对所述候选标记的纠错冗余进行解码,以识别所述候选标记的损坏部分,其中,从所述第一组度量中删除的度量与识别的损坏部分相对应。

9.一种用于验证标记的真实性的方法,所述方法包括:从图像采集设备接收候选标记的图像;

使用所述图像来测量所述候选标记上多个位置处的一个或多个特征,得到第一组度量;

从计算机可读存储器检索表示在原始标记上多个位置处测量的一个或多个特征的第二组度量;

将所述第一组度量与所述第二组度量进行比较;

基于所述第一组度量与所述第二组度量的比较来确定所述候选标记是否是真实的;

如果基于所述第一组度量和所述第二组度量之间的比较,所述候选标记未被确定为是真实的,则执行进一步的步骤,包括:从所述第一组度量中删除具有优势幅值的度量,产生修整的第一组度量;

从所述第二组度量中删除与从所述第一组度量中删除的度量相对应的度量,从而产生修整的第二组度量;

将所述修整的第一组度量与所述修整的第二组度量进行比较;以及基于所述修整的第一组度量与所述修整的第二组度量的比较来确定所述标记是否可被验证为是真实的。

10.根据权利要求9所述的方法,还包括:将在所述第一组度量中最高的度量识别为具有所述优势幅值。

11.根据权利要求9所述的方法,还包括:将在所述第一组度量中最高并超过预定阈值的度量识别为具有所述优势幅值。

12.根据权利要求9所述的方法,还包括:如果确定所述度量高于预定阈值,则识别度量具有所述优势幅值。

13.根据权利要求9所述的方法,还包括:基于所述比较,如果所述标记被确定为不是真实的,则执行进一步动作,包括:从所述修整的第一组度量中删除指示所述候选标记受到损坏的另外度量,从而产生修整的第三组度量;

从所述修整的第二组度量中删除与从所述修整的第一组度量中删除的度量相对应的度量,从而产生修整的第四组度量;

将所述修整的第三组度量与所述修整的第四组度量进行比较;以及基于所述修整的第三组度量和所述修整的第四组度量的比较来确定所述标记是否可被验证为是真实的。

14.根据权利要求13所述的方法,还包括:对后续修整的度量组进行重复的删除、比较和确定步骤,直到所述候选标记的修整的度量组中剩余的度量小于预定阈值。

15.根据权利要求9所述的方法,还包括:对所述候选标记的纠错冗余进行解码,以识别所述候选标记的损坏部分,其中,从所述第一组度量中删除的度量与识别的损坏部分相对应。

16.一种用于验证标记的真实性的方法,所述方法包括:从图像采集设备接收候选标记的图像;

使用所述图像来测量所述候选标记上多个位置处的一个或多个特征,从而产生总体度量组;

将所述总体度量组划分为多个度量组,其中包括第一组度量;

从计算机可读存储器检索表示在真实标记上多个位置处测量的一个或多个特征的第二组度量;

从所述第一组度量中删除具有优势幅值的度量,产生修整的第一组度量;

从所述第二组度量中删除与从所述第一组度量中删除的度量相对应的度量,从而产生修整的第二组度量;

将所述修整的第一组度量与所述修整的第二组度量进行比较;以及基于所述比较确定所述标记是否能够被验证为是真实的。

17.一种包括处理器的计算机系统,所述处理器执行的动作包括:从图像采集设备接收候选标记的图像;

使用所述图像来测量所述候选标记上多个位置处的一个或多个特征,得到第一组度量;

从第一组度量中删除指示所述候选标记受到损坏的度量,产生修整的第一组度量;

从计算机可读存储器检索表示在原始标记上多个位置处测量的一个或多个特征的第二组度量;

从所述第二组度量中删除与从所述第一组度量中删除的度量相对应的度量,从而产生修整的第二组度量;

将所述修整的第一组度量与所述修整的第二组度量进行比较;以及基于所述比较确定所述候选标记是否可被验证为是真实的。

18.根据权利要求17所述的计算机系统,其中,所述删除指示所述候选标记受到损坏的度量包括:删除具有优势幅值的度量。

19.根据权利要求18所述的计算机系统,其中,所述处理器执行进一步的动作,包括:将在所述第一组度量中最高的度量识别为具有所述优势幅值。

说明书 :

用于验证标记的真实性的方法和系统

[0001] 相关申请的交叉引用
[0002] 本申请是于2014年12月4日提交的美国专利申请14/561215的部分继续申请。本申请还要求2014年9月23日提交的美国临时专利申请62/053905的优先权。

技术领域

[0003] 本公开一般涉及机器视觉技术,更具体地,涉及用于验证标记(mark)的真实性的方法和系统。

背景技术

[0004] 不幸的是,假冒产品到处都是,并且经常难以发现。当假冒者生产假货时,除了实际产品之外,他们通常还复制标签,其可以包括条形码或其它类型的标记。从表面看,伪造的标记可能看起来是真实的,并且甚至在扫描时(例如,解码到适当的通用产品代码)产生有效数据。目前可用于防止这种复制的许多技术是基于将可能的伪造标记的图像与原始标记的图像可视地比较的基本思想。
[0005] 当标记位于其上的产品被处理、包装、运输等时,标记可能遭受机械损坏。损坏可能以一些不可知的方式发生,导致对标记的不可预测的改变。典型的损坏形式包括划痕、墨水流动、墨水从表面剥落、以及污染使标记的部分模糊,任何这些都会使标记变形,使得即使标记是真实的,它也不再类似于原始标记。结果,进行的比较处理(例如,图像比较软件)可能错误地将被测试的标记视为伪造(“假阴性”)。

附图说明

[0006] 尽管所附权利要求具体地阐述了本技术的特征,但是可以从以下结合附图的详细描述中最好地理解这些技术,其中:
[0007] 图1是标记的示例。
[0008] 图2是对图1中标记的绘示,为了清楚起见,提取了标记的边缘特征。
[0009] 图3是对图1中标记的第二实例(可能是伪像)的绘示。
[0010] 图4是对图3中标记的绘示,其中为了清楚而提取标记的边缘特征。
[0011] 图5是通过热转印工艺印刷的二维数据矩阵的示例。
[0012] 图6是比较图2和图4的左上部分的特征的绘示。
[0013] 图7是计算机系统的框图。
[0014] 图8是根据实施例的计算机系统的框图。
[0015] 图9是描绘根据实施例执行的动作的流程图。
[0016] 图10是描绘根据实施例执行的动作的流程图。
[0017] 图11是示出可以在一个实施例中使用的一些特征的一维条形码。
[0018] 图12是根据实施例的具有候选标记(其评估为真实的)的原始标记的自相关序列的多项式近似的曲线图。
[0019] 图13是图12的原始标记数据的幂级数的图表。
[0020] 图14是图12的候选标记数据的幂级数的图表。
[0021] 图15是根据实施例的具有候选标记(其评价为伪造)的原始标记的自相关序列的多项式逼近的曲线图。
[0022] 图16是图15的候选标记数据的幂级数的图表。
[0023] 图17是具有印刷的二维条形码形式的真实的未受损候选标记的示例。
[0024] 图18是图17的标记受损之后的第一示例。
[0025] 图19是图17的标记受损之后的第二示例。
[0026] 图20是表示图17的候选标记的签名的一系列度量值与存储的表示原始标记的签名的一系列度量值的相关性的曲线图,其表示的是匹配。
[0027] 图21是表示图18的候选标记的签名的一系列度量值与存储的表示真实标记的签名的一系列度量值的相关性的曲线图,其表示的是不匹配(在这种情况下为假阴性)。
[0028] 图22是表示图19的候选标记的签名的与存储的表示真实标记的签名的一系列度量值的相关性的曲线图,其表示不匹配(在这种情况下为假阴性)。
[0029] 图23是表示图18(在删除指示损坏的度量之后)的候选标记的签名的一系列度量值与存储的表示真实标记(在删除了与被删除的候选签名的度量相对应的度量之后)的签名的一系列度量值的相关性的曲线图,其表示匹配。
[0030] 图24是表示图19的候选标记(在删除指示损坏的度量之后)的签名的一系列度量值与存储的表示真实标记(在删除了与被删除的候选签名的度量相对应的度量之后)的签名的一系列度量值的相关性的曲线图的,其表示指示匹配(这个实例中是正确的结果)。
[0031] 图25是表示图20的候选标记(在删除了指示损坏的度量之后)的签名的一系列度量值与存储的表示真实标记(在删除了与被删除的度量相对应的度量之后)的签名的一系列度量的相关性的曲线图,其表示匹配(在这种情况下为正确的结果)。
[0032] 图26是描绘根据实施例执行的动作的流程图。
[0033] 图27示出根据实施例的一组数据度量的示例。
[0034] 图28和图29是描述根据各个实施例执行的动作的流程图。
[0035] 图30是根据实施例的硬件环境的框图。
[0036] 图31是根据实施例的计算机系统的框图。
[0037] 图32是根据实施例的存储系统的框图。

具体实施方式

[0038] 本公开总体上涉及一种用于验证标记的真实性的方法。在实施例中,处理器:(1)从图像采集设备接收候选标记的图像,(2)使用该图像测量候选标记上的多个位置处的一个或多个特征,产生第一组度量(metrics),(3)从第一组度量中删除具有优势幅值的度量,产生修整的第一组度量,(4)从计算机可读存储器检索获取第二组度量,其表示在原始标记上的多个位置处测量的一个或多个特征,(5)从第二组度量中删除与从第一组度量中删除的度量相对应的度量,产生修整的第二组度量,(6)将修整的第一组度量与修整的第二组度量进行比较,以及(7)基于该比较确定候选标记是否是真实的。
[0039] 根据另一实施例,处理器比较第一组度量和第二组度量,并基于该比较确定候选标记是否是真实的,并且如果候选标记被确定为不是真实的,则处理器执行以下附加步骤:(1)从第一组中删除具有优势幅值的度量,产生修整的第一组度量,(2)从第二组中删除对应的度量,产生修整的第二组度量,(3)比较修整的第一组度量与修整的第二组度量,以及(4)基于该比较确定候选标记是否是真实的。
[0040] 根据各种实施例,代替基于原始的、学习的标记中的每个伪像的显著性而对签名数据进行排序,处理器:(1)使用候选标记的签名数据中的每个伪像的显著性作为主要特征比较原始的、学习的标记的签名数据,(2)根据该顺序对两组签名数据进行排序,(3)从最显著的伪像开始逐步修整两个标记的签名数据,并且(4)计算原始标记的签名数据和候选标记的签名数据之间的统计相关性。在实施例中,修整数据意味着通过将下一个具有最高幅值的伪像从每个后续的统计相关性中去除,来减少将要相关的数据。换句话说,在一个实施例中,修整数据包括从候选标记的签名数据的度量组中删除具有最高幅值的度量,并且还从原始标记的签名数据的度量组中删除对应的度量。由于机械损坏区域倾向于存在于签名数据组内的最高幅值特征之中,这具有从签名数据中删除违规损坏的效果,从而使得具有较低幅值的真实签名数据的潜在相关性将会出现。
[0041] 本文所描述的技术可应用的一些标记包括二维条形码,例如QR码,图1和图17示出了它们的示例。一些二维条形码包括内置的纠错或冗余。在二维码或其它标记中并入了里德-所罗门纠错或其它冗余,通过利用由纠错或其它冗余提供的信息有助于在各种实施例中删除受损信号。由于这样的代码将损坏区域识别为其校正丢失的代码信息的功能的一部分,所以在执行签名分析的相关性步骤之前,该信息可以用于直接排除被识别为损坏的区域。
[0042] 根据另一实施例,处理器对候选标记的度量执行连续划分或连续细分,以便删除受损信号。在一个示例中,在标记具有待分析的直边缘(例如某些二维条形码的探测条)的情况下,处理器相继将损坏的探测条(finder bar)分成2部分,然后4部分,然后8部分等。当连续细分它们时,处理器观察分区的和细分的各个单独签名的相关性。
[0043] 本公开经常提及“标记(mark)”。如本文所使用的,“标记”在电磁谱的一些部分中是可见的,但不一定是肉眼可见的,并且被有意地放在物理物体上。标记可以用于例如与序列号一样唯一地识别物品的目的,或者可以用于一些其它目的,例如品牌(例如,标志)、标签或装饰。可以使用各种工艺将标记印刷、蚀刻、模制、成形、转移或以其它方式施加到物品上。标记可以被获取以便以电子形式处理。可用于电子获取标记的可能装置包括机器视觉相机、条形码读取器、线扫描成像器、平板扫描器和手持便携式成像装置。标记可以是承载信息的东西,诸如条形码(例如,国际标准化组织(“ISO”)和国际电工委员会(“IEC”)标准ISO/IEC 16022中规定的二维(“2D”)条形码、到期日期或追踪信息,例如序列号)。
[0044] 在各种实施例中,原始的真实标记包括伪像(artifact),其特征可由在本文中通常被称为“信号”、“签名”或“签名信号”的数据表示。候选标记不管是真实的还是伪造的,还包括其特征可以类似地由数据表示的伪像。在一个实施例中,处理器从候选标记的签名信号中隔离由源标记设备产生的那些签名信号的伪像受到损坏所产生的伪像。处理器还从候选标记提取潜在的签名信号数据。
[0045] 本文所使用的术语--标记的“伪像”是由创建该标记的机器或过程产生(可控地或不可控地)的标记之特征。
[0046] 如本文所使用的术语“处理器”意指被设计为执行在数学逻辑方面定义的复杂功能的电路(一种电子硬件)。逻辑电路的示例包括微处理器、控制器或专用集成电路。当本公开涉及执行动作的计算机系统时,应当理解,这还可以意味着与计算设备集成的处理器事实上正在执行动作。
[0047] 现在参考附图,图1示出了可以应用本文所述的各种方法的原始印刷标记100(“原始标记”)的示例。在该示例中,原始标记100是2D条形码。该条形码是信息的数据载体,其中信息被编码为原始标记100的亮区域102和暗区域104的图案。2D条形码的可能实现方式包括矩形网格,其中每个单元或“模块”(例如,模块102和104)是黑色或白色的,并且表示一比特数据。
[0048] 图2提供了存在于原始标记100中的一些变化的增强视图。图2仅示出了标记100的亮区域和暗区域之间的边缘200。诸如标记100内的边缘线性度、区域不连续性和特征形状的特征是显而易见的。沿着标记的印刷特征的边缘的多个不规则性是清楚可见的。注意,该图示是为了清楚而提供的,并不一定是必须的处理步骤。在一些实施例中,边缘线性是重要的特征并被使用。在一些实施例中,使用除了边缘线性之外的特征。
[0049] 图3示出了候选印刷标记300(“候选标记”)的示例,其可以是真实的或伪造的(即,表示图1所示的原始标记100的伪像实例,或者为了识别的目的,可以表示原始标记100的第二唯一实例)。该候选标记300也是2D条形码,其即使是伪造的,当用2D条形码读取器读取时也呈现与图1的原始标记100相同的解码信息。在实施例中,当获取图3中的候选标记300时,可以识别显著特征,将这些特征的特征进行测量和采集为唯一地识别候选标记300的签名数据。如图1的情况,该签名数据源自标记的几何形状和外观的物理和光学特征,并且可以包括编码在标记中的数据(例如,如果标记是诸如2D条形码的数据承载符号)。在一个实施例中,为了创建签名数据而评估的原始标记的属性与用于评估候选标记的属性相同,使得两个签名是直接可比的。
[0050] 图4提供了图3所示的候选标记300中存在的一些变化的增强视图。类似于图2,图4仅示出了图3中所示的标记的边缘400。对应的特征,诸如图3所示的标记内的边缘线性、区域不连续性和特征形状是显而易见的。
[0051] 参考图5,示出了可以用于生成标记的签名数据的一些特征的示例(特征500、502、504和506)。可以测量的这些特征的特性包括平均模块色素强度或标记强度的偏差(例如特征500)、相对于最佳匹配网格的模块位置偏差(例如特征502)、标记中的外部印刷斑点或未印刷空隙之存在或位置(例如,特征504)、以及长连续边缘的形状(线性)(例如特征506)。在一个实施例中,对这些特征执行的测量用作形成该标记的唯一签名的主要度量。
[0052] 在实施例中,从标记获得的度量可以被加权作为形成标记的签名的一部分。例如,提取图5绘示的四个度量中的每一个的简单与否取决于成像分辨率,并且可以按照提取与四个度量中的每一个相关的有用数据所需的分辨率的顺序来排列度量。从最低分辨率到最高分辨率,他们是(在一个实施例中):模块色素,模块位置偏差,空隙/标记位置和边缘形状投影。换言之:
[0053] 低分辨率--------------------------------------------------->高分辨率[0054] 模块色素->模块位置偏差->空隙/标记位置->边缘形状投影
[0055] 利用逐渐更高精度的分析,不断提高的图像保真度和分辨率允许越来越精确的分析。例如,在低分辨率图像中,可能仅有模块平均色素和模块位置偏差可以以有效置信度提取,因此,这些结果在确定候选标记相对于原始标记(由存储的、真实数据表示)的签名匹配时给予更大的权重。对于高分辨率图像,处理可以一直延续到精细边缘投影度量,并且处理器可以将其用作签名匹配确定中的最高权重考虑。如果在其它(较低权重)度量中存在与预期签名的不一致,则这些不一致可能是由标记损坏或图像采集设备的伪像引起的。然而,原始标记的损坏或改变、或成像器的伪像通常不可能导致对伪造标记的修改,而碰巧高精度地匹配原始标记的边缘投影签名度量。因此,如果边缘投影高度相关并且在动态范围中表现出足够的幅值,则可以取代支持高匹配置信度的较低分辨率度量。
[0056] 此外,在实施例中,使用由该符号体系的标准解码算法提供的错误校正信息(诸如用于2D数据矩阵代码中),以进一步适当地加权签名度量数据。如果符号内的数据区域被标记的损坏破坏,并且该区域产生与存储的签名数据的不一致性,而其它未破坏区域很好地一致,则可以减少损坏区域的加权权重。该机制防止可检测的符号损坏在与真实符号签名数据的候选符号度量比较中呈现假阴性结果。ISO 16022“数据矩阵符号”规范描述了如何在2D数据矩阵中分布错误校正码(“ECC”),以及如何识别数据矩阵内的损坏区域和未毁坏区域的示例。
[0057] 如预先已知的,不同的标记设备技术在用于创建度量签名数据的不同属性中呈现优越或较差的签名特征,标记设备类型可以用于对所谓的加权配置文件中的度量预加权。例如,如果使用热转印印刷机创建真实标记,则已知平行于衬底材料运动方向的边缘投影不太可能携带足以编码为真实签名数据的一部分的签名量值。在采集原始真实签名数据期间可以使用关于各种标记设备行为的知识。如果采用,则以与该特定标记设备类型的已知行为相适当的方式对创建真实标记签名时使用的度量加权,并且产生的度量的强调/去强调映射变为度量加权文件。
[0058] 图6示出了图2和图4的左上角特征的仔细比较。如在图6中可以最清楚地看到的,图1和图3中的两个印刷标记100和300在更精细的尺度上包含许多差异,尽管它们的公开编码的数据是相同的,这是由用于施加标记的印刷过程的缺陷导致的。这些差异是长久的,通常几乎与标记本身一样长久,并且实际上是独特的,特别是当在图1和图3的符号之间可以发现大量差异时。此外,这种差异可能难以伪造,因为原始符号将必须以远高于原始印刷的分辨率成像和再印刷,而不引入新的可区分的印刷缺陷。虽然这里仅示出了标记的左上角部分,但是在图1和图3中所示的两个标记之间的差异特征遍布整个标记,并且可以根据各种实施例加以使用。
[0059] 如图7所示,计算机系统700的实施例包括:中央处理单元或处理器702、输出设备704和输入设备706(包括图像采集设备708)、随机存储器(“RAM”)709、只读存储器(“ROM”)
712、以及用于程序和数据的磁盘或其它长期存储器(“存储设备”)713。计算机系统700可以具有用于生成原始标记的印刷机705,或者印刷机705可以是单独的设备。计算机系统700可以通过输入-输出(“I/O”)接口714连接到外部网络708或其它通信媒介,并且通过网络708连接到具有长期存储设备716的服务器710。尽管为了简单起见未示出,但是也可以几个类似的计算机系统连接到服务器710。
[0060] 参考图8,本公开的实施例包括:在原始标记802(即,已知是真实的)上执行采集和存储操作的第一计算机系统800、在候选标记806(即可能是真实标记或伪造的)上执行采集、比较和验证的第二计算机系统804。第一计算机系统800包括图像采集设备808和签名提取及编码处理器810。图像采集设备808采集原始标记802的图像,生成关于图像的数据,并将图像数据提供给签名提取及编码处理器810。签名提取及编码处理器810可以是在处理器(例如计算机系统700的处理器702)上运行的软件,或者可以是专用处理器。签名提取及编码处理器810将签名数据存储在网络可访问的标记签名数据存储设备812上,其可以是服务器710的长期存储设备716。在一个实施例中,组成签名数据的度量以幅值的降序存储为排序列表,并且包括关于将他们从标记中提取的位置的定位信息。网络可访问标记签名查找引擎814从签名提取及编码处理器810和/或签名数据存储器812接收签名数据,网络可访问标记签名查找引擎814可以是在处理器(例如计算机系统700的处理器702)上运行的软件或者可以是专用处理器。
[0061] 第二计算机系统804包括:图像采集设备816、签名提取及编码处理器818以及签名比较处理器820。图像采集设备816采集候选标记806的图像,生成关于图像的数据,并将图像数据提供给签名提取及编码处理器818。签名比较处理器818可以将由签名提取及编码处理器818从(最近扫描的)候选标记806提取的签名与先前存储在签名数据存储器812中的并且与原始标记802相关联的签名进行比较。在实施例中,如由图8的上部分(关于原始标记签名采集和存储)与图8的下部分(关于候选标记签名采集、比较和验证)之间的间隔线所象征性地示出的,扫描候选标记806的计算机系统可以不同于扫描原始标记802的计算机系统。如果它们不同,则它们可以共享访问签名数据存储器812,或所存储的签名数据的副本可以从原始标记采集和存储系统800上的签名数据存储器812传递到候选标记签名采集、比较和验证系统804。在其它实施例中,第一计算机系统800和第二计算机系统804是同个系统(例如,图7的计算机系统700)。
[0062] 参考图7,在实施例中,处理器702分析由图像采集设备708采集的图像,以便测量标记(例如,原始标记100或候选标记300)的各种特征(例如,物理和光学特征),从而产生包括关于标记的伪像的数据的一组度量。如将进一步描述的,度量组可以是处理器702生成的关于标记的若干度量组中的一个。处理器702可以在标记上的不同位置执行测量。在这样做时,处理器702可以将标记划分成多个子区域(例如,根据工业标准)。在实施例中,如果标记是2D条形码,则处理器702对标记的单元的总数的所有或子组执行测量。处理器702可以测量的标记的特征的示例包括:(a)特征形状、(b)特征纵横比、(c)特征位置、(d)特征尺寸、(e)特征对比度、(f)边缘线性、(g)区域不连续性、(h)外部标记、(i)印刷缺陷、(j)颜色(例如亮度、色调或两者)、(k)色素以及(1)对比变化。在一些实施例中,处理器702对各个标记在相同位置测量每个特征,而在不同位置测量不同特征。例如,处理器702可以测量标记的第一组位置上以及后续标记的相同的第一组位置上的平均色素,但是还测量标记上和后续标记上的第二组位置上的边缘线性。如果两组位置存在至少一个不共同的位置,则这两组位置(对于不同特征)可以被称为“不同的”。
[0063] 在标记是数据携带符号(例如2D条形码)的情况下,各种实施例可利用嵌入并编码到标记中的附加信息。被编码的信息,例如唯一的或非唯一的序列号,本身可以被包括作为签名数据的一部分或被用于索引签名数据以便于检索。此外,在2D条形码或其它数据载体的情况下,可以为其建立质量测量,处理器702可以提取表示标记的质量的信息,并将其包括作为签名数据的一部分。
[0064] 质量信息可以用于检测真实候选标记的改变,这些改变可能导致将该标记错误判断为伪造的,因为这些改变可以改变标记的签名数据。可以使用的一些质量测量值是但不限于:ISO规范15415“数据矩阵分级过程(Data Matrix Grading processes)”或其它可比较标准中定义的未使用的误差校正(Unused Error Correction)和固定模式损坏(Fixed Pattern Damage)。这些措施使得可能检测那些对签名数据有贡献的区域,而这些区域由于对标记的损坏已经被改变,从而当比较标记的签名数据与存储的真实标记的签名数据时不将其考虑在内。
[0065] 参照图9,描述了根据实施例的用于采集和存储原始标记的签名数据的过程(例如,通过计算机系统700或800或其处理器)。在步骤902中,将原始标记(例如,类似于图1所示的2D条形码)应用于物品,或应用到随后应用于对象物品(例如,由印刷机705)的标签。
[0066] 在步骤904中,通过合适的成像装置或其它数据采集设备(例如图像采集设备808)采集标记。获取标记的成像装置可以是任何有利的形式,例如照相机、机器视觉设备或扫描仪。成像装置可以是常规装置或以后要开发的装置。在该实施例中,成像装置以比施加标记的装置的可控输出明显更精细的细节水平收集关于标记的特征的数据。在图1所示的例子中,如图1-4所示,特征包括明显比印刷的2D条形码的模块的尺寸更高的分辨率之下的明暗区域之间的边界的形状。其它合适特征的示例在以下描述。
[0067] 在步骤906中,对包括在原始标记的公开数据中的唯一标识符(“UID”)进行解码。在一个实施例中,如果印刷机705与图像采集设备808在相同的计算机系统上,则UID可以从一个传递到另一个,从而避免需要从图像采集设备808获取的图像中解码UID。如果原始标记不包括UID,则在该步骤中可以使用唯一地标识标记的特定实例的一些其它信息。
[0068] 在步骤908和910中,由签名提取及编码处理器810分析原始标记的图像。例如,在步骤908,签名提取和编码处理器810从原始标记的图像提取质量测量,以及在步骤910,从原始标记的图像提取特征。在步骤912,将与所提取特征(例如,度量)的特征相关的数据编码为数字数据,并将其存储在签名数据存储器812中作为“签名”数据,唯一标识原始标记。在一个实施例中,利用包括在标记中的明确编码数据中的唯一标识符内容(通常是序列号)索引每个标记的记录。该记录可以存储在网络可访问的数据存储服务器或设备(例如存储设备716)上,或者可以存储在被需要的当地(例如在存储设备713中)。副本可以分发到在多个位置的本地存储器。
[0069] 在步骤914和916中,评估候选签名特征以确保它们具有足够的幅值以作为每个签名度量的一部分。这些步骤确保形成每个签名度量的特征具有真实“信号”,以被编码为标记的区别特征。
[0070] 在实施例中,使用2D数据矩阵码作为示例,在步骤910、912和914中,提取原始标记的四个特征并按幅值排序。如前所述,获取标记的图像,使得可以以电子形式(通常为彩色或灰度图像)处理特征。作为初始步骤,首先将2D数据矩阵作为整体分析,并且确定定义矩阵的单元之间的边界的“理想”位置的“最佳匹配”网格。然后通过找到对于正被分析的特定度量而言最偏离标记属性的“正常”或“最佳”状态的特征来选择候选特征。考虑图5所示的2D数据矩阵代码示例,一些合适的特征是:
[0071] 1.标记的一部分(例如,特征500),其平均颜色、色素或标记强度最接近由数据矩阵读取算法确定的将暗模块与亮模块区分开的全局平均阈值(即,“最亮”暗模块和“最暗”亮模块)。
[0072] 2.被标记在最偏离应用于标记的最佳匹配网格所限定之理想化位置的位置中的模块(例如,特征502)。识别这些模块的两种可能的方法是:(a)提取候选标记模块边缘位置,并将这些边缘位置与由用于标记的理想化的最佳匹配网格所限定的它们的预期位置进行比较;(b)提取相反极性(亮/暗或暗/亮)的两个相邻模块之间的边界区域的直方图,其中样本区域相对于最佳匹配网格重叠每个模块的百分比相同,并且从50/50双峰分布评估直方图的偏差。
[0073] 3.模块中的无关标记或空隙,无论它们是亮还是暗,都被定义为具有宽范围的亮度或色度密度的模块(例如,特征504)。换句话说,它们被定义为在使暗模块与亮模块区分开的全局平均阈值的两侧均具有色素水平的模块,其中最佳候选签名是具有双模亮度直方图的模块,其具有最外面的主模式(outermost dominant modes)之间的最大距离。
[0074] 4.符号中的长连续边缘的形状(例如,特征506),例如它们的连续性/线性或不连续性/非线性度。测量该属性并提取该数据的一种方法是通过执行像素宽度的亮度值投影,其中从最佳匹配网格偏移半个模块的一个模块的投影长度垂直于位于符号的最佳匹配网格边缘的网格线边缘。
[0075] 2D数据矩阵是一个好的例子,因为它包括正方形的黑色单元和白色单元,很容易在其中观察到上述特征。然而,相同的原理当然可以应用于其它形式的数据编码或非数据编码可见标记。
[0076] 一旦已经识别出符合上述标准的候选特征,则在步骤914中将候选特征按照幅值的大小顺序排序成列表,然后在步骤916中通过找到不满足建立的最小幅值以成为该度量的贡献者的每个列表中的第一个特征来进行幅值限制滤波。阈值可以被设置在任何方便的水平,其足够低以包括不能容易地再现的合理数量的特征,并且足够高以排除不合理的长久的或者接近图像采集设备的噪声基底的特征。在该实施例中,然后从该点截断排序列表的低幅值端,并且将剩余(最高幅值)特征连同它们在标记中的位置存储为该度量的签名数据。优选地,存储截断阈值以上的所有特征,并且隐含地在签名中包括“标记中其它地方没有高于幅值滤波器阈值的签名特征”这样的信息。
[0077] 在步骤918中,将基于用于创建原始标记的标记设备的类型的度量加权文件存储为签名数据的一部分。
[0078] 在步骤920中,按幅值的降序将签名度量存储为特征的排序列表。每个特征的列表入口包括定位提取该特征在标记中的位置的信息。
[0079] 参考图10,描述根据实施例的用于采集和验证候选标记的签名数据的过程(例如,通过计算机系统700或804或其处理器)。在步骤1002中,由诸如图像采集设备816的图像采集设备获取候选标记的图像。在步骤1004中,对候选标记中的显式数据进行解码,并且提取其UID内容。
[0080] 在步骤1006中,UID用于查找先前存储的针对具有该UID的原始标记的签名度量数据。可以从诸如存储设备713的本地存储器检索所存储的数据,或者可以从网络可访问数据存储服务器或诸如存储设备716的长期存储器检索所存储的数据。在候选标记不包含UID的情况下,可以获得与候选标记相关的一些其它标识信息。或者,可以在下面的步骤1014之后搜索真实标记签名的整个数据库(例如,在存储设备713上或在存储设备716上),以尝试定位与候选标记签名匹配的真实签名。
[0081] 在步骤1008中,在2D条形码或其它可以建立质量测量的数据载体的情况下,可以获得候选标记的质量测量1008,类似于在步骤908中针对原始标记获得的质量测量。质量测量可用于随后的分析步骤中,以减小看起来从被施加起已经受损的标记或标记某部分的权重。此外,如果原始标记的质量测量被存储为原始标记的签名数据的一部分,则可以利用从候选标记提取的签名数据验证所存储的质量测量。
[0082] 在步骤1010中,从在步骤1002中获取的候选标记的图像中提取重要的签名特征。搜索整个候选标记(除了由于ECC错误而被取消资格的部分以外)的显著特征。另外,指定从标记内提取原始的真实签名数据的位置的信息用于指定从候选标记中提取签名数据的位置。这确保记录存在于原始标记中但不存在于候选标记中的特征。
[0083] 在步骤1012中,对签名特征进行编码以用于分析。在步骤1014中,从候选标记提取的签名数据(度量)被排序为与先前生成的原始标记的度量列表相同的顺序(例如,幅值大小排序)。在步骤1016中,将候选签名数据与存储的原始签名数据进行比较。由各种方法可以执行这种操作。在一个实施例中,对数据进行统计操作以揭示两个数据组之间的数值相关性。对每个度量进行单独的数值分析,得到反应针对该度量而言该候选符号是真实条目的候选符号的单个置信度的测量。如果标记不包含UID数据,并且没有可替代的标识数据可用,则可能需要使用参考图12讨论的过程来搜索类似标记的数据库。例如,在原始标记100和候选标记300的情况下,可能需要搜索具有黑色和白色模块的相同明显模式的所有真实标记。搜索的目的是识别或不能识别与候选标记唯一相似的单个原始标记。
[0084] 在步骤1018中,其中度量加权文件被存储为真实签名数据的一部分,该信息用于强调和/或减弱对于用于创建原始真标记的标记设备的类型适当的度量。
[0085] 在步骤1020中,在步骤904和1002使用的图像采集设备具有不同的灵敏度,可能需要调整签名数据对整体分析结果的贡献。例如,用于显著特征的最小幅值阈值可能需要被设置在适合于较不敏感的图像采集设备的水平,或者可能需要从分析设定中忽略特定的度量,因为已经知道不需要携带由原始标记装置产生的标记中的某些适当的签名幅值。在一些情况下,在识别为位于以上所示的标度中的较高分辨率类别之一中的特征可能会由较低分辨率的扫描器错误识别为不同的类别的特征。例如,在高分辨率下看到的具有白色空白的黑色模块的特征在低分辨率下可可能被看作“低色素模块”。通常,将图像采集设备的分辨率与标记设备的度量加权文件结合使用以确定要强调/减弱哪些度量。在该示例中,在低分辨率图像中,特征可能存在于“低色素”列表中,但在高分辨率图像中,可能特征既存在于的“低色素”列表中也存在于和“空白”列表中。
[0086] 如果期望明确地校正原始扫描图像和/或验证扫描图像的分辨率,则在许多情况下,可以在验证时通过检测到在扫描器分辨率阈值处伪像数量的相对突然下降来确定分辨率。或者,用于采集原始标记的图像的图像采集设备可以具有比用于采集候选标记的图像的图像采集设备低的分辨率,此时,扫描的分辨率或可以导出分辨率的其它信息可以与存储的签名一起被包括为元数据,类似于以上讨论的度量加权文件。
[0087] 在步骤1022中,在分析真实标记时,通过排除,将标记中没有被呈现在满足最小幅值阈值的特征位置的排序列表中的所有位置被认为没有重要的签名特征。通过检查预期有子阈值特征的候选标记内的所有位置处的签名特征幅值,并且当发现超过阈值最小值的特征时,将适当度量的结果向负面方向调整来评估该条件。如果在对符号误差校正或其它质量属性进行评估时,在确定已经被损坏的区域中发现显著特征,则根据损坏相对于特征提取点的位置和涉及的特定度量的性质削弱或完全不执行该调整。例如,如果从与损坏的模块接近但不相同的候选标记的模块中提取到了签名特征中存在相对于原始标记的差异,则可以以反映度量签名中的降低的置信度的比例来削弱由于该特征引起的对度量的负向调整。这是因为在已知受损区域附近的前一个模块可能已经确实遭受损坏,其影响度量,但是降低到了符号体系的质量或ECC评估机制的可检测阈值以下。如果直接从损坏的模块中提取差异,或者如果度量是跨越多个模块的类型之一,并且该跨度包括损坏的模块,则完全不会进行调整。
[0088] 在步骤1024中,然后使用这些个体置信度值来将候选标记的总体置信度确定为真实的(或伪造的),其中如上所述使用图像保真度、分辨率和符号损坏信息对各个置信度值进行适当加权。
[0089] 在步骤1026中,确定结果是否足够确定为可接受。如果签名数据的比较产生不确定的结果(例如,单个度量具有不能通过使用数据加权机制解析的矛盾指示),并且没有超过重试限制(步骤1028),则提示提交对符号进行验证的用户重新提交符号的另一图像进行处理,并且该处理返回到步骤1002。否则,处理结束(步骤1030)。
[0090] 一旦已经成功完成分析,则在步骤1030中报告比较分析的结果。报告可以是通过/失败,或者可以指示结果中的置信度水平。这些结果可以本地显示或传送到联网的计算机系统或其它设备以用于进一步的动作。
[0091] 针对环境免疫度量数据的局部参考测量
[0092] 为了在实施例中进一步使精确签名数据的提取稳健,本文描述的各种方法可以利用所分析符号内的局部区域参考来组成签名数据。这提供了针对诸如以下事物的更大的免疫性:前述的衬底失真、当获取用于处理的候选符号的非均匀照明、采集设备中的非理想或低质量光学特征、或许多其它环境变量或系统变量。在实施例中,度量参考本地化是:
[0093] 1.平均模块颜色、色素或标记强度参考与相对的模块状态(暗对应亮,或者亮对应暗)的最相近的模块。如果单元被识别为具有偏离平均色素强度的显著特征,那么需要重新评估距离该单元最近的邻居单元,并不将该识别的偏离的单元作为参考。
[0094] 2.模块格位置偏差参考全局符号最佳匹配格,并因此具有固有的适应参考本地化。
[0095] 3.利用本地模块颜色、色素或标记强度参考值分析符号模块中的外部标记或空隙。换句话说,即被分析的模块内的图像亮度直方图自身为应用的方法提供参考值。
[0096] 4.用于提取符号中的长连续边缘的形状的投影方法在本质上是有差别的,并且对典型的影响变量具有固有免疫性。
[0097] 图11描绘了具有特征的1D线性条形码1100,其特征可以被测量以生成用作签名数据的一部分的一组度量。这些特征包括:条之间的宽度和/或间隔的变化1102;平均颜色、色素或强度的变化1104;黑条中的空隙(或白条纹中的黑点)1106;或条的边缘的形状的不规则性1108。
[0098] 通过自相关方法分析
[0099] 在上述实施例中,针对每个度量的原生(raw)数据列表可以首先是经过阵列索引匹配并且经过标准化相关联成与从候选符号提取的度量集相似的次序。然后利用这些关联结果做出匹配/不匹配决定(真实的vs.伪造的)。为了这么做,存储签名包括对原始真实符号模块的排序以及被训练的度量值本身排序,完成对每个度量的排序。除了全面的存储需要,原生数据没有被“归一化”这是因为每个度量具有自己的标尺,有时是无限的,这会使存储比特深度的选择变得复杂。上述实施例的典型实施方式具有大约2千字节大小的存储签名。
[0100] 现在参考图12-16,提取原始伪像度量并且做出可用的索引阵列相关的列表(通过符号中的模块位置相关联)之后,应用对度量进行后处理、存储以及比较的方法的替代实施例。基于自相关,与之前实施例的签名相比,应用该新的后处理方法可以在至少一些环境中产生几个重要的益处。最重要的为数据包大小的减小,例如,已经实现减小75%的存储的签名数据。利用一些小附加数据压缩方法,更多(减小高达90%)的减小是可能的。这种大幅度减小是由于应用了自相关、列表排序以及合成的归一化和数据建模机制,允许将这些机制应用到原始伪像的数据。
[0101] 比较原始标记签名和候选标记签名的度量
[0102] 现在将描述可以比较原始标记的签名的度量和候选标记的签名的度量的各种方式。
[0103] 其中,在上述的实施例中,采用如下方式比较一组特定的度量数据:比较从候选标记提取的排序的原始度量和从真实符号提取的相似次序的原始度量,自相关方法比较排序的候选符号度量数据的自相关序列和(存储的)排序的真实符号数据的自相关序列-现在我们有效地关联了自相关。在实施例在,使用的标准化相关方程(Normalized Correlation Equation)为:
[0104]
[0105] 其中:r是相关结果,n是度量数据列表的长度,以及x和y是真实的度量数据集和候选的度量数据集。当将该操作作为自相关实施时,两个数据集x和y是相同的。
[0106] 为了产生自相关序列,执行多次相关,每一次以相对于序列y的一个附加索引位置偏移序列x(记住y是x的副本)。由于x索引偏移,y数据序列中最后的索引超范围,因此,随着偏移的进行,数据集必须“绕”回起始处;最实用地完成上述过程的方法经常为加倍y数据,并“下滑”x数据为从偏移0至偏移n,以产自相关序列。
[0107] 在实施自相关方法时,发现的第一个益处为,不必存储签名数据数值本身作为存储数据的一部分。在自相关时,数据序列简单地对自身相关。因此,之前需要将提取(排列)顺序和真实的签名数据数值都传递到验证设备用于验证,现在只需要为自相关序列操作提供排列(sort)/提取顺序。
[0108] 需要与候选符号结果比较的真实自相关签名不需要存储或传送真实的数据至验证器。由于产生签名的操作总是在分类的度量数据上执行,因此原始伪像信息的自相关序列总是简单的多项式曲线。因此,不需要存储每个真实的符号度量的整个自相关序列,存储一组自相关多项式系数就足够了,该组自相关系数描述(以预定的阶数和精度)最佳匹配曲线匹配每个度量的真实自相关结果的形状。
[0109] 在实施例中,计算rxy,其中,每项xi是由其幅值和位置表示的伪像,每项yi=x(i+j),其中,j是两个数据集的偏移,j=0到(n-1)。由于通过幅值排序xi,并且幅值是xi最重要的数字,因此,在j=0处或接近j=0处有最强的相关,并朝j=n/2处迅速地下降。因为y是x的副本,所以j和n-j是可互换的。因此,自相关序列总是形成图13所示的U形曲线,其必定是关于j=0和j=n/2对称的。因此,只需要计算一半曲线即可,为清楚起见,虽然图13示出了从j=0到j=n的整个曲线。
[0110] 实践中,已经发现,对于系数,利用6字节的浮点数的6阶方程,总是能在1%的曲线匹配误差或“识别逼真度”范围内匹配真实的数据。换言之,如果利用实际自相关数量进行候选验证,并且利用多项式-模型曲线在相同的标记上再做一次验证,那么,取得的匹配分数将在彼此的1%范围之内。对真实候选标记的高匹配分数和对伪造的候选标记的低匹配分数都是真实的。这允许完整的自相关序列只用7个数字呈现。假设每个度量可以获得100个数据点,并且有6个度量(已发现这是合理的实践数字),其将产生从600个数据值减少到42个,并且没有丢失符号差别性和分析逼真度。即使单个数较大,例如,如果600个原始数是
4字节整数,42个多项式系数是6字节浮点数,那么就会有接近90%的数据减少。在一个实验模型中,600个单字节数值变成42个4字节浮点数,将600字节减少到168个字节,有72%的减少。
[0111] 另外,现在清楚地界定和标准化存储的签名数据。将多项式系数表达为固定的精度,通过限定,自相关数据不是总是在-1和+1之间,并且排序次序列表只是分析的符号中的模块数组索引位置。对于2-维数据矩阵,模块数组索引是模块在符号内位置的有序栅格(raster-ordered)的索引,其由符号学的传统的原始数据进行排列,因此,其具有由矩阵符号学的定义限定的最大大小。在一个一般类型的2-维数据矩阵中,起点是限定了网格的左侧边和底部边的两个实心条相交的点。对于每个度量,建立标准有序列表,具有长度为100个数据点,可以给出可预测的、稳定的和紧致的签名。
[0112] 在实施例中,现在真实数据和候选数据的比较开始于利用存储的多项式系数“重构”真实符号的自相关签名。然后,从候选符号中提取原始度量数据,并且以相同的排序次序将其存储,如果不是预先确定的,则将其表示为真实签名的一部分。
[0113] 然后自相关候选的度量数据。可以将合成的自相关序列与重构的该度量的真实的自相关曲线相关联,或者可选地,可以通过计算这两个曲线的曲线匹配误差来对他们进行比较。图13和图16生动地绘示了该相关。该最终的相关分数成为特定度量的单独的“匹配”分数。一旦对所有度量都完成该过程,则利用这些“匹配”分数做出候选的符号是真实/伪造的决定。
[0114] 另外,通过将幂级数分析应用至离散傅里叶变换(DFT)的数据,使用可进一步由自相关曲线组成。
[0115]
[0116] 其中:Xk是第k个频率分量,N是度量数据列表的长度,以及x是度量数据集。
[0117] 计算DFT数据的幂级数。分析DFT序列中由复数表示的每个频率分量的幅值,丢弃相位分量。结果数据描述了度量数据谱能量从低频到高频的分布,并且其为进一步分析的基础。图14、15和17生动地示出了有关这些幂级数的例子。
[0118] 采用两种频率-域分析:峰度和测量环绕整个频谱的中心带频率的能量分析,称为分布偏差。峰度(Kurtosis)是用于测量分布的“峰值”的一般的统计操作,这里对幂级数数据中具有有限带宽的紧密地分组的频率很有用。在实施例中,可以采用以下所示的修正的峰度函数:
[0119]
[0120] 其中,是幂级数幅值数据的平均数,s是幅值的标准差,以及N是分析的离散谱频率的个数。
[0121] 分布偏差由下式计算:
[0122]
[0123] 其中,N是分析的离散谱频率的个数。
[0124] 当在频率域分析时,真实的符号度量签名的平滑多项式曲线(通过幅值排序产生)在频谱签名中产生可识别的特征。当以与规定的真实签名数据相同的顺序提取度量数据时,如果候选标记是真实的,则该候选标记将呈现类似的频谱能量分布;换言之,真实的排序次序与候选的度量幅值“一致”。排序的幅值的分歧或其它叠加的信号(诸如复印的伪像)显示为高频分量,其不存在于真实符号谱中,因此其提供对符号真实性的附加的测量。这说明了一种可能性,即伪造的自相关序列仍然可能满足真实标记的最小统计匹配阈值。这是极小的可能性,但是,如果相比于单个数据点之间的误差的幅值,数据的整个范围是大的,并且主要度量幅值的自然的排序次序正好与真实符号的接近,那么当利用标准的相关时,这是很有可能发生的。这样的信号的DFT幂级数的分布特征,将介由存在于候选的序列的小的幅值匹配误差,展现差的匹配特征。这种情况可以表明是真实的标记的复印件。具体地,我们期望真实符号的频谱范围内的高峰度和高分布系数。
[0125] 在候选的符号验证中,连同自相关匹配分数,可以利用该幂级数分布信息作为“可信度”的测量。
[0126] 图12示出了真实条目(多项式逼近)和候选符号(该例子中为真实的)之间的单个度量的自相关序列的比较。本图中两个自相关序列之间的相关性超过93%。
[0127] 图13是用于图12中的原始的真实的自相关数据的幂级数。可以清楚地看到频谱主要为低频。
[0128] 图14是类似于图13的幂级数,其来自手机采集的真实标记的图像。呈现了一些图像噪声,但是整体幂频谱接近匹配真实的频谱,低频分量具有相同的优势。
[0129] 图15示出了真实(原始)标记和候选标记(这里为伪造的)的多项式逼近之间的单个度量的自相关序列的比较。具有相当大的不同,并且候选的自相关比图12中的明显地更参差不齐。两个序列之间的数字相关很低(<5%),并且在DFT分析中,数据参差不齐的形状也是很明显的。
[0130] 图16示出了手机采集的图15中的曲线的伪像符号的图像的幂级数。注意低频分量如何随着整个频谱能量减弱,整个谱能量展开包括很大一部分的高频范围。
[0131] 排除指示损坏的度量
[0132] 在各种实施例中,处理器或计算机系统(例如图7和图8中所示的那些中的一个或多个)识别可能表示标记的损坏部分的度量,并且在确定标记是真实的之前排除这样的度量。参考图17中,示出了将用于帮助示出这样的过程的标记。图17的示例性标记是包括若干特征的2D条形码。该标记具有左边缘的探测条和下边缘的探测条。这些是沿着左边缘和底部边缘的实心黑条,由检测设备用来建立所需的读取由标记编码的信息的空间参数。示例性标记编码由探测条限定的黑色标记和白色标记的图案中的有用信息,其表示比特、二进制数字。这些有用信息可以包括用于校正创建标记之后由机械损坏引入的误差的冗余信息。这样的冗余信息可以包括使用任何适当的纠错码(诸如Reed-Solomon码,汉明码或其它)确定的附加比特。纠错码的使用允许已被损坏到被误读的程度的任何比特进行校正,并且因此被直接地或通过比较解码信息的未校正版本和解码信息的校正版本来识别。该标记还包括诸如黑色区域中的针孔斑点、黑色区域的边缘中的曲线(wiggles)等的变化,其包括标记设备正常操作产生的伪像,其在由标记设备随机和重复地产生。
[0133] 图18和图19示出了改变图11中标记的黑色区域的不同类型的损坏(例如斑点和刮痕)的结果。如将结合图21-25进一步说明的,受到损坏的影响,从图18的标记恢复的签名信号与从图19和20的标记恢复的那些不同。
[0134] 在实例中,如果对候选标记的毁坏使其只部分地可读,或者使其不可能被读取和/或解码携带数据的符号等,那么该标记的一部分的未被毁坏的识别特征可以足够识别该标记。一旦候选标记与原始标记匹配,就可以从存储中检索到该原始标记的签名,那么被并入签名的任何信息(诸如标记条目的序列号)可以从检索到的签名而不是直接从毁坏的标记得到恢复。因此,不管是否结合部分恢复的编码符号信息,都可以利用签名数据唯一地识别将候选标记应用于其上的条目。
[0135] 在实施例中,处理器或计算机系统(诸如图8和9中所示的那些中的一个或多个)执行以下过程:(1)对候选签名与原始签名执行统计相关性处理,(2)基于该相关性处理,如果处理器或计算机系统确定候选签名不是来自真实标记,则(3)识别叠加在候选签名信号上的受损信号,(4)删除受损信号,(5)通过对候选签名与原始签名进行统计相关性处理,基于剩余签名信号(即,在删除受损信号之后剩余的签名部分)来评估候选签名,(6)如果相关性得到充分改善,则推断出原始签名和候选签名匹配,(7)如果相关性没有充分改善,则推断原始签名和候选签名不匹配。
[0136] 为了说明从候选标记的签名中删除多少受损信号可以提高准确识别的可能性,参考图20-22,其示出了没有删除受损信号的情况下针对图17-19的标记的相关性技术的性能。将它们与图23-25比较,图23-25示出了相对于删除受损信号的情况下这里所描述的技术的表现。如图所示,如果标记上没有损坏(图17),则两个过程的结果没有明显不同(图20和23)。然而,对于损坏的标记(图18和19),去除受损信号产生相当大的差异(图21相对于图24,图22相对于图25)。
[0137] 参照图26,描述根据实施例由处理器(例如,计算机系统700或804的)执行采集并验证候选标记的签名数据的过程。在步骤2602中,处理器从图像采集设备接收采集的候选标记图像。在步骤2604中,处理器利用该图像来测量候选标记上的多个位置处的一个或多个特征,从而产生第一组度量,诸如图27中所示的度量。在步骤2606中,处理器从计算机可读存储器检索表示在原始标记上的多个位置处测量的一个或多个特征的第二组度量。在步骤2608中,处理器从第一组度量中删除指示标记受到损坏的度量,从而得到修整的第一组度量。处理器可以以多种方法识别指示候选标记受到损坏的度量。例如,处理器可以识别具有优势幅值的度量。在一个实施例中,处理器认为超过预定阈值的度量具有优势幅值。如果候选标记包括纠错冗余码,则处理器可以对纠错冗余码进行解码,以识别标记中的一个或多个损坏区域。在步骤2610中,处理器从第二组度量中删除与从第一组度量中删除的度量相对应的度量,从而得到修整的第二组度量。
[0138] 例如,假设在图27的度量组中,第一列数字中的每一个表示索引值(例如,光栅索引),并且第二列中的每一个表示从测量的标记的特征(例如,在与索引值相关联的标记上的位置)获取的度量值。进一步假设“损坏噪声”阈值为185。换句话说,处理器将认为任何超过185的度量值都表示对候选标记造成的损坏。在该示例中,处理器将从第一组度量和从第二组度量中删除与索引号169相关联的度量。
[0139] 在步骤2612中,处理器将修整的第一组度量与修整的第二组度量进行比较。在步骤2614中,处理器基于该比较确定候选标记是否可以被验证为是真实的。
[0140] 在步骤2614中,基于该比较,如果处理器验证候选标记是真实的,则在步骤2616中处理器向用户警告该事实。另一方面,如果处理器不能够验证标记是真实的,并且还没有达到重试限制(步骤2618),则处理器提示用户重新提交候选标记的另一图像以供处理,并且处理返回到步骤2608。然而,如果已经达到重试限制,例如,要从候选度量数据组中删除的度量的数量的预定限制,则过程结束。在实施例中,预定限制为度量数据集的30%或约30%。例如,在第二次迭代中,利用候选标记的修整的第一组度量,处理器将在步骤2608中删除与索引号165相关联的度量(与索引号169相关联的度量已经被删除了),创建修整的第三组度量,并从修整的第二组中删除相应的度量,创建修整的第四组度量。然后,处理器将比较第三组度量和第四组度量等。
[0141] 参照图28,描述根据另一实施例的由处理器(例如,计算机系统700或804的)执行采集和验证候选标记的签名数据的过程。在步骤2802中,处理器从图像采集设备接收候选标记的图像。在步骤2804中,处理器使用该图像来测量候选标记上的多个位置处的一个或多个特征,产生第一组度量。在步骤2806中,处理器从计算机可读存储器检索表示在原始标记上的多个位置处测量的一个或多个特征的第二组度量。在步骤2808中,处理器将第一组度量与第二组度量进行比较。在步骤2810中,处理器基于第一组度量与第二组度量的比较来确定候选标记是否可被验证为真实的。在步骤2810中处,如果基于第一组度量和第二组度量之间的比较,处理器确定标记可以被验证为是真实的,则过程转到步骤2812,在步骤2812中,处理器通知用户的标记是真实的。在步骤2810中,如果处理器确定候选标记不能被验证为是真实的,则处理器执行与图26的步骤2608、2610和2612相同的步骤2814、2816和
2818。处理器还可以执行类似于步骤2614和2618(为了清楚起见从图28省略)的步骤,创建修整的第三组度量和修整的第四组度量。
[0142] 参照图29,描述根据另一实施例的由处理器(例如,计算机系统700或804的)执行采集和验证候选标记的签名数据的过程。在步骤2902中,处理器从图像采集设备接收候选标记的图像。在步骤2904中,处理器使用该图像来测量候选标记上的多个位置处的一个或多个特征,从而产生总体度量组。在步骤2906中,处理器将总体度量组细分为多个度量组,包括第一组度量。在步骤2908中,处理器从计算机可读存储器检索表示在原始标记上的多个位置处测量的一个或多个特征的第二组度量。在步骤2910中,处理器从第一组度量中删除具有优势幅值的度量,产生修整的第一组度量。在步骤2912中,处理器从第二组度量中删除与从第一组度量中删除的度量相对应的度量,从而产生修整的第二组度量。在步骤2914中,处理器将修整的第一组度量与修整的第二组度量进行比较。在步骤2916中,处理器基于该比较来确定标记是否可以被验证为真实的。
[0143] 在另一实施例中,处理器将候选度量组按照标记的区域划分成子组,并且在删除怀疑由于对候选标记损害产生的结果的度量时,排除与原始标记的等效数据具有差相关性的至少一个子组。处理器可以进一步重复该划分和删除处理过程,并且在排除至少一个具有差的相关性的子组之后,当剩余子部分的相关性达到阈值时,确定候选标记可能是由创建真实标记的标记装置制作的。
[0144] 根据实施例,一种处理器实现的过程,其基于真实标记和候选标记中的变化,通过分析针对其损坏减少的采集图像中的候选标记的由幅值索引的验证度量数据组,来识别其图像已被采集并减少到由针对真实标记的幅值索引的验证度量数据组的真实标记,候选标记是真实标记和伪造标记中的一种,该过程包括:从候选标记的验证度量组中删除具有优势幅值的验证度量,以及从真实标记的验证度量组中删除对应于候选标记的验证度量组中的具有优势幅值的验证度量的验证度量,以产生真实标记的修整的验证度量组和候选标记的修整的验证度量组;比较修整的验证度量组;以及基于该比较来识别候选标记是否可能是由制作真实标记的标记装置制作的。
[0145] 在变形中,处理器实现的方法还包括:在删除步骤之前进行初始确定候选标记不可能由制作真实标记的标记装置制作。在另一变形中,对包括纠错冗余的编码标记执行处理器实现的方法,并且还包括:解码标记中的纠错冗余以识别标记中的损坏区域,并且删除步骤还包括排除源自损坏区域的验证度量。在另一变形中,处理器实现的方法还包括按照标记的区域将验证度量组划分成子组,其中,删除还包括排除具有差相关性的至少一个子组。该变形可以进一步包括重复划分和删除步骤,并且在排除至少一个具有差的相关性的子组之后,当剩余子部分的相关性达到阈值时,则确定候选标记可能是由制作真实标记的标记装置做出的。
[0146] 根据实施例,当标记被损坏时,受损信号被叠加在签名信号上,并且压倒了签名信号。对分析的该标记图像的该部分可以是,例如,标记内的直线边缘的已知的直线性(或与直线性的偏差),诸如图17-19中的二维条形码中的探测条(finder bar)中的一个。因此,当标记被临时识别为不是源自真实源时,进一步采取如下步骤:首先,识别叠加在整个签名信号上的较大的受损信号,然后将其删除。其次,基于剩余的签名信号来评估签名。如果从签名信号中删除受损信号,并且相关性得到充分改善,则由该方法报告原始签名和候选签名相匹配。如果受损信号被删除并且相关性得不到充分改善或下降,则该方法确认原始签名和候选签名之间不匹配。
[0147] 当原始标记被应用于原始条目,和/或原始条目被附加到原始对象时,该标记或条目可以包含关于该条目或对象的信息。在这种情况下,上述方法和系统可以包括验证关于包括在标记或条目中的条目或对象的信息,即使当下面的条目或对象没有被物理替换或改变。例如,在对象标记有到期日期的情况下,则即使该对象本身是原始对象,也可能希望拒绝具有被修改的到期日期的对象,将其标记为“不是真实的”。如果在过期日期中发现用于验证的伪像,例如,由于印刷的缺陷,则本系统和方法的实施例将产生这样的结果。可以类似地被验证诸如批号和其它产品跟踪数据的其它信息。
[0148] 已经描述了针对获取签名数据的整个2D条形码的各种实施例。然而,标记可以划分成更小的区域。如果原始标记足够大并且具有是潜在签名数据的足够的伪像,那么获取和处理的区域可以仅是一个或少于所有区域。在获取和处理多于一个区域的情况下,可以分别记录来自不同区域的签名数据。如果标记是对具有错误校正的数据进行编码的符号,并且错误校正涉及小于整个符号的区域,则这是特别有用的。那么,如果错误校正指示候选符号的一部分被损坏,则可以忽略来自损坏部分的签名数据。
[0149] 虽然已经主要根据区分原始标记(以及涉及该标记应用或粘附于其上的原始条目)和标记的伪造副本来描述实施例,但是本方法、装置和产品可用于其它目的,包括区分原始标记(和条目)的不同实例。
[0150] 为了简单起见,已经描述了特定实施例,其中伪像是印刷标记过程中的印刷缺陷,其或者直接应用于要被验证的条目,或应用于要被验证的对象的标签。然而,如已经提到的,可以使用可被充分检测到的并且永久的以及足够难以复制的任何特征。
[0151] 已经描述的一些实施例使用针对真实条目的签名数据的数据库,在该数据库中对于至少部分地匹配从候选标记提取的签名数据的签名数据进行搜索。然而,如果候选条目以某种其它方式被识别为特定真实条目,则搜索可能是不必要的,并且可以将从候选标记提取的签名数据与针对特定真实条目的存储的签名数据直接比较。
[0152] 参考图30,描述了可以实践这里公开的各种方法的另一计算机硬件环境。该示例性计算机硬件环境一般可以描述为支持和包括由下面描述的示例性方法和装置依赖的操作元件和架构的任何合适的大小和范围的计算机网络。现在结合图30描述一些公共操作元件和架构特征。
[0153] 各种计算设备被互连以通过具有任何合适的硬件配置(诸如全球互联网计算机网络3000)的计算机网络进行通信。计算设备可以包括以下设备中的任何一个或多个:移动设备3001;便携式和固定计算设备3002;内容、软件、作为服务的软件(SaaS)、存储和其它资源的服务器3003;通信资源3004(诸如,互连、交换机和路由);以及其他计算资源3005。移动设备、便携式和固定计算设备、交换机、路由器和服务器通常包括中央处理单元(“CPU”)、微处理器、微控制器或执行软件指令以完成他们被赋予的任务的类似元件。本地指令和本地数据以适当形式存储在计算机存储器和内存中,包括暂时性和非暂时性介质和/或信号。设备可以包括输入外围设备、显示外围设备和集成到设备中或连接到设备的其它外围设备。
[0154] 移动设备3001可以包括将无线、移动电话服务与因特网连接、移动数据服务集成的设备。这样的设备的示例包括由各种制造商制造的智能电话,其使用各种操作系统在各种载体上操作。移动设备还可以包括平板电脑和其它设备,它们将使用蜂窝无线电通信链路、Wi-Fi无线电通信链路和其它合适的通信链路从广泛范围和各种位置操作。移动设备可以集成到可佩戴式设备、眼镜框架之类的、车辆中等。
[0155] 可以使用所描述的任何处理器实现设备来执行上述方法。可以使用不同的处理器来执行该方法的不同部分。例如,可以由位于被执行的标记的位置处的固定计算机执行扫描和学习真实标记的签名。在同一示例中,可以由位于标记物品被消费、运输、购买、销售等站点处的移动设备执行验证。
[0156] 上述任何设备、计算机、服务器等可以是诸如图31所示的通用计算机系统3100。计算机系统3100可以包括连接到一个或多个内存设备3104的处理器3103,诸如磁盘驱动器、存储器或用于存储数据的其它设备。内存3104在计算机系统3100的操作期间通常用于存储程序和数据。计算机系统3100的组件可以通过互连机构3105耦接,互连机构3105可以包括一个或多个总线(例如,在集成在同一机器内的组件之间)和/或网络(例如,驻留在分开的分离机器上的组件之间)。互连机构3105使得能够在系统3100的系统组件之间交换通信(例如,数据,指令)。
[0157] 计算机系统3100还包括:一个或多个输入设备3102,例如,键盘、鼠标、轨迹球、麦克风、触摸屏、以及一个或多个输出设备3101,例如印刷设备、显示屏、扬声器。此外,计算机系统3100可以包含将计算机系统3100连接到通信网络(作为互连机构3105的附加或替代)的一个或多个接口(未示出)。根据系统3100的特定用途,可以可选地省略所描述的组件中的一个或多个,或者所描述的组件中的一个或多个可以是高度专用于完成特定应用的。例如,存储系统可以不具有单独的输入设备和输出设备;它们可以结合在采用高速总线或网络的通信系统中,以在存储系统和数据消费者之间移动数据和指令。
[0158] 在图32中更详细地示出的存储器系统3106通常包括计算机可读和可写非易失性记录介质3201,其存储定义指令的信号,该指令一起形成由处理器执行的程序或存储在介质3201上或介质3201中以由程序处理的信息。介质可以例如是磁盘或闪存。可选地,介质可以是只读的,因此仅存储用于执行特定任务的指令和静态数据。通常,在操作中,处理器使数据从非易失性记录介质3201中读取到另一存储器3202中,从而允许处理器比介质3201更快地访问信息。该存储器3202通常是易失性随机存取存储器,例如,动态随机存取存储器(“DRAM”)或静态存储器(“SRAM”)。它可以位于存储系统3106中,如图所示,或者位于未示出的内存系统3104中。处理器3103通常操纵集成电路内存3104、3202内的数据,然后在处理完成之后将数据复制到介质3101中。已知有用于管理介质3201和集成电路内存元件3104、3202之间的数据移动的各种机制,并且本公开不限于此。本公开不限于特定的内存系统
3104或存储器系统3106。
[0159] 计算机系统可以包括专门编程的专用硬件,例如,专用集成电路(“ASIC”)。本公开的各方面可以在软件、硬件或固件或其任何组合中实现。此外,这些方法、动作、系统、系统元件及其组件可以被实现为上述计算机系统的一部分或作为独立组件。
[0160] 尽管通过示例示出的计算机系统3100可以是在其上实践本公开的各个方面的一种类型的计算机系统,但是应当理解,本公开的方面不限于在如图31所示的计算机系统上实现。本公开的各个方面可以在具有图31所示的不同架构或组件的一个或多个计算机上实现。
[0161] 计算机系统3100可以是可使用高级计算机编程语言编程的通用计算机系统。计算机系统3100还可以使用专门编程的专用硬件来实现。在计算机系统3100中,处理器3103可以是用于当前任务的任何合适的处理器。其上分层有工作程序的执行系统或操作系统可以控制处理器。可以使用任何合适的执行系统或操作系统。
[0162] 处理器和操作系统一起限定了以高级编程语言编写的应用程序的计算机平台。应当理解,本公开不限于特定的计算机系统平台、处理器、操作系统或网络。此外,对本领域技术人员显而易见的是,本公开不限于特定的编程语言或计算机系统。此外,应当理解,也可以使用其它适当的编程语言和其它适当的计算机系统。
[0163] 计算机系统的一个或多个部分可以分布在耦接到通信网络的一个或多个计算机系统上。这些计算机系统也可以是通用计算机系统。例如,本公开的各个方面可以分布在被配置为向一个或多个客户端计算机提供服务(例如,服务器)或者作为分布式系统的一部分执行总任务的一个或多个计算机系统中。例如,根据本公开的各种实施例,本公开的各个方面可以在包括分布在执行各种功能的一个或多个服务器系统中的组件的客户端-服务器或多层系统上执行。这些组件可以是在通信网络(例如,因特网)上使用通信协议(例如,TCP/IP)的可执行的、中间的(例如,IL)或解析的(例如,Java)代码。
[0164] 应当理解,本公开不限于在任何特定系统或系统组上执行。此外,应当理解,本公开不限于任何特定的分布式架构网络或通信协议。
[0165] 可以使用诸如SmallTalk、Java、C++、Ada或C#(C-Sharp)之类的面向对象的编程语言对本公开的各种实施例进行编程。也可以使用其它面向对象的编程语言。或者,可以使用功能、脚本和/或逻辑编程语言。本公开的各个方面可以在非编程环境(例如,以HTMLXML或其它格式创建的文档,当在浏览器程序的窗口中查看时,呈现图形用户界面(“GUI”)的方面或执行其它功能)中实现。本公开的各个方面可以被实现为编程或非编程元件或其任何组合。
[0166] 考虑到可以将本发明中讨论的原理应用到许多可能的实施例中,应当认识到,相对附图描述的本文的实施例的意图仅在说明,而不应被视为限制权利要求的范围。因此,本文所描述的技术预期所有这样的实施例可以落入所附权利要求及其等同物的范围内。