用于信使处理的可穿戴设备及其使用方法与流程

文档序号:11935015阅读:388来源:国知局
用于信使处理的可穿戴设备及其使用方法与流程

本申请要求2014年5月15日提交的题为“Wearable Device for Symbiotic Interaction”的美国临时专利申请号61/993,868的权益,其内容通过引用以其整体并入本文。

技术领域

公开的实施例一般涉及用于处理信息的可穿戴设备,并且更具体地而没有限制地涉及用于处理与信使(courier)服务相关联的信息的可穿戴设备。



背景技术:

在当今的数字世界中,技术在收集和处理数据中扮演重要角色。例如,在信使和普通运营商行业中,例如,用户和实体受益于用手持扫描器和读取器跟踪包裹。然而,这样的机制对于用户来说是麻烦的,并且经常需要使用手或手臂来进行必要的处理。这样的机制还可降低生产率,并且还可需要附加的额外设备,诸如独立扫描器、读卡器、成像器、摄像机、显示器等等。



技术实现要素:

公开的实施例包括用于处理信息的可穿戴设备及其使用方法。公开的实施例可使得信使和其它设备用户能够进行某些过程(例如信使服务和功能)而不使用手持工具。

公开的实施例例如包括用于执行信使服务的可穿戴设备。在一些方面,该设备包括:用于检测视场中的对象深度的深度摄像机,用于解码视觉代码的扫描器,用于响应于电信号而产生可听声音的扬声器,用于存储指令的存储器,以及通信地连接到深度摄像机、扫描器和扬声器的一个或多个处理器,一个或多个处理器被配置成运行指令以执行一个或多个操作。该操作包括:基于从深度摄像机接收的第一信号而检测扫描事件,扫描事件包括接近第一表面执行的手势输入。该操作还包括:基于手势输入的位置和深度而确定与扫描事件相关联的扫描区域。该操作还包括:向扫描器提供使扫描器解码位于扫描区域内的视觉代码的第二信号。该操作还包括:基于从扫描器接收的第三信号而生成扫描数据,第三信号反映从视觉代码获得的信息。该操作还包括:向扬声器提供使扬声器响应于生成扫描数据而发出通知声音的第四信号。

公开的实施例例如还包括一种用于使用可穿戴电子设备执行信使服务的计算机实现的方法,可穿戴电子设备包括:用于检测视场中的对象深度的深度摄像机,用于解码视觉代码的扫描器,用于响应于电信号而产生可听声音的扬声器,以及促进绕人手臂的上部分穿戴设备的连接器,使得设备在被穿戴时具有大体上椭圆形的横截面,包括一个或多个操作的方法在一个或多个处理器上执行。该操作包括:基于从深度摄像机接收的第一信号而检测扫描事件,扫描事件包括接近第一表面执行的手势输入。该操作还包括:基于手势输入的位置和深度而确定与扫描事件相关联的扫描区域。该操作还包括:向扫描器提供使扫描器解码位于扫描区域内的视觉代码的第二信号。该操作还包括:基于从扫描器接收的第三信号而生成扫描数据,第三信号反映从视觉代码获得的信息。该操作还包括:向扬声器提供使扬声器响应于生成扫描数据而发出通知声音的第四信号。

公开的实施例的附加的特征和优点将在随后的描述中被部分地阐述,并且将部分地从描述中显而易见,或者可通过公开的实施例的实践学习。公开的实施例的特征和优点将借助于在所附权利要求中特别指出的元件和组合来实现和获得。

将理解的是:前述的一般描述和下面的详细描述两者都仅仅是示例和解释性的,并且不限制如所要求保护的公开的实施例。

附图构成本说明书的一部分。绘图图示本公开的若干实施例,并且连同描述一起用于解释如在所附权利要求中阐述的公开的实施例的原理。

附图说明

图1描绘与公开的实施例一致的示例性可穿戴处理设备。

图2A描绘与公开的实施例一致的可穿戴处理设备的示例性组件的框图。

图2B描绘与公开的实施例一致的可穿戴设备的示例性功率相关组件的框图。

图3描绘与公开的实施例一致的示例性系统环境。

图4A描绘与公开的实施例一致的在用户手臂上的穿戴设备的示例性图示。

图4B描绘与公开的实施例一致的当被穿戴时的示例性设备的横截面。

图5A描绘与公开的实施例一致的深度摄像机的示例性深度场。

图5B描绘与公开的实施例一致的用于定尺寸(dimensioning)目的的深度场中的示例性对象。

图6描绘与公开的实施例一致的用于为对象定尺寸的示例性过程的流程图。

图7A描绘与公开的实施例一致的投影到表面上的示例性交互界面。

图7B描绘与公开的实施例一致的从视觉代码获得信息的示例性设备。

图8描绘与公开的实施例一致的用于扫描视觉代码的示例性过程的流程图。

图9描绘与公开的实施例一致的用于处理签名的示例性过程的流程图。

图10描绘与公开的实施例一致的用于在网络设备之中传输数据的示例性过程的流程图。

图11描绘与公开的实施例一致的用于禁用设备功能的示例性过程的流程图。

具体实施方式

公开的实施例包括用于在免提或接近免提环境中执行信息处理的设备、装置、系统和方法。公开的实施例可使得信使和其他设备用户能够在不使用手持工具的情况下进行某些过程(例如信使服务和功能)。例如,如本文公开的可穿戴设备可以处理信息,诸如扫描条形码,接受签名,监视用户,提供通知,建模环境和其它处理,全部没有在人的手中握持物理设备。公开的实施例的方面还可提供个性化和加固设备以用于在各种环境中使用并且用于各种用户。

在一些方面,与公开的实施例一致的可穿戴设备可提供一个或多个技术优点。在一些方面,设备可使得信使和其他用户能够在不使用手持设备的情况下执行信使服务和其它功能。这可允许用户使得第二只手可用于其它用途,诸如举起对象,搬运包裹,签署文件,操作车辆等。另外,第二只手的使用可改进信使生产力并提供健康益处,诸如使得用户能够用双手搬运包裹,搬运附加包裹等等。此外,公开的实施例的方面可组合若干这样的手持设备的功能性,从而减少对于完成某些任务必要的设备或组件的数量。与公开的实施例一致的可穿戴设备还可准许个性化和定制设备外观和功能性,因此适应广泛的用户并解决诸如用户卫生之类的其它关注。鉴于公开的实施例,其它改进对本领域普通技术人员将是显而易见的,并且列出以上某些优点仅仅为了说明性目的。

现在将对实施例进行详细地参考,该实施例的示例被图示在附图中。只要可能,就将贯穿绘图使用相同的附图标记来指代相同或相似的部件。此外,虽然可结合“设备”来描述某些特征,但是应当从上下文理解:这些特征可经由能够执行该功能的设备组件来实现,该设备组件包括硬件和/或在设备上执行的软件指令。

图1描绘与公开的实施例一致的示例性可穿戴处理设备100。设备100包括能够描写、接收、获得、收集、处理、传送和显示信息的可穿戴设备。在某些实施例中,设备100可以是深度感测、数据收集、图像投影系统,该系统促进在与公开的实施例一致的过程中使用的各种领域中的交互、多点触摸、手势或听觉应用。如下所述,设备100可响应于一个或多个输入事件而进行与公开的实施例一致的过程。

设备100可包括被配置成将图像、视频、文本、界面或其它信息投影或显示到与公开的实施例一致的表面上的一个或多个投影仪110。在某些方面,投影仪110可包括微微投影仪(例如,Microvision微微投影仪),该微微投影仪能够使用对本领域普通技术人员已知的任何方法(例如,DLP、LCoS、激光束操纵等)和如本文公开的任何方法来将图像、视频、文本等投影到表面上。表面可包括任何区域,诸如屏幕、墙壁、桌子、人体部位(例如,手臂、手、腿等)、容纳表面(例如,记事本、纸张、书等)、车辆、桌子、盒子、地板、镜子、窗户或充分平坦得足以有意义地传送用投影仪110投影的图像、视频或其它信息的任何其他区域。在一些实施例中,表面可包括多个表面(例如,手、书桌和墙壁等)。投影仪110可提供图片或图形元素的无焦点、广角投影,而不管到表面的距离(例如,离投影仪110的距离)如何。如下所述,设备100可包括向和从投影仪100传递信号和信息以进行与公开的实施例一致的过程(例如,显示界面等)的硬件和软件组件(例如,电路、软件指令等)。

在某些实施例中,设备100可包括用于扫描、解码、读取、感测、成像、捕获和/或解释与公开的实施例一致的视觉代码的一个或多个扫描器120。在一些方面,扫描器120可被配置成处理激光、线性或区域成像。例如,在一个方面,扫描器120可包括用于扫描、读取和解码一维或二维条形码的成像器(例如,Cognex、Intermec或Unitech 2D成像器或任何2D成像器)。扫描器120可包括能够从与公开的实施例一致的视觉代码提取信息的任何成像器、条形码扫描器或视觉代码扫描器。在一些实施例中,扫描器120可机械地耦合到或包括接头、转头、可旋转透镜、枢轴、轮或其它定向装置等,使得设备100可在各种方向上将扫描器120定向到点。在某些方面,公开的实施例使得设备100能够经由扫描器120处理扫描的条形码、图像和其它数据。设备100可包括用于向和从扫描器120传输信号和信息以进行与公开的实施例一致的过程的适当的硬件和软件组件(例如,电路、软件指令等)。

设备100可包括用于捕获、处理、感测、观察、建模、检测三维环境和与三维环境交互的一个或多个深度摄像机130。在某些方面,深度摄像机130可识别和检测在其视场中的对象的深度和颜色(例如,与结合图5A和5B所述的实施例一致)。深度摄像机130还可提供其它摄像机和视频记录器功能性,诸如拍摄图片,记录视频,流式传输图像或其它数据,将数据存储在图像缓冲器中等。这些功能性可包括或可不包括深度信息。结合与公开的实施例一致的硬件和/或软件过程,设备100可经由深度摄像机130确定对象的大小、定向和视觉特性。与公开的实施例一致的方面还可使得设备100能够使用深度摄像机130识别和处理手势和其它交互。深度摄像机130可包括或体现能够处理本文公开的过程的对本领域普通技术人员已知的任何深度摄像机(例如,来自PrimeSense、SoftKinetic、Creative等的深度摄像机)。设备100可包括用于向和从深度摄像机130传输信号和信息以进行与公开的实施例一致的过程(例如,为对象定尺寸,确定表面深度和定向等)的适当的硬件和软件组件(例如,电路、软件指令等)。如下所述,深度摄像机130可检测若干类型的输入事件,例如手势输入(例如,身体移动)和界面输入(例如,与经由投影仪110投影的界面的交互)。

设备100可包括用于描写、传达和显示信息的一个或多个显示器140。显示器140可包括能够呈现或提供诸如文本、图像、视频、界面等等之类的信息的任何数字显示器(例如,单色显示器、LCD显示器、LED显示器、2D显示器、光谱3D显示器等)。在一些方面,显示器140还可包括触摸屏显示器。在这些实施例中,设备100可经由显示在显示器140上的触摸屏界面而从用户接收显示器输入。可在设备140中使用经由显示器140接收的显示器输入以进行与公开的实施例一致的过程。设备140可包括用于向和从显示器140传递信号和信息以进行与公开的实施例一致的过程的适当的硬件和软件组件(例如,电路、软件指令等)。

在一些方面,设备100可包括用于产生声音或听觉信号以用于在与公开的实施例一致的过程中使用的一个或多个扬声器150。例如,扬声器150可包括响应于电音频信号输入而产生可听见的声音的电声换能器或结合所述电声换能器来操作。扬声器150可被配置成通过对本领域普通技术人员已知的任何过程(例如,电磁感应等)而生成听觉输出。替代地或另外,设备100可配备有支持音频耳机的音频插孔。音频可包括与公开的实施例一致的经由蓝牙设备接收的音频信息或通过其它音频通信路径(例如,RF链路、公共交换电话网络等)接收的音频信号。设备100可包括用于向和从扬声器150传递信号和信息的适当的硬件和软件(例如,电路和软件指令)。

设备100可包括用于将声音转换为电信号(例如,作为声电换能器或其它传感器)以用于在与公开的实施例一致的过程中使用的一个或多个麦克风160。麦克风160可被配置成响应于环境声学而通过对本领域技术人员已知的过程(例如,电磁感应、电容改变、压电发电、光纤等)生成电信号。在一些实施例中,麦克风160可与前置放大器电通信,虽然这样的配置不是必需的。如下所述,设备100包括向和从麦克风160传递电信号以进行与公开的实施例一致的过程(例如,接收音频输入作为输入事件,记录和保存音频数据等)的必要硬件或软件。

在某些实施例中,设备100可包括被配置成接收、捕获、处理和解释生物声学信息的一个或多个生物声学传感器170。在一些方面,生物声学信息可包括在皮肤到皮肤接触(例如,当手指敲击手臂、手掌、另一个手指等时)、身体移动(例如,形成拳头)或其它身体刺激时产生的活体中和活体上的声学(例如,振动)。在一些实施例中,生物声学传感器170可包括单个传感器或传感器的阵列,如图1中所描绘。例如,在一个实施例中,生物声学传感器170可包括被设计为检测整个人体的振动的压电膜的阵列(例如,MiniSense 100,其它悬臂型振动传感器等)。设备100可包括用于向和从生物声学传感器170传递信号和信息以进行与公开的实施例一致的过程的适当的硬件和软件组件(例如,电路、软件指令等)。如下所述,生物声学传感器170可辅助检测某些类型的输入事件,诸如手势输入。

在一些实施例中,设备100可包括被配置成便于穿戴设备100的条、带、框或其它这样的连接器180。在一些方面,连接器180可以是刚性的或可调节成适应不同身体类型的用户(例如,经由弹性条、可调节的带、可弯曲框等)。另外或替代地,连接器180并且可包括紧固设备(例如,一个或多个Velcro(维可牢尼龙搭扣)区域、钩子、带、带扣、扣子、钮扣、拉带等)以固定连接器180或设备100。在一些方面,连接器180可被设计成使得设备100在被穿戴时舒适地搁置在人体的特定部分上(诸如手臂的上部)。例如,连接器180可包括带或条,使得当设备100被穿戴时(例如,连接器180处于连接状态),设备展现大体上椭圆形的横截面。在一些方面,连接器180可总是处于连接状态(例如,连接器是可调节的带),而在其它方面,连接器180可仅仅在能够被可靠地穿戴时处于连接状态(例如,连接器是Velcro片)。在某些实施例中,当施加一定量的压力时,连接器180可断开、脱离或调节。例如,在一个方面,当被夹在对象(例如,传送带、门等)中时,连接器180可脱离。连接器180也可以是可从设备100移除的,使得可安装不同类型的连接器(例如,由于用户身体类型、用户偏好、更强的合身、工作要求等)。

虽然图1描绘包括在设备100中的某些设备组件,但是设备可包括其它组件,省略描绘的组件,包括相同组件的多个实例,和/或组合一些但不是全部的图示的组件。例如,在一个说明性方面,设备100可不包括扬声器150、麦克风160或连接器180。另外,设备100可包括图1中未示出的其它组件。例如,设备100可包括组件,诸如诸如加速度计、GPS接收器、振动电机、无线电链路、SIM卡、RFID芯片、音频插孔、蓝牙系统、连接器端口(例如,USB、Lighting、DVI、HDMI、任何I/O端口等)、生物计量扫描器、物理按钮(例如,音量按钮、静音按钮、用于提供其它输入的按钮、与显示器140相关联的按钮等)、键盘、指示笔支架、摄像机、读卡器或能够接收、处理或生成信息和/或促进信息交换的任何其它种类的组件。在又一个示例中,设备100可包括若干深度摄像机130以进行与公开的实施例一致的附加过程(例如,通过从与若干视点相关联的深度数据生成视差信息)。设备100可包括实现这些设备所必需的必要的外围设备、电路、布线、接收器、软件指令等。

在一些方面,设备100可包括组合与公开的实施例一致的其它组件的功能性的组件。例如,设备100可包括一个或多个组件,其中扫描器120和深度摄像机130占据相同的物理空间。在另一个示例中,扫描器120和/或深度摄像机130可在相同的物理组件中来实现,其提供与扫描器、成像器、深度摄像机/深度传感器和摄像机一致的功能性。

在某些方面,设备100及其包括的组件可以诸如允许模块化升级(例如,与诸如Google ARA之类的模块化实现方式一致)的这样的方式来安装。在一些实施例中,模块化升级可包括配备成与设备100对接的任何可移除的、可交换的、可升级的和/或可互换的模块。在某些方面,模块化升级可包括改进、补充或组合设备100的现有组件的功能性的设备组件。例如,设备100可包括模块化组件,使得用户可升级特定组件(例如,深度摄像机130)或添加基本设计中不存在的功能性(例如,读卡器)。模块化升级可包括与公开的实施例一致的任何设备组件(例如,扫描器、读卡器、GPS设备、加速度计、深度摄像机等)。

此外,虽然图1描绘包括设备100的组件的特定布局,但是与公开的实施例一致的设备包括设备组件的任何布置。例如,在一个说明性方面,设备100可被配置成在设备的特定侧(例如,右侧)上将投影仪110和扫描器120紧密地分组在一起。在另一个示例中,设备100可被配置成使得扫描器120和深度摄像机130驻留在设备的相对端,以便于促进较宽的视场识别并且增加由组件所对的视差角。图1中描绘的特定组件和组件的布局是示例性的,并且仅仅用于说明性目的。

图2A描绘与公开的实施例一致的可穿戴处理设备100的示例性组件的框图。在一些实施例中,设备100可包括一个或多个处理器202,该处理器连接到通信主干206,诸如总线、电路、布线或外部通信网络(例如,数字数据通信的任何介质,诸如LAN、MAN、WAN、蜂窝网络、WiFi网络、NFC链路、蓝牙、GSM网络、PCS网络、图6的网络320等,以及任何相关联的协议,诸如HTTP、TCP/IP、RFID等)。设备100的任何组件可通过主干206传送信号以交换信息和/或数据。例如,在一个方面,投影仪110、扫描器120、深度摄像机130、显示器140、扬声器150、麦克风160和/或生物声学传感器170可与彼此交换信息,向处理器202提供信息或信号或从处理器202接收信息或信号,存储或检索存储器中的信息,向外部计算系统提供信息或从外部计算系统接收信息等等。在一些实施例中,未在图2中描绘的组件也可通过主干206通信,诸如加速度计、RF电路、GPS跟踪器、振动马达、读卡器等。例如,设备100可包括用于从卫星接收位置和时间信息的GPS接收器(未示出),并且可向设备的其它组件(诸如处理器202)传送这样的信息。

在一些方面,处理器202和附随硬件和/或软件可充当用于设备100的组件的控制器。例如,处理器202可结合硬件组件或软件指令来控制向和从每一个设备组件的信号的传送、接收和处理,以进行和管理与本文所述的那些一致的过程。处理器202还可控制向和从与以下所述的实施例一致的外部设备和计算系统的信息和信号的接收、处理和传送。从而,虽然结合处理器202描述某些方面,但是应当理解:这些实施例也可经由与附随设备组件或计算系统通信的控制器来实现。

在某些方面,设备100可包括主存储器208。主​​存储器208可包括随机存取存储器(RAM),该随机存取存储器表示存储用处理器202执行计算机程序、指令集、代码或数据的有形和非暂时计算机可读介质。当由处理器202执行时,这样的指令、计算机程序等使得处理器202或设备100的其它组件能够执行与公开的实施例一致的一个或多个过程或功能。在一些方面,这样的指令可包括机器代码(例如,来自编译器)和/或包含处理器202可用解释器执行的代码的文件。

在一些方面,主存储器208还可包括或连接到辅存储器210。辅存储器210可包括盘驱动器212(例如,HDD、SSD)和/或可移除存储驱动器214,诸如磁带驱动器、闪速存储器、光盘驱动器、CD/DVD驱动器等等。可移除存储驱动器214可以对本领域技术人员已知的方式从可移除存储单元218读取和/或向其写入。可移除存储单元218可表示磁带、光盘或由可移除存储驱动器214读取和由可移除存储驱动器214写入到的其它存储介质。可移除存储单元218可表示有形和非暂时性计算机可读介质,该有形和非暂时性计算机可读介质使要由处理器202执行的计算机程序、指令集、代码或数据存储在其中。

在其它实施例中,辅存储器210可包括用于允许计算机程序或其它程序指令被加载到设备100中的其它装置。这样的装置例如可包括另一个可移除存储单元218或接口220。这样的装置的示例可包括可移除存储器芯片(例如,EPROM、RAM、ROM、DRAM、EEPROM、闪速存储器设备或者其它易失性或非易失性存储器设备)和相关联的插座或其它可移除存储单元218和接口220,所述接口220允许将指令和数据从可移除存储单元218传递到设备100。

设备100还可包括一个或多个通信接口224。通信接口224可允许在设备100与外部系统(例如,除了主干206之外)之间传递软件和数据。通信接口224可包括调制解调器、天线、发射器、网络接口(例如,以太网卡)、通信端口、PCMCIA插槽和卡等。通信接口224可以信号的形式传递软件和数据,该信号可以是能够由通信接口224接收的电学、电磁、光学或其它信号。可将这些信号经由通信路径(即,信道228)提供给通信接口224。信道228携带信号并且可使用导线、电缆、光纤、RF链路、信号发射器和/或其它通信信道来实现。在一个实施例中,信号包括被发送到处理器202的数据分组。还可以以信号的形式通过通信路径228从处理器202发送表示经处理的分组的信息。

图2B描绘与公开的实施例一致的可穿戴设备100的示例性功率相关组件的框图。设备100可包括用于向设备及其组件(例如,深度摄像机130等)提供电功率的一个或多个电池252。电池252可包括用于移动设备的任何合适类型的电池,诸如可再充电电池、一次性电池、锂离子电池等。

在一些方面,设备100可包括用于从其它源向电池252或设备100提供电功率以对电池充电或供电的外围设备和电路(例如,功率端口、电缆、布线等)。例如,设备100可包括用于从自一个或多个外部功率源254递送的电功率对电池252或设备100供电的硬件。外部功率源254可包括诸如外部电池、运行AC或DC电流的电网、无线感应充电器等之类的功率源。

另外,设备100可包括用于从一个或多个光电单元256对电池252或设备100供电的外围设备和电路。在一些方面,光电单元256可包括响应于光而生成电能的任何种类的光电材料或表面。例如,光电单元256可包括光伏单元,诸如容纳层半导体材料的太阳能单元。光电单元256可作为分离的组件而被安装在设备100的表面上(例如,作为分离的单元)。在一些方面,光电单元256可被集成到设备中,使得设备100的前面板(例如,不专用于其它组件的设备的前面板的一部分或大体部分)包括光电表面。

设备100可包括用于从动能生成电能的一个或多个动能换能器258。例如,动能换能器258可包括用于从设备100的振动和移动创建电能的振动供电发电机。这样的振动例如可由于来自穿戴设备100的用户的移动、在颠簸的道路上行驶等而产生。动力换能器258的振动供电发电机可使用专门设计用于较小环境(诸如悬臂上的磁体、弹簧-质量系统等)的方法生成电能。设备100可包括用于从由动力换能器258生成的电功率对电池252或设备100供电的必要外围设备和电路。

在某些实施例中,设备100可包括促进用于使人体舒适(例如,当绕手臂周围穿戴时)的改进的设备功能性的柔软的、可弯曲的或柔性的板和电子器件(electronics)。在一些方面,柔软板可允许设备100计及不同的使用配置,诸如人类手臂的不同大小。例如,设备100的组件(例如,深度摄像机130、处理器202等)可经由电子器件的可弯曲板彼此电连接,使得组件可以在被穿戴时传递信息和数据。柔软板和电子器件可包括对本领域普通技术人员已知的任何结构,诸如例如石墨烯、柔性印刷电路、柔性扁平电缆等。

在一些实施例中,设备100可接收、获得、存储、处理、生成和提供去往和来自其它计算机系统、设备(例如设备100)和其它技术(例如,经由通信接口224)的信息。图3描绘与公开的实施例一致的设备100的示例性系统环境300。在一个方面,环境可包括与相应的一个或多个用户(例如,用户302)相关联的一个或多个可穿戴设备(例如,设备100),与主机(主机310)相关联的一个或多个系统(例如,系统312),以及与一个或多个第三方(例如,第三方330)相关联的一个或多个第三方系统(例如,第三方系统332)。一个或多个通信网络320可连接系统环境300的组件中的一个或多个。

通信网络320可包括一个或多个通信网络或数字数据通信的介质。通信网络320的示例包括局域网(“LAN”)、无线LAN、蜂窝网络、RF网络、近场通信(NFC)网络(例如,WiFi网络)、连接多个无线LAN的无线城域网(MAN)、一个或多个NFC通信链路、任何物理有线连接(例如,经由I/O端口)、个域网(PAN)(例如蓝牙)和广域网(“WAN”)(例如,因特网)。与公开的实施例一致,通信网络320可包括经由一个或多个通信协议(包括超文本传送协议(HTTP)和传输控制协议/因特网协议(TCP/IP))互连的一个或多个任何可访问的网络。与公开的实施例一致的通信协议还包括促进使用射频标识(RFID)通信和/或NFC的数据传递的协议。此外,通信网络320还可包括一个或多个移动设备网络,诸如GSM网络或PCS网络,允许设备100经由可应用的通信协议(包括本文所述的那些通信协议)发送和接收数据。

在一些实施例中,系统312可包括被配置成接收、处理、生成、提供和存储信息的一个或多个计算机系统。在某些方面,系统312还可被配置成运行软件指令以执行与公开的实施例一致的一个或多个过程。在一些示例性实施例中,系统312可与主机310相关联,虽然这样的关联不是必需的。主机310可以是与公开的实施例一致的任何类型的实体(例如,商业、公共运营商、邮政服务、企业、服务提供商、商家、军事实体、金融机构、学校等)。例如,系统312可包括与提供公共运营商或邮政服务的商业相关联的计算机系统。

系统312可包括一个或多个服务器314。在一个实施例中,服务器314可包括前端、后端和一个或多个处理器,虽然服务器314不限于这样的配置。例如,前端和后端可被合并到单个计算机、单个服务器(例如,服务器314)或对本领域普通技术人员显而易见的任何附加或替代的计算设备中。服务器314还可包括分布式计算设备和计算系统。在一个实施例中,前端可以是一个或多个软件程序,诸如由包括在服务器314中的一个或多个处理器执行的软件应用(例如,web服务)。类似地,后端可以是由包括在服务器314中的一个或多个处理器执行的一个或多个软件程序。服务器314不限于这样的配置。在附加的实施例中,前端软件可以由与执行后端的服务器或计算系统分离的服务器或计算系统执行。

服务器314可被配置成运行软件指令以执行与公开的实施例一致的一个或多个过程。在一个实施例中,例如,设备(例如,设备100)可交换促进本文公开的一个或多个过程的执行的信息。在一些方面,设备100和系统312可被配置成共享、划分、管理或协调本文公开的处理功能。例如,设备100可被配置成执行与过程相关联的某些子例程,向系统312发送信息(例如,经由网络320),并且在系统在信息上进行附加子例程之后从系统312接收经处理的信息。在另一个示例中,系统312可向设备100发送发起设备过程的输入,接收从设备获得的数据,并且在接收的数据上进行进一步的处理。以这种方式,设备100和系统312可被配置成共享处理负载,执行附加功能并交换信息。在其它方面,服务器314可执行与设备100无关的其自己的过程。例如,主机310的用户或客户可通过诸如智能电话或个人计算机之类的计算机系统访问与系统312相关联的网页或移动应用(例如,通过在服务器314上执行的web服务器),并且随后向系统312提供和从系统312接收信息,注册在系统312上托管的帐户服务等。

系统312可包括被配置成存储与公开的实施例一致的信息的一个或多个数据储存库316。在某些方面,存储在数据储存库316中的信息可包括:关于设备100的信息(例如,序列号、最后知道的通信、安装的组件等),从设备接收的信息(例如,从设备组件收集的数据)、与设备相关联的一个或多个用户相关的信息(例如,用户帐户信息,用户的登录和证书数据,诸如ID之类的用户标识数据,定制输入定义,用户偏好,校准数据等),从第三方(例如,第三方系统332)接收的信息,或者与公开的实施例一致的任何其它信息。另外或替代地,该信息可被存储在设备100的存储器(例如,存储器208或210)中。在某些方面,系统312可被配置成接收、获得、收集、采集、生成或产生信息以存储在数据储存库316中。在某些实施例中,例如,系统312可通过通信网络320接收或获得用于存储的信息。在一些方面,系统312可被配置成向设备100提供存储在数据储存库316内的信息。在其它方面,设备100可被配置成直接(例如,经由网络320)访问数据储存库316,以促进设备100与系统312之间的信息交换。系统312还可被配置成在数据储存库316中存储从设备100接收的信息。

第三方系统332可包括可包括被配置成接收、处理、生成、提供和存储信息的一个或多个计算机系统。在一些方面,第三方系统332可与第三方330相关联。第三方330可表示能够接收、提供、处理或生成去往和来自设备100和/或系统312的信息的任何商业、实体、人等。第三方系统632可包括类似于系统312的其自己的计算系统、服务器、数据储存库、处理器等。在一些方面,设备100和/或系统312可被配置成接收和提供信息,或与和公开的实施例一致的第三方系统332共享过程。

在一些方面,设备100可被配置成通过通信网络320与彼此传送、接收和交换信息。例如,在设备100中收集或生成的数据(例如,图片、扫描的条形码、视频、生成的模型等)可被传输到另一个可穿戴设备(未示出)。在该示例中,接收设备可通过网络320从设备100接收传输的信息,并且进行与公开的实施例一致的其自己的过程(反之亦然)。在一些方面,在两个或更多个设备之间交换的数据也可被传输到另一个计算机系统(例如,系统312),但是这样的传输不是必需的。例如,用户302可用设备100拍摄图片,并且经由NFC网络而向与另一个用户相关联的另一个设备发送该图片。在该示例中,接收设备可接收图片并进行进一步的处理,诸如存储图片,将图片投影到表面上(其可被重定大小、操纵等,如下所述),在设备显示器140上显示图片等等。

在一些实施例中,设备100可被配置成与未在图3中示出的其它装置、附件、机器、设备和技术对接。设备100可被配置成以与公开的实施例一致的任何方式(例如,经由网络320、设备100上的连接器端口(诸如USB端口或I/O端口)、蓝牙、专有端口或连接方法等)与这些其它技术对接。例如,设备100可被配置成与其它技术对接,在其它技术之间交换信息以及促进用其它技术处理,其它技术诸如GPS接收器、热成像器、x射线扫描器、pH读取器、望远镜、显微镜、呼气测醉仪、葡萄糖计、温度计、外部扬声器、外部显示器、智能电话、盖革计数器、激光器、读卡器、RF无线电设备、打印机、健康或医疗监视器(例如心率和血压传感器等)和/或能够收集、交换或处理信息作为输入或输出的任何其它设备。在一些替代实施例中,这些技术可被包括为设备100内的设备组件,如上所述。

在某些实施例中,这些组件还可促进多个设备或计算机系统之间的信息交换。例如,设备100可被配置成与关联于外部计算机系统(诸如系统312)的坞站(未示出)对接。设备100可被配置成经由任何有线或无线通信网络320连接到坞站。在一些实施例中,设备100可被配置成从坞站接收数据并向坞站传送数据。坞站可被配置成接收、交换、传输和同步来自设备100和系统312的信息。

虽然图3图示具有仅一个设备100的示例性系统环境300,但是公开的实施例可包括附加设备和用户。在一些方面,用户可与一个或多个设备相关联,并且设备可与一个或多个用户相关联。类似地,环境300可包括多个主机310和第三方330,每个分别与一个或多个系统312和第三方系统332相关联。

图4A描绘与公开的实施例一致的在用户的手臂上的穿戴设备100的示例性图示。在一些方面,用户302可在他或她的身上穿戴设备100。设备100可被设计用于在用户的手臂、肩膀、腿、手腕(例如,作为手表)或任何其它身体部位(例如,经由连接器180)上的舒适的使用。在某些实施例中,设备100可被特别地设计和配置用于绕用户的上臂穿戴。例如,如图4A中所描绘,设备100可使用可调节连接器180(诸如可调节带、条或框)舒适地搁置在用户的手臂的上部分上。当被穿戴(例如,连接器处于连接状态)时,连接器180可使设备180的横截面轮廓呈现大体上椭圆形状(例如,具有小于例如0.2的偏心率,如图4B中所描绘)。设备100的大体上椭圆形横截面可促进绕用户的手臂穿戴设备。例如,设备横截面的短半直径在一些实施例中可不超过大多数人类的手臂的短半直径,诸如六、七、八或九英寸。连接器180还可准许设备180的横截面超过针对较大个体的这些边界(例如,经由较大的连接器、弹性连接器、可移除连接器等)。另外,连接器180可使设备180的横截面采用其它形状,诸如新月形、U形或对应于人手臂的完全或部分横截面的其它形状。

在一些方面,设备100可直接搁置在用户302的皮肤上(例如,如图4A中所描绘)。在其它方面,设备100可被设计成搁置在用户302的衣服上,而不与用户的皮肤进行接触(例如,如图7A中所描绘)。除了易发生在衣服之上穿戴的接触之外,例如,设备100还可执行本文公开的过程,而没有来自用户302的直接物理接触、输入或操纵,诸如按压设备上的屏幕或按钮,握持设备,操纵设备或类似的物理交互。在某些方面,不存在该直接接触(例如,与用户的皮肤,用于远离用户头部区域使用的配置)可被设计以改进设备的符合性使用要求,诸如工作场所规章(例如OSHA要求)、内部公司标准、第三方度量、用户卫生问题和用户偏好。

在一些实施例中,可针对在用户的​​手臂上使用而设计、放置和优化设备100的组件。例如,如图1中所描绘,一个或多个生物声学传感器170可位于设备100的内部表面区域上,以促进正确的生物测定读数。在另一个示例中,设备100可包括位于设备100的内部表面上的心率监测器、排汗监测器或其它类型的医疗传感器。生物声学传感器170、心率监测器或其它这样的设备可在设备100的内部表面上形成阵列。

在某些实施例中,设备100可包括其它材料或用该其它材料操作以用于在用户的手臂上使用。例如,设备100的内部区域可衬有特定的材料或套筒,以当穿戴在手臂上时优化用户舒适和设备功能性。在另一个示例中,设备100可被配置成用一次性材料衬里(例如套筒、带、衬里等)操作,使得当设备100未检测到用户正在穿戴一次性衬里时,设备100将不操作或用降低的功能性操作。在其它方面,一次性材料衬里可不影响设备100的功能性。例如,在一个方面,设备100可被配置成在薄的塑料衬里之上操作,以增强与穿戴设备100相关联的卫生。

设备100还可被设计用于坚固和耐用的用途,能够承受从几米跌落,与硬表面(例如,墙壁、台面、混凝土等)接触,小的震荡力等等。例如,设备100可被配置成装配在带垫的盖内,包括由坚固材料(例如,金属、Kevlar、衬垫、橡胶等)制成的额外的笼或保护层,包括耐刮擦表面和显示器(例如,含有Gorilla玻璃)等。在一个方面,例如,设备100可包括大体上由橡胶聚合物(例如,按重量计80%)组成的硬的、可弯曲的外壳。在一些实施例中,该外壳可围绕设备100和/或其内部电气组件形成防水密封。在某些方面,外壳可包括开口、凹部或间隙,使得设备100的面保持向空气或光开放。在一些实施例中,外壳中的间隙可用在设备组件与外部环境之间创建保护屏障的透明材料、层或膜(例如,包括玻璃、塑料、合成纤维、石英等)填充。

在一些方面,设备100还可被配置成符合工业、企业、军事和/或其它政府规范。例如,在一个示例性实施例中,设备100可被配置成符合MILSPEC 810G或用于确定设备的坚固要求的任何其它指定的政府规章标识符。在某些方面,设备100可被配置成承受极端天气和/或环境条件,例如低温、高温、高湿度、低或高压、水浸没、存在沙、雨、寒冷、霜、热等等。例如,设备100可被配置用于在海洋深度内深处(例如,通过包括围绕设备的电气组件的防水外壳)、在高山顶上、在有风的沙漠中等等的操作。在一些实施例中,设备100可被配置成承受其它可预见的使用条件,诸如存在汗水(例如,经由封闭设备的内部表面的密封)。

在一些实施例中,设备100可使用其组件中的一个或多个来确定其环境的物理景观。例如,设备100可包括用于确定其视场中的对象的深度的深度摄像机130。如深度摄像机130所识别的,场深度可包括点(例如,像素)的二维阵列,其中每个点与包括位置和深度的一组坐标相关联。每个像素还可与诸如颜色(例如,RGB值、CYMK值或类似的指数)之类的其它属性相关联,与公开的实施例一致。设备100可以将视场中的每个点的坐标和其它属性用于确定在所述视场内的空间的三维特性中。

例如,图5A描绘与公开的实施例一致的深度摄像机130的示例性深度场。在某些方面,深度摄像机可检测其视图中的点502。点502可反映表示最小可解析特征的摄像机空间中的基本单元(例如,像素),或者场中的这样的单元的组(例如,包含多个像素的像素组)。深度摄像机130并且可将点502与指示摄像机空间中点502的位置和深度的坐标相关联。在图5A中所描绘的示例性坐标系中,例如,这些坐标可采取笛卡尔坐标(xyz)的形式。深度摄像机130可使用其它类型的坐标系,诸如球坐标、圆柱坐标、专有坐标和数据结构等,并且这些坐标系还可计及深度摄像机130的特征,诸如透镜形状(例如,通过创建透视或投影坐标系等)。深度摄像机130还可将点502与一个或多个颜色(诸如RGB三元组、CYMK四元组等)相关联。此外,虽然图5A描绘坐标轴以指示深度感,但是深度摄像机130中感测的环境可采取像素的二维阵列的形式,每个像素与诸如图5B所描绘的深度值相关联(例如,由于将三维环境投影到二维空间上),图5A中的轴的包括是用于说明性目的。

设备100可包括实现数学算法以确定摄像机空间中的点和像素之间的关系的硬件和/或软件。例如,设备100可使用经由深度摄像机130或在设备内实现的软件(例如,由处理器202执行)实现的算法来确定两个点之间(例如,两个像素之间)的距离510。在图5A的示例中,例如,设备100可使用关系确定点502和504之间的三维距离510,其中xyz反映点504和502的坐标(分别由下标表示)。如本领域普通技术人员所理解的,其它坐标系可采用不同的距离公式,并且以上示例性关系仅仅用于说明性目的。此外,设备100可以附加方式确定距离。例如,设备100可通过在位于沿从点502到504的路径的相邻像素之间的子距离数值上相加来确定两个点之间的距离510。

设备100还可经由深度摄像机130或由处理器202执行的软件确定由三个非共线点所对的表面面积512。例如,设备100可使用关系A=(1/2)bh确定由点502、504和506所对的表面面积512,其中A是表面面积512,b是表面的边缘之一的长度(例如,如以上针对距离510计算的),并且h是离与该边缘不相关的相对点(例如,点506)的、与该边缘形成直角的线段的距离。如本领域普通技术人员所理解的,其它坐标系可包括表面面积512的不同表达。另外,设备100可采用用于确定三个点之间的表面面积512的其它方法,诸如数值方法。例如,设备100可通过将表面划分成三个像素的组(或像素组)并队在表面内的组之中的组成表面面积求和来确定表面的面积。设备100还可采用其它公式,诸如黎曼和、数值面积积分等。此外,设备100可通过将表面划分成三个点的区域(例如,其中每个边缘与另一个组共享)、得到每个区域的表面面积(例如,如上)并且将结果求和而确定跨越多于三个点的表面(例如,n角形)的表面面积。本领域普通技术人员将理解与公开的实施例一致的生成或近似表面面积512的其它方式。

设备100还可使用经由深度摄像机130和/或处理器202实现的过程来确定或估计对象的体积514。如由图5A中的四面体所描绘,例如,设备100可使用诸如V=(1/3)Ah之类的关系确定由四个或更多个非平面点/顶点(例如,点502、504、506和508)所对的体积,其中V是体积514,A是底的表面面积(例如,以上计算的表面面积512),并且h是底与其相对点(例如,点508)之间的高度。其它坐标系可采用针对体积514的其它表达。另外,设备100可通过将对象划分成四个非平面点的区域、得到每个区域的体积(例如,如上)并对结果求和而数值地确定跨越多于四个点的对象的体积。设备100还可通过对体积数值地积分(例如,将对象分成像素或像素组,并且在具有坐标集u的域D之上用体积元素dV对对象函数f数值地积分)而估计对象的体积。

设备100可使用其它数值方法来估计对象的体积。在一些方面,当对象包括对深度摄像机130不可见的点(例如,因为摄像机不能够看透固体对象)和其它这样的考虑时,数值方法可证明对于估计复杂对象的体积514是有益的。在一些实施例中,设备100可通过做出关于对象的某些假设来估计对象的体积。例如,设备100可假设:由几个点所对的对象展现特定对称性(例如,径向、双边、球形等),在广泛范围的对象中常见的特征。另外或替代地,设备100可假设对象具有大体上规则的形状,使得当它围绕某些轴反射或旋转时看起来类似。基于这些假设,设备100可经由由处理器202执行的软件来估计对象的不可见点或边缘的位置,并且相应地生成体积。

图5B图示与公开的实施例一致的用于定尺寸目的的深度场中的示例性对象。在一些方面,设备100可确定特定对象由点的组所对(例如,使用与本文公开的那些一致的过程,诸如边缘和拐角(corner)检测算法)。在图5B中的示例性对象中,例如,设备100可确定(例如,经由深度摄像机130和/或由处理器202执行的软件)对象由点530、532、534、536、538、540和548所对。在某些方面,该对象可反映大体上采取矩形或梯形棱柱的形式的任何对象,诸如盒子、包裹、电话、书等。在某些方面,设备100可使用上述实施例(例如,将对象划分成点的组,确定这些区域的面积/体积,并且对结果求和)来确定对象的表面面积或体积。

在其它方面,设备100可假设:由这些点所对的对象具有大体上规则的定向或展现特定对称性。使用该假设,设备100可确定对象可能包括在深度摄像机130的场中未检测到(例如,因为对象是不透明的)的不可见点(顶点)550,其具有基于假设的对称性的位置。该确定例如可从以下中得出:假设点532和534、548和536以及540和538之间相关联的距离应当输入到点530与不可见点550之间的距离。可以相同的方式(例如,使用相关边缘)解析连接点550与点534和538的边缘。类似地,通过将表面542、544和546输入到包含不可见点550的其相应的相对(例如,平行)表面上,设备100可做出该确定。另外,通过标识对象的平坦表面(例如,通过确定其中许多邻接像素群共享平行法向矢量的区域,如下所述),标识其它已知顶点的坐标并且施加对象展现关于与平坦表面相关联的轴的对称性的规则,设备100可确定不可见的顶点。

设备100可使用以上计算来确定不可见点550的估计位置。例如,设备100通过以下来确定不可见点550的位置(例如,坐标):对类似点之间的边缘长度平均(例如,点530和550之间的距离应当反映点532和534,548和536以及540和538之间的平均距离,针对其它边重复该过程等),如上所述的将表面的面输入到其相对的对应物,将二维或三维旋转和平移矩阵应用到可见对象以确定其在相对方向上的期望的定向(例如,点530和550之间的边距离应当等于点548和536的边距离)等。设备100可使用对象对称性和/或规则性的假设来生成若干这样的不可见点的位置。在估计一个或多个不可见点的位置之后,设备100然后可使用前述实施例来使用不可见点计算或更新对象的体积。以这种方式,设备100可以更高的精确度生成对象的体积的估计。

另外,设备100可使用从上述讨论流出的数学关系(例如,几何关系)来确定深度摄像机130的视场内的对象和表面的其它特性。例如,设备100可使用诸如ax+by=c之类的等式或基于坐标系的其它这样的公式、基于坐标系中的两点(例如,点502和504)的坐标而确定针对通过坐标系中的两点的线的表达。类似地,设备100可使用诸如ax+by+cz=d之类的等式或取决于坐标系的其它形式、基于点的坐标而确定针对坐标系中的平面(例如,如由点502、504和506所对)的表达。设备100然后可使用这些关系来确定环境的特征,诸如到表面512的法向矢量,三个点是否在线上重合,四个点是否在平面上重合等。例如,对于与具有形式的平面重合的表面(例如,具有表面面积512),到该平面的法向矢量可采取形式,其中是梯度运算符。部分地基于使用的坐标系和以其近似平面的形式(例如,经由数值技术),本领域技术人员将理解针对法向矢量的其它表达。例如,给定坐标系中的三个点,设备100可通过确定跨越第一点到第二点以及第一点到第三点的矢量(例如,通过从一个点到另一个减去坐标)并且计算所得到的矢量的叉积而计算到这些点的法向矢量。设备100还可确定该法向矢量是否被适当地指引(例如,其从对象表面指向向内还是向外),并且相应地调节法向矢量(例如,将其乘以-1以迫使矢量指向外)。设备100可经由例如由处理器202执行的软件指令来数值地确定这些值。

在一些实施例中,线段、距离、线、平面、法向矢量等的确定可传授关于深度摄像机130的视场中的表面和对象的定向的知识(例如,基于它们的线/平面等式、法向矢量、体积等)。在一个示例中,到表面的法向矢量指示其三维定向。设备100从而可将任何对象划分成点的组,以得到其表面面积、体积、法向矢量等,以确定对象的表面面积、体积和定向。此外,设备100可采用对本领域普通技术人员显而易见的前述讨论的进一步详细阐述,以进行与公开的实施例一致的过程。例如,设备100可计算深度摄像机130在x和/或y方向上的视场的深度梯度(例如,使用偏导数),因此确定在这些方向上的场中的深度变化率。如上所讨论,前述计算可由深度摄像机130、连接到深度摄像机130的处理器202、或者任何外部计算系统(例如,经由通信网络320连接到设备100的系统)来执行。

设备100还可基于从外部源接收或存储在存储器中的模型(例如,在设备上或在外部系统上)而确定对象的特性(例如,表面面积、体积、法向矢量等)。可预先生成模型以反映设备可能遇到的可能的对象。例如,在信使服务的领域中,设备100可存储通常由特定公司或品牌使用的包裹、纸片(slip)和盒子的三维表示。设备100然后可通过将其与一个或多个对象模型比较而确定对象的特性,并且如果其检测到匹配,则将模型的已知特性(例如,大小、规格、重量、公司名称等)输入到当前对象上。设备100可通过实现例如由处理器202执行的软件指令来进行该过程。

使用与公开的实施例一致的过程(例如,如上所述并且结合图6),设备100可开始通过确定对象的边界(例如,顶点)来检测匹配。设备100然后可将旋转、缩放和/或平移矩阵应用于当前对象(在生成任何不可见顶点之前或之后),并且确定旋转、缩放和平移的对象是否匹配建模对象。当操纵的对象的顶点匹配模型的顶点时,当当前对象和模型的法向矢量在某个置信度阈值内重合(例如,没有偏离达大于度/弧度的阈值等)时等等,设备100可检测到匹配。如果未检测到匹配,设备100可继续与公开的实施例一致地处理对象。在其它方面,设备100可向外部系统(例如,系统312)传输对象信息以在外部进行模型比较,并且经由通信网络320接收比较的结果。实际上,设备100可向外部系统(例如,系统312)传输与前述和下面的讨论一致的任何信息以进行公开的过程,并且设备100可经由通信网络320接收这些确定的结果(例如,表面面积、体积等)。

返回到图5A,设备100可使用包含在每个像素中的信息来确定深度摄像机130的视场中的对象的某些特性。例如,设备100可确定其场深度包含在背景(例如,具有进一步远离对象的深度的与墙壁、地板、附近的树木等一致的像素)之中的对象(例如,由点502、504、506和508所对)。设备100可使用若干技术来确定对象的界限和范围。例如,设备100可使用过程来确定图像中的对象的边缘和/或拐角。在一个方面,设备100可采用边缘检测算法来检测出现在视场中的对象的边缘(例如,检测边缘510)。除了这些方法的补充或替代方案(例如,阈值处理、边缘细化、差分边缘检测等)之外,这些边缘检测算法还可包括本领域中已知的任何合适的边缘检测算法(例如,Canny边缘检测、相位一致性等)。例如,处理器202可将Canny边缘检测窗口应用到来自深度摄像机130的信号。该窗口包括步骤:将高斯滤波器应用于数据以平滑噪声,确定图像的梯度的强度,应用非最大抑制以细化潜在边缘,应用双阈值以确定潜在边缘(例如,丢弃低于第一阈值的边缘),并且通过滞后跟踪潜在边缘(例如,抑制低于第二较高阈值、不连接到边缘高于第二阈值的边缘的边缘)。这样的边缘检测窗口的其它修改对本领域普通技术人员将是显而易见的。

替代地或另外,设备100可采用拐角检测算法来检测来自深度摄像机130的信号中的对象的拐角。这样的拐角检测算法可包括对本领域普通技术人员已知的任何合适的过程,诸如Moravec、Harris和Stevens、、多尺度Harris、Wang和Brady、Trajkovic和Hedley、以及SUSAN算法等等。在某些方面,这些拐角检测算法可指示对象的拐角的存在,诸如图5A的点502、504、506和508。

在一些实施例中,设备100可使用每个像素的深度坐标来精制边缘和/或拐角检测的结果。例如,设备100可需要形成在彼此的阈值距离内的边缘以两个像素(例如,区分对象与背景或其它距离对象)。此外,设备100可抑制被标记为具有高于阈值的平滑深度梯度的拐角的像素(例如,因为像素不是真正的角)。设备100可采用适合于这样的目的的其它类型的对象检测算法(例如Gabor滤波器、噪声降低、Sobel算子、图像梯度、深度梯度等),并且本文的某些算法的讨论仅仅用于说明性目的。例如,设备100可计算当前深度场的导数以生成导数深度图或导数强度/色彩图。通过确定两个点(例如,相邻像素)之间的深度或强度的变化,并且将该变化除以它们之间的距离,可数值地计算这些导数。在一些方面,设备100可使用这些梯度或导数图来进行进一步的对象识别(例如,如下所讨论地识别用户的手指),执行进一步的图像精制(例如,边缘检测)等等。

图6描绘与公开的实施例一致的用于使用设备100对对象定尺寸的示例性过程600的流程图。除了其它设备组件之外,过程600还可经由在设备100中执行的软件和/或硬件来实现,诸如通信地连接(例如,经由主干206或其它电路)到执行软件指令的处理器202的深度摄像机130。此外,过程600可全部或部分地在其它计算系统(诸如通过通信网络320与设备100通信的系统312)上来实现。过程600或其子例程可被实现作为独立的过程或作为与公开的实施例一致的较大过程的一部分(例如,确定对象的定向以用于图8和9的扫描或签名过程等)来实现。

在一些方面,过程600可通过检测定尺寸事件(步骤604)来开始(步骤602)。定尺寸事件可包括由设备100可检测的任何输入事件,如以下进一步描述的。例如,定尺寸事件可包括:检测到用户302已经在其希望定尺寸的对象上敲击两次(例如,经由深度摄像机130),接收到音频命令(例如,经由麦克风160),检测到输入到投影的界面的输入(例如,使用投影仪110和深度摄像机130)等。本文进一步讨论定尺寸事件(例如,输入事件)的附加类型及其检测的方式。

过程600可包括将来自深度摄像机130的视场分割​​成多个区域(步骤606)。过程600可使用以上公开的边缘、拐角和特征检测算法将视场分割(例如,划分)成区域。例如,在一个实施例中,处理器202可将一个或多个边缘检测滤波器应用到从深度摄像机130接收的信号,以检测视场中的对象边缘。另外或替代地,处理器202可将拐角检测滤波器应用到原始或修改的信号(例如,如由拐角检测滤波器所滤波)以确定视场中的对象拐角的一个或多个位置。在一些实施例中,与公开的实施例一致的,处理器202还可应用附加滤波算法,诸如阈值测试(例如,抑制低于阈值强度的边缘)、边缘细化(例如,抑制宽于阈值数量的像素的边缘)以及滤波器或窗口的类型。

过程600可包括标识与用户希望定尺寸的对象相关联的区域(步骤608)。与公开的实施例一致的,设备100可使用指定特定区域的任何种类的输入事件来标识该区域。在一个实施例中,例如,设备100可基于定尺寸事件来确定区域。例如,定尺寸事件可包括用户在对象本身中执行的特定输入事件(例如,手势输入),诸如敲击对象某个次数。在这样的实施例中,标识的区域可反映接近定尺寸事件的区域。在其它实施例中,设备100可将界面投影到以上分割的区域之一(例如,经由投影仪110),并且等待输入到界面的确认界面(例如,如以下进一步详细描述的)。在又一个实施例中,设备100可将光或激光照射到区域中的一个上,并且等待来自用户的输入事件(例如,经由麦克风160接收的音频输入)。此外,设备100可通过得到具有大于某个阈值的表面面积和/或具有在预定义范围内的法向矢量的小空间区域(通过深度值)而标识与对象相关联的区域。确定与要定尺寸的对象相关联的区域可包括与以下描述的实施例一致的任何这样的输入事件。

过程600可包括基于标识的区域而确定要定尺寸的对象(步骤610)。在一些方面,该步骤可包括:确定邻近从步骤608指定的区域的一个或多个区域是否可能是相同对象的部分。设备100可通过迭代地分析每个邻近区域并且评估其特征是否指示该区域是相同对象的部分的可能性(例如,高于某个阈值)而确定对象是否可能包括一个或多个其它区域。在某些实施例中,该分析可包括:比较邻近区域中的像素颜色和指定区域的像素颜色,并且确定颜色是否以系统方式一致(例如,包含类似的颜色,但是由于环境照明而看起来更暗或更亮等)。例如,由于从上方照射的光,包裹的侧面可能看起来比顶部暗,但是该侧面可包含与顶部类似的颜色分布,这指示区域是相关的。可在平均的基础上(例如,邻近区域中的平均像素颜色是否通过暗度或亮度的方式而与指定区域中的平均像素颜色类似)、在百分比/直方图的基础上(例如,两个区域是否具有近似相等数量的某些颜色,仅仅通过暗度或亮度水平而区分)或任何其它类型的统计的基础上完成比较区域之间的颜色。

另外,设备100可基于其像素的深度值而确定邻近区域包括相同的对象。在一些方面,当沿着联合它们的边缘的像素具有大体上连续的深度值时,两个区域可包括相同的对象。例如,设备100可使沿着其联合边缘来自邻近区域的最近的像素配对,并且比较针对配对像素的深度值。当其深度相等或在彼此的某个范围内时,设备100可认为这两个像素连续。在一些实施例中,一些像素可被配对两次(例如,以适应具有曲率的边缘)。在对每个像素对迭代之后,当某个百分比的像素对是连续的(例如,连续像素对占所有对的百分比超过阈值,诸如85%)时,设备100可将两个区域视为包括相同的对象。如上所述,设备100还可基于每个区域中的平均像素值(例如,当区域的平均深度在阈值内时)或其它类型的统计分析而做出该确定。

在一些实施例中,当设备100确定两个区域是相同对象的部分时,设备可对新包括的区域的邻近区域执行以上分析,并重新开始该过程。当设备100确定两个区域不连接(例如,不是相同对象的部分)时,设备100可继续到下一个邻近区域上。设备100可使用该过程来爬过(crawl over)相邻区域,创建包括对象的区域的边界。以这种方式,设备100可确定与对象相关联的视场中的每个区域。

在某些方面,过程600可包括:生成从相关区域创建的对象的三维表示(步骤612)。设备100可使用例如结合图5A和5B描述的过程来生成对象的三维表示。例如,设备100可确定将是构成对象的分离点的相关区域的组中的每个像素。在另一个示例中,设备100可仅仅考虑位于这些区域的边缘或拐角上以构成对象的部分(例如,作为对象的点)的像素。另外或替代地,设备100可将生成的表示和存储的模型相比较,基于对称性假设而生成一个或多个不可见顶点,或者上述的类似过程以生成对象的表示。

过程600可包括基于对象的表示来确定对象的尺寸和其它特性(步骤614)。设备100可使用结合图5A和5B描述的过程来确定对象的尺寸(例如,其范围(extent)、体积等)。例如,使用与对象表示相关联的每一个点或像素,设备100可将对象划分成点或像素的组,确定针对每个组的体积,并且对结果求和以估计对象的体积。设备100可使用类似的方法来确定对象的边界、表面面积、法向矢量等,与公开的实施例一致的。

在一些实施例中,过程600可包括向外部计算系统传输尺寸信息(步骤616)。设备100可经由通信接口(例如,通信接口224)传输该信息以进行与公开的实施例一致的进一步的处理。例如,设备100可经由通信网络320向系统312传输尺寸信息。在一些方面,设备100可基于可用的通信网络(例如,如结合图10所述的)、自然、从不等确定是否传输尺寸信息。

在某些实施例中,除了或者代替向外部系统传输尺寸信息之外,设备100还可本地存储该尺寸信息。设备100还可使用存储的尺寸信息(例如,体积、法向矢量等),以进行与公开的实施例一致的进一步的处理。在一个示例中,例如,设备100可确定对象是否将适合在诸如容器之类的另一个对象内部,给定容器的体积、容器内的可用空间等。设备100然后可进行进一步的处理,诸如在确定对象将适合在容器的可用空间内时从容器的可用空间减去对象的体积。

除了对对象定尺寸之外,设备100还可以其它方式与其环境交互。图7A描绘与公开的实施例一致的投影到表面702上的示例性交互界面704。设备100可经由投影仪110(例如,基于从处理器202接收的信号)将信息投影到表面上。在某些方面,投影的信息可包括或表示界面。界面可包括文本、图像、视频、字形、按钮、模型、符号、图形、图表、键盘、数字键区、应用窗口(例如,与iOS、Microsoft Windows、Google Android相关联的窗口,与设备100相关联的专有窗口等)、或者能够提供信息和/或接收输入的任何其它视觉提示的任何组合。在图7A中描绘的示例性界面中,例如,界面704包括数字键区。

在某些实施例中,界面704的性质、内容、范围、格式和特性可取决于设备当前正在执行的功能或过程。例如,如果用户将与发起电话呼叫一致的输入递送到设备100,则设备100可投影数字键区、地址列表、呼叫选项(例如扬声电话、静音等)等等。在另一个实施例中,如果用户递送与捕获签名一致的输入,则设备100可投影空白签名行。在又一个实施例中,设备100可投影包含确认按钮或字段的界面以引出来自用户的确认(例如,进行或终止某些过程,诸如指示要如图6中要定尺寸的对象或区域)。在考虑和实践公开的实施例时,与设备100一致的界面的类型、配置和性质对本领域技术人员将是显而易见的。

设备100可经由投影仪110将界面704投影到能够有意义地传送包含在界面中的信息的任何合适的表面702上。在一些方面,表面702可包括屏幕、墙壁、桌子、盒子、人体部位(例如,手臂、手等)、握持的表面(例如记事本、纸张、书等)、车辆、地板、镜子、窗户、这些表面的组合等等。例如,在图7A中,用户的手充当设备在其上投影数字键区界面704的表面702。

在一些实施例中,设备100可确定意图表面702的大小、三维定向、颜色、反射率、亮度和其它表面特性。例如,设备100可经由深度摄像机130、处理器202和结合图5A、5B和6所述的过程而确定表面702的定向和颜色及其周围环境。设备100可基于这些表面特性(例如,经由在处理器202上执行的软件)来格式化投影的界面。例如,设备100可使用表面特性来用正确的对准(例如,基于到表面的法向矢量)、适当定大小(例如,在表面的边界内)、最佳呈现参数(例如,例如基于表面的颜色的界面的对比度、着色、饱和度、曝光、锐度、亮度等)等等将界面投影到表面702上。通过示例的方式,设备100可确定意图表面702是在昏暗房间中的具有特定定向的暗表面(例如,基于表面及其周围环境的像素颜色)。在该示例中,设备100可生成并投影具有昏暗的白色按钮的被适当地定大小和定向的界面,使得界面在表面上看起来例如具有矩形形状。在另一个示例中,设备100可确定用户是否戴着手套(例如,与结合解释到投影的界面的输入公开的实施例一致),并且调节投影的界面的格式。例如,在一个方面,设备100可增加投影的界面(或位于其中的图标、按钮和/或字段)的大小,并且基于穿戴的手套的大小、颜色和其它特性来调节投影的界面的颜色(例如,以优化对比度)。

在其它实施例中,用户可指定或预定义针对这些界面属性中的一些或全部的值、限制、范围和/或偏好。例如,用户可指定界面不应当超过某个大小,应当包含某个颜色(例如,对于色盲个体)等等。这些偏好可被存储在设备100上的存储器中。在一些方面,用户可经由与公开的实施例一致的任何输入方法来定义这些客户规范。例如,在一个实施例中,用户可通过在表面702上执行特定手势(以下所述的)来指定界面的大小。

在某些实施例中,设备100可通过包括界面输入的输入事件接收、获得和处理递送到投影的界面704的输入。在一些实施例中,界面输入可包括用户用她的身体(例如,用一个或多个手指物理地触摸界面)与界面704的交互,用户用指示笔或其它对象与界面的交互,或者与公开的实施例一致的任何其它输入方法。例如,如在图7A中所描绘,用户302正通过用他的手触摸投影的界面来将界面输入递送到示例性界面704。以这种方式,设备100可提供或接收去往和来自用户302的信息,而没有设备的直接物理操纵(例如,经由用户与投影的界面704而不是设备100的交互)。

在一些方面,设备100可使用深度摄像机130、麦克风160、生物声学传感器170和设备100的其它组件(例如,由设备处理器202执行的软件)来识别、检测和解释界面输入。在一个实施例中,例如,深度摄像机130确定投影的界面704的深度(例如,如上所公开),并解释用户与界面的交互以促进、进行、发起或终止与公开的实施例一致的过程。例如,在图7A中描绘的界面中,深度摄像机130可识别何时用户在与界面704的特定数字图标相关联的区域中将他的手指压他的手(例如,表面702),将该动作解释为用户“选择”该数字,并且提供必要的处理。在一些方面,设备100可用界面键盘(例如,键入)、输入字段、按钮、用户界面、应用窗口以及与公开的实施例一致的其它类型的界面进行类似的过程。在一些实施例中,设备100可以对本领域技术人员已知的任何方式解释用户的输入(例如,按压虚拟键,打开/关闭窗口,键入等)。

设备100可通过比较界面组件的深度和位置与用户手指的深度和位置(例如,经由由处理器202执行的软件)来检测与界面704的交互。在某些方面,当用户手指的尖端具有在表面702的某个阈值内的深度值时,设备100可将该动作解释为在用户指尖的当前位置处“选择”或“点击”界面704。设备100可使用深度摄像机130并且执行与公开的实施例一致的对象识别技术(例如,计算场的导数深度图并且标识具有与人手的已知类似性的区域)来检测用户的指尖的位置。以这种方式,设备100可检测何时用户302已经向投影到表面702上的界面704提供界面输入。

在另一个示例中,设备100可通过测量当用户在他的身体上的某些位置中按压他的手指或者执行其它身体运动时生成的生物声学分布(例如,经由生物声学传感器170)来识别或检测界面输入,并且相应地解释输入。例如,在一个方面,设备100可经由投影仪110将界面704投影到用户的手臂上。在该实施例中,设备100可通过将当用户触摸他或她的手臂的部分时生成的生物声学分布与一般或用户特定的生物声学基线数据(例如,经由通过处理器202执行的软件)相比较来检测界面输入。在一些方面,基线数据可表示对应于某些用户动作(例如,触摸用户的手臂、手的不同部分或其它身体移动等)的一个或多个生物声学分布。此外,设备100可通过以下来验证用户的界面收入:将深度感测和生物声学读数组合在一起(例如,经由解释来自深度摄像机130和生物声学传感器170的信号的软件),比较两个测量的结果,并且基于逼真度测试而确定最可能的输入(例如,一个或两个测量指示具有超过阈值的置信度的特定输入)。用于经由深度摄像机和生物声学传感器检测和识别用户输入的某些示例性方法分别在Harrison等人的OmnitouchWearable Multitouch Interaction Everywhere(2011)和Harrison等人的Skinput:Appropriating the Body as an Input Surface(2010)中被描述,其内容和参考文献通过引用以其整体并入本文。

设备100可接收、获得和处理来自用户302的输入,而不使用界面704。在一些方面,设备100可经由深度摄像机130、生物声学传感器170或与处理器202通信地操作的其它设备组件而针对包括手势输入的输入事件监视环境。手势输入可包括任何身体移动、运动或信号。例如,设备100可针对手势监视环境,手势诸如用户的捏合缩放(pinch-zoom)运动;手指或手的滑动;某些手形状或配置(例如,“L”、拳头等);手运动(例如,敲入);以特定方式移动某些手指;用双手做出运动;触摸用户的身体的某些区域(例如,手臂、胸部、头部等的部分)或其它对象(例如,表面702);类似手势的任何组合(例如,用不同的手捏合缩放和按压用户的大腿上的区域);等等。

在一些方面,手势输入可包括在其上未投影界面704的表面702上或上方执行的这些动作中的任何一个。例如,设备100可使用深度摄像机130和/或生物声学传感器170识别何时用户在附近的表面上方进行捏合缩放运动,敲击表面预定次数,将手放置在服务上等。以这种方式,设备100及其组件可以与识别界面输入相同的方式(例如,跟踪手指相对于表面深度的移动)识别手势输入,但是不需要对界面投影。在某些方面,设备100可在检测用户的手势输入(例如,发起图5A、5B和6的定尺寸过程,图8的扫描过程等)时发起过程,投影针对输入的界面,并且执行公开的实施例。

在一些实施例中,可预定义识别的手势输入。在这些方面,设备100可仅仅识别特定手势(或一类手势)以执行某些功能。例如,如图7B中所描绘,仅仅当用户用她的手在条形码或包括条形码的区域上或上方进行捏合缩放或滑动运动、敲击表面某个次数等时,设备100才可扫描表面702上的视觉代码706(例如,经由扫描器120)。在一些方面,设备100可将不同的手势输入与不同的设备功能相关联。例如,设备100可将第一类型的手势输入(例如,敲击对象的表面某个次数)与第一设备功能(例如,对对象定尺寸)以及第二手势输入(例如,进行捏合缩放运动)与第二设备功能(例如,扫描视觉代码706)相关联。

另外,用户还可创建用于与设备100进行过程的他们自己的定制手势。在这些方面,设备100可包括校准过程,以便定基线、学习和识别用户的定制手势。例如,如果用户希望通过按压他的手臂上的点来发起特定设备功能,设备100可请求用户执行定制手势许多次,采集必要的手势校准数据(例如,经由深度摄像机130、生物声学传感器170等),并且将定制手势与用户和特定设备功能相关联。在某些方面,设备100可将该数据存储为存储器内的校准数据。在一些实施例中,设备100可存储针对多于一个用户的定制手势信息,允许多个用户在单个设备上创建定制手势。

在某些方面,设备100可经由麦克风160接收和处理包括音频输入的输入事件,以发起、进行和终止本文公开的过程。音频输入可包括使得可听声音或噪声可由麦克风160和所附软件识别的任何听觉、声音或音调信号或命令。例如,设备100可在感测到来自用户的声音命令时进行某些过程(例如,扫描条形码,拍摄图片,建模三维环境等)。在一些方面,声音命令可涉及使用由处理器202执行的语音识别软件检测的用户希望进行的过程(例如,“扫描”,“读取条形码”,“拍摄图片”等)。在一些方面,音频输入可被预定义。在其它方面,音频输入可由用户以与其它输入方法(例如,手势定制化)相同的方式指定和定制定义。在一些实施例中,基于识别的语言、口音、方言等以及用户的个人讲话方式(例如,通过随着时间的过去学习用户的说话习惯),设备100可计及感知的音频输入的变化。

设备100可基于一个或多个校准参数来调节其输入事件(例如,界面输入、手势输入、音频输入等)的检测。在一些方面,校准参数可精制设备100如何解释来自特定用户的输入。例如,校准参数可对应于用户的个人属性(例如,身体类型、大小、形状、语音音高、其它身体属性等),设备的意图使用(例如,将如何以及在何处使用设备),来自用户的设备在场中的实际使用(例如,用户一致地点击到意图界面按钮的左边等),用户的指定的定制设置(例如,定制手势、音频命令等)等等。在一个方面,设备100可采集作为初始校准过程的部分的这些校准参数中的一些。例如,设备100可需要用户与投影到表面(例如,手臂)上的校准界面交互,以便确定与用户相关联的某些校准参数。在另一个示例中,设备100可在用户与设备交互(例如,通过触摸表面,递送各种音频命令和手势等)时采集和监视校准参数。在一些实施例中,设备100可将与一个或多个用户相关联的校准参数存储在存储器中,使得多个用户可在单个设备上被校准。

如图7B中所描绘,设备100可使用结合一个或多个处理器202操作的扫描器120来扫描和解码视觉代码。在该示例性实施例中,设备100被配置成扫描位于对象上的视觉代码706。在某些方面,视觉代码706可包括对本领域普通技术人员已知的任何线性或矩阵条形码(QR、UPC、EAN、MSI、智能邮件、ShotCode、DataGlyphs、EZcode等)。视觉代码706可驻留在任何对象上。例如,设备100可被配置成扫描盒子、包裹、邮件纸片、产品、信封、卡片、纸张、传单等上的条形码。在某些实施例中,设备100可解码和处理在视觉代码706中编码的信息,用于在与公开的实施例一致的方法中使用。例如,在一个方面,设备100可存储与扫描的视觉代码706相关联的信息(例如,在存储器中),向其它计算机系统传输信息以用于进一步的处理,响应于扫描条形码而接收附加信息等等。

在图7B的示例性实施例中,响应于界面输入、设备输入、音频输入、手势输入或本文公开的任何其它种类的输入,设备100可例如经由扫描器120扫描其视场内的视觉代码706。例如,在一个实施例中,处理器202可向扫描器120发送信号,以响应于检测到条形码上或附近的用户的捏合缩放手势、指示期望的扫描区域的手势、声音命令、用户选择投影的界面上的“扫描”按钮等等(例如,基于从深度摄像机130检测到的信号等)而扫描视觉代码706。

图8描绘与公开的实施例一致的用于扫描视觉代码的示例性过程800的流程图。除了其它设备组件之外,还可经由在设备100中执行的软件和/或硬件来实现过程800,诸如通信地连接(例如,经由主干206或其它电路)到执行软件指令的处理器202的深度摄像机130和扫描器120。此外,过程800可全部或部分地在其它计算系统上实现,诸如通过通信网络320与设备100通信的系统312。过程800或其子例程可作为独立的过程或结合与公开的实施例一致的其它过程(例如,与图9相关联的签名捕获过程,对象定尺寸过程等)来实现。

过程800可通过检测扫描事件(步骤804)而开始(步骤802)。在一些方面,扫描事件可包括与公开的实施例一致的任何类型的输入事件,诸如手势输入、界面输入等。例如,当用户302在包含视觉代码706的表面702上、上方或靠近表面702进行捏合缩放运动时,设备100可经由深度摄像机130检测扫描事件。如上所解释,扫描事件可包括其它输入事件,诸如音频输入或用户的定制手势。此外,在一些方面,设备100可在检测到或未检测到扫描事件的情况下连续地监视视觉代码。

在一些方面,过程800可包括:响应于检测到扫描事件而确定扫描区域(步骤806)。扫描区域可反映设备100可尝试在其上方扫描视觉代码706(例如,通过使用可旋转耦合而在该方向上使扫描器120成角度或定向)的区域。在一些方面,扫描区域可基于扫描事件的位置。例如,在一个实施例中,给定用户的捏合缩放运动的深度和程度,设备100可确定扫描区域的大小和位置。在该示例中,表面或用户的手的深度以及运动的程度可包括扫描区域的范围。在另一个示例中,扫描区域可包括具有在扫描事件的位置(例如,深度和位置)处的中心的圆形、椭圆形或矩形区域。在这样的实施例中,设备100可确定将充分大(例如,给定表面的深度)以扫描大多数视觉代码706的扫描区域的边界,诸如具有几英寸(例如,六英寸、八英寸等)的直径或边长的圆形或正方形。设备100可以其它方式确定扫描区域。例如,在一个实施例中,设备100可确定扫描区域以包括具有高于阈值大小的表面面积(例如,如结合图5A和5B所计算的)和/或位于某个地理区域内(例如,在某个深度和位置边界内)的最近表面的整体。另外或替代地,设备100可确定扫描区域以包括具有在适当范围内的法向矢量的表面(例如,以有利于面向设备的表面)。在另一个实施例中,扫描区域可包括深度摄像机130的视场的中心。在又其它方面,设备100可不确定具体扫描区域,并且可代替地使用默认扫描区域(例如,直接在扫描器120的前方的区域)。

过程800可包括用扫描器120扫描视觉代码706(步骤808)。在一些实施例中,例如,处理器202可向扫描器120提供信号,以扫描和解码在步骤806中确定的扫描区域内的视觉代码706。在接收到信号时,扫描器120可在尝试解码视觉代码706时对包含扫描区域的区域成像。在其它方面(例如,在没有扫描区域的情况下),扫描器120可尝试对直接在其前方的区域成像。在一些实施例中,设备100可在该过程期间将线性或区域引导束、脉冲、投影界面等投影到表面702上,向用户302指示其正在尝试用扫描器120成像的扫描区域的范围。设备100可通过诸如扫描器120(例如,作为成像过程的部分)、投影仪110、通信地连接到处理器202的专用光或激光输出或其它设备组件等之类的设备组件而产生该引导装置。

在一些方面,过程800可响应于成功解码和处理视觉代码706而生成扫描数据(步骤810)。设备100可通过由处理器202执行的软件指令、使用任何已知或专有方法来生成扫描数据。此外,响应于成功扫描而生成的扫描数据的格式和使用可采取许多形式。例如,在一个实施例中,用户302可扫描包裹上的视觉代码706以指示其到达或离开特定的存储或路由位置,并相应地路由该信息(例如,向系统312传输它)。在另一个示例中,扫描数据可反映客户已经签收了包裹、正要签收包裹(例如,以发起结合图9描述的签名过程)、没有签收包裹等的确认。在又其它实施例中,扫描数据可包括关于在其上放置视觉代码706的对象的信息(例如,产品信息、定价信息、可用性信息、用户评论等),创建指令以从另一个计算机系统(例如,系统312或332)确定这样的信息等等。响应于扫描视觉代码706创建的数据的可能的使用和格式将易于由本领域普通技术人员理解。

过程800可包括提供指示视觉代码706的扫描和/或扫描数据的生成是成功的通知(步骤812)。在一些方面,该通知可影响设备100的直接周围环境。例如,响应于成功地解码和/或处理视觉代码706,设备100可经由扬声器150发出音调,通过投影仪110、用适当的确认消息或颜色将界面投影(例如,到其上驻留有视觉代码706的表面702上),在显示器140上显示确认消息或指示,通过振动马达提供触觉反馈等等。另外或替代地,设备100可向诸如系统312之类的其它系统或者与计算系统332相关联的客户330提供通知。在这些实施例中,通知使得采取SMS文本消息、电子邮件消息、自动语音消息、推送通知、数据文件、处理指令等的形式。

在一些实施例中,过程800可包括向一个或多个计算系统传输扫描数据或其它信息(步骤814)。在某些方面,这些计算系统(例如,系统312、332等)可处理信息以进行与公开的实施例一致的进一步的处理。例如,设备100可向诸如由主机310主控的web服务器之类的主机系统312传输扫描数据或其它信息,以更新由系统维护的一个或多个记录。系统312然后可更新包含与视觉代码706和/或其对应的包裹相关联的信息(例如,包裹跟踪信息)的一个或多个网页、移动应用或其它应用。在一些实施例中,设备100可从系统312接收这样的记录已经被更新(例如,通过通信网络320)的指示,并且提供通知消息、音调、振动、显示等,如上所述。设备100可使用与公开的实施例一致的任何过程(例如,如结合图3和/或10所述)来向外部计算系统传输扫描数据。另外,设备100可本地存储和/或处理扫描数据,并且本身更新一个或多个记录(例如,经由本地文件,向外部计算系统传输更新的记录信息等)。

另外,设备100可响应于从视觉代码706提供扫描数据而从系统312或第三方系统332接收其它信息。例如,设备100可从系统312或332接收表示扫描数据已经触发警报条件的警报。在某些实施例中,警报条件可反映保证警报的事实的任何状态,诸如用户302扫描不正确的包裹(例如,基于接收者,与当前GPS位置相比的地址等),指示附加包裹应当被递送到该地址,确认包裹已经在特定时间或地点被扫描,对于该地址的所有包裹已经被扫描等。在一些方面,设备100可被配置成在从外部系统接收到信息(例如,使用投影仪110投影消息,在显示器140上显示消息,经由扬声器150发出声音,通过振动马达提供触觉反馈等)时显示警报或向用户通知警报。另外,设备100可基于存储的数据和警报条件来确定扫描数据是否指示通过由处理器202执行的本地软件触发警报条件。

图9描绘与公开的实施例一致的用于处理签名的示例性过程900的流程图。除了其它设备组件之外,还可经由在设备100中执行的硬件和/或软件来实现过程900,诸如通信地连接(例如,经由主干206或其它电路)到执行软件指令的处理器202的深度摄像机130和投影仪100。此外,过程900可全部或部分地在其它计算系统(诸如通过通信网络320与设备100通信的系统312)来实现。过程900或其子例程可作为独立的过程或结合与公开的实施例一致的其它过程(例如,图8的视觉代码扫描过程等)来实现。

过程900通过检测签名事件(步骤904)而开始(步骤902)。在一些方面,签名事件可反映用于设备100的信号以将签名界面投影到表面(例如,表面702)上。签名事件可包括与公开的实施例一致的任何类型的输入事件。在一些方面,例如,签名事件可包括输入事件,诸如手势输入(例如,检测到用户302已经敲击对象的表面某个次数,以及音频输入等)。另外,签名事件可结合其它过程自动出现,诸如响应于成功地扫描视觉代码706,生成扫描数据,传输扫描数据,从外部计算系统接收信号等。

过程900可包括确定在其上投影签名界面的签名表面(例如,表面702)(步骤906)。在一些方面,设备100可基于签名事件来确定签名表面。例如,如果签名事件包括设备100已经扫描视觉代码706的指示,设备100可确定签名界面要包括代码在其上驻留的表面702(例如,使用上述过程)。另外,如果签名事件包括手势输入,设备100可确定签名界面要包括具有高于阈值的表面面积、在预定深度/位置范围内和/或具有在适当范围内的法向矢量的最接近手势输入的表面702(例如,以相对于侧立表面而偏爱正面表面)。设备100可确定与公开的实施例一致的这些值。在其它方面,设备100可基于来自用户的附加输入事件而确定适当的签名界面。例如,在检测到签名事件之后,设备100可经由深度摄像机130监视特定手势输入。当设备100感测到来自用户302的特定手势输入时,设备100可将最接近手势输入的表面702确定为签名表面。另外,设备100可应用如上所述的表面面积、深度范围和法向矢量定向阈值。设备100可以其它方式确定签名表面,并且以上的某些过程的列出仅仅用于示例性目的。例如,设备100可将具有适当的面积、深度范围和定向的最接近表面702确定成签名界面,而不管任何输入事件。在另一个示例中,签名界面可包括直接在投影仪110的轨道中的任何表面等。

过程900可包括将签名界面投影到签名表面中以等待进一步输入(步骤908)。设备100可使用与处理器202通信的投影仪110将签名界面投影到表面702上。在一些方面,签名界面可使用以上针对深度摄像机130描述的过程来被适当地定大小和定向,并且可包含与公开的实施例一致的任何类型的信息。例如,在一些方面,签名界面可包括没有任何标记的、仅仅由矩形、卵形或圆形的点亮区域指定的空白区域。在其它方面,签名界面可包括具有其它标记的空白签名行,其它标记诸如在签名行附近的“X”、显示签名者姓名的文本(例如,由从视觉代码706生成的扫描数据或经由系统312接收的信息确定的)或其它这样的信息。签名界面可包括与公开的实施例一致的任何其它种类的信息。例如,在一个实施例中,签名界面可包括确认按钮,使得向界面提供输入的个体可通过按下投影的按钮来指示签名的完成。

过程900可监视和检测提供给签名界面的界面输入(步骤910)。设备900可使用上述任何过程(例如,如结合图7A和7B所述的)来监视和检测界面输入。例如,设备900可使用深度摄像机130和其它设备组件(例如,处理器202)来检测反映签名者的签名的界面输入。设备100可通过以与监视其它界面输入类似的方式检测签名者的手或指示笔的运动(例如,用深度摄像机130比较手指/指示笔的深度与签名表面的深度等)来捕获签名。例如,设备100可将具有在签名表面的阈值范围内的深度值的签名者的手指路径解释为签名。在一些实施例中,设备100可确定签名者已经完成向签名界面提供输入(例如签名)。该确定例如可基于检测到签名者已经到达投影的签名行的末尾,检测到表示签名的完成的界面输入(例如,被递送到在界面上投影的确认按钮),或者与公开的实施例一致的任何其它类型的输入事件(例如,手势输入或音频输入)。

在某些实施例中,过程900可包括处理捕获的签名(步骤912)。在一些方面,处理捕获的签名可包括生成和在存储器中存储与捕获的签名相关联的数据(例如,作为图像或其它数据文件等)。设备100还可生成与签名相关联的签名信息,并且通过通信网络320向外部系统(例如,系统312)传输该信息以进行附加处理。例如,设备100可向系统312传输签名数据以更新由系统管理的一个或多个存储的记录(例如,跟踪信息),如上所解释。在一些方面,这些记录可通过由系统312主控的网站、移动应用或其它应用可用。在一些实施例中,设备100可从系统312接收这些记录已被更新(例如,通过通信网络320)的指示。处理捕获的签名可包括进行与公开的实施例一致的进一步的处理(例如,发送确认消息,监视附加输入事件等)。

图10描绘与公开的实施例一致的用于在网络设备之间传输数据的示例性过程1000的流程图。除了其它设备组件之外,还可经由在设备100中执行的软件和/或硬件来实现过程1000,诸如通信地连接(例如,经由主干206或其它电路)到执行软件指令的处理器202的通信接口224。此外,过程1000可全部或部分地在其它计算系统(诸如通过通信网络320与设备100通信的系统312)上实现。过程1000或其子例程可作为独立的过程或结合与公开的实施例一致的其它过程(例如,扫描视觉代码,对对象定尺寸,捕获签名等)来实现。

过程1000可通过确定一个或多个通信网络是否对设备100可用(步骤1004)而开始(步骤1002)。设备100可经由来自通信接口224的信号而确定网络是否可用,这继而可基于经由信道228和/或主干206接收的信号。使用这些信号,设备100可能能够确定与公开的实施例一致的任何通信网络是否当前可用。例如,设备100可确定一个或多个蜂窝网络、WiFi网络、公共交换电话网络、LAN等是否对于设备而言可用于传输信息。在某些实施例中,该确定还可包括确定设备是否能够访问以通过可用网络传递信息(例如,具有针对加密的WiFi信号的密码等)。在一些方面,设备100可将设备不具有访问特权的那些网络视为不可用的,即使网络以其它方式在范围中。当网络在范围中但被视为不可用时,设备100可使用前述实施例(例如,经由投影的界面、触摸屏显示器等)提示用户302查看、选择和输入密码以获得对网络的访问。

在一些方面,过程1000可包括确定可用网络的可用带宽和其它特性(步骤1006)。这些特性可反映可用网络的速度、可靠性、强度、安全性、能量消耗等。例如,在一个实施例中,设备100可确定与特定网络相关联的当前或历史带宽,其信号的强度以及与网络相关联的安全性程度(例如,基于网络是否被加密,所使用的加密算法的具体类型等)。在一些方面,设备100还可确定其之前是否已经使用网络并且其与网络的先前使用(例如,带宽、等待时间、通信是否成功等)。在某些方面,设备100可使用以上信息生成针对每个可用网络的网络得分。在一个示例中,设备100可在0.0到1.0的标度上对给定网络的带宽、信号强度和安全性特征进行评分,并且对三个分量得分求和或相乘以生成针对网络的网络得分。网络得分还可合并其它类型的信息,诸如网络的能量消耗、等待时间、稳定性、服务质量、通信速率等。

过程1000可包括确定可用网络中的一个或多个是否满足某些阈值要求(步骤1008)。例如,设备100可确定是否可用网络中的任一个具有高于特定阈值(例如,0.7、2.5等)的网络得分,和/或它们是否具有超过另一个阈值(例如,100kbps、1Mbps等)的带宽。在某些实施例中,设备100可在步骤1008中评估其它种类的连接参数,诸如网络安全性水平,或者本文公开的任何其它网络参数。此外,步骤1008可涉及若干这样的测试,诸如针对单独的阈值测量可用网络的带宽以及安全性得分。

如果一个或多个网络满足步骤1008的要求,设备100可对这些网络排序或排列以确定用于数据传输的最佳或显然最佳的网络(步骤1010)。在一些方面,设备100可按网络得分、带宽、能量消耗或与公开的实施例一致的任何其它网络参数来对网络排列。例如,设备100可选择具有最高安全性得分、带宽或网络得分的网络以用于向系统312传输信息。在一些方面,用于在步骤1010中对网络排列的参数可与在步骤1008中使用的参数不同或相同。在一个示例中,设备100可确定具有高于步骤1008中的某个阈值的带宽的网络,但是在步骤1010中按安全性得分来对网络排列。

使用选择的网络(例如,最高排列的或具有针对步骤1008或1010的参数的最高值的网络),设备100可通过该网络传输数据。传输的数据可采取与公开的实施例一致的任何数据的形式,诸如签名信息、对象尺寸信息、扫描数据等。设备100可通过选择的网络经由与外部系统312或332通信的通信接口224或主干208传输信息。在一些方面,设备100可在没有来自用户302的任何输入的情况下自动地传输该信息。在其它方面,设备100可提示用户:她是否希望传输数据和/或指定使用的网络。

在一些实施例中,当没有可用网络满足步骤1008的要求时,过程1000可包括将数据本地存储在设备100中(步骤1014)。例如,如果设备100正尝试传输经处理的签名数据,并且没有可用网络满足网络要求,设备100可将信息存储在与设备相关联的存储器(例如,辅存储器210)中。在其它方面,设备100可自动地将数据保存在本地存储器上,而不管通信网络的可用性如何。设备100然后可在与公开的实施例一致的过程中使用存储的信息。

当没有网络可用或具有必要的网络参数时,设备100还可在将来的时隙调度网络检查(步骤1016)。在一些方面,该网络检查可反映设备100可在尝试传输存储的数据时确定可用网络(步骤1004)所处于的将来时间。在某些方面,在当前和将来时隙之间的持续时间可基于与公开的实施例一致的任何考虑,诸如信息的重要性、最后已知的成功数据传输、一天中的时间、可用网络的带宽、必须传输的信息的数量等。例如,在从最后成功数据传输起的时间增长、要传输的信息的数量增加等时,设备100可更频繁地调度网络检查。在某些方面,设备100可在存储的信息被最终传输时从存储器中删除该存储的信息(步骤1012),虽然这样的过程不是必需的。

在一些实施例中,设备100、系统312和/或第三方系统332可管理、主控、存储和生成针对设备100的一个或多个用户(例如,用户302)的帐户和相关联的帐户信息。在一些方面,用户帐户信息可包括用户的定制输入定义或校准数据(例如,定制手势、定制音频输入、特质用户输入等)、用户偏好(例如,对应于界面的颜色和大小的定义等)、用户证书(例如,登录、密码、用户ID、雇员号码、电子邮件地址、传记体信息、生物测定信息等)、用户属性(例如表示用户的身体类型、身体大小、方言等的参数)以及与公开的实施例一致的任何其它信息。在一些方面,设备100还可将用设备组件获得、收集或处理的数据与某些用户相关联,如上所述。

在一些方面,设备100、系统312和/或第三方系统332可接收、管理和实现用户帐户和证书信息以进行与公开的实施例一致的某些过程。例如,在一个实施例中,设备100可经由输入事件(诸如由深度摄像机130检测到的界面输入或经由显示器140接收的显示器输入等)接收反映用户的登录证书的信息。在某些方面,设备100可认证用户的证书,确定用户是否被授权穿戴或操作特定设备100(例如,基于证书),并且提供与用户的证书信息伴随的设备功能性。例如,在一些实施例中,设备100可被配置成仅仅针对某些用户操作,仅仅针对第二组用户提供某些设备过程(例如,条形码扫描)等等。在其它方面,设备100可不需要登录证书,可仅仅需要简单的手势输入来解锁特征(例如,滑动以解锁),可向所有用户提供其所有功能性。在一些实施例中,用户帐户管理可发生在其它计算机系统上,并且设备100可被配置成发送和接收去往其它系统的帐户信息以促进用户帐户管理。例如,系统312可监视在场中操作的一组设备,并且可监视与每个设备相关联的用户证书。在某些情况下,系统312可经由通信网络320向设备100提供信号以禁用或启用设备100、与设备100相关联的某些功能性等等。

图11描绘与公开的实施例一致的用于禁用设备功能的示例性过程1100的流程图。过程1100可经由在设备100中执行的软件和/或硬件来实现,诸如用执行软件指令以与一个或多个设备组件通信的处理器202。过程1100可全部或部分地在其它计算系统(诸如通过通信网络320与设备100通信的系统312)上实现。过程1100或其子例程可作为独立的过程或者结合与公开的实施例一致的其它过程来实现。

过程1100可通过从用户302接收用户证书(步骤1104)而开始(步骤1102)。如上所述,用户证书可包括信息,诸如用户ID、登录名、密码、雇员号码、电子邮件地址以及标识或唯一地标识用户的其它种类的信息(例如地址、生物测定信息)。设备100可经由任何适当的输入事件(诸如由深度摄像机130检测的用户提供到投影仪110投影的输入字段的界面输入)接收用户的证书。此外,设备100可经由从触摸屏显示器140接收的显示器输入、设备100或与设备100通信的设备(例如,系统312)上的按钮、键盘或其它输入设备、位于设备100上的生物测定传感器等来接收用户的证书。诸如系统312之类的其它计算系统还可经由相关联的输入设备(例如,键盘)和/或通信网络320接收用户证书信息。

在某些方面,过程1100可包括验证接收的证书(步骤1106)。过程1100可通过例如比较接收的证书与存储在存储器中的证书并且确定接收的证书是否匹配存储器中的证书(例如,使用输入中的一个作为密钥,诸如用户ID、登录名等)来认证用户的证书。在一些实施例中,过程1100可经由在设备100上操作的本地过程或通过在与设备100通信的外部系统(例如系统312)上进行的过程来验证用户的证书。例如,设备100可本地认证用户的证书(例如,经由执行软件指令的处理器202),或者可向外部系统(例如,系统312)传输接收的信息以用于认证。在该后一个实施例中,系统312本身可认证用户302,并且然后向设备100传输认证过程的结果以用于进一步的处理。

如果接收的证书不匹配存储器中的证书(例如,用户未被认证),设备100可采取许多动作。在一个方面,设备100或系统312可经由与之前相同或不同的输入方法(例如,界面输入、显示器输入、生物测定输入等)而简单地提示用户302重新输入她的证书。在另一个方面,设备100可禁用设备或设备上的某些功能(例如,在某个时间量内,直到操作者超驰等)。在又一个方面,设备100可在某个数量的失败登录尝试之后禁用某些功能性等等。设备100还可提供更高级的认证技术,诸如提示用户回答安全性问题(例如,以重置密码)。

当设备100或外部系统312认证用户302时,过程110还可包括确定用户是否受到任何个人(ID)、时间和/或地点约束(步骤1108)。在一些方面,ID、时间和/或地点约束可在某些时间期间在某些地理区域内针对标识的用户限制或禁用设备功能性。每个ID、时间和/或地点约束可应用到一个或多个设备功能。在一个说明性实施例中,设备100可确定具有给定用户ID(例如,用于基于接收的证书信息来认证用户的任何唯一标识符)的用户可不使用与在3:00 A.M.和6:00 A.M.的时间之间、同时在特定地理区域(例如,与特定储存库相关联的地理区域)内扫描视觉代码一致的过程。ID、时间和地点约束可应用于AND(与)/OR(或)/NOT(非)逻辑操作和分组的任何组合中。例如,设备100可针对特定用户(AND)在具体时间期间、(OR)针对该用户而(NOT)在特定区域中禁用设备功能。可周期性地(例如,每15分钟)、在初始登录时、或者在当约束应用或消除时(例如,基于活动用户ID,并且在确定用户不被准许在6:00 P.M.至6:00 A.M.之间使用设备功能之后)评估ID、时间和地点约束。

在一些实施例中,设备100可基于本地处理来确定ID、时间和地点约束。例如,设备100可认证用户302(步骤1106),基于证书信息而确定针对该用户的用户ID,并且确定该用户是否被ID约束、时间约束(例如,经由与处理器202通信的内部时钟)和/或地点约束(例如,经由与处理器202通信的GPS接收器)所限制。设备可基于诸如在数据库或表中之类的存储器(例如,辅存储器210)中存储的约束信息来做出该确定,并且在表中查找用户(例如,基于唯一的ID)以确定任何相关的约束现在还是将来适用。另外,诸如系统312之类的外部系统可确定是否任何相关的约束适用(例如,经由存储在数据储存库316中的数据库),并且可向设备100传送这样的确定的结果以用于进一步的处理。

过程1100还可包括:根据ID、时间和/或地点约束来禁用设备100的一个或多个特征(步骤1110)。在某些方面,设备100可通过关闭从受影响的设备组件接收的信号(例如,经由来自处理器202的指令)和/或抑制软件中的信号(例如,处理器接收信号,但是不如上所述地处理它们)来禁用设备功能。当相关约束不再适用时,设备然后可重新打开受影响的信号和/或撤销软件块。

与标识的ID、时间和/或地点约束相比,设备100可基于设备的当前用户、时间和/或位置来禁用其功能。设备100可基于安装在设备100中的本地时钟和/或GPS接收器来确定设备的当前时间和位置。在某些方面,当新用户登录到设备中时,在特定时间,或者当设备进入或离开特定区域时,设备100可周期性地确定是否禁用设备功能。在一些方面,该确定的定时可基于标识的ID、时间和地点约束。例如,如果用户不受地点约束,则单独的用户的移动可不影响确定是否禁用设备功能性的定时。在另一个示例中,如果设备100确定特定设备功能(例如,定尺寸功能)应当在9:00 P.M.针对当前用户禁用,设备可在9:00 P.M.比较与设备相关联的ID、时间和/或位置,以确保标识的时间约束仍然适用。以这种方式,设备100可基于与设备相关联的用户的证书、当前时间和当前地点与存储在存储器中的标识、时间和地点约束的比较而启用和禁用其功能。此外,前述处理可在外部系统(例如,系统312)上发生,所述外部系统然后可通过通信网络320向设备100提供指令以基于上述分析来禁用/启用某些功能。

虽然前述实施例的某些方面和例程已经被描述为以特定次序或方式发生,但是公开的实施例不被如此限制。例如,前述实施例的步骤或子例程可被重新布置、重新排序、省略、拼接、修改和/或重组,以执行与本文设想的那些一致的附加过程。

从本文公开的实施例的说明书和实践的考虑中,其它实施例对本领域技术人员将是显而易见的。例如,虽然一般已经结合设备100描述了前述实施例的一些方面,但是本领域普通技术人员将理解:设备100可包括经由一个或多个处理器执行以实践前述实施例的必要的硬件(例如,组件、电路、外围设备等)和/或软件指令。意图是说明书和示例仅仅被认为是示例性的,其中本发明的真实范围和精神由以下权利要求指示。

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