本申请要求于2017年7月20日提交的美国临时专利申请号62/535,201的优先权权益,该申请通过引用以其全部内容结合在此。
背景技术:
诸如条形码和qr码等传统标签存在各种缺点。例如,传统标签主要用于库存单元(sku)标识、并且通常是只读的。另外,阅读器可以自由地访问作为存储的二进制编码数据的所存储信息。只能使用单一方法将信息写入传统标签。在读取标签时,必须将标签在特定方向上定向。此外,传统标签通常包含固定大小的信息。这些标签可以被轻松地重复使用和复制。传统标签还包含安全风险,因为qr码过去曾用于病毒/恶意软件的传输。
技术实现要素:
安全标签包含二进制信息和模拟信息两者,这意味着这些安全标签可以以多种方式被读取。安全标签的独特设计允许将大量二进制信息编码到标签中,并且还允许视觉“指纹”,这些指纹不返回数据但是可以用于利用区块链对安全标签进行认证。安全标签可以具有附加的真实性层,诸如通过将安全标签与另一个安全标签进行配对和/或排序,或者通过使用安全标签附近的信息(即,近距指纹识别)。可以为整个供应链中的不同用户提供不同的访问权限等级。例如,可以授予客户查看关于真实性、安全性和保修证明的某些信息的访问权限,而可以授予零售商查看关于产品数据、客户数据和产品跟踪的某些信息的访问权限。安全标签的易用性和有效性使得这些安全标签可以在无数种情况下有用,从而帮助减少整个供应链中对事物的认证问题。
所披露的实施例包括一种用于与安全标签交互的认证服务器。该认证服务器可以包括至少一个处理器和至少一个非暂态存储器,该至少一个非暂态存储器包含指令,这些指令在被该至少一个处理器执行时使该认证服务器执行操作,这些操作可以包括:接收包括标签图像的标签识别请求;使用用样式表生成的安全标签图像的所存储的哈希值来识别所接收的标签图像中的安全标签;使用所接收的标签图像和用于对使用该样式表生成的标签进行解码的解码规则来生成标签数据;以及响应于该请求提供该标签数据。
在一些实施例中,使用所存储的哈希值和所接收的标签图像来识别该安全标签可以进一步包括:生成所接收的标签图像的哈希值,以及判定所存储的哈希值与所生成的哈希值之间的差值是否满足阈值标准。生成所接收的标签图像的哈希值可以进一步包括将所接收的标签图像转换为具有预定数量的像素的图像。该预定数量的像素可以大于或等于64个像素并且小于或等于1,048,576个像素。可以用于识别该安全标签的所存储的哈希值可以是感知哈希值,并且所存储的哈希值与所生成的哈希值之间的差值可以是汉明距离。另外,所接收的标签图像可以是矢量图形文件;并且生成所接收的图像的哈希值可以包括对这些矢量图形文件的至少一部分进行光栅化。
在一些实施例中,识别所接收的标签图像中的安全标签可以包括:生成所接收的标签图像的哈希值;使用所生成的哈希值与第一安全标签的图像的所存储的哈希值之间的差值来选择这些第一安全标签;生成所接收的标签图像的预定片段的第二哈希值;以及使用所生成的第二哈希值与这些第一安全标签的图像的预定部分的所存储的第二哈希值之间的差值来从这些第一安全标签中选择该安全标签。在其他实施例中,识别所接收的标签图像中的安全标签可以包括生成所接收的标签图像的逐渐变小片段的哈希值。
在其他实施例中,识别所接收的标签中的安全标签可以包括:生成所接收的标签图像的哈希值;生成所接收的标签图像的与该安全标签的第一预定片段相对应的第一片段的第二哈希值;确定所生成的哈希值与该安全标签的图像的所存储的哈希值之间的差值不满足阈值标准;使用所生成的第二哈希值与该安全标签的第一预定片段的图像的所存储的第二哈希值之间的差值来选择该安全标签;生成与该安全标签的第二预定片段相对应的第三哈希值;以及使用所生成的第三哈希值与该安全标签的第二预定片段的图像的所存储的第三哈希值之间的差值来验证该安全标签。在某些方面,可以在所接收的标签图像的与该安全标签的第二预定片段相对应的第二片段上生成该第三哈希值。在其他方面,可以在与该安全标签的第二预定片段相对应的第二所接收标签图像上生成该第三哈希值。
在其他实施例中,识别所接收的标签图像中的安全标签可以包括:将该安全标签的预定片段的图像的哈希值与包括所接收的标签图像的一个或多个所接收标签图像的片段的哈希值进行比较,该一个或多个所接收标签图像的片段与该安全标签的预定片段相对应;以及基于该比较来选择该安全标签。该比较可以包括确定该安全标签的预定片段的图像的哈希值与该一个或多个所接收标签图像的片段的相应哈希值之间的片段距离,以及使用这些片段距离的总距离或满足阈值标准的片段距离的计数中的至少一者。这些操作可以进一步包括使用该安全标签的预定片段的图像的哈希值的数量、满足该阈值标准的片段距离的计数以及这些片段距离来确定置信值。另外,该一个或多个所接收标签图像可以包括:第一图像,该第一图像以第一细节层次描绘标签的至少一些;以及第二图像,该第二图像以大于该第一细节层次的第二细节层次描绘该标签的至少一些。
在一些实施例中,这些操作可以进一步包括:从私有系统接收该图像的所存储的哈希值;向该私有系统提供解码请求,该解码请求包括该安全标签的标识符;并且其中,可以响应于该解码请求从该私有系统接收这些解码规则。
在一些实施例中,这些解码规则可以包括:第一解码规则,这些第一解码规则使得能够对由该样式表限定的安全标签的第一部分或由该样式表限定的第一标签特征的子集中的至少一者进行解码;以及第二解码规则,这些第二解码规则使得能够对该安全标签的第二部分或第二标签特征子集中的至少一者进行解码。另外,使用所接收的标签图像和这些解码规则来生成标签数据可以包括:使用这些第一解码规则来生成第一标签数据,以及使用该第一标签数据和这些第二解码规则来生成第二标签数据。
在一些实施例中,这些操作可以进一步包括跟踪标签识别请求。在其他实施例中,这些操作可以进一步包括存储标签识别请求信息。仍然在其他实施例中,这些操作可以进一步包括提供指令以更新分布式数据库以反映标签数据。
所披露的实施例一种包括用于生成安全标签的系统。该用于生成安全标签的系统可以包括至少一个处理器,以及至少一个非暂态存储器,该至少一个非暂态存储器包含指令,这些指令在被该至少一个处理器执行时使认证服务器执行操作,这些操作可以包括:接收描述一类安全标签的样式表;获得数字种子;使用该数字种子和该样式来表生成安全标签布局,该安全标签布局基于该数字种子和样式表来指定标签特征选项的组合;接收标签数据;通过根据该标签数据的值选择这些标签特征选项来生成对该标签数据进行编码的安全标签;生成该安全标签的感知哈希值;将该安全标签的哈希值和标识符存储在数据库中;以及提供安全标签。
在一些实施例中,该安全标签布局可以指定参考部分,这些参考部分指示该安全标签布局中用于对数据进行编码的一个或多个被参考位置。在其他实施例中,该安全标签布局可以指定该安全标签布局中用于对数据进行编码的未被参考部分。仍然在其他实施例中,该安全标签布局可以指定该安全标签布局中用于对随机数据进行编码的垃圾部分。仍然在其他实施例中,该安全标签布局可以指定该安全标签布局中用于对加密密钥进行编码的密钥部分。
在一些实施例中,这些标签特征选项可以包括在由该安全标签布局指定的位置处标签特征的存在或不存在。在其他实施例中,这些标签特征选项可以包括标签特征的大小、颜色或形状。仍然在其他实施例中,这些标签特征选项可以包括与由该安全标签布局指定的位置的偏差。仍然在其他实施例中,这些标签特征选项可以包括在由该安全标签布局指定的位置处存在的标签特征的数量。
在一些实施例中,这些标签特征选项可以包括该标签特征上样条编码的存在。该样条编码可以包括从参考点或参考线延伸变化的距离的标签特征缘。该变化的距离可以对一个或多个空间复用的标签数据值进行编码。另外,该变化的距离可以对该一个或多个空间复用的标签数据值的重复进行编码。
在一些实施例中,这些标签特征选项可以包括该标签特征上微结构的存在。在其他实施例中,这些标签特征可以包括边缘,并且这些边缘的标签特征选项包括边缘断裂、边缘变形和边缘连接。仍然在其他实施例中,标签特征可以包括边缘断裂,并且这些边缘断裂的标签特征选项包括边缘断裂缘形状。仍然在其他实施例中,这些标签特征可以包括预定类型的标签特征之间的连接,并且这些连接的标签特征选项包括连接宽度和连接不对称性。仍然在其他实施例中,这些标签特征可以包括标签特征之间的连接,并且这些连接的标签特征选项包括连接宽度和连接不对称性。
在一些实施例中,通过选择这些标签特征选项来生成对该标签数据进行编码的安全标签可以包括:根据第一标签数据的值来选择第一标签特征选项,对这些第一标签特征选项的选择创建了第二标签特征选项;以及根据第二标签数据的值来选择这些第二标签特征选项。另外,这些第一标签特征选项可以包括点的存在或不存在,这些第二标签特征选项可以包括根据该第一标签数据的值而存在的点之间的连接的存在或不存在,并且对第三标签数据进行编码的第三标签特征选项可以包括根据该第二标签数据的值而存在的连接的宽度。在其他实施例中,通过根据该标签数据的值来选择这些标签特征选项来生成对该标签数据进行编码的安全标签可以包括:利用加密密钥来对该标签数据进行加密;根据该加密的标签数据的值来选择这些标签特征选项;以及将该加密密钥编码到该安全标签中。
在一些实施例中,该安全标签可以包括矢量图形文件。在其他实施例中,提供该安全标签可以包括对该安全标签进行光栅化。仍然在其他实施例中,提供该安全标签可以包括利用该安全标签标记对象或将该安全标签结合到数字产品中。仍然在其他实施例中,这些操作可以进一步包括在提供该标签数据之前检查所生成的哈希值是否与其他安全标签的哈希值冲突。仍然在其他实施例中,该样式表可以包括用于生成该安全标签布局的用于对公共数据进行编码的部分的公共部分和用于生成该安全标签布局的用于对私有数据进行编码的部分的私有部分。仍然在其他实施例中,这些操作可以进一步包括:生成该安全标签的不同片段在多个细节层次的感知哈希值;以及将该安全标签的不同片段的这些感知哈希值存储在该数据库中。
所披露的实施例包括安全标签读取器。该安全标签读取器可以包括至少一个或多个处理器、以及至少一个非暂态存储器,该至少一个非暂态存储器包含指令,这些指令在被该至少一个处理器执行时使该安全标签读取器执行操作,这些操作可以包括:检测图像中的潜在安全标签;使用该图像和样式表来生成标准化的安全标签图像;向认证服务器提供识别请求,该识别请求包括该标准化的安全标签图像;接收用于对被编码到该安全标签中作为标签特征选项的标签数据进行解码的规则;以及使用所接收的规则对该标签数据进行解码。在一些实施例中,可以从该安全标签读取器的扫描仪接收该图像。在其他实施例中,该扫描仪可以是相机。
在一些实施例中,检测该图像中的潜在安全标签可以包括确定该潜在安全标签的大小满足从该样式表中检索到的大小约束。在其他实施例中,可以使用几何特征检测、基于内核的特征检测、模板匹配或卷积神经网络中的至少一者来检测该潜在安全标签。使用几何特征检测来检测该图像中的潜在安全标签可以进一步包括:对该图像进行阈值化以生成二值化图像;使用从该样式表中检索到的目标参数值来检测该二值化图像中的几何特征;以及使用这些几何特征来确定该潜在安全标签的参考点。另外,这些几何特征可以包括同心椭圆,并且该参考点可以包括这些同心椭圆的焦点。
在一些实施例中,生成该潜在安全标签的标准化图像可以包括将该图像转换为黑白图像或灰度图像。在其他实施例中,生成该潜在安全标签的标准化图像可以包括使用图像扭曲变换和从该样式表中检索到的目标参数值来使该图像平面化。使用图像扭曲变换来使该图像平面化可以进一步包括校正鱼眼失真、桶形失真或角度失真中的至少一者。另外,这些目标参数值可以包括内或外标签边缘形状。仍然在其他实施例中,生成该潜在安全标签的标准化图像可以包括通过确定潜在图像间隙的标签特征选项并且将这些标签特征选项值与目标参数值进行比较来检测图像间隙。这些目标参数值可以包括内或外标签边缘厚度与直径之比,或者内或外标签边缘厚度与标签边缘断裂宽度之比。仍然在其他实施例中,生成该潜在安全标签的标准化图像可以包括:确定标签特征的取向,以及基于该标签特征的所确定取向和从该样式表中检索到的目标参数值来旋转该图像。该标签特征可以是中心标志,并且该目标参数值可以包括中心标志取向。
在一些实施例中,该潜在安全标签的标准化图像可以包括矢量图形图像。在其他实施例中,该图像包括多个潜在安全标签,并且该识别请求可以包括与该多个潜在安全标签相对应的矢量图形图像的流。仍然在其他实施例中,该识别请求包括该安全标签读取器的公钥,并且该识别请求的至少一部分是利用该安全标签读取器的私钥来加密的。仍然在其他实施例中,使用该图像来生成标准化的安全标签图像可以包括:提供指令以在该安全标签读取器的用户界面上显示该图像和突出显示该潜在安全标签的指示;接收指令以生成该潜在安全标签的第二放大图像;以及根据该潜在安全标签的第二放大图像来生成该标准化图像。
在一些实施例中,这些操作可以进一步包括:提供指令以在该安全标签读取器的用户界面上显示该图像和突出显示该潜在安全标签的指示;接收对该潜在安全标签的选择;以及提供指令以在该安全标签读取器的用户界面上显示该安全标签数据。突出显示该潜在安全标签的指示可以是围绕该图像中的潜在安全标签的边界框。
在一些实施例中,该样式表的公共可用部分可以提供用于对被编码到该安全标签中作为标签特征选项的公共标签数据进行解码的规则。该公共标签数据可以进一步包括认证服务器的地址、产品类型、品牌名称、库存编号或纠错码中的至少一者。
所披露的实施例包括一种安全标签系统。该安全标签系统可以包括至少一个或多个处理器、以及至少一个非暂态存储器,该至少一个非暂态存储器包含指令,这些指令在被该至少一个处理器执行时使该安全标签系统执行操作,这些操作可以包括:扫描将标签数据编码为对潜在标签特征选项的选择的安全标签;与认证服务器交互以对该安全标签进行解码;以及接收存储在分布式数据库中的该安全标签的状态信息,该状态信息指示该标签的有效性状态。
在一些实施例中,这些操作可以进一步包括提供该安全标签的经更新状态信息以存储在该分布式数据库中。可以进一步将该安全标签的经更新状态信息提供给oracle数据库以与认证密钥一起写入该分布式数据库中。另外,该安全标签的经更新状态信息可以指示该安全标签是无效的。在其他实施例中,该经更新状态信息可以包括该状态信息的经更新可访问性选项。仍然在其他实施例中,该安全标签的状态信息可以指示跟踪信息、销售信息、客户数据、使用信息、激活信息、位置信息、真实性信息、目的地信息、经更新制造商信息、交易信息、产品数据或所有权证明信息中的至少一者。仍然在其他实施例中,该安全标签的状态信息可以指示该安全标签与另一个安全标签之间的配对。
在一些实施例中,该产品可以包括数字产品。该第一安全标签可以进一步被嵌入到该数字产品中或与该数字产品一起显示。在其他实施例中,该产品可以包括物理产品。该第一安全标签可以进一步标记该物理产品。
在一些实施例中,该数据库可以是分布式数据库;并且在该数据库中为该第二安全标签创建条目可以包括向oracle数据库提供认证密钥和该第二标签的标识符以写入区块链。
所披露的实施例包括一种用于与安全标签交互的服务器。该用于与安全标签交互的服务器可以包括至少一个处理器、以及至少一个非暂态存储器,该至少一个非暂态存储器包含指令,这些指令在被该至少一个处理器执行时使该服务器执行操作,这些操作可以包括:接收关于将第一标签数据编码为对潜在的第一安全标签特征选项的选择的第一安全标签的请求,该第一标签数据包括存储的上下文信息;对所存储的上下文信息进行解码;接收上下文信息;使用所接收的上下文信息和所存储的上下文信息来认证该请求;以及响应于该请求来提供成功认证的指示。
在一些实施例中,认证该请求可以包括确定所接收的上下文信息和所存储的上下文信息满足相似性标准。该相似性标准的满足可以进一步取决于所接收的上下文信息与所存储的上下文信息之间的汉明距离。在其他实施例中,这些操作可以进一步包括请求该上下文信息;并且可以响应于该请求来接收所接收的上下文信息。
在一些实施例中,该成功认证的指示可以包括该第一标签数据中的至少一些。在其他实施例中,该成功认证的指示可以包括用于该第一标签数据中的至少一些的解码指令。仍然在其他实施例中,该成功认证的指示可以包括从分布式数据库中检索到的状态信息。仍然在其他实施例中,可以使用oracle数据库来从分布式数据库中检索该状态信息。
所披露的实施例包括一种两部分式的标记。该两部分式的标记可以包括:基板,该基板利用将第一标签数据编码为对潜在的第一安全标签特征选项的选择的第一安全标签来标记;以及覆盖物,该覆盖物可拆卸地粘附到该基板,该覆盖物包括与该第一安全标签对准的透明部分和不透明部分,该第一安全标签和对准的不透明部分将第二标签数据编码为对潜在的第二安全标签特征选项的选择。在一些实施例中,该潜在的第一安全标签特征选项可以不同于该潜在的第二安全标签特征选项。在其他实施例中,该对准的不透明部分可以遮盖所选择的潜在的第一安全标签特征选项。仍然在其他实施例中,该对准的不透明部分可以选择潜在的第一安全标签特征选项。仍然在其他实施例中,该潜在的第一安全标签特征选项可以包括在由第一安全标签布局指定的位置处标签特征的存在或不存在。另外,该潜在的第二安全标签特征选项可以包括在由第二安全标签布局指定的位置处标签特征的存在或不存在,该第二安全标签布局不同于该第一安全标签布局。
所披露的实施例包括一种用于生成两部分式的标记的方法。该用于生成两部分式的标记的方法可以包括:使用第一标签数据、第一数字种子和第一样式表来生成将该第一标签数据编码为对潜在的第一安全标签特征选项的选择的第一安全标签;使用第二标签数据、第二数字种子和第二样式表来生成将该第二标签数据编码为对潜在的第二安全标签特征选项的选择的第二安全标签;确定该第一安全标签与该第二安全标签之间的差异图像;利用该第一安全标签来标记基板;以及将覆盖物可拆卸地粘附到该基板,该覆盖物利用该差异图像来标记并且与该第一安全标签对准。
在一些实施例中,该覆盖物可以遮盖该第一安全标签的、不存在于该第二安全标签中的部分。在其他实施例中,该覆盖物可以描绘该第二安全标签的、不存在于该第一安全标签中的部分。仍然在其他实施例中,该覆盖物可以传输该第二安全标签的、存在于该第一安全标签中的部分。仍然在其他实施例中,该基板可以包括消费品。该第一安全标签可以对应于该消费品的购后状态,并且该第二安全标签可以对应于该消费品的购前状态。
所披露的实施例包括一种用于提供文档的方法。该用于提供文档的方法可以包括:生成与文档配对的第一安全标签,该第一安全标签使用对潜在标签特征选项的选择来对该文档的标识符进行编码;从第一设备接收对该文档的访问请求;向该第一设备提供该第一安全标签;从第二设备接收包括安全标签图像的确认请求;将该第一安全标签与该安全标签图像进行比较;以及基于该比较向该第一设备提供该文档。在某些方面,该文档的标识符可以包括该文档的哈希值。另外,该第二设备可以是移动设备。
在一些实施例中,将该第一安全标签与该安全标签图像进行比较可以包括:生成该第一安全标签的感知哈希值;生成该安全标签图像的感知哈希值;以及确定所存储的感知哈希值与所生成的感知哈希值之间的差值满足阈值标准。在其他实施例中,将该第一安全标签与该安全标签图像进行比较可以包括:生成该安全标签图像的感知哈希值;使用所生成的感知哈希值与第一安全标签的图像的所存储的感知哈希值之间的差值来选择这些第一安全标签;生成该安全标签图像的预定片段的第二感知哈希值;以及使用所生成的第二感知哈希值与这些第一安全标签的图像的预定部分的所存储的第二感知哈希值之间的差值来从这些第一安全标签中选择该第一安全标签。
在一些实施例中,该确认请求可以包括确认请求标识符,并且基于该比较向该第一设备提供该文档可以进一步包括:生成与该请求配对的第二安全标签,该第二安全标签使用对潜在标签特征选项的选择来对该确认请求标识符进行编码;以及利用该第二安全标签在该文档上加水印。
所披露的实施例包括一种用于生成可变安全标签的系统。该用于生成可变安全标签的系统可以包括至少一个处理器、以及至少一个非暂态存储器,该至少一个非暂态存储器包含指令,这些指令在被该至少一个处理器执行时使该系统执行操作,这些操作可以包括:生成将该标签数据编码为根据标签数据的值来选择标签特征选项的第一安全标签;从第二设备的扫描仪接收包括标签图像序列的请求,该标签图像序列包括第一标签图像;使用该第一安全标签和该第一标签图像来认证该请求;以及提供该请求的认证的指示。在某些方面,该扫描仪可以是相机。在其他方面,该触发可以是翻转事件或点击事件。
在一些实施例中,这些操作可以进一步包括提供指令以在第一设备的显示器上显示包括该第一安全标签的标签序列。在某些方面,提供指令以显示包括该第一安全标签的标签序列可以包括将该标签序列嵌入到数字产品中。在其他方面,可以响应于触发而提供这些指令用于显示该第一设备的显示器的标签序列。
在一些实施例中,认证该请求可以包括将该第一安全标签的一个或多个感知哈希值与该第一标签图像的一个或多个相应哈希值进行比较。在其他实施例中,认证该请求可以包括将包括该第一安全标签的多个安全标签与包括该第一标签图像的多个相应标签图像进行匹配。该认证可以进一步要求根据预定的出现顺序将该多个安全标签与该多个相应标签图像进行匹配。仍然在其他实施例中,认证该标签序列可以包括垃圾标签。
在一些实施例中,该请求的认证的指示可以包括该标签数据中的至少一些。在其他实施例中,该请求的认证的指示可以包括用于对该第一标签数据中的至少一些进行解码的解码指令。仍然在其他实施例中,该请求的认证的指示可以包括从数据库中检索到的状态信息。仍然在其他实施例中,该数据库可以是分布式数据库;并且使用oracle数据库来从分布式数据库中检索该状态信息。
所披露的实施例包括一种用于跟踪产品的方法。该用于跟踪产品的方法可以包括利用计算机可读安全跟踪标签来标记该产品,该计算机可读安全跟踪标签将产品识别数据编码为对基于数字种子与样式表的组合的标签特征选项的选择。在一些实施例中,这些标签特征选项可以包括在由该数字种子与该样式表的组合指定的位置处标签特征的存在或不存在。在其他实施例中,这些标签特征选项可以包括标签特征的大小、颜色或形状。仍然在其他实施例中,这些标签特征选项可以包括同由该数字种子与该样式表的组合指定的位置的偏差。仍然在其他实施例中,这些标签特征选项包括在由该数字种子与该样式表的组合指定的位置处存在的标签特征的数量。
在一些实施例中,这些标签特征选项包括该标签特征上样条编码的存在。该样条编码可以进一步包括从参考点或参考线延伸变化的距离的标签特征缘。另外,该变化的距离可以对一个或多个空间复用的标签数据值进行编码,并且该变化的距离可以对该一个或多个空间复用的标签数据值的重复进行编码。在其他实施例中,这些标签特征选项可以包括该标签特征上微结构的存在。仍然在其他实施例中,这些标签特征可以包括边缘,并且这些边缘的标签特征选项包括边缘断裂、边缘变形和边缘连接。仍然在其他实施例中,这些标签特征可以包括边缘断裂,并且这些边缘断裂的标签特征选项包括边缘断裂缘形状。仍然在其他实施例中,这些标签特征可以包括预定类型的标签特征之间的连接,并且这些连接的标签特征选项可以包括连接宽度和连接不对称性。仍然在其他实施例中,这些标签特征可以包括标签特征之间的连接,并且这些连接的标签特征选项可以包括连接宽度和连接不对称性。仍然在其他实施例中,这些标签特征可以包括中心标志,并且这些标签特征选项可以包括该中心标志相对于该安全标签的中心点的位移。
在一些实施例中,该方法可以进一步包括生成该计算机可读安全跟踪标签。在某些方面,生成该计算机可读安全跟踪标签可以进一步包括:根据该产品识别数据的第一值来选择第一标签特征选项,对这些第一标签特征选项的选择创建了第二标签特征选项;以及根据该产品识别数据的第二值来选择这些第二标签特征选项。这些第一标签特征选项可以进一步包括点的存在或不存在,这些第二标签特征选项可以包括根据这些第一值而存在的点之间的连接的存在或不存在,并且对该产品识别数据的第三值进行编码的第三标签特征选项可以包括根据这些第二值而存在的连接的宽度。在其他方面,生成该计算机可读安全跟踪标签可以进一步包括:利用加密密钥来加密该产品识别数据的至少一部分;根据该产品识别数据的加密部分的值来选择第一标签特征选项;以及将该加密密钥编码到该计算机可读安全跟踪标签中。
在一些实施例中,该计算机可读安全跟踪标签可以包括矢量图形文件,并且利用计算机可读安全跟踪标签来标记该产品可以包括对该矢量图形文件进行光栅化。在其他实施例中,该方法可以进一步包括向认证服务器提供该计算机可读安全跟踪标签的识别信息。该方法可以进一步包括:生成该计算机可读安全跟踪标签的哈希值,并且在向该认证服务器提供该识别信息之前检查该哈希是否与其他计算机可读安全跟踪标签的哈希值冲突。
所披露的实施例包括一种用于跟踪产品的标记。该用于跟踪产品的标记可以包括印有计算机可读安全跟踪标签的基板,该计算机可读安全跟踪标签将产品识别数据编码为对基于数字种子与样式表的组合的标签特征选项的选择。在一些实施例中,这些标签特征选项可以包括在由该数字种子与该样式表的组合指定的位置处标签特征的存在或不存在。在其他实施例中,这些标签特征选项可以包括标签特征的大小、颜色或形状。仍然在其他实施例中,这些标签特征选项可以包括同由该数字种子与该样式表的组合指定的位置的偏差。仍然在其他实施例中,这些标签特征选项可以包括在由该数字种子与该样式表的组合指定的位置处存在的标签特征的数量。
在一些实施例中,这些标签特征选项可以包括该标签特征上样条编码的存在。该样条编码可以进一步包括从参考点或参考线延伸变化的距离的标签特征缘。另外,该变化的距离可以对一个或多个空间复用的标签数据值进行编码,该变化的距离可以对该一个或多个空间复用的标签数据值的重复进行编码。在其他实施例中,这些标签特征选项可以包括该标签特征上微结构的存在。仍然在其他实施例中,这些标签特征可以包括边缘,并且这些边缘的标签特征选项可以包括边缘断裂、边缘变形和边缘连接。仍然在其他实施例中,这些标签特征可以包括边缘断裂,并且这些边缘断裂的标签特征选项可以包括边缘断裂缘形状。仍然在其他实施例中,这些标签特征可以包括预定类型的标签特征之间的连接,并且这些连接的标签特征选项可以包括连接宽度和连接不对称性。仍然在其他实施例中,这些标签特征可以包括标签特征之间的连接,并且这些连接的标签特征选项可以包括连接宽度和连接不对称性。仍然在其他实施例中,这些标签特征可以包括中心标志,并且这些标签特征选项可以包括该中心标志相对于该安全标签的中心点的位移。
应当理解,前述概括描述和以下详细描述都只是示例性和说明性的,而不限制所要求保护的所披露的实施例。
附图说明
附图不一定是按比例绘制的或详尽的。而是,重点通常放在说明本文所描述的本发明的原理上。结合在本说明书中并且构成本说明书的一部分的这些附图展示了与本披露一致的若干实施例,并且与详细描述一起用于解释本披露的原理。在附图中:
图1描绘了用于与安全标签交互的示例性系统。
图2描绘了用于与安全标签交互的认证服务器的示例性示意图。
图3描绘了标签数据的示例性示意图。
图4描绘了展示通常适用于实施所披露的系统和方法的示例性计算设备的部件的示例性简图。
图5描绘了用于存储标签信息的数据库的示例性示意图。
图6描绘了展示标签生成的示例性过程的流程图。
图7描绘了展示示例性迭代编码过程的流程图。
图8描绘了展示标签读取的示例性过程的流程图。
图9描绘了展示标签识别的示例性过程的流程图。
图10描绘了展示多分辨率标签识别的示例性过程的流程图。
图11描绘了展示利用改变的标签的多分辨率标签识别的示例性过程的流程图。
图12描绘了展示用于执行多分辨率标签识别的示例性数据结构的流程图。
图13描绘了描绘标签识别结果的示例性用户界面。
图14描绘了用于对标签特征选择进行解码的示例性过程。
图15描绘了使用上下文信息的示例性认证过程。
图16a描绘了配对的安全标签和排序的安全标签。
图16b描绘了与上下文信息配对的安全标签。
图17描绘了示例性叠加标签。
图18描绘了用于使用安全标签进行多通道文档认证的示例性过程。
图19描绘了用于认证的示例性安全标签序列。
图20描绘了用于使用数据库进行库存管理的示例性过程。
图21描绘了用于修改标签的示例性过程。
图22描绘了用于使用配对的标签进行库存管理的示例性过程。
图23描绘了用于记录所有权转移的示例性过程。
图24a描绘了示例性安全标签。
图24b描绘了与示例性安全标签相对应的图形文件的部分。
图25a描绘了使用相同的样式表和不同的数据生成的安全标签。
图25b描绘了使用不同的样式表和相同的数据生成的安全标签。
图26a描绘了安全标签特征选项。
图26b至图26n描绘了潜在安全标签选项的细节。
图27a至图27j描绘了示例性安全标签的生成。
图28a至图28n描绘了示例性安全标签的生成。
图29a和29b描绘了示例性用户界面。
具体实施方式
图1描绘了用于与安全标签交互的示例性系统100。此示例性系统可以包括安全标签105、客户端设备110、验证服务器115、私有系统120和公共数据库125。系统100的部件可以被配置成用于使用网络130进行通信。在一些实施例中,可以使用安全标签的图像、样式表和数字种子来对安全标签105进行解码。此信息可以分布在私有系统120与客户端设备110之间,以减小能够危害这些系统中的任何一个系统的攻击者可以解码安全标签的可能性。例如,私有系统120可以被配置成用于存储样式表和数字种子,而客户端设备110可以被配置成用于获得安全标签105的图像。在一些实施例中,认证服务器115可以被配置成用于执行解码、从客户端设备110获得安全标签105的图像以及从私有系统120获得解码指令。以此方式,系统可以分发对安全标签105进行解码所必需的信息,同时确保解码发生在安全系统(认证服务器115)上。
安全标签105可以是被配置成用于标记产品的标签。该产品可以是物理产品(例如,鞋子)或数字产品(例如,网站或视频流)。如本文所描述的,该产品可以被配置成用于使用对标签特征选项的选择来对标签数据进行编码。供选择的潜在标签特征选项可以取决于样式表和数字种子。以此方式,样式表可以限定一类相似的安全标签,而不同的数字种子可以确保每个标签保持唯一。
认证服务器115可以包括一个或多个计算系统,诸如服务器、通用计算机或大型计算机。认证服务器115可以是独立的,或者其可以是子系统的一部分,该子系统可以是更大系统的一部分。例如,认证服务器115可以包括远程定位的并且通过公共网络(例如,网络130)或专用私有网络进行通信的分布式服务器。在一些实施例中,认证服务器115可以被配置成用于通过网络130与系统100的部件进行通信。在一些方面,认证服务器115可以包括被托管在云计算环境(诸如亚马逊网络服务)上的一个或多个容器或虚拟机。
认证服务器115可以被配置成用于基于从客户端设备110接收的图像以及从私有系统120或另一个系统接收的解码指令来识别安全标签。认证服务器115可以被配置成用于与公共数据库130交互以读取或写入关于所识别的标签的状态信息。在一些实施例中,认证服务器115可以被配置成用于通过oracle数据库间接与公共数据库130交互(例如,当公共数据库130是以太坊区块链时)。认证服务器115可以被配置成用于响应于识别请求而向客户端设备110提供解码的标签信息或某些解码指令。
私有系统120可以包括一个或多个计算系统,诸如服务器、通用计算机或大型计算机。私有系统120可以是独立的,或者其可以是子系统的一部分,该子系统可以是更大系统的一部分。例如,私有系统120可以包括远程定位的并且通过公共网络(例如,网络130)或专用私有网络进行通信的分布式服务器。在一些实施例中,私有系统120可以被配置成用于通过网络130与系统100的部件进行通信。在一些方面,私有系统120可以包括被托管在云计算环境(诸如亚马逊网络服务)上的一个或多个容器或虚拟机。
私有系统120可以被配置成用于生成供系统100使用的安全标签。在一些实施例中,私有系统120可以被配置成用于存储用于创建安全标签的样式表信息和数字种子。与所披露的实施例一致,私有系统120可以被配置成用于响应于来自认证服务器115的请求。这些请求可以包括安全标签标识符。私有系统120可以被配置成用于提供用于与安全标签标识符相对应的安全标签的解码指令。在一些实施例中,解码指令可以包括样式表和数字种子中的至少一些。解码指令可以包括安全标签的标签特征选项与标签数据之间的特定对应关系。
公共数据库125可以包括由计算设备(例如,膝上型计算机、台式计算机、工作站、服务器、通用计算机、大型计算机、云计算平台)托管的一个或多个数据库。公共数据库125可以是分布式数据库。例如,公共数据库125可以是区块链数据库。在一些实施例中,公共数据库125可以是以太坊区块链或类似的智能合约区块链。
图4描绘了展示通常适用于实施所披露的系统和方法的示例性计算设备的部件的示例性简图。根据一些实施例,示例性设备可以包括处理器410、存储器415、(多个)i/o接口420以及网络适配器425。这些单元可以经由总线405或无线地彼此通信。图4中示出的部件可以驻留在单个设备或多个设备中。
处理器410可以是执行根据所披露的实施例的各种方法的一个或多个微处理器、中央处理单元或图形处理单元。存储器415可以包括一个或多个计算机硬盘、随机存取存储器、可移动存储装置或远程计算机存储装置。在各实施例中,存储器415存储由处理器410执行的各种软件程序。i/o接口420可以包括键盘、鼠标、音频输入设备、触摸屏或类似的人机接口设备。网络适配器425使得示例性设备能够通过网络130与图1的部件交换信息。在各实施例中,网络适配器425可以被配置成用于支持无线网络或有线网络。在某些方面,网络适配器425可以配置有用于支持一个或多个局域网、个域网或近场网络的模块。在一些方面,网络适配器425可以配置有用于支持计算机总线的集线器。例如,网络适配器425可以配置有一个或多个usb集线器。
图5描绘了用于存储标签信息的数据库的示例性示意图。在一些实施例中,公共数据库可以包括单独账户515和捆绑账户520。与所披露的实施例一致,高价物品(例如,房屋、珠宝、汽车等)的状态信息可以存储在单独账户中,而多个低价物品(例如,鞋子、衣服、个人电子产品、诸如电影等数字产品等)的状态信息可以存储在单个捆绑帐户中。在一些方面,涉及高价物品的安全标签的每次交易可以被写入公共数据库130,而涉及低价物品的交易组可以被存储在私有数据库中并且被周期性地写入相应捆绑账户520。在一些实施例中,当公共数据库130是分布式数据库时,请求者501(例如,认证服务器115)必须与oracle数据库510交互,以便向公共数据库读取和写入信息。在各方面,可以将请求者和oracle数据库组合成单个程序(例如,认证服务器115可以同时充当请求者501和oracle数据库510)。在一些实施例中,系统100的用户能够直接从公共数据库130读取信息,而不必联系认证服务器115。例如,系统100可以包括用于读取关于包含在公共数据库130中的安全标签的信息的门户。
图6描绘了展示与所披露的实施例一致的安全标签生成的示例性过程600的流程图。尽管以下将过程600描述为由私有系统120执行,但是在一些实施例中,该过程可以由认证服务器115或另一个系统执行。过程600可以包括:接收生成安全标签所必需的数字种子和样式表、生成安全标签布局、使用该安全标签布局和标签数据来生成安全标签、向认证服务器115注册该安全标签、以及为要跟踪的产品提供适当形式的标签。以此方式,可以生成对产品而言唯一的标识符,该标识符将标签数据编码为对标签特征选项的选择。
在开始之后,过程600可以进行至步骤601。在步骤601中,私有系统120可以接收样式表。样式表可以描述一类安全标签。在一些实施例中,这类安全标签可能在外观、目的或用途上相似。例如,样式表可以描述特定制造商(例如鞋制造商)用来标记特定产品(例如某型号的鞋子)的一类安全标签。在一些实施例中,制造商可以使用相同的样式表来为相同产品的实例生成安全标签。这可以允许制造商在用于标记产品的安全标签之中达到一定程度的视觉统一,同时确保每个单独的标签保持唯一。
样式表可以限定可由这类安全标签使用的标签数据位置、标签特征和标签特征选项。在一些方面,空间选项(例如,安全标签内的标签特征大小、标签特征位置等)可以由标准化的值(诸如比率和角度)来限定。作为非限制性示例,样式表可以被配置成用于限定点的第一直径选项可以是从安全标签的中心到安全标签的外缘的距离的10%,而该点的第二直径选项可以是从安全标签的中心到安全标签的外缘的距离的15%。作为第二非限制性示例,样式表可以被配置成用于根据原点位于标签中心处的径向坐标系来限定潜在标签特征位置。特定的潜在标签特征位置可以是从标定线顺时针偏离5度以及从中心点到标签缘的距离的50%。作为另一示例,标签边缘的断裂可以是标签宽度的两倍宽。标签边缘的宽度又可以被限定为从中心点到标签缘的距离的一部分。以此方式,样式表可以用于限定对标签特征的约束集,该约束集可以用于认证标签而与标签是否可以被解码无关。
在一些实施例中,样式表可以被配置成用于包含用于标签外观的参数,预设的、可变的或随机生成的特征的最小值、最大值和公差。样式表可以被配置成用于根据安全标签的预期用途(例如,安全标签的预期大小(因为使用手机相机可能更加难以读取小标签)、印刷的安全标签的预期分辨率、安全标签的预期颜色和表面光洁度)来生成不同的安全标签布局。在一些实施例中,私有系统120可以被配置成用于提供使得能够生成、导出和存储样式表的配置工具。
私有系统120可以被配置成用于生成随机数,以供样式表在创建安全标签布局时使用。可以使用伪随机数生成器来生成随机数。在一些方面,样式表可以指定伪随机数生成器(例如,通过引用函数库或网络服务,通过将伪随机数生成器编码到样式表中等)。在各方面,私有系统120可以指定伪随机数生成器。
在一些实施例中,伪随机数生成器可以被配置成用于根据初始种子生成随机数序列。给定相同的种子,伪随机数生成器可以被配置成用于生成相同的伪随机数序列。因此,与所披露的实施例一致,由样式表生成的安全标签布局可以取决于样式表的任何参数以及种子。
在各实施例中,表示为二进制数的伪随机数可以通过该二进制数的位来提供选择序列。例如,当二进制数为00110110时,可以为样式表提供的前两个选项选择“false”选项,并且可以为样式表提供的第三个选项选择“true”选项。可以使用多个位在具有多于两个选择的选项之间进行选择。例如,两个位可以用于选择具有四个可能值的选项。
在一些实施例中,样式表可以包括公共部分。在一些方面,系统100可以被配置成用于为客户端设备提供样式表的公共部分。在各方面,样式表的公共部分可以在已知位置(例如,已知的url等)处可用。样式表的公共部分可以包括约束标签特征关系的比率中的至少一些。例如,公共部分可以包括外标签边缘的宽度与标签的直径(或长轴或短轴等)之比。此比率可以用于判定标签在某些方面是否真实,而不需要任何进一步处理。公共部分还可以指示公共标签数据位于何处以及如何对此标签数据进行解码。作为非限制性示例,样式表的公共部分可以指示沿外边缘的外缘从12点钟位置开始一直延续到6点钟位置的样条对sku、认证服务器的url或用于判定标签的图像是否已经被正确处理的已知值进行编码。由于样式表描述一类标签,因此此公共部分可以描述属于这类标签的每个安全标签中可以访问的信息。
在一些实施例中,样式表可以包括私有部分。私有部分可以描述比率、安全标签布局信息、标签数据与标签特征选项之间的对应关系等,这些内容可以用于对私有标签数据进行编码。在一些方面,样式表的私有部分可以由私有系统120存储。
在开始之后,过程600可以进行至步骤603。在步骤603中,私有系统120可以获得数字种子。私有系统120可以被配置成用于使用随机数生成器来生成数字种子。私有系统120可以被配置成用于从系统100的用户、配置文件或另一个系统接收数字种子。
在步骤601和步骤603之后,过程600可以进行至步骤605。在步骤605中,私有系统120可以使用数字种子和样式表来生成安全标签布局。如上文所描述的,样式表可以包括将数据编码为标签特征选项的多个方式。对将数据编码为标签特征选项(例如,安全标签布局)的特定方式的选择可以取决于数字种子。
在一些实施例中,随机数生成器(例如,gibson研究公司的超高熵伪随机数生成器等)可以使用数字种子来生成一个或多个伪随机数。然后,可以使用这些伪随机数来选择将数据编码为标签特征选项的方式。例如,当有32个二进制选项时,可以使用两个16位二进制数的位值在这32个二进制选项中进行选择,以生成安全标签布局。作为附加示例,可以基于将随机生成的数字与阈值参数进行比较来选择32个二进制选项。例如,私有系统120可以被配置成用于:在随机生成的数字的值超过0.95的情况下选择第一选项,并且否则,选择第二选项。作为进一步选项,可以将随机数生成器与卡片洗牌算法结合使用以生成二进制数据序列(例如,20个标签特征序列的存在或不存在)。作为非限制性示例,私有系统120可以被配置成用于:确定所需数量的标签特征,确定这些标签特征的潜在位置的数量,创建大小与潜在位置的数量相等的数组,利用指示标签特征的存在的值将所需数量的元素填充至数组,然后对数组进行混洗以创建随机序列(例如,使用fisher-yates洗牌算法等)。以此方式,安全标签布局可以基于对数字种子和样式表的选择来指定标签特征选项的组合。
在一些实施例中,标签部分可以描述安全标签的空间区域。例如,安全标签的物理象限。在各实施例中,标签部分可以描述安全标签的逻辑部分。例如,安全标签可以是矢量图形文件,并且标签部分可以是该矢量图形文件内的逻辑分区。例如,标签部分可以包括包含svg标签的元素,这些svg标签以特定顺序描述安全标签中的小点的潜在位置。该元素中标签的顺序可以描述从数字中的位到安全图像中的小点的存在或不存在的映射,而不需要参考安全标签中的小点的实际位置。
与所披露的实施例一致,安全标签布局可以包括多种不同类型的标签特征选项。标签特征选项可以包括在由安全标签布局指定的位置处标签特征的存在或不存在。例如,安全标签布局可以指示可以将小点放置在安全标签内的某个特定位置。在该位置处小点的存在可以指示设置了标签数据的相应位。
标签特征选项可以包括标签特征的大小、颜色或形状。例如,安全标签布局可以指示较大的小点(或第一颜色小点或变形的标签特征等)对应于已设置的位,而较小的小点(或第二颜色小点或未变形的标签特征等)对应于空位。
标签特征选项可以包括与由安全标签布局指定的位置的偏差。例如,安全布局可以为安全标签内的标签特征指定相对位置。与指定位置的偏差可以通过偏差的方向和幅度来对一个或多个位的值进行编码(例如,在x方向上偏差一个或多个位并且在y方向上偏差一个或多个位)。
标签特征选项可以包括在由安全标签布局指定的位置处存在的标签特征的数量。例如,在指定位置处存在的小点的数量可以对位进行编码。作为进一步的示例,编码可以通过直接的对应关系(例如,位的值包括小点的数量)或通过某种间接的对应关系(例如,当存在零至两个小点时设置位,并且当存在多于两个小点时为空)来进行。
标签特征选项可以包括标签特征上微结构的存在。此类微结构可以包括微印刷的条形码、qr码、文本或其他特征。在一些实施例中,微结构可以被印刷成使得距安全标签第一距离(例如,大于5cm与20cm之间的距离)的扫描仪不能分辨微结构,而距安全标签第二距离的扫描仪(例如,小于1cm与10cm之间的距离)可以分辨微结构。
标签特征选项可以包括标签特征上样条编码的存在。在一些实施例中,样条编码可以包括标签特征缘的延伸或变化。此延伸或变化可以从参考点或参考线延伸变化的距离。例如,原本圆形小点的缘可以从由标签布局指定的小点的中心或小点的圆周延伸变化的量。此变化的距离可以对一个或多个空间复用的标签数据值进行编码。
例如,基本空间频率可以与第一标签值的二进制表示复用。因此,基本空间频率可以在与第一标签值中的已设置位相对应的位置处而不是在与第一标签值中的空位相对应的位置处有助于缘的延伸或变化。附加的基本空间频率可以与附加标签值的二进制表示复用。这些基本空间频率可以相差至少四倍(例如,第一基本空间频率可以具有2^12微米的周期,第二空间频率可以具有2^10微米的周期,第三空间频率可以具有2^8微米的周期等)。安全标签布局可以被配置成用于进一步指定用于对样条进行解码的重复的起点和次数。因此,该变化的距离可以对一个或多个空间复用的标签数据值的重复进行编码。
标签特征可以包括安全标签的边缘,诸如内边缘和外边缘。边缘的标签特征选项可以包括边缘断裂、边缘变形和边缘连接。当边缘包括边缘断裂作为选项时,边缘断裂的标签特征选项可以包括边缘断裂缘形状。
标签特征可以包括预定类型的标签特征之间的连接。例如,此类连接可以包括小点之间的连接以及小点与边缘之间的连接(例如,小点与内边缘或外边缘之间的连接)。连接的标签特征选项可以包括连接宽度和连接不对称性。
在步骤606之后,过程600可以进行至步骤607。在步骤607中,私有系统120可以生成对标签数据进行编码的安全标签。在一些方面,私有系统120可以被配置成用于通过根据标签数据的值选择标签特征选项来生成对标签数据进行编码的安全标签。例如,当安全标签布局提供标签特征选项(包括多个小点或边缘断裂的潜在位置)并且标签数据包括二进制数时,小点或边缘断裂可以根据二进制数的相应位是已设置还是为空而存在或不存在。在一些实施例中,可以使用加密密钥来对标签数据的至少一部分进行加密。然后可以通过根据加密的标签数据的值选择标签特征选项来生成安全标签。在一些实施例中,用于对加密的标签数据进行解密的加密密钥也可以被编码到安全标签中(例如,在安全标签的被参考的密钥部分或未被参考的密钥部分中)。在一些实施例中,安全标签可以是矢量图形文件,诸如可伸缩矢量图形文件、封装postscript文件、可移植文档格式文件等。
在步骤607之后,过程600可以进行至步骤609。在步骤609中,私有系统120可以生成安全标签的感知哈希值(诸如phash等)。生成感知哈希值可以包括对安全标签进行光栅化。例如,当安全标签被存储为矢量图形文件时,生成感知哈希值可以包括将感知哈希值转换为光栅图形文件格式。在一些实施例中,私有系统120可以被配置成用于通过将生成的phash与现有安全标签的phash库进行比较来检查哈希冲突。如果存在哈希冲突,则私有系统120可以被配置成用于使用新的数字种子来重新创建安全标签。在各实施例中,私有系统120可以被配置成用于生成安全标签的不同片段在多个细节层次的附加感知哈希值。
在步骤609之后,过程600可以进行至步骤611。在步骤611中,私有系统120可以将安全标签的感知哈希值存储在数据库(例如,认证服务器115的数据库)中。在一些方面,当私有系统120被配置成用于生成安全标签的不同片段的附加哈希值时,这些附加哈希值可以与整个安全标签的感知哈希值一起存储在数据库中。私有系统120可以被配置成用于将安全哈希值的标识符与安全标签的(多个)哈希值一起存储在数据库中。此标识符可以被配置成用于使得私有系统120能够判定使用了哪个样式表和哪个数字种子来生成安全标签。例如,私有系统120可以被配置成用于维护用于跟踪安全标签的数据库。此数据库可以使用包括作为密钥值的安全标签标识符、用于生成每个安全标签的样式表的指示以及用于生成每个安全标签的数字种子。在一些实施例中,此数据库不包括用于生成安全标签的标签数据或安全标签的图像。因此,能够危害此安全数据库的攻击者将无法根据存储的标识符、样式表引用和数字种子来重新创建标签数据。
在步骤611之后,过程600可以进行至步骤612。在步骤612中,私有系统120可以被配置成用于提供安全标签。在一些实施例中,提供安全标签可以包括利用该标签来标记对象或将该安全标签结合到数字产品(诸如视频文件或网页)中。例如,提供安全标签可以包括提供指令以在计算机屏幕等上显示安全标签。在各实施例中,提供标签可以包括将标签印刷在基板上。例如,提供安全标签可以包括向利用安全标签来标记产品的印刷系统提供安全标签作为矢量文件或光栅文件。因此,提供安全标签可以包括对安全标签进行光栅化。在一些实施例中,标签可以以多种类型的油墨提供。例如,标签的至少第一部分以荧光墨水印刷。此荧光墨水只能在某些光照条件下可见,从而创建用于对标签数据进行编码的附加选项。
在一些实施例中,认证服务器115可以被配置成用于从数据库(例如,数据库130)中检索标签状态信息。例如,认证服务器115可以被配置成用于判定安全标签是否仍然有效、是否已经被取消或者是否包括关于涉及安全标签的动作的认证要求(例如,要求用户提供应用程序密钥或认证凭证以便执行涉及安全标签的交易)。
图7描绘了展示与所披露的实施例一致的示例性迭代编码过程700的流程图。尽管以下将过程700描述为由私有系统120执行,但是在一些实施例中,该过程可以由认证服务器115或另一个系统执行。过程700可以包括:接收安全标签布局,基于当前标签状态来确定可用标签特征,使用标签数据值来选择标签特征选项,以及基于所选择的标签特征选项来更新可用标签特征选项。以此方式,可以将标签数据项迭代地编码到安全标签中,每次迭代创建了用于对下一标签数据项进行编码的标签特征选项。
在开始之后,过程700可以进行至步骤701。在步骤701中,私有系统120可以接收安全标签布局。安全标签布局可以从生成安全标签的过程中的前一步骤(例如,过程600的步骤605)、从私有系统120的存储器、从系统100的另一个部件或从另一个系统接收。安全标签布局可以包括潜在的标签特征选项集。
在步骤701之后,过程700可以进行至步骤703。在步骤703中,私有系统120可以基于当前标签状态来确定可用标签特征。例如,安全标签布局可以指定标签特征可以包括小点以及小点之间的连接。安全标签布局可以指定潜在小点位置的排序,潜在小点位置在排序中的位置与二进制标签数据中的位位置相对应。安全标签布局可以指定小点的存在对应于位值1,而小点的不存在对应于位值零。在此示例中,当前标签状态可以包括这些潜在小点位置。当前标签状态还可以包括附加的可用标签特征,诸如潜在边缘断裂或潜在边缘变形。
在步骤703之后,过程700可以进行至步骤705。在步骤705中,私有系统120可以使用标签数据值从可用标签特征选项中选择标签特征选项。继续前一示例,私有系统120可以从二进制标签数据中读取位,并且当该位的值为1时将小点放置在相应的潜在小点位置处(并且当该位的值为0时简单地跳转至下一个位)。尽管关于小点进行了解释,但是这样的过程类似地适用于其他标签特征。
私有系统120可以被配置成用于:继续选择标签特征选项,并且更新该可用标签特征选项集,直到标签数据被完全编码为止。例如,私有系统120可以根据第一标签数据的值来选择第一标签特征选项。对第一标签特征选项的此选择可以创建第二标签特征选项。然后私有系统120可以根据第二标签数据的值来选择第二标签特征选项。对第二标签特征选项的此选择可以依次创建第三标签特征选项。在非限制性示例中,第一标签特征选项可以包括点的存在或不存在,第二标签特征选项可以包括根据该第一标签数据的值而存在的点之间的连接的存在或不存在,并且对第三标签数据进行编码的第三标签特征选项可以包括根据该第二标签数据的值而存在的连接的宽度。
图8描绘了展示标签读取的示例性过程800的流程图。过程800包括标签检测、标签识别和服务器侧解码以及可选的客户端侧解码的步骤。在一些实施例中,可以由客户端设备110使用从客户端设备110的扫描仪(例如,移动设备的相机或手持式光学扫描仪)接收的图像来执行标签检测。在各实施例中,可以由客户端设备110使用从另一设备接收的图像来执行标签检测。在各实施例中,标签识别和服务器侧解码可以由认证服务器115、私有系统120或另一系统执行。在各实施例中,可选的客户端侧解码可以由客户端设备110执行。
在开始之后,过程800可以进行至步骤801。在步骤801中,客户端设备110可以接收包括安全标签105的至少一部分的光栅图像。在一些实施例中,标签检测801可以包括将光栅图像转换为标准化的矢量图形图像,以及向认证服务器115提供该矢量图形图像。在各实施例中,标签检测801可以包括将光栅图像转换为标准化的光栅图像,以及向认证服务器115提供该标准化的光栅图像。
标签检测801可以包括使用几何特征检测、基于内核的特征检测、模板匹配或卷积神经网络中的至少一者来检测所接收的图像中的安全标签105。在一些实施例中,使用几何特征检测来检测所接收的图像中的安全标签105可以包括对光栅图像进行阈值化以生成二值化图像。此阈值化可以包括将彩色图像转换为灰度图像、并且然后基于灰度值对图像进行阈值化,或者将彩色图像转换为黑白图像。在一些实施例中,客户端设备110可以被配置成用于使用由imagemagic、opencv等提供的图像处理功能来执行图像转换。
与所披露的实施例一致,客户端设备110可以被配置成用于检测所接收的标签图像中与已知目标参数相匹配的几何特征。客户端设备110还可以被配置成用于使用几何特征来检测潜在安全标签的参考点。在一些方面,客户端设备110可以被配置成用于使用由opencv等提供的几何特征检测算法。在一些方面,客户端设备110可以被配置成用于使用从样式表中检索到的目标参数值来检测二值化图像中的几何特征。例如,样式表的公共部分可以包括对一类安全标签中存在的几何特征的描述。此类几何特征可以包括内和/或外标签边缘的形状。例如,样式表可以指示内标签边缘和外标签边缘是具有预定尺寸比的圆。客户端设备110然后可以使用几何特征检测算法来检测所接收的标签图像中带有适当尺寸比的同心椭圆。在一些实施例中,参考点可以是同心椭圆的焦点。在一些实施例中,客户端设备110可以将参考点配准为安全标签105的中心。
与所披露的实施例一致,客户端设备110可以被配置成用于使用基于内核的特征检测来检测图像中的潜在标签位置。在一些方面,可以使用基于内核的特征检测来识别安全标签105的轮廓或安全标签105内的标签特征。与所披露的实施例一致,可以使用由opencv等提供的基于内核的特征检测算法来执行基于内核的特征检测。
客户端设备110可以被配置成用于使用模板匹配或图像模版检测来检测图像中的潜在标签位置。在一些实施例中,模板或模版可以被包括在样式表的公共部分中,或者可以使用样式表的公共部分来生成。模板或模版可以涉及识别安全标签的部分,诸如中心标志或标签边缘。例如,模板或模版可以匹配中心标志。客户端设备110可以被配置成用于使用由opencv等提供的模板匹配算法来执行模板匹配或图像模版检测。
客户端设备110可以被配置成用于使用卷积神经网络来检测图像中的潜在标签位置。可以使用由yolo等提供的实时对象检测功能来实施卷积神经网络。可以训练卷积神经网络来将安全标签与图像中的其他特征区分开。在一些实施例中,该卷积神经网络(或另一卷积神经网络)可以被配置成用于在识别图像中的安全标签之后在多类安全标签之间进行区分。
在标签检测步骤801期间,客户端设备110可以被配置成用于使用图像扭曲变换来使所接收的图像平面化。在一些实施例中,客户端设备110可以使用从样式表的公共部分中检索到的目标参数值来执行扭曲变换。在一些方面,图像扭曲变换可以将在所接收的图像中检测到的标签特征映射到样式表的公共部分中指定的已知位置。例如,客户端设备110可以检测所接收的图像中的潜在安全标签边缘,并且确定从检测到的图像位置到已知图像位置的变换。使用由opencv等提供的图像扭曲功能,客户端设备110可以被配置成用于变换整个图像,以更好地将检测到的特征映射到由样式表的公共部分描述的特征位置。以此方式,客户端设备110可以被配置成用于校正鱼眼失真、桶形失真或角度失真中的至少一者。
在标签检测步骤801期间,客户端设备110可以被配置成用于确定标签特征的取向并且基于所确定的标签特征的取向来旋转图像。旋转可以进一步基于从样式表的公共部分中检索到的目标参数值。标签特征可以是安全标签的中心标志。客户端设备110可以被配置成用于使用上述模板匹配系统来识别标签的中心。客户端设备110可以被配置成用于然后确定包围整个安全标签的外卵形线。客户端设备110可以被配置成用于然后确定安全标签的中心。在确定中心和卵形线之后,客户端设备110可以被配置成用于在安全标签图像上构建多个直角三角形。这些直角三角形可以被放置成使得每个直角三角形的中心与安全标签的中心重叠,而界定斜边的两个顶点与外卵形边缘相交。具有最小斜边和/或最大斜边的(多个)三角形可以与样式表的公共部分中的取向信息结合使用,以校正标签的取向。客户端设备110可以被配置成用于基于中心标志来确定适当的样式表。如果安全标签不包括中心标志,则客户端设备110可以被配置成用于通过读取默认位置中的标签特征选项(例如,来自使用样条编码的外缘样条的字符)来确定标签样式表。
在标签检测步骤801期间,客户端设备110可以被配置成用于检测图像间隙。此类图像间隙可以是由损坏、光照(例如,环境光反射到扫描仪中)或表面状况(例如,灰尘)引起的。客户端设备110可以被配置成用于检测潜在图像间隙的标签特征选项,并且将标签特征选项值与在样式表的公共部分中列出的目标参数值进行比较。如果潜在图像间隙与样式表的公共部分中的目标参数值不匹配,则客户端设备110可以被配置成用于忽略图像间隙,从而基于样式表的公共部分中的目标参数值使图像间隙周围的标签特征延伸穿过图像间隙。例如,客户端设备110可以被配置成用于:在将标准化的光栅图像转换为矢量图形文件以传输到认证服务器115时,通过忽略边缘间隙来处理被确定为伪影的边缘间隙。
在标签检测步骤801期间,客户端设备110可以被配置成用于向认证服务器提供识别请求,该识别请求包括标准化的安全标签图像。尽管在本文中被描述为“识别请求”,但是提供这种请求的原因或目的不限于识别安全标签。例如,提供识别请求可以是涉及安全标签的动作(诸如利用安全标签来标记的物品的所有权交易、关于安全标签的规则的更新或安全标签的取消)的一部分。如以上所描述的,客户端设备110可以被配置成用于至少标准化所接收的光栅图像的取向、使光栅图像平面化、校正图像间隙。客户端设备110可以被配置成用于然后通过将光栅图像转换为矢量图形图像(诸如svg图像、eps图像或pdf图像)来生成标准化的安全标签图像。
在步骤801之后,过程800可以进行至步骤803。在步骤803中,客户端设备110可以被配置成用于向认证服务器115提供识别请求。该识别请求可以包括在步骤801中生成的标准化的图像。该标准化的图像可以是矢量图形图像。在一些实施例中,客户端设备110在步骤801中接收的光栅图像可以包括多个潜在安全标签。在此类实施例中,客户端设备110可以被配置成用于检测并生成多个潜在安全标签的标准化的图像。客户端设备110可以被配置成用于提供生成的标准化的图像作为与多个潜在安全标签相对应的矢量图形图像的流。在一些实施例中,识别请求可以包括安全标签读取器的公钥,并且识别请求的至少一部分可以利用客户端设备110的私钥来加密。
在一些实施例中,客户端设备110可以被配置成用于接收指令以生成另一图像。这些指令可以从认证服务器115接收。这些指令可以自动使客户端设备110生成潜在安全标签的第二放大图像。可替代地或另外地,指令可以指示用户使客户端设备110生成潜在安全标签的第二放大图像。客户端设备110然后可以被配置成用于根据潜在安全标签的第二放大图像来生成另一标准化的图像。
在步骤803之后,过程800可以进行至步骤805。在步骤805中,客户端设备110可以从认证服务器115接收解码指令和/或标签数据。在一些实施例中,解码指令可以补充样式表的公共部分。例如,解码指令可以将由样式表披露的可能性限制为标签特征选项与标签数据值之间的特定映射。在各实施例中,解码指令可以描述用于将标签特征选项转换为标签数据值的特定规则集。例如,解码指令可以指示特定标签数据项具有取决于具体识别的标签特征选项集的值。
如以上所指示的,在一些实施例中,客户端设备110可以被配置成用于提供指令以在安全标签读取器的用户界面上显示图像和突出显示潜在安全标签的指示。在一些实施例中,客户端设备110可以被配置成用于从选择潜在安全标签的用户处接收指示(例如,指示可以是围绕潜在安全标签的边界框,并且指示可以包括用户在触敏显示器上选择边界框)。客户端设备110可以被配置成用于:生成潜在安全标签的标准化的图像,向认证服务器115提供识别请求,并且作为响应从认证服务器115接收标签数据和/或解码指令。客户端设备110可以被配置成用于使用从认证服务器115接收的任何解码指令来对标签数据进行解码。客户端设备110然后可以被配置成用于提供指令以在客户端设备110(或另一设备)的用户界面上显示安全标签数据(例如,所接收的和/或解码标签数据)。
图9描绘了展示标签识别的示例性过程900的流程图。尽管以下将过程900描述为由认证服务器115执行,但是在一些实施例中,该过程可以由私有系统120、客户端系统110或另一系统执行。与所披露的实施例一致,过程900可以包括以下步骤:接收标签识别请求,基于标签识别请求来识别安全标签,使用检索到的标签图像和解码规则来生成标签数据,以及响应于请求提供解码标签数据。
在步骤903中,与所披露的实施例一致,认证服务器115可以生成所接收的标签图像的一个或多个哈希值。该一个或多个生成的哈希值可以是感知哈希值(例如,phash、ahash、dhash等)。在一些方面,所接收的标签图像可以是矢量图形图像。在各方面,生成所接收的标签图像的哈希值可以包括将所接收的矢量图形图像的至少一部分转换为光栅图像。此光栅图像可以具有预定数量的像素。在一些方面,预定数量的像素可以大于或等于64个像素。在各方面,预定数量的像素可以小于或等于1,048,576个像素。
在步骤903中,与所披露的实施例一致,认证服务器115可以通过将所接收的标签图像的所生成的一个或多个哈希值与已知安全标签的图像的所存储的哈希值进行比较来识别所接收的标签图像中的安全标签105。在一些实施例中,此比较可以包括确定所存储的哈希值与所生成的哈希值之间的差值。认证服务器115可以被配置成用于当所存储的哈希值与所生成的哈希值之间的差值满足阈值标准时,将安全标签105识别为与所存储的(多个)哈希值相对应的安全标签。例如,阈值标准可能要求这些哈希值匹配。作为附加示例,阈值标准可能要求这些哈希值相似。例如,在一些方面,差值可以是所存储的哈希值与所生成的哈希值之间的距离。认证服务器115可以被配置成用于将阈值距离内的哈希值识别为相似。在一些实施例中,该距离可以是汉明距离。
在一些实施例中,认证服务器115可以被配置成用于识别损坏的或被部分遮盖的标签。例如,认证服务器115可以被配置成用于通过生成所接收的标签图像的逐渐变小片段的哈希值来识别所接收的标签图像中的安全标签105。可以将所接收的标签图像的这些逐渐变小片段与已知安全标签的相应片段的哈希值进行比较。基于这些所生成的哈希值与已知安全标签的相应哈希值之间的匹配程度,即使当损坏的或被部分遮盖的标签的整个图像的哈希值未能与任何所存储的哈希值相匹配时,也可以识别出损坏的或被部分遮盖的标签。
在步骤903中,与所披露的实施例一致,认证服务器115可以确定匹配的所存储的哈希值的标签标识符。可以使用标签标识符来检索标签的解码规则。
在步骤903之后,过程900可以进行至步骤905。在步骤905中,认证系统115可以使用所接收的标签图像和解码规则来生成标签数据。在一些方面,这些解码规则可以特定于使用特定样式表生成的标签。例如,这些解码规则可以识别标签内的标签数据的位置、指定标签特征的默认位置、指定标签特征选项与标签数据值之间的对应关系、并且提供用于识别标签特征和标签特征选项的比率(例如,小点的直径与总直径之比、边缘断裂宽度与边缘厚度之比等)。
在一些实施例中,解码规则可以使得能够对安全标签105进行迭代解码。例如,解码规则可以包括第一解码规则和第二解码规则。第一解码规则可以使得能够对由样式表限定的安全标签的第一部分或由样式表限定的第一标签特征子集中的至少一者进行解码。例如,第一解码规则可以使得能够对安全标签的参考部分中的第一标签数据进行解码。第二解码规则可以使得能够对安全标签的第二部分或第二标签特征子集中的至少一者进行解码。例如,第二解码规则可以使得能够对安全标签的被第一标签数据所参考的部分中的第二标签数据进行解码,该第一标签数据被编码在安全标签的参考部分中并且使用第一标签来解码。在没有编码在参考部分中的第一标签数据的情况下,第二解码规则不能用于对第二标签数据进行解码。因此,可以使用第一解码规则来生成第一标签数据,并且可以使用第一标签数据和第二解码规则来生成第二标签数据。
在一些实施例中,认证系统115可以接收用于对使用样式表生成的标签的公共部分进行解码的公共解码规则。此类规则可以指定如何对通常感兴趣的非敏感信息(诸如库存单元编号(sku)、品牌名称、有效期和产品名称)进行解码。
在步骤905之后,过程900可以进行至步骤907。在步骤907中,认证服务器115可以被配置成用于响应于原始标签识别向客户端系统110提供解码标签数据。在一些实施例中,认证系统115可以被配置成用于除了标签数据之外或代替标签数据来提供标签解码规则。这可以使得客户端设备能够执行标签解码以代替认证服务器115,或以便验证由认证服务器115执行的解码。例如,在一些实施例中,认证服务器115可以被配置成用于向客户端设备110提供由认证服务器115存储的或从私有系统120接收的用于安全标签105的任何公共解码规则。
图10描绘了展示与所披露的实施例一致的多分辨率标签识别的示例性过程1000的流程图。尽管以下将过程1000描述为由认证服务器115执行,但是在一些实施例中,该过程可以由私有系统120、客户端系统110或另一系统执行。过程1000可以包括以下步骤:生成安全标签105的图像的哈希值,基于所生成的哈希值来选择第一安全标签,生成与安全标签105的预定片段相对应的第二哈希值,以及从第一安全标签中选择安全标签作为与安全标签105相匹配的安全标签。以此方式,当图像中的安全标签105的哈希值与多个所存储的哈希值相匹配时,过程1000可以使得认证服务器115能够识别图像中的安全标签105。
在开始之后,过程1000可以进行至步骤1001。在步骤1001中,认证服务器115可以生成在所接收的标签图像中描绘的安全标签(例如,安全标签105)的哈希值。该哈希值可以是感知哈希值。
在步骤1001之后,过程1000可以进行至步骤1003。在步骤1003中,认证服务器115可以使用所生成的哈希值与第一安全标签的所存储的哈希值之间的差值来选择第一安全标签。在一些实施例中,这些差值可以是根据某个度量的距离,诸如汉明距离。在一些方面,所选择的第一安全标签的所存储的哈希值可以与在所接收的标签图像中描绘的安全标签的所生成的哈希相差小于阈值量。
在步骤1003之后,过程1000可以进行至步骤1005。在步骤1005中,认证服务器115可以生成在所接收的标签图像中描绘的安全标签105的预定片段的第二哈希值。例如,认证服务器115可以被配置成用于生成安全标签的一个或多个象限的哈希值。
与所披露的实施例一致,认证服务器115可以被配置成用于提示客户端设备110提供第二图像。例如,认证服务器115可以被配置成用于提供指令以显示围绕安全标签105的预定片段的带框或类似指示。响应于此指示,用户可以与客户端设备进行交互以获得描绘安全标签105的预定片段的第二图像。
认证服务器115可以被配置成用于从客户端设备110接收此第二图像。第一接收的图像可以以第一细节层次整体地描绘安全标签105的至少一些,而第二接收的图像可以以大于第一细节层次的第二细节层次描绘安全标签105的预定片段。例如,第一图像和第二图像可以包括相同数量的像素,但是客户端设备110的相机在拍摄第二图像时可以比在拍摄第一图像时更靠近安全标签105的预定片段。
在步骤1005之后,过程1000可以进行至步骤1007。在步骤1007中,认证服务器115可以被配置成用于从先前选择的第一安全标签中选择特定安全标签。认证服务器115可以被配置成用于使用在步骤1005中生成的第二哈希值与第一安全标签的图像的预定部分的所存储的第二哈希值之间的差值来细化对匹配的安全标签的选择。例如,虽然步骤1001中生成的第一哈希值可以广泛地匹配第一安全标签的所存储的哈希值,但步骤1005中生成的第二哈希值可能仅匹配所存储的第二哈希值之一(例如,仅步骤1005中生成的第二哈希值与所存储的第二哈希值之一可以相差小于阈值量)。如果所存储的第二哈希值中的多于一个第二哈希值与步骤1005中生成的第二哈希值充分匹配,则认证服务器115可以被配置成用于对安全哈希值105的另一预定片段(例如,在步骤1005中选择的象限的子片段或安全标签105的另一象限)重复此比较过程。
在开始之后,过程1100可以进行至步骤1101。在步骤1101中,认证服务器115可以确定第一生成的哈希值与安全标签的第一存储的哈希值之间的差值不满足阈值标准。第一生成的哈希值可以属于在所接收的图像中描绘的安全标签(例如,安全标签105)。第一存储的哈希值可以属于认证数据库205中的安全标签。该差值可以是根据某个度量计算的距离(例如,汉明距离)。
在步骤1101之后,过程1100可以进行至步骤1103。在步骤1103中,认证服务器115可以被配置成用于基于在所接收的图像中描绘的安全标签(例如,安全标签105)的所生成的第二哈希值与所存储的第二哈希值之间的比较来选择认证数据库205中的安全标签之一。所生成的第二哈希值可以是在所接收的图像(或同一安全标签的另一图像)中描绘的安全标签的片段的哈希值。所存储的第二哈希值可以是存储在认证数据库205中的潜在匹配的安全标签的片段的哈希值。潜在匹配的安全标签的片段可以与在所接收的图像中描绘的安全标签的片段相同。
在步骤1103之后,过程1100可以进行至步骤1105。在步骤1105中,认证服务器115可以被配置成用于生成在最初接收的图像中描绘的安全标签的第二片段的哈希值。在一些实施例中,认证服务器115可以被配置成用于提示客户端设备110提供另一图像。例如,认证服务器115可以被配置成用于提供指令以显示围绕安全标签105的片段的带框或类似指示。响应于此指示,用户可以与客户端设备110进行交互以获得描绘安全标签105的期望片段的第二图像。
在一些实施例中,第二片段可以与第一片段不同。例如,当第一片段是安全标签的右上象限时,第二片段可以是安全标签的左上象限。在各实施例中,第二片段可以与第一片段重叠。例如,第二片段可以全部或部分地落在第一片段内。例如,第二片段可以是第一片段的左下象限。
在步骤1105之后,过程1100可以进行至步骤1107。在步骤1107中,认证服务器115可以被配置成用于验证在步骤1103中识别出的潜在匹配的安全标签。认证服务器115可以被配置成用于使用所生成的第三哈希值与所存储的第三哈希值之间的差值来验证潜在匹配的安全标签。所存储的第三哈希值可以属于潜在匹配的安全标签的片段。该片段可以对应于用于生成第三哈希值的片段。认证服务器115可以确定第三生成的哈希值与此存储的哈希值之间的差值满足阈值标准。该差值可以是根据某个度量计算的距离(例如,汉明距离)。
与所披露的实施例一致,过程1000和过程1100可以包括确定(i)使用片段距离的总距离,和/或(ii)满足阈值标准的片段距离的计数。例如,认证服务器115可以将安全标签105的片段的图像的多个哈希值与安全标签的片段的相应所存储的哈希值进行比较。该比较可以包括确定安全标签105的片段的图像的每个哈希值与安全标签的片段的相应所存储的哈希值之间的距离。该比较可以包括基于这些各个距离来确定总距离(诸如平均距离)。该比较还可以包括确定满足阈值标准(例如,落在某个最大距离内)的各个距离的计数。在一些实施例中,认证服务器115可以被配置成用于使用被比较的哈希值的数量、满足阈值标准的各个距离的计数、或者各个距离或整体距离中的至少一者来确定置信值。
图13描绘了用于评估标签的真实性的示例性用户界面。读取设备可以具有能够显示确定的标签真实性等级的应用程序。可以通过使用本文所披露的系统和方法来确定真实性。扫描安全标签后,将扫描的标签图像发送到认证服务器。可以使用图10至图12中描述的哈希方法来确定标签的真实性。在对标签进行认证时,返回关于标签的信息,包括扫描次数、任何报告等。在某些方面,认证服务器可以基于哈希过程来确定真实性的概率。在其他方面,认证服务器可以基于存储在区块链中的标签历史来确定安全标签的真实性。
在一些实施例中,用于确定标签的真实性等级的app可以返回“认证分数”。在某些方面,可以返回满分1301。例如,当安全标签处于良好状态并且读取设备能够对安全标签进行良好扫描时,可以发生这种情况。另外,当认证服务器确定之前尚未扫描安全标签时,或者如果区块链中的标签历史指示产品不是伪造品,则可以返回满分1301。在其他方面,可以返回低分1303。当安全标签处于不佳状态或读取器无法对安全标签进行良好扫描时,可以发生这种情况。另外,当认证服务器确定同一标签已经被识别为可能是伪造的时,可以返回低分1303。例如,如果标签已在多个位置被多次扫描,则将返回低分1303作为认证分数。在另一示例中,如果标签已被报告为是伪造的,则将返回低分1303作为认证分数。
在一些实施例中,用户可以通过图13所示的示例性用户界面来报告标签。例如,当返回低分1303指示标签已经在多个场合被扫描并且不是唯一的时,则用户可以报告该标签,以使标签的所有者意识到可能的伪造品。在其他实施例中,用户可以通过app查看产品信息。例如,当返回高分1301时,然后用户可以审阅产品信息。
图14描绘了用于对标签特征选择进行解码的示例性过程。尽管以下将过程1400描述为由认证服务器115执行,但是在一些实施例中,该过程可以由私有系统120、客户端系统110或另一系统执行。过程1400可以包括以下步骤:接收图像,接收解码规则和数字种子,使用已知的样式表和/或已知的数据值来识别可能的特征,基于所接收的图像来识别实际特征,重建数据值,以及解密数据值。以此方式,认证服务器115可以被配置成用于使用从客户端设备110和私有系统120两者接收的信息来对存储在安全标签中的数据进行解码。在一些实施例中,认证服务器115不存储图像、解码规则、数字种子。以此方式,系统100的功能布置确保了危害认证服务器115的攻击者将不能解码由认证服务器115管理的安全标签的内容。
在开始之后,过程1400可以进行至步骤1401。在步骤1401中,认证服务器115可以被配置成用于接收图像。该图像可以是光栅图像或矢量图形图像。可以从客户端设备110或另一系统接收图像。认证服务器115可以被配置成用于当图像是光栅图像时将图像转换为矢量图形图像。
在步骤1401之后,过程1400可以进行至步骤1403。在步骤1401中,认证服务器115可以接收解码指令。在一些实施例中,认证服务器115可以被配置成用于从私有系统120接收解码指令。可以响应于从认证服务器115到私有系统120的请求而接收解码指令。该请求可以包括应用程序密钥,并且所接收的解码指令可以取决于所提供的应用程序密钥。
在一些实施例中,私有系统120可以被配置成用于将用于生成安全标签的样式表和数字种子转换为直接描述矢量图形图像中存在的标签特征与标签数据值之间的对应关系的解码指令。例如,解码指令可以指定标签特征选项集以及从这些标签特征选项的值到标签数据项的值的映射。在此类实施例中,私有系统120可以不向认证服务器115提供样式表的私有部分或数字种子。在一些实施例中,认证服务器115可以被配置成用于接收样式表的私有部分中的至少一些,该样式表用于与用于生成安全标签的安全标签布局的数字种子一起生成标签。在此类实施例中,认证服务器115可以被配置成用于生成矢量图形图像中存在的标签特征与标签数据值之间的对应关系。
在步骤1405之后,过程1400可以进行至步骤1407。在步骤1407中,认证服务器115可以基于所接收的图像来识别实际标签特征选项值。在一些实施例中,当图像文件是矢量图形文件时,认证服务器115可以从矢量图形文件中读取特征选项值。如有必要,认证服务器115可以首先将所接收的图像转换为矢量图形文件。可替代地,认证服务器115可以使用由opencv等提供的功能来直接从光栅图像确定标签特征选项值(例如,相对的小点大小、在某处特征的存在或不存在)。
在步骤1409之后,过程1400可以进行至可选步骤1411。在可选步骤1411中,认证服务器115可以解密标签数据。在一些实施例中,认证服务器115可以被配置成用于使用被编码到安全标签中的密钥材料来解密加密的标签数据。
图15描绘了使用上下文信息的示例性认证过程。尽管以下将过程1500描述为由私有系统120和认证服务器115执行,但是在一些实施例中,该过程可以完全由私有系统120或认证服务器115或客户端系统110或另一系统执行。根据过程1500,私有系统120可以将上下文数据编码到安全标签中。认证服务器115然后可以响应于识别请求来强制实施关于编码数据的上下文条件。
在开始之后,过程1500可以进行至步骤1501。在步骤1501中,私有系统120可以接收标签数据。如先前所描述的,可以从另一系统、私有系统120的存储器或用户接收此标签数据。
在步骤1501之后,过程1500可以进行至步骤1503,在步骤1503中,私有系统120可以接收上下文信息。在一些实施例中,此上下文信息可以包括认证凭证(例如,密码、认证令牌等)、生物特征标识符(例如,指纹、声纹等)、声音文件、标签标识符(例如,另一安全标签的标签标识符)或图像的感知哈希值中的至少一者。例如,可以产生安全标签以标记物品(例如,用户识别卡、一块肉、一瓶酒、个人拥有的物品),并且图像可以描绘该物品的一部分(例如,该识别卡上的识别照片、该肉的纹理、该瓶酒的标记、拥有该物品的个人的面部)。
在步骤1503之后,过程1500可以进行至步骤1505。在步骤1505中,私有系统120可以将标签数据和上下文信息编码到安全标签中。如本申请中所描述的,可以将标签数据和上下文信息编码到安全标签中作为对标签特征选项的选择,其中,可用标签特征选项取决于数字种子。
在步骤1505之后,过程1500可以进行至步骤1507。在步骤1505中,认证系统115可以接收关于安全标签的识别请求。如本申请中所描述的,认证服务器可以被配置成用于使用安全标签的一个或多个哈希值来识别标签。认证服务器115可以被配置成用于从私有系统120请求解码指令。认证服务器115可以被配置成用于使用解码指令来对所存储的上下文信息进行解码。
在步骤1507之后,过程1500可以进行至步骤1509。在步骤1509中,认证系统115可以接收附加上下文信息。可以从客户端设备110或另一设备接收此附加上下文信息。可以响应于由认证系统115提供的请求来接收附加上下文信息。例如,认证系统115可以向客户端设备110提供指令,以向客户端设备110的用户显示(例如,用于在客户端设备110的用户界面上显示文本“要解锁laava标签,请拍摄所有者面部的照片”的指令)。
在步骤1509之后,过程1500可以进行至步骤1511。在步骤1511中,认证系统115可以使用附加上下文信息来认证识别请求。在一些实施例中,认证系统115可以被配置成用于确定所接收的附加上下文信息和解码的上下文信息满足相似性标准。例如,认证系统115可以被配置成用于将解码的上下文信息与所接收的上下文信息进行比较。当上下文信息是图像的感知哈希值(例如,另一标签的感知哈希值、或被标记物品的所有者的感知哈希值、或被标记物品的一部分的感知哈希值)时,认证系统115可以被配置成用于确定所接收的附加上下文信息与解码的上下文信息之间的距离。在一些方面,此距离可以是汉明距离(或类似度量)。
在步骤1511之后,过程1500可以进行至步骤1513。在步骤1513中,认证系统115可以基于在步骤1511中执行的认证的结果来提供指示。如果附加上下文信息和解码的上下文信息不满足相似性标准,则认证系统115可以向客户端设备110提供认证失败的指示。如果附加上下文信息和解码的上下文信息满足相似性标准,则认证系统115可以向客户端设备110提供成功认证的指示。在一些实施例中,成功认证的指示可以包括在步骤1501中接收的标签数据中的至少一部分。在各实施例中,成功认证的指示可以包括用于在步骤1501中接收的标签数据中的至少一些的解码指令。在各实施例中,成功认证的指示可以包括从分布式数据库中检索到的状态信息。可以使用oracle数据库从分布式数据库中检索此状态信息(例如,分布式数据库可以是以太坊区块链)。
图16a描绘了配对的安全标签和排序的安全标签。安全标签可以与其他标签有关系,以提高安全等级和真实性等级。例如,第一安全标签1601和第二安全标签1603可以配对。然后,可以要求对第一安全标签1601和第二安全标签1603都进行扫描,以便用户得到关于产品的信息或转移产品的所有权。例如,可以生成第一安全标签1601并且将其放置在一双鞋中的一只鞋子上,并且可以生成第二安全标签1603并且将其放置在同一双鞋中的第二只鞋上。在此示例中,这两个标签都是唯一的,并且标识这双鞋中的特定鞋子,然而需要读取这两个标签以认证这双鞋和/或转移所有权。
在一些实施例中,可以进一步对配对的标签进行排序以创建排序的标签1605。排序的标签1605是第一安全标签1601与第二安全标签1603的组合,并且提供关于配对的标签的信息。在某些方面,排序的标签1605可以是在购买或转移所有权之前可用于扫描的唯一标签。在这些方面,排序的标签1605可以提供产品的认证和关于产品的基本信息。排序的标签1605还可以指示应该存在哪些配对的标签。通过先前的示例,当一双鞋子包含配对的标签时,可以对标签进行排序以创建排序的标签1605。可以将排序的标签1605放置在鞋盒的外部,以提供关于盒子内的鞋子的信息。一旦打开盒子,就可以扫描第一安全标签1601和第二安全标签1603以检查盒子中是否有正确的鞋子。
图16b描绘了使用近距指纹识别的识别卡1607。除了与其他安全标签有关系外,安全标签1611还可以与外部图像(诸如面部指纹1609)有关系。通过将安全标签1611与面部指纹1609组合在一起,识别卡1607可以具有附加的真实性等级。近距指纹识别通过使用安全标签附近的对象1609来进一步认证标签而工作。在一些实施例中,这可以防止复制安全标签的情况在其他地方被认证。例如,如果从识别卡1607复制了安全标签1611,则在没有面部指纹1609的情况下仍将无法对安全标签进行验证。结果是识别卡1607形式的组合安全id。在一些实施例中,安全标签1611与面部指纹1609配对,这意味着安全标签1611和面部指纹1609两者必须一起出示以用于认证。
在一些实施例中,可以使用识别卡1607在适当情况下出示识别证明。例如,警务人员可以要求公民出示识别卡1607,以确保这个人就是他们声称遇到的那个人。在其他实施例中,供酒机构可以要求一个人出示识别卡1607以确保这个人没有在使用假驾驶执照或假年龄证明卡。
图22描绘了整个供应链中的配对的标签。当制造商制造产品时,其可以创建第一安全标签2201和第二安全标签2203,将这些安全标签配对,并且将这些安全标签贴附到产品。然后可以在整个供应链过程中在区块链中对配对的标签进行排序和更新。例如,排序的标签可以包含关于配对的产品本身的信息2205、关于其上装运配对的产品的特定托盘的信息2207、关于其中发送配对的产品的整体装运的信息2209以及关于零售商的信息2211。在供应链过程的每个阶段中,都会利用关于配对的产品的信息来更新区块链。当客户去零售商处购买产品时,其可以执行对排序的标签的所有权验证2213。
在一些实施例中,零售商控制2215和封闭消费者环2217可以访问不同等级的信息。例如,封闭消费者环2215仅可以访问关于配对的标签本身的信息。这可以包括关于产品本身和制造商的信息。封闭消费者环2215允许消费者验证配对的标签的真实性。在此示例中,零售商控制2215可以包括访问关于整个供应链过程的信息的能力。零售商控制2215可以包括对各个包装信息2205、托盘信息2207、装运信息2209和零售商信息2211的访问。零售商控制2215通常将不包括对配对的标签本身的访问。零售商控制2215允许零售商跟踪装运信息并且管理物流。
图17描绘了示例性两部分式的标记。两部分式的标记可以包括基底标签1710和覆盖物1720。基底标签1710可以包括基板,该基板利用将第一标签数据编码为对潜在的第一安全数据特征选项的选择的第一安全标签来标记。覆盖物1720可以可拆卸地粘附到包含基底标签1710的基板。覆盖物1720可以包括透明部分1721和不透明部分1723。透明部分1721和不透明部分1723都可以与第一安全标签对准。位于基底标签1710上的第一安全标签可以不受对准的透明部分1721的影响。对准的不透明部分1723和位于基底标签1710上的第一安全标签可以将第二标签数据编码为对潜在的第二安全标签特征选项的选择。
在一些实施例中,基底标签1710上的潜在的第一安全标签特征选项与由不透明部分1723和基底标签1710创建的潜在的第二安全标签特征选项不同。在其他实施例中,对准的不透明部分1723可以遮盖基底标签1710上的选择的第一安全标签特征。仍然在其他实施例中,对准的不透明部分1723可以选择基底标签1710上的潜在的第一安全标签特征选项。仍然在其他实施例中,基底标签1710上的潜在的第一安全标签特征选项可以包括在由第一安全标签布局指定的位置处标签特征的存在或不存在。在这些实施例中,由对准的不透明部分1723创建的潜在的第二安全标签特征选项可以包括在由第二安全标签指定的位置处标签特征的存在或不存在。
可以通过首先使用第一标签数据、第一数字种子和第一样式表生成将第一标签数据编码为对潜在的第一安全标签特征选项的选择的第一安全标签来生成图17中描绘的两部分式的标记。接下来,该方法使用第二标签数据、第二数字种子和第二样式表生成将第二标签数据编码为对潜在的第二安全标签特征选项的选择的第二安全标签。然后,该方法确定第一安全标签与第二安全标签之间的差异图像,并且利用第一安全标签来标记基板以创建基底标签1710。然后,该方法将覆盖物1720可拆卸地粘附到基底标签1710,覆盖物1720利用差异图像来标记并且与第一安全标签对准。
在一些实施例中,覆盖物1720通过不存在于第二安全标签中的不透明部分1723遮盖了位于基底标签1710上的第一安全标签的部分。在其他实施例中,覆盖物1720描绘第二安全标签的、不存在于第一安全标签中的部分。仍然在其他实施例中,覆盖物1720通过透明部分1721传输第二安全标签的、存在于位于基底标签1710上的第一安全标签中的部分。仍然在其他实施例中,用于生成第一安全标签的第一样式表可以与用于生成第二安全标签的第二样式表不同。仍然在其他实施例中,其中标记了基底标签1710并且粘附有覆盖物1720的基板可以包括消费品。
例如,两部分式的标记可以用于产品的附加认证和安全性。可以将两部分式的标记放置在正在出售的盒子的外部,所述两部分式的标记包含基底标签1710和覆盖物1720。覆盖物1720包含透明部分1721和不透明部分1723两者,从而使得标签具有与基底标签1710不同的独特外观。在此示例中,客户或零售商可以扫描由覆盖物1720创建的第二标签以展现关于产品的某些信息。在购买产品和/或转移所有权之后,可以去除覆盖物1720,以展现基底标签1710。现在的所有者可以扫描基底标签1710以展现与由覆盖物1720和基底标签1710的组合所提供的信息完全不同的信息。两部分式的标签增加了附加的一层安全性,而不会增加安全标签本身的复杂性。
在一些实施例中,将第一安全标签1813与从第二用户设备1831接收的安全标签图像进行比较可以包括:生成第一安全标签1813的感知哈希值,生成从第二用户设备1831接收的安全标签图像的感知哈希值,以及判定所存储的感知哈希值与所生成的感知哈希值之间的差值是否满足阈值标准。在其他实施例中,将第一安全标签1813与从第二用户设备1831接收的安全标签图像进行比较可以包括:生成从第二用户设备1831接收的安全标签图像的感知哈希值,使用所生成的感知哈希值与第一安全标签的图像的所存储的感知哈希值之间的差值来选择第一安全标签,生成从第二用户设备1831接收的安全标签图像的预定片段的第二感知哈希值,以及使用所生成的第二感知哈希值与第一安全标签的图像的预定部分的所存储的第二感知哈希值之间的差值来从第一安全标签中选择第一安全标签1813。
在一些实施例中,在步骤1805处的确认请求可以包括确认请求标识符。在此实施例中,基于比较在步骤1807处向第一设备1821提供文档可以进一步包括:生成与请求配对的第二安全标签,第二安全标签使用对潜在标签特征选项的选择来对确认请求标识符进行编码,以及利用第二安全标签在文档1811上加水印。在这些实施例中,带水印的文档1843不包含第一安全标签1813的水印。
用于生成可变安全标签的系统可以包括至少一个处理器、以及至少一个非暂态存储器,该至少一个非暂态存储器包含指令,这些指令在被该至少一个处理器执行时使系统执行操作,这些操作可以包括:生成将标签数据编码为根据标签数据的值来选择标签特征选项的第一安全标签;从第二设备的扫描仪接收包括标签图像序列的请求,该标签图像序列包括第一标签图像;使用该第一安全标签和该第一标签图像来认证该请求;以及提供该请求的认证的指示。
在一些实施例中,这些操作可以进一步包括提供指令以在第一设备的显示器上显示包括有效帧1903中示出的第一安全标签的标签序列。在一些方面,提供指令以显示包括有效帧1903中示出的第一安全标签的标签序列可以包括将标签序列嵌入到数字产品中。在其他方面,可以响应于触发而提供这些指令用于显示第一设备的显示器的标签序列。触发可以是由用户引起的事件或预定事件。在任一方面,显示的标签序列可以包括无效帧1901和有效帧1903。
在一些实施例中,认证请求可以包括将有效帧1903中显示的第一安全标签的一个或多个感知哈希值与第一标签图像的一个或多个相应哈希值进行比较。在其他实施例中,认证可以进一步要求根据预定的出现顺序将该多个安全标签与该多个相应标签图像进行匹配。仍然在其他实施例中,请求的认证的指示可以包括标签数据中的至少一些。仍然在其他实施例中,请求的认证的指示可以包括用于对第一标签数据中的至少一些进行解码的解码指令。仍然在其他实施例中,请求的认证的指示可以包括从数据库中检索到的状态信息。在某些方面,数据库可以是分布式数据库,并且可以使用oracle数据库从分布式数据库中检索状态信息。
在一些实施例中,使用从安全标签解码的信息,认证服务器115可以被配置成用于更新账户2010。在一些方面,认证服务器115可以被配置成用于向oracle数据库提供更新信息和账户的地址。然后,oracle数据库可以将更新写入账户2010。在一些实施例中,认证服务器115可以被配置成用于向私有数据库提供信息。私有数据库可以被配置成用于收集更新,这些更新可以被周期性地写入数据库。
在各实施例中,使用从安全标签解码的信息(例如,数据库130中的账户2010的地址),认证服务器115可以被配置成用于从账户2010中检索信息。在一些方面,认证服务器115可以被配置成用于向oracle数据库提供对状态信息的请求。该请求可以包括账户的地址。然后,oracle数据库可以读取账户2010的状态以检索状态信息,该状态信息然后被传送给客户端设备(直接传送或通过oracle数据库和认证服务器中的一者或多者来传送)。
在一些实施例中,认证服务器115可以被配置成用于提供用于读取或写入数据库的信息。例如,认证服务器115可以被配置成用于解码数据库130中的账户2010的地址并且向客户端设备提供该地址。客户端设备可以联系oracle数据库以提供更新或读取信息。在此类实施例中,oracle数据库可以被配置成用于基于从客户端设备接收的应用程序密钥或存储在账户2010中的规则来限制对账户2010的访问。
与所披露的实施例一致,客户设备2007可以扫描安全标签。在一些实施例中,客户设备2007可以缺少应用程序密钥或认证凭证。在此类实施例中,系统200可以提供关于利用安全标签105来标记的物品的相对较少的信息。例如,客户设备2007可以能够检索真实性信息、产品信息或所有权证明信息中的至少一者。
如本文所描述的,账户的状态可以存储包括安全标签的状态信息的状态信息,该安全标签的状态信息指示跟踪信息、销售信息、客户数据、使用信息、激活信息、位置信息、真实性信息、目的地信息、经更新制造商信息、交易信息、产品数据或所有权证明信息中的至少一者。在制造商、分销商、零售商与客户之间对此信息的访问权限的特定分配旨在是示例性的,而非限制性的。
图21描绘了与所披露的实施例一致的用于修改数据库中的安全标签信息的示例性系统2100。尽管以下将系统2100描述为由客户端系统执行,但是在一些实施例中,该系统可以由认证系统115、私有系统120或另一系统执行。如以上关于图20所描述的,系统可以在涉及安全标签或使用门户的交互期间访问数据库,以读取或写入关于安全标签的状态的信息。如图21所示,带有(例如,如特权应用程序密钥或特权认证凭证所示出的)特权账户的用户可以访问数据库以更新状态信息从而取消标签。这可以使标签对于后续使用或交易无效。例如,如果用户2103稍后尝试使用标签来执行动作,则认证服务器115可以指示标签被取消并且拒绝识别标签、认证标签或执行该动作。
在一些实施例中,当买方购买产品时,卖方可以将原始制造商安全标签2301分配给买方。在其他实施例中,原始制造商安全标签2301可以在购买时被自动分配给买方。在任一实施例中,在区块链中更新购买和对原始制造商标签2301的后续分配。购买和分配之后,将无法生成附加的唯一安全标签并将其与原始制造商标签2301配对。在某些方面,可以经由配对的唯一安全标签来向潜在客户通知购买。例如,可以终止原始制造商安全标签2301与唯一安全标签之间的配对。在另一示例中,唯一安全标签可以经由区块链上的经更新信息来向潜在客户通知购买。
图24a描绘了示例性安全标签。安全标签可以包含各种技术组件。例如,这些技术组件可以包括:验证片段、外框和内框、外框段、外框块、小点、字形、连线和样条、laava阶段一id、中心图形、中心图形公钥以及如以下更详细地描述的附加技术特征。这些技术组件可以进一步用于以各种形式对数据进行编码。以下更详细地描述这些技术组件。
中心图形可以是图形、品牌或其他视觉图,并且可以是还包含指纹数据的最终用户可识别元素。在一些实施例中,中心图形可以用于安全标签的取向。在其他实施例中,中心图形可以是可以包含数据的字形集。例如,中心图形可以包含比较大的标签小的指纹签名,并且如果需要,可以在可读文本中包含128个字符的信息。仍然在其他实施例中,可以使用中心图形来显示品牌。在此类实施例中,中心图形可以是任何形状并且可以具有颜色。中心图形可以进一步由带有对比度差异的线围绕,以将该中心图形与标签的其余部分分开来。在一些实施例中,可以要求线具有一定厚度。
中心图形公钥可以是中心图形的哈希sha2版本、通常是较大的生成的数字。可以使用中心图形公钥来解锁标签的其他部分,如以下进一步详细描述的。laava阶段一id可以是制造商id和公钥,并且可以允许在读取任何数据之前识别标签。字形通常可以是标签内生成的各个形状或字符,并且可以是存储大多数数据、密钥、id等的位置。外框是安全标签的外部的边界,并且限定了扫描形状。外框还可以允许附加的功能和数据存储。内框可以是安全标签内部的围绕中心图形的可选边界,并且可以用于在视觉上将字形与中心图形分开来。另外,内框可以用于辅助中心图形的指纹识别,并且可以包含数据。
验证片段可以是特定的图像数据集,并且可以用于验证、比较和数据存储。验证片段可以包括多种元素,诸如中心图形和其他可变元素。小点可以是安全标签上的点,在该点处,空白空间成为可见的形状或圆。小点可以存储多种数据元素并且限定标签,并且可以是用于形成字形的起点。样条和连线可以是将两个或多个小点接合或融合在一起的形状,并且可以允许存储更大量的数据以及进行更强的加密或编码。外框段是外框的识别部分,并且可以用于存储或重复数据。外框块可以是外框段中的断裂的集合,并且可以用于存储数据。
图24b描绘了与示例性安全标签相对应的图形文件的部分。该图形文件表示图24a中描绘的示例性安全标签。该图形文件是在标签生成过程期间创建的,以下将更详细地讨论。
图25a描绘了安全标签2501、安全标签2503和安全标签2505,它们各自使用相同的样式表但是使用不同的数据来生成。样式表为安全标签生成的第一步提供了标签模板。在一些实施例中,样式表描述一类安全标签。接收到样式表之后,标签生成过程将在生成最终安全标签之前接收数字种子、生成安全标签布局以及接收标签数据。样式表和数字种子提供可以对数据进行编码的位置。然后,数据被编码为标签特征选项。在图25a中,安全标签2501、2503和2505均是在安全标签生成过程的第一步使用相同的样式表生成的,但是在生成最终安全标签之前提供了不同的数据。在标签生成过程期间,标签生成系统可以基于安全标签2501、2503和2505的样式表从相同的一级位置和二级位置中进行选择,从而产生安全标签之间的某些相似性。在产生每个示例性安全标签的布局之后,将数据编码到标签特征选项中以产生唯一设计。
图25b描绘了安全标签2511、安全标签2513和安全标签2515,它们各自使用不同的样式表但是使用相同的标签数据来生成。如以上所讨论的,在标签生成过程的第一步使用样式表。安全标签2511、2513和2515各自以不同的可用一级位置和二级位置开始标签生成过程。与先前的示例一样,在识别和选择了一级位置和二级位置之后对数据进行编码。由于可以将数据编码到各种标签特征中,并且标签生成算法会产生随机化设计,因此相同的标签数据可能会产生显著不同的最终安全标签设计。安全标签2511、2513和2515在被扫描时都将返回相同的数据,但是每个安全标签都具有唯一设计。
图26a至图26p描绘了潜在安全标签特征的细节。以下更详细地描述了每个图。
图26a描绘了示例性安全标签的潜在特征。每个潜在特征中可以用于对数据进行编码或用于指纹识别。这些潜在特征包括:主要内小点、外断裂、内断裂、内缘融合、外水平融合、内框、所有者id、次要内小点、内水平融合、外框、外缘融合、短融合、次要外小点、内变形、外变形、结节和长融合。如以下更详细讨论的,这些潜在特征中的每一个都可以用于对信息进行编码。附加的可变有用资源(asset)可以用于嵌入附加数据或加密信息。例如,可变有用资源可以包括凹痕、凹陷、彩色形状、渐变、连接线和嵌入的符号。
在一些实施例中,安全标签可以包含附加特征以认证产品或存储信息。例如,可以将背景图案或纹理巧妙地或不可见地放置在标签后面。类似地,在另一示例中,相邻的图案或纹理可以用于提供附加的认证或存储信息。在另一示例中,彭罗斯点阵(penrosetile)图形图案可以用于指纹识别或区分特定的标签集。仍然在另一示例中,可以将邻近的信息(诸如唯一词集)放置在标签附近。当需要人类可读的id确认时(诸如例如在客户支持的实例中),这种设计可以是有用的。
图26b描绘了示出位置矢量2601的示例性标签。在确定了小点和形状的布局以及任何位移之后,位置矢量2601披露示例性安全标签中的小点和形状的最终位置。位置矢量2601提供关于安全标签中每个形状、小点和标签特征的位置的信息。
图26c描绘了偏移小点对准的示例。如以上所披露的,可以在接收到描述一类安全标签的样式表以及数字种子之后确定示例性安全标签的布局。布局位置2603描绘在生成安全标签布局之后的示例性小点的位置。在接收到标签数据之后,生成安全标签作为标签特征选项。某些标签特征选项涉及小点和形状的对准和定位。位移位置2605描绘在标签数据被编码为标签特征选项之后的示例性小点的最终位置。布局位置2603与位移位置2605之间的差异对于人眼可能是无法区分的,从而使得难以复制这样的标签。标签生成系统被设计成使网格比标准网格更加不可预测。在一些实施例中,分辨率可以允许基于网格偏移、线长、角度等从布局位置2603调整位移位置2605。在此类实施例中,这些调整可以允许将附加信息编码到标签中。
图26d描绘了示出小点连接特征选项2608的示例性安全标签。小点连接特征选项2608可以跨越安全标签的外框内的任何距离,以到达其他小点。在一些实施例中,小点连接特征选项2608可以在小点之间建立为直线。小点连接特征选项2608不能穿过中心图像到达另一小点。
图26e描绘了在已经对数据进行编码以创建样条和缘连接之后的小点连接特征选项2608。通过样条形成的形状称为字形。如以上所讨论的,字形可以是标签内生成的各个形状或字符,并且可以是存储大多数数据、密钥、id等的位置。在一些实施例中,样条数学(splinemathematics)可以用于包含加密的或编码的信息。例如,可以使用椭圆曲线密码术。缘接合也可以用于存储数据。
图26f和图26g将小点和连线描绘为用于同一示例性标签布局的矢量。安全标签以矢量格式生成,这些安全标签是根据2d点利用连接线和曲线限定的。这些图像中的矢量示出了可以用于对数据进行编码的可变样条原点以及样条或连线的厚度。图26f描绘了第一连接宽度2607,并且图26g描绘了第二连接宽度2609。第一连接宽度2607被描绘为大于第二连接宽度2609。第一连接宽度2607和第二连接宽度2609可以利用相同或不同的数据来编码。
图26h描绘了示出缘连接特征选项2610的示例性标签。缘连接可以由任何潜在缘连线特征选项2610形成。缘连线特征选项2610提供在内框或外框之间形成缘连接的可能性。一旦选择了缘连线特征选项2610以将其转变为缘连接,就可以将数据编码为形状。例如,缘连接可以利用用于表示制造商编号的数据来编码。
图26h和图26i将小点和缘连接描绘为用于同一示例性标签布局的矢量。这些图像中的矢量示出了可以用于对数据进行编码的可变的缘接合原点和厚度。图26i描绘了第一缘连接大小2611,并且图26h描绘了第二缘连接大小2613。第一缘连接大小2611被描绘为大于第二缘连接大小2613。第一连接大小2611和第二缘连接大小2613可以利用相同或不同的数据来编码。
图26j描绘了示例性安全标签的各种字形和潜在样条特征。可以使用大量样条生成字形集并将其被放置在灵活的坐标系中。在一些实施例中,可以使用融合曲率算法(blendcurvaturealgorithm)以数学方式生成字形。在其他实施例中,可以基于预定形状来生成字形。例如,客户可以基于客户的产品或服务请求将字形设置为特定形状。在这个示例中,可以清楚地识别并专门设计字形集。字形的样条的厚度可以部分地基于每个小点上的样条的起始位置而变化。在一些实施例中,可以在任意数量的小点之间形成字形。字形周围可以包含作为微结构的数据,或者可以包含将数据存储在路径中的算法方法内的数据。图26j仅描绘了有限数量的可能的字形和样条特征。
图26k描绘了第一环变形2615、第二环变形2617和第三环变形2619,所有这些环变形都可以用于对数据进行编码。第一环变形2615可以包括外框的内缘上的变形。第二环变形2617可以包括内框的外缘上的变形。第三环变形2619可以包括外框的外缘上的变形。
图26l描绘了微点2621和微印刷(microprinting)2623,两者都可以用于对数据进行编码。微印刷2623可以包括第二二进制数据集,其可以以与外框和外框断裂数据相似的方式来解释。在较低的分辨率下,微印刷2623可以表现为噪点。在较高的分辨率下,微印刷2623可以包括关于指纹数据的网格位置的信息。该信息可以包括x或y网格编号和偏移值。在一些实施例中,只要存在足够的微印刷2623,就可以对标签进行加密。在其他实施例中,微印刷2623可以包括不同的颜色。在此类实施例中,微印刷2623可以在同一物理空间中存储附加的信息。仍然在其他实施例中,外框可以在线的内侧和外侧上均包含微印刷2623。在此类实施例中,内侧和外侧两者上的微印刷2623可以是彩色的。在其他实施例中,微印刷2623可以通过改变其受阻段的高度来存储附加的二进制数据。在此类实施例中,由于二进制代码的物理大小较小,因此可能难以复制二进制代码。微印刷2623可以用于高级数据存储,并且可以由很高分辨率相机访问。
图26m利用三种不同的颜色填充渐变来描绘同一位置:未填充2625、填充不同的颜色2627和填充相同的颜色2629。可以基于渐变和位置的颜色将数据编码到安全标签中。
图26n描绘了示例性标签特征2631以及编码到标签特征2631中的数据。标签特征2631描绘通过连接来连接的两个小点、或通过第三位来连接的两个位,其中,细节区域2633包含编码数据。细节区域2633可以包括缠绕小点之一的缘的样条。可以通过从起始位置2635开始并沿读取方向2637移动来读取细节区域2633。细节区域2633可以具有第一空间频率和第二空间频率,该第一空间频率具有对3位数据(值a)进行编码的潜力,并且该第二空间频率具有对18位数据进行编码的潜力。值a设置位2639表示第一空间频率下的1,并且值a未设置位2641表示第一空间频率下的0。值b未设置b表示第二空间频率下的0,并且值设置位2645表示第二空间频率下的1。在3位编码数据和18位编码数据之后,存在重复2647。
图27a至图27k描绘了示例性安全标签的生成。以下更详细地描述了每个图。
图27a描绘了在安全标签生成过程中用作基底的示例性网格。网格包括潜在一级位置2701和潜在二级位置2703,这些位置是字形2705的基础。网格的形成是安全标签生成的第一阶段,并且使用特定算法创建随机化设计来完成。潜在一级位置2701和潜在二级位置2703决定了字形2705的最终位置和形状。字形2705可以跨越任何数量的潜在一级位置2701和潜在二级位置2703。
图27b描绘了已选择的一级位置2707和未选择的一级位置2709。在标签生成过程的此阶段,潜在一级位置2701被识别和选择。标签生成算法随机地选择预定数量的潜在一级位置2701。然后,将在安全标签生成过程中进一步使用已选择的一级位置2707,而未选择的一级位置2709不再是标签生成过程的一部分。在图27b中,存在随机选择的26个已选择的一级位置2707,从而产生72万亿个可能的组合之一。
图27c描绘了潜在二级位置2711的标识。潜在二级位置2711可以包括位于已选择的一级位置2707之间的任何二级位置。在图27c中,标识了40个潜在二级位置2711,从而产生大约1万亿个子组合的可能性。
图27d描绘了未选择的二级位置2713和已选择的二级位置2715。已选择的二级位置2715是从先前标识的潜在二级位置2711中选择的。已选择的二级位置2715可以由系统基于标签生成算法来选择,并且可以用于将已选择的一级位置2707连接到单独的已选择的一级位置2707。
图27e描绘了次级网格,其示出了在安全标签生成过程中紧接在通过视觉化引擎进行处理之前和之后的已选择的一级位置2707和已选择的二级位置2715。包括已选择的一级位置2707和已选择的二级位置2715的次级网格、或最终次级网格可以被传递到视觉化引擎以用于进一步的安全标签生成。某些已选择的一级位置2707由已选择的二级位置2715桥接。已选择的二级位置2715用于在已选择的一级位置2707之间创建连接,从而产生字形。在一些实施例中,每个字形上的曲线的形状可以包含数据。可以基于形状构造将附加的代码变体引入到结构中。未由已选择的二级位置2716桥接的已选择的一级位置2707可以保持为单独的小点。在一些实施例中,小点可以包含数据。
图27f至图27i描绘了基于已选择的一级位置2719和已选择的二级位置2721的不同的可能字形2717。在每个图中,标签生成算法可以已将任何二级位置标识为潜在连线。每个图描绘了基于已选择的二级位置2721的不同的可能字形2717。图27f和图27h均描绘了字形2715,其中,已选择的一级位置2719连接到至少一个但不超过三个的已选择的一级位置2719,然而,图27h描绘了串联连接的已选择的一级位置2719。图27g描绘了字形2717,其中,已选择的一级位置2719连接到每个已选择的一级位置2719。在此图中,已选择的二级位置2721可以使已选择的一级位置2719形成为更大的圆或小点。图27j描绘了字形2717,其中,五个已选择的一级位置2719中只有三个通过已选择的二级位置2721连接。在此图中,最终标签将包括字形2717和两个单独的小点。图27f至图27i中的每个字形2717可以具有编码到其中的数据。
图27j描绘了带有取向信息2723的示例性安全标签。取向信息2723可以放置在安全标签的中心作为中心图像。取向信息2723可以在标签识别过程中使用,以允许光学读取器正确地识别正确的标签。在一些实施例中,取向信息可以包括标志、品牌或任何其他标识符。
图28a至图28n描绘了示例性安全标签。以下更详细地描述了每个标签。
图28a描绘了各种形式因素的安全标签。安全标签的外框可以是任何形状。例如,客户可以请求将标签设计成与特定图像相匹配。在这个示例中,期望的图像既可以充当安全标签又可以充当商标。在一些实施例中,安全标签可以不具有中心图像。在这些实施例中,可以基于安全标签的外框的设计来实现标签取向。在其他实施例中,中心图像可以是由客户提供的自定义图像。图28a描绘了可能的形式因素的示例,诸如澳大利亚的形状和niketmswoosh。
图28b描绘了一系列示例性标签。这些标签中的每一个都具有对称设计和没有连线或样条的一系列小点。在正常的安全标签生成过程中,创建对称安全标签的可能性非常低。但是,还可以控制安全标签生成过程以创建美观的标签,诸如图28b中提供的示例。在这些示例中,选择了设计,并且可以将数据编码到选择的设计中。
图28c描绘了与条形码集成在一起的安全标签的示例。在一些实施例中,可以将安全标签与条形码一起读取。在其他实施例中,可以分开读取安全标签和条形码。将安全标签与条形码集成在一起可以为基于sku的条形码读取器提供向后兼容性,并且提供唯一标识。安全标签可以包含与条形码有关的匹配数据。这可以防止对条形码和安全标签两者的欺诈性使用或滥用。
图28d描绘了示例性安全标签。在一些实施例中,示例性安全标签可以具有覆盖在彩色或黑色背景上的中心图像。在其他实施例中,安全标签可以不具有内框。仍然在其他实施例中,安全标签可以具有与外框的形状不同的内框。
图28e描绘了带有对称图案和laava中心图像的示例性安全标签。
图28f描绘了带有对称图案和laava中心图像的示例性安全标签。
图28g描绘了带有对称图案和laava中心图像的示例性正方形安全标签。
图28h描绘了带有对称图案和laava中心图像的示例性正方形安全标签。
图28i描绘了没有中心图像并且在小点之间没有连线的示例性安全标签。
图28j描绘了带有laava中心图像并且在小点之间没有连线的示例性正方形安全标签。
图28k描绘了带有laava中心图像和窄厚度连线的示例性安全标签。
图28l描绘了带有laava中心图像和窄厚度连线的示例性正方形安全标签。
图28m描绘了带有对称图案和laava中心图像的示例性安全标签。
图28n描绘了带有对称图案和laava中心图像的示例性正方形安全标签。
图29b描绘了用于请求安全标签设计的示例性用户界面。选项卡设计用户界面可以为用户提供用于创建安全标签的各种选项。例如,用户具有选择其是否想要嵌套安全标签以及其是否想要配对安全标签的选项。其他潜在可自定义选项包括:客户中心标志、加密id、自定义db同步、安全标签是否对用户可读、是否混淆(多个)id、离线可读性、是否具有嵌入位置、每个id的经销商访问权限、是否使用laava区块链、以及安全标签是否可终止。在图30b中,用户已经选择了4层嵌套标签,其中顶层是配对的。安全标签的每一层可以包含不同的信息。在这个示例中,用户具有控制每个层可以提供哪些信息以及访问每个安全标签需要哪些密钥的能力。
示例性使用案例
安全标签可以用于对艺术品和其他有价值的商品进行认证,并且允许艺术家潜在地从正在进行的/未来的销售中获得收入。安全标签可以被附加到原始艺术作品上,并且与表示所有权的第二安全标签和艺术家保留的第三安全标签配对。艺术作品上的安全标签和表示所有权的第二安全标签两者都可以包含关于艺术品本身、当前所有者、艺术家和艺术品经纪人的信息,并且出售和转移所有权可能都需要这两个安全标签。艺术家可以保留他或她的配对标签,并且可以在所有权转移时接收到通知,该通知可以潜在地包括来自所有权转移的一定百分比的收入。在一些实施例中,可以使用例如艺术品框架上的在标签附近的木纹图案利用近距指纹识别来验证艺术品。近距指纹对于客户是不可见的,并且如果移动标签,则可能无法对其进行验证并且可能无法证明真实性。
可以通过使用安全标签来处理保修登记和保险登记。客户可以通过区块链对车辆进行认证,并且然后购买该车辆。然后将所有权转移给客户,为客户登记保修,并且在适当的数据库(例如,dmv)中将车辆正式登记给客户。客户的保险公司可以将客户id与最近购买的车辆的车辆数据进行匹配,并且如果确认了客户id,就可以签发保险。
安全标签可以用于认证游戏代币或其他游戏硬币。每个代币或硬币被给予可以与代币或硬币中的嵌入的rfidid配对的安全标签。可以在区块链中管理安全标签与rfid的组合,从而允许游戏室以各种方式跟踪每个代币或硬币。用户还可以利用其拥有的读取设备来检查安全标签,以确保其手中有合法的代币或硬币。另外,代币或硬币上的唯一标签可以用作对创建假冒标签的视觉威慑。
可以使用安全标签对实体加密货币进行认证。用户可以将加密货币(诸如例如,“比特币”)加载到印有安全标签的实体票据上。安全标签可以通过访问密钥与特定所有者绑定,也可以向公众开放以供任何人离线使用。可以在结帐台对安全标签进行验证,并且关于交易的信息可以被上传到区块链。在一些实施例中,安全标签可以与另一形式的识别(诸如rfid)配对。
肉和家畜或其他有机产品可以使用安全标签通过近距指纹识别来验证。例如,安全标签附近的牛肉“纹理”可以在包装时与安全标签一起被指纹识别。安全标签可以提供关于牛肉块、包装日期、运输的信息以及对购买易腐商品而言重要的任何其他信息。必须一起扫描安全标签和纹理,以向最终用户全面认证产品,并且如果标签已被移动,则近距指纹识别将无法将产品验证为真实的。
安全标签可以用于认证药品和处方。例如,医生可以在每个处方页上都有唯一安全标签,以防止处方被盗。医生可以在写下处方时对处方进行扫描,并且可以给予特定患者使用该处方的许可。当药房按处方配药时,其可以检查安全标签,以判定医生实际上是否已给予某人使用特定处方页的许可,以及是否向正确的人开出了合适的药物。在另一示例中,可以将安全标签印在药物包装上、泡罩型包装上,或甚至印在各个药丸本身上。在这些示例中,药物与患者匹配,从而在被扫描时向医生、护士或其他批准的医疗提供者提供对患者信息的访问权限。这可以提供正在按照处方服用药物的证据,并且有助于确保向正确的人提供合适的药物。
可以通过使用安全标签来跟踪和验证税收报告和费用报告。公司可以向其员工提供特定的读取器,以扫描收据和发票。收据和发票可以印有唯一标签,该唯一标签然后可以由专门为此活动设计的读取器进行扫描。可以将读取器设计成给予用户仅扫描收据或发票上的某些安全标签的能力。然后,扫描到的费用被存储在区块链中,并且未来可以由公司或税务机构访问以验证费用和成本。
用户可以以多种配置创建自定义的安全标签。例如,某些品牌可能希望将标签设计成与其商标相同的形状。这可以实现不同的包装选项和不同等级的安全性。在一些实施例中,可以在将安全标签的形状保持固定为标准形状的同时自定义中心标志。
可以通过使用安全标签来将灰色产品从供应线中清除。可以为特定设备和车辆的真实零件提供安全标签,该安全标签包含关于制造商以及关于该零件应被用于什么类型的装备或车辆的信息。未来检查和更换零件的工程师或技术人员可以扫描零件,以判定该零件是否是真实的、并且是否以正确的方式在使用。
公司可以使用安全标签来限制对产品(诸如例如,鞋子)的复制。在这个示例中,复制者已经获得对该公司生产的带有合法标签的单只鞋子的访问权限,并且已经将合法标签的副本放置在假鞋上。然后,复制者将鞋子售卖给众多购买者,声称这些产品是正品。只有第一次扫描才会使得正品被认证,并且扫描必须在鞋被售卖之前进行。如果标签显示这不是第一次扫描同一标签,则该标签将被报告为伪造品,并且避免了客户购买伪造产品。在合法客户不是第一个扫描鞋子的情况下,客户可以向公司本身认证产品。
所披露的实施例可以在系统、方法和/或计算机程序产品中实施。计算机程序产品可以包括(多个)计算机可读存储介质,该(多个)计算机可读存储介质在其上具有用于使处理器执行本发明的各方面的计算机可读程序指令。
计算机可读存储介质可以是有形设备,该有形设备可以保留和存储供指令执行设备使用的指令。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备,或上述存储设备的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下各项:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式致密盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、机械编码设备(诸如穿孔卡或凹槽中凸起的结构(其上记录了指令))、以及上述存储介质的任何合适的组合。如本文所使用的,计算机可读存储介质不应被理解为瞬时信号本身,瞬时信号诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)、或通过电线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者可以经由例如互联网、局域网、广域网和无线网等网络下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发计算机可读程序指令以存储在相应的计算/处理设备内的计算机可读存储介质中。
本文参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。将理解的是流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实施。
可以将这些计算机可读程序指令提供给通用计算机、专用计算机的处理器,或其他可编程数据处理装置以产生机器,从而使得经由计算机的处理器或其他可编程数据处理装置来执行的指令创建用于实施流程图和/或框图的一个或多个框中指定的功能的手段。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以指导计算机、可编程数据处理装置、和/或其他设备以用特殊的方式发挥功能,从而使得在其中存储有指令的计算机可读存储介质包括制造的包括指令的物品,这些指令实施流程图和/或框图的一个或多个框中指定的功能/动作的各方面。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以引起在计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实施的过程,从而使得在计算机、其他可编程装置或其他设备上执行的指令实施在流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图展示了根据本发明的各实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。关于此,流程图或框图中的每个框都可以表示包括用于实施(多个)特定逻辑功能的一个或多个可执行指令的软件程序、片段或代码的一部分。还应该指出的是,在某些替代性实施方式中,框中标明的功能可以不按图中标记的顺序发生。例如,根据涉及的功能,可以实际上基本同时执行顺序示出的两个框,或者有时候可以按相反的顺序执行这些框。还将指出的是,可以通过执行特定功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实施框图和/或流程图的每一个框及框图和/或流程图中框的组合。
本发明的各实施例的描述是出于展示的目的呈现的、但是不旨在是详尽的或限制在所披露的实施例。在不脱离所描述的实施例的范围和精神的情况下,很多修改和变化对本领域普通技术人员都将是明显的。选择本文使用的术语是为了最佳地解释实施例的原理、对市场上发现的技术的实际应用或技术上的改进,或者是为了使本领域的其他普通技术人员能够理解本文所披露的实施例。
应理解的是,为清楚起见在单独的实施例的背景下描述的本发明的某些特征也可以在单个实施例中组合提供。相反地,为简便起见,在单个实施例的背景下描述的本发明的不同特征也可以单独地或以任何适合的子组合或在适当情况下提供于本发明的任何其他已描述的实施例中。在不同实施例的背景下描述的某些特征不认为是那些实施例的必需特征,除非实施例在没有那些要素的情况下是无效的。
尽管结合其特定实施例描述了本发明,但是显然对于本领域的技术人员而言,许多替代方案、修改和变化更是显而易见的。因此,意图涵盖落入所附权利要求的精神和广泛范围内的所有这种替代方案、修改和变化。