用于光学条形码的定制功能图案的制作方法

文档序号:13080354阅读:256来源:国知局
用于光学条形码的定制功能图案的制作方法与工艺

相关申请

该国际申请要求于2015年8月14日提交的题为“customfunctionalpatternsforopticalbarcodes(用于光学条形码的定制功能图案)”的美国申请no.14/826,301以及于2015年2月3日提交的题为“customfunctionalpatternsforopticalbarcodes(用于光学条形码的定制功能图案)”的美国申请no.14/612,409以及于2015年1月19日提交的题为“customfunctionalpatternsforopticalbarcodes(用于光学条形码的定制功能图案)”的美国临时申请no.62/105,141的优先权权益,其申请中的每一个通过引用整体并入在此。

本公开的实施例一般涉及移动计算技术,且更具体地但并非限制于用于光学条形码的定制功能图案。



背景技术:

快速响应(qr)码和其它光学条形码是向移动设备、可穿戴设备和其它智能设备的用户共享小块信息的便利方式。通常,光学条形码使用用于光学条形码识别的取景器图案。传统的取景器图案通常使用明显放置在光学条形码内的多个通用标记(genericmarking)。这种明显和通用的标记可能是不好看的,并且通常不用作除了取景器图案之外的目的。

附图说明

附图中的各种附图仅仅示出了本公开的示例实施例,并且不应被认为是限制其范围。

图1是示出根据一些示例实施例的联网系统的框图。

图2是示出根据一些示例实施例的定制图案系统的示例实施例的框图。

图3a和图3b是示出根据一些示例实施例的利用定制功能图案的光学条形码的示例的图。

图4是示出根据一些示例实施例的利用定制功能图案来识别和解码光学条形码的示例的图。

图5是示出根据一些示例实施例的使用定制功能图案来识别和解码光学条形码的示例方法的流程图。

图6是示出根据一些示例实施例的使用定制功能图案识别光学条形码的另外示例操作的流程图。

图7是示出根据一些示例实施例的使用定制功能图案识别光学条形码的示例的图。

图8是示出根据一些示例实施例的用于使用定制功能图案识别光学条形码的另外示例操作的流程图。

图9是示出根据一些示例实施例的使用定制功能图案识别光学条形码的示例的图。

图10是示出根据一些示例实施例的用于使用定制功能图案来解码光学条形码的另外示例操作的流程图。

图11是示出根据一些示例实施例的使用定制功能图案来解码光学条形码的示例的图。

图12a、图12b和图12c是示出根据一些示例实施例的用于帮助使用定制功能图案来解码光学条形码的各种图像变换的图。

图13是示出根据一些示例实施例的用于使用定制功能图案来解码光学条形码的另外示例操作的流程图。

图14是示出根据一些示例实施例的使用定制功能图案来解码光学条形码的示例的图。

图15是描绘根据一些示例实施例的用于识别光学条形码的示例用户界面的用户界面图。

图16是描绘根据一些示例性实施例的用于执行与光学条形码相关联的动作的示例用户界面的用户界面图。

图17是示出根据一些示例实施例的用于使用定制功能图案来生成光学条形码的另外示例操作的流程图。

图18是描绘根据一些示例性实施例的用于使用定制功能图案来生成光学条形码的示例用户界面的用户界面图。

图19是描绘根据一些示例性实施例的示例移动设备和移动操作系统界面的用户界面图。

图20是示出根据一些示例实施例的可以安装在机器上的软件架构的示例的框图。

图21是根据示例实施例的呈现以计算机系统形式的机器的图示表示的框图,在该计算机系统内可以执行一组指令以使机器执行本文所讨论的任何方法论。

具体实施方式

下面的描述包括体现本公开的说明性实施例的系统、方法、技术、指令序列和计算机程序产品。在下面的描述中,为了解释的目的,阐述了许多具体细节以提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明主题的实施例。通常,不一定详细地示出众所周知的指令实例、协议、结构和技术。

qr码和其它光学条形码(例如,通用产品代码(upc)条形码、阿兹特克(aztec)代码、数据矩阵、数据图(dataglyph)、maxicode、pdf417、超代码)是用于与移动设备、可穿戴设备和其它智能设备共享小块信息的一种便利方式。例如,qr码是对装备有相机传感器的设备(例如,智能电话)可读的信息进行编码的二维光学条形码。通常,qr码包括一个或多个功能图案,诸如用于qr码的识别和辨识(recognition)的取景器图案或用于帮助解码的对准图案。传统的取景器图案包括在设计中通用的多个标记,诸如放置在除了右下角以外的所有角落中的方形标记(如qr码的情况)。这些取景器图案不存在诸如曲线、非均匀性和其它风格元素的美学元素,并且通常符合特定标准以促进光学条形码的开放使用。

在各种示例实施例中,使用定制或非标准功能图案的光学条形码为用户提供了美学上令人愉快的品牌条形码,其允许与光学条形码相关联的独家体验。例如,实体徽标(例如,公司、组织或个人的徽标)可用作取景器图案,并且在一些情况下用作对准图案,以使用由实体提供的软件来创建机器可读的品牌和独特的光学条形码。在具体示例中,“快照码(snapcode)”是使用徽标作为功能图案的光学条形码。

在示例实施例中,定制图案系统从用户设备接收表示图像的图像数据。例如,定制图案系统从用户的智能电话的光学传感器(例如,相机传感器)接收图像数据。在各种实施例中,响应于用户启动的图像采集,由用户设备的光学传感器检测到图像数据的周期性监视,存储的图像数据的访问,或它们的组合,接收来自用户设备的图像数据。图像数据的一部分可以包括表示光学条形码的数据,该光学条形码利用用于特定功能图案(例如,取景器图案)的定制图形。在一些情况下,图像数据包括无关(extraneous)或不相关(irrelevant)数据(例如,光学条形码的图像包括与解码光学条形码无关的背景)以及与光学条形码有关的数据。在具体示例中,用户设备的光学传感器采集包括特定光学条形码的促销海报的图像。促销海报的图像可以包括特定的光学条形码以及围绕特定光学条形码的促销海报或背景的不相关部分。

在定制图案系统接收图像数据之后,定制图案系统在图像的图像数据中搜索定制图形,以确定图像是否包括光学条形码。也就是说,定制图形被用作用于图像内的光学条形码的辨识、识别或检测的取景器图案。在示例实施例中,定制图案系统通过从图像数据提取候选形状特征或多个候选形状特征来搜索定制图形。例如,定制图案系统执行边缘检测技术或另一图像处理技术以识别诸如图像的轮廓线的候选形状特征。然后,定制图案系统确定候选形状特征是否满足形状特征规则或标准。例如,如果特定候选形状特征是轮廓线,则定制图案系统可以确定轮廓线是否是包围图像的一部分的封闭线。与一些实施例一致,形状特征规则过滤出不相关或无关的候选形状特征或具有低概率成为定制图形的候选形状特征。

响应于候选形状特征满足形状特征规则,定制图案系统通过将候选形状特征与定制图形的参考形状特征进行比较来识别定制图形。例如,定制图案系统可以将候选形状特征的面积或尺寸与参考形状特征的参考面积或尺寸进行比较。在该示例中,定制图案系统基于候选形状特征和参考形状特征之间的匹配或近似匹配(例如,阈值之上的百分比匹配)来识别定制图形。以该方式,定制图案系统使用定制图形作为取景器图案来识别图像的一部分内的光学条形码的存在。

在另外的示例实施例中,定制图形用作对准图案,以便于定制图案系统解码被编码在光学条形码中的数据。在示例实施例中,定制图案系统从图像数据提取图像中的定制图形的空间属性(attribute)。例如,定制图案系统从图像数据提取定制图形的位置、缩放或取向。定制图案系统使用图像中的定制图形的空间属性从图像数据解码被编码在图像中的数据。例如,定制图案系统可以使用空间属性(例如,图像变换的去偏斜(de-skew)、旋转、缩放或另一类型)来执行图像变换,以提高被编码在图像的一部分中的数据的可检测性/可读性。以该方式,定制图案系统使用定制图形作为对准图案来帮助解码条形码。

因此,定制图案系统使用定制图形作为光学条形码的功能图案,而不使用传统的功能图案。使用定制图形作为功能图案允许美学上令人愉快的设计,并且可以为特定软件应用程序提供排他性,因为功能图案不一定符合开放标准,并且因此可以由特定软件应用程序专门读取。

图1是描绘根据一个实施例的具有被配置为通过网络交换数据的客户端-服务器架构的网络系统100的网络图。例如,网络系统100可以是消息系统,其中客户端在网络系统100内进行通信和交换数据。数据可以涉及与网络系统100及其用户相关联的各种功能(例如,发送和接收文本和媒体通信,确定地理位置等)和方面。尽管在此被示为客户端-服务器架构,但是其它实施例可以包括诸如点对点或分布式网络环境的其它网络架构。

如图1所示,网络系统100包括社交消息系统130。社交消息系统130通常基于由接口层124、应用程序逻辑层126和数据层128组成的三层架构。如相关计算机和因特网相关领域的技术人员所理解的,图1所示的每一个模块或引擎表示一组可执行软件指令和用于执行指令的对应硬件(例如,存储器和处理器)。为了避免用不必要的细节来模糊本发明的主题,图1中省略了与传达对本发明主题的理解无紧密关系的各种功能模块和引擎。当然,附加的功能模块和引擎可以与诸如图1所示的社交消息系统一起使用,以便于未在此具体描述的附加功能。此外,图1中描绘的各种功能模块和引擎可以驻留在单个服务器计算机上,或者可以横跨在各种布置中的若干服务器计算机来分布。此外,尽管在图1中将社交消息系统130描绘为三层架构,但是本发明的主题决不限于这种架构。

如图1所示,接口层124由接收来自各种客户端计算设备和服务器(诸如执行客户端应用程序112的客户端设备110以及执行第三方应用程序122的第三方服务器120)的请求的接口模块(例如,web服务器)140组成。响应于接收的请求,接口模块140经由网络104向请求设备传送适当的响应。例如,接口模块140可以接收诸如超文本传输协议(http)请求或其它基于web的应用程序编程接口(api)请求的请求。

客户端设备110可以执行传统web浏览器应用程序或已经针对特定平台开发的应用程序(同样称为“应用程序软件(app)”),以包括各种各样的移动计算设备和移动专用操作系统中的任何一种(例如iostm、androidtmphone)。在示例中,客户端设备110正在执行客户端应用程序112。客户端应用程序112可以向用户106提供呈现信息的功能,并且经由网络104进行通信以与社交消息系统130交换信息。客户端设备110中的每一个可以包括计算设备,该计算设备至少包括显示器和与网络104通信以访问社交消息系统130的能力。客户端设备110包括但不限于远程设备、工作站、计算机、通用计算机、因特网电器(appliance)、手持设备、无线设备、便携式设备、可穿戴计算机、蜂窝或移动电话、个人数字助理(pda)、智能电话、平板计算机、超小本、上网本、笔记本计算机、台式机、多处理器系统、基于微处理器或可编程的消费电子产品、游戏机、机顶盒、网络pc、小型计算机等。用户106可以包括人、机器或与客户端设备110交互的其它部件。在一些实施例中,用户106经由客户端设备110与社交消息系统130交互。

如图1所示,数据层128具有便于访问信息存储库或数据库134的一个或多个数据库服务器132。数据库134是存储诸如会员简档数据、社交图形数据(例如,社交消息系统130的会员之间的关系)和其它用户数据的数据的存储装置。

个人可以用社交消息系统130注册成为社交消息系统130的会员。一旦注册,会员可以在社交消息系统130上形成社交网络关系(例如,朋友、关注者或联系人)并且与由社交消息系统130提供的广泛的应用程序进行交互。

应用程序逻辑层126包括各种应用程序逻辑模块150,该应用程序逻辑模块150结合接口模块140生成具有从数据层128中的各种数据源或数据服务检索的数据的各种用户接口。各个应用程序逻辑模块150可以用于实现与社交消息系统130的各种应用程序、服务和特征相关联的功能。例如,社交消息应用程序可以采用一个或多个应用程序逻辑模块150中来实现。社交消息应用程序为客户端设备110的用户提供消息收发机制,以发送和接收包括文本和诸如图片和视频的媒体内容的消息。客户端设备110可以在(例如,有限的或无限的)指定的时间段内访问和查看来自社交消息应用程序的消息。在示例中,消息接收者可以在从首次访问特定消息时开始的(例如,由消息发送者指定的)预定持续时间内访问特定消息。在预定义的持续时间过去之后,消息被删除并且消息接收者不再可访问该消息。当然,其它应用程序和服务可以分别体现在它们自己的应用程序逻辑模块150中。

如图1所示,社交消息系统130或客户端应用程序112包括提供用于识别和解码利用定制功能图案的光学条形码的功能的定制图案系统160。在各种实施例中,定制图案系统160可以被实现为独立系统,并且不必须被包括在社交消息系统130中。在一些实施例中,客户端设备110包括定制图案系统160的一部分(例如,定制图案系统160的一部分可以被独立地包括或被包括在客户端应用程序112中)。在客户端设备110包括定制图案系统160的一部分的实施例中,客户端设备110可以单独或与定制图案系统160的一部分一起工作,定制图案系统160被包括在特定应用程序服务器中或在社交消息系统130中。

图2是定制图案系统160的框图200。定制图案系统160被示为包括通信模块210、呈现模块220、取景器模块230、对准模块240、解码器模块250、动作模块260和编码器模块270。模块210-270中的所有或一些模块例如经由网络耦接、共享存储器等彼此通信。模块210-270中的每一个模块可以被实现为单个模块,组合到其它模块中,或进一步细分成多个模块。同样可以包括与示例实施例不相关的其它模块,但是其未被示出。

通信模块210提供各种通信功能。例如,通信模块210从用户设备接收、访问或以其它方式获得图像的图像数据。在具体示例中,通信模块210从智能电话的相机传感器(例如,由智能电话的相机传感器采集的单帧图像数据或连续帧流)接收基本上实时的图像数据。通信模块210与数据库服务器132、客户端设备110和第三方服务器120交换网络通信。由通信模块210检索的信息包括与用户相关联的数据(例如,来自在线帐户的会员简档数据或社交网络服务数据)或有助于在此所述的功能的其它数据。

呈现模块220提供可操作以交互地向用户呈现和接收来自用户的信息的各种呈现和用户界面功能。例如,呈现模块220可用于呈现响应于解码光学条形码而生成的用户界面。在其它情况下,呈现模块220生成包括光学条形码的用户界面。在各种实施例中,呈现模块220呈现或引起信息的呈现(例如,在屏幕上可视地显示信息,声音输出,触觉(haptic)反馈)。交互呈现信息的过程旨在包括特定设备与用户之间的信息交换。用户可以以许多可能的方式提供与用户界面交互的输入,诸如字母数字的输入,基于点的输入(例如,光标),触知(tactile)的输入或其它的输入(例如,触摸屏、触知传感器、光传感器、红外传感器、生物特征(biometric)传感器、麦克风、陀螺仪、加速度计或其它传感器)。呈现模块220提供有助于在此所述的功能的许多其它用户界面。在此使用的术语“呈现”旨在包括将信息或指令传送到特定设备,该特定设备可被操作为基于所传送的信息或指令来执行呈现。

取景器模块230提供图像处理功能以识别、辨识或检测被用作光学条形码中的取景器图案的定制图形。例如,取景器模块230根据从用户设备(例如,客户端设备110)接收的图像的图像数据提取和分析候选形状特征或候选轮廓特质(characteristic)。取景器模块230确定与提取的候选形状特征相关联的各种规则或标准的满足。取景器模块230将提取的候选形状特征与定制图形或另一参考图像的参考形状特征进行比较,以识别图像中包括的定制图形。取景器模块230可以利用各种各样的方案和技术从图像的图像数据提取候选形状特征,并且随后基于候选形状特征的分析来识别定制图形。这些技术的示例稍后关于图5-14来说明。

对准模块240提供图像处理功能以使用定制图形来确定光学条形码的对准。定制图案系统160可以使用对准来帮助被编码在光学条形码中的数据的解码。以该方式,定制图形被用作光学条形码的对准图案。例如,对准模块240从图像数据提取图像中的定制图形的空间属性。在各种实施例中,空间属性包括光学条形码的位置、取向、缩放或另一空间方面中的至少一个。对准模块240基于空间属性(例如,光学条形码的特定取向)来确定光学条形码的对准。在示例中,对准模块240可以基于空间属性来确定包括位置和取向的对准,并根据对准生成变换图像。然后,定制图案系统160可以使用变换的图像来解码被编码在变换图像的一部分中的数据。

解码器模块250提供使用图像中定制图形的空间属性或确定的对准来解码被编码在图像中的数据的功能。例如,解码器模块250可以从根据提取自图像数据的定制图形的空间属性变换的图像来解码被编码在图像中的数据。在实施例中,解码器模块250从图像数据检测表示被编码在图像的一部分中的数据的标记(例如,图像中的高对比度点、正方形或其它标记)。在具体示例中,解码器模块250利用理德-所罗门(reed-solomon)纠错方案来解码被编码在图像中的数据。即使当某一百分比的数据不能从光学条形码解码(例如,损坏的比特或不正确解码的比特)时,reed-solomon纠错方案允许成功或有效的解码。在一些实施例中,定制图案系统160的用户或管理员在解码光学条形码时针对可接受的损坏或不正确解码的数据的量来配置容差值。在一些实施例中,解码器模块250同样提供图像处理功能以改善光学条形码的解码。例如,解码器模块250以及对准模块240可以执行图像的图像变换(例如,执行图像锐化、去噪处理、其它数字滤波或提高解码精度的其它图像处理技术)。

动作模块260提供基于解码被编码在图像中的数据来执行各种动作的功能。例如,被编码在图像的一部分中的数据可以指示特定动作或包括要与特定动作结合使用的信息。在特定示例中,被编码在图像的一部分中的数据可以包括社交网络服务的会员的用户名或其它用户标识(identification),并且基于对用户名的解码,动作模块260可以对对应于该用户名的社交网络服务执行动作(例如,向与该用户名相关联的会员发送消息)。在一些实施例中,动作模块260执行对于扫描图像的特别应用程序特定的动作(例如,对于该应用程序的用户可用但是以其它方式不可用的功能)。在一些情况下,动作模块260在不与外部服务器通信的情况下执行动作(例如,对扫描快照码的用户设备局部地执行的动作)。

编码器模块270提供了将数据生成和编码到利用定制图形作为一个或多个功能图案(例如,生成快照码)的光学条形码的功能。如上面结合解码器模块250所讨论的,在具体示例中,编码器模块270可以利用诸如reed-solomon纠错的技术来编码数据。在示例实施例中,编码器模块270呈现表示要被编码的数据的机器可读的标记布置。然后,编码器模块270可以使用所呈现的标记布置和要用作功能图案的定制图形来生成机器可读的光学条形码。

图3a和图3b是示出利用取景器图案或对准图案的定制图形的光学条形码的示例的图(例如,快照码)。图示(diagram)300示出了包括定制图形310(例如,公司徽标)的示例光学条形码以及表示被编码在光学条形码中的数据的标记320。在该示例中,定制图形310是诸如“幽灵”徽标的公司徽标。应当理解,“幽灵”徽标仅仅是示例定制图形,并且可以使用在此描述的技术将其它图形、图标或符号用作取景器图案或对准图案。用作功能图案的其它示例定制图形可以包括具有多个路径、多个多边形、多个美学元素或其它设计特征的设计。

如图示300所示,标记320是以具有机器可读的特定间隔或定位的图案布置的点。尽管图示300将标记320示出为点,但是可以利用其它形状和标记(例如,各种几何形状的正方形或不对称形状)。标记320可以以一致的图案或不一致的图案布置。在一些情况下,标记可以具有不同的尺寸或一致的尺寸。另外,标记320可以是预定布置或在从标记解码数据时可以动态确定的布置。在一些实施例中,定制图形310和标记320可以被诸如外框325的边界形状围绕。虽然图示300的外框325被示出为具有圆角的正方形,但是外框325可以是具有各种几何形状的各种其它形状的形式。图3b中的图示330示出了利用定制图形用于取景器图案或对准图案的另一示例光学条形码。图示330示出了在定制图形内不包括标记的光学条形码。在这些和其它实施例中,定制图形内部的空间可以被保留用于其它用途。例如,可以插入由用户选择的图片、图形、动画、注释或图像。

现在转到图4,示出了说明利用取景器图案或对准图案的定制图形来识别和解码光学条形码的示例的图示400。图4是使用定制图形识别和解码光学条形码的特定示例实施例的概述。结合以下附图讨论附加细节和替代实施方式。在图示400中,场景402示出了包括光学条形码406的海报404和用户410。应当理解,可以以各种方式将光学条形码406显示在诸如在用户设备显示器、计算机显示器上、编织或以其它方式固定到衣物或另一产品上,或被包括在各种打印物品中。标注412描绘了场景402的一部分的放大视图。标注(callout)412包括用户410的用户设备414,该用户设备414包括可操作以检测光学条形码406的光学信号408的光学传感器(例如,智能电话的相机传感器)。

在示例实施例中,用户设备414采集包括光学条形码406的海报404的图像。定制图案系统160从用户设备414接收表示图像的图像数据。在该示例实施例中,定制图案系统160被包括在用户设备414中(例如,在用户410的智能电话上执行的应用程序),但是在其它示例实施例中,定制图案系统160可以驻留在与用户设备414通信地耦接的服务器上(例如,社交消息系统130的服务器)。标注416描绘取景器模块230执行的示例图像处理以识别图像中的定制图形,并使用定制图形作为对准图案,用于解码被包括在光学条形码406中的数据。在标注416中,取景器模块230从图像的图像数据提取候选形状特征。随后,取景器模块230确定候选特征是否满足某些规则和标准以滤除不相关的形状特征或具有低概率成为定制图形的形状特征。取景器模块230然后可以将满足形状特征标准或规则的候选形状特征与定制图形的参考形状特征进行比较。在示例中,取景器模块230基于候选形状特征和参考形状特征之间的匹配(例如,超过阈值的匹配分数)来识别定制图形。

在取景器模块230识别定制图形之后,定制图案系统160可以使用定制图形作为对准图案进行解码。例如,对准模块240提取图像中的定制图形的空间属性,并将所提取的空间属性与参考空间属性进行比较,以确定定制图形的对准。对准模块240或解码器模块250然后可以根据对准(例如旋转或去偏斜)生成图像的变换图像,如标注418所示。在生成变换图像之后,解码器模块250解码被编码在变换图像的一部分中的数据,如标注420所示。在标注420中,光学条形码406的点被变换成数据,该数据被示为对于点为一而对于非点为零,尽管这仅仅是说明性示例并且可以利用其它方案。以该方式,定制图案系统160将包括在光学条形码406中的定制图形用作一个或多个功能图案,诸如取景器图案或对准图案。

图5是示出用于利用定制功能图案的光学条形码(例如,图4的光学条形码406)的示例方法500的流程图。方法500的操作可以由定制图案系统160的组件执行,并且为了说明的目的如下所述。

在操作510处,通信模块210从用户设备接收图像的图像数据。例如,通信模块210从用户的智能电话的光学传感器(例如,相机传感器)接收图像数据。在各种实施例中,响应于用户启动的图像采集,由用户设备的光学传感器检测到图像数据的周期性监视,或其组合,来接收来自用户设备的图像数据。在一些实施例中,图像数据表示基本上实时地由用户设备采集的图像或视频(例如,从智能电话的相机传感器馈送的实况图像)。在其它实施例中,图像数据表示从过去的时间由用户设备或另一设备采集并存储在用户设备上的图像(例如,存储在用户设备上或从社交网络服务下载的静态图像或视频)。在图像数据包括视频图像数据的实施例中,定制图案系统160可以分析视频的各个帧或视频的多个帧的组合以检测和解码光学条形码。图像数据的一部分可以包括表示利用定制图形、定制符号或针对特定功能图案(例如,取景器图案或对准图案)的特定图形的光学条形码的数据。

在一些情况下,图像数据包括无关或不相关的数据以及与光学条形码有关的数据(例如,光学条形码的图像包括与解码光学条形码无关的背景)。在具体示例中,用户设备的光学传感器采集包括特定光学条形码的电影海报的图像。电影海报的图像可以包括特定的光学条形码以及围绕特定光学条形码的电影海报的不相关部分或背景。

在操作520处,取景器模块230从图像数据提取图像的候选形状特征或候选特质。候选形状特征可以指示定制图形的标识(例如,包括指示定制图形的某些特点或特质)。例如,取景器模块230执行边缘检测技术或另一图像处理技术来识别形状特征,诸如图像的颜色或阴影的轮廓线或局部浓度。在一些实施例中,取景器模块230从图像数据提取多个候选形状特征。在一些实施例中,候选形状特征包括各种形状特征数据,诸如候选形状特征相对于图像的边界的位置,候选形状特征相对于图像的亮度,候选形状特征的平均颜色等。

在另外的示例实施例中,取景器模块230生成图像的低分辨率副本。取景器模块230可以对图像的低分辨率副本执行各种图像处理,诸如模糊(例如,高斯模糊功能或另一模糊功能)和阈值化(thresholding),以生成修改的低分辨率图像。阈值化图像处理可以包括将图像的低分辨率副本的较浅颜色(例如,由阈值或阈值范围确定)调节为白色并且将图像的低分辨率副本的较暗颜色(例如,由阈值或阈值范围确定)调节为黑色。取景器模块230然后可以从修改的低分辨率图像提取候选形状特征,以改进对图像中的定制图形的检测,并提高识别图像中的定制图形的计算效率。

在另外的示例实施例中,取景器模块230生成图像的一部分的高分辨率副本。例如,取景器模块230可以生成与所提取的候选形状特征对应的图像的特定部分的高分辨率副本。如下所述,取景器模块230、对准模块240或解码器模块250可以使用高分辨率副本进行后续分析,以改进检测、对准和解码结果。

在操作530处,取景器模块230确定候选形状特征满足一个或多个形状特征标准或规则。例如,如果特定形状特征是轮廓线,则取景器模块230可以确定轮廓线是否是包围图像的一部分的封闭线。与一些实施例一致,形状特征规则滤除不相关或无关的特征。特定形状特征规则可以针对或用于各种目的。例如,特定的形状特征规则可用于滤除具有定制图形的低概率的候选形状特征。在该示例中,特定形状特征规则可以特定于定制图形。在其它示例中,一些形状特征规则可用于过滤掉不可能与光学条形码相关联的候选形状特征。在这些示例中,形状特征规则不一定特定于定制图形。

在操作540处,响应于候选形状特征满足形状特征规则,取景器模块230通过将候选形状特征与定制图形或定制符号的参考形状特征进行比较来识别图像中的定制图形或定制符号。例如,取景器模块230可以将候选形状特征的面积或尺寸与参考形状特征的参考面积或尺寸进行比较。在该示例中,取景器模块230基于候选形状特征和参考形状特征之间的匹配或近似匹配(例如,阈值之上的百分比匹配)来识别定制图形。以该方式,取景器模块230使用定制图形或定制图形的至少一部分作为取景器图案来识别图像的一部分内的光学条形码的存在。

在一些实施例中,取景器模块230从图像数据提取多个候选形状特征。在这些实施例中,取景器模块230对每一个候选形状特征进行评分,并根据相应的分数将多个候选形状特征排名。例如,取景器模块230基于相应候选形状特征满足的形状特征规则的计数或加权计数来确定相应候选形状特征的形状特征分数。取景器模块230可以循环访问从最高分数的候选形状特征开始排名的候选形状特征,并执行进一步的分析(例如,将候选形状特征与参考形状特征进行比较),以确定候选形状特征是定制图形。

在一些实施例中,参考形状特征是预定的,并且在其它实施例中,参考形状特征是动态确定的。例如,取景器模块230可以通过分析定制图形的参考图像来动态地确定参考形状特征。例如,取景器模块230可以执行与用于分析参考图像上的图像数据的分析技术类似的分析技术,诸如为参考图像的特定特征或特质计算参考面积值。在这些实施例中,取景器模块230动态地确定参考形状特征允许动态使用特定定制图形作为光学条形码中的功能图案。例如,当执行方法500时,可以向定制图案系统160提供(例如,在通信模块210处接收)表示参考图像的数据或表示参考特征的数据。以该方式,在执行方法500之前,不一定必须固定定制功能图案。

在另外的示例实施例中,取景器模块230在图像的图像数据中搜索多个定制图形(例如,其中利用多个版本或不同的定制图形作为功能图案)。在具体示例中,定制图形可以包括第一公司徽标,并且公司可以将徽标改为第二公司徽标。定制图案系统160可以被操作为将第一公司徽标用作取景器图案,并且将第二公司徽标用作取景器图案,并且当执行方法500时,定制图案系统160可以搜索每一个徽标。

在另外的示例实施例中,取景器模块230结合从图像数据提取的其它候选形状特征来识别图像中的定制图形。例如,取景器模块230可以搜索定制图形(例如,徽标)和围绕定制图形的外框(例如,外框325)二者。在这些实施例中,取景器模块230识别定制图形和从图像数据提取的一个或多个附加候选形状特征的组合。

在操作550处,响应于识别定制图形,对准模块240从图像数据提取图像中的定制图形或定制符号的空间属性、几何属性或空间性质(property)。例如,对准模块240从图像数据提取定制图形的位置、缩放或取向。在各种示例实施例中,空间属性指示图像中定制图形的取向。对准模块240或解码器模块250可以使用空间属性来帮助解码光学条形码。

在另外的实施例中,对准模块240提取从图像的图像数据提取的另一候选形状特征的空间属性、几何属性或空间性质。例如,对准模块240提取围绕定制图形的外框(例如,图3a的外框325)和编码数据的标记的空间属性。将要注意的是,在以下的整个讨论中,对准模块240和解码器模块250可以以与定制图形的空间属性相同或相似的方式使用外框的空间属性来确定用于帮助解码的光学条形码的对准。例如,对准模块240或解码器模块250可以使用外框的空间属性来生成用于解码被编码在图像中的数据的图像的变换图像。

在操作560处,解码器模块250使用图像中的定制图形的空间属性从图像数据解码被编码在图像的一部分中的数据。例如,解码器模块250可以使用空间属性(例如,去偏斜、旋转、缩放或另一类型的图像变换)来执行图像变换,以改善被编码在图像的一部分中的数据的可检测性或可读性。在示例实施例中,解码器模块250通过检测指示被包括在图像中的数据的标记(例如,点、正方形或另一标记)来解码被编码在图像的一部分中的数据。以该方式,解码器模块250使用定制图形或定制图形的至少一部分作为对准图案,以帮助解码光学条形码。在各种实施例中,解码器模块250利用reed-solomon纠错方案来解码被编码在图像中的数据。reed-solomon纠错方案允许在被编码在图像中的一定百分比的数据被破坏、损坏或不正确解码的情况下,对被编码在图像中的数据的成功解码。在另外的实施例中,解码器模块250使用小的校验码来验证从图像数据解码的值是包括实际数据而不仅仅是随机数据(例如,随机比特)的值。

在另外的示例实施例中,解码器模块250拒绝解码数据的某些结果(例如,从已知由定制图案系统160的管理员指定为无效的图像数据解码的数据的结果)。例如,即使解码数据通过其它数据完整性测试(例如,纠错和校验),解码器模块250也可以拒绝包括全零、全一或另一指定结果的解码数据。例如,当定制图案系统160扫描没有指示数据的任何相关联的标记的定制图形时,这可发生(例如,在定制图形是徽标的情况下,简单地扫描徽标可能在解码的数据中产生全零并且可能被解码器模块250拒绝)。在具体示例中,如图19所示,扫描与社交消息应用程序1908相关联的图标可能产生全零的数据,并且解码器模块250将拒绝扫描。

图6是示出用于使用定制功能图案来识别光学条形码(例如,光学条形码406)的另外的示例操作的流程图。在操作530处,取景器模块230确定候选形状特征满足形状特征规则。在一些实施例中,操作530包括图6的操作。

在操作610处,取景器模块230确定候选形状特征包括来自图像数据的封闭线。也就是说,形状特征规则包括路径规则,并且取景器模块230确定候选形状特征满足路径规则。取景器模块230可以利用各种技术来确定候选形状特征满足路径规则。

在操作630处,取景器模块230通过确定候选形状特征通过具有从特定点开始并返回到相同特定点的路径来包围图像的一部分来确定候选形状特征是否是封闭线。在示例实施例中,如果候选形状特征不满足路径规则(在图6中由“否”指示),则不执行对候选形状特征的进一步分析,并且取景器模块230分析另一候选形状特征或不执行进一步操作。可替代地,在操作640处,如果取景器模块230确定候选形状特征满足路径规则(在图6中由“是”指示),则执行方法500的后续操作。

为了说明图6的构思,图7是示出使用定制功能图案来识别光学条形码的示例的图示700。在图示700中,图像710是从用户设备接收或访问的示例图像。图像720是描绘示例候选形状特征730的示例图像。例如,取景器模块230对图像710执行边缘检测图像处理以导出图像720。取景器模块230从图像720识别候选形状特征730。

标注740示出了候选形状特征730的特定候选形状特征。标注740示出了特定候选形状特征的轮廓线750(示为虚线),路径760,和特定候选形状特征的点770。在标注740中,如果从点770处开始的路径760可以跟随轮廓线750并返回到点770,则取景器模块230确定满足路径规则。在图示700中,在标注740中示出的特定候选形状特征确实满足路径规则,因为路径760可以跟随轮廓线750并返回到点770。

图8是示出用于使用定制功能图案来识别光学条形码的另外的示例操作的流程图。在操作530处,取景器模块230确定候选形状特征满足形状特征规则。在一些实施例中,操作530包括图8的操作。

在操作810处,取景器模块230计算候选形状特征的面积值或尺寸的近似值。例如,取景器模块230使用诸如多边形(例如,正方形、矩形或四边形)或非多边形形状(例如,椭圆形)的代理(proxy)形状来粗略估计候选形状特征的形状。取景器模块230将代理形状拟合或近似拟合于候选形状特征的外边缘或外周边(perimeter),使得代理形状代表候选形状特征的面积。随后,取景器模块230计算代理形状的面积值以确定候选形状特征的面积值或尺寸近似值。在一些实施例中,取景器模块230利用这种技术(例如,多边形面积近似)来避免在候选形状特征可能形状复杂的情况下候选形状特征的计算上昂贵的面积计算(例如,针对非均匀或不规则形状特征的面积计算通常在计算上更昂贵)。在一些实施例中,可以利用诸如基于像素的计数的其它技术来确定面积值。

在操作820处,取景器模块230确定候选形状特征的面积分数或尺寸分数。取景器模块230通过将候选形状特征的面积值与参考面积值进行比较来确定面积分数。在一些实施例中,参考面积值包括拟合于定制图形的参考图像的对应代理形状的面积值(例如,从前视图的角度来看,拟合于幽灵徽标的代理形状的面积值)。在其它实施例中,参考面积值包括定制图形的面积值(例如,幽灵徽标的面积值)。取景器模块230例如通过确定候选形状特征面积值和参考面积值之间的匹配百分比来计算面积分数。取景器模块230可以利用各种各样的其它方案和技术来计算面积分数。

在操作830处,取景器模块230确定面积分数是否超过阈值。阈值可以是预定义的或动态确定(例如,基于扫描的滚动历史平均值统计确定)。

在操作840处,基于面积分数超过阈值(由图8中的“是”指示),取景器模块230确定候选形状特征满足面积规则并且进行到后续操作。在另一示例实施例中,取景器模块230将面积分数与面积范围进行比较以满足面积规则(例如,大于特定值和小于特定值)。根据示例实施例,如果面积分数不超过阈值(在图8中由“否”指示),则取景器模块230分析另一候选形状特征或不执行进一步操作。在一些示例实施例中,取景器模块230使用候选形状特征是否满足形状特征规则的确定作为过滤器(例如,去除或跳过不太可能是定制图形的候选形状特征)来识别将要在识别图像中的定制图形的过程中被进一步分析的候选形状特征。

为了进一步说明图8的构思,图9是示出使用定制功能图案来识别光学条形码的示例的图示900。在图示900中,图像902是从用户设备接收的示例图像。标注904示出了图像902的空间取向。在该示例中,图像902被描绘并从前面右侧的角度观察。图像902包括光学条形码906。在该示例中,光学条形码906将定制图形用作功能图案。

标注908示出了图像902的放大部分,其包括由取景器模块230分析以识别定制图形的候选形状特征。在标注908中,多边形910(例如,四边形)被示为拟合于候选形状特征的周边。面积值912是多边形910的面积。

标注914示出定制图形的参考图像。标注916示出参考图像的空间取向。在该示例中,从前视图的角度示出参考图像。多边形918被示为拟合于参考图像的周边。参考面积值920是多边形918的面积。虽然图9将多边形910和918示出为四边形,但是取景器模块230可以利用其它形状,诸如正方形或跟随或追踪候选形状特征的轮廓的形状(例如,跟随候选形状特征的轮廓点的n边多边形或平滑拟合的形状)。

取景器模块230将面积值912与参考面积值920进行比较,以确定候选形状特征满足面积规则。诸如图像902的音符之一的图像902的另一候选形状特征将不具有与参考面积值相似的面积值,并且因此不能满足面积规则。以该方式,取景器模块230可以快速地去除或跳过不太可能被识别为定制图形的某些候选形状特征。

图10是示出用于使用定制功能图案来解码光学条形码的另外示例操作的流程图。在操作540处,取景器模块230通过将候选形状特征与定制图形的参考形状特征进行比较来识别图像中的定制图形。在操作540之后,在一些示例性实施例中执行图10的操作。

在操作1010处,在区别性特征指示定制图形的对准的情况下,对准模块240从图像数据提取用于定制图形的区别性特征(例如,可用于确定定制图形的取向的定制图形的特定不对称性)。例如,区别性特征可以包括定制图形的区别性点、区别性曲线、特定不对称性、特定不均匀性或定制图形的另一特质。

在操作1020处,对准模块240通过将区别性特征与定制图形的参考区别性特征进行比较来确定图像中的定制图形的取向。例如,对准模块240将定制图形的提取的区别性特征映射到参考区别性特征,以确定区别性特征之间的空间差异。以该方式,对准模块240可以基于确定的空间差异来确定与定制图形的参考图像相比的定制图形的对准。

在操作1030处,对准模块240通过根据定制图形的取向来变换图像而生成变换的图像。例如,对准模块240可旋转、去偏斜、缩放或以其它方式在空间上变换图像,以允许对图像中的数据进行更准确的解码。

在操作1040处,解码器模块250使用图像中的定制图形的取向和位置来解码被编码在图像中的数据。例如,解码器模块250从变换的图像解码被编码在图像中的日期。在特定情况下,将图像变换为前视图,以增加表示被编码在图像中的数据的图像中标记的可见性和均匀性。

为了帮助理解图10的公开内容,图11是示出使用定制功能图案来解码光学条形码的示例的图示1100。在图示1100中,类似于如上所述的图9,图像1102是从用户设备接收的示例图像。在该示例中,图像1102被描绘并从前面右侧观察。图像1102包括光学条形码1106。在该示例中,光学条形码1106利用定制图形作为功能图案。

标注1108示出了图像1102的放大部分,其包括由对准模块240分析的候选形状特征。标注1110示出了标注1108的放大部分,其示出候选形状特征的区别性特征。

标注1112示出了定制图形的参考图像。标注1114示出了参考图像的空间取向。在该示例中,从前视图的角度示出参考图像。标注1116示出了标注1112的放大部分,其示出了参考图像的参考区别性特征。

对准模块240比较区别性特征和参考区别性特征以确定包括取向、缩放或位置的对准。例如,如果包括定制图形的图像是从前透视图示出,则图像中定制图形的区别性特征应与参考区别性特征匹配。对准模块240可以基于区别性特征和参考区别性特征之间的不匹配来确定透视变化。对准模块240使用不匹配来推断或确定图像的透视图或可由解码器模块250利用的图像的其它空间属性,以更准确地解码来自图像的数据。

图12a、图12b和图12c是示出用于帮助使用定制功能图案来解码光学条形码的各种图像变换的图。在示例实施例中,对准模块240或解码器模块250执行图像变换,诸如由示例光学条形码1200和1202之间的转换所示的旋转。在其它实施例中,对准模块240或解码器模块250执行去偏斜、缩放变换或另一种类型的图像变换。在另外的示例实施例中,对准模块240或解码器模块250执行其它图像变换,诸如由示例光学条形码1204和1206之间的转换所示的颜色反转。对准模块240或解码器模块250可执行未示出的其它图像变换,诸如图像锐化、降噪或其它图像处理。

图12c示出了确定定制图形的对准的技术的示例。示例光学条形码1208从零度稍微旋转。椭圆1210可以拟合于定制图形以确定诸如光学条形码1208的旋转值的对准。椭圆的长轴(majoraxis)1212提供从零度起的旋转值1214的指示(当然,短轴或另一个轴可以类似地用于确定旋转值)。对准模块240或解码器模块250可以执行图像变换以对旋转值1214进行调节,如示例光学条形码1216从原始取向1218旋转所示。以该方式,对准模块240或解码器模块250可以使用定制图形来确定被包括在图像中的光学条形码的对准,以帮助解码被编码在图像中的数据。

图13是示出用于使用定制功能图案来解码光学条形码的另外的示例操作的流程图。在操作1040处,解码器模块250从图像数据解码被编码在图像的一部分中的数据。在操作1040之后,在一些示例实施例中执行图13的操作。

在操作1310处,解码器模块250确定使用变换的图像来解码被编码在图像的一部分中的数据的失败。例如,如果从图像解码的数据被破坏、不完整或混乱,则解码器模块250确定解码数据的失败。在另一个实例中,被编码在图像中的数据的一部分可以用于数据验证。也就是说,已知或可确定的值可以被编码到数据中,使得如果从图像中解码该值,则该数据是有效的。解码器模块250可以利用各种其它方案和技术来确定解码被编码在图像的一部分中的数据的失败。

在操作1320处,对准模块240通过根据定制图形的不同取向来变换图像而生成另一变换图像。例如,对准模块240生成旋转180度的变换图像,并且解码器模块250第二次尝试对数据进行解码。对准模块240可以执行可以解决解码诸如90度旋转的失败的公共变换,或经常解决过去扫描中解码失败的另一变换。在一些实施例中,对准模块240执行图像的图像数据的另一分析,以确定在生成另一变换图像时要使用的另一对准。对准模块240可以通过将不同类型的过滤器(例如,取向、减色、亮度操纵等)应用到定制图形来执行其它类型的变换图像。

在操作1330处,解码器模块250使用另一变换图像解码被编码在图像的一部分中的数据。对准模块240和解码器模块250可以尝试任何数量的对准的迭代(例如,设定次数的尝试或无限数量的尝试)直到数据从图像成功地解码时结束。以该方式,定制图案系统160可以使用标记进行自对准。

为了进一步结合图13来解释讨论,图14是示出使用定制功能图案来解码光学条形码的示例的图示1400。示例光学条形码1410示出了具有空心圆的标记的位置。光学条形码1410的每一个空心圆是标记的位置。示例光学条形码1420示出了标记位置和标记之间的未对准。示例光学条形码1430示出了标记和标记位置之间的匹配对准。

现在转到图15和图16,尽管在此描述的用户界面(例如,图15、16和18)描绘了具体的示例用户界面和用户界面元素,但这些仅仅是非限制性示例,并且许多其它替代用户界面和用户界面元素可由呈现模块220生成并呈现给用户。应当注意,在此描述的显示器的替代呈现包括附加信息、图形、选项等;其它呈现包括较少的信息,或提供省略的(abridged)信息供用户方便使用。

图15是描绘用于识别光学条形码的示例用户界面1510的用户界面图示1500。在用户界面图示1500中,用户界面1510示出了从用户设备(例如,客户端设备110、用户设备414)的相机传感器采集的基本上实时的图像。用户界面1510可以包括图形和叠加或覆盖在下方显示的基本上实时图像上的用户界面元素。例如,用户界面元素1520是指示光学条形码的识别的方括号。用户界面1510可以向用户指示特定光学条形码的成功或不成功的扫描。

图16是描绘用于执行与光学条形码相关联的动作的示例用户界面1610的用户界面图示1600。在示例实施例中,用户界面1610显示在图15的用户界面1510之后(例如,在成功扫描之后,显示与扫描相关联的各种动作选项)。用户界面1610可以包括与检测特定光学条形码(诸如用户界面元素1620)相关联的各种动作选项。在一些实施例中,响应于检测和解码特定光学条形码,定制图案系统160自动执行特定动作。

在另外的示例实施例中,该动作专用于为使用定制功能图案(例如,快照码)的光学条形码提供扫描功能的软件。在一些实施例中,扫描光学条形码的软件可以在不与服务器通信的情况下执行某些专用动作。这是由于定制功能图案的专有的品牌本性,其不一定由其它第三方软件应用程序公开解码。快照码可以指定这种动作,因为看起来扫描品牌光学条形码的软件(例如,诸如应用程序的移动计算软件)与品牌光学条形码相关联。

图17是示出用于使用定制功能图案生成光学条形码的示例操作的流程图。方法1700的操作可以由定制图案系统160的组件执行,并且为了说明的目的如下所述。

在操作1710处,通信模块210接收生成机器可读图像(诸如使用定制功能图案的光学条形码)的请求。在一些实施例中,请求包括被编码在图像中的用户指定的数据。

在操作1720处,编码器模块270呈现编码用户指定数据的标记的机器可读布置。例如,标记可以包括以预定图案布置的点、正方形或其它标记。在示例实施例中,在布置中的特定位置处的标记的存在指示数据。

在操作1730处,编码器模块270通过关于被包括在机器可读图像中的定制图形的位置将机器可读的标记的布置定位在机器可读图像中来生成机器可读图像。例如,定制图形可以在光学条形码中居中或位于其它位置(例如,图3a和图3b的示例光学条形码)。

在操作1740处,通信模块210存储或发送机器可读图像。例如,通信模块210可以将机器可读图像存储在用户设备、服务器或(本地或远程存储的)另一个存储库上。在其它情况下,通信模块210向用户设备、服务器或一个或多个其它设备发送机器可读图像。

图18是描绘用于使用定制图形生成光学条形码1820的示例用户界面1810的用户界面图示1800。用户界面元件1830向用户提供用于生成、共享或保存机器可读图像的选项。在一些实施例中,用户界面图示1800包括被配置为接收编码到机器可读图像中的用户指定的数据(例如,社交网络服务会员标识符、网站地址或另一条信息)的用户界面。

图19示出了与一些实施例一致的执行移动操作系统(例如,iostm、androidtmphone或其它移动操作系统)的示例移动设备1900。在一个实施例中,移动设备1900包括可被操作为从用户1902接收触知数据的触摸屏。例如,用户1902可物理地触摸1904移动设备1900,并且响应于触摸1904,移动设备1900可以确定诸如触摸位置、触摸力或手势运动的触知数据。在各种示例实施例中,移动设备1900显示可被操作为启动应用程序或以其它方式管理移动设备1900的各个方面的主屏幕1906(例如,在iostm上的桌面(springboard))。在一些示例实施例中,主屏幕1906提供诸如电池寿命、连接或其它硬件状态的状态信息。用户1902可以通过触摸相应用户界面元素所占据的面积来激活用户界面元素。以该方式,用户1902与移动设备1900的应用程序交互。例如,触摸由被包括在主屏幕1906中的特定图标占据的面积导致与特定图标对应的应用程序的启动。

可以在移动设备1900上执行许多种类的应用程序(同样称为“应用软件”),诸如本机应用程序(例如,以objective-c、swift或在iostm上运行的另一种合适的语言编程的应用程序,或在androidtm上运行的以java编程的应用程序)、移动web应用程序(例如,以超文本标记语言-5(html5)编写的应用程序)或混合应用程序(例如,启动html5会话的本机shell应用程序)。例如,移动设备1900包括消息应用软件、音频记录应用软件、相机应用软件、书籍阅读器应用软件、媒体应用软件、健身应用软件、文件管理应用软件、位置应用软件、浏览器应用软件、设置应用软件、联系人应用软件、电话呼叫应用软件或其它应用软件(例如游戏应用软件、社交网络应用软件、生物特征监视应用软件)。在另一示例中,移动设备1900包括诸如的社交消息应用程序1908,与一些实施例一致,该允许用户交换包括媒体内容的短暂消息。在该示例中,社交消息应用程序1908可以并入在此描述的实施例的各方面。

某些实施例在此被描述为包括逻辑或多个组件、模块或机构。模块可以构成软件模块(例如,在机器可读介质上实现的代码)或硬件模块。“硬件模块”是能够执行某些操作并且可以以某种物理方式配置或布置的有形单元。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件模块(例如,处理器或一组处理器)可以由软件(例如,应用程序或应用程序部分)配置为操作以执行如在此所述的某些操作的硬件模块。

在一些实施例中,硬件模块可以机械地、电子地或以其任何合适的组合来实现。例如,硬件模块可以包括被永久配置为执行某些操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,诸如现场可编程门阵列(fpga)或特定用途集成电路(asic)。硬件模块同样可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件模块可以包括由通用处理器或其它可编程处理器执行的软件。一旦由这种软件配置,硬件模块就成为唯一定制为执行配置的功能的特定机器(或机器的特定组件),并且不再是通用处理器。应当理解,在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件模块的决定可以由成本和时间考虑来驱动。

因此,短语“硬件模块”应被理解为包括有形实体,即物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)为以某些方式操作或执行在此所述的某些操作的实体。如在此所使用的,“硬件实现的模块”是指硬件模块。考虑到其中硬件模块被临时配置(例如,编程)的实施例,硬件模块中的每一个硬件模块不需要在任何一个时刻被配置或实例化。例如,在硬件模块包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为分别不同的专用处理器(例如,包括不同的硬件模块)。因此,软件相应地配置特定的一个处理器或多个处理器,例如,在一个时刻构成特定的硬件模块,并且在不同的时刻构成不同的硬件模块。

硬件模块可以向其它硬件模块提供信息和从其它硬件模块接收信息。因此,所描述的硬件模块可以被认为是通信耦接的。在同时存在多个硬件模块的情况下,可以通过在两个或更多个硬件模块之间的信号传输(例如,通过适当的电路和总线)实现通信。在其中在不同时间配置或实例化多个硬件模块的实施例中,可以例如通过存储和检索多个硬件模块能够访问的存储器结构中的信息来实现这种硬件模块之间的通信。例如,一个硬件模块可以执行操作并将该操作的输出存储在与其通信耦接的存储器设备中。然后,另外的硬件模块可以在稍后的时间访问存储器设备以检索和处理存储的输出。硬件模块同样可以启动与输入或输出设备的通信,并且可以对资源(例如,信息的集合)进行操作。

由临时配置(例如通过软件)或永久地配置为执行相关操作的一个或多个处理器来至少部分地执行在此描述的示例方法的各种操作。无论是临时还是永久配置,这种处理器构成操作以执行在此所述的一个或多个操作或功能的处理器实现的模块。如在此所使用的,“处理器实现的模块”是指使用一个或多个处理器实现的硬件模块。

类似地,在此描述的方法可以是至少部分地处理器实现的,其中特定的一个处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或多个处理器或处理器实现的模块来执行。此外,一个或多个处理器同样可以操作以支持在“云计算”环境中或作为“软件即服务”(saas)的相关操作的性能。例如,可以由一组计算机(作为包括处理器的机器的示例)来执行操作中的至少一些操作,其中这些操作可经由网络(例如,因特网)以及经由一个或多个适当的接口(例如,应用程序接口(api))访问。

某些操作的性能可以被分布在处理器之间,不仅驻留在单个机器内,而且横跨多个机器部署。在一些示例实施例中,处理器或处理器实现的模块可以位于单个地理位置中(例如,在家庭环境、办公环境或服务器场内)。在其它示例实施例中,处理器或处理器实现的模块横跨多个地理位置分布。

结合上述附图描述的模块、方法、应用程序等在一些实施例中在机器和相关联的软件架构的上下文中实现。下面的部分描述了适用于所公开的实施例的代表性软件架构和机器(例如,硬件)架构。

软件架构与硬件架构一起使用以创建出于特定目的定制的设备和机器。例如,与特定软件架构相结合的特定硬件架构将创建移动设备,诸如移动电话、平板设备等。稍微不同的硬件和软件架构可能产生用于“物联网”的智能设备。而另一组合产生在云计算架构内使用的服务器计算机。并不是这种软件和硬件架构的所有组合都在这里呈现,因为本领域技术人员可以容易地理解如何在不同于在此所包含的公开的背景下实现本发明。

图20是示出代表性软件架构2002的框图2000,其可以结合在此所描述的各种硬件架构来使用。图20仅仅是软件架构的非限制性示例,并且应当理解,可以实现许多其它架构以帮助在此所描述的功能。软件架构2002可以在诸如图21的机器2100的硬件上执行,除了其它之外,该机器2100包括处理器2110、存储器/存储装置2130和i/o组件2150。代表性硬件层2004被示出并且可以表示例如图21的机器2100。代表性硬件层2004包括具有相关联的可执行指令2008的一个或多个处理单元2006。可执行指令2008表示软件架构2002的可执行指令,包括上述附图和描述中的方法、模块等的实施方式。硬件层2004同样包括同样具有可执行指令2008的存储器和存储模块2010。硬件层2004同样可以包括由2012所指示的其它硬件,该2012表示硬件层2004的任何其它硬件,诸如作为机器2100的一部分示出的其它硬件。

在图20的示例架构中,软件2002可以被概念化为每一层提供特定功能的一堆层。例如,软件2002可以包括诸如操作系统2014、库2016、框架/中间件2018、应用程序2020和表示层2022的层。可操作地,应用程序2020或层内的其它组件可以通过软件堆栈调用应用程序编程接口(api)调用2024,并且响应于api调用2024接收示出为消息2026的响应、返回值等。所示的层本质上是代表性的,并且并不是所有的软件架构都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件层2018,而其它可以提供这种层。其它软件架构可以包括附加层或不同层。

操作系统2014可以管理硬件资源并提供公共服务。操作系统2014可以包括例如内核2028、服务2030和驱动器2032。内核2028可以充当硬件和其它软件层之间的抽象层。例如,内核2028可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全设置等。服务2030可以为其它软件层提供其它公共服务。驱动器2032可以负责控制底层硬件或与底层硬件进行接口连接。例如,驱动器2032可以包括显示驱动器、相机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等,这取决于硬件配置。在示例实施例中,操作系统2014包括成像服务2033,其可以提供诸如硬件加速图像处理的图像处理服务或诸如对光学传感器或光学传感器数据的低级访问的图像采集服务。

库2016可以提供可由应用程序2020或其它组件或层使用的公共基础设施。库2016通常提供允许其它软件模块以比与底层操作系统2014功能(例如,内核2028、服务2030或驱动器2032)直接接口连接更简单的方式执行任务的功能。库2016可以包括系统2034库(例如,c标准库),其可以提供诸如存储器分配功能、字符串操作功能、数学功能等的功能。此外,库2016可以包括诸如媒体库(例如,支持诸如mpreg4、h.264、mp3、aac、amr、jpg或png的各种媒体格式的呈现和操纵(manipulation)的库)、图形库(例如,可用于在显示器上的图形内容中呈现2d和3d的opengl框架)、数据库库(例如,可提供各种关系数据库功能的sqlite)、web库(例如,可提供web浏览功能的webkit)等的api库2036。库2016同样可以包括各种各样的其它库2038,以向应用程序2020和其它软件组件/模块提供许多其它api。在示例实施例中,库2016包括提供图像处理或图像采集功能的成像库2039,该图像处理或图像采集功能可由定制图案系统160使用。

框架2018(有时同样称为中间件)可以提供可由应用程序2020或其它软件组件/模块使用的更高级别的公共基础设施。例如,框架2018可以提供各种图形用户界面(gui)功能、高级资源管理、高级位置服务等。框架2018可以提供可以由应用程序2020或其它软件组件/模块使用的广泛的其它api,其中的一些可能特定于特定操作系统或平台。在示例实施例中,框架2018包括图像处理框架2022和图像采集框架2023。图像处理框架2022可以为可以在定制图案系统160的各个方面使用的图像处理功能提供高级支持。类似地,图像采集框架2023可以为采集图像以及与光学传感器进行接口连接提供高级支持。

应用程序2020包括内置应用程序2040或第三方应用程序2042。代表性的内置应用程序2040的示例可以包括但不限于联系人应用程序、浏览器应用程序、书籍阅读器应用程序、位置应用程序、媒体应用程序、消息收发应用程序或游戏应用程序。第三方应用程序2042可以包括任何内置应用程序以及各种各样的其它应用程序。在具体示例中,第三方应用程序2042(例如,由除了特定平台的供应商之外的实体使用androidtm或iostm软件开发工具包(sdk)开发的应用程序)可以是在诸如iostm、androidtmphone或其它移动操作系统的移动操作系统上运行的移动软件。在该示例中,第三方应用程序2042可以调用由诸如操作系统2014的移动操作系统提供的api调用2024以帮助在此所描述的功能。在示例实施例中,应用程序220包括消息收发应用程序2043,该消息收发应用程序2043包括作为应用程序的一部分的定制图案系统160。在另一个实施例中,应用程序220包括独立应用程序2045,该独立应用程序2045包括定制图案系统160。

应用程序2020可以利用内置的操作系统功能(例如,内核2028、服务2030或驱动器2032)、库(例如,系统2034、api2036和其它库2038)、框架/中间件2018来创建与系统的用户交互的用户接口。可替代地或另外,在一些系统中,与用户的交互可以通过诸如表示层2044的表示层发生。在这些系统中,应用程序/模块“逻辑”可以与和用户交互的应用程序/模块的各方面分离。

一些软件架构利用虚拟机。在图20的示例中,这由虚拟机2048示出。虚拟机创建软件环境,其中应用程序/模块可以像在硬件机器(例如,诸如图21的机器)上执行一样执行。虚拟机由主机操作系统(图21中的操作系统2014)托管,并且通常(虽然并不总是)具有虚拟机监视器2046,该虚拟机监视器2046管理虚拟机的操作以及与主机操作系统(即操作系统2014)进行接口连接。软件架构在诸如操作系统2050、库2052、框架/中间件2054、应用程序2056或表示层2058的虚拟机内执行。在虚拟机2048内执行的这些软件架构的层可以与先前描述的对应的层相同或者可以是不同的。

图21是示出根据一些示例实施例的机器2100的组件的框图,其能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行在此所讨论的任何一种或多种方法论。具体地,图21示出了以计算机系统的示例形式的机器2100的图示表示,在该计算机系统内用于使机器2100执行在此讨论的任何一种或多种方法论的指令2116(例如,软件、程序、应用程序、小应用程序(applet)、应用软件或其它可执行代码)可以被执行。例如,该指令可使机器执行图5、6、8、10、13和17的流程图。另外或可替代地,指令可以实现图2的通信模块210、呈现模块220、取景器模块230、对准模块240、解码器模块250、动作模块260,或编码器模块270等。该指令将通用的非编程机器变换成被编程为以所描述的方式执行所描述和示出的功能的特定机器。在替代实施例中,机器2100作为独立设备操作,或者可以耦接(例如,联网)到其它机器。在联网部署中,机器2100可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力进行操作,或者作为点对点(或分布式)网络环境中的对等机器操作。机器2100可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家电),其它智能设备、网络设备、网络路由器、网络交换机、网络桥接器或能够执行指令2116的任何机器,该指令2116顺序地或以其它方式指定机器2100要采取的动作。此外,虽然仅示出了单个机器2100,但是术语“机器”同样应被视为包括单独或共同执行指令2116以执行在此所讨论的任何一种或多种方法论的机器2100的集合。

机器2100可以包括可被配置为诸如经由总线2102彼此通信的处理器2110、存储器/存储装置2130和i/o组件2150。在示例实施例中,处理器2110(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、特定用途集成电路(asic)、射频集成电路(rfic)、另一处理器或其任何合适的组合)可以包括例如可执行指令2116的处理器2112和处理器2114。术语“处理器”旨在包括多核处理器,该多核处理器可以包括可同时执行指令的两个或更多个独立处理器(有时称为“核”)。尽管图21示出了多个处理器,但是机器2100可以包括具有单核的单处理器,具有多核的单处理器(例如,多核处理器),具有单核的多处理器,具有多核的多处理器或其任何组合。

存储器/存储装置2130可以包括存储器2132(诸如主存储器或其它存储器存储装置)和存储单元2136,二者可以经由总线2102访问处理器2110。存储单元2136和存储器2132存储体现在此所述的任何一种或多种方法论或功能的指令2116。指令2116同样可以在机器2100对其执行的期间完全或部分地驻留在存储器2132内、存储单元2136内、处理器2110的至少一个处理器2110内(例如,高速缓冲存储器的处理器内)或其任何适当的组合中。因此,存储器2132、存储单元2136和处理器2110的存储器是机器可读介质的示例。

如在此所使用的,术语“机器可读介质”是指能够临时或永久地存储指令和数据的设备,并且可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪速存储器、光学介质、磁性介质、高速缓冲存储器、其它类型的存储装置(例如,可擦除可编程只读存储器(eeprom))或其任何合适的组合。术语“机器可读介质”应该被视为包括能够存储指令2116的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”同样应当被视为包括能够存储由机器(例如机器2100)执行的指令(例如,指令2116)的任何介质或多个介质的组合,使得当由机器2100的一个或多个处理器(例如,处理器2110)执行指令时使机器2100执行在此所描述的任何一种或多种方法论。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。

i/o组件2150可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等的各种各样的组件。在特定机器中包括的特定i/o组件2150将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入设备或其它这种输入机构,而无头服务器机器将可能不包括这种触摸输入设备。应当理解,i/o组件2150可以包括图21中未示出的许多其它组件。根据功能仅将i/o组件2150分组用于简化以下讨论,并且分组决不是限制性的。在各种示例实施例中,i/o组件2150可以包括输出组件2152和输入组件2154。输出组件2152可以包括视觉组件(例如,诸如等离子体显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt)的显示器)、声学组件(例如扬声器)、触觉组件(例如振动电动机、电阻机构)、其它信号发生器等。输入组件2154可以包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电(photo-optical)键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指向仪器)、触知输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏或其它触知输入组件)、音频输入组件(例如,例如麦克风)等。

在另外的示例实施例中,i/o组件2150可以包括在多个其它组件中的生物特征组件2156、运动组件2158、环境组件2160或位置组件2162。例如,生物特征组件2156可以包括检测表达(例如手的表达、面部表情、声音表达、身体姿态或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件2158可以包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件2160可以包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,机器嗅觉检测传感器、为了安全用于检测有害气体浓度或测量大气中的污染物的气体检测传感器)或可能提供与周围物理环境对应的指示、测量或信号的其它组件。位置组件2162可以包括位置传感器组件(例如,全球定位系统(gps)接收器组件)、高度传感器组件(例如,检测空气压力的高度计或气压计,高度可以从该空气压力得到)、取向传感器组件(例如,磁力计)等。

可以使用各种各样的技术来实现通信。i/o组件2150可以包括通信组件2164,该通信组件2164可被操作为分别经由耦接(coupling)2182和耦接2172将机器2100耦接到网络2180或设备2170。例如,通信组件2164包括网络接口组件或与网络2180接口的其它合适的设备。在另外的示例中,通信组件2164包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如,低能耗)、组件,和经由其它形态提供通信的其它通信组件。设备2170可以是另一种机器或各种各样的外围设备(例如,经由通用串行总线(usb)耦接的外围设备)中的任何一种。

此外,通信组件2164可以检测标识符(identifier)或包括可被操作为检测标识符的组件。例如,通信组件2164可以包括射频识别(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,光学传感器,其检测诸如通用产品代码(upc)条形码的一维条形码;诸如快速响应(qr)码、阿兹特克代码、数据矩阵、数据图、maxicode、pdf417、超代码、统一商业代码缩减空间符号(uccrss)-2d条形码的多维条形码,和其它光学代码)、声学检测组件(例如,用于识别标记的音频信号的麦克风)或其任何合适的组合。此外,可以经由通信组件2164得到各种信息,诸如经由因特网协议(ip)地理定位的定位、经由信号三角测量的定位、经由检测可以指示特定位置的或nfc信标信号的定位等。

在各种示例实施例中,网络2180的一个或多个部分可以是自组织网络、内联网、外部网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、因特网、因特网的一部分、公共交换电话网(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一类型的网络,或两个或更多个这种网络的组合。例如,网络2180或网络2180的一部分可以包括无线或蜂窝网络,并且耦接2182可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接,或其它类型的蜂窝或无线耦接。在该示例中,耦接2182可以实现任何各种类型的数据传输技术,诸如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线业务(gprs)技术、增强型数据速率gsm演进(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动通信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准,由各种标准设定组织定义的其它标准,其它远程协议或其它数据传输技术。

可以经由网络接口设备(例如,被包括在通信组件2164中的网络接口组件)使用传输介质通过网络2180发送或接收指令2116,并且利用多个公知传输协议中的任何一个协议(例如,超文本传输协议(http))。类似地,可以经由耦接2172使用传输介质(例如,点对点耦接)向设备2170发送或接收指令2116。术语“传输介质”应被视为包括能够存储、编码或携带用于由机器2100执行的指令2116的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以帮助这种软件的通信。传输介质是机器可读介质的实施例。

以下编号的示例是实施例。

1.一种系统,包括:

通信模块,用于接收用于定制图形的参考图像的参考图像数据;

取景器模块,用于从参考图像数据确定定制图形的参考形状特征,参考形状特征指示定制图形的特性(identity);

存储器,其被配置为存储形状特征规则和定制图形的参考形状特征;以及

耦接到存储器的硬件处理器,硬件处理器包括通信模块,

通信模块进一步被配置为从客户端设备接收图像的图像数据;

取景器模块进一步被配置为:

从图像数据提取图像的候选形状特征;

确定候选形状特征满足形状特征规则;

响应于候选形状特征满足形状特征规则,基于候选形状特征和定制图形的参考形状特征的比较来识别图像中的定制图形;以及

响应于取景器模块识别定制图形,解码器模块被配置为通过检测指示被包括在图像中的数据的标记来从图像数据解码被编码在图像的一部分中的数据。

2.根据示例1所述的系统,其中取景器模块进一步被配置为:

从图像数据计算候选形状特征的面积值,结合另一候选形状特征计算面积值以缩放面积值;

通过将面积值与定制图形的参考面积值进行比较来确定候选形状特征的面积分数;以及

基于面积分数超过阈值确定候选形状特征满足面积规则,其中形状特征规则包括面积规则。

3.一种计算机实现的方法,包括:

接收用于定制符号的参考图像的参考图像数据;

从参考图像数据确定参考图像的参考形状特征,参考形状特征指示定制符号的特性;

从用户设备接收图像的图像数据;

从图像数据提取图像的候选形状特征;

确定候选形状特征满足形状特征标准;

响应于候选形状特征满足形状特征标准,通过将候选形状特征与定制符号的参考形状特征进行比较来识别图像中的定制符号;

响应于识别定制符号,从图像数据提取图像中的定制符号的几何属性;以及

使用图像中的定制符号的几何属性从图像数据解码被编码在图像的一部分中的数据。

4.根据示例3所述的方法,进一步包括:

从图像数据计算候选形状特征的尺寸近似值,结合另一候选形状特征来计算该尺寸近似值以缩放尺寸近似值;

通过将尺寸近似值与定制符号的参考尺寸进行比较来确定候选形状特征的尺寸分数;以及

基于尺寸分数超过阈值确定候选形状特征满足尺寸标准,其中形状特征标准包括尺寸标准。

5.根据示例3或示例4所述的方法,进一步包括:

从图像数据确定候选形状特征包括封闭线,其中封闭线通过具有从特定点开始并返回到特定点的路径来包围图像的一部分;以及

基于候选形状特征包括封闭线确定候选形状特征满足路径标准,其中形状特征标准包括路径标准。

6.根据示例3至5中任一项所述的方法,其中几何属性包括图像中的定制符号的位置、缩放或取向中的至少一个。

7.根据示例3至6中任一项所述的方法,进一步包括:

从图像数据提取定制符号的区别性特征,区别性特征指示定制符号的标识;

通过将区别性特征与定制符号的参考区别性特征进行比较来确定图像中的定制符号的取向;以及

使用图像中的定制符号的取向和位置来解码被编码在图像中的数据。

8.根据示例7所述的方法,进一步包括:

识别图像中的定制符号的区别性点,其中区别性特征包括区别性点;以及

通过将区别性点相对于图像中的定制符号的位置与定制符号的参考点的位置进行比较来确定图像中的定制符号的取向。

9.根据示例7或示例8所述的方法,进一步包括:通过根据定制符号的取向变换图像来生成变换图像;以及

使用变换图像解码被编码在图像的一部分中的数据。

10.根据权利要求9所述的方法,进一步包括:

确定使用变换图像解码被编码在图像的一部分中的数据的失败;

通过根据定制符号的不同取向变换图像来生成另一变换图像;以及

使用另一变换图像解码被编码在图像的一部分中的数据。

11.根据示例3至10中任一项所述的方法,其中使用相对于图像中的定制符号定位的多个标记对被编码在图像的一部分中的数据进行编码,其中多个标记的相应标记表示一段数据。

12.根据示例3至11中任一项所述的方法,其中定制符号包括徽标、图标或商标中的至少一个。

13.根据示例3至12中任一项所述的方法,进一步包括:

从用户设备的图像传感器实时地接收图像数据。

14.根据示例3至13中任一项所述的方法,其中定制符号的形状包括至少一个不对称性。

15.根据示例3至14中任一项所述的方法,进一步包括:

响应于解码被编码在图像中的数据,使用从图像解码的数据对用户设备执行动作。

16.根据示例15所述的方法,其中动作包括由从图像解码的数据指定的动作。

17.根据示例15或16所述的方法,其中执行动作而不与服务器通信。

18.根据示例15至17中任一项所述的方法,其中动作专用于解码被编码在图像的一部分中的数据的移动计算应用程序。

19.一种携带指令的机器可读介质,该指令在由机器的至少一个处理器执行时使得机器执行操作,该操作包括:

接收用于特定设计的参考图像的参考图像数据;

从参考图像数据确定参考图像的参考形状特征,参考形状特征指示特定设计的特性;

从客户端系统接收图像的图像数据;

从图像数据提取图像的候选形状特征;

确定候选形状特征满足形状特征规则;

响应于候选形状特征满足形状特征规则,通过将候选形状特征与特定设计的参考形状特征进行比较来识别图像中的特定设计;

响应于识别特定设计,从图像数据提取图像中的特定设计的空间性质;以及

使用图像中的特定设计的空间性质从图像数据解码被编码在图像的一部分中的数据。

20.根据示例19所述的机器可读介质,其中操作进一步包括:

从图像数据计算候选形状特征的尺寸近似值,结合另一候选形状特征来计算尺寸近似值以缩放尺寸近似值;

通过将尺寸近似值与特定设计的参考尺寸进行比较来确定用于候选形状特征的尺寸分数;以及

基于尺寸分数超过阈值确定候选形状特征满足尺寸规则,其中形状特征规则包括尺寸规则。

21.一种携带指令的机器可读介质,该指令在由计算机的至少一个处理器执行时使得计算机执行示例3至18中任一个的方法。

在本说明书中,多个实体(instance)可以实现被描述为单个实体的组件、操作或结构。虽然一个或多个方法的单独操作被示出和描述为单独的操作,但可以并行地执行单独操作中的一个或多个,并且不需要以所示的顺序执行操作。作为示例配置中的分离的组件存在的结构和功能可以被实现为组合的结构或组件。类似地,作为单个组件存在的结构和功能可以被实现为分离的组件。这些和其它变化、修改、添加和改进落入本文主题的范围内。

虽然已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。仅出于方便,本发明主题的这些实施例在此可以单独地或共同地通过术语“发明”来被提及,而不旨在将本申请的范围限于任何单个公开或发明构思,如果事实上公开了一个以上的公开或发明构思。

在此描述的实施例被足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以从其中使用和导出其它实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被认为是限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。

如在此所使用的,术语“或”可以以包含或排除的方式来解释。此外,可以为在此被描述为单个实体的资源、操作或结构提供多个实体。此外,各种资源、操作、模块、引擎和数据存储之间的边界是有些任意的,并且在特定说明性配置的上下文中示出了特定的操作。功能的其它分配可被设想,并且可以落入本公开的各种实施例的范围内。通常,作为示例配置中的分离的资源存在的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源存在的结构和功能可以被实现为分离的资源。这些和其它变化、修改、添加和改进落入由所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的而不是限制性的。

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