首页 / 专利库 / 电脑零配件 / 硬件 / 用于采用光学代码进行装置配对的系统和方法

用于采用光学代码进行装置配对的系统和方法

阅读:788发布:2024-02-10

专利汇可以提供用于采用光学代码进行装置配对的系统和方法专利检索,专利查询,专利分析的服务。并且描述了使用光学代码进行装置 配对 的 实施例 。一个实施例是可穿戴装置,其具有被配置为从第一主机装置采集包括第一光学代码的图像的图像 传感器 。可穿戴装置对第一光学代码进行解码,并且响应于第一光学代码,发起配对广告的广播。主机装置响应于配对广告显示第二光学代码,并且可穿戴装置采集并处理第二光学代码以确定主机配对广告代码。然后,可穿戴装置响应于第二光学代码发起包括主机配对广告代码的第二配对广告的广播。在各种实施例中,安全无线信道然后被建立并用于进一步的安全通信。,下面是用于采用光学代码进行装置配对的系统和方法专利的具体信息内容。

1.一种可穿戴装置,包括:
存储器
图像传感器,其被耦接到所述存储器并且被配置为从第一主机装置采集包括第一光学代码的图像;以及
一个或多个处理器,其被配置为:
解码所述第一光学代码;
响应于所述第一光学代码,发起配对广告的广播;
响应于所述配对广告,处理由所述图像传感器从所述第一主机装置采集的第二光学代码,所述第二光学代码包括主机配对广告代码;
解码所述第二光学代码,以确定所述主机配对广告代码;以及
响应于所述第二光学代码,发起包括所述主机配对广告代码的第二配对广告的广播。
2.根据权利要求1所述的装置,其中,所述一个或多个处理器进一步被配置为:
响应于所述第二配对广告,在所述第一主机装置和所述可穿戴装置之间建立通信信道;
经由所述通信信道将第一密钥从所述可穿戴装置传送到所述第一主机装置;
所述可穿戴装置处处理经由所述通信信道来自所述主机装置的第二密钥;以及使用所述第一密钥和所述第二密钥建立加密连接;其中,使用具有所述第一密钥和所述第二密钥的应用级椭圆曲线Diffie-Hellman(ECDH)交换来建立所述加密连接,以建立共享秘密。
3.根据权利要求2所述的装置,其中,所述一个或多个处理器进一步被配置为:
经由所述加密连接在所述可穿戴装置处基于所述共享秘密处理第一密钥哈希消息认证码(HMAC),其中,所述共享秘密包括Diffie-Hellman(DH)密钥;
验证所述第一HMAC;
响应于所述第一HMAC的验证,基于所述DHKey生成第二HMAC;
发起将所述第二HMAC从所述可穿戴装置到所述第一主机装置的传输;以及在被耦接到所述一个或多个处理器的存储器中,发起存储一组信号交换信息,以使得安全连接能够在没有光学代码配对的情况下重新建立。
4.根据权利要求1-3所述的可穿戴装置,其中,所述可穿戴装置包括一副眼镜,所述眼镜包括:
框架
左镜腿臂;
右镜腿臂;
所述一个或多个处理器;
存储器,其被耦接到所述一个或多个处理器;
无线收发机,其被耦接到所述一个或多个处理器;以及
所述图像传感器,其被耦接到所述一个或多个处理器。
5.根据权利要求1-3所述的装置,其中,使用以下执行所述第一光学代码的解码:
存储器,其被配置为存储形状特征规则和自定义图形的参考形状特征;以及所述一个或多个处理器,其被耦接到所述存储器,并且包括通信模取景器模块和解码器模块;
所述通信模块,其被配置为从客户端装置接收图像的图像数据;
所述取景器模块,其被配置为:
从所述图像数据中提取所述图像的候选形状特征;
确定所述候选形状特征满足所述形状特征规则;
响应于所述候选形状特征满足所述形状特征规则,基于所述候选形状特征与所述自定义图形的所述参考形状特征的比较,来识别所述图像中的自定义图形;以及所述解码器模块,其被配置为响应于所述取景器模块识别所述自定义图形,通过检测指示所述图像中包括的数据的标记,对来自所述图像数据的所述图像的部分中编码的数据进行解码;
其中,所述取景器模块进一步被配置为:
从所述图像数据计算所述候选形状特征的面积值;
通过将所述面积值与所述自定义图形的参考面积值进行比较,确定所述候选形状特征的面积分数;以及
基于所述面积分数超过阈值,确定所述候选形状特征满足面积规则,其中,所述形状特征规则包括所述面积规则。
6.一种计算机实现的方法,用于将可穿戴装置与第一主机装置配对,所述方法包括:
使用所述可穿戴装置的图像传感器从所述第一主机装置采集包括第一光学代码的图像;
使用被耦接到所述图像传感器的一个或多个处理器解码所述第一光学代码;
响应于所述第一光学代码,使用被耦接到所述一个或多个处理器的无线收发机来广播配对广告;
响应于所述配对广告并使用所述图像传感器,从所述第一主机装置采集第二光学代码,所述第二光学代码包括主机配对广告代码;
由所述一个或多个处理器解码所述第二光学代码,以确定所述主机配对广告代码;以及
响应于所述第二光学代码,广播包括所述主机配对广告代码的第二配对广告。
7.根据权利要求6所述的计算机实现的方法,其中,所述配对广告包括通用广告信号广播,使得多个本地主机装置接收并解码所述配对广告,其中所述多个本地主机装置中的每个本地主机装置显示所获得的主机配对广告代码。
8.根据权利要求6所述的计算机实现的方法,进一步包括:
响应于所述第二配对广告,在所述第一主机装置和所述可穿戴装置之间建立通信信道;
经由所述通信信道将第一密钥从所述可穿戴装置传送到所述第一主机装置;
经由所述通信信道在所述可穿戴装置处从所述主机装置接收第二密钥;以及使用所述第一密钥和所述第二密钥建立加密连接。
9.根据权利要求8所述的计算机实现的方法,其中,使用具有所述第一密钥和所述第二密钥的应用级椭圆曲线Diffie-Hellman(ECDH)交换来建立所述加密连接,以建立共享秘密。
10.根据权利要求8所述的计算机实现的方法,其中,使用所述第一主机装置和所述可穿戴装置之间的低功耗蓝牙连接来建立所述通信信道。
11.根据权利要求8所述的计算机实现的方法,进一步包括:
经由所述加密连接在所述可穿戴装置处基于所述共享秘密接收第一密钥哈希消息认证码(HMAC),其中,所述共享秘密包括Diffie-Hellman(DH)密钥;
使用所述可穿戴装置的所述一个或多个处理器验证所述第一HMAC;
响应于所述第一HMAC的验证,使用所述可穿戴装置的所述一个或多个处理器,基于所述DHKey生成第二HMAC;以及
将所述第二HMAC从所述可穿戴装置发送到所述第一主机装置;以及
在被耦接到所述一个或多个处理器的存储器中存储一组信号交换信息,以使得安全连接能够在没有光学代码配对的情况下重新建立。
12.根据权利要求11所述的计算机实现的方法,其中,所述可穿戴装置包括眼镜,所述眼镜包括:
框架;
左镜腿臂;
右镜腿臂;
所述一个或多个处理器;
所述存储器,其被耦接到所述一个或多个处理器;
所述无线收发机,其被耦接到所述一个或多个处理器;以及
所述图像传感器,其被耦接到所述一个或多个处理器。
13.根据权利要求6-12所述的方法,进一步包括通过以下方式解码所述第一光学代码:
从用户装置接收图像的图像数据;
从所述图像数据中提取所述图像的候选形状特征;
确定所述候选形状特征满足形状特征标准;
响应于所述候选形状特征满足所述形状特征标准,通过将所述候选形状特征与所述自定义符号的参考形状特征进行比较,来识别所述图像中的自定义符号;
响应于识别所述自定义符号,使用机器的硬件处理器从所述图像数据中提取所述图像中的自定义符号的几何属性;以及
使用所述图像中的所述自定义符号的所述几何属性,对来自所述图像数据的所述图像的部分中编码的数据进行解码。
14.根据权利要求13所述的方法,进一步包括:
从所述图像数据计算所述候选形状特征的尺寸近似;
通过将所述尺寸近似与所述自定义符号的参考尺寸进行比较来确定所述候选形状特征的尺寸分数;以及
基于所述尺寸分数超过阈值,确定所述候选形状特征满足尺寸标准,其中,所述形状特征标准包括所述尺寸标准。
15.根据权利要求13所述的方法,进一步包括:
从所述图像数据确定所述候选形状特征包括封闭线,其中,所述封闭线通过具有从特定点开始并返回到所述特定点的路径环绕所述图像的一部分;以及
基于所述候选形状特征包括所述封闭线,确定所述候选形状特征满足路径标准,其中,所述形状特征标准包括所述路径标准。
16.根据权利要求13所述的方法,其中,所述几何属性包括所述图像中的所述自定义符号的位置、比例或取向中的至少一个。
17.根据权利要求13所述的方法,进一步包括:
从所述图像数据中提取所述自定义符号的区别特征,所述区别特征指示所述自定义符号的标识;
通过将所述区别特征与所述自定义符号的参考区别特征进行比较,来确定所述图像中的所述自定义符号的取向;以及
使用所述图像中的所述自定义符号的所述取向和位置对所述图像中编码的所述数据进行解码。
18.一种主机装置,其被配置为与可穿戴装置配对,所述主机装置包括:
存储器;以及
一个或多个处理器,其被配置为:
生成并发起包括第一光学代码的图像的显示;
解码来自所述可穿戴装置的配对广告;
生成并显示第二光学代码,所述第二光学代码包括主机配对广告代码;以及解码包括所述主机配对广告代码的第二配对广告。
19.根据权利要求18所述的主机装置,进一步包括:
触摸屏显示器,其被耦接到所述一个或多个处理器,其中,所述触摸屏显示器被配置为:
接收第二用户输入以使用所述一个或多个处理器发起所述共享应用环境的主机部分的执行;
响应于所述第一输入之后的第二用户输入,显示所述第一光学代码;以及响应于所述第二配对广告而自动显示所述第二光学代码;
其中,所述一个或多个处理器被配置为仅在所述第一光学代码被显示在所述触摸屏显示器上时处理所述配对广告。
20.根据权利要求18所述的主机装置,其中,所述一个或多个处理器进一步被配置为:
在第一时间段期间发起所述第一光学代码的显示;
在不同于所述第一时间段的第二时间段期间发起所述第一光学代码的第二显示;
在与所述第一光学代码的所述第二显示相关联的所述第二时间段期间,在所述主机装置的无线接口上发起监听协议的激活;
响应于所述第二可穿戴装置检测来自第二主装置的第三光码,处理由第二可穿戴装置广播的第三对配对广告;
在第三时间段期间发起第四光学代码的显示,其中,所述第四光学代码包括第二主机配对广告代码;
在与所述第一光学代码的所述第二显示相关联的第四时间段期间,在所述主机装置的所述无线接口上发起所述监听协议的激活;以及
处理第四配对广告以确定所述第四配对广告的主机配对广告代码与所述第二主机配对广告代码不匹配;以及
在所述第三时间段结束时,发起所述监听协议的去激活,而不建立与所述第二可穿戴装置的连接。

说明书全文

用于采用光学代码进行装置配对的系统和方法

[0002] 本申请要求2016年9月26日提交的美国临时申请序列No.62/399,901的优先权,其全部内容通过引用包含于此。

技术领域

[0003] 本公开的实施例一般涉及装置通信,并且具体地涉及使用光学通信将可穿戴装置(例如,智能眼镜)与主机装置(例如,智能电话)配对。

背景技术

[0004] 眼镜(尤其是带有板载电子装置的眼镜)可能因与通信、电池和充电系统相关联的显著尺寸和重量权衡而体积庞大,因此难以被佩戴和充电。另外,考虑到有限的板载资源(包括有限的接口元件),建立安全的通信链路可能是困难的。附图说明
[0005] 为了容易地识别对任何特定元素或动作的讨论,参考标号中的最高有效数字或多个最高有效数字指的是首先引入该元素或动作的附图(“图”)号。
[0006] 图1A是示出根据一些实施例的用于通过网络交换数据(例如,消息和相关联内容)的示例消息传递系统的框图
[0007] 图1B是示出根据一些实施例的用于经由客户端装置(例如,主机)与可穿戴装置(例如,同伴)通过网络交换数据(例如,消息和相关联内容)的示例消息传递系统的框图。
[0008] 图2示出了根据一些实施例的用于识别光学代码的系统。
[0009] 图3A和图3B示出了根据一些实施例的光学代码的方面。
[0010] 图4A和图4B示出了根据一些实施例的使用可穿戴装置采集光学代码。
[0011] 图5示出了根据一些实施例的用于使用光学代码进行安全装置配对的系统。
[0012] 图6和图7示出了根据一些实施例的光学代码识别的方面。
[0013] 图8和图9示出了根据一些实施例的光学代码识别的方面。
[0014] 图10示出了根据一些实施例的用于采用光学代码进行装置配对的处理流程。
[0015] 图11示出了根据一些实施例的用于采用光学代码进行装置配对的处理流程。
[0016] 图12A-12B示出了根据在此描述的一些实施例的可使用光学代码配对的主机装置的方面。
[0017] 图13示出了根据在此描述的一些实施例的可使用光学代码配对的可穿戴装置的方面。
[0018] 图14是示出可结合在此描述的各种硬件架构使用的代表性软件架构的框图。
[0019] 图15是示出根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行在此所讨论的任何一种或多种方法的机器的组件的框图。

具体实施方式

[0020] 以下描述包括作为本公开的说明性实施例的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明主题的实施例。通常,公知的指令实例、协议、结构和技术不必详细示出。
[0021] 快速响应(QR)码和其它光学条形码是便利的向移动装置、可穿戴装置和其它智能装置的用户共享小量的信息的方式。在此描述的实施例使用光学代码来将可穿戴装置与主机装置配对。可穿戴装置通常具有有限的电池和处理资源。对于包括相机的可穿戴装置,相机的功能和快速的相机响应时间通常是关键的用户偏好,而无线数据传输和通信可能是次要的。在此类环境中,使用光学代码来发起安全装置配对提供了与使用相机优先于使用无线通信相关的益处。另外,由于光学代码处理可以是可穿戴装置的一部分,因此使用这些处理特征可能不涉及大量使用附加的可穿戴装置资源。
[0022] 在此描述的实施例可以在主机装置(例如,智能电话)显示光学代码的情况下操作,并且可穿戴装置采集光学代码的图像。可穿戴装置处理代码,并且然后作为响应而广播无线配对信号。任何本地主机装置都可以接收配对信号并基于配对信号生成第二光学代码。然后,可穿戴装置采集第二光学代码并使用来自第二光学代码的信息来建立安全的无线连接,安全的无线连接被用于安全的信号交换(handshaking)。
[0023] 此外,一些实施例可以使用专用光学代码。通常,光学条形码使用取景器(finder)图案(pattern)来识别光学条形码。传统的取景器图案通常使用明显放置在光学条形码内的多个通用标记。此类显眼且通用的标记可能是不雅观的,并且通常除了用作取景器图案之外没有任何意义。
[0024] QR码和其它光学条形码(例如,通用产品代码(UPC)条形码、Aztec代码、数据矩阵、Dataglyph、MaxiCode、PDF417、Ultra Code)是与移动装置、可穿戴装置和其它智能装置的用户共享小量信息的便利方式。例如,QR码是二维光学条形码,其编码由配备有相机传感器的装置(例如,智能电话)可读的信息。通常,QR码包括一个或多个功能图案,诸如用于标识和识别QR码的取景器图案,或用于促进解码的对准图案。传统的取景器图案包括设计上通用的多个标记,诸如放置在除右下之外的所有角落中的方形标记(如QR码的情况)。这些取景器图案缺少诸如曲线、不均匀性和其它格元素的美学元素,并且通常符合促进光学条形码的开放使用的特定标准。
[0025] 在此描述的实施例涉及使用此类代码的两个电子装置的安全配对。例如,电话可以显示光学代码,并且外围装置(例如眼镜或其它可穿戴装置)上的相机采集光学代码,并且然后使用光学代码作为一组无线配对通信的一部分来建立两个装置之间的安全无线链路。在各种示例实施例中,使用自定义或非标准功能图案的光学条形码向用户提供美学上令人愉悦的铭牌条形码,其允许与光学条形码相关联的独特体验。例如,实体徽标(例如,公司、组织或个人的徽标)可以用作取景器图案,并且在一些情况下,可以用作对准图案,以使用由实体提供的软件生成机器可读的铭牌和专有光学条形码。
[0026] 在一些实施例中,一旦可穿戴装置与主机装置配对,由可穿戴装置采集的图像被定到配对账户,并且可以仅在配对时使用与主机装置相关联的帐户将其发送到与帐户相关联的装置或上传到网络。如果可穿戴装置与和新帐户相关联的新主机配对,则新内容将与新帐户关联。在一些实施例中,自动保护或删除旧内容。如果内容是安全的,则可以通过与和旧帐户相关联的主机装置配对来发布。在一些实施例中,用户可选择的选项可以启用此类帐户锁定,或者可以使得能够移除此类帐户锁定,使得可以与任何帐户或主机装置共享任何内容。
[0027] 此外,在一些实施例中,可穿戴装置保持用于执行自定义图案系统的分析的预留资源,以便即使在装置的存储器已达到临界平时也能够进行配对。例如,具有相机系统的一副眼镜可以包括存储由相机系统采集的图像和视频的存储器。由于可穿戴装置的尺寸和结构,可用存储器可能是有限的。当使用具有阈值量的存储器时,装置返回指示存储器已满并且不可采集附加内容(例如,图像或视频)的错误。在此类状态下,装置保持为采集和处理图像细节而保留的存储器,以确定是否正在使用指示装置配对的光学代码。这使得装置能够与主机装置配对,以将内容数据无线传输到主机装置并释放存储器。
[0028] 图1A是描绘根据一个实施例的网络系统100的网络图,网络系统100具有被配置为通过网络交换数据的客户端-服务器架构。例如,网络系统100可以是消息传递系统,其中客户端在网络系统100内传送和交换数据。数据可涉及各种功能(例如,发送和接收文本和媒体通信,确定地理位置等)和与网络系统100及其用户相关联的方面。虽然在此示出为客户端-服务器架构,但是其它实施例也可以包括其它网络架构,诸如对等或分布式网络环境。
[0029] 如图1A中所示,网络系统100包括社交消息传递系统130。社交消息传递系统130通常基于三层架构,其由接口层124、应用逻辑层126和数据层128组成。如相关计算机和因特网相关领域的技术人员所理解的,图1A中所示的每个模或引擎表示一组可执行软件指令和用于执行指令的相应硬件(例如,存储器和处理器)。为了避免不必要的细节模糊本发明的主题,图1A中省略了与传达对本发明主题的理解没有密切关系的各种功能模块和引擎。在一些实施例中,附加的功能模块和引擎可以与社交消息传递系统(诸如图1A中所示的社交消息传递系统)一起使用,以便于实现在此未具体描述的附加功能。此外,图1A中描绘的各种功能模块和引擎可以驻留在单个服务器计算机上,或者可以以各种布置分布在若干服务器计算机之间。此外,尽管图1A中描绘了社交消息传递系统130为三层架构,但是本发明的主题决不限于这种架构。
[0030] 如图1A中所示,接口层124包括接口模块(例如,web服务器)140,其接收来自各种客户端计算装置和服务器(诸如,执行客户端应用112的客户端装置110,和执行第三方应用122的第三方服务器120)的请求。响应于所接收的请求,接口模块140经由网络104向请求装置传送适当的响应。例如,接口模块140可以接收请求,诸如超文本传输协议(HTTP)请求或其它基于Web的应用编程接口(API)请求。
[0031] 客户端装置110可以执行传统web浏览器应用或已经针对特定平台开发以包括各种移动计算装置和移动专用操作系统中的任何一个(例如,IOSTM、ANDROIDTM、PHONE)的应用(也称为“app”)。在示例中,客户端装置110正在执行客户端应用112。客户端应用112可以提供向用户106呈现信息以及经由网络104进行通信以与社交消息传递系统130交换信息的功能。客户端装置110中的每一者可以包括计算装置,计算装置至少包括与网络104的显示和通信能访问社交消息传递系统130。客户端装置110包括但不限于远程装置、工作站、计算机、通用计算机、因特网装置、手持装置、无线装置、便携式装置、可穿戴计算机、蜂窝或移动电话个人数字助理(PDA)、智能电话、平板计算机、超极本、上网本、膝上型计算机、台式机、多处理器系统、基于微处理器或可编程的消费电子产品游戏机、机顶盒、网络PC、小型计算机等。用户106可包括人、机器或与客户端装置110交互的其它部件。在一些实施例中,用户106经由客户端装置110与社交消息传递系统130交互。
[0032] 如图1A中所示,数据层128具有便于访问信息存储库或数据库134的一个或多个数据库服务器132。数据库134是存储诸如成员简档数据、社交图数据(例如,社交消息传递系统130的成员之间的关系)和其它用户数据的数据的存储装置。
[0033] 个人可以采用社交消息传递系统130注册以成为社交消息传递系统130的成员。在注册后,成员可以在社交消息传递系统130上形成社交网络关系(例如,朋友、关注者或联系人),以及与社交消息传递系统130提供的广泛应用交互。
[0034] 应用逻辑层126包括各种应用逻辑模块150,应用逻辑模块150结合接口模块140,采用从数据层128中的各种数据源或数据服务取得的数据生成各种用户界面。各个应用逻辑模块150可用于实现与社交消息传递系统130的各种应用、服务和特征相关联的功能。例如,社交消息传递应用可以采用一个或多个应用逻辑模块150来实现。社交消息传递应用为客户端装置110的用户提供用于发送和接收包括诸如图片和视频的文本和媒体内容的消息的消息传递机制。客户端装置110可以访问和查看来自社交消息传递应用的消息达指定的时间段(例如,有限的或无限制的)。在示例中,特定消息是消息接收者可访问达预定义的持续时间(例如,由消息发送者指定)的短时消息,预定义的持续时间在首次访问特定消息时开始。在预定义的持续时间过去之后,消息被删除,并且消息接收者不再能够访问该消息。系统可以基于由采集和发送图像的装置或者由系统管理生成的短时消息删除触发来管理此类短时消息的删除。
[0035] 如图1A中所示,社交消息系统130或客户端应用112包括自定义图案系统160,其提供识别和解码采用自定义功能图案的光学条形码的功能。在各种实施例中,自定义图案系统160可以实现为独立系统,并且不必须包括在社交消息传递系统130中。在一些实施例中,客户端装置110包括自定义图案系统160的一部分(例如,自定义图案系统160的一部分可以是独立的或者被包括在客户端应用112中)。在客户端装置110包括自定义图案系统160的一部分的实施例中,客户端装置110可以单独工作或结合自定义图案系统160的一部分(其被包括在特定应用服务器中或被包括在社交消息传递系统130中)工作。
[0036] 图1B示出了可与某些实施例一起使用的可选的网络系统101。如同网络系统100,网络系统101包括社交消息传递系统130(其具有接口模块140、应用逻辑模块150、数据库服务器132和数据库134)和客户端装置110(其操作客户端应用112)。然而,网络系统101另外还包括连接到客户端装置110的客户端配套装置114。客户端配套装置114可以是可穿戴装置,诸如眼镜、面罩、手表或其它支持网络的项目。客户端配套装置也可以是在此描述的经由诸如客户端装置110的另一装置访问诸如网络104的网络的任何装置。客户端配套装置114包括图像传感器116、无线输入和输出(I/O)117,以及自定义图案系统160的元件。客户端配套装置114可以包括一个或多个处理器、显示器、电池和存储器,但是可能具有有限的处理和存储资源。在此类实施例中,客户端装置110和/或用于社交消息传递系统130的服务器计算装置可被用于经由网络连接为客户端配套装置114提供远程处理和存储资源。在一个实施例中,例如,客户端配套装置114可以是一副支持网络的眼镜,诸如图13的眼镜。为了提供与客户端装置110通信的无线I/O 117的安全性,自定义图案系统160可以与图像传感器116交互以识别光学图案,作为如下详述的安全配对操作的一部分。
[0037] 图2是自定义图案系统160的框图200。自定义图案系统160被示出为包括通信模块210、呈现模块220、取景器模块230、对准模块240、解码器模块250、动作模块260以及编码器模块270。模块210-270中的全部或一些模块例如经由网络耦合、共享存储器等与彼此通信。
模块210-270中的每个模块可以实现为单个模块,组合到其它模块中,或者进一步细分为多个模块。也可以包括与示例实施例无关的其它模块,但是未示出。
[0038] 通信模块210提供各种通信功能。例如,通信模块210从用户装置接收、访问或以其它方式获得图像的图像数据。在特定示例中,通信模块210从智能电话的相机传感器接收基本上实时的图像数据(例如,由智能电话的相机传感器采集的单图像数据或连续帧流)。通信模块210与数据库服务器132、客户端装置110和第三方服务器120交换网络通信。由通信模块210取得的信息包括与用户相关联的数据(例如,来自在线账户的成员简档数据或社交网络服务数据)或促进在此描述的功能的其它数据。
[0039] 呈现模块220提供可操作以交互地向用户呈现信息并从用户接收信息的各种呈现和用户界面功能。例如,呈现模块220可用于呈现响应于解码光学条形码而生成的用户界面。在其它情况下,呈现模块220生成包括光学条形码的用户界面。在各种实施例中,呈现模块220呈现信息或引起信息的呈现(例如,在屏幕上可视地显示信息、声学输出、触觉反馈)。交互式呈现信息的过程旨在包括特定装置和用户之间的信息交换。用户可以以许多可能的方式提供与用户界面交互的输入,诸如字母数字、基于点(例如,光标)、触知或其它输入(例如,触摸屏、触知传感器、光传感器、红外传感器、生物度量传感器、麦克风、陀螺仪加速度计或其它传感器)。呈现模块220还提供便于实现在此描述的功能的许多其它用户界面。在此使用的术语“呈现”旨在包括将信息或指令传送到特定装置,特定装置可操作以基于所传送的信息或指令来执行呈现。
[0040] 取景器模块230提供图像处理功能以标识、识别或检测被用作光学条形码中的取景器图案的自定义图形。例如,取景器模块230从由用户装置(例如,客户端装置110)接收的图像的图像数据中提取和分析候选形状特征或候选轮廓特征。取景器模块230确定与提取的候选形状特征相关联的各种规则或标准的满足。取景器模块230将提取的候选形状特征与自定义图形或另一参考图像的参考形状特征进行比较,以识别在图像中包括的自定义图形。取景器模块230可以采用各种机制和技术从图像的图像数据中提取候选形状特征,并且随后基于候选形状特征的分析来识别自定义图形。
[0041] 对准模块240提供图像处理功能以使用自定义图形确定光学条形码的对准。自定义图案系统160可以使用该对准以便于对在光学条形码中编码的数据进行解码。以这种方式,自定义图形用作光学条形码的对准图案。例如,对准模块240从图像数据中提取图像中的自定义图形的空间属性。在各种实施例中,空间属性包括光学条形码的位置、取向、比例或另一空间方面中的至少一个。对准模块240基于空间属性(例如,光学条形码的特定取向)确定光学条形码的对准。在示例中,对准模块240可以基于空间属性确定包括位置和取向的对准,并根据对准生成变换的图像。然后,自定义图案系统160可以使用变换的图像来解码在变换的图像的一部分中编码的数据。
[0042] 解码器模块250提供使用空间属性或所确定的图像中自定义图形的对准来解码在图像中编码的数据的功能。例如,解码器模块250可以从根据从图像数据提取的自定义图形的空间属性变换的图像中对在图像中编码的数据进行解码。在实施例中,解码器模块250从图像数据中检测表示在图像的一部分中编码的数据的标记(例如,图像中的高对比度点、正方形或其它标记)。在特定示例中,解码器模块250采用Reed-Solomon纠错机制来解码在图像中编码的数据。即使当不能从光学条形码解码某一百分比的数据(例如,损坏的位或不正确的解码的位)时,Reed-Solomon纠错机制也允许成功或有效的解码。在一些实施例中,用户或自定义图案系统160的管理员配置在解码光学条形码时可接受的损坏或不正确解码的数据量的容差值。在一些实施例中,解码器模块250还提供图像处理功能以改进光学条形码的解码。例如,解码器模块250以及对准模块240可以执行图像的图像变换(例如,执行图像锐化、去噪声处理、其它数字滤波或其它图像处理技术以提高解码精度)。
[0043] 动作模块260提供基于对图像中编码的数据进行解码来执行各种动作的功能。例如,在图像的一部分中编码的数据可以指示特定动作或包括要与特定动作结合使用的信息。在特定示例中,在图像的一部分中编码的数据可以包括社交网络服务的成员的用户名或其它用户标识,并且基于对用户名的解码,动作模块260可以对与用户名对应的社交网络服务执行动作(例如,向与用户名相关联的成员发送消息)。在一些实施例中,动作模块260执行针对扫描图像的特定应用软件的动作(例如,应用软件的用户可用但是否则不可用的功能)。在一些实例中,动作模块260执行动作而不与外部服务器通信(例如,在扫描光学代码的用户装置上本地执行的动作)。
[0044] 编码器模块270提供生成数据并将数据编码到光学条形码中的功能,光学条形码采用自定义图形作为一个或多个功能图案(例如,生成光学代码)。如上面结合解码器模块250所讨论的,在特定示例中,编码器模块270可以采用诸如Reed-Solomon纠错的技术来编码数据。在示例实施例中,编码器模块270渲染表示要被编码的数据的标记的机器可读的布置。然后,编码器模块270可以使用所渲染的标记的布置和要被用作功能图案的自定义图形来生成机器可读的光学条形码。
[0045] 在示例实施例中,自定义图案系统从用户装置接收表示图像的图像数据。例如,自定义图案系统从用户的智能电话的光学传感器(例如,相机传感器)接收图像数据。在各种实施例中,响应于用户发起的图像采集、对由用户装置的光学传感器检测的图像数据的周期性监测、对存储的图像数据的访问或者以上的组合,接收来自用户装置的图像数据。图像数据的一部分可以包括表示采用用于特定功能图案(例如,取景器图案)的自定义图形的光学条形码的数据。在一些场景中,图像数据包括外来的或不相关的数据连同与光学条形码有关的数据(例如,光学条形码的图像包括与解码光学条形码无关的背景)。在特定示例中,用户装置的光学传感器采集包括特定光学条形码的促销海报的图像。促销海报的图像可以包括特定的光学条形码连同围绕特定光学条形码的促销海报的不相关部分或背景。
[0046] 在自定义图案系统接收图像数据之后,自定义图案系统针对自定义图形搜索图像的图像数据以确定图像是否包括光学条形码。也就是说,自定义图形被用作用于标识、识别或检测图像内的光学条形码的取景器图案。在示例实施例中,自定义图案系统通过从图像数据中提取候选形状特征或多个候选形状特征来搜索自定义图形。例如,自定义图案系统执行边缘检测技术或另一种图像处理技术,以识别候选形状特征,诸如图像的轮廓线。然后,自定义图案系统确定候选形状特征是否满足形状特征规则或标准。例如,如果特定候选形状特征是轮廓线,则自定义图案系统可以确定轮廓线是否是环绕图像的部分的封闭线。与一些实施例一致,形状特征规则过滤掉不相关或外来的候选形状特征或具有低概率作为自定义图形的候选形状特征。
[0047] 响应于候选形状特征满足形状特征规则,自定义图案系统通过将候选形状特征与自定义图形的参考形状特征进行比较来识别自定义图形。例如,自定义图案系统可以将候选形状特征的面积或尺寸与参考形状特征的参考面积或尺寸进行比较。在该示例中,自定义图案系统基于候选形状特征与参考形状特征之间的匹配或接近匹配(例如,高于阈值的百分比匹配)来识别自定义图形。以这种方式,自定义图案系统使用自定义图形作为取景器图案来识别图像的部分内的光学条形码的存在。
[0048] 在另外的示例实施例中,自定义图形用作对准图案,以便于自定义图案系统解码在光学条形码中编码的数据。在示例实施例中,自定义图案系统从图像数据中提取图像中的自定义图形的空间属性。例如,自定义图案系统从图像数据中提取自定义图形的位置、比例或取向。自定义图案系统使用图像中的自定义图形的空间属性对来自图像数据的图像中编码的数据进行解码。例如,自定义图案系统可以使用空间属性(例如,去偏斜、旋转、缩放或另一类型的图像变换)来执行图像变换,以提高在图像的部分中编码的数据的可检测性/可读性。以这种方式,自定义图案系统使用自定义图形作为对准图案以便于解码光学条形码。
[0049] 因此,自定义图案系统使用自定义图形作为光学条形码的功能图案而不利用传统的功能图案。使用自定义图形作为功能图案允许美学上令人愉悦的设计并且可以提供对特定软件应用的排他性,因为功能图案不必须符合开放标准并且因此可由特定软件应用专读取。
[0050] 图3A和图3B是示出采用用于取景器图案或对准图案(例如,光学代码)的自定义图形的光学条形码的示例的图。图300示出了示例光学条形码,其包括自定义图形310(例如,公司徽标)和表示编码到光学条形码中的数据的标记320。在该示例中,自定义图形310是公司徽标。用作功能图案的自定义图形可以包括具有多个路径、多个多边形、多个美学元素或其它设计特征的设计。
[0051] 如图300中所示,标记320是以具有可由机器读取的特定间隔或定位的图案布置的点。尽管图300将标记320示为点,但是也可以采用其它形状和标记(例如,正方形或各种几何形状的不对称形状)。标记320可以以均匀图案或非均匀图案布置。在一些情况下,标记可以具有不同的尺寸或均匀的尺寸。另外,标记320可以处于预定布置或可在从标记解码数据时动态确定的布置。在一些实施例中,自定义图形310和标记320可以被边界形状(诸如外盒325)包围。尽管图300的外盒325被示出为具有圆角的正方形,但是外盒325可以是具有各种几何形状的各种其它形状的形式。图3B中的图330示出了另一示例光学条形码,其采用自定义图形,用于取景器图案或对准图案。图330示出了具有排除在自定义图形外的标记的光学条形码。在这些和其它实施例中,自定义图形内部的空间可以保留用于其它用途。例如,可以插入由用户选择的图片、图形、动画、注释或图像。
[0052] 现在转向图4A,示出了利用用于取景器图案或对准图案的自定义图形来识别和解码光学条形码的示例的图。图4A是使用自定义图形识别和解码光学条形码的特定示例实施例的概述。图4B示出了可穿戴装置,其可以观察在主机装置上显示的光学代码,以便发起可穿戴装置和主机装置之间的配对。结合以下附图讨论附加细节和替代实施方式。在图4A和图4B中,主机装置414显示光学条形码。佩戴可穿戴装置431的用户410可以使用可穿戴装置431的传感器来采集包括如在装置414的显示器上呈现的光学条形码的图像。标注(callout)412描绘由可穿戴装置431的传感器采集的场景的部分的放大视图,包括场景的至少一部分中来自装置414的显示器的光学条形码。
[0053] 在示例实施例中,用户装置414采集包括在主机装置上显示的光学条形码的场景的图像。自定义图案系统160从用户装置414接收表示图像的图像数据。在该示例实施例中,自定义图案系统160被包括在可穿戴装置431中和在装置414中,其中装置414使用自定义图案系统160来生成光学条形码并显示它,并且装置431使用自定义图案系统160来识别由装置414生成的条形码(例如,在用户410的眼镜和智能电话上执行的应用)。标注416描绘了由取景器模块230执行的示例图像处理,以识别图像中的自定义图形,并使用自定义图形作为对准图案,用于解码包括在光学条形码中的数据。在标注416中,取景器模块230从图像的图像数据中提取候选形状特征。随后,取景器模块230确定候选特征是否满足某些规则和标准以过滤掉不相关形状特征或具有低概率作为自定义图形的形状特征。然后,取景器模块230可以将满足形状特征标准或规则的候选形状特征与自定义图形的参考形状特征进行比较。在示例中,取景器模块230基于候选形状特征与参考形状特征之间的匹配(例如,超过阈值的匹配分数)来识别自定义图形。
[0054] 在取景器模块230识别自定义图形之后,自定义图案系统160可以使用自定义图形作为对准图案以用于解码。例如,对准模块240提取图像中的自定义图形的空间属性,并将提取的空间属性与参考空间属性进行比较,以确定自定义图形的对准。然后,对准模块240或解码器模块250可以根据对准(例如,旋转或去偏斜)生成图像的变换图像,如标注418中所示。在生成变换图像之后,解码器模块250对在变换图像的部分中编码的数据进行解码,如标注420中所示。在标注420中,光学条形码的点被转换为数据,如用于点的1和用于非点的0所示出,然而这仅仅是说明性的示例,也可以采用其他机制。以这种方式,自定义图案系统160使用包括在光学条形码中的自定义图形作为一个或多个功能图案,诸如取景器图案或对准图案。
[0055] 图5然后描述了根据在此描述的实施例的用于装置配对的一个实施例的细节。图5示出了由电话502(例如,主机装置)、可穿戴装置504和电话506(例如,各种本地或辅助主机装置)执行的操作和通信。在图5的实施例中,在主机装置电话502上操作的应用中,用户导航到简档页面或以其它方式与电话502交互,使得在操作510中电话502显示光学代码。然后,装置504使用可穿戴装置504记录视频或采集图像,其中采集的内容包括由电话502显示的光学代码的图像。可穿戴装置在操作512中检测光学代码,并且在操作514A/B中开始广告(例如,广播无线数据)。在一些实施例中,使用低功耗蓝牙TM执行该广播。
[0056] 附近正在执行应用并且处于检测通用广告消息的状态(例如,在简档屏幕上)的任何主机装置(例如,智能电话),诸如电话506,将检测广告通信,并且然后显示特殊的配对光学代码。在一些实施例中,这可能与初始光学代码具有不同的尺寸或形状(例如,9×9对18×18)。在一些实施例中,配对光学代码包括用作验证码的20个随机位、用于广告代码的10个随机生成的位,以及10个纠错位。在图5中,电话502和506二者都接收通用广告消息(例如,不是针对特定主机装置或电话自定义的消息)并且采用操作516和518响应,其中每个电话显示配对代码(例如,第二光学代码)。
[0057] 然后,每个电话502和506开始扫描与来自配对光学代码的广告代码匹配的附加广告通信,同时显示操作516和518的配对代码。
[0058] 然后,在操作520中,可穿戴装置使用图像传感器从操作516采集并解码配对光学代码。这可以类似于简档光学代码的采集和解码。可穿戴装置忽略来自操作518的来自电话506的配对代码。然后在操作522中,可穿戴装置广告通信被更新以包括来自主机装置显示的配对光学代码的广告代码。已经针对匹配广告扫描的主机装置电话502识别可穿戴装置广播匹配的广告代码,并且然后在操作524中允许主机装置和可穿戴装置之间的连接。在操作522,电话506可以接收广告代码,但是不匹配来自配对代码操作518的细节,并且因此忽略操作522的代码,并且继续扫描直到506的用户导航离开简档页面或以其它方式转换到不扫描广告代码的状态。
[0059] 在一些实施例中,可穿戴装置和主机装置然后在操作526中执行应用级椭圆曲线Diffie-Hellman(ECDH)交换以建立共享秘密(例如,Diffie-Hellman密钥(DHKey))。然后在操作528中使用该共享秘密经由计数器模式加密对进一步的通信进行加密。在一些实施例中,主机装置应用基于DHKey的SHA-256、Rv和硬编码的128位SaltA来计算哈希消息认证码(HMAC)。在操作530中,应用将其从主机装置电话502发送到可穿戴装置504,并且在操作532中可穿戴装置504验证这与期望值匹配或者以其它方式是正确的。
[0060] 在一些实施例中,可穿戴装置进一步基于DHKey的SHA-256、Rv和硬编码的128位SaltB来计算HMAC。然后,可穿戴装置在操作534中将其发送到主机装置,并且主机装置上的应用在操作536中验证这与期望值匹配或者以其它方式是正确的。然后在操作538中完成信号交换。信号交换的完成可以另外用于触发装置504以及相关联的主机装置电话502中的不同动作。在一些实施例中,在装置504上采集的图像被限制地传送到电话502。尝试执行与不同的电话的新的信号交换将触发存储在装置504的共享存储器中的图像的删除,其在装置504与电话502配对时被采集。类似地,在一些实施例中,来自装置504的图像或视频剪辑的传输可被限于电话502,并且进一步被加密使得电话502和装置504上的应用使用安全信息来限制在与电话502配对时对由装置504采集的图像的电话502的内容的观看。电话502可以“解锁”此类图像并允许它们作为具有相关联的删除触发器的短时消息经由诸如社交消息传递系统130的网络被通信。在一些实施例中,DHKey或来自信号交换过程的其它信息需要解密或以其它方式解锁图像以便分发。
[0061] 在一些实施例中,配对涉及符合蓝牙LETM核规范的H7.3的比较信号交换。
[0062] 一旦执行了该初始配对,两个装置都可以存储配对信息以使得能够重新建立安全连接而无需发起另一光学代码配对。在一些实施例中,此类信息一次仅针对单个主机装置被存储在可穿戴装置中,使得与不同主机装置配对需要光学代码配对以重新建立与第一主机装置的连接。
[0063] 图6是示出用于识别使用自定义功能图案的光学条形码的进一步示例操作的流程图。当在操作512和520中检测光学代码时,诸如装置504的可穿戴装置可以使用此类操作。在图6中,取景器模块230确定候选形状特征满足形状特征规则。
[0064] 在操作610处,取景器模块230确定候选形状特征包括来自图像数据的封闭线。也就是说,形状特征规则包括路径规则,并且取景器模块230确定候选形状特征满足路径规则。取景器模块230可以采用多种技术来确定候选形状特征满足路径规则。
[0065] 在操作630处,取景器模块230通过确定候选形状特征通过具有从特定点开始并返回到同一特定点的路径来环绕图像的一部分,来确定候选形状特征是否是封闭线。在示例实施例中,如果候选形状特征不满足路径规则(在图6中由“否”指示),则不执行候选形状特征的进一步分析,并且取景器模块230分析另一候选形状特征或不执行进一步的操作。可选地,在操作640处,如果取景器模块230确定候选形状特征满足路径规则(在图6中由“是”指示),则后续操作继续检测光学代码。
[0066] 为了说明图6的概念,图7是示出识别使用自定义功能图案的光学条形码的示例的图700。在图700中,图像710是从用户装置接收或访问的示例图像。图像720是描绘示例候选形状特征730的示例图像。例如,取景器模块230对图像710执行边缘检测图像处理以导出图像720。从图像720,取景器模块230识别候选形状特征730。
[0067] 标注740示出候选形状特征730中的特定候选形状特征。标注740示出特定候选形状特征的轮廓线750(图示为虚线)、路径760和特定候选形状特征的点770。在标注740中,如果在点770处开始的路径760可以跟随轮廓线750并且返回到点770,则取景器模块230确定满足路径规则。在图700中,因为路径760可以跟随轮廓线750并返回到点770,所以在标注740中示出的特定候选形状特征满足路径规则。
[0068] 图8是示出用于识别使用自定义功能图案的光学条形码的进一步示例操作的流程图。在图8中,取景器模块230确定候选形状特征满足形状特征规则。在操作810处,取景器模块230计算候选形状特征的面积值或尺寸近似。例如,取景器模块230使用诸如多边形(例如,正方形、矩形或四边形)或非多边形形状(例如,椭圆形)的代理形状来近似候选形状特征的形状。取景器模块230将代理形状拟合或近似拟合为候选形状特征的外边缘或外周边,使得代理形状表示候选形状特征的面积。随后,取景器模块230计算代理形状的面积值,以确定候选形状特征的面积值或尺寸近似。在一些实施例中,在候选形状特征可能形状复杂的情况下(例如,用于非均匀或不规则形状特征的面积计算通常在计算上是更昂贵的),取景器模块230采用此类技术(例如,多边形面积近似)以避免候选形状特征的在计算上昂贵的面积计算。在一些实施例中,可以采用诸如基于像素的计数的其它技术来确定面积值。
[0069] 在操作820处,取景器模块230确定候选形状特征的面积分数或尺寸分数。取景器模块230通过将候选形状特征的面积值与参考面积值进行比较来确定面积分数。在一些实施例中,参考面积值包括适合于自定义图形的参考图像的对应代理形状的面积值(例如,从正视角拟合到幻影徽标的代理形状的面积值)。在其它实施例中,参考面积值包括自定义图形的面积值(例如,幻影徽标的面积值)。取景器模块230例如通过确定候选形状特征面积值与参考面积值之间的匹配百分比来计算面积分数。取景器模块230可以采用各种其它机制和技术来计算面积分数。
[0070] 在操作830处,取景器模块230确定面积分数是否超过阈值。阈值可以是预定义的或动态确定的(例如,基于扫描的滚动历史平均值来统计确定)。
[0071] 在操作840处,基于面积分数超过阈值(在图8中由“是”指示),取景器模块230确定候选形状特征满足面积规则并且进行后续操作。在另一示例实施例中,取景器模块230将面积分数与满足面积规则的面积范围进行比较(例如,大于特定值以及小于特定值)。如果在操作830中面积分数未超过阈值(在图8中由“否”指示),则根据示例实施例,取景器模块230分析另一候选形状特征或不执行进一步的操作。在一些示例实施例中,取景器模块230确定候选形状特征是否满足作为过滤器的形状特征规则(例如,移除或跳过不太可能是自定义图形的候选形状特征),来识别候选形状特征,以在识别图像中的自定义图形的过程中被进一步分析。
[0072] 为了进一步说明图8的概念,图9是示出识别使用自定义功能图案的光学条形码的示例的图900。在图900中,图像902是从用户装置接收的示例图像。标注904示出了图像902的空间取向。在该示例中,从正右视角描绘并看到图像902。图像902包括光学条形码906。在该示例中,光学条形码906采用自定义图形作为功能图案。
[0073] 标注908示出了放大的图像902的部分,其包括由取景器模块230分析的候选形状特征以识别自定义图形。在标注908中,多边形910(例如,四边形)被示为适合于候选形状特征的周边。面积值912是多边形910的面积。
[0074] 标注914示出了自定义图形的参考图像。标注916示出了参考图像的空间取向。在该示例中,参考图像从正视角示出。示出多边形918被示为适合于参考图像的周边。参考面积值920是多边形918的面积。虽然图9示出了多边形910和918为四边形,但是取景器模块230也可以采用其它形状,诸如正方形、或跟随或跟踪候选形状特征的轮廓的形状(例如,跟随候选形状特征的轮廓点的n边多边形或平滑拟合形状)。
[0075] 取景器模块230将面积值912与参考面积值920进行比较,以确定候选形状特征满足面积规则。图像902的另一候选形状特征(诸如,图像902中的音符中的一个)不具有与参考面积值类似的面积值,并且因此不满足面积规则。以这种方式,取景器模块230可以快速移除或跳过不太可能被识别为自定义图形的某些候选形状特征。
[0076] 图10然后示出了用于采用光学代码的装置配对的方法1000。在一个实施例中,方法1000由可穿戴装置(诸如图13的眼镜31)执行。在其它实施例中,也可以使用其它此类可穿戴装置。在一些实施例中,方法1000由可穿戴装置的元件(包括可穿戴装置的处理器、图像传感器和通信电路)执行。在一些实施例中,方法1000被实例化为存储在非暂态存储介质中的指令,指令可以由一个或多个处理器执行以使装置执行方法1000的操作。
[0077] 方法1000开始于操作1005,其中可穿戴装置从第一主机装置采集包括第一光学代码的图像。在一些实施例中,该采集可涉及视频剪辑的多个帧。在其它实施例中,该采集可涉及作为图片采集的单个图像。在一些实施例中,该数据连同被采集并存储的其它内容一起被存储在可穿戴装置的共享存储器中,以便未来经由通信网络作为短时消息而通信。在其它实施例中,共享存储器可以是满的,并且图像在被处理时存储在易失性或预留存储器中。在共享存储器已满时,然后在提取数据之后删除图像以释放预留存储器,从而获得可以处理的附加图像。
[0078] 然后,在操作1010中,使用被耦接到可穿戴装置的图像传感器的一个或多个处理器对第一光学代码进行解码。该解码可涉及用于识别光学代码的各种变换或计算,包括识别如在此所述的光学代码的自定义图案。然后在操作1015中,响应于第一光学代码,可穿戴装置使用被耦接到一个或多个处理器的无线收发机开始广播配对广告。如在此所述,该广播可以使用蓝牙LETM,或者可以使用任何其它无线通信标准,诸如电气和电子工程学会(IEEE)802.11标准通信。
[0079] 在此之后,在操作1020中,无线装置响应于配对广告并使用图像传感器从第一主机装置采集第二光学代码,其中第二光学代码包括主机配对广告代码。在操作1025中,无线装置通过解码第二光学代码来获得广告代码以确定主机配对广告代码。然后,响应于第二光学代码,在操作1030中,无线装置开始广播包括主机配对广告代码的第二配对广告。
[0080] 在各种实施例中,主机配对广告代码用于以各种不同方式在可穿戴装置和主机装置之间建立通信。在一些实施例中,在操作1035中,该信息用于建立安全通信,并且然后生成并存储一组信号交换信息,其允许安全连接在不使用光学代码的情况下被重新建立。如上所述,在一些实施例中,这涉及DHKey的使用。在其它实施例中,可以使用其它安全通信。例如,在一些实施例中,DHKey可被存储为该组信号交换信息的一部分。在一些实施例中,无线通信标识符和用于实现安全连接的重建的一个或多个安全访问代码被存储为信号交换信息,使得可穿戴装置或主机装置的用户界面上的输入可用于发起重新建立主机装置和可穿戴装置之间的安全连接。在一些实施例中,在任何给定时间,可以仅将单组信号交换信息与可穿戴装置相关联,使得可穿戴装置仅响应最近的一组信号交换信息,并且与可穿戴装置相关联的任何先前信号交换信息将被忽略(例如,从存储器中删除)。在其它实施例中,多组信号交换信息可以与主机装置或可穿戴装置相关联,并且在用户界面输入以重新建立连接时,用户可以选择特定的配对,或者装置可以循环遍历所有存储的信号交换信息集,以尝试重新建立与先前已经配对的任何附近装置的连接。
[0081] 在一些实施例中,配对广告包括通用广告信号广播,使得多个本地主机装置接收并解码配对广告,其中多个本地主机装置中的每个本地主机装置显示所获得的主机配对广告代码。如上所述,这允许正在监听的任何本地主机检测初始配对广告。
[0082] 在一些实施例中,执行附加操作,包括:响应于第二配对广告,建立在第一主机装置和可穿戴装置之间的通信信道;经由通信信道将第一密钥从可穿戴装置传送到第一主机装置;经由通信信道在可穿戴装置处从主机装置接收第二密钥;以及使用第一密钥和第二密钥建立加密连接。
[0083] 这可以在一些实施例中操作,使得使用采用第一密钥和第二密钥的应用级椭圆曲线ECDH交换来建立加密连接以建立共享秘密,并且其中使用低功耗蓝牙连接在第一主机装置和可穿戴装置之间建立通信信道。
[0084] 此外,此类实施例可以通过以下来操作:经由加密连接在可穿戴装置处基于共享秘密接收第一HMAC,其中共享秘密包括DHKey;使用可穿戴装置的一个或多个处理器验证第一HMAC;响应于第一HMAC的验证,使用可穿戴装置的一个或多个处理器基于DHKey生成第二HMAC;以及将第二HMAC从可穿戴装置发送到第一主机装置。
[0085] 作为解码第一光学代码的部分,各种实施例可以执行如下操作,诸如:从用户装置接收图像的图像数据;从图像数据中提取图像的候选形状特征;确定候选形状特征满足形状特征标准;响应于候选形状特征满足形状特征标准,通过将候选形状特征与自定义符号的参考形状特征进行比较来识别图像中的自定义符号;响应于识别自定义符号,使用机器的硬件处理器从图像数据中提取图像中的自定义符号的几何属性;以及使用图像中自定义符号的几何属性,从图像数据中解码在图像的部分中编码的数据。
[0086] 用于处理光学代码的一些此类操作可以另外包括:从图像数据计算候选形状特征的尺寸近似;通过将尺寸近似与自定义符号的参考尺寸进行比较来确定用于候选形状特征的尺寸分数;基于尺寸分数超过阈值,确定候选形状特征满足尺寸标准,其中形状特征标准包括尺寸标准;从图像数据确定候选形状特征包括封闭线,其中封闭线通过从特定点开始并返回到特定点的路径环绕图像的部分;或者,基于候选形状特征包括封闭线,确定候选形状特征满足路径标准,其中,形状特征标准包括路径标准。
[0087] 类似地,一些实施例可以检测其中几何属性包括图像中的自定义符号的位置、比例或取向中的至少一个的光学代码。附加的光学代码检测操作可以包括:从图像数据中提取自定义符号的区别特征,区别特征指示自定义符号的标识;通过将区别特征与自定义符号的参考区别特征进行比较来确定图像中自定义符号的取向;以及使用图像中自定义符号的取向和位置对图像中编码的数据进行解码。
[0088] 在一些实施例中,使用安全数据或信号交换信息对在可穿戴装置上采集的图像进行加密。这可以用于将图像和视频内容“锁定”到配对的主机装置,使得配对的装置需要查看由可穿戴装置采集的内容。在一些实施例中,可穿戴装置可以在与第二主机配对的同时存储与第一主机相关联的内容。在一些此类实施例中,信号交换信息防止数据被传送到第二主机装置。在其它实施例中,数据可被传送,但是在第二主机装置处不可查看。在另一实施例中,当发生与第二主机装置的配对时,自动删除与第一主机装置相关联的内容。
[0089] 图11然后示出了用于采用光学代码的配对装置的方法1100。在一个实施例中,方法1100由主机装置执行,诸如图5的电话502或图12A-B的装置1200。在其它实施例中,也可以使用其它此类主机装置。在一些实施例中,方法1100被实例化为存储在非暂态存储介质中的指令,指令可以由一个或多个处理器执行以使装置执行方法1100的操作。在一些实施例中,方法1100包括结合由可穿戴装置执行的方法1000的对应操作的由主机装置执行的操作,主机和可穿戴装置彼此通信作为操作的一部分。方法1100开始于操作1105,其中主机装置生成并显示包括第一光学代码的图像。在一些实施例中,这可以响应于用户界面选择,在一些实施例中,在主机装置上操作的应用的初始屏幕涉及在主机装置的屏幕上呈现光学代码。在另一实施例中,各种传感器可以发起图像中光学代码的显示。例如,时钟或警报可以周期性地发起此类显示,或者检测与可穿戴装置的接近或来自可穿戴装置的信号的传感器可以发起初始光学代码。
[0090] 在操作1105中显示光学代码期间,主机装置监听配对广告,并且在操作1110中,主机装置接收来自可穿戴装置的配对广告并对其进行解码。该配对广告可以是通用的,而没有与主机装置相关联的任何细节。
[0091] 在操作1115中,主机装置生成并显示来自第一主机装置的第二光学代码,第二光学代码包括主机配对广告代码。该主机配对广告代码包括针对主机生成和显示代码的信息(例如,与通用配对广告相反)。
[0092] 同样,在显示第二光学代码时,主机装置监听配对广告。在操作1120中,主机装置接收第二配对广告。第二配对广告不是通用的,并且包括主机配对广告代码或从主机配对广告代码导出的相关代码。在操作1120中,主机装置对包括主机配对广告代码的第二配对广告进行解码,并使用该信息来验证正确的可穿戴装置被识别用于配对。
[0093] 在操作1125中,响应于解码第二配对广告,主机装置执行应用级ECDH交换以建立共享秘密并在可穿戴装置和主机装置之间建立安全连接。在操作1130中,该连接用于生成和存储一组信号交换信息,以使得安全连接能够在没有光学代码配对的情况下重新建立。
[0094] 如上所述,该信息可用于在采集内容时将由可穿戴装置采集的内容锁定到与可穿戴装置配对的主机装置。主机装置可以使用应用来“解锁”此类图像并允许它们经由诸如社交消息传递系统130的网络作为与相关联的删除触发器的短时消息而通信。在一些实施例中,DHKey或来自信号交换过程的其它信息需要解密或以其它方式解锁图像以便分发。
[0095] 另外,在一些实施例中,主机装置执行上述操作作为与可穿戴装置的共享应用环境的一部分。在此类实施例中,可穿戴装置和主机装置各自执行共享应用环境的单独部分,其中主机装置执行主机部分并且可穿戴装置执行可穿戴装置部分。主机部分可以是响应于从主机装置用户接收的用户界面输入而执行的应用。可穿戴装置部分可以是始终操作的可穿戴装置的组成部分。当主机应用显示光学代码时,可穿戴装置应用执行操作以识别在共享应用环境的上下文中预期的图案中的光学代码。这可以包括使用自定义图像或代码图案,以及用于以被配置为在可穿戴装置处受限的处理器使用(与主机装置相比,可穿戴装置的电池和处理资源较低)的方式在可穿戴装置处识别代码图案的相关规则。
[0096] 另外,如上所述,主应用可以操作以在显示光学代码时发起特定的无线监听协议。在此类实施例中,应用将处理器配置为仅在显示光学代码时或者在与光学代码的显示相关联的有限时间段内发起无线监听协议。光学代码的每个新呈现可以与对应的有限无线监听时段相关联。如果主机装置在监听时段期间没有接收到适当的配对广告,则配对过程终止。
因此,虽然显示第一光学代码的装置可以响应初始通用配对广告,响应于初始通用配对广告显示第二光学代码,并且接收第二配对广告,但是如果第二配对广告不包括正确的代码则不进行连接,并且主机装置将在相关联的监听时段后停止监听。在一些实施例中,在发起光学代码的显示之后,将监听时段限制为设定的时间量(例如,10秒、15秒等),以节省功率并防止非期望的通信。在其它实施例中,监听时段匹配光学代码的显示(例如,当睡眠触发或其它触发导致不再显示光学代码时将结束)。在其它实施例中,可以使用与光学代码的显示相关联的无线监听的任何此类时间段。类似地,对于单主机,不同的监听时段可用于在监听通用配对广告时的初始光学代码和在监听与主机配对代码的配对广告时的第二光学代码。
[0097] 虽然上面描述了特定操作,但是显而易见的是,操作可以重复,或者可以存在中间操作,使得上述方法在所描述的用于采用光学代码进行装置配对的实施例的范围内的变化是可能的。
[0098] 图12A示出了可以用作主机装置的示例移动装置1200,其用TM于使用如在此所述的光学代码与可穿戴装置配对。用户1294可以使用装置显示区域1290内的触摸屏输入1292来执行对在此描述的对任何系统操作的输入和调节。另外,选择用于显示初始光学代码和后续配对代码的用户界面输入可以使用触摸屏输入1292。附加输入可以发起广告通信的传输并发起对来自要被配对的装置的通信的扫描。
[0099] 图12B示出了与一些实施例一致的执行移动操作系统(例如,IOSTM、ANDROIDTM、Phone或其它移动操作系统)的示例移动装置1200。在一个实施例中,移动装置1200包括可操作以从用户1202接收触知数据的触摸屏。例如,用户1202可以物理地触摸1204移动装置1200,并且响应于触摸1204,移动装置1200可以确定触知数据,诸如触摸位置、触摸力或手势动作。在各种示例实施例中,移动装置1200显示主屏幕1206(例如,IOSTM上的Springboard),其可操作以启动应用或以其它方式管理移动装置1200的各个方面。在一些示例实施例中,主屏幕1206提供诸如电池寿命、连接性或其它硬件状态的状态信息。用户
1202可以通过触摸由相应用户界面元素占据的区域来激活用户界面元素。以该方式,用户
1202与移动装置1200的应用交互。例如,触摸由主屏幕1206中包括的特定图标占据的区域来启动与特定图标对应的应用。
[0100] 可以在移动装置1200上执行许多种类的应用(也称为“应用软件”),诸如本机应用(例如,以Objective-C、Swift或其它合适语言编程在IOSTM上运行的应用,或者以Java编程在ANDROIDTM上运行的应用),移动web应用(例如,用超文本标记语言-5(HTML5)编写的应用),或混合应用(例如,启动HTML5会话的本机shell应用)。例如,移动装置1200包括消息传递应用、音频记录应用、相机应用、书籍阅读器应用、媒体应用、健身应用、文件管理应用、位置应用、浏览器应用、设置应用、联系人应用、电话呼叫应用或其它应用(例如,游戏应用、社交网络应用、生物度量监测应用)。在另一示例中,移动装置1200包括诸如的社交消息传递应用1208,其与一些实施例一致,允许用户交换包括媒体内容的短时消息。在该示例中,社交消息传递应用1208可以包含在此描述的实施例的方面。
[0101] 在此将某些实施例描述为包括逻辑或多个组件、模块或机制。模块可以构成软件模块(例如,机器可读介质上体现的代码)或硬件模块。“硬件模块”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件模块(例如,处理器或一组处理器)可以由软件(例如,应用或应用部分)配置为用于执行如在此所述的某些操作的硬件模块。
[0102] 在一些实施例中,硬件模块可以以机械、电子或其任何合适的组合实现。例如,硬件模块可以包括永久配置为执行某些操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件模块还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件模块可以包括由通用处理器或其它可编程处理器执行的软件。一旦由此类软件配置,硬件模块成为特定的机器(或机器的特定组件),其被独特地定制以执行所配置的功能并且不再是通用处理器。可以理解,可以通过成本和时间考虑来驱动在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件模块的决定。
[0103] 因此,短语“硬件模块”应被理解为包含有形实体,是物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)从而以某种方式操作或执行在此所述的某些操作的实体。如在此所使用的,“硬件实现的模块”指的是硬件模块。考虑其中硬件模块被临时配置(例如,编程)的实施例,不需要在任何一个时刻配置或实例化硬件模块中的每一个硬件模块。例如,在硬件模块包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为相应的不同的专用处理器(例如,包括不同的硬件模块)。因此,软件配置特定的一个或多个处理器,例如,在一个时刻构成特定的硬件模块,并在不同的时刻构成不同的硬件模块。
[0104] 硬件模块可以向其它硬件模块提供信息并从其接收信息。因此,所描述的硬件模块可以被视为通信地耦接。在同时存在多个硬件模块的情况下,可以通过在两个硬件模块之间或更多个硬件模块之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件模块的实施例中,可以例如通过对多个硬件模块可访问的存储器结构中的信息的存储和取得,来实现此类硬件模块之间的通信。例如,一个硬件模块可以执行操作并将该操作的输出存储在与其通信耦接的存储器装置中。然后,另一硬件模块可以稍后访问存储器装置以取得和处理存储的输出。硬件模块还可以发起与输入或输出装置的通信,并且可以在资源(例如,信息集合)上操作。
[0105] 在此描述的示例方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时配置还是永久配置,此类处理器构成处理器实现的模块,该模块操作以执行在此描述的一个或多个操作或功能。如在此所使用的,“处理器实现的模块”是指使用一个或多个处理器实现的硬件模块。
[0106] 类似地,在此描述的方法可以至少部分地由处理器实现,其中特定的一个处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或多个处理器或处理器实现的模块执行。此外,一个或多个处理器还可以操作以支持“计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)并且经由一个或多个适当的接口(例如,应用程序接口(API))来访问。
[0107] 操作中的某些操作的性能可以在处理器之间分配,不仅驻留在单个机器内,而且部署在多个机器上。在一些示例实施例中,处理器或处理器实现的模块可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其它示例实施例中,处理器或处理器实现的模块分布在多个地理位置上。
[0108] 在机器和相关联软件架构的上下文中的一些实施例中,实现结合以上描述的模块、方法、应用等。以下部分描述了适用于所公开实施例的代表性软件架构和机器(例如,硬件)架构。
[0109] 软件架构与硬件架构结合使用以生成针对特定目的而定制的装置和机器。例如,与特定软件架构耦接的特定硬件架构将生成移动装置,诸如移动电话、平板装置等。稍微不同的硬件和软件架构可以产生用于“物联网”的智能装置,而另一种组合产生用于云计算架构内的服务器计算机。这里并未呈现此类软件和硬件架构的所有组合,因为本领域技术人员可以容易地理解如何在与在此包含的公开内容不同的上下文中实现各种实施例。
[0110] 图13示出了由眼镜31的正透视图示出的某些实施例的方面。在一些实施例中,眼镜31可以是客户端配套装置114或可穿戴装置,其用于采集包括光学代码和配对代码的图像,作为在眼镜31和主机装置之间创建安全通信的操作的部分。眼镜31可包括由任何合适的材料(诸如塑料或金属,包括任何合适的形状记忆合金)制成的框架32。框架32可具有前件33,前件33可包括:第一或左透镜、显示或光学元件支架36;以及通过桥38连接的第二或右透镜、显示或光学元件支架37。前件33另外包括左端部分41和右端部分42。第一或左光学元件44和第二或右光学元件43可以设置在相应的左光学元件支架36和右光学元件支架37内。光学元件43、44中的每一个可以是透镜、显示器、显示组件或前述的组合。可以在眼镜31中提供在此公开的任何显示组件。
[0111] 框架32另外包括左臂或镜腿件46和第二臂或镜腿件47,其通过诸如铰链(未示出)的任何合适的部件耦接到前件33的相应的左端和右端部分41、42,以便耦接到前件33,或者刚性地或可固定地紧固到前件,以便与前件33结合成一体。镜腿件46和47中的每一个可包括耦接到前件33的相应端部部分41或42的第一部分51,以及用于耦接到用户的朵的任何合适的第二部分52(诸如弯曲或弓形件)。在一个实施例中,前件33可由单件材料形成,以便具有整体或一体结构。
[0112] 眼镜31可以包括计算装置(诸如计算机61),其可以是任何合适的类型,以便由框架32承载,并且在一个实施例中,具有合适的尺寸和形状,以便至少部分地设置在镜腿件46和47中的一者中。在一个实施例中,如图13中所示,计算机61的尺寸和形状类似于镜腿件46和47中的一个镜腿件的尺寸和形状,并且因此几乎完全(如果不是完全地)设置在此类镜腿件46和47的结构和范围内。在一个实施例中,计算机61可以设置在两个镜腿件46、47两者中。计算机61可以包括具有存储器、无线通信电路和电源的一个或多个处理器。在某些实施例中,计算机61包括低功率电路、高速电路和显示处理器。各种其它实施例可以包括不同配置的或者以不同方式集成在一起的此类元件。
[0113] 计算机61另外包括电池62或其它合适的便携式电源。在一个实施例中,电池62被设置在镜腿件46或47中的一个镜腿件中。在图13中所示的眼镜31中,电池62被示出为设置在左镜腿件46中并且使用连接74电连接到设置在右镜腿件47中的计算机61的其余部分。一个或多个输入和输出装置可包括连接器或端口(未示出),其适于对可从框架32的外部接入的电池62、无线接收机、发射机或收发机(未示出)或此类装置的组合充电。
[0114] 眼镜31包括相机69。虽然描绘了两个相机,但是其它实施例考虑使用单个或附加(即,多于两个)相机。在各种实施例中,除了相机69之外,眼镜31可包括任何数量的输入传感器或外围装置。前件33设置有当眼镜31安装在用户的脸上时朝外或远离用户的朝外、朝前、或前或外表面66,以及当眼镜31安装在用户的脸上时面向用户的脸部的相对的朝内、朝后、或后或内表面67。此类传感器可以包括面向内的视频传感器或数字成像模块,诸如可以安装在前件33的内表面67上或者设置在前件33的内表面67内或在框架32的其它地方的相机,以便面向用户;以及面向外的视频传感器或数字成像模块,诸如相机69,其可安装在前件33的外表面66上或设置有前件33的外表面66或在框架32上的其它地方,以便背离用户。此类传感器、外围装置或外围设备可另外包括生物度量传感器、位置传感器或任何其它此类传感器。在另外的实施例中,类似的元件可以作为遮阳板(visor)在头盔或基于google的系统内、在车辆HUD显示器中或在任何其它此类装置中呈现。
[0115] 图14是示出可以与在此描述的各种硬件架构结合使用的代表性软件架构2002的框图2000。图14仅仅是软件架构的非限制性示例,并且可以理解,可以实现许多其它架构以便于实现在此描述的功能。软件架构2002可以在诸如图15的机器2100的硬件上执行,机器2100包括处理器2110、存储器/存储装置2130和输入/输出(I/O)组件2150等。代表性硬件层
2004被示出并且可以表示例如图15的机器2100。代表性硬件层2004包括具有相关联的可执行指令2008的一个或多个处理单元2006。可执行指令2008表示软件架构2002的可执行指令,包括上述图和描述中的方法、模块等的实施方式。硬件层2004还包括存储器和存储模块
2010,其也具有可执行指令2008。硬件层2004还可以包括如2012指示的其它硬件,其表示硬件层2004的任何其它硬件,诸如作为机器2100的部分示出的其它硬件。
[0116] 在图14的示例架构中,软件2002可以被概念化为层的堆栈,其中每个层提供特定的功能。例如,软件2002可以包括诸如操作系统2014、库2016、框架/中间件2018、应用2020和呈现层2022的层。在操作上,应用2020或层内的其它组件可以通过软件堆栈调用API调用2024,并响应于API调用2024接收被示为消息2026的响应、返回值等。所示的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件层2018,而其它操作系统可能提供此类层。其它软件架构可以包括附加的层或不同的层。
[0117] 操作系统2014可以管理硬件资源并提供公共服务。操作系统2014可以包括例如内核2028、服务2030和驱动器2032。内核2028可以用作硬件和其它软件层之间的抽象层。例如,内核2028可以负责存储器管理、处理器管理(例如,调度)、组件管理、网络、安全设置等。服务2030可以为其它软件层提供其它公共服务。驱动器2032可以负责控制底层硬件或与底层硬件接口连接。例如,驱动器2032可以包括显示驱动器、相机驱动器、 驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、 驱动器、音频驱动器、电源管理驱动器等,这取决于硬件配置。在示例实施例中,操作系统2014包括成像服务2033,其可以提供图像处理服务,诸如硬件加速图像处理;或图像采集服务,诸如对光学传感器或光学传感器数据的低级别访问。
[0118] 库2016可以提供可以由应用2020或其它组件或层使用的公共基础结构。库2016通常提供允许其它软件模块以比直接与底层操作系统2014功能(例如,内核2028、服务2030或驱动器2032)直接接口连接更容易的方式执行任务的功能。库2016可以包括系统2034库(例如,C标准库),其可以提供诸如存储器分配功能、字符串操作功能、数学功能等的功能。此外,库2016可以包括API库2036,诸如媒体库(例如,用于支持各种媒体格式(诸如MPREG4、H.264、MP3、AAC、AMR、JPG或PNG)的呈现和操作的库)、图形库(例如,可用于在显示器上的图形内容中呈现2D和3D的OpenGL框架)、数据库库(例如,可提供各种关系数据库功能的SQLite)、web库(例如,可提供web浏览功能的WebKit)等。库2016还可以包括各种其它库2038,以向应用2020和其它软件组件/模块提供许多其它API。在示例实施例中,库2016包括成像库2039,成像库2039提供可由自定义图案系统160利用的图像处理或图像采集功能。
[0119] 框架2018(有时也称为中间件)可以提供可以由应用2020或其它软件组件/模块利用的更高级别的公共基础结构。例如,框架2018可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架2018可以提供可以由应用2020或其它软件组件/模块利用的宽范围的其它API,其中的一些可以针对特定操作系统或平台。在示例实施例中,框架2018包括图像处理框架2022和图像采集框架2023。图像处理框架2022可以为可以在自定义图案系统160的方面中使用的图像处理功能提供高级别支持。类似地,图像采集框架2023可以为采集图像和与光学传感器接口连接提供高级支持。
[0120] 应用2020包括内置应用2040或第三方应用2042。代表性内置应用2040的示例可包括但不限于联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用或游戏应用。第三方应用2042可以包括任何内置应用以及各种其它应用。在特定示例中,第三方应用2042(例如,由特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具TM TM包(SDK)开发的应用)可以是在移动操作系统(诸如IOS 、ANDROID 、 Phone或其它移动操作系统)上运行的移动软件。在该示例中,第三方应用2042可以调用由诸如操作系统2014的移动操作系统提供的API调用2024,以便于实现在此描述的功能。在示例实施例中,应用2020包括消息传递应用2043,其包括作为应用的一部分的自定义图案系统160。
在另一实施例中,应用2020包括单机应用2045,其包括自定义图案系统160。
[0121] 应用2020可以利用内置操作系统功能(例如,内核2028、服务2030或驱动器2032)、库(例如,系统2034、API 2036和其它库2038)、框架/中间件2018来创建用户界面以与系统用户交互。可替代地或另外地,在一些系统中,与用户的交互可以通过呈现层(诸如呈现层2044)发生。在这些系统中,应用/模块“逻辑”可以与和用户交互的应用/模块的方面分开。
[0122] 一些软件架构利用虚拟机。在图14的示例中,这由虚拟机2048示出。虚拟机创建软件环境,其中应用/模块可以如同在硬件机器(例如诸如图15的机器)上执行而执行。虚拟机由主机操作系统(图15中的操作系统2014)管理,并且典型地但不总是具有虚拟机监测器2046,其管理虚拟机的操作以及与主机操作系统(即操作系统2014)的接口连接。软件架构在虚拟机内执行,诸如操作系统2050、库2052、框架/中间件2054、应用2056或呈现层2058。
在虚拟机2048内执行的这些软件架构层可以与先前描述的对应层相同,或者可能不同。
[0123] 图15是示出根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行在此所讨论的任何一种或多种方法的机器2100的组件的框图。具体地,图15示出了以计算机系统的示例形式的机器2100的图形表示,在该计算机系统内可以执行用于使机器2100执行在此所讨论的任何一种或多种方法的指令2116(例如,软件、程序、应用、小程序、应用软件或其它可执行代码)。另外或替代地,指令可以实现图2的通信模块210、呈现模块220、取景器模块230、对准模块240、解码器模块250、动作模块260或编码器模块270等。指令将通用的未编程的机器转换成被编程为以所描述的方式执行所描述和示出的功能的特定的机器。在替代实施例中,机器2100作为独立装置操作或者可以耦接(例如,网络连接)到其它机器。在联网部署中,机器2100可以以在服务器-客户端网络环境中以服务器机器或客户端机器的能力操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器2100可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、PDA、娱乐媒体系统、蜂窝电话、智能电话、移动装置、可穿戴装置(例如,智能手表)、智能家居装置(例如,智能家电)、其它智能装置、网络装置、网络路由器、网络交换机、网络桥接器、或者能够顺序地或以其它方式执行指定机器
2100将采取的动作的指令2116的任何机器。此外,虽然仅示出单个机器2100,但是术语“机器”同样可被认为包括单独或联合执行指令2116以执行在此所讨论的任何一种或多种方法的机器2100的集合。
[0124] 机器2100可包括处理器2110、存储器/存储装置2130以及I/O组件2150、其可被配置成诸如经由总线2102彼此通信。在示例实施例中,处理器2110(例如,中央处理单元(CPU)、简化指令集计算(RISC)处理器、复合指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可包括例如可以执行指令2116的处理器2112和处理器2114。术语“处理器”旨在包括多核处理器,多核处理器可以包括可以同时执行指令1116的两个以上独立处理器(有时称为“核”)。尽管图15示出了多个处理器2110,但是机器2100可以包括单个具有单核的处理器、单个具有多核的处理器(例如,多核处理器)、多个具有单核的处理器、多个具有多核的处理器或其任何组合。
[0125] 存储器/存储装置2130可以包括存储器2132(诸如,主存储器或其它存储器存储装置)以及存储单元2136,两者都可以诸如经由总线2102由处理器2110访问。存储单元2136和存储器2132存储体现在此描述的任何一种或多种方法或功能的指令2116。在机器2100的执行期间,指令2116还可以完全或部分地驻留在存储器2132内、在存储单元2136内、在处理器2110中的至少一个处理器内(例如,处理器的高速缓冲存储器内)、或其任何合适的组合。因此,存储器2132、存储单元2136和处理器2110的存储器是机器可读介质的示例。
[0126] 如在此所使用的,术语“机器可读介质”表示能够临时或永久地存储指令和数据的装置,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光学介质、磁介质、高速缓冲存储器、其它类型的存储装置(例如,可擦除可编程只读存储器(EEPROM))或其任何合适的组合。术语“机器可读介质”应当被认为包括能够存储指令2116的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还可被视为包括能够存储由机器(例如,机器2100)执行的指令(例如,指令2116)的任何介质或多个介质的组合,使得指令在由机器2100的一个或多个处理器(例如,处理器2110)执行时使机器2100执行在此描述的任何一种或多种方法。因此,“机器可读介质”是指单个存储设备或装置,以及包括多个存储设备或装置的“基于云”的存储系统或存储网络。术语“机器可读介质”排除信号本身。
[0127] I/O组件2150可包括用于接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等的各种组件。在特定机器中包括的特定I/O组件2150将取决于机器的类型。例如,诸如移动电话的便携式机器可能包括触摸输入装置或其它此类输入机构,而无头服务器机器可能不包括此类触摸输入装置。可理解,I/O组件2150可以包括图15中未示出的许多其它组件。I/O组件2150根据功能分组仅是为了简化以下讨论,并且分组决不是限制性的。在各种示例实施例中,I/O组件2150可包括输出组件2152和输入组件2154。输出组件2152可包括视觉组件(例如,显示器,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、听觉组件(例如扬声器)、触觉组件(例如振动电机电阻机构)、其它信号发生器等。输入组件2154可包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标触摸板轨迹球、操纵杆、运动传感器或其它指示仪器)、触知输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏、或其它触知输入组件)、音频输入组件(例如,麦克风)等。
[0128] 在另外的示例实施例中,I/O组件2150可包括各种其它组件中的生物度量组件2156、运动组件2158、环境组件2160或定位组件2162。例如,生物度量组件2156可包括检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件2158可包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件2160可包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,用于为了安全而检测危险气体浓度或测量大气中的污染物的气体检测传感器)或可能提供与周围物理环境相对应的指示、测量或信号的其它组件。定位组件2162可包括定位传感器组件(例如,全球定位系统(GPS)接收器组件)、高度传感器组件(例如,高度计或气压计,其可以检测可以从哪个高度导出的空气压力)、取向传感器组件(例如,磁力计)等。
[0129] 通信可以使用各种技术来实现。I/O组件2150可以包括通信组件2164,其可操作以分别经由耦接器2182和耦接器2172将机器2100耦接到网络2180或装置2170。例如,通信组件2164包括网络接口组件或与网络2180接口连接的另一合适装置。在另外的示例中,通信组件2164包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、组件(例如, )、 组件和经由其它模式提供通信的其它通信组件。装置2170可以是另一机器或各种各样的外围装置(例如,经由USB耦接的外围装置)中的任何一个。
[0130] 此外,通信组件2164可检测标识符或包括可操作以检测标识符的组件。例如,通信组件2164可包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,光学传感器,其用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)代码、Aztec代码、数据矩阵、数字图形、最大码、PDF417、超码、统一商业代码缩减空格符号(UCC RSS)-2D条形码和其它光学代码的多维条形码)、声学检测组件(例如,用于识别标记的音频信号的麦克风)或其任何合适的组合。此外,可以经由可以指示特定位置的通信组件2164来导出各种信息,诸如经由因特网协议(IP)地理位置的位置、经由 信号三角测量的位置、经由检测 或NFC信标信号的位置等。
[0131] 在各种示例实施例中,网络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)标准、由各种标准制定组织定义的其它标准、其它远程协议或其它数据传输技术。
[0132] 指令2116可经由网络接口装置(例如,在通信组件2164中包括的网络接口组件)使用传输介质并且利用多个公知的传输协议(例如,HTTP)中的任何一个来通过网络2180发送或接收。类似地,可使用传输介质经由耦接2172(例如,对等耦接)向装置2170发送或接收指令2116。术语“传输介质”可被视为包括能够存储、编码或承载由机器2100执行的指令2116的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以便于此类软件的通信实现。
[0133] 在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。虽然将一种或多种方法的单独操作示出和描述为单独的操作,但可以同时执行一个或多个单独的操作,并且不需要以所示顺序执行操作。作为示例配置中的单独组件呈现的结构和功能可以被实现为组合的结构或组件。类似地,作为单个组件呈现的结构和功能可以被实现为分开的多个组件。这些和其它变化、修改、添加和改进落入本文主题的范围内。
[0134] 虽然已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的此类实施例在此可以单独地或集体地由术语“发明”指代,这仅仅为了方便,如果事实上公开了多于一个则不旨在将本申请的范围限制于任何单个公开内容或发明构思。
[0135] 在此示出的实施例足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用和从中导出其它实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被认为是限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。
[0136] 如在此所使用的,术语“或”可以以包含或排除的方式来解释。此外,可以为在此所述的资源、操作或结构提供多个实例作为单个实例。此外,各种资源、操作、模块、引擎和数据存储之间的边界是一定程度上任意的,并且在特定说明性配置的上下文中示出了特定的操作。可以设想功能的其它分配,并且这些其它分配可以落入本公开的各种实施例的范围内。通常,作为示例配置中的分离的资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为分离的资源。这些和其它变化、修改、添加和改进落入由所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的而不是限制性的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈