直觉计算方法和系统的制作方法

文档序号:7848301阅读:255来源:国知局
专利名称:直觉计算方法和系统的制作方法
技术领域
本说明书涉及各种技术;大部分涉及使智能电话和其他移动装置能够对用户的环境做出响应(例如通过充当直觉的视听装置)的方案。
背景技术
手机已经从专用的通信工具发展成多功能的计算机平台。“有一个应用软件可以装”是为人们所熟悉的口头禅。超过十万个应用软件可用于智能电话,从而提供种类极多的服务。然而,这些服务中的每一个都必须由用户特意地识别并启动。从可以回溯到二十多年前的普适计算(ubiquitous computing)的视角来看,这是极其悲哀的。在上述普适计算中,计算机需要我们更少地去关注它,而不是更多地去关注它。真正“智能”的电话应该是自主地采取行动来实现推断出的或预期到的用户期望。沿着这一方向向前跃进的一步将会是,为手机配备使其成为智能视听装置的技术,从而监视用户的环境并且响应于视觉和/或其他刺激而自动选择并采取操作。在实现这样的装置的过程中存在着许多挑战。这些挑战包括理解对装置输入的刺激所表示的含义的技术,基于该理解来推断用户的期望的技术,以及在满足这些期望的过程中与用户进行交互的技术。这些挑战中可能最大的挑战是上述第一个挑战,它基本上是机器认知方面的长期存在的问题。考虑手机摄像机。对于每个所拍摄的帧,手机摄像机输出大约一百万个数字(像素值)。这些数字表示汽车、条形码、用户的孩子、或者一百万个其他东西之一吗?假定该问题具有一个直接的解决方案。将这些像素传送给“云”并使大量匿名计算机将每种已知的图像识别算法应用于该数据,直到其中一种图像识别算法最终识别出所描绘的对象。(一种特定的方法是,将未知的图像与发布到基于万维网的公共照片储存库(如Flickr和Facebook)中的数十亿图像中的每一个进行比较。在找到最相似的发布照片之后,可以记录与该匹配照片相关联的描述性词语或“元数据”,并将其用作用于识别未知图像的主题的描述符。)在消耗了几天或几个月的云计算能力(和数兆瓦的电力)之后,答案得以产生。然而,这样的解决方案无论在时间方面还是在资源方面都是不实际的。稍微更实际一点的方法是将图像发布给众包(crowd-sourcing)服务,如Amazon的Mechanical Turk。该服务把图像提交给一个或更多人类审阅者,这一个或更多人类审阅者将描述性词语提供回给该服务,随后这些描述性词语被传送回给装置。当其他解决方案证明无效时,这是可能的替代方案,尽管时间延迟在许多情况下过长。

发明内容
在一个方面中,本说明书涉及可以用来更好地解决认知问题的技术。在一个实施例中,应用图像处理方案来相继地获得更多且更好的关于所输入的刺激的信息。图像内容 的大概意思可以在一秒钟内获得。更多信息可以在两秒钟之后获得。利用进一步的处理,更加精炼的评估可以在三或四秒钟之后获得,等等。该处理可以通过用户不需要这样的处理继续进行的(明确的、暗示的或推断的)指示而在任何一点被中断。如果这样的处理不能产生迅速的令人满意的结果并且用户继续对图像的主题感兴趣(或者如果用户没有相反的指示),那么可以将图像提交给云进行更加彻底且冗长的分析。书签等可以存储在智能电话上,从而允许用户复核并了解这种进一步分析的结果。或者如果这种进一步的分析得出了可引起行动得以采取的结论,那么可以提醒用户。对适当的装置响应的认知和识别可以由附属信息(如背景环境)来辅助。如果智能电话从所存储的概况信息(profile information)得知用户是35岁的男性,并且从GPS数据和相关地图信息得知用户位于波特兰的星巴克咖啡店,并且从时间和天气信息得知现在是工作日的昏暗且下雪的早上,并且从装置的历史中检索出在先前几次造访该位置时用户采用手机的电子钱包购买了咖啡和报纸、并使用手机的浏览器浏览了报导橄榄球比赛结果的网站,那么智能电话的任务就得到相当大的简化。可能的输入刺激不再有无限大的范围。而是,输入的景象和声音很可能是在昏暗且下雪的早上在咖啡店中通常会遇到的那类景象和声音(或者相反地说,不可能是例如在东京的阳光充足的公园中遇到的景象和声音)。响应于这样的景象和声音的适当的可能动作也不再有无限大的范围。而是,候选动作很可能是与波特兰的在上班途中的35岁对橄榄球感兴趣的喝咖啡的用户相关的动作(或者相反地说,不可能是与例如东京的坐在公园中的老年妇女相关的动作)。通常,最重要的背景环境信息是位置。第二最相关的背景环境信息通常是动作的历史(通过以往的各星期、季节等的当前这一天来获悉)。同样重要的是关于用户的社交群体或用户的人口统计群体中的其他人在类似的情况下所做的事的信息。(如果在Macys百货商场的特定位置驻足的最后九个十几岁的女孩都拍摄了走廊端显示器上的一双靴子的图像、并且全都对了解价格感兴趣、并且她们中的两个人还对了解存货中有哪些尺码感兴趣,那么在该位置驻足的第十个十几岁的女孩所拍摄的图像很可能也是同一双靴子的图像,并且该用户很可能也对了解价格感兴趣,或许也对存货中有哪些尺码感兴趣。)基于这样的附属信息,智能电话可以加载适合于在统计上可能出现的刺激的识别软件,并且可以准备采取在统计上与响应相关的动作。在一个特定实施例中,智能电话可以具有可利用的数百个备选的软件代理,这些软件代理中的每一个都能够执行多种不同的功能,每种功能在例如响应时间、CPU利用率、内存利用率和/或其他相关限制方面都有不同的“成本”。于是手机可以进行规划练习(planning exercise),例如限定出由各种可利用的代理和功能构成的N叉树、并沿路径航行穿过该树以辨别出如何以最低成本执行期望的操作组合。有时,规划练习可能无法找到适合的解决方案,或者可能会发现其成本令人望而却步。在这种情况下,手机可以决定不进行某些操作一至少在当前时刻不进行。手机可以不进行任何关于该任务的进一步处理,或者在使解决方案变得实际可行的附加信息变得可获得的情况下手机可以在过一会之后再试一次。或者,手机可以简单地将数据提交给云以便通过更有能力的云资源来处理,或者手机可以存储输入的刺激以便在之后再访问并有
可能进行处理。系统的处理(例如,图像处理)中的很大一部分实质上可能是投机性的——是带着某处理可能在当前背景环境下有用的期待尝试的。根据本技术的另一方面,根据各种因素来对这些处理分配更多或更少的资源。一个因素是成功率。如果一个处理看上去似乎能产生积极的结果,那么可以给它分配更多资源(例如,内存、网络带宽等),并且可以允许它继续进入进一步的操作阶段。如果一个处理的结果看上去似乎是令人沮丧的,那么可以给它分配更少的资源,或者将其完全停止。另一个因素是用户对特定处理的结果感兴趣与否,这也可以类似地影响是否允许一个处理继续进行以及允许该处理用哪些资源继续进行。(用户兴趣可以例如通过用户触摸屏幕上的某一位置来表达/明示,或者可以根据用户的动作或背景环境来推断,例如根据用户移动摄像机从而将特定对象重新定位在图像帧的中心的动作来推断。用户兴趣的缺乏可以类似地通过用户的动作来表达,或者根据用户的动作或用户动作的缺少来推断。)另一因素是处理的结果对正被分配更多资源或更少资源的另一处理的重要性。一旦已经实现了认知(例如,一旦已经识别图像的主题),那么手机处理器或云资源就可以建议应该提供给用户的适当响应。如果描绘的主题是条形码,那么可以指示一个响应(例如,查找产品信息)。如果描绘的主题是家庭成员,那么可以指示不同的响应(例如,发布到在线相册上)。然而,有时,适当的响应不是立即就明显易见。如果描绘的主题是街道景象或停车计时器,那该怎么办?再一次,附属信息源(如背景环境和来自自然语言处理的信息)可以应用于该问题以帮助确定适当的响应。智能电话的传感器被不断地供以刺激(由麦克风感测的声音、由图像传感器感测的光、由加速计感测的运动、由磁力计感测的磁场、由热敏电阻器感测的周围温度、等等)。一些刺激可能是重要的。大多数刺激是噪声并且最好被忽略。当然,手机具有各种有限的资源,例如CPU、电池、无线带宽、金钱预算等。因此,在另一方面中,本技术涉及确定要处理密集的一堆数据中的哪些,并且涉及使在平台的约束下进行视觉搜索的数据处理方案与系统的其他需求平衡。在另一方面中,本技术涉及例如与视觉对象(或音频流)相一致地在移动装置屏幕上呈现“小玩意(bauble)”。用户对小玩意的选择(例如通过轻拍触摸屏)导致与对象相关的体验。小玩意可以随着装置逐渐了解更多或者获得更多关于对象的信息而在明确性或尺寸方面进化。在早期的实现方案中,所描述的这类系统将是相对基础的,并且不会展现出较多的洞察力。然而,通过将数据细流(或洪流)(连同以这些数据为基础的关于用户动作的信息一起)馈送回给云进行存档和分析,这些初期系统可以建立借以构建模板和其他训练模型的数据基础——使这些系统的后代能够在被供以刺激时具有高度的直觉性和响应性。如接下来将变得明显的那样,本说明书也详述了大量的其他发明特征和组合。尽管主要在视觉搜索的背景环境下进行描述,但应理解的是,这里详述的原理也适用于其他背景环境(如来自其他传感器或传感器的组合的刺激的处理)。许多详述的原理具有宽得多的适用性。类似地,尽管下面的描述集中讨论几个示例性实施例,但应理解的是,这些发明原理不限于以这些特定形式实现。因此,例如,尽管具体提到了一些细节(如黑板数据结构、状·态机构造、识别代理、延迟执行(lazy execution)、等等),但是它们中的任何一个都可能是不需要的(除非由所发布的权利要求特别指定)。


图I用架构图示出采用本技术的某些方面的实施例。图2是示出使本地装置涉及云处理的图。图3用不同的功能方面(按照系统模块和数据结构)对认知处理的各特征进行映射。图4示出空间组织和理解的不同水平。图5、5A和6示出可在构成服务决定的过程中使用的数据结构。图7和8示出根据人工智能已知的并且在本技术的某些实施例中采用的规划模型的一些方面。图9标识出可由操作系统执行的四个级别的并行处理。图10对说明性实现方案进一步详述这四个级别的处理。图11示出在辨别用户意图的过程中涉及的某些方面。图12描绘出可在某些实现方案中使用的循环处理方案。图13是图12方案的另一视图。图14是描绘系统操作的某些方面的概念图。图15和16分别示出与识别代理和资源跟踪相关的数据。图17示出可用来帮助机器理解观察空间的图形目标。图18示出基于音频的实现方案的一些方面。图19和19A示出各种可能的用户界面特征。图20A和20B示出使用经阈值处理的斑点进行对象分割的方法。图21和22示出其他示例性用户界面特征。图23A和23B示出用户界面中的雷达特征。图24用来详述其他用户界面技术。
具体实施方式
在许多方面中,本公开的主题可以被认为是对允许用户使用计算机装置与用户的环境交互而言有用的技术。这一宽广的范围使得所公开的技术非常适合于不计其数的应用。由于本公开中详述的主题的范围和多样性极大,所以很难实现有条理的介绍。明显的是,下面呈现的许多主题章节既以其他章节为基础,又是其他章节的基础。因而,不可避免地,各章节是按照有点任意的顺序呈现的。应认识到的是,来自每个章节的一般原理和特定细节也可以在其他章节中得到应用。为了防止本公开的长度膨胀失控(简明总是有益的,特别是在专利说明书中),不同章节的特征的各种置换和组合并没有无遗漏地详述。本发明人意图明确地教导这些组合/置换,只是实践性要求把所详述的合成方案留给根据这些教导最终实现本系统的那些人来决定。还应注意的是,这里详述的技术建立在前面引用的专利申请中所公开的技术上并对其进行了扩展。因此请读者参考那些详述了申请人期望本技术被应用于的方案并且在技术上对本公开进行了补充的文献。
认知,非居间化(disintermediated)搜索移动装置(如手机)正在成为认知工具,而不仅仅是通信工具。在一个方面中,认知可以被认为是向一个人告知这个人所处的环境的活动。认知动作可以包括·基于传感输入来感知各种特征;·感知各种形式(例如,确定协调地结合起来的结构); 关联,如确定外部结构和关系; 定义各种问题; 定义问题解决状态(例如,它是文本我可以做什么? A.读取它);·确定解决方案选项;·启动动作和响应;·识别通常是确定适当响应的过程中的第一个基本步骤。视听移动装置是辅助进行向一个人告知其所处环境的过程中所涉及的那些处理的工具。移动装置以惊人的速率激增。许多国家(包括芬兰、瑞典、挪威、俄罗斯、意大利和英国)据传道具有的手机多于人口。根据GSM联盟,当前有近似四十亿个GSM和3G手机在使用中。升级周期是如此之短,以致于平均每24个月就要更换一次装置。因此,移动装置已经是巨大投资的焦点。行业巨头(如Google、Microsoft、Apple和Nokia)已经认识到巨大的市场取决于扩展这些装置的功能性,并且已经在研究和开发中投资了相当大的款项。在付出这样普遍且强烈的努力后,行业巨头仍未能开发出这里详述的技术,这着实证明了这里详述的技术的创造性。“非居间化搜索”(如视觉查询)被相信是对于即将来临的各代移动装置而言最引人注目的应用之一。在一个方面中,非居间化搜索可以被认为是减少(乃至消除)人类在启动搜索的过程中的任务的搜索。例如,智能电话可以始终分析视觉环境,并且不用特意询问就提供解释和相关信息。在另一方面中,非居间化搜索可以被认为是超越Google的下一步。Google构建了统一的大规模系统来把关于公共万维网的全部文本信息组织起来。但是视觉世界太大且太复杂,以致于甚至是Google都无法控制。一定会牵扯到无数参与者一每个参与者起着专门的作用,一些作用较大,一些作用较小。将不会存在“一个搜索引擎能支配他们全部”。(考虑到潜在地会牵扯到无数的参与者,或许备选的绰号将是“超居间化搜索(hyperintermediated search),,。)架构I用架构图示出采用本技术的某些原理的实施例。(应该认识到的是,将功能划分成多个块是有点任意的。实际的实现方案可能并不遵循这里描绘和描述的特定结构。)ICP 小玩意 & 空间模型组件(ICP Baubles&Spatial Model component)处理涉及观察空间、显示、及其关系的任务。一些相关功能包括与把小玩意叠盖到视觉景象上的过程有关的姿势估计、跟踪、和正射校正映射(ortho-rectified mapping)。在一个方面中,小玩意可以被认为是与所拍摄图像的特征相关联地显示在屏幕上 的增强现实图标。这些小玩意可以具有交互性和用户调谐性(即,不同的小玩意可以出现在不同用户的屏幕上,从而察看同一景象)。在一些方案中,小玩意显现出来指示系统最先隐约识别出的东西。当系统开始辨别出在显示器上的某一位置处存在着用户潜在感兴趣的某个东西(视觉特征)时,系统呈现小玩意。随着系统推断出更多有关该特征的信息,小玩意的尺寸、形状、颜色或亮度可以发生变化,从而使得其更加突出和/或使得其提供的信息更加丰富。如果用户轻拍小玩意从而表示对该视觉特征感兴趣,那么系统的资源管理器(例如,ICP状态机)可以不均衡地对该图像特征的分析处理拨划比其他图像区域更多的处理资源。(关于用户这一轻拍动作的信息也与关于该特征或该小玩意的信息一起存储在数据存储器中,使得用户对该特征的兴趣可以在下一次被更快速地识别或自动地识别。)当小玩意第一次出现时,关于该视觉特征,可能除了它看上去似乎构成视觉上分立的实体(例如,明亮的斑点,或具有边缘轮廓的某个东西)以外什么都不知道。在该理解水平上,可以显示一般的小玩意(或许被称为“原型小玩意(proto-bauble)”)如小星形或圆形。随着更多关于该特征的信息得以推断出来(它看上去似乎是面部或条形码或树叶),可以显示使加深的理解得到反映的小玩意图形。小玩意可以在性质上是商用的。在一些环境中,在显示屏上可能会泛滥着不同的小玩意来竞争用户的关注。为了解决该问题,可以存在用户可设定的控制(视觉冗长控制),其能够调节在屏幕上呈现多少信息。附加地或者备选地,可以提供一种控制,其允许用户建立商用小玩意与非商用小玩意的最大比率。(如同Google那样,从长期来看,从系统收集原始数据会证明比向用户呈现广告更有价值。)合乎期望的是,被选择进行显示的小玩意是基于各种维度的背景环境确定的对用户而言最有价值的那些小玩意。在一些情况下,商用和非商用小玩意都可以基于在云中进行的拍卖处理来选择。可以提供另一 Gn控制来指示用户的当前兴趣(例如,观光、购物、远足、社交、航行、吃饭等),并且可以相应地调谐小玩意的呈现。图示的ICP小玩意&空间模型组件可以借用或者基于发挥相关功能的现有软件工具来构建。一个现有软件工具是ARToolKit——起因于华盛顿大学的人机界面技术实验室的研究而产生的可免费获得的一套软件(hitl〈dot>Washington〈dot>edu/artoolkit/),现在由西雅图的ARToolworks公司(artoolworks〈dot>com)进一步开发。另一套相关工具是MV工具一一种流行的机器视觉函数库。图I仅示出一些识别代理(RA);可以存在几十或几百个识别代理。这些识别代理是帮助识别像素或其他内容、并从像素或其他内容中提取含义的组件。在一个方面中,一些RA可以类推为是专门搜索引擎。一个可以搜索条形码,一个可以搜索面部,等等。如同小玩意那样,可以存在涉及RA的竞争。即,相互重叠的功能性可以由来自几个不同提供商的几个不同RA提供。在特定背景环境中在特定装置上使用哪个RA的选择可以随用户的选择、第三方评论、成本、系统限制、输出数据的可再利用性、和/或其他标准而变。最终,达尔文筛选可能会发生,使得最好地满足用户需求的那些RA成为主流。智能电话供应商可以在最初为该智能电话提供一组默认的RA。一些供应商可以保持对RA选择的控制(围墙花园式方法),而一些供应商可以鼓励用户发现不同的RA。在线市场(如苹果应用软件商店)可以发展成充当RA市场。为不同的客户群和需求服务的RA 包可能会出现,例如一些RA包能帮助视力有限的人(例如,载有视力帮助RA如文本到语音识别),一些RA包能设法满足期望最简单的用户界面的那些人的需要(例如,大按钮控制,非行话图注);一些RA包能设法满足户外爱好者的需要(例如,包括鸟鸣声识别RA、树叶识别RA);—些RA包能设法满足世界旅行者的需要(例如,包括语言翻译功能和基于位置的旅行者服务),等等。系统可以提供一菜单,借助该菜单用户可以使装置在不同的时刻加载不同的RA包。一些或全部RA可以取决于具体情况而将功能性推送给云。例如,如果可利用去往云的快速数据连接、并且装置的电池接近耗尽(或者如果用户正在玩消耗装置的大部分CPU/GPU资源的游戏),那么本地RA可以仅在本地完成一小部分任务(例如,仅进行管理),并将其余的任务发给云中的对应部分以便在那里执行。如本公开中其他地方详述的那样,可由RA利用的处理器时间和其他资源可以以动态方式控制——将更多的资源分配给看上去似乎值得该待遇的那些RA。ICP状态机的分配器组件可以专心于这种照管。ICP状态机也可以管理在本地RA组件和云中的对应部分之间进行的RA操作分配。ICP状态机可以采用以安卓开源操作系统(例如,developer<dot>android<dot>com/guide/topics/fundamentals, html)以及 iPhone 和Symbian SDK为模型设计的一些方面。图I中的右边是云&商务规则组件,其充当对云相关处理的接口。它也可以执行对云拍卖的管理——确定由多个云服务提供商中的哪一个来执行某些任务。它通过服务提供商接口(SPI)与云进行通信,其中服务提供商接口基本上可以利用任何通信通道和协议。尽管特定的规则将是不同的,但是可以用作本架构的该方面的模型的示例性基于规则的系统包括电影实验室内容规则和权利方案(例如movielabs〈dot>com/CRR/)和CNRI 处理系统(例如 handle〈dot>net/)。图I中的左边是背景环境引擎,其提供并处理由系统使用的背景环境信息(例如,当前位置是哪里?用户在上一分钟执行了什么动作?用户在上一小时执行了什么动作?等等)。背景环境组件可以跨越接口链接到远程数据。远程数据可以包括任何外部信息,例如有关活动、同等群体(peer)、社交网络、消费的内容、地理的信息——可以使本用户与其他人联系起来的任何信息(如相似的度假目的地)。(如果装置包括音乐识别代理,那么它可以查阅用户的Facebook朋友的播放列表。装置可以使用该信息来精炼用户所听的音乐的模型——还考虑例如关于用户预订的在线广播电台的认识等。)背景环境引擎和云&商务规则组件可以具有残留在云侧的对应部分。即,该功能性可以是分布式的,一部分在本地,并且在云中有一对应部分。基于云的交互可以利用关于Google的应用软件引擎(App Engine)(例如,code〈dot>Google〈dot>com/appengine/)和 Amazon 的弹性计算云(Elastic ComputeCloud)(例如,aws<dot>amazon<dot>com/ec2/)进行的相关云计算已经公开的许多工具和软件。图I 的底部是黑板和聚类引擎(Blackboard and Clustering Engine)。聚类引擎使多项内容数据(例如,像素)在关键字向量(KeyVector)中成群到一起。 关键字向量可以大致类推为是文本关键字的视听对应物——输出到处理中以便获得相关结果的一群元素。再一次,前面提到的ARToolKit可以为该功能性的某一方面提供基础。黑板功能性可以利用开源黑板软件GBBopen (gbbopen〈dot>org)。在Java虚拟机上运行(并且支持用JavaScript编写脚本)的另一开源实现方案是黑板事件处理器(Blackboard EventProcessor) (code〈dot>Google〈dot>com/p/blackboardeventprocessor/)。上文的各方面在本说明书的下面及其他章节中将进一步详述。本地装置&云处理如图2概念性示出的那样,非居间化搜索应该依靠本地装置和云的强度/属性。(云“管道”也作为因素计入该混合物中(例如通过包括带宽和成本在内的限制)。)功能性在本地装置和云之间的特定分配随着实现方案的不同而变化。在一个特定实现方案中,功能性被划分如下本地功能性·背景环境—用户身份、偏好、历史一背景环境元数据处理(例如,我是谁?我现在面向什么方向?)· UI 一在屏幕上呈递&反馈(触摸、按钮、音频、接近、等等)·大体定向一全局采样;在不进行很多分析的情况下进行分类一数据对齐(data alignment)和特征提取一特征的枚举拼凑物(enumerated patchwork)一帧间采集;时间特征的序列·云会话(Cloud Session)管理一对识别代理(RA)的登记、关联&双向会话操作 识别代理(RA)管理一类似于具有特定功能性的动态链接库(DLL)——识别特定身份和形式
一资源状态和检测状态可伸缩性-由识别代理提供的服务的组成一开发和许可平台云功能性
·商务规则、会话管理、识别代理控制等·许多公司可以在这方面做贡献,包括Verisign等这里详述的技术从包括以下来源的各种来源吸取启发·生物学类似于人类视觉系统&高级认知模型 信号处理传感器融合·计算机视觉图像处理操作(空间&频率域)·计算机科学服务的组成&资源管理,并行计算·机器人学用于自主交互的软件模型(PLAN、Gazebo等)· Al :评估/匹配/执行模型,黑板、规划模型等·经济学拍卖模型(次高价中标(Second Price Wins)…)· DRM :权利表达语言&商务规则引擎 人类因素UI,增强现实, 移动价值链结构(Mobile Value Chain Structure):风险承担者,商务模型,政
策7等等·行为科学社交网络,众包/大众分类法(folksonomy)·传感器设计磁力计、近程传感器、GPS、音频、光学(景深延伸等)图3用不同的功能方面(按照系统模块和数据结构)对说明性认知处理的各种特征进行映射。因此,例如,直觉计算平台(ICP, Intuitive Computing Platform)背景环境引擎把关联、问题解决状态、确定解决方案、启动动作/响应、和管理这些认知处理应用于系统的背景环境方面。换句话说,ICP背景环境引擎尝试基于历史等来确定用户的意图,并使用这样的信息来告知系统操作的各方面。同样,ICP小玩意&空间模型组件在向用户呈现信息和从用户接收输入这些方面进行许多相同的处理。ICP黑板和关键字向量是与系统的定向方面相关联地使用的数据结构。黑板是对Daniel Corkill所普及的计算机构造的引用。参看例如Corkill的CollaboratingSoftware-Blackboard and Multi-Agent Systems&the Future (Proceedings of theInternational Lisp Conference, 2003)。ICP状态机&识别代理管理与识别代理共同照管识别处理以及与识别相关联的服务的组成。状态机通常是实时操作系统。(这些处理也涉及例如ICP黑板和关键字向量。)云管理&商务规则处理云登记、关联和会话操作一在识别代理和其他系统组件与云之间提供接口。支持小玩意的本地功能件与小玩意相关的一个或更多软件组件所提供的功能中的一些可以包括以下功倉泛·理解用户的概况、用户的一般兴趣、用户在其当前背景环境内的当前特定兴趣。 对用户输入做出响应。
·使用所选的来自全局图像处理库的模块来对流式形式的多个帧的重叠景象区域进行空间解析和“对象识别(ob ject-ify)”·把呈分层结构的多层符号(像素分析结果、ID、属性等)附加到原型区域上;将其打包成原型查询的“关键字向量”。·基于用户设定的视觉冗长水平和全局景象理解,设立小玩意原始显示功能/正射投影。·将关键字向量路由到适当的本地/云地址·使所附加的“完整背景环境”元数据来自列在顶部的路由对象。·如果路由到本地地址,则处理该关键字向量并产生查询结果。 ·收集关键字向量查询结果并使适当的小玩意在用户屏幕上活跃/把适当的小玩意位块传送(blit)到用户屏幕·小玩意可以是“完全且充分地可引起行动得以采取”,或者可以示出“临时状态”并因此期待用户交互以便进行更深的查询钻研或查询精炼。肓觉计算平台(ICP)小玩意在云中进行提供服务和高价值的小玩意结果这一方面的竞争应该激励供应商变得优异并取得商业成功。建立具有基线品质的非商用服务的云拍卖地点可以帮助激励该市场。用户想要(并且应该会需要)最高品质和最相关的小玩意,使商业入侵程度随用户意图和实际查询而变地得到调节。在对立面上,把屏幕作为不动产购买的购买者可以分成两类愿意提供非商用小玩意和会话的那些购买者(例如,带着争取客户以打造品牌的目标),以及想要“有资格”拥有作为不动产的屏幕并且仅仅对这些屏幕所代表的商业机会投标的那些购买者。当然,在把自己的“关键字、拍卖处理、赞助的超链接呈现”货币化方面,Google已经建立了巨大的产业。然而,对于视觉搜索,单个实体似乎不太可能会相似地支配该处理的所有方面。而是,似乎可能的是,处于中间层的公司将辅助进行用户查询/屏幕不动产购买者的匹配。用户界面可以包括一种控制,借助该控制用户可以摒弃不感兴趣的小玩意一从屏幕上将其去除(并且终止专用于发现与该视觉特征相关的进一步信息的任何正在进行的识别代理处理)。关于被摒弃的小玩意的信息可以记录到数据存储库中,并用于扩充用户的概况信息。如果用户摒弃关于星巴克咖啡店和独立咖啡店的小玩意,那么系统可以推断出用户对所有咖啡店都缺乏兴趣。如果用户仅摒弃了关于星巴克咖啡店的小玩意,那么可以辨别出更窄的用户兴趣缺乏范围。将来进行的小玩意的显示可以查阅数据存储库;早先被摒弃(或者反复被摒弃)的小玩意通常不会被再次显示。类似地,如果用户轻拍小玩意从而表示出兴趣,那么该类型或该类别的小玩意(例如,星巴克、或咖啡店)可以在将来在评估(在许多候选者当中)要显示哪些小玩意时被赋予较高的分数。关于用户与小玩意间的交互的历史信息可以与当前背景环境信息结合使用。例如,如果用户在下午而不是在上午摒弃了与咖啡店相关的小玩意,那么系统可以在上午继续呈现与咖啡相关的小玩意。
视觉查询问题固有的复杂性意味着,许多小玩意将属于临时的或原型小玩意那一类——邀请并引导用户提供人类级别的过滤和导航以便更深入地进行查询处理。在某一景象上进行的小玩意显示的进展因此可以随实时人类输入以及其他因素而变。当用户轻拍小玩意或以其他方式表达出对小玩意感兴趣(与轻拍初步的原型小玩意形成对比)时,该动作通常会启动与该小玩意的主题相关的会话。会话的细节将取决于特定的小玩意。一些会话可以在性质上是商用的(例如,轻拍星巴克小玩意可以获得星巴克产品的优惠一美元的电子赠券)。一些会话可以是提供消息的(例如,轻拍与雕像相关联的小玩意可以导致关于该雕像或雕刻家的Wikipedia条目的呈现)。表示识别出所拍摄的图像中的面部的小玩意可以导致各种操作(例如,呈现来自社交网络(如LinkedIn)的有关这个人的概况;把该照片的带有关于面部的注释的副本发布到识别出的这个人的Facebook页面或发布到该用户的Facebook页面,等等)。有时,轻拍小玩意会唤来由几个操作构成的菜单,用户可以从该菜单中选择期望的动作。轻拍小玩意表示该小玩意所对应的种类胜过了其他小玩意。如果轻拍的小玩意在性质上是商用的,那么该小玩意羸得了对用户的关注以及对观看者的屏幕这一不动产的暂 时利用的竞争。在一些情况下,可以做出相关的支付——或许支付给用户,或许支付给另一方(例如保证其“赢得”客户的那一实体)。轻拍的小玩意还表示对偏好的表决一可能达尔文同意该小玩意优于其他小玩意。除了影响对在将来呈现给该用户的待显示小玩意的选择之外,这样的确认也会影响对显示给其他用户的小玩意的选择。这有希望把小玩意提供商引导到朝向优异用户服务迈进的良性循环。(如果只有用户喜爱的广告能够获得正在进行的播放时间,那么有多少当前的电视广告会幸存?)如所示的那样,给定的图像景象可以为许多小玩意(常常是屏幕可以有效包含的更多小玩意)的显示提供机会。把该可能性范围缩小到易管理的集合的处理可以从用户开始。可以采用各种不同的用户输入,从前面提到的冗长控制开始,所述冗长控制仅对用户希望屏幕被叠盖有小玩意的频繁度设定基线。其他控制可以指示当前偏好、以及商用小玩意与非商用小玩意的指定混合比例。另一维度的控制是用户在屏幕的特定区域中的实时兴趣表达,例如指示关于用户想要获得更多了解的事物的特征或者指示用户想要以其他方式进行交互的特征。该兴趣可以通过轻拍叠盖在这些特征上的原型小玩意来指示,尽管也可能不需要原型小玩意(例如,用户可以简单地轻拍屏幕的未显出差别的区域以便将处理器的注意力集中到图像帧的该部分上)。另外的用户输入是与背景环境有关的——包括在其他地方详述的许多种信息(例如,计算背景环境、物理背景环境、用户背景环境、实体背景环境、时间背景环境和历史背景环境)。馈送给小玩意选择处理的外部数据可以包括与第三方交互相关的信息一其他人选择与什么小玩意进行交互?赋予该因素的权重可以取决于其他用户和本用户之间的距离度量、以及其他用户的背景环境和本背景环境之间的距离。例如,本用户的社交朋友在相似背景环境情况下的动作所表达的小玩意偏好可以被赋予比陌生人在不同情况下的动作所表达的小玩意偏好大得多的权重。另一外部因素可以是商业考虑因素,例如,第三方愿意支付多少(并且可能的话愿意支付给谁)来暂时地租借作为不动产的少量用户屏幕?如上所述,这样的问题可以作为因素计入基于云的拍卖方案中。拍卖也可以考虑特定小玩意对于其他用户的流行度。在实现本处理的该方面时,可以参考Google的用于在线拍卖作为不动产的广告的技术(参看例如 Levy 的 Secret of Googlenomics:Data-Fueled Recipe Brews Profitability, WiredMagazine, 2009年5月22日)——广义的次价拍卖的一种变型。本申请人在PCT专利申请PCT/US09/54358中详述了基于云的拍卖方案。在一个特定实现方案中,可以把几个小玩意(例如,1-8个)分配给商业宣传(例如,通过类似Google的拍卖程序确定,并服从于用户对商用小玩意与非商用小玩意的比例的调谐),并且一些小玩意可以基于非商业因素(如前面提到的那些)来选择。这些后一种小玩意可以按照基于规则的方式来选择,例如应用对前面提到的不同因素施加权重的算法以便对每个小玩意获得一个分数。然后对相互竞争的各分数进行排序,并把分数最高的N个小玩意呈现在屏幕上(其中N可以由用户使用冗长控制来设定)。 在另一实现方案中,并不先验地分配商用小玩意。而是,按照类似于非商用小玩意的方式对这些小玩意进行评分(通常使用不同的标准,但是按比例缩放到相似的分数范围)。然后呈现分数最高的N个小玩意——它们可能全部是商用的、全部是非商用的、或者是混合的。在另一实现方案中,商用小玩意与非商用小玩意的混合比例是随用户的预订服务而变的。对支付介绍性比率的处于入门级别的用户呈现在尺寸和/或数量方面较大的商用小玩意。对于为了获得优质服务而付款给服务提供商的用户,向他们呈现较小和/或较少的商用小玩意,或者向他们赋予一定的自由来设定他们自己的关于商用小玩意的显示的参数。表示小玩意的图形标志可以在视觉上设计成适合于指示其特征关联,并且可以包括动画元素来吸引用户的注意。小玩意提供商可以向系统提供一定尺寸范围内的标志,从而允许系统在用户放大所显示图像的该区域或者表达对这种小玩意的潜在兴趣的情况下,增大小玩意的尺寸和分辨率。在一些情况下,系统必须充当警察一决定不呈现所提供的小玩意,例如因为该小玩意的尺寸超过由所存储的规则建立的尺寸、因为该小玩意的外观被认为是淫秽的、等等。(系统可以自动地将小玩意按比例缩小至适合的尺寸,并且用一般标志(如星形标志)替换不适合的或不可用的标志。)除了与从图像中辨别出的视觉特征相关地呈现小玩意以外,还可以以其它方式呈现小玩意。例如,可以呈现小玩意来指示装置知道其地理位置,或者指示装置知道其用户的身份。各种操作反馈因此可以提供给用户,而不管图像内容如何。除了特定特征识别以外,一些图像反馈也可以经由小玩意提供,例如所拍摄的图像满足基线质量标准(如焦点或对比度)。每个小玩意可以包含少量的映射表现,或者每个小玩意可以用基本图元的集合来限定。通常,在平面图中限定小玩意标志。软件的空间模型组件可以根据所拍摄图像内的辨别出的表面来将小玩意标志的投影映射到屏幕上,例如对于与倾斜地观察的店面相关联的小玩意,其看上去似乎是倾斜的并且或许在透视图中是扭曲的。这些问题将在下面的章节中进一步讨论。空间模型/引擎在建立愉快的用户体验的过程中,把3D世界令人满意地投影并显示到2D屏幕上是很重要的。因此,优选系统包括服务于这些目的的软件组件(有各种称谓,例如空间模型或空间引擎)。在2D屏幕中再现3D世界开始于理解关于3D世界的某些事情。对于未加处理的一帧像素(缺乏任何地理位置数据或其他空间理解),从哪里开始?如何辨别对象并加以分类?如何跟踪图像场景的移动,使得小玩意能够相应地被重新布置?幸运地是,这些问题已经在许多情况下被面对了许多次。机器视觉和视频运动编码是许多领域中提供了有用的现有技术的两个领域,假定本领域技术人员熟悉这些现有技术,并且本领域技术人员可以从这些现有技术中吸取与本申请有关的经验。借助基本原理 ·摄像机和显示屏是典型的2D空间结构·摄像机通过3D世界到2D平面的空间投影来工作。·小玩意和原型小玩意被“客观地体现”到空间框架内。下面是把空间理解编码成正交处理流以及背景环境条目和属性条目的提议。该提议利用三个“空间水平”(空间理解的阶段)的构造。空间水平I包括基本景象分析和解析。将像素聚簇成多个初始群组。对于所拍摄的作为不动产的景象以及作为不动产的显示屏,存在着一些基本理解。关于跨越多个帧的作为不动产的景象构成的流,也存在着一些基本认识。在几何学上,空间水平I存在于简单2D平面的背景环境中。空间水平I操作包括生成从像素数据辨别出的2D对象的列表。由OpenCV视觉库(下面讨论)执行的基本操作属于该分析领域。智能电话的本地软件可以流畅处理空间水平I操作,并且丰富的2D对象列表可以在本地产生。空间水平2是过渡性的,从而懂得空间水平I的2D基元的一些含义,但是还没有达到空间水平3的完整3D理解。该级别的分析包括设法使不同的空间水平I基元相互联系(辨别在2D背景环境中对象如何相互联系)并且寻找达到3D理解的线索的任务。该级别的分析所包括的操作诸如识别对象群(例如,不同的边缘形成了限定出一形状的轮廓)、注意到各种样式(如沿着一条线的多个对象)、以及辨别“世界空间线索”(如消失点、地平线、和“向上/向下”的概念)。也可以揭示出“更近/更远”的概念。(例如,面部通常具有已知的尺寸。如果一组基本特征看起来很可能表示面部,并且该组基本特征在高度为480像素的场景中只有40像素的高度,那么相比于高度为400像素的面部像素集合,可以对高度为40像素的该组基本特征采集到“更远”属性。)将杂乱的空间水平I基元精炼/合成为对象相关实体的更短的、更有意义的列表。空间水平2可以把类似GIS的组织形式施加于景象和景象序列,例如向每个识别出的聚簇、对象、或感兴趣区域分配其自己的逻辑数据层(这些数据层可能有重叠区域)。每个层可以具有相关的元数据存储库。在该水平上,可以辨别出帧与帧之间的对象连续性。在几何学上,空间水平2承认所捕获的像素数据是3D世界到2D图像帧的摄像机投影。先前辨别出的基元和对象并不被认为是现实的完全表征,而仅是一个视角。对象是在借以观察这些对象的摄像机镜头的背景环境中被考虑的。镜头位置建立据以理解像素数据的视角。空间水平2操作通常倾向于比空间水平I操作更加依赖云处理。在示例性实施例中,软件的空间模型组件是通用的——将像素数据精炼成更有用的形式。然后不同的识别代理可以在执行它们各自任务的过程中从该公共的精炼数据池中吸取数据,而不是各自进行它们自己版本的这种处理。然而,在决定哪些操作具有这样的通用性使得这些操作理所当然地以这种公共方式被执行、以及决定哪些操作应该被移交给各个单独的识别代理来仅根据需要执行的过程中,必须划一条线。(尽管如此,由识别代理产生的结果也可以例如通过黑板来共享。)可以任意地划出上述的线;设计者具有决定哪些操作落入该条线的哪一侧的自由。有时,该条线可以在智能电话操作期间动态移动(例如在识别代理请求进一步的公共服务支持的情况下)。空间水平3操作是基于3D的。不管数据是否揭示出完整的3D关系(通常不会这样),所进行的分析都是基于这样的前提像素表示3D世界。这种理解对于某些对象识别处理是有用的、甚至是不可缺少的。 空间水平3因此建立在先前的理解水平上,向外延伸到世界相关性。用户被理解为是具有给定投影和时空轨道的世界模型内的观察者。可以应用把景象映射到世界和把世界映射到景象的变换方程,使得系统理解它处于空间中的哪里和对象处于空间中的哪里,并且具有关于各事物间如何发生联系的某种框架。这些分析阶段从游戏工业和增强现实引擎的工作中吸取经验。与和空间水平I相关联的操作(以及和空间水平2相关联的一些操作)不同,与空间水平3相关联的操作通常是如此的专门化以致于它们并非例行地对输入数据执行(至少对于当前技术而言并非例行地对输入数据执行)。而是,这些任务被留给可能会需要特定3D信息的特定识别任务。一些识别代理可以构建用户环境的虚拟模型,并用3D背景环境中感测出的对象填充该模型。例如车辆驾驶监视器可以从用户汽车的挡风玻璃向外看,从而注意到与交通安全相关的条目和动作。识别代理可以维持交通环境及其内部的动作的3D模型。识别代理可以注意到用户的妻子(由另一软件代理识别出来,该软件代理将识别结果发布到黑板)正驾驶她的红色斯巴鲁车通过红灯(在用户的视角中)。支持这种功能性的3D建模当然是可能的,但是不是智能电话的一般服务例行执行的那种操作。这些方面中的一些在图4中示出,图4概念性地示出空间理解从空间水平I、到2、到3的逐渐增大的复杂性。在一种说明性应用中,不同的软件组件负责辨别与不同的空间水平相关联的不同类型的信息。例如,聚簇引擎被用于产生空间水平I的理解。聚簇是指把一群(通常是连续的)像素识别为相互关联的处理。这种关联可以是例如在颜色或纹理方面相似。或者这种关联可以是一个流中的相似性(例如,相似的面部像素图案跨越静态背景从一帧移位到另一帧)。在一个方案中,在系统已经识别出一个像素聚簇之后,系统分配将要与该聚簇相关联的符号(例如,就像ID号那样简单)。在进一步管理和分析该聚簇方面,这是有用的(并且在例如数据链接方案中也是有用的)。可以将原型小玩意分配给该聚簇,并且参考标识符号来跟踪该原型小玩意。起因于系统所执行的解析和定向操作而产生的、使聚簇的位置与摄像机在2D和3D中的位置相关的信息,可以参考该聚簇的符号来组织。类似地,起因于与该聚簇相关联的图像处理操作而产生的数据可以参考该聚簇的符号来识别。同样地,用户的轻拍可以与该符号相关联地记入日志。这种把符号用作借以存储和管理与聚簇相关的信息的句柄(handle)的用法,可以延伸到与该聚簇相关的基于云的处理、与聚簇相关联的小玩意的进化,自始至终通过完整识别聚簇对象并基于此做出响应。(下面将介绍更详细命名的构造,例如包括会话ID。)这些空间理解组件可以与其他系统软件组件并行工作,例如,维持公共/全局空间理解并设立代理和对象可以利用的空间框架。这样的操作可以包括把关于空间环境的当前信息发布到可分享的数据结构(例如,黑板),识别代理可以查阅该可分享的数据结构以帮助理解它们正在看什么,并且图形系统可以在决定如何在当前景象上描绘小玩意的过程中参考该可分享的数据结构。不同的对象和代理可以设立与三个水平相关联的空间水平字段和属性条目。通过相继地产生几代这些系统,空间理解组件预期会成为装置的几乎反射性的 生搬硬套的能力。肓觉计算平台(ICP)状态机一服务的组成;面向服务的计算如前所述,ICP状态机可以实质上包括实时操作系统。它可以照管常规任务(如调度、多重任务处理、错误恢复、资源管理、信息传递和安全性),以及对当前应用场合更特定的一些其他任务。这些附加的任务可以包括提供检查跟踪功能性、保证会话管理、以及确定服务的组成。检查跟踪功能性向商业实体提供保证,保证这些商业实体付款赞助的小玩意事实上确实被呈现给用户。保证会话管理涉及建立和维持与云服务和对窃听等有鲁棒性(例如通过加密)的其他装置的连接。服务的组成是指选择用于执行某些功能的操作(和这些组分操作的相关配合/编排)。在状态机操作的这些方面中会涉及到分派处理,例如使资源与各应用相协调。某些高级功能可能会使用来自各种低级操作的不同组合的数据来实现。对利用哪些功能以及在什么时候利用这些功能的选择可以基于许多因素。一个因素是有哪些其他操作已经在进行中或已经完成——其结果也可能服务于本需要。举例来说,条形码定位通常可以依赖于计算所定位的水平对比度,并计算所定位的垂直对比度,并比较这些对比度数据。然而,如果跨越一图像的16x16像素块的2D FFT数据已经可从另一处理得到,那么作为替代可以将该信息用于定位候选的条形码区域。类似地,某一功能可能会需要关于图像中的长边缘的位置的信息,并且可以启动专用于产生长边缘数据的操作。然而,另一处理可能已经识别出该帧中的各种长度的边缘,并且可以简单地对这些现有结果进行过滤来识别长边缘,并使其得到再利用。另一实例是基于霍夫变换的特征识别。OpenCV视觉库指示该功能期望使用边缘细化的图像数据作为输入数据。该功能还推荐通过将Canny (坎尼)操作应用于边缘数据来生成边缘细化的图像数据。而该边缘数据共同地通过将Sobel (索贝尔)滤波器应用于图像数据而生成。因此,霍夫程序的“常规”实现方案将会从Sobel滤波器开始,随后是Canny操作,然后调用霍夫法。但是边缘也可以通过除Sobel滤波器以外的方法来确定。并且细化的边缘可以通过除Canny以外的方法确定。如果系统已经具有边缘数据,即使该边缘数据是由除Sobel滤波器以外的方法生成的,那么仍可以使用该边缘数据。类似地,如果另一处理已经产生改良的边缘数据,即使该改良的边缘数据不是通过Canny操作生成的,仍可以使用该改良的边缘数据。在一个特定实现方案中,系统(例如,分派处理)可以查阅一数据结构,该数据结构具有建立不同类型的关键字向量之间的大致功能对应度的信息。通过Canny产生的关键字向量边缘数据会指示出与通过无限对称指数滤波器技术产生的边缘数据具有较高的功能对应度,并且与通过Marr-Hildreth (马尔-希尔德雷斯)程序辨别出的边缘数据有略小的功能对应度。通过Harris算子检测的拐角可以与通过Shi和Tomasi方法检测的拐角互换。
坐坐寸寸ο该数据结构可以包括一个大表格,或者该数据结构可以分解为几个表格——每个表格专用于特定类型的操作。例如,图5示意性地示出指示出对应度(按比例缩放到100)的与边缘寻找相关联的表格的一部分。特定的高级功能(例如,条形码解码)可能会需要由特定处理(如Canny边缘滤波器)生成的数据。Canny滤波功能可以从系统可利用的软件处理算法库中获得,但是在调用该操作之前,系统可以参考图5的数据结构,以查看是否已经有适合的代用数据可用或者正在处理中(假定还没有优选的Canny数据可用)。该检查开始于寻找在最左侧一栏中具有名义上期望的功能的行。然后程序在该行中扫描以寻找最高值。在Canny的情况下,最高值是无限对称指数滤波器所对应的95。系统可以检查共享的数据结构(例如黑板),以便确定对于主题图像帧而言这样的数据(或适合的替代者)是否可用。如果找到这样的数据,那么可以将它代替名义上指定的Canny数据使用,并且条形码解码操作可以在该基础上继续进行。如果没有找到这样的数据,那么状态机继续进行处理——寻找次最高的值(例如,Marr-HiIdreth所对应的90)。再一次,系统检查是否有任何该类型的数据可用。处理继续进行,直到表格中的所有备选者用尽为止。在本优选实施例中,该检查是由分派处理进行的。在这样的实施例中,大多数识别处理是作为多个操作的级联序列执行的——每个操作具有指定的输入。分派处理的使用允许对服务的参与组成所做的决定被集中做出。这也允许操作软件组件被聚焦于图像处理,而不是还要涉及例如检查表格以查找适合的输入资源以及维持对其他处理的操作的注意,这些负担会使这些组件更复杂且更难以维持。在一些方案中,通过条形码解码功能指定一阈值,或者由系统全局地指定一阈值,指示对于数据替代方案而言可接受的最小对应值(例如75)。在这种情况下,刚刚描述的处理将不会考虑来自Sobel和Kirch (克希霍夫)滤波器的数据,因为它们与Canny滤波器的对应度只是70。尽管其他实现方案可能是不同的,但应注意的是,图5的表格是不对称的。例如,如果期望的是Canny,那么Sobel具有的指示出的对应度只有70。但是如果期望的是Sobel,那么Canny具有的指示出的对应度为90。因此,Canny可以代替Sobel,但是如果设定的阈值为75, Sobel并不能代替Canny。
图5的表格是通用的。然而,对于一些特定应用场合,图5的表格可能是不适合的。例如,某一功能可能会需要用Canny (优选)或Kirch或Laplacian (拉普拉斯算子)来寻找边缘。由于该功能的特性,其他边缘寻找器可能不是令人满意的。系统可以允许特定功能提供它们自己的关于一个或更多操作的对应表——优先于通用表格使用。对应于某一功能的专用对应表的存在可以用与该功能相关联的标记位或以其他方式来指示。在刚刚给出的实例中,标记位可以指示应该使用图5A的表格作为替代。该表格仅包括单一一行——用于名义上指定的在该功能中使用的Canny操作。并且该表格仅具有两栏——对应于无限对称指数滤波器和Laplacian。(没有适合的其他数据。)对应值(B卩,95、80)可以省略,使得该表格可以包括备选处理的简单列表。为了便于在共享数据结构中找到可替代的数据,可以使用指示特定关键字向量包含什么信息的命名规则。这种命名规则可以指示功能的类别(例如,边缘寻找)、功能的特定种类(例如,Canny)、数据所基于的图像帧、以及数据所特有的任何其他参数(例如,用于Canny滤波器的核的尺寸)。该信息可以以各种方式表示,如按字面意义表示、用缩写表示、用可以通过另一数据结构解析从而获得完整细节的一个或更多指标值表示、等等。例如, 包含用5x5的模糊核产生的关于帧1357的Canny边缘数据的关键字向量可以命名为“KV_Edge_Canny_1357_5x5,,。为了向其他处理提醒正在处理中的数据,当一功能被初始化时可以将空条目写入共享的数据结构——根据该功能的最终结果来命名所述空条目。因此,如果系统开始用5x5的模糊核对帧1357执行Canny操作,那么空文件可以用上面提到的名称写入共享的数据结构。(这可以由该功能执行、或者由状态机(例如分派处理)执行。)如果另一处理需要该信息、并且用空条目找到适当命名的文件,那么它会知道这样的处理已经被启动。于是它可以监视或复查该共享的数据结构,并在所需信息变得可用时获得所需信息。更特别地,需要该信息的处理阶段在其输入参数当中会包括期望的边缘图像的规格——包括描述其所需的质量的描述符。系统(例如,分派处理)会检查当前位于存储器中(例如,位于黑板上)的数据的类型、以及上面提到的表格,以便确定目前是否有适当的数据可用或正在处理中。可能的动作于是可以包括采用可接收的可用数据开始该处理阶段;当预期数据在将来可用时,将开始时刻延迟到将来的时刻;延迟开始时刻,并安排生成所需数据的处理(例如,Canny)得以开始;或者由于缺少所需数据和生成该所需数据所需的资源,而延迟或终止该处理阶段。在考虑备选数据是否适合于供特定操作使用时,可以对来自其他帧的数据加以考虑。如果摄像机处于自由运行模式,那么该摄像机可以每秒钟拍摄许多帧(例如,30帧)。尽管(在上面给出的实例中)分析处理可能会特别考虑帧1357,但是分析处理也能够利用从帧1356或者甚至从帧1200或1500取得的信息。在这点上,识别出包括在内容上相似的图像的帧所构成的群组是有帮助的。两个图像帧是否相似自然地将取决于特定的情况,例如图像内容和所执行的操作。在一个示例性方案中,如果(I)相关的感兴趣区域出现在帧A和帧B这两个帧中(例如,相同的面部主题或条形码主题),并且(2)帧A和帧B之间的每个帧也包括该同一感兴趣区域,那么帧A可以被认为与帧B相似(这提供了对如下情况的某种保护措施主题在摄像机最初观察该主题的状态和摄像机返回到该主题的状态之间变化)。
在另一方案中,如果两个帧的颜色直方图在指定阈值内相似(例如,它们具有大于O. 95或O. 98的相关度),那么这两个帧被认为是相似的。在又一方案中,可以将类似MPEG的技术应用于图像流,以确定两个帧之间的差异信息。如果该差异超过阈值,那么这两个帧被认为是非相似的。除了上面提到的那些标准之外还可以利用的另外的测试是,该帧中的感兴趣特征或感兴趣区域的位置是相对固定的(“相对”使得容许的移动可以有一阈值,例如10个像素、帧宽度的10%、等等)。大量种类的其他技术可以备选地使用;这些技术仅是例证性的。在一个特定实施例中,移动装置维持一数据结构,该数据结构标识出相似的图像帧。这可以与标识出每个群组的开始帧和结束帧的表格一样简单,例如
开始帧结束帧
~1200 1500~
~1501 1535~
~1536 1664~在一些方案中,可以提供第三字段一指示出由于某种原因(例如散焦)而不相似的处于指示的范围内的帧。返回到前面提到的实例,如果某一功能期望获得输入数据“KV_Edge_Canny_1357_5x5”并且没有找到这样的数据,那么该功能可以将搜索扩展到基于上述表格指示的相似性(大致等效性)来寻找“KV_Edge_Canny_1200_5x5”至“KV_Edge_Canny_1500_5x5”。如上所示,该功能也能够利用通过其他方法产生的边缘数据(同样,从帧1200-1500中的任何一个帧产生)。因此,例如,可以通过寻找帧1250中具有高水平对比度的区域和帧1300中具有低垂直对比度的区域,来定位条形码。在定位之后,可以通过参考在帧1350中找到的边界线结构(边缘)以及在帧1360、1362和1364中找到的符号图案的相关性来解码该条形码。因为全部这些帧都处于共同的群组内,所以该装置把从这些帧中的每一个帧取得的数据视为可与从这些帧中的其它每个帧取得的数据一起使用。在更复杂的实施例中,可以辨别出各帧之间的特征径迹(流),并将其用于识别各帧之间的运动。因此,例如,该装置可以理解帧A中开始于像素(100,100)的线对应于帧B中开始于像素(101,107)的同一条线。(再一次,可以使用MPEG技术以便进行例如帧到帧的对象跟踪。)可以做出适当的调整以便再对准该数据,或者该调整可以以其他方式引入。在较简单的实施例中,各图像帧之间的等效性仅简单地基于时间接近度。主题帧的给定时间跨度(或帧跨度)内的帧被认为是相似的。因此在寻找关于帧1357的Canny边缘信息时,系统可以接受来自帧1352-1362 (即,加减五个帧)中的任何一个帧的边缘信息是等效的。尽管该方法有时会导致失败,但是其简单性使得它在某些情况下是合乎需要的。有时,使用替代的输入数据的操作会失败(例如,该操作未能找到条形码或未能识别出面部),因为来自该代用处理的输入数据不具有该操作的名义上期望的输入数据的精确特征。例如,尽管很少发生,但是基于霍夫变换的特征识别仍可能会由于这样的原因而失败输入数据不是通过Canny算子产生的而是通过代用处理产生的。在操作失败的情况下,可以再尝试进行该操作一这次采用不同的输入数据源。例如,可以利用Canny算子来代替代用者。然而,由于重复该操作需要成本并且通常对第二次尝试能够成功的期待较低,所以这样的再尝试通常并不例行公事地进行。可以试图进行再尝试的一种情况是,操作以自顶向下的方式被启动(诸如响应于用户的动作)。在一些方案中,对服务的初始组成的决定多少会取决于操作是自顶向下启动的、还是自底向上启动的(这些概念将在下面讨论)。例如,在自底向上的情况下,可以给予比自顶向下的情况更多的自由度来替换不同的输入数据源(例如,指示出的与名义上的数据源的对应度较小的数据源)。 在决定服务的组成时可考虑的其他因素可以包括功率和计算限制、进行某些基于云的操作的财务成本、拍卖结果、用户满意度排序、等等。再一次,可以参考提供每个代用操作的相对信息的表格,来帮助决定服务的组成。一个实例在图6中不出。图6的表格给出执行不同的边缘寻找功能所需的CPU和内存的度量。这些度量可以是某种实际的值(例如,对给定尺寸(例如1024x1024)的图像执行规定的操作所需的CPU循环,执行这样的操作所需的RAM的KB数),或者可以被任意地按比例缩放(例如缩放到0-100的范围)。如果某一功能需要边缘数据(优选地来自Canny操作)并且还没有适合的数据可用,那么状态机必须决定是调用所要求的Canny操作还是调用另一操作。如果系统内存的供给不足,那么图6的表格(结合图5的表格)建议可以使用无限对称指数滤波器作为替代它在CPU负担方面只是略微大一些,但是占用少25%的内存。(图5指示出无限对称指数滤波器与Canny具有95的对应度,因此在功能上它应该能替代Canny。) Sobel和Kirch需要更少的内存占用,但是图5指示出这些操作可能是不适合的(70分)。对于每个备选边缘寻找操作,实时状态机可以考虑各种参数(如图5和6中的分数,加上对应于成本、用户满意度、当前系统限制(例如,CPU和内存利用率)、和其他标准的分数)。可以将这些参数输入给一处理,该处理根据多项式方程对各参数的不同组合赋予权重并求和。该处理的输出对可能被调用的不同的操作中的每一个得到一分数。具有最高分数的操作(或最低分数,这取决于方程式)被认为是当前情况下的最佳选择,并且随后由系统启动。尽管图5和6的表格仅考虑了这些功能的本地装置执行,但是也可以考虑基于云的执行。在这种情况下,该功能的处理器和内存成本基本上是零,但是可能会引起其他成本,例如接收结果的时间会增长、要消耗网络带宽、以及可能会发生财务微支付。对于备选服务提供商和功能而言,这些成本中的每一个都可能是不同的。为了评估这些因素,可以对例如每个服务提供商和备选功能计算附加的分数。这些分数可以包括以下信息作为输入取回结果的紧急度的指示,和根据基于云的功能预期的周转时间的增长;网络带宽的当前利用情况,和把该功能委托给基于云的服务所要消耗的额外带宽;预期到的功能(例如无限对称指数滤波器)相对于名义上期望的功能(例如Canny)的可替代性;以及用户对价格的敏感度的指示,和对该功能的远程执行会收取什么样的价格(如果有的话)。也可以涉及各种其他因素,包括用户偏好、拍卖结果、等等。通过这样的计算而产生的分数可以用于在不同的远程提供商/所考虑的功能当中识别出优选的选项。然后,系统可以把该练习所产生的获胜分数与和本地装置对功能的执行相关联的练习所产生的获胜分数进行比较。(合乎期望的是,分数按比例被缩放到的范围是相当的。)然后,可以基于这样的评估来采取行动。对服务的选择也可以基于其他因素。根据背景环境、用户意图的指示等,可以识别出与当前情况相关的一组识别代理。从这些识别代理中,系统可以识别出由这些识别代理期望的输入构成的集合。这些输入可能会涉及具有其他不同的输入的其他处理。在识别出全部相关输入之后,系统可以限定出一个解答树,其包括指示的输入以及备选者。然后,系统识别穿过该解答树的不同路径,并选择(例如,基于相关限制而)被认为是最佳的一个路径。再一次,可以考虑本地处理和基于云的处理这两者。 在该方面中,本技术可以在例如“智能环境”方面从人工智能(Al)领域已知的“规划模型”中吸取经验。(下面对规划模型的讨论部分地取自Marquardt的“EvaluatingAl Planning forService Composition in Smart Environments” (ACM Conf. on Mobile and UbiquitousMedia 2008,pp. 48-55。)施乐帕克研究中心(Xerox PARC)的Mark Weiser所设想的智能环境是这样的环境“混合在该环境中的传感器、致动器、显示器和计算单元很丰富并且让人看不到,该环境无缝地嵌入我们生活的日常对象中,并且通过连续网络连接”。这样的环境的特征在于,以不显眼的方式向用户提供个性化服务(例如,照明、加热、冷却、加湿、图像投射、报警、图像记录、等等)的各装置的动态集成。图7是例证性的。用户的意图通过例如观察并且通过参考背景环境而得以识别。从该信息中,系统推断出用户的假定目标。策略合成步骤试图找到满足这些目标的动作序列。最终,这些动作通过使用环境中可用的装置而得以执行。因为环境是可变化的,所以决定服务的组成的策略合成步骤必须是可自适应的(例如随着目标和可用装置的变化而自适应)。服务任务的组成被认为是人工智能“规划”问题。人工智能规划涉及识别自主的代理必须执行以便实现特定目标的动作序列的问题。代理可以执行的每个功能(服务)被表示为算子。(前置条件和后置条件可以与这些算子相关联。前置条件描述要执行该算子(功能)就必须存在的先决条件。后置条件描述由该算子的执行所触发的环境中的变化——智能环境可能会需要对其做出响应的变化。)在规划术语中,图7的“策略合成”对应于计划产生,并且“动作”对应于计划执行。计划产生涉及关于智能环境的服务组成。大量规划器可从Al领域获知。参看例如Howe的“A Critical Assessmentof Benchmark Comparison in Planning” (Journal of Artificial IntelligenceResearch, 17:1-33,2002 )。的确,存在着专门论述人工智能规划器之间的竞争的年会(参看 ipc〈dot>icaps_conference〈dot>org)0 Amigoni 的“What Planner for AmbientIntelligence Applications ,,( IEEE Systems, Man and Cybernetics, 35(1) :7-21, 2005)已经评估了用于在智能环境中组成服务的一些规划器。前面提到的Marquardt的论文特别考虑了用于智能环境中的服务组成的其他一些规划器,包括UCPOP、SGP、和黑板(Blackbox)0这些规划器全都通常使用F1DDL (规划领域定义语言,Planning DomainDefinition Language)的变型,其中F1DDL是一种流行的用于对领域和问题进行规划的描述
;五古
P口口 οMarquardt在简单的智能环境仿真中评估了不同的规划器,所述简单的智能环境的一部分由图8表示,采用5-20个装置,每个装置具有两个随机选择的服务和随机选择的目标。数据在模型组件之间以消息的形式沿着指示的线路交换。该仿真中的服务各自具有高达12个前置条件(例如,“light_on (灯_开启)”、“have_document_A (具有_文件_A”、 等等)。每个服务也具有各种后置条件。该研究得出的结论是三个规划器全都令人满意,但是黑板表现最好(Kautz, “Blackbox:A New Approach to the Application of Theorem Proving toProblem Solving”,AIPS 1998XMarquardt注意到在目标无法解决的情况下,规划器通常会花费过量的时间来无用地尝试作出满足该目标的规划。该作者得出的结论是如果该处理在一秒钟内没有产生解决方案,更好的做法是终止规划处理(或者启动不同的规划器),以便避免浪费资源。尽管来自不同的研究领域,但是本申请人相信当在视觉查询领域中尝试安排服务的组成以达到特定目标时,上述的后一种洞察应该同样适用如果不能快速地想出令人满意的穿过解答树(或其他规划程序)的路径,那么状态机或许应该将该功能视为无法用可用数据解决,而不是花费更多资源来设法找到解决方案。可以在软件中建立阈值间隔(例如,O. I秒钟、O. 5秒钟等),并且可以将计时器与该阈值进行比较,并且如果在达到阈值之前没有找到适合的策略,那么中断尝试找出解决方案。本技术的实施例也可以从万维网服务领域中的工作中吸取经验,所述万维网服务正日益作为复杂的网站的功能组件而被包含进来。例如,旅行网站可以使用一个万维网服务来进行航线预订,使用另一个万维网服务来选择飞机上的座位,并使用另一个万维网服务来从用户的信用卡收费。旅行网站不需要编写这些功能组件;它可以使用由其他方编写并提供的网络服务的网络。这种利用由其他方在先前完成的工作的模块化方法能加快系统设计和交付。这种系统设计的特定方式有各种名字,包含面向服务架构(SOA)和面向服务计算。尽管这种设计风格为开发者节省了编写用于执行各个单独的组分操作的软件所需的努力,但是仍然存在着这样的任务决定要使用哪些网络服务、以及使得向这些服务提交数据和从这些服务收集结果协调配合起来。解决这些问题的各种方法是已知的。参看例如 Papazoglou 的“Service-Oriented Computing Research Roadmap” (DagstuhlSeminar Proceedings 05462,2006)和 Bichler 的“Service Oriented Computing” (IEEEComputer, 39:3, 2006 年 3 月,pp. 88-90)。服务提供商自然具有有限的提供服务的能力,并且有时候必须处理对超出其能力的请求进行鉴别分类的问题。该领域中的工作包括用于在相互竞争的请求当中进行选择、并根据需求使对服务的收费得到适应的算法。参看例如Esmaeilsabzali等人的“OnlinePricing for Web Service Providers” (ACM Proc. of the 2006Int’I Workshop onEconomics Driven Software Engineering Research)。本技术的状态机可以采用面向服务计算方案来通过将处理负担的一部分部署到远程服务器和代理,而扩展移动装置的功能性(进行视觉搜索等)。相关的万维网服务可以向一个或更多基于云的中间人处理登记,例如以标准化的(例如XML)形式说明其服务、输入、和输出。状态机可以在识别实现系统的需要所要进行的服务的过程中向这些中间人咨询。(状态机可以向多个中间人中的一个中间人咨询,以识别处理特定类型服务的中间人。例如,与第一类服务(例如面部识别)相关联的基于云的服务提供商可能会由第一中间人编入目录,而与另一类服务(例如OCR)相关联的基于云的服务提供商可能会由第二中间人编入目录。)统一描述发现和集成(UDDI)规范定义了一种万维网服务可用来发布有关万维网服务的信息、以及状态机可用来发现有关万维网服务的信息的方式。其他适合的标准包括使用可扩展标记语言(ebXML)的电子商务,和基于IS0/IEC 11179元数据注册(MDR)的那些 标准。基于语义的标准(如WSDL-S和OWL-S (下面将提到))允许状态机使用来自语义模型的术语描述期望的服务。随后可以使用推理技术(如描述逻辑推理)来找出状态机所提供的描述与不同的万维网服务的服务能力之间的语义相似性,从而允许状态机自动地选择适合的万维网服务。(如在其它地方提到的那样,可以使用反向拍卖模型来例如从几个适合的万维网服务当中进行选择。)盲觉计算平台(ICP)状杰坑一并行处理为了将系统维持在响应状态,ICP状态机可以监视图9中概念性示出的各种级别的并行处理(类似于认知)。四个这样的级别以及它们各自范围的大致摘要是·反射——没有用户或云交互·有条件的——基于意图;最少的用户交互;使云卷入其中 直觉的或“浅的解决方案”——基于在装置上得出的解决方案,由用户交互辅助并且被告知以意图和历史的解释· “深层解决方案”一通过与用户和云的会话得出的完整解决方案。图10进一步详述了这四个处理级别,其与执行视觉查询相关联,通过系统的不同方面被组织起来,并且识别相互关联的元素。反射处理通常只需花费一秒钟的若干分之一来执行。一些反射处理可能会很少刷新(例如,摄像机分辩率是什么)。一些反射处理(如评估摄像机焦点)可能会一秒钟重复发生几次(例如,一次或两次,多达几十次一诸如对于每帧拍摄而言)。通信组件可以简单地检查网络连接是否存在。原型小玩意(模拟小玩意)可以基于对图像分割的总体评估(例如,存在亮点吗?)来放置。可以注意基本图像分割的时间方面,诸如流动一从一个帧到下一个帧,红色斑点向右移动了 3个像素。所拍摄的2D图像被呈现在屏幕上。在该级别上通常不涉及用户,除了例如对用户输入(类似被轻拍的小玩意)进行确认。有条件的处理需花费更长的时间来执行(尽管通常少于一秒钟),并且可能会例如每半秒钟左右就刷新一次。许多这些处理涉及背景环境数据和对用户输入采取的行动。这些处理包括检索用户上一次在相似的背景环境情况下采取了什么动作(例如,用户经常在走着去上班的途中去星巴克),对用户关于期望的冗长度的指令做出响应,基于当前装置状态(例如,飞机模式、节能模式)配置操作,执行基本的定向操作,确定地理位置,等等。激活或者准备激活与当前图像和其他背景环境相关地出现的识别代理(例如,图像看起来有点像文本,因此准备用于进行可能的OCR识别的处理)。识别代理可以注意也在运行的其他代理,并把结果发布到黑板以供它们使用。表示来自某些操作的输出的小玩意出现在屏幕上。执行与基于云的资源的信号交换,以使数据通道准备好供使用,并且检查通道的质量。对于涉及基于云的拍卖的处理,可以把这样的拍卖连同(例如,关于用户的)相关背景信息一起公告,使得不同的基于云的代理可以决定是否参与、并做出任何需要的准备。直觉处理仍需花费更长的时间执行,虽然主要在装置本身上。这些处理通常涉及在识别代理的工作过程中支持识别代理——组成所需的关键字向量,呈现相关联的用户界面,调用相关功能,响应并平衡相互竞争的对资源的请求,等等。系统辨别什么样的语义信息是用户期望或者可能期望的。(如果用户在星巴克通常会对纽约时报的头版进行成像,那么可以启动与OCR相关联的操作,而无需用户请求。同样,如果对类似文本的图像的呈现在
历史上曾促使用户请求OCR和到西班牙文的翻译,那么可以启动这些操作一包括准备好基于云的翻译引擎。)可以识别并采用相关的本体论。由识别代理发布的所输出的小玩意可以根据装置对所拍摄景象的理解而被几何地重新映射,并且可以应用3D理解的其他方面。规则引擎可以监视外部数据通道上的通信量,并相应地做出响应。快速的基于云的响应可以被返回并呈现给用户——常常用菜单、窗口、和其他交互图形控制。在该级别上也可能会涉及到第三方功能库。最终的深层解决方案在时间安排方面是无限制的一它们可以从数秒钟延伸到数分钟或者更长,并且通常会涉及云和/或用户。然而,直觉处理通常会涉及各个单独的识别代理,深层解决方案可以基于来自几个这样的代理的输出,从而通过例如关联性进行交互。社交网络输入也可以牵扯到该处理中,例如使用关于同年龄群体、用户尊敬的时尚带头人、他们的历史等的信息。在外部的云中,精巧的处理可能正在开展(例如,在远程代理相互竞争提供服务给装置时)。一些早先提交给云的数据可能会引起对更多或更好的数据的请求。早先苦于缺少资源的识别代理现在可以被分配它们想要的全部资源,因为其他情况已经清楚表明对它们的输出的需求。与自由女神像相邻的渴望得到的10x20像素块被授给幸运的小玩意提供商,该小玩意提供商已经给轻拍那里的用户安排了愉快的交互体验。可以建立去往云的定期的数据流,以便提供正在进行的基于云的对用户期望的满足。在该操作阶段可以由于视觉搜索而启动另外一些处理(许多是交互性的),例如建立Skype会话,察看YouTube演示视频,把经OCR的法文菜单翻译成英文,等等。在装置启动(或者在该装置的其它操作阶段)时,该装置可以显示与该装置已经获得并且准备好应用的识别代理的一些或全部相对应的小玩意。这类似于在初次启动时汽车的仪表板上的全部警示灯都发光,表明警示灯在需要的情况下能够工作的能力(或者类似于在多玩家在线游戏中显示一玩家收集到的财宝和武器——用户在与龙战斗的过程中可从中领取的工具和资源,等等)。应认识到的是,该方案只是例证性的。在其他实现方案中,自然可以使用其他方案。自顶向下和自底向上;延迟激活结构
应用程序可以以各种方式启动。一种方式是通过用户指令(“自顶向下”)。大多数应用程序需要某一组输入数据(例如,关键字向量),并产生一组输出数据(例如,关键字向量)。如果用户指示系统启动一应用程序(例如,通过轻拍小玩意,与菜单交互,做手势,等等),那么系统可以通过识别需要什么样的输入(诸如通过建立“需要的关键字向量”列表或树)而开始。如果全部所需的关键字向量都存在(例如,在黑板上,或者在“所存在的关键字向量”列表或树中),那么可以执行该应用程序(或许呈现光亮的小玩意)并生成相应的输出数据。如果并不是全部的所需关键字向量都存在,那么可以显示与该应用程序相对应的小玩意,但是仅模糊地显示该小玩意。可以参考关键字向量输出的反向目录以识别其他应用程序,所述其他应用程序可以被运行以便提供所需的关键字向量作为用户启动的应用程序的输入。所述其他应用程序所需的全部关键字向量可以添加到“所需的关键字向量”中。处理继续进行,直到所述其他应用程序所需的全部关键字向量都处于“所存在的关键字向量”列表中。随后运行这些其他应用程序。所有它们产生的输出关键字向量被输入“所存在的关键字向量”列表中。每一次处于顶部级别的应用程序所需的另一关键字向量变得可 用时,该应用程序的小玩意可以变亮。最终,全部必需的输入数据变得可用,并且由用户启动的应用程序得以运行(并且光亮的小玩意可以宣告该事实)。使应用程序得以运行的另一种方式是“自底向上”——由其输入数据的可用性触发。不是用户调用应用程序、然后等待必需的数据,而是使该处理反向。数据的可用性驱动应用程序的激活(并且常常会驱动对该应用程序的随后选择)。相关的工作可从绰号为“延迟评估”的技术获知。延迟激活结构的一种特定的实现方案可从人工智能领域吸取经验,即使用匹配/盘算(或评估)/执行方案的产生式系统架构。(“匹配”步骤可以通过用户按压按钮来满足,或者由处于自底向上的形态的系统满足,或者可以被省略。)条件规则可以启动该处理一必须被评估的标准。在本情况下,条件规则可能会涉及某一输入数据的可用性。例如,可以通过把当前“所存在的关键字向量”树与系统上安装的处于顶部级别的应用程序的完整列表进行比较,来定期地激活“自底向上”处理。如果某一应用程序的输入要求中的任何一个都已存在,那么可以将该应用程序投入执行。如果某一应用程序的输入要求中的一些(但不是全部都)已经存在,那么可以在适当的显示区域中以表明该应用程序的全部输入距离完全得到满足的接近度的亮度来显示相应的小玩意。一旦该应用程序的全部输入都得到满足,该应用程序可以启动而无需用户输入。然而,许多应用程序可以具有“用户激活”输入。如果用户轻拍了小玩意(或者如果另一用户界面装置接收到用户动作),那么该应用程序被切换到自顶向下的启动模式,从而启动其他应用程序(如上所述)以便搜集剩余的宣称输入数据,使得处于顶部级别的应用程序随后可以运行。以相似的方式,已经有一些输入(并非全部输入)可用的应用程序可以由具体情况(如背景环境)转变成自顶向下的激活方式。例如,用户在某些条件下激活某一特征的历史模式可以充当推断出的用户意图,从而预示着当这些条件再发生时应该激活该特征。(即使有必不可少的输入不可用,但是如果推断出的用户意图足够有说服力,那么这样的激活仍可以发生。)
在这样的方案中,仅把资源应用于准备好运行或者几乎准备好运行的功能。当以适当的输入数据的可用性评价各功能时,各功能被机会主义地投入执行。有规律地执行的图像处理一些用户期望的操作将总是过于复杂以致于无法由便携式系统单独执行;必须要涉及到云资源。相反地,存在着一些图像相关操作,便携式系统应该能够执行这些图像相关操作而无需使用任何云资源。为了使后一种操作能够得到执行并且使前一种操作更容易得到执行,系统设计者可以规定一组无需由功能或用户请求就例行公事地对所拍摄图像执行的基线图像处理操作。这些有规律地执行的背景功能可以提供其他应用程序可能会用作输入的素材(以关键字向量表示的输出数据)。这些背景功能中的一些也可以服务于另一目的使图像相关信息得到标准化/精炼,以便能高效地传递给其他装置和云资源并由其他装置和云资源利用。
第一类这种有规律地执行的操作通常取一个或更多图像帧(或其一部分)作为输入,并且产生图像帧(或部分帧)关键字向量作为输出。示例性操作包括·遍及图像的(或遍及感兴趣区域的)采样或插值输出图像可以不具有与源图像相同的尺寸,像素浓度也不必相同。·像素重新映射输出图像具有与源图像相同的尺寸,尽管像素浓度不需要相同。每个源像素被独立地映射〇实例阈值处理,“假色(false color)”,用范例值替换像素值·本地操作输出图像具有与源图像相同的尺寸,或者以标准方式被增大(例如,增加黑色图像边界)。每个目的地像素由相应的源像素周围的固定尺寸的本地邻居限定〇实例6x6的Sobel垂直边缘,5x5的线边缘量值,3x3的本地最大值、等等·空间重新映射例如,校正透视图或曲率“变形”· FFT或其他映射到新空间中的“图像”·图像算术输出图像是输入图像的总和、最大值等〇序列平均每个输出图像对k个连续的输入图像求平均〇序列(op) ing :每个输出图像是k个连续的输入图像的函数第二类这样的背景操作处理一个或更多输入图像(或其一部分),以便产生由一系列ID或2D区域或结构构成的输出关键字向量。该第二类中的示例性操作包括·长线提取返回一系列提取出的直线段(例如,以斜截式表示,带有端点和长度)· 一系列点,长线在这些点处相交(例如,以行/列格式表示)·椭圆形寻找器返回一系列提取出的椭圆形(在这种和其他情况下,被注意到的特征的位置和参数包含在该列表中)·圆柱寻找器返回一系列可能的3D圆柱(使用长线) 基于直方图的斑点提取返回一系列图像区域,这些图像区域通过它们的局部直方图而被区别开 基于边界的斑点提取返回一系列图像区域,这些图像区域通过它们的边界特征而被区别开 斑点“树”,在该斑点“树”中每个组分斑点(包括完整图像)具有完全包含在该组分斑点中的分离的子斑点。可以携带有用的缩放不变(或至少是抗缩放)信息
〇实例以多个阈值对一图像进行阈值处理的结果·精确的边界,例如,经阈值处理的斑点区域的那些精确边界·不明显的边界,例如,一系列提供密集度适当的区域边界的边缘或点,但是可以具有小缺口或不一致性,不同于经阈值处理的斑点的边界第三类这种例行的正在进行的处理产生表格或直方图作为输出关键字向量数据。该第三类中的示例性操作包括·色调、强度、颜色、亮度、边缘值、纹理等的直方图 表示例如ID值的特征同现的2D直方图或表格(色调,强度),(X强度,y强度),或某种其它配对
第四类这种默认图像处理操作由对共同的非图像对象执行的操作构成。该第四类中的示例性操作包括·分割/融合输入斑点列表产生新的不同的斑点列表·边界修复输入斑点列表产生一系列具有更平滑边界的斑点·边界跟踪输入斑点列表的序列产生一系列斑点序列·归一化图像直方图和基于直方图的斑点的列表返回用于对图像进行重新映射的表格(或许重新映射到“区域类型”值和“背景”值)自然,上述操作只是示例性的。存在着许多许多其他低级别操作可以例行公事地执行。然而,上述的相当大的一组类型通常是有用的,需要相当小的功能库,并且可以在通常可利用的CPU/GPU要求内实现。通过背景环境触发的图像处理条形码解码前面的讨论提到了各种操作,系统可以例行公事地执行这些各种操作以提供能够充当各种更专门的功能的输入的关键字向量数据。那些更专门的功能可以以自顶向下的方式(例如通过用户指令)或者以自底向上的方式(例如通过全部宣称数据的可用性)启动。除了刚刚详述的操作之外,系统还可以启动处理来基于背景环境生成其他关键字向量。举例来说,考虑位置。通过参考地理位置数据,装置可以确定用户处于食品杂货店。在这种情况下,系统可以自动地开始执行附加的图像处理操作,这些附加的图像处理操作生成可能对通常与食品杂货店相关的应用程序有用的关键字向量数据。(这些自动触发的应用程序继而可以调用为所触发的应用程序提供输入所需的其他应用程序。)例如,在食品杂货店中用户预期会遇到条形码。条形码解码包括两个不同的方面。第一个方面是在视场内寻找条形码区域。第二个方面是对识别出的区域中的线符号进行解码。与前一方面相关联的操作可以在用户被确定为处于食品杂货店(或其他零售机构)时被例行公事地采取。即,前面详述的例行公事地执行的一组图像处理操作,通过追加由食品杂货店中的用户所处位置触发的、另外一组通过背景环境触发的操作而被暂时扩大。可以通过分析图像的灰度级版本以识别出在水平方向上具有高图像对比度并且在垂直方向上具有低图像对比度的区域,来进行寻找条形码的操作。因此,当处于食品杂货店中时,系统可以扩大例行公事地执行的图像处理操作的目录,以便还包括对所定位的水平灰度级图像对比度的度量的计算(例如主题像素的任意一侧的2-8个像素)。(一种这样的度量是对相邻像素的值的差分的绝对值求和。)该对比度信息帧(或向下采样的帧)可以包含关键字向量一被标注以关于其内容的信息,并且被发布给其他处理以供查看和使用。类似地,系统可以计算所定位的垂直灰度级图像对比度,并发布这些结果作为另一关键
子向星。系统可以通过对图像中的每个点,从计算出的局部水平图像对比度的度量中减去计算出的局部垂直图像对比度的度量,来进一步处理这两个关键字向量。通常,该操作在取强烈正值的点和取强烈负值的点处产生混乱的一帧数据。然而,在条形码区域中,混乱程度要小得多,在条形码区域范围内具有强烈正值。该数据也可以发布给其他处理以供查看,作为在用户处于食品杂货店中时例行公事地产生的又一个(第三个)关键字向量。第四个关键字向量可以通过应用阈值处理操作(只识别具有高于目标值的值的那些点),从第三个关键字向量中产生。该操作因此识别出图像中看上去似乎在特征上可能类似于条形码的点,即水平对比度强并且垂直对比度弱的点。
第五个关键字向量可以通过应用连通分量分析(限定看上去似乎在特征上可能类似于条形码的点所构成的区域(斑点)),从第四个关键字向量中产生。第六个关键字向量可以通过第五个关键字向量产生一一由三个值构成最大斑点中的点的数目;以及该斑点的左上角和右下角的位置(用距离图像帧的最左上角处的像素的行偏移和列偏移来定义)。这六个关键字向量是预期会产生的,而不需要用户明确地请求它们,这仅仅是因为用户处于与食品杂货店相关联的位置。在其他背景环境中,这些关键字向量通常将不会被产生。这六个操作可以包括单个识别代理(B卩,条形码定位代理)。或者这六个操作可以是较大的识别代理(例如,条形码定位/读取代理)的一部分,或者这六个操作可以是一些子功能,这些子功能单独地或者组合起来可以构成这六个操作自身的识别代理。(条形码读取处理中的更少的操作或另外的操作可以类似地得到执行,但是这六个操作举例说明了要点。)条形码读取器应用程序可以处于装置上加载的那些应用程序中。当处于食品杂货店中时,条形码读取器应用程序可以在非常低的操作级别上活跃起来一仅仅检查上面提到的第六个关键字向量中的第一参数以查看其值是否超过例如15,000。如果该测试得到满足,那么条形码读取器可以指示系统呈现模糊的条形码一在由该第六个关键字向量的第二和第三参数标识的斑点拐角点位置之间的中途帧中的位置处指示出小玩意。该小玩意告诉用户装置已经感测到可能是条形码的某个东西以及它出现在帧中的位置。如果用户轻拍该模糊的小玩意,那么这会(自顶向下地)启动对条形码进行解码所需的其它操作。例如,提取第六个关键字向量中标识的两个拐角点之间的图像区域,从而形成第七个关键字向量。然后接着发生一系列进一步的操作。这些操作可以包括用低频边缘检测器对提取出的区域进行滤波,并使用霍夫变换来搜索接近垂直的线。然后,对于经滤波的图像中的每一行,通过与用作引导标记的估算出的条形码的左右边缘的关联性来识别开始、中间和末端条形码图案的位置。然后,对于每个条形码数字,确定数字在该行中的位置,并且使该行中的该位置处的像素与可能的数字代码相关以便确定最佳匹配。对每个条形码数字重复该过程,从而产生候选条形码有效载荷。然后在来自该行的结果上执行奇偶校验数字测试,并且使该有效载荷的出现计数值加I。然后对经滤波的图像中的另外的几个行重复这些操作。然后,出现计数值最高的有效载荷被认为是正确的条形码有效载荷。在该点上,系统可以明亮地照亮条形码的小玩意一表明数据已经令人满意地得到提取。如果用户轻拍明亮的小玩意,那么装置可以呈现动作菜单,或者可以启动与解码出的条形码相关联的默认动作。尽管在刚刚描述的方案中,系统在产生第六个关键字向量之后停止其例行操作,但是系统也可以做进一步的处理。然而,由于资源限制,在每次机会来临时(例如当第六个关键字向量中的第一参数超过15,000时)都进一步进行处理可能是不实际的。在一个备选方案中,系统可以例如每三秒钟一次地进一步进行处理。在每个三秒钟间隔期间,系统监视第六个关键字向量的第一参数,寻找(I)超过15,000的值;和(2) 超过该三秒钟间隔中的全部先前值的值。当满足这些条件时,系统可以对帧进行缓冲,或许对任何先前缓冲的帧进行盖写。在三秒钟间隔结束时,如果缓冲了一帧,那么该帧具有该三秒钟间隔中的任意第六个关键字向量的第一参数的最大值。随后系统可以从该帧中提取感兴趣区域、应用低频边缘检测器、使用霍夫程序寻找线条、等等——自始至终在成功解码了有效的条形码有效载荷的情况下明亮地照亮小玩意。作为机械地每三秒钟就尝试完成条形码读取操作这一方案的替代,系统可以机会主义地进行处理——当中间结果特别有前途时才进行处理。例如,尽管条形码读取处理可以在每当感兴趣区域中的点的数目超过15,000时就继续进行处理,但是该值是条形码读取尝试可能会富有成效的最小阈值。成功地读取条形码的概率随着所述点区域变得越大而增大。因此,作为每三秒钟就进一步进行解码处理一次这一方案的替代,进一步的处理可以由第六个关键字向量的第一参数中的值超过50,000 (或100,000或500,000等)的事件触发。这样大的值表明,明显的条形码占据了摄像机观察到的帧的相当大一部分。这暗示了用户有意做出的动作——拍摄条形码的高质量的视图。在这种情况下,可以启动条形码读取操作的剩余部分。这向装置的行为提供了一种直觉感用户明显意图对条形码成像,并且系统在没有任何其它指令的情况下就启动完成条形码读取操作所需的进一步操作。以同样的方式,系统可以根据特别适合于某一类型操作的图像信息的可用性来推断用户意图或者将会受益于所述某一类型的操作。系统于是可以进行该操作所需的处理,从而产生直觉响应。(类似文本的图像可以触发与OCR处理相关联的操作;类似面部的特征可以触发与面部识别相关联的操作,等等。)这可以在不考虑背景环境的情况下完成。例如,装置可以周期性地检查关于当前环境的某些线索,例如在可能看见条形码的情况下,偶而检查图像帧中的水平灰度级对比度与垂直灰度级对比度的比率。尽管这些操作可能不是例行加载的或者可能不是由于背景环境而加载的,但是无论如何这些操作可以例如每五秒钟左右一次地进行,因为计算成本小并且对视觉上有用的信息的发现可以由用户评价。返回到背景环境,就像系统由于用户的位置在食品杂货店而自动地采取一组不同的背景图像处理操作那样,系统也可以类似地基于其他情况或背景环境而使其例行发生的处理操作的集合得到适应。
一个因素是历史(即,用户的历史或用户的同等社会阶层的历史)。通常,我们在自己家里不会使用条形码读取器。然而,图书收藏者可能会通过读取新图书的ISBN条形码来对家庭图书馆中的新图书编目录。第一次用户在家里把该装置用于这种功能时,生成上面提到的第一至第六个关键字向量的操作可能会需要以自顶向下的方式启动——因为用户通过装置的用户界面表示出对读取条形码的兴趣而启动。第二次也同样如此。然而,合乎期望的是,系统注意到(I)处于特定位置(即家里)的用户、以及(2)条形码读取功能的激活的反复的同现。在这样的历史模式已经建立之后,每当用户处于家位置时,系统就可以例行地启动上面提到的第一至第六个关键字向量的产生。系统可以进一步辨别出用户只在晚上在家里激活条形码读取功能。因此,时间也可以是触发某些图像处理操作的自动启动的另一背景环境因素,即这些关键字向量是当用户在晚上在家里时产生的。
社会信息也可以提供对数据的触发。用户可能仅把给图书编目录作为孤独时的追求。当配偶在家时,用户可能并不给图书编目录。配偶是否在家里可以以各种方式感测到。一种方式是通过来自配偶的手机的蓝牙无线电信号广播。这样,当(I)用户在家里、(2)在晚上、(3)用户的配偶不在附近时,可以自动地产生条形码定位关键字向量。如果配偶在家、或者如果是白天、或者如果用户远离家(和食品杂货店),那么系统可以不例行地产生与条形码定位相关联的关键字向量。可以编辑并利用用户行为的贝叶斯或其它统计模型以检测反复出现的情况的这种同现,并且随后可以使用所述贝叶斯或其它统计模型以基于此来触发动作。(在这一点上,微处理器设计中的分支预测方面的科学可以是有教益的。当代的处理器包括可以包含许多阶段的管道——需要处理逻辑取回提前15或20步使用的指令。错误的猜测可能会需要注满管道——引起显著的性能损失。因此,微处理器包括分支预测寄存器,其跟踪条件分支在例如最后255次是如何得到解决的。基于这种历史信息,极大地提高了处理器的性能。以类似的方式,跟踪用户和代理这两者(例如,用户的同等社会阶层,或同等人口统计群体)对装置进行利用的历史模式、并基于这种信息来定制系统行为,可以提供重要的性能改善。)(下面进一步讨论的)音频线索也可能会涉及某些图像处理操作的自动触发。如果听觉线索暗示用户在户外,那么可以启动一组额外的背景处理操作;如果该线索暗示用户在开车,那么可以启动一组不同的操作。如果音频具有电视音轨的特点、或者如果音频暗示用户在办公室环境中,也同样如此。在系统中加载并运行的软件组件因此可以在预期到在该特定环境中可能会遇到的刺激或者用户可能会请求的操作的情况下自动地自适应。(类似地,在应用不同的音频处理操作以生成不同的音频功能所需的关键字向量的听觉装置中,从视觉环境中感测到的信息可能会指示出这样的背景环境,该背景环境规定通常不会运行的某些音频处理操作的启动。)环境线索也可以引起某些功能被选择、启动、或定制。如果装置感测到的环境温度是负十摄氏度,那么用户推测起来可能在冬季的户外。如果指示面部识别(例如,通过用户指令,或者通过其他线索),那么图像中描绘的任何面部可能会被包裹在帽子和/或围巾中。考虑到面部的某些部分会被遮盖,而不是例如背景环境是炎热的夏天、人的头发和耳朵预期会露出来的情况,因此可以采用一组不同的面部识别操作。
其他与系统的用户交互可能会被注意到,并且会导致通常不运行的某些图像处理操作的启动,即使注意到的用户交互不涉及这样的操作。考虑用户通过装置上的万维网浏览器进行查询(例如通过文本或语音输入)以识别附近的餐馆的情况。该查询不涉及摄像机或图像。然而,从这样的交互中,系统可以推断出用户不久将会(I)改变位置,和(2)处于餐馆环境中。因此,系统可以启动在例如(I)导航到新位置、和(2)处理餐馆菜单的过程中可能会有帮助的图像处理操作。可以通过把来自摄像机的图像与沿着用户预期的路线的路边图像(例如,来自Google Streetview或其他图像储存库,使用SIFT)进行图案匹配来对导航进行辅助。除了从Google获得相关图像之外,装置还可以启动与尺度不变特征变换操作相关联的图像处理操作。例如,装置可以对摄像机以不同的缩放状态拍摄的图像帧进行重新采样,从而对每个图像帧产生一关键字向量。对于这些图像帧中的每一个,可以应用高斯差分函数,从而产生进一步的关键字向量。如果处理限制允许的话,那么这些关键字向量可以与模糊滤波器卷积,从而产生更进一步的关键字向量、等等——全都在预期到SIFT图案匹配的可能使 用的情况下。在预期到要察看餐馆菜单的情况下,可以启动对OCR功能性而言难免的操作。例如,尽管默认的一组背景图像处理操作包括用于长边缘的检测器,但是OCR需要识别短边缘。因此,可以启动识别短边缘的算法;该输出可以用关键字向量表示。定义闭合轮廓的边缘可以用于识别字符候选斑点。字符的线条可以从这些斑点的位置取得,并且可以应用倾斜校正。从字符斑点的倾斜校正后的线条中,可以辨别出候选单词区域。随后可以应用图案匹配以便识别这些单词区域的候选文本。等等。如前所述,并不是所有这些操作都会在每个经处理的图像帧上执行。可以例行公事地执行某些早期操作,并且可以基于(I)定时触发、(2)迄今为止已处理的数据的有前途的属性、(3)用户指示、或者(4)其他标准来采取进一步的操作。回到食品杂货店的实例,不仅背景环境可以影响所采取的图像处理操作的类型,而且归因于不同类型的信息(图像信息以及其他信息(例如地理位置))的含义也可以影响所采取的图像处理操作的类型。考虑用户的手机在食品杂货店中拍摄了一帧图像的情况。手机可以立即做出响应一提出用户正面对着汤罐。手机可以通过参考地理位置数据和磁力计(罗盘)数据以及所存储的关于该特定店铺的布局的信息(表明摄像机正面对着放汤的货架)来实现该操作。处于初始阶段的小玩意可以例如通过表示食品杂货条目的图标、或者通过文本、或者通过链接的信息,来把该最初的猜测传达给用户。一会之后,在对所拍摄的帧中的像素进行初始处理期间,装置可以辨别出紧接着白色像素斑点的红色像素斑点。参考与食品杂货店背景环境相关联的参考数据源(再一次,或许也依靠地理位置和罗盘数据),装置可以快速地猜测出(例如,在少于一秒钟的时间内)该条目(最可能)是一罐金宝(Campbell)汤、或者(可能性小一点地)是一瓶调味蕃茄酱。矩形可以叠加到屏幕显示上,从而勾画出装置所认为的对象的轮廓。一秒钟之后,装置可能已经对白色背景上的大字符完成了 OCR操作,声称是番茄汤(TOMATO SOUP)—进一步证实了 Campbell汤的假设。在进一步的短暂间隔之后,手机可能已经设法在图像的红色区域中识别出风格化的笔迹“Campbell’s”,从而确认对象不是模仿Campbell的色彩设计的零售商品牌汤。在进一步的一秒中,手机可能已经解码出附近的罐上可见的条形码,其详述与Campbell番茄汤相关的尺寸、批号、生产日期、和/或其他信息。在每个阶段,小玩意或链接的信息根据装置对摄像机所指向的对象的精炼的理解而进化。(在任何时间点,用户可以指示装置停止其识别工作(可能通过快速摇动),从而为其他任务保存电池电力和其他资源。)相反,如果用户在户外(例如通过GPS和/或明亮的阳光而感测到),那么手机对紧接着白色像素斑点的红色像素斑点的最初猜测将可能不是Campbell汤罐头。而是,手机更可能会猜测它是美国国旗、或者花、或者一件衣服、或者方格色桌布——再一次通过参考与户外背景环境相对应的信息的数据存储库。直觉计算平台(ICP)背景环境引擎,标识符引用Arthur C. Clarke说过的话“任何足够先进的技术都很难与巫术区别开”。 “先进”可以有许多含义,但是为了向移动装置灌输类似于巫术的东西,本说明书将该术语解释为“直觉的”或“智能的”。直觉行为的重要一部分是感测用户可能的意图、然后对用户可能的意图做出响应的能力。如图11所示,意图不仅随用户而变,而且随用户过去的历史而变。另外,意图也可以被认为随用户的同等群体的活动及其过去的历史而变。在确定意图的过程中,背景环境是关键。即,在知道例如用户在哪里、用户及其他人上一次在该位置从事了什么活动、等等对辨别用户在当前时刻可能的活动、需要和期望很有价值的意义上,背景环境能够向意图的推断提供信息。这种关于用户行为的自动推理是人工智能的核心目标,并且关于该主题已经有许多著述。(参看例如Choudhury等人的“Towards Activity Databases:Using Sensors and Statistical Models to SummarizePeople’s Lives” (IEEE Data Eng. Bull, 29 (I) : 49-58,2006 年 3 月。)传感器数据(如图像、音频、运动信息、位置、和蓝牙信号)在推断用户可能的活动(或者排除不可能的活动)的过程中很有用。如Choudhury提到的那样,这些数据可以提供给一软件模块,该软件模块将传感器信息处理成可以帮助区别各活动的特征。这些特征可以包括高级别信息(如对环境中的对象的识别,或者附近的人数,等等),或者低级别信息(如音频内容或幅度、图像形状、相关系数等)。从这些特征中,计算模型可以推断出可能的活动(例如,走路、谈话、取咖啡、等等)。除了由移动装置传感器提供的大量数据之外,在理解背景环境(并因此理解意图)的过程中有用的其他特征可以从附近对象取得。树会暗示户外背景环境;电视会暗示室内背景环境。一些对象具有相关联的元数据——极大地推进了背景环境理解。例如,用户环境内的一些对象可能会具有RFID等。RFID传递唯一的对象ID。通常在远程数据存储库中与这些唯一的对象ID相关联的是,关于附加有RFID的对象的固定的元数据(例如颜色、重量、所有权、原产地、等等)。因此,胜于尝试仅从像素中推断相关信息,移动装置中的传感器或者移动装置所链接到的环境中的传感器可以感测这些信息载体,获得相关元数据,并使用该信息来理解当前背景环境。(RFID只是示例性的;也可以采用其他方案,例如数字水印法、指纹法、等等。)因为用户活动是复杂的并且对象数据和传感器数据都不适用于得出明确结论,所以用于推断用户可能的活动和意图的计算模型通常是概率性的。可以使用产生式技术(例如,贝叶斯、隐藏式马可夫、等等)。也可以采用关于组界(class boundary)的辨别技术(例如,后验概率)。因此也可以采用关系概率模型(relational probabilistic model)和马可夫网络模型。在这些方法中,概率也可以取决于用户的社交群体中的其他人的特性。在一个特定方案中,基于与可能存储在云中的模板匹配的、本地装置的观察来确定意图。通过辨别意图,本技术减小了对刺激的可能响应的搜索空间,并且可以使用本技术来对输入数据进行分割以辨别活动、对象并产生标识符。标识符可以用明显的推导出的元数据来构造。为了有一点后备,期望每个内容对象都得以识别。理想地,对象的标识符在全世界范围内是唯一且持久的。然而,在移动装置视觉查询中,这种理想情况常常是难以达到的(除了在例如对象承载有数字水印标志的情况下)。尽管如此,在视觉查询会话内,仍期望每个辨别出的对象具有在该会话内唯一的标识符。 唯一标识符(UID)的一种可能的构造包括两个或三个(或更多)组分。一个是业务ID,其可以是会话ID。(一种适合的会话ID是例如由以装置标识符(如MAC标识符)作为种子的PRN发生器产生的伪随机数。在其他方案中,会话ID可以传递语义信息,诸如传感器最近一次从关闭或睡眠状态被激活的UNIX时间。)这种业务ID用于减小其他标识组分所需的范围,并且帮助使得标识符唯一。这种业务ID还将对象标识置于特定会话或动作的背景环境内。标识符的另一组分可以是明确的对象ID,其可以是前面提到的聚簇ID。这通常是分配的标识符。(如果聚簇被确定为包含几个明显可识别的特征或对象,那么可以将另外的比特附加到聚簇ID上以区分这些特征或对象。)另一组分可以以某种方式从对象或具体情况中取得。一个简单的实例是“指纹”~从对象本身的特征取得的统计上唯一的标识信息(例如,SIFT、图像签名、等等)。另外地或者可替换地,该组分可以由与背景环境、意图、推断出的特征(基本上是可由后续处理使用以帮助确定身份的任何东西)相关的信息构成。该第三组分可以被认为是推导出的元数据、或者与对象相关联的“先兆”。对象标识符可以是这些组分的级联或其他组合。扇形区、等等由系统调用的不同的识别处理可以并行地、或者以循环连续方式工作。在后一种情况下,时钟信号等可以提供借以激活不同的扇形区的步调。图12示出由扇形区构成的圆周这样的循环处理方案。每个扇形区表示识别代理处理或另一处理。箭头指示从一个扇形区进行到另一扇形区。如位于右边的扩大的扇形区所示,每个扇形区可以包括几个不同的阶段或状态。本技术面临的问题是资源限制。如果不存在限制,那么视听装置可以对输入数据的每个帧和序列不断地应用无数资源密集型识别算法,从而在每个帧中检查用户潜在感兴趣的每个条目。在真实世界中,处理是有成本的。该问题可以表述为以下两者之一动态地识别应该应用于输入数据的处理,以及动态地决定分配给每个处理的资源的类型和数量。
在图12中,扇形区(识别代理处理)的不同阶段对应于资源消耗的进一步水平。最里面的(尖角的)阶段通常使用最少的资源。累积的资源负担随着扇形区的相继阶段的处理的执行而增大。(尽管每个阶段常常会比在它之前的阶段更加资源密集,但是这不是必需的。)能够实现这种类型的行为的一种方式是通过把识别和其他操作实现为“操作的级联序列”,而不是实现为整体式操作。这样的级联序列常常会涉及具有相对低的开销的初始操作,这些初始操作在被成功完成时可以通过可能会需要更多资源、但是现在只会在初步表明有可能成功后才被启动的操作而得到继续。本技术也可以促进机会主义地用已经可利用的关键字向量替代由一操作通常会使用的相关特征,从而再一次如前面提到的那样减少资源开销。出于讨论的目的,考虑面部识别代理。为了识别面部,应用一系列测试。如果有任何一个测试失败,那么不太可能存在面部。(许多处理共用的)初始测试是检查由摄像机产生的图像是否具有任何种类的特征(与例如当处于黑暗的钱包或口袋中时的摄像机输出进行对比)。这可以通过对跨越整个图像范围的像素位置的稀疏采样的灰度级像素值进行简单的直方图分析来完成。如果该直方图分析指出全部的采样像素都具有基本上相同的灰度级输出,那么可以跳过进一步的处理。如果该直方图显示出在像素灰度级值中存在着一定差异性,那么接下来可以检查图像以查找边缘。不具有可辨别的边缘的图像很可能是不可用的图像,例如高度模糊或散焦的图像。如上所示,各种边缘检测滤波器是本领域技术人员所熟悉的。如果找到了边缘,那么面部检测程序可以接着检查是否有任何边缘是弯曲的并且限定出一闭合区域。(在某些实现方案中作为例程背景操作运行的椭圆形寻找器可以允许处理在该步骤开始。)如果有边缘是弯曲的并且限定出一闭合区域,那么可以执行颜色直方图以确定闭合区域内是否有相当大百分比的像素在色调上彼此相似(皮肤构成面部的一大部分)。“相当大”可以表示大于30%、50%、70%、等等。“相似”可以表示CIELAB意义上的距离阈值或角度旋转。可以任选地应用预定义肤色范围内的颜色测试。接着,可以应用阈值处理操作以识别闭合区域内的最黑的5%的像素。可以对这些像素进行分析以确定它们是否形成与两个眼睛相一致的群组。这些步骤以类似的方式通过为各候选面部生成本征向量而继续进行。(面部本征向量是根据面部的高维向量空间表示形式的概率分布的协方差矩阵计算的。)如果是这样的话,可以在(本地或远程的)参考数据结构中搜索本征向量的匹配者。如果任何操作产生了否定结果,那么系统可以推断出不存在可辨别的面部,并终止对该帧进行的进一步的面部寻找努力。全部这些步骤可以形成单个扇形区处理中的各阶段。可替换地,一个或更多步骤可以被认为对几个不同的处理都是基本的且有用的。在这种情况下,这些步骤可以不形成专用扇形区处理的一部分,而是可以是分离的。这些步骤可以在一个或更多扇形区处理中实现——循环地由其他代理处理执行并将其结果发布到黑板上(而不管其他代理是否能找到这些结果)。或者这些步骤可以以其他方式实现。
在把系统的有限资源应用于不同的正在进行的处理时,检测状态可能会是有用的概念。在每个时刻,每个代理所寻求的目标(例如,识别面部)看起来似乎或多或少可能会达至IJ。S卩,每个代理可能会具有连续的瞬时检测状态,从非常有前途经过中性状态降至非常令人沮丧。如果检测状态很有前途,那么可以对该努力分配更多的资源。如果其检测状态趋向于很令人沮丧,那么可以分配更少的资源。(在某一点处,可能会达到沮丧的阈值,使得系统终止该代理的努力。)检测状态可以由(分离的、或者包含在代理处理中的)软件例程周期性地量化,所述软件例程根据代理处理所关心的特定参数而被裁制。当调用了代理处理的相继几个阶段时,倾向于会发生增加分配的资源这样的情况(例如,可能在第七阶段发生的FFT操作固有地会比可能在第四阶段发生的直方图操作更复杂)。但是除了基础操作复杂性以外,系统也可以对资源分配进行计量。例如,给定的图像处理操作可能在系统的CPU或GPU上执行。FFT可能要用IMB或IOMB的便笺式存储器来执行进行计算。一个处理在一些情况下可能被允许使用(更快速响应的)缓存数据存储器,而在另外一些情况下可能仅被允许使用(响应较慢的)系统内存。一个阶段在一种情况下可能被准予访问4G网络连接,而在另一种情况下可能仅被准予访问较慢的3G或WiFi网络连接。在系统资源的消耗方面,产生最有前途的结果的处理可以被授予特权状态。 在另外的方案中,资源分配不仅取决于在实现代理的目标的过程中该代理的状态,而且取决于该代理去往该目标的速度或加速度。例如,如果响应于初始资源努力水平而快速出现很有前途的结果,那么不仅可以应用额外的资源,而且可以应用比很有前途的结果出现的速度慢一些的情况更多的额外资源。因此,资源的分配可以不仅取决于检测状态(或者性能或结果的其他度量),而且取决于这种度量的一阶或更高阶的导数。相关地,由检测代理处理的一个阶段产生的数据可能会如此有前途,以致于该处理可以向前跳过一个或更多阶段——跳过介于其间的阶段。这可能是这样的情况,例如跳过的阶段并不产生对该处理而言必需的结果,而是只是为了获得关于更进一步阶段的处理的值得程度的更高置信度而进行的。例如,识别代理可以执行阶段1、2和3,然后基于来自阶段3的输出的置信度度量来跳过阶段4并执行阶段5 (或者跳过阶段4和5并执行阶段
a 坐坐、正如资源分配和阶段跳跃可以由检测状态促使那样,资源分配和阶段跳跃也可以由用户输入促使。如果用户提供了对特定处理的鼓励,那么可以对该处理分配额外的资源,和/或该处理可以继续进行从而超过这样的点,在该点处该处理的操作可能因为缺乏很有前途的结果而已经自动地被提早结束。(例如,如果前面提到的检测状态连续过程在从O分<完全令人沮丧 > 到100分〈完全令人鼓舞 > 的分数范围内变化,并且在处理的分数降到阈值35以下的情况下该处理通常会终止操作,那么如果用户提供了对该处理的鼓励,那么该阈值可以降至25或15。阈值的变化量可以与接收到的鼓励量相关。)用户鼓励可以是明确的或暗示的。明确鼓励的实例是用户提供输入信号(例如,屏幕轻拍等),指示应执行特定操作(例如,指示系统处理图像以识别所描绘的人的用户界面命令)。在一些实施例中,摄像机连续拍摄图像——在无需特定用户指令的情况下监视视觉环境。在这种情况下,如果用户启动快门按钮等,那么该动作可以被解释为处理在该时刻成帧的图像的明确用户鼓励的证据。
暗示鼓励的一个实例是用户在图像中描绘的人上轻拍。这可能具有作为了解关于该人的更多信息的信号的意图,或者这可能是随机动作。无论如何,这足够使系统对与该图像的该部分相关的处理(例如面部识别)增加资源分配。(其他处理也可以被列入优先,例如识别该人所穿戴的手提包或鞋,以及在通过面部识别进行鉴别之后调查关于该
人的事实-诸如通过使用社交网络(例如LinkedIn或Facebook);通过使用Google、
pipl〈dot>com、或其他资源。)在决定应该把多少资源增加量应用于不同任务(例如,鼓励量)的过程中可以利用轻拍的位置。如果该人轻拍图像中的面部,那么与用户轻拍图像中该人的鞋的情况相比,可以将更多的额外资源应用于面部识别处理。在后一种情况下,可以对鞋识别处理分配比面部识别处理更大的资源增加量。(对鞋进行的轻拍也可以启动鞋识别处理,如果该鞋识别处
理尚未在进行中的话。)暗示用户鼓励的另一实例是用户将摄像机放置成使得特定主题位于图像帧的中心点。在系统注意到在多个帧构成的时间序列中摄像机被重新定位(将特定主题移动到中心点)的情况下,这是尤其令人鼓舞的。如前所述,该主题可能由几个部分构成(鞋、手提包、面部、等等)。每个这样的部分和帧的中心之间的距离可以被视为与鼓励量成反比。即,处于帧的中心的部分暗示着最大的鼓励量,而其他部分的鼓励量随着距离而相继减小。(数学函数可以使距离与鼓励相关。例如,作为该帧的中心的部分可以在O到100的范围内具有100的鼓励值。处于图像帧的遥远周边的任何部分可以具有O的鼓励值。中间位置可以通过线性关系、幂次关系、三角函数或其他方式与鼓励值相对应。)如果摄像机配备有变焦透镜(或数字缩放功能)、并且摄像机注意到在由多个帧构成的时间序列中摄像机镜头被推向特定主题(或者部分),那么这种动作可以被视为对该特定主题/部分的暗示用户鼓励。即使没有由多个帧构成的时间序列,表示变焦程度的数据也可以被视为用户对该成帧的主题的兴趣的度量,并且可以数学地转换成鼓励度量。例如,如果摄像机的变焦范围是IX至5X,那么5X的变焦可以对应于100的鼓励因子,并且IX的变焦可以对应于I的鼓励因子。中间变焦值可以通过线性关系、幂次关系、三角函数等与鼓励因子相对应。对意图的推断也可以基于图像帧内的特征的取向。用户被认为通常会按照使意图的主题竖直成帧的取向来握持成像装置。通过参考加速计数据等,装置可以辨别出用户是以拍摄“风景画”模式图像的方式还是以拍摄“肖像画”模式图像的方式握持成像装置,由此可以确定“竖直”定位。图像帧内具有竖直取向的主轴(例如大致的对称轴)的对象比从竖直方向倾斜的对象更可能是用户意图的主题。(用于推断图像帧中用户意图的主题的其他线索在专利6,947,571中有讨论。)尽管前面的讨论考虑的是非否定的鼓励值,但是在其他实施例中,可以利用否定值,例如结合明确或暗示的用户对特定刺激的冷淡、图像特征与帧中心的遥远性、等等来利用否定值。肯定和否定这两种鼓励都可以由其他处理提供。如果条形码检测器开始感测到处于帧中心的对象是条形码,那么使其检测状态度量增大。然而,这种结论倾向于驳斥处于帧中心的主题是面部的可能性。因此,第一识别代理的检测状态度量的增大可以充当可能与第一代理相互排斥的其他识别代理的否定鼓励。用于多个识别代理的鼓励和检测状态度量可以通过各种数学算法组合起来,以产生混合控制度量。一种混合控制度量是它们的总和,从而在两个代理(且没有否定鼓励值)的情况下产生从O到200变化的输出。另一种混合控制度量是它们的乘积,从而产生从O到10,000变化的输出。在不同的识别代理各自的混合控制度量变化时,资源可以重新分配给这些不同的识别代理。识别代理可以取决于应用场合而具有不同的粒度和功能。例如,刚刚讨论的面部识别处理可以是由许多阶段构成的单个扇形区。或者它可以被实现为几个、或几十个相关的更简单的处理一每个更简单的处理都有自己的扇形区。应认识到的是,图12中的扇形区识别代理类似于DLL——被选择性地加载/调用以提供期望种类的服务的代码。(确实,在一些实现方案中,可以使用与DLL相关联的软件构造,例如在操作系统中可以使用与DLL相关联的软件构造来管理代理代码的加载/卸载, 以将这种功能性的可用性公布给其他软件,等等。基于DLL的服务也可以结合识别代理一起使用。)然而,优选的识别代理具有不同于DLL的行为。在一个方面中,这种不同的行为可以被描述为调速或者状态跳跃。即,它们的执行和支持它们的资源会基于一个或更多因素(例如,检测状态、鼓励、等等)而变化。图13示出图12方案的另一视图。该视图清楚地表明不同的处理可能会消耗不同量的处理器时间和/或其他资源。(当然,这些处理可以在单处理器系统上实现,或者在多处理器系统上实现。将来,不同的处理器或者多处理器系统的多个“核”可以被分配来执行不同的任务。)有时,识别代理因为缺乏令人满意的资源(或者是处理资源、或者是输入数据、等等)而未能实现其目标。在拥有额外的或更好的资源的情况下,可能会实现该目标。例如,面部识别代理可能会因为摄像机在拍摄图像时倾斜了 45度而未能识别出图像中所描绘的人的面部。在该角度,鼻子不在嘴的上方,而鼻子在嘴的上方是代理在辨别是否存在面部的过程中可能已经应用的标准。在拥有更多处理资源的情况下,该标准可能被放宽或者去除。可替换地,在来自另一代理(例如定向代理)的结果已经可用的情况下(例如识别图像中的真实地平线的倾斜),面部可能已经被检测到。获悉地平线的倾斜可以允许面部识别代理以不同的方式理解“上方”一这种不同的方式允许该面部识别代理识别出面部。(类似地,如果先前拍摄的帧或后来拍摄的帧得到了分析,那么可能已经辨别出面部。)在一些方案中,当其他资源变得可用时,系统对输入的刺激(例如,图像)进行进一步的分析。举个简单的情况来说,当用户将手机放入钱包中、并且摄像机传感器变黑或者无望地散焦时(或者当用户将手机放在桌上使得该手机注视固定的景象(或许是桌子或天花板)时),软件可以重新激活先前未能实现其目标的代理处理,并对该数据进行重新考虑。在不用分心处理一连串输入的移动图像和相关联的资源负担的情况下,这些代理现在可能能够实现它们的初始目标,例如识别先前错过的面部。在完成该任务期间,系统可以再调用来自其他代理处理的输出数据——既包括在主题代理最初运行时可用的那些输出数据,又包括直到主题代理终止之适才变得可用的那些结果。这些其他数据可以帮助先前未成功的处理实现其目标。(可以对在手机先前进行的操作期间收集的“垃圾”进行复查以找出在该代理运行的初始处理环境中被忽略的或尚未变得可用的线索和有帮助的信息。)为了减少这种“事后思索”操作期间的电池电力耗尽,手机可以切换到省电状态,例如禁用某些处理电路、降低处理器时钟速度、等等。在相关方案中,未能实现其目标就在手机上结束的处理中的一些或全部可以在云中继续进行。手机可以把未成功的代理处理的状态数据发送给云,从而允许云处理器在手机停止的地方继续进行分析(例如,算法步骤和数据)。手机也可以向云提供来自其他代理处理的结果一包括当未成功的代理处理被结束时尚不可用的那些结果。再一次,也可以将数据“垃圾”作为可能的资源提供给云,以防先前丢弃的信息在云的处理中有了新的相关性。云可以对全部这些数据执行搜集操作——设法找出手机系统可能已经忽略的有用信息或含义。这些结果在被返回给手机时可以继而使手机重新评估它过去或者现在正处理的信息,从而有可能允许它辨别出已经错过的有用信息。(例如,在云的数据搜集处理中,云可能会发现地平线似乎倾斜了 45度,从而允许手机的面部识别代理识别出已经错过的面部。)尽管上面的讨论集中在识别代理方面,但是相同的技术也可以应用于其他处理,例如对识别而言起辅助作用的处理(诸如建立取向或背景环境等)。 关于限制的更多说明图14是描绘可在某些实施例中采用的本技术的某些方面的概念视图。图的顶部示出充满识别代理(RA)服务的漏斗,这些识别代理服务大多数都可与用作该服务的输入的一个或更多关键字向量相关联地得到运行。然而,系统限制不允许全部这些服务都得到执行。因此,漏斗的底部被图解地显示为通过限制因素来控制,从而允许或多或少的服务取决于电池状态、CPU上的其他需求、等等而被启动。允许运行的那些服务被显示在漏斗的下方。在这些服务执行时,它们可以将临时结果或最终结果发布到黑板上。(在一些实施例中,这些服务可以将输出提供给其他处理或数据结构,诸如提供给Π管理器、提供给另一识别代理、提供给检查跟踪(audit trail)或其他数据存储库、作为信号提供给操作系统——以便例如使状态机前进、等等。)在黑板中采用已知的垃圾收集技术以去除不再相关的数据。去除的数据可以转移到长期存储库(如磁盘文件)以便充当其他分析中的资源。(去除的数据也可以转移或复制到云,如下所述。)一些服务运行到完成并且终止(在图中通过单个删除线示出),从而释放出允许其他服务得到运行的资源。其他服务在完成之前被停止(通过双删除线示出)。这可能会由于各种原因而发生。例如,来自该服务的临时结果可能不是很有前途(例如,现在椭圆形似乎更可能是汽车轮胎而不是面部)。或者系统限制可能会变化一例如,因为缺乏资源而需要终止某些服务。或者其他更有前途的服务可能变得准备好运行,从而需要重新分配资源。尽管在图14的图解中未绘出,但是来自被停止的处理的临时结果可以发布到黑板上——或者在这些处理的操作期间,或者在它们被停止的时间点。(例如,尽管在椭圆形看起来更像车辆轮胎而不是面部的情况下面部识别应用程序可以终止,但是车辆识别代理可以使用这样的信息。)发布到黑板上的数据以各种方式被使用。一种方式是触发小玩意的屏幕显示,或者是为其他用户接口需求服务。还可以使得来自黑板的数据可用作对识别代理服务的输入,例如用作输入关键字向量。另外,黑板数据可以表示让新服务运行的原因。例如,黑板上所报告的椭圆形的检测可以表示面部识别服务应该运行。黑板数据还可以增大已经在(概念上的)漏斗中等待的服务的相关度分数,从而使得更可能让该服务运行。(例如,椭圆形实际上是车辆轮胎的指示可以将车辆识别处理的相关度分数增大到使该代理处理得到运行的分数。)相关度分数概念在图15中示出。一数据结构维持待运行的可能服务的列表(类似于图14中的漏斗)。对每个可能的服务示出了相关度分数。这是执行该服务的重要性的相对指示(例如在1-100的范围内)。该分数可以是多个变量的函数——取决于特定服务和应用,所述多个变量包括在黑板上找到的数据、背景环境、表达出的用户意图、用户历史等。相关度分数通常会随时间而变化,在更多数据变得可用时变化、在背景环境变化时变化、等等。正在进行的处理可以基于当前状况来更新相关度分数。一些服务可能被评分为高度相关,然而这些服务需要的系统资源比所能提供的结果更多,因此并未运行。另外一些服务可能仅被评分为弱相关,然而这些服务在资源消耗方面可能如此适中,以致于它们可以得到运行而不管它们的相关度分数有如何低。(在该种类中,可以包含前面详述的有规律地执行的图像处理操作。) 用资源需求表示运行服务的成本的数据以所示出的(图15中位于标题“成本分数”下方的)数据结构来提供。该数据允许相关度与成本的对比分析得以执行。所示出的成本分数是多个数字构成的数组——每个数字与特定的资源需求相对应,例如内存利用率、CPU利用率、GPU利用率、带宽、其他成本(诸如用于与财务收费相关联的那些服务的成本)、等等。再一次,任意的0-100的分数在说明性方案中示出。尽管仅示出三个数字(内存利用率、CPU利用率、和云带宽),但是当然可以使用更多或更少的数字。相关度与成本的对比分析可以与系统授权一样简单或复杂。简单的分析是例如从相关度分数中减去组合的成本组分,从而为该数据结构中的第一个条目产生-70的结果。另一种简单的分析是例如把相关度除以合计的成本组分,从而为第一个条目产生O. 396的结果。可以为队列中的全部服务执行类似的计算,以产生借以确定各服务的排序的净分数。基于上面的第一种分析方法在图15中提供净分数栏。在简单的实施例中,直到许可给直觉计算平台的资源预算被达到时才启动服务。可以向平台授予以下资源例如,300MB的RAM内存,256千比特/秒的去往云的数据通道,50毫瓦的功率消耗,以及类似限定的关于CPU、GPU和/或其他限制性资源的预算。(这些分配可以由装置操作系统设定,并且随着其他系统功能被调用或终止而变化。)当达到这些阈值中的任何一个时,直到具体情况发生变化为止,不会再有识别代理服务被启动。尽管简单,伹是当达到所限定的资源预算中的第一个时,该方案会凌驾于全部服务之上。通常优选的是这样的方案考虑相关限制因素中的几个或全部来设法对所调用的服务进行优化。因此,如果达到256千比特/秒的云带宽限制,那么系统仍然可以启动不需要云带宽的另外的服务。在更复杂的方案中,向每个候选服务赋予与该服务相关联的不同的成本组分中的每一者所对应的品质因数分数。这可以通过上面提到的用于计算净分数的减法或除法方法等来完成。通过使用减法方法,图15中第一个列出的服务的内存利用率所对应的成本分数37可以产生数值为9的内存品质因数(即,46-37)。该服务的关于CPU利用率和云带宽的品质因数分别是-18和31。通过按照候选服务的不同的资源需求来对这些候选服务评分,可以使得对服务的选择能够更高效地利用系统资源。当新的识别代理被启动且其他识别代理终止,并且其它系统处理发生变化时,资源的自由空间(限制)会变化。这些动态限制被跟踪(图16),并且会影响启动(或终止)识别代理的处理。如果内存密集型RA完成其操作并释放出40MB的内存,那么平台可以启动一个或更多其他内存密集型应用程序以利用最近释放出的资源。(本领域技术人员将会认识到,通过选择不同的服务来优化不同资源的消耗这样的任务是线性规划方面的练习,存在着许多众所周知的方法来进行线性规划。尽管这里详述的方案比实践中可能会采用的方案简单,但是有助于说明这些概念。)返回到图15,所示出的数据结构还包括“条件”数据。一服务可能是高度相关的,并且资源可能足以运行该服务。然而,执行的先决条件可能尚未得到满足。例如,提供必需数据的另一登记代理服务可能尚未完成。或者用户(或代理软件)可能尚未批准该服务所需的花费、或者尚未同意服务的点选包装协议、等等。 —旦服务开始执行,就可以存在着允许该服务运行到完成的程式化的偏置,即使资源限制发生变化从而将合计的直觉计算平台置于其最大预算之上。不同的偏置可以与不同的服务相关联,并且对于给定服务可以与不同的资源相关联。图15示出对应于不同的限制(例如内存、CPU和云带宽)的偏置。在一些情况下,偏置可以小于100%,在这种情况下,如果该资源的可用性低于偏置数值,那么将不会启动该服务。例如,一个服务可以继续运行,直到合计的ICP带宽是其最大值的110%,然而另一服务可以在达到100%阈值时立即终止。如果服务是特定资源的低消耗使用者,那么可以允许较高的偏置。或者如果服务具有较高的相关度分数,那么可以允许较高的偏置。(偏置可以数学地根据相关度分数推导出来,诸如偏置=90+相关度分数,或者=100,取这两个值中的较大值。)这种方案允许在资源命令要求时,取决于赋给不同服务和不同限制的偏置而以可编程的方式削减服务。在一些方案中,可以允许一些服务运行,但是要用削减后的资源来运行。例如,服务的带宽需求通常可能是50千比特/秒。然而,在特定情况下,该服务的执行可以被限制于使用40千比特/秒。再一次,这是优化方面的练习,其细节会随着应用场合而变化。本地软件在一个特定实施例中,移动装置上的本地软件可以被概念化为执行六类不同的功能(不包括安装软件并向操作系统注册该软件自身)。第一类功能涉及与用户通信。这允许用户提供输入,从而指定例如用户是谁、用户对什么感兴趣、什么样的识别操作与用户相关(树叶是;车辆类型否)、等等。(用户可以预订不同的识别引擎,这取决于兴趣。)用户界面功能性还提供对硬件用户界面装置的所需支持——感测触摸屏和键盘上的输入、在显示屏上输出信息、等等。为了有效地与用户通信,合乎期望的是软件具有对用户环境的一些3D理解,例如如何组织在屏幕上呈现的2D信息,由存在着正被表现的3D领域的认识告知;以及如何理解由摄像机拍摄的2D信息,在知道其表现3D世界的情况下。这可以包括正射位块传输图元库。这会进入第二类。
第二类功能涉及总体定向、正射和对象场景解析。这些能力提供了可以帮助向对象识别操作提供信息的背景环境共同点(例如,天空在上方,该图像中的地平线向右倾斜20 第三类进入实际的像素处理,并且可以被称为关键字向量处理和打包。这是已知像素处理操作(变换、模板匹配、等等)的领域。采集像素并对其进行处理。
尽管8x8像素块在许多图像处理操作(例如,JPEG)中是为人们所熟悉的,但是该分组形式在本背景环境中所占优势较小(尽管它可以在某些情况下使用)。而是,五种类型的像素分组形式是占优势的。 第一种分组形式根本不是分组,而是全局的。例如镜头盖是否在上面?焦点的通常状态是什么?这是没有太多解析(如果有的话)的类别。 第二种分组形式是矩形区域。可以对任意数量的操作请求矩形像素块。 第三种分组形式是非矩形邻接区。 第四种分组形式是枚举的像素拼凑物。尽管仍然处于单个帧内,但是这是第二种分组和第三种分组的组合——常常有某种相干性(例如,某种度量或某种直观推断(heuristic),其表示所包含的像素之间的关系,诸如与特定识别任务的相关度)。第五种分组形式是像素的帧间采集。这些包括像素数据(常常不是帧)的时间序列。如其余分组形式那样,特定形式将会取决于应用场合而发生很大变化。这种像素处理功能分类的另一方面承认资源是有限的,并且应该以逐渐增大的量分配给看上去似乎正朝着实现自己的目标(例如识别面部的目标)前进的处理,反之亦然。由本地软件执行的第四类功能是背景环境元数据处理。这包括聚集极大种类的信息,例如由用户输入的信息、由传感器提供的信息、或者从内存中再调用的信息。“背景环境”的一个正式定义是“可以用于表征实体(被认为与用户和应用程序(包括用户和应用程序本身)之间的交互相关的人、地点或对象)的情况的任何信息。背景环境信息可以具有许多种类,包括计算背景环境(网络连接性、内存可用性、CPU争用、等等)、用户背景环境(用户概况、位置、动作、偏好、附近朋友、社交网络和境遇、等等)、物理背景环境(例如,光照、噪声水平、交通、等等)、时间背景环境(日时、日、月、季节、等等)、上述背景环境的历史、等等。用于本地软件的第五类功能是云会话管理。软件需要登记不同的基于云的服务提供商作为用于执行特定任务、执行与云的例示性双向会话(建立IP连接、管理通信流)、对远程服务提供商进行分组因特网探测(例如,提醒不久就会请求其服务)、等等的资源。用于本地软件的第六类并且是最后一类功能是识别代理管理。这些包括供识别代理和服务提供商用来向手机公布它们的输入需求、在运行时必须加载(或卸载)的它们所依赖的公共库函数、它们对其他系统组件/处理的数据及其他依赖性、它们执行共同点处理(从而可能替代其他服务提供商)的能力、关于它们对系统资源的最大利用率的信息、关于它们各自的操作阶段(参看图12的讨论)和各自发布的资源需求的细节、关于它们在资源削减的情况下的性能/行为的数据、等等的方案。该第六类功能于是基于当前情况,在给定这些参数的情况下管理识别代理,例如取决于结果和当前系统参数来提高或降低各个服务的强度。即,识别代理管理软件充当借以根据系统资源限制来调停各代理的操作的手段。示例件视觉应用稈序
一种说明性应用程序用于观察处于表面上的多个硬币并计算它们的总价值。系统应用椭圆形寻找处理(例如,霍夫算法)来定位这些硬币。这些硬币可能会彼此叠盖并且一些硬币可能只是部分可见;该算法可以确定它检测的椭圆形的每个扇区的中心——每个都对应于不同的硬币。椭圆形的轴通常应该是平行的(假定斜视图,即在图像中并不是全部硬币都被描绘为圆形)一这可以充当对程序的核对。在定位椭圆形之后,评估各硬币的直径以识别它们各自的价值。(可以对所评估的直径进行直方图分析以确保它们在预期的直径或者在预期的直径比率处聚簇。)如果这几个硬币的种类有多种,那么可以仅通过直径比率来识别各硬币,而不参考颜色或标志。一角硬币的直径是17. 91mm, 一分硬币的直径是19. 05mm ;五分硬币的直径是21. 21mm ;二角五分硬币的直径是24. 26mm。相对于一角硬币,一分硬币、五分硬币和二角五分硬币的直径比率是I. 06、I. 18和I. 35。相对于一分硬币,五分硬币和二角五分硬币的
直径比率是I. 11和I. 27。相对于五分硬币,二角五分硬币的直径比率是I. 14。这些比率全部是唯一的,并且分隔得足够开从而允许简便的辨别。如果两个硬币的直径比率是I. 14,那么较小的一定是五分硬币,另一个一定是二角五分硬币。如果两个硬币的直径比率是I. 06,那么最小的一定是一角硬币,并且另一个一定是一分硬币,等等。如果发现了其他比率,那么某些东西有差错。(应注意的是,即使硬币被描绘为椭圆形,也可以确定直径比率,因为从相同的视点观察到的椭圆形的尺寸是类似成比例的。)如果全部硬币都是同一类型,那么可以通过暴露的标志来识别它们。在一些实施例中,也可以使用颜色(例如,用于帮助区分一分硬币和一角硬币)。通过对识别出的二角五分硬币的价值、识别出的一角硬币的价值、识别出的五分硬币的价值、以及识别出的一分硬币的价值进行求总和,来确定处于表面上的硬币的总价值。可以通过适合的用户界面方案将该价值呈现或通告给用户。相关的应用程序观察一堆硬币并确定它们的原产国。每个国家的不同硬币具有唯一的一组硬币间尺寸比率。因此,如上所述的直径比率的确定可以指示该硬币集合是来自美国还是加拿大、等等。(例如,加拿大的一分硬币、五分硬币、一角硬币、二角五分硬币、和半元硬币的直径是19. 05mm、21. 2mm、18. 03mm、23. 88mm和27. 13mm,因此存在着该堆硬币是否只包含五分硬币和一分硬币的某种模糊性,但是这可在包含其他硬币的情况下得到解决。)增强环境在一些方案中,通过将一个或更多特征或对象放置在视场中,来帮助对一景象的机器视觉理解,其中对于所述一个或更多特征或对象,其参考信息是已知的(例如,尺寸、位置、角度、颜色),并且系统可以借助所述一个或更多特征或对象来理解其他特征(通过相关性)。在一个特定方案中,目标图案被包含在景象中,根据所述目标图案可以辨别出例如与观察空间内的表面之间的距离和所述表面的取向。这样的目标因此充当向摄像机系统通知距离和取向信息的信标。一种这样的目标是例如在de IpiHa的“TRIP:a Low-CostVision-Based Location System for Ubiquitous Computing,,(Personal and UbiquitousComputing, Vol. 6,No. 3,2002 年 5 月,pp. 206-219)中详述的 TRIPcode0如]pula的论文中详述的那样,(图17中所示的)目标对包括目标的半径的信息进行编码,从而允许配备有摄像机的系统确定从摄像机到目标的距离和目标的3D姿势。如果目标被放置在观察空间中的表面上(例如,在墙壁上),那么IpMla的方案允许配备有摄像机的系统理解与该墙壁之间的距离和该墙壁相对于摄像机的空间取向。TRIPcode有过各种实现方案,相继地被称为SpotCode,然后是ShotCode (并且有时候是Bango)。现在它被理解为已由0P3B.V.商业化。TRIPcode目标的美观性不适合于一些应用场合,但是非常适合于另一些应用场合。例如,可以把地毯塑造成包含TRIPcode目标作为复现的设计特征,例如跨越地毯的宽度范围在规则或不规则的位置处放置的设计特征。观察包含站在这种地毯上的人的景象的摄像机可以参考该目标来确定与人之间的距离(并且还限定出包含该地板的平面)。以类似的方式,该目标可以结合到其他材料(如壁纸、家具用的布罩、衣服、等等)的设计中。在另外一些方案中,通过用人类视觉系统不可见、但是在例如红外光谱中可见的墨水印刷TRIPcode目标,使得该TRIPcode目标的显著度较低。移动电话中使用的许多图像传感器对红外光谱非常敏感。这样的目标因此可以从所拍摄的图像数据中辨别出来,即使该目标逃避开人类的关注。 在又一些方案中,TRIPcode的存在可以以仍然允许移动电话检测到它的方式隐蔽在其他景象特征中。一种隐蔽方法依靠摄像机传感器对图像景象的周期性采样。这种采样可以在摄像机拍摄的图像中引入当人类直接检查一条目时不明显的视觉假象(例如混叠(aliasing)、莫尔效应)。一对象可以印刷有设计成引入TRIPcode目标的图案,所述TRIPcode目标在由图像传感器的多个规则间隔开的光传感器单元成像时会通过这种假象效应而显现,但是对人类观察者而言并不明显。(相同的原理也可以有利地用于进行对基于照相复制的伪造有抵抗力的检查。诸如单词VOID之类的潜像被结合到原稿设计的图形元素中。该潜像对人类观察者而言并不明显。然而,当由影印机的成像系统采样时,周期性采样使得单词VOID在影印件中浮现出来。)各种这样的技术在van Renesse的“Hidden and Scrambled Images-aReview,, (Conference on Optical Security and Counterfeit Deterrence TechniquesIV, SPIE Vol. 4677,pp. 333-348,2002)中有详述。另一种隐蔽方法依靠这样的事实,彩色印刷通常用四种墨水执行青色、品红色、黄色和黑色(CMYK)。通常,黑色材料用黑色墨水印刷。然而,黑色也可以通过叠印青色、品红色和黄色来模仿。对于人类而言,这两种技术基本上是无法区分的。然而,对于数字摄像机而言,可以很容易地辨别它们。这是因为黑色墨水通常会吸收相对大量的红外光,而青色、品红色和黄色通道则不这样。在将要显现黑色的区域中,印刷处理可以(例如,在白色基底上)应用重叠青色、品红色和黄色墨水的区域。该区域随后可以使用黑色墨水进一步叠印(或者预先印刷)有TRIPcode。对于人类观察者而言,它全部显现出黑色。然而,摄像机可以根据红外线行为而辨别出差别。即,在TRIPcode的黑色墨水区域中的点处,存在着遮掩白色基底的黑色墨水,其吸收可能从白色基底反射的任何入射的红外线照射。在另一点处(例如在TRIPcode目标外部,或者在其周边内但是白色通常会显现的地方),红外线照射穿过青色、品红色和黄色墨水,并且从白色基底被反射回到传感器。摄像机中的红色传感器对红外线照射最敏感,因此TRIPcode目标在红色通道中被区别出来。摄像机可以提供红外线照射(例如,通过一个或更多IR LED),或者环境照明可以提供足够的IR照射。(在未来的移动装置中,可以设置第二图像传感器,例如设置有尤其适合于红外检测的传感器。)刚刚描述的方案可以适合于供任何彩色印刷图像使用(不仅仅是黑色区域)。专利申请20060008112提供了用于这样做的细节。通过这样的方案,可以在视觉景象中可能会出现印刷的任何地方隐藏TRIPcode目标,从而允许通过参考这些目标来准确地测量该景象内的某些特征和对象。尽管诸如TRIPcode之类的圆形目标因为易于计算(例如在识别处于不同的椭圆形姿态的圆形的过程中易于计算)而是合乎期望的,但是也可以使用其他形状的标记。适合于确定表面的3D位置的正方形标记是Sony的CyberCode,并且被详细记述在例如Rekimoto 的“CyberCode:Designing Augmented Reality Environments with VisualTags,,(Proc. of Designing Augmented Reality Environments 2000,pp. 1-10)中。取决于特定应用场合的要求,可以使用各种其他参考标记作为替代。 在一些方案中,TRIPcode(或CyberCode)可以进一步被处理以传递数字水印数据。这可以通过上面讨论的并且在所提到的专利申请中详述的CMYK方案来完成。用于生成具有隐写数字水印数据的这种机器可读数据载体的其他方案和用于这些方案的应用程序被详细记述在专利7,152,786和专利申请20010037455中。多触摸输入、图像重新映射和其他图像处理如在别处提到的那样,用户可以轻拍原型小玩意以表达对系统正在处理的特征或信息的兴趣。用户的输入会提高该处理的优先级(例如通过指示系统应该将额外的资源应用于该努力)。这样的轻拍可以导致原型小玩意更快地成熟化为小玩意。对小玩意的轻拍也可以用于其他目的。例如,小玩意可以是以类似于AppleiPhone所普及的方式(S卩,多触摸Π)的方式、出于用户界面目的的触摸目标。先前的图像多触摸界面把图像作为无差别的整体来处理。缩放等操作是在不考虑图像中描绘的特征的情况下完成的。根据本技术另外的方面,多触摸和其他触摸屏用户界面执行的操作部分地取决于关于所显示图像的一个或更多部分表示什么的某种认识。举个简单的实例,考虑跨越一张书桌的表面分散的几个条目的倾斜角度视图。一种条目可以是硬币,其在图像帧中被描绘为椭圆形。移动装置应用前面详述的各种对象识别步骤,包括识别与潜在不同的对象相对应的图像的边缘和区域。小玩意可以显现。通过轻拍图像中硬币的位置(或与硬币相关联的小玩意),用户可以向装置告知图像将被重新映射使得硬币被表现为圆形——仿佛在俯视图中俯视书桌。(这有时被称为正射校正。)为此,合乎期望的是系统首先知道该形状是圆形。这些认识可以从几个备选源取得。例如,用户可以明确地指示该信息(例如,通过用户界面——诸如通过轻拍硬币,然后轻拍在图像的空白处呈现的圆形控制,从而指示所轻拍的对象的实际形状是圆形)。或者这种硬币可以由装置在本地识别一例如通过参考其颜色和标志(或者云处理可以提供这种识别)。或者装置可以假定从倾斜视点观察具有椭圆形形状的任何分段的图像特征实际上是圆形。(一些对象可以包括即使倾斜也能够感测到的并且指示对象的原本形状的机器可读编码。例如,QR条形码数据可以从矩形对象上辨别出,指示对象的真实形状是正方形。)等坐寸O在图像中描绘的硬币(或相应的小玩意)上轻拍可以使图像被重新映射,而不引起其他动作。然而,在另外一些实施例中,这种指令需要来自用户的一个或更多进一步的指示。例如,用户的轻拍可以使装置呈现详述可被执行的几个备选操作的(例如,图形的或听觉的)菜单。一个备选操作可以是平面重新映射。响应于这种指令,系统沿着椭圆形的短轴的维度放大所拍摄图像的尺寸,使得该短轴的长度等于椭圆形的长轴的长度。(可替换地,图像可以沿着长轴缩短,具有相似的效果。)在这样做的过程中,系统已将所描绘的对象重新映射为更接近其平面图形状,使图像的剩余部分也被重新映射。在另一方案中,作为仅在一个方向上应用缩放因子这一方案的替代,图像可以沿着两个不同的方向被缩放。在一些实施例中,可以使用剪切或者差动缩放(例如,以便解决 透视效应)。存储器可以存储借以根据倾斜视图确定关于对象的平面形状的推断的一组规则。例如,如果对象具有四个近似笔直的边,那么它可以被假定为是矩形——即使相对的两边在摄像机的视图中并不平行。如果对象在第三维度中没有明显的长度、基本上均匀地呈浅色(或许在浅色中带有一些频繁出现的深色标记,那么该对象可以被假定为是一张纸——如果GPS指示处于美国的位置,那么该张纸或许带有8. 5:11的纵横比(或者如果GPS指示处于欧洲的位置,那么该张纸或许带有I: SQRT (2)的纵横比)。在缺乏其他认识的情况下,重新映射可以采用这样的信息来实现从所描绘的对象到近似平面图的某种东西的视图变换。在一些方案中,关于图像帧中的一个分段对象的认识可以用于告知或精炼关于同一帧中的另一对象的推断。考虑描绘有最大尺寸为30像素的圆形对象、以及最大尺寸为150像素的另一对象的图像帧。后一对象可以通过一些处理而被识别为是咖啡杯。参考信息的数据存储库表明咖啡杯通常的最长尺寸是3-6"。于是前一对象可以被推断为具有大约一英寸的尺寸(而不是例如一英尺或一米左右,这可能是其他图像中描绘的圆形对象的情况)。不是只有尺寸分类才能以这种方式推断。例如,数据存储库可以包括把相关联的条目一起聚成一组的信息。轮胎和汽车。天空和树。键盘和鼠标。剃须膏和剃刀。食盐和胡椒摇瓶(有时是调味番茄酱和芥末分配瓶)。硬币和钥匙和手机和皮夹。等等。这样的关联性可以从许多来源中搜集。一个来源是来自诸如Flickr或GoogleImages之类的图像档案库的文本元数据(例如,识别在描述性元数据中具有剃刀的所有图像,从这些图像的元数据中收集所有其他项,并且按照出现率进行排序,例如保持前25%)。另一个来源是通过自然语言处理,例如通过对一个或更多文本(例如词典和百科全书)进行正向链接分析,通过辨别反向语义关系而得到扩充,如专利7,383,169中详述的那样。尺寸的认识可以以相似的方式被推断出。例如,可以将参考数据的种子集合输入到数据存储库(例如,键盘在最长的维度上大约是12-20〃,手机大约是8-12〃,汽车大约是200",等等。)随后可以从包括已知条目以及其它条目的Flickr收集图像。例如,目前Flickr具有将近200,000个用项“键盘”做标签的图像。在这些图像中,超过300个图像也用项“咖啡杯”做标签。对这些300+个图像中相似的非键盘形状的分析揭示出添加的对象的最长尺寸大致是键盘的最长尺寸的三分之一。(通过类似的分析,机器学习处理可以推断出咖啡杯的形状通常是圆柱形,并且这样的信息也可以添加到由装置参考的本地或远程的知识库。)类似于上述讨论的推断通常不会做出最终的对象识别结果。然而,这些推断使得某些识别结果比其他识别结果更可能(或更不可能),并且因此是有用的(例如在概率分类器中)。有时,图像的重新映射可以不仅仅基于图像本身。例如,图像可以是例如来自视频的图像序列中的一个图像。其他图像可以来自其他透视图,从而允许该 景象的3D模型得以生成。同样,如果装置具有立体成像器,那么可以形成3D模型。可以参考这样的3D模型来进行重新映射。类似地,通过参考地理位置数据,可以识别出来自同一大致位置的其他图像(例如,来自Flickr等),并且可以使用这些其他图像来生成3D模型或者向重新映射操作提供信息。(同样,如果Photosynth软件继续获得普及性和可获得性,那么该Photosynth软件可以提供使重新映射进行下去的丰富数据。)这种重新映射是在应用诸如OCR之类的识别算法之前可以应用于所拍摄图像的有帮助的步骤。考虑例如先前实例的书桌照片,该书桌照片还描绘出从书桌向上倾斜的电话,带有显示电话号码的LCD屏幕。由于电话的倾斜和观察角度,显示屏并不显现为矩形、而是显现为平行四边形。通过识别四边形形状,装置可以将它重新映射为矩形(例如,通过应用剪切变换)。随后可以对重新映射的图像进行OCR——识别电话屏幕上显示的字符。返回到多触摸用户界面,可以通过触摸装置屏幕上显示的两个或更多特征来启动额外的操作。一些额外的操作实现其他的重新映射操作。考虑先前的书桌实例,其描绘有从书桌表面向上倾斜的电话/LCD显示屏,以及平放的名片。由于电话显示屏相对于书桌倾斜,所以这两个承载有文字的特征处于不同的平面。来自单个图像的两个OCR操作需要折衷。如果用户触摸两个分段特征(或者与这两者相对应的小玩意),那么装置评估所选择的特征的几何形状。然后,装置对电话计算垂直于LCD显示屏的表观平面延伸的矢量的方向,并且同样计算从名片的表面垂直延伸的矢量。随后可以对这两个矢量求平均,以产生中间矢量方向。随后可以将图像帧重新映射成使得计算出的中间矢量笔直向上延伸。在这种情况下,已经对图像进行了变换,从而得到处于这样的平面上的平面图该平面所呈的角度是LCD显示屏的平面和名片的平面之间的角度。这种重新映射的图像呈现被认为是来自位于不同平面的两个对象的OCR文本的最佳折衷(假定每个对象上的文本在重新映射的图像上具有相似的尺寸)。相似的图像变换可以基于使用多触摸界面从图像中选择的三个或更多特征。考虑用户处于历史古迹,周围有解释性标志。这些标记处于不同的平面中。用户的装置拍摄描绘三个标记的一帧图像,并且从这些标记的边缘和/或其他特征中识别出这些标记作为潜在感兴趣的离散对象。用户触摸显示器上的全部三个标记(或者相应的小玩意,一起地触摸或顺序地触摸)。通过使用类似刚刚描述的程序的程序,三个标记的平面得以确定,然后生成图像被重新映射到的折衷的观察透视图一从与平均的标志平面垂直的方向观察该景象。作为从折衷的观察透视图呈现三个标记这一方案的替代,备选方法是分别对每个标记进行重新映射,使得其出现在平面图中。这可以通过将单个图像转换成三个不同的图像(每个图像利用不同的重新映射来生成)来完成。或者包含不同标记的像素可以在同一图像帧内被不同地重新映射(使附近的图像扭曲从而容纳重新整型的、可能被放大的标记图示)。在又一方案中,触摸三个标记(同时地或者顺序地)会启动这样的操作,其涉及从诸如Flickr或Photosynth之类的图像档案库获得指定对象的其他图像。(用户可以与装置上的用户界面进行交互,以使用户的意图变清晰,例如“用来自Flickr的其他像素数据进行扩充”。)这些其他图像可以通过与所拍摄图像的姿势相似性(例如,纬度/经度,加上方位)或通过其他方式(例如,其他元数据对应性,模式匹配、等等)而得到识别。可以从这些其他来源处理这些标记的更高分辩率或者聚焦更锐利的图像。这些摘选出的标记可以适当地被缩放和水平移位,然后被混合并粘贴到用户所拍摄的图像帧中——或许如上面详述的那样被处理过(例如,被重新映射到折衷的图像平面上,被分别重新映射一或许被分别重新映射到3个不同的图像中或者合成照片中、等等,所述合成照片被扭曲从而容纳重新整型的摘选出的标记)。 在刚刚详述的方案中,对所拍摄的图像中可见的阴影的分析允许装置从单个帧中获得关于景象的某些3D认识(例如,对象的深度和姿势)。该认识可以帮助向上面详述的任何操作提供信息。正如对图像(或摘选)进行重新映射可以帮助进行OCR那样,它也可以帮助决定应该启动什么样的其他识别代理。在图像中轻拍两个特征(或小玩意)可以启动一处理以确定所描绘的对象之间的空间关系。在NASCAR比赛的摄像机视图中,小玩意可以叠盖在不同的赛车上并跟踪赛车的移动。通过轻拍用于与赛车相连的小玩意(或者轻拍所描绘的赛车本身),装置可以获得每个赛车的位置数据。这可以用来自取景器的透视图的相对值来确定,例如通过从赛车在图像帧中的缩放比例和位置推断赛车的位置(在知道摄像机光学系统的细节和赛车的真实尺寸的情况下)。或者装置可以链接到一个或更多跟踪赛车的实时地理位置的万维网资源,例如根据所述实时地理位置,用户装置可以报告赛车之间的间隙是八英寸并且正在靠拢。(如在前面的实例中那样,该特定操作可以在用户轻拍屏幕时从由几个可能的操作构成的菜单中选择。)作为简单地轻拍小玩意这一方案的替代,进一步的改进涉及在屏幕上拖动一个或更多小玩意。它们可以被拖动到彼此上,或者拖动到屏幕的一区域上,由此用户可以告知期望的动作或询问。在具有几个面部的图像中,用户可以将两个对应的小玩意拖动到第三个小玩意上。这可以指示分群操作,例如所指示的人具有某种社交关系。(关于该关系的更多细节可以由用户使用文本输入来输入,或者通过语音识别由口述的文本输入。)在网络图的意义上,在表示两个个体的数据对象之间建立链路。该关系可以影响其他装置处理操作如何处理所指示的个体。可替换地,全部三个小玩意可以拖动到图像帧中的新位置。该新位置可以表示与分群相关联的操作或属性(或者是推断出的(例如,背景环境),或者由用户输入明示)。特征代理小玩意的另一种交互式应用是对图像进行编辑。考虑图像含有三个面部两个朋友和一个陌生人。用户可能想要将该图像发布到在线储存库(Facebook),但是可能想先去除陌生人。为此可以操纵小玩意。Adobe Photoshop CS4引入了被称为智能缩放的特征,它在之前可从诸如rsizKdoOcom之类的在线站点获知。(例如,用鼠标绘出的边界框)标示出将要保存的图像区域,然后缩小或删除(例如,具有多余特征的)其他区域。图像处理算法使保存的区域保持不变,并且将它们与先前具有多余特征的编辑过的区域混合。在本系统中,在处理一帧图像以生成与辨别出的特征相对应的小玩意之后,用户可以执行一系列手势,指示将要删除一个特征(例如,陌生人)、并且将要保存其他两个特征(例如,两个朋友)。例如,用户可以触摸不想要的小玩意,并将手指扫到显示屏的底部边缘以指示相应的视觉特征应该从图像中去除。(小玩意可以跟随手指,或者不跟随手指。)然后用户可以双击每个朋友小玩意以指示将要保存它们。另一手势会唤出一菜单,用户从该菜单中指示已经输入了全部编辑手势。然后处理器根据用户的指示来编辑图像。如果编辑的图像被证明不令人满意,那么“取消”手势(例如,用手指在屏幕上划出逆时针半圆轨迹)可 以撤销该编辑,并且用户可以尝试另一编辑。(系统可以被设置在这样的模式中通过屏幕上的手势(例如用手指划出字母“e”的轨迹)、或者通过从菜单选择、或者通过其它方式接收编辑小玩意手势。)由多次小玩意轻拍构成的序列的顺序可以把关于用户意图的信息传递给系统,并引出相应的处理。考虑一游客在新城镇中观看介绍各种兴趣点、并且带有每个旅游胜地(例如,埃菲尔铁塔、凯旋门、卢浮宫、等等)的照片的标志。用户的装置可以识别这些照片中的一些或全部,并呈现与每个描绘的旅游胜地相对应的小玩意。按特定顺序触摸这些小玩意可以指示装置获得按轻拍的顺序去往所轻拍的旅游胜地的行走方向。或者可以使得装置为每个旅游胜地取来Wikipedia条目并按指示的顺序呈现这些Wikipedia条目。由于特征代理小玩意与特定对象或图像特征相关联,所以这些特征代理小玩意在被轻拍或者被包含在手势中时可以具有取决于它们所对应的对象/特征的响应。即,对手势的响应可以随与所涉及的小玩意相关联的元数据而变。例如,在对应于一个人的小玩意上轻拍可以意味着与在对应于雕像或餐馆的小玩意上轻拍的情况不同的某事(或者会唤出不同的可用操作的菜单)。(例如,在前者上轻拍可以引出例如来自Facebook的该人的名字和社交概况的显示或通告;在第二者上轻拍可以唤出关于该雕像或其雕刻家的Wikipedia信息;在后者上轻拍可以得到该餐馆的菜单和关于任何当前促销的信息。)同样,涉及在两个或更多小玩意上轻拍的手势具有的含义也可以取决于所轻拍的小玩意表示什么。随着时间,跨越不同的小玩意而总体保持一致的手势词典可以得到标准化。例如,轻拍一次可以唤出与小玩意的类型相对应的特定类型的介绍信息(例如,如果轻拍与人相关联的小玩意,那么唤出名字和概况;如果轻拍与建筑物相关联的小玩意,那么唤出地址和办公室目录;如果轻拍用于历史古迹的小玩意,那么唤出Wikipedia页面;如果轻拍用于零售产品的小玩意,那么唤出产品信息,等等)。轻拍两次可以唤出例如四个最频繁调用的操作的精华菜单,同样被裁制成适合于相应的对象/特征。对小玩意的触摸和手指在该位置的摆动可以启动另一响应一诸如具有滚动条的完整选项菜单的显示。再一次抖动可以使该菜单收起。关于架构的注释本说明书详述了许多特征。尽管各实现方案可以利用这些特征的子集来实现,但是这些实现方案距优选方案还有一点距离。实现更丰富而不是较稀少的一组特征的原因在下面的讨论中阐述。示例性的软件框架使用各种组件来支持在智能手机上运行的视觉应用程序I.屏幕是实时更改的摄像机图像,上面叠盖有动态图标(小玩意),所述动态图标可以附着在图像的一部分上并且同时充当用于立即发生的(可能的)多个动作的价值显示器和控制点。屏幕也是有价值的可货币化的广告空间(以类似于Google的搜索页面的方 式)——正好处在用户关注的焦点上。2.用于装置的许多应用程序处理摄像机图像的实时序列,而不仅仅是处理“快照”。在许多情况下,需要复杂的图像判断,尽管响应性保持一定优先级。3.实际应用程序通常与所显示的小玩意和显示器所显示的当前可见“景象”相关联,从而允许用户交互成为这些应用程序的所有级别中的普通一部分。4.基本的一组图像特征提取功能可以在背景中运行,从而允许可见景象的特征一直都可被各应用程序利用。5.合乎期望的是,各个单独的应用程序不被允许“贪心攫取”系统资源,因为许多应用程序的有用性会随着可见景象的变化而盛衰,因此不止一个应用程序常常会立即处于活跃状态。(这通常需要多重任务处理,具有适合的分派能力以保持足够活跃从而有用的应用程序。)6.应用程序可以设计成多层,使相对低负荷的功能监视景象数据或用户需求,使更资源密集的功能在适当的时候被调用。分派方案可以支持该代码结构。7.许多应用程序可以包括基于云的部分来执行超出装置本身的实际能力的操作。再一次,分派方案可以支持该能力。8.应用程序常常需要用于发布和访问相互有用的数据的方法(例如,黑板)。下面以宽松无序的方式描述一些相互关系,所述相互关系可以使上述的各方面部分成为一个整体(而不仅仅是合乎期望的个体)。I.参考实时景象的应用程序通常会依靠从全部(或者至少许多)帧中高效地提取基本图像特征——因此使实时特征可被获得是一个重要考虑因素(即使对于某些应用程序,可能不需要它)。2.为了允许高效的应用程序开发和测试以及为了在能力各不相同的多个装置上支持这些应用程序,将任何应用程序的重要部分任选地放置“在云中”的能力会变得几乎是强制性的。许多益处产生于这种能力。3.许多应用程序会受益于超出未受协助的软件的当前能力的识别能力。这些应用程序会要求与用户的交互是有效的。此外,移动装置通常会请求用户交互,并且只有当GUI支持该需求时,一致的友好的交互才是可能的。4.在具有有限的不可改变的资源的装置上支持复杂的应用程序需要来自软件架构的充分支持。把PC风格的应用程序在不经过细致的重新设计的情况下硬塞进这些装置中通常是不令人满意的。分层式软件的多重任务处理会是在这种装置受限制的环境中提供邀请用户体验的重要组件。5.以高效的方式向多个应用程序提供图像信息,最好是通过只产生一次信息、并允许该信息按照使信息访问和缓存无效最少化的方式由每个需要它的应用程序使用来完成。“黑板”数据结构是实现该高效率的一种方式。因此,尽管所详述的技术的一些方面各自单独是有用的,但是在组合中它们的最大效用才会实现。
关于处理、使用模型、罗盘和会话的更多说明如上所述,一些实现方案在自由运行的状态下拍摄图像。如果有限的电池电力是一个限制因素(如目前的通常情况那样),那么系统可以在某些实施例中以高选择性模式处理该连续的图像流——很少将装置的计算能力的显著部分(例如,10%或50%)应用于该数据的分析。而是,系统在低耗电状态下工作,例如执行没有显著功率成本的操作,和/或每秒钟或每分钟只检查(例如每秒钟拍摄的15、24或30个帧中的)几个帧。只有在(A)初始的低级处理指示出图像中描绘的对象可以得到准确识别的高概率,并且(B)背景环境指示出这种对象的识别会与用户相关的高概率的情况下,系统才会提速为使功率消耗增大的第二模式。在该第二模式中,功率消耗可以大于第一模式中的功率消耗的两倍、或10倍、100倍、1000倍或更多倍。(上面提到的概率可以基于计算出的取决于特定实现方案的数值分数。只有当成功的对象识别以及与用户的相关度所对应的这些分数超过各自的阈值(或者按照公式组合起来从而超过单个阈值)时,系统才会切换为第二模式。)当然,如果用户明确地或暗示地告知兴趣或鼓励,或者如果背景环境有指示,那么系统也可以从第一模式切换为第二模式。用于某些增强现实(AR)应用程序的新兴的使用模型(例如,用户被预期在拿出智能电话并全神贯注于它不断变化的显示(例如,以便导航到期望的咖啡店或地铁车站)的同时沿着城市的街道行走)是考虑不周的。许多备选者似乎是优选的。一个备选者是通过耳机或扬声器以可听的方式提供引导。胜于提供语音引导,可以利用更精巧的听觉线索,从而允许用户更加注意其他听觉输入(如汽车喇叭声或同伴的谈话)。一种听觉线索可以是重复率或频率发生变化从而告知用户是否在正确的方向上行走并靠近期望的目的地的偶尔的音调或滴答声。如果用户在十字路口尝试做出错误的转弯、或者远离目的地移动而不是朝向目的地移动,那么样式可以以独特的方式变化。一个特定方案采用类似盖革式计数器的声音效果,使滴答声的稀疏样式随着用户朝向期望的目的地前进而变得更频繁,并且在用户从正确的方向转开的情况下降低频繁度。(在一个特定实施例中,听觉反馈的音量随着用户的运动而变化。如果用户暂停(例如在交通信号灯处),那么可以增大音量,从而允许用户面向不同的方向并通过音频反馈识别前进的方向。一旦用户恢复行走,那么音频音量可以变小,直到用户再一次暂停。音量或其他用户反馈强度水平因此可以在用户按照导航方向前进时减小,并且在用户暂停或从预期路径转向时增大。)运动可以以各种方式检测,诸如通过加速计输出、通过变化的GPS坐标、通过摄像机感测到的变化的景象、等等。作为听觉反馈的替代,上述方案可以采用振动反馈。移动装置中的磁力计可以在这些实现方案中用来感测方向。然而,移动装置可以以任意方式相对于用户和用户向前行进的方向而被定向。如果移动装置被夹在面向北的用户的腰带中,那么磁力计可以指示出装置指向北方、或南方、或任何其他方向一取决于装置如何被定位在腰带上。为了解决该问题,该装置可以辨别应用于磁力计输出的校正因子,以便正确地指示出用户正面向的方向。例如,该装置可以通过参考偶尔的GPS测量值来感测用户沿着其移动的方向矢量。如果在十秒钟内用户的GPS坐标的纬度增大、但是经度保持恒定,那么用户已经向北移动(推测起来可能是面向北方方向向北移动)。该装置可以在该时期期间注意磁力计输出。如果装置被定位成使得其磁力计一直指示“东”,而用户明显面向北方,那么可以辨别出90度的校正因子。此后,该装置知道从磁力计指示的方向中减去九十度以确定用户正面向的方向一直到这种分析指示出应该应用不同的校正。(这种技术可广泛地应用,并且不限于这里详述的特定方案。)当然,这种方法不仅对行走适用,而且对自行车和其他交通方式也适用。尽管详述的方案假定图像是在它被拍摄到时进行分析的、并且假定拍摄是由用户装置执行的,但是这两者都不是必需的。相同的处理可以对先前拍摄的和/或在其它地方 拍摄的图像(或音频)执行。例如,用户的装置可以处理一小时或一星期以前由例如城市停车场中的公共摄像机拍摄的图像。其他图像源包括Flickr和其他这样的公共图像储存库、YouTube和其他视频站点、通过在公共万维网上爬行而收集的图像、等等。(优选的是,将处理软件设计成使得其能够可交替地处理实时图像数据和已存图像数据(例如实时的静止图像或图像流,以及先前记录的数据文件)。这允许看上去不同的用户应用程序采用相同的内核。对于软件设计者而言,这也是有用的,因为其允许实时图像应用程序利用已知的图像或序列被重复测试。)许多人更喜欢以转录的文本形式回顾语音邮件一略读相关内容,而不是收听散漫的谈话者的每段发言。以类似的方式,基于视觉图像序列的结果可以比拍摄该序列所花费的时间更快速地由许多用户回顾和理解。考虑下一代移动装置包含在头饰上安装的摄像机,由沿着城市街区散步的用户佩戴。在跨越该街区期间,摄像机系统可能会收集到20或更多秒钟的视频。作为(在行走的同时)分散注意力地察看给出基于图像的结果的叠盖的AR呈现这一方案的替代,用户可以将注意力集中于避开步行者和障碍物的即时任务。同时,系统可以分析所拍摄的图像并存储结果信息以供之后回顾。(或者,作为在行走的同时拍摄图像这一方案的替代,用户可以暂停、摆动配备有摄像机的智能电话以拍摄全景图像、然后将智能电话放回到口袋或钱包中。)(结果信息可以具有任何形式,例如图像中的对象的识别结果、与这些对象相关地获得的音频/视频/文本信息、关于响应于视觉刺激而采取的其它动作的数据、等等。)在方便的时候,用户可以看一下智能电话屏幕(或者激活眼镜上的平视显示器)来回顾基于所拍摄的帧序列产生的结果。这种回顾可以仅涉及响应信息的呈现,和/或可以包括各个响应所基于的拍摄图像。(在响应基于对象的情况下,对象可能出现在该序列的几个帧中。然而,该响应只需要针对这些帧中的一个帧呈现。)对结果的回顾可以由装置以标准化的呈现方式指引,或者可以由用户指引。在后一种情况下,用户可以采用用户界面控制来航行通过结果数据(可以与图像数据相关联地呈现,或者不这样)。一种用户界面是由Apple iPhone家族普及的为人们所熟悉的触摸界面。例如,用户可以扫过一景象序列(例如以I或5秒钟、或者I或5分钟为间隔拍摄的多个帧),每个景象都叠盖有可被轻拍从而呈现附加信息的小玩意。另一种导航控制是图形的或物理的往复式控制(从诸如Adobe Premier之类的视频编辑产品而为人们熟悉),允许用户对图像和/或响应的序列进行向前加速、暂停、或倒退。一些或全部结果信息可以以听觉形式呈现,而不是以视觉形式呈现。用户界面可以是语音响应式的,而不是例如触摸响应式的。尽管已经以视频方式收集到视觉信息,但是用户可能会发现以静态景象方式回顾该信息能够提供最多信息。这些静态帧通常由用户选择,但是可以由装置预先过滤,例如略去低品质的帧(例如,模糊的帧、或者被前景中的障碍物遮蔽、或者不具有很多信息内容的帧)。·装置获得的响应的导航不需要横跨整个序列(例如,显示每个图像帧或每个响应)。一些模式可以向前跳过一些信息,例如仅呈现与每两帧中的第二帧、或者每十帧中的第十帧、或者每个帧数量或帧时间的某个其它间隔的帧中的最后一帧相对应的响应(和/或图像)。或者回顾可以基于突出性或内容而向前跳跃。例如,不具有任何识别出的特征或相应的响应的部分序列可以被全部跳过。具有一个或几个识别出的特征(或其他响应数据)的图像可以呈现较短的时间。具有许多识别出的特征(或其他响应数据)的图像可以呈现较长的时间。用户界面可以呈现用户借以设定回顾的整体速度(例如,使得花费30秒钟拍摄的序列可以在十秒钟、或20、或30或60秒钟等内得到回顾)的控制。用户界面还可以提供用户借以暂停任何回顾从而允许进一步研究或交互、或者请求装置对特定的描绘特征进行进一步分析并报告的控制。响应信息可以按照与图像被拍摄的顺序相对应的顺序、或者相反的顺序(最新近者优先)回顾,或者可以基于估算出的与用户的相关度来排序、或以非时间先后顺序的某种其他方式来排序。这种交互和分析可以被认为是采用基于会话的构造。用户可以在图像序列的中间开始回顾,并向前或向后穿越(连续地,或者跳来跳去)。与实时查看结果相对比,这种会话方案的一个优点是后来获取的图像可以帮助告知对先前获取的图像的理解。只举一个实例来说,人的脸部可能会在帧10中被揭示出来(并且使用面部识别技术得以识别),而帧5可能只显示出这个人的头部的背面。而通过分析作为集合的图像,这个人可以在帧5中得到正确地标注,并且对帧5的景象的其他理解可以基于这样的认识。相反,如果景象分析仅仅基于当前帧和前面的帧,那么这个人在帧5中将是匿名的。关于视觉操作和相关概念的更多说明因为所详述的系统能够在装置上的资源和“云”之间动态地分配期望的任务,所以所详述的系统非常适合于在存储和计算资源有限的背景环境中优化应用程序响应。对于复杂的任务(如确认钞票的面额),人们可以把整个任务提交给具有最高时间效率或成本效率的提供商。如果用户想要识别美国钞票、并且找到了能够完成该任务的外部提供商(例如投标人),那么高级别的任务可以在云中执行。为了提高效率,云服务提供商可以使用由装置上执行的子任务(例如处理图像数据以使所需的外部带宽最小化,或者对图像数据进行过滤以便去除使个人可被识别出来的数据或无关数据)所提取的图像特征数据。(这种本地处理的数据也可以同时处于可供其他本地和远程任务利用的状态。)在一些方案中,本地装置不知道外部提供商进行的处理的细节,本地装置仅被通知所需的输入数据的类型和格式以及将被提供的输出数据的类型/格式。在另一些方案中,提供商公布关于在执行其处理的过程中所应用的特定算法/分析的信息,使得本地装置能够在备选提供商之间做选择时考虑该信息。在计算模型聚焦于始终能够在装置上执行的某些任务的意义上,这些基本操作会被裁制成适合于为各装置预见到的可能需要的云应用程序的类型。例如,如果应用程序需要钞票或其他文件的具有特定分辨率、对比度和覆盖率的图像,那么所提供的“图像获取”功能将会需要匹配能力。通常,自顶向下的思维提供了装置所要提供的一些非常具体的低级特征和能力。在这一点上,设计者将会集思广益一点。这些低级特征和能力会建议什么样的更有用的特征或能力? 一旦已经编辑出这种通常有用的能力的列表,就可以选择一套基本操作并预作安排以使内存和功率需求最小化。 作为旁白,Unix已经长期利用能够使中间存储最少化的“过滤器链”。为了执行由多个变换构成的序列,那么对每个步骤提供可级联的“过滤器”。例如,假定变换A->B实际上是序列AI opl I op2 I op3>B如果每个步骤都要将一条目变为同样或相似尺寸的新条目,并且假定A在结束时仍然可获得,那么内存需求是尺寸(A) +尺寸(B)+2个缓冲器,每个缓冲器通常比完整对象尺寸小得多、并且在操作完成时被释放。例如,复杂的本地变换可以通过以这种方式组合一些简单的本地操作来获得。存储量和所执行的操作次数都可以得到减少,从而节省时间、功率或者时间和功率这两者。自然,至少一些应用程序被构想为用短图像序列作为输入。系统设计可以通过提供短的、或许是长度固定(例如,三或四或40个帧)的图像序列缓冲器来支持这种想法,所述图像序列缓冲器是每个图像获取操作的目的地。变化的应用程序需求可以通过提供各种向缓冲器写入的方式(插入一个或更多新图像FIFO;—个或更多新图像经由过滤器(最小、最大、平均、…)被组合起来,然后插入FIFO ;—个或更多新图像与对应的当前缓冲器元素经由随后插入的过滤器被组合起来,等等)来支持。如果图像序列由以特定方式填充的固定尺寸缓冲器表示,那么从一序列中提取图像的操作会由从缓冲器中提取图像的操作替代。每个这样的提取操作可以从缓冲器中选择一组图像,并经由过滤器将它们组合起来以形成所提取的图像。在提取之后,缓冲器可以保持不变,可以去除一个或更多图像,或者可以使它的一些图像通过基本图像操作而得到更新。存在着至少三种类型的图像子区域,它们通常在模式识别中被使用。最通常的只是一组提取出的点,这些点的几何关系原封未动,通常是作为一系列点或行片段。下一种是图像的连通区域,或许作为一系列连续的行片段。最后一种是矩形子图像,或许作为像素值的阵列和在图像内的偏移量。在已经决定这些特征类型中要支持的一个或更多特征类型的情况下,可以关于效率或通用性来选择表示形式——例如,位于图像上任何地方的“I维”曲线只是一个像素序列,并且因此是一种斑点。因此,两者都可以使用相同的表示形式,因此所有相同的支持功能(内存管理等)也可以使用相同的表示形式。一旦选定了表示形式,任何斑点“提取”都可能是单一的两步骤操作。第一步定义斑点“主体”,第二步从图像中复制像素值到它们对应的斑点位置。(这可以是“过滤器”操作,并且可以模仿产生图像而且适用于静态图像的任何过滤器操作序列。)即使对于图像,对处理的“拍卖”过程也可以涉及使得各操作可被用于内部格式与适当的外部格式之间的转换。对于斑点和其他特征,相当多种类的格式转换可能会得到支持。或许有用的是,从图像处理或计算机视觉包的“正常”讨论离题一点,从而返回到可在详述的方案中运行的应用程序、以及所涉及的(非典型)限制和自由度的本质。例如,尽管一些任务将会由直接的用户动作“触发”,但是另外一些任务可以简单地在适当的时候被启动并且预期会触发其自身。即,用户可能将智能电话瞄准停车场并触发“找到我的车”应用程序,该应用程序会快速拍摄一张图像并设法分析它。更可能地,用户更喜欢触发应用程序,然后在停车场中徘徊,到处摇动摄像机镜头,直到装置告知汽车已经得到识别。然后显示器可以呈现从用户的当前位置拍摄的图像,使汽车加亮显示。 尽管这种应用程序可能会变得普及或者可能不会变得普及,但是很可能许多应用程序会包含这样的处理循环图像被获取、采样并检查可能存在的目标,检测到该目标会触发“真实的”应用程序,该应用程序会带来更多的计算能力以对候选图像施加作用。该处理继续进行,直到应用程序和用户同意该处理已经成功,或者明显未成功会使用户终止它。合乎期望的是,“试探性的检测”循环应该能够仅在摄像机上运行,并且任何外部资源仅当存在着希望这些外部资源可能有用的原因时才被调入。另一种应用程序用于跟踪对象。这里,已知类型的对象已经被定位(不管是如何被定位的),此后获取到一连串图像,并且该对象的新位置被确定并指示出来,直到该应用程序被终止或者对象消失。在这种情况下,应用程序可能使用外部资源来在最初定位该对象,并且非常可能会使用这些外部资源来使已知的检测模式专门用于已经检测到的特定实例,而随后的使用新模式实例的“跟踪”应用程序合乎期望地在手机上不受协助地运行。(或许这种应用程序会帮助在运动场上留意一个小孩。)对于一些应用程序,模式识别任务可能是相当粗略的——或许是跟踪帧序列中的一块蓝色(例如,毛线衫),而在另外一些应用程序中模式识别任务可能是高度复杂的(例如,鉴定钞票)。很可能的是,相当少数量的控制循环(类似上面提到的两种控制循环)对于大量的简单应用程序而言是足够的。它们的不同之处在于所提取的特征、所采用的模式匹配技术、以及所求助的外部资源(如果有的话)的特性。如上所示,至少一些模式识别应用程序可以在基本的移动装置上天然地运行。并不是所有的模式识别方法都适合于这些受限制的平台。可能性包括简单模板匹配,尤其是与非常小的模板或使用非常小的元素的合成模板;霍夫式匹配,对于所检测的参数有适度的分辨率要求;以及神经网络检测。应注意的是,对该神经网络进行训练可能会需要外部资源,但是应用该训练可以在本地完成,尤其是在可以采用DSP或图形芯片的情况下。采用大型数据库查找或者过于计算密集的任何检测技术(例如N空间最近邻居)或许最好使用外部资源来完成。关于聚簇的更多说明如前所述,聚簇是指用于将像素群识别为彼此相关的处理。一种特定方法是利用“共同的命运”(例如共同拥有共同的运动)使各场景条目分群。另一种方法依赖多阈值或尺度空间树。数据结构可以存储表示借以识别聚簇的方法的符号标签。共同运动方法考虑点/特征在图像之间的2D运动。运动可以是例如,几乎相同的位移,或者沿着图像方向的几乎线性的位移,或者绕着图像点的几乎共同的旋转。多阈值树法可以用于使图像内的呈树结构的嵌套斑点相互关联。图20A和20B是说明性的。简要地,对图像(或摘选)进行阈值处理——检查每个像素值以确定其满足阈值还是超过阈值。最初,阈值可以被设定为黑色。每个像素都符合该标准。然后升高阈值。图像的一些部分开始不满足阈值测试。在阈值测试得到满足的地方会出现一些区域(斑点)。最终,阈值达到明亮(高)级别。只剩下一些小区域仍然能通过该测试。如图20A和20B所示,整个图像都通过黑色阈值。在暗阈值下,单个斑点(矩形)满足该测试。随着阈值的增大,两个椭圆形斑点区域区分开来。继续将阈值升高到明亮值会使第一区域分成两个明亮的椭圆形,并且第二区域转变成单个小明亮区域。
对照这种变化的阈值对像素值进行测试可提供一种快速的检查方法来识别图像帧内相关的像素聚簇。在实际的实现方案中,图像首先可以利用高斯或其他轻微模糊来处理以防止轻微的噪声伪像不适当地影响结果。(该方法的变型可以充当边缘检测器。例如,如果尽管阈值升高了几个值,多个斑点之一的轮廓仍保持大体固定,那么该轮廓被辨别为边缘。边缘的强度由使轮廓基本上保持固定的阈值范围表示。)尽管详述了对照亮度值进行阈值处理,但是也可以类似地对照其他阈值度量(例如颜色、纹理度、等等)来进行比较。通过这种方法识别出的聚簇可以充当用于其他数据(如图像特征和关键字向量)的组织构造。例如,一种用于识别从图像数据中提取出的特征/关键字向量相互关联的方法是识别包含这些特征/关键字向量的最小阈值斑点。该斑点越小,这些特征可能就更相关。类似地,如果第一和第二特征已知是相关的,那么其他相关的特征可以通过寻找包含前两个特征的最小阈值斑点来估计。该斑点内的任何其他特征也可能与第一和第二特征相关。自由度和限制因素一些模式识别方法的实用性取决于平台的在应用程序请求时执行浮点操作或调用DSP的矢量操作的能力。更一般地,在直觉计算平台上存在着许多具体的自由度和限制因素。自由度包括任务利用装置外的资源(不管是处于附近的通信辅助装置上,还是处于云中)、从而允许“不可能”在装置上运行的应用程序看上去似乎能这样做的能力。限制因素包括有限的CPU功率,有限的可用内存,以及应用程序在资源不断变化的情况下需要继续进行的需求。例如,可用的内存可能不仅会受到限制,而且可能会突然被减少(例如在开始通电话时)、然后在更高优先级的应用程序终止时再次变得可用。速度也是限制因素——通常与内存的关系紧张。对迅速响应的期望可能会甚至把寻常的应用程序向上推到靠近内存上限。在特征表示方面,内存限制会鼓励维持有序的元素列表(内存需求与条目数成比例)而不是数值的明确阵列(内存需求与可能的参数的数量成比例)。操作序列可能会使用最少的缓冲器(如上所述)而不是完整的中间图像。长的图像序列可能会通过短的实际序列以及一个或更多平均结果来“伪造”。一些“标准”图像特征(如Canny边缘算子)对于通常的用途而言可能过于资源密集。然而,在以前关于FFT处理也有过同样的评价,但是智能电话应用程序正越来越多地采用该操作。适合于考虑的装置内处理在上述限制因素的背景环境中,下面的概要详述了可包含在本地装置的指令系统(repertoire)中的广泛有用的操作的种类I.任务相关操作
A.与图像相关i.图像序列操作a)从序列中提取图像b)从序列范围中生成图像c)贯穿该序列跟踪特征或ROIii.图像变换a)逐点重新映射b)仿射变换c)本地操作例如边缘、本地平均、…d) FFT或相关操作iii.从图像中提取视觉特征a) 2D 特征b) ID 特征c)近乎3D的特征d)完整图像_>R0I列表e)非本地特征(颜色直方图、…)f)缩放、旋转不变强度特征iv.特征操纵a)来自2D特征的2D特征13)10到10、等等c)来自2D特征的ID特征V.用户界面图像反馈(例如,在图像上叠盖与标签相关的符号)B.模式识别i.从一组特征集合中提取图案ii.使序列、图像或特征集合与标签相关联iii.从特征集合中“识别”标签或标签集合iv.从较简单的一组“识别出的”标签中“识别”合成的或复杂的标签C.与应用程序相关的通信i.从系统状态中提取必要功能的列表
ii.广播对投标的请求——收集响应iii.发送精炼出的数据,接收外包结果II.与动作相关的操作(许多操作将准备好存在于基本系统动作中)i.激活/停用系统功能ii.产生/消耗系统消息iii.检测该系统状态iv.使系统转变到新状态V.维持待决的、活跃的、和已完成的动作的队列 用户体验和用户界面本技术的一个特定实施例允许未经训练的用户通过使用移动装置发现关于他所处环境(和/或关于他所处环境中的物体)的信息,而无需决定使用哪些工具,同时该特定实施例提供了在期望的任何时间和地点继续进行被中断的发现体验的能力。读者将会认识到的是,现有的系统(如iPhone)无法满足这种需求。例如,用户必须决定应该启动数千个不同的iPhone应用程序中的哪一个(哪些)来提供所期望的特定类型的信息。并且,如果在指引操作时用户被中断,那么就没有办法在后来的时间或地点继续该发现处理。即,用户必须在与物体或环境交互时的时间点经历该发现过程。无法“保存”该体验以便在之后探查或共享。图19示出具有说明性用户界面的智能电话100,该说明性用户界面包含屏幕102和发现按钮103。发现按钮103是被硬接线或者被编程为使智能电话起动其发现模式(分析输入的刺激以辨别含义和/或信息)。(在一些模态中,智能电话始终分析这种刺激,并且不需要按钮动作。)所绘出的屏幕102具有顶部长方格部分104和下部长方格部分106。两个长方格的相对大小由滑条108控制,该滑条108将所绘出的两个长方格分开。滑条108可以使用为图形用户界面设计者所熟悉的构造,由用户拖动从而使顶部长方格更大或者使底部长方格更大。说明性的底部长方格106用来呈现空间信息(如地图、图像、GIS层、等等)。这可以被称为地理位置长方格,尽管这不应该被解释为是对其功能性进行限制。说明性的顶部长方格104在下面的讨论中被称为传感器(尽管这同样不是限制性的)。在所示的模式中,该长方格呈现音频信息,即听觉场景可视化。然而,在Π上呈现借以把该顶部长方格切换成呈现视觉信息(在这种情况下在按钮上于是显示音频(AUDIO),从而允许用户切换回来)的按钮131。其他类型的传感器数据(如磁力计、加速计、等等)也可以呈现在该长方格中。从顶部长方格开始,智能电话中的一个或更多音频传感器(麦克风)侦听音频环境。讲话者/语音识别软件分析捕获的音频,以便试图识别出讲话的人并辨别所讲的话。如果实现匹配(使用例如存储在本地或云中的讲话者表征数据),那么沿着显示器的边缘呈现与识别出的讲话者相对应的图标110。如果智能电话可以使用识别出的讲话者的所存储的图像IlOa (例如,来自用户的电话簿或来自Facebook),那么该图像可以用作图标。如果不能使用图像110a,则可以采用默认图标110b。(如果识别软件能够做出具有规定置信度的性别确定,则可以对男性和女性讲话者采用不同的默认图标。)所绘出的Π示出已经检测到两个讲话者,尽管在其他情况下可能会存在更多或更少的讲话者。除了语音识别之外,诸如水印检测和指纹计算/查找之类的处理可以应用于音频流以识别讲话的人和所讲的话。通过这些或其他方法,软件可以检测出环境音频中的音乐,并呈现指示这种检测结果的图标112。也可以检测并指示出其他不同的音频类型(例如,路面噪声、鸟叫声、电视、等等)。在每个图标(110、112、等等)的左边是波形显示部120。在所绘出的实施例中,显示基于实际数据的波形,尽管根据需要可以使用千篇一律的绘图。(可以使用其他表示形式,如谱直方图。)所示出的模拟波形向左移动,使最新的数据留在右边(类似于我们在阅读一行文字时的体验)。在向左移动出视线之前,只呈现每个波形的最新的一段时间间隔(例如,3、10 或 60 秒)。
将环境音频分割成不同的波形只是一种近似;精确的分离是困难的。在采用两个不同的麦克风的简单实施例中,确定两个音频流之间的差分信号,从而提供第三音频流。当感测到第一个讲话者在讲话时,呈现这三个信号中较强的一个(波形120a)。当该讲话者不在讲话时,以大大衰减的刻度来呈现该波形(或另一波形)——表明他已变得沉默(尽管环境音频水平可能在级别上还没有减弱很多)。对于用图标IlOb表示的第二个讲话者也同样如此。当识别出该人的声音(或者辨别出人声,但不能识别出是谁的声音——但是已知不是由图标IlOa表示的讲话者)时,于是以波形形式120b显示三个音频信号中声音最大的一个。当该讲话者变得沉默时,呈现衰减了很多的波形。类似地呈现波形120c以表示感测到的背景音乐。可以呈现来自三个声源中与讲话者的音频关联度最小的那个声源的数据。此外,如果音乐被中断,那么波形可以由软件衰减以表明这种中断情况。如上所述,只有几秒的音频是用波形120表示的。同时,智能电话正在分析该音频,辨别含义。该含义可以包括例如,该讲话者的语音识别文本,和音乐的歌曲识别结果。当辨别出有关音频流的信息时,该信息可以由小玩意(图标)122表示。如果该小玩意与仍然在横穿屏幕的波形所表示的音频摘选相对应,则该小玩意可以被放置到与该波形相邻,诸如小玩意122a(其可以指示例如讲话者最近所说的话的文本文件)。该小玩意122a与他所对应的波形一起向左移动,直到该波形在虚拟的停止门123处从视线中消失。在该点,小玩意被穿到短线124上。小玩意122在线124上排成队,就像一条绳上的珍珠那样。线124的长度仅足够保持有限数目的小玩意(例如,两个到五个)。在线被穿满后,每个追加的小玩意将最老的小玩意推出视线。(消失的小玩意仍然可从历史文件中获得。)如果没有新的小玩意到达,现有的小玩意可以被设定成在一段时间间隔之后“死去”,使得它们从屏幕消失。该时间间隔可以由用户配置;示例性的时间间隔可以是10或60秒、或者10或60分钟、等等。(在一些实施例中,甚至在已经辨别出任何相关信息之前,就可以将原型小玩意与波形或其他特征相关联地呈现。在这种情况下,轻拍原型小玩意会使智能电话将其处理注意力集中于获得与相关特征有关的信息。)小玩意122可以包括可见标志以便用图形形式指示其内容。如果例如识别出一首歌曲,那么相应的小玩意可以包含相关联的CD封面插图、艺术家的脸、或者音乐发行商的标志(如小玩意122b)。另一种音频场景可视化方法通过参考不同的音频流相对于智能电话的方向来识别并描绘这些音频流。例如,一个波形可能会被显示为从右上方进入;另一个波形可能会被显示为从左侧到来。处于中心位置的中心部充当这些波形的停止门,小玩意122累积在这些波形上(如同串在绳124上)。轻拍中心部会调出所存储的历史信息。这样的方案在图19A中示出。由智能电话发现的全部动作的历史可以在本地和/或远程被编辑并存储。所存储的信息可以仅包括发现的信息(例如,歌曲 名称、讲话文本、产品信息、电视节目名称),或者所存储的信息可以包括更多信息(如音频流的录制版本,和由摄像机拍摄的图像数据)。如果用户通过适当的概况设定进行了选择,那么该历史可以包括在会话中由智能电话处理的全部数据(包括关键字向量、加速计和所有其他传感器数据、等等)。附加地或者可选地,用户界面可以包括“保存”按钮130。用户启动该控制件会使系统的信息状态被存储。另一种用户控制件(未示出)允许所存储的信息被复原到系统中,使得装置分析和用户发现能够继续进行——甚至是在不同的地方和时间。例如,如果用户在书店翻阅图书并且传呼器(pager)召唤他去附近餐馆的空闲桌位,那么用户可以按下“保存”。之后,该会话可以被调出,并且用户可以继续该发现,例如让装置参考感兴趣的书的封面套纸图或条形码来查找这本书,以及让装置识别背景中播放的歌曲。尽管图19在传感器长方格104中示出关于音频环境的信息,但是可以采用类似的构造来呈现关于视觉环境的信息,例如使用本说明书中其他地方详述的方案。如上所述,轻拍摄像机按钮131会使程式从音频切换到视觉(以及从视觉切换到音频)。在视觉模式下,该传感器长方格104可以用于显示交互的增强现实模式。转向图19下方的地理位置长方格106,其示出地图数据。该地图可以从在线服务(如 Google Maps、Bing 等等)下载。地图数据的分辨度/粒度最初取决于智能电话借以知道其当前位置的粒度。如果已知高度精确的位置信息,那么可以呈现示出精细细节的地图(例如,被放大);如果只已知大体位置,那么呈现示出较少细节的地图。如同常规技术那样,用户可以通过比例控制件140来放大或缩小地图以获得更多或更少细节。用户的位置由较大的推针142或其他标志表不。每次用户例如通过轻拍所显示的小玩意来进行发现操作时,更小的推针146留驻在地图上,从而记住遭遇地点。关于发现操作的信息(包括时间和地点)与推针相关联地存储。如果用户轻拍推针146,那么从存储装置中调用关于先前进行的发现的信息,并将其呈现在新窗口中。例如,如果用户具有关于商场中的一双长靴的发现体验,那么可以显示长靴的图像(用户拍摄的或者库存的照片)以及在先前的遭遇期间呈现给用户的价格和其他信息。另一个发现可能会涉及识别夜总会中的歌曲或者识别教室中的面部。所有这些事件都通过所显示地图上的推针来记忆。地理位置长方格通过时间控制件144 (例如,图形滑条)来使对先前进行的发现的回顾变得容易。在一个极端,不示出任何先前进行的发现(或者仅示出过去一小时内的发现)。然而,通过使该控制件发生变化,可使地图填充有额外的推针146,每个额外的推针146指示先前的发现体验和其发生的位置。该控制件144可以被设定成示出例如过去一星期、一月或一年内的发现。可以激活“H”(历史)按钮148以使滑条144出现,从而允许访问过去的发现。在一些地理位置(例如,商场或学校),用户的发现历史可能是如此丰富以致于必须对推针进行过滤以便不会乱七八糟地堆满地图。因此,一种模式允许发现的开始和结束日期由用户设定(例如,通过一对类似滑条144的控制件)。或者可以应用关键词过滤器,例如诺德斯特龙百货公司(Nordstrom)、长靴、音乐、面部、人名、等等。指南针箭头146呈现在显示器上,以帮助理解地图。在所绘出的模式中,地图上的“向上”方向是智能电话所指向的方向。如果轻拍箭头146,则箭头快速移动到垂直取向。然后地图被旋转使得地图上的“向上”方向对应于北。用户可以使得数量多少与自己的期望相应的、关于自己的动作的信息可供别人获得从而与其他人分享。在一种场景下,用户的概况设置允许分享她在本地商场的发现,但是 仅允许与她在FaceBook社交网络账户上的选定的朋友分享,并且仅在用户特意地保存了该发现(与自动地记录所有动作的系统历史存档相反)的情况下才分享。如果该用户在书店发现了有关特定的一本书的信息并保存了小玩意,那么该信息被发布到数据存储云中。如果她一周后返回到该商场并且回顾来自先前造访事件的小玩意,那么基于该用户的存储的发现体验,她可能会发现有一个朋友当时正在书店看那本书。该朋友可能已经发布了关于该书的评论,并且可能已经推荐了关于同一主题的另一本书。因此,关于发现的云存档可以与其他人分享,从而发现这些其他人自己的内容并利用该内容得到扩充。类似地,用户可以同意使该用户的发现历史的一部分或全部可供商业实体使用,例如用于受众测量、交通拥挤分析等目的。说明件的操作序列应理解的是,图19的方案可以无用户交互地进行呈现。所显示的操作模式可以是装置的默认操作模式(如屏幕保护程序,在任何无活动时间段之后装置回复到该屏幕保护程序)。在一个特定方案中,当智能电话被拾起时软件被激活。该激活可以通过装置移动或其他传感器事件(例如,视觉刺激变化,或感测到屏幕上的轻拍)来触发。在操作的第一秒左右之后,如果摄像机和麦克风还没有被激活,则激活摄像机和麦克风。智能电话快速地估计当前位置(例如,通过识别本地WiFi节点,或者其他粗略检查)。一旦有某个位置信息可用,就在屏幕上呈现相应的地图数据(如果智能电话与地图中心所对应的位置之间的距离没有超过所存储的阈值诸如100码或一英里,那么缓存的一帧地图数据可能就足够了)。智能电话也建立去往云服务的连接并传送该智能电话的位置。用户的概况信息(任选地连同最近的历史数据一起)被调用。在激活后的一秒到三秒之间,装置开始处理关于环境的反馈。启动图像和/或音频场景分割。与感测到的数据相关的关键字向量可以开始以流形式传送到云处理。更细化的地理位置可以得到确定,并且可以获得/呈现更新后的地图数据。与先前的发现体验相对应的推针可以绘在地图上。也可以呈现其他图形叠盖物诸如示出用户朋友的位置的图标。如果用户在市中心区或在商场,那么另一叠盖物可以示出正提供待售商品的商店或商店内的位置。(该叠盖物可以基于选择性加入的方式而提供给例如零售商的频繁购物者俱乐部的成员。RSS型分发可以将这种预订信息馈送给智能电话以供叠盖呈现。)另一个叠盖物可以示出附近道路上的当前交通状况等。在视觉场景内可能已经识别出感兴趣的显著特征(例如条型码)并在摄像机视图中将其加亮显示或绘出轮廓。快速图像分割操作的结果(例如,那是脸部)可以类似地被标出(例如通过绘出矩形轮廓)。装置侧识别操作的结果可以显现出来,例如显现为传感器长方格104上的小玩意。在小玩意UI可被轻拍并且将呈现相关信息的意义上,激活小玩意UL·小玩意可以被类似地拖动从而跨过屏幕,以便指示期望的操作。仍然,用户没有对智能电话采取任何动作(除了例如将智能电话从口袋或钱包中举起)。如果智能电话处于视觉发现模式,那么对象识别数据可以开始显现在传感器长方·格上(例如,在本地或来自云)。智能电话可能会识别出例如一盒Tide清洁剂并叠盖相应品牌的小玩意。用户可以将Tide小玩意拖动到屏幕的不同角落,以指示不同的动作。一个角落可以具有垃圾桶图标。另一个角落可以具有保存图标。把Tide小玩意拖到那里可将其添加到历史数据存储库,使得它可以在之后被调用和回顾以继续进行该发现。如果用户轻拍Tide小玩意,那么任何其他小玩意可以在屏幕上变灰。智能电话将资源分流给进一步分析由所选小玩意指示的对象的处理,从而将轻拍理解为用户对兴趣/意图的表达。轻拍小玩意也可以为该小玩意唤出一个背景环境菜单。这样的菜单可以来源于本地、或者从云提供。对于Tide,菜单选项可以包括用法说明,用户借以向制造商提供反馈的博客,等等。菜单选项之一可以用来发出用户想要另外的菜单选项的通知。轻拍该选项会指引智能电话获得其他流行度较低的选项并将其呈现给用户。可选地或者附加地,菜单选项之一可以发出用户对对象识别结果不满意的通知。轻拍该选项会指引智能电话(和/或云)“搅拌更多原料”以试图作出另外的发现。例如,书店中的用户可以拍摄一本书的绘出Albert Einstein的封面套纸的图像。智能电话可以识别该书,并提供诸如书评和购买选项之类的链接。然而,用户的意图可能是获得关于Einstein的进一步的信息。告诉电话从原处理路线返回并做另外一些工作,可以导致电话识别Einstein的脸部并随后呈现与该人而不是该书相关的一组链接。在一些用户界面中,菜单选项可以取决于它们被轻拍一次还是两次而具有交替的两个含义。对特定菜单选项进行单次轻拍可以表明用户想要显示更多菜单选项。对同一菜单选项进行两次轻拍可以发出用户不满意原来的对象识别结果并且想要其他对象识别结果的通知。双重含义可以在所显示的菜单图例中用文本指示。可选地,在单次轻拍的含义被给定的情况下,用户借以推断两次轻拍的菜单含义的惯例可能会出现。例如,单次轻拍可以指示使用智能电话的本地资源执行所指示的任务的指令,而两次轻拍会指引同一任务由云资源执行。或者,单次轻拍可以指示仅使用计算机资源执行该指示的任务的指令,而两次轻拍可以指示把任务提交给带有人类辅助的执行处理(诸如通过使用Amazon的土耳其机器人(Mechanical Turk)服务)的指令。
作为轻拍小玩意这一方案的替代,用户可以通过环绕一个或更多小玩意画圈(使手指沿围绕屏幕上的图形的路线行进)来指示兴趣。该输入形式允许用户指示对一组小玩意的兴趣。这种手势(指示对两个或更多小玩意的兴趣)可以用于触发与简单地分别轻拍两个小玩意不同的动作。例如,把图24中的苹果和NASA小玩意圈在共同的圆圈内可以指引系统寻找与苹果和NASA两者都相关的信息。作为响应,该装置可以提供关于例如NASAiPhone应用软件的信息,所述NASA iPhone应用软件使得NASA图像可供iPhone的用户使用。通过分别轻拍苹果和NASA标志,这种发现是不会发生的。类似地,把NASA标志和滚石乐队标志圈在一起可以触发导致与以下事件有关的维基百科文章被发现的搜索在旅行者
号(Voyager)宇宙飞船上装载的镀金铜唱片上包含有滚石乐队的歌曲(a fiction-由电
影Starman引入)。图21A示出与图19稍微不同的发现Π。视觉发现占据屏幕的大部分,屏幕的底部 地带显示感测到的音频信息。尽管在该黑白绘图中并不明显,但是跨过图21A屏幕的中心位置的是叠盖的红色小玩意202,其由风格化的字母“O”构成(使用来自俄勒R的报纸的头号标题的字体)。在这种情况下,智能电话感测来自俄勒R的文章的数字水印信号——触发小玩意的显示。点击小玩意会使它以动画方式变换成图21B中所示的背景环境感测菜单。在中心处是表示在图21A中发现的对象的图形(例如,报纸中的文章)。在左上方是用户借以将该文章或链接发邮件给其他人的菜单项。在右上方是准许该文章被保存在用户存档中的菜单项。在左下方是去往用户可在其上编写与该文章有关的评论的博客的链接。在右下方是去往与该文章相关联的视频的链接。报纸的读者接下来可能会遇到娱乐场的广告。当被智能电话感测到时,小玩意再次显现。轻拍该小玩意会带来另外一组菜单选项(例如,购买表演者的即将来临的音乐会的票、进入比赛、以及对娱乐场大厅进行360度沉浸式游览。也提供“保存”选项。在屏幕的中心位置是具有该娱乐场的标志的矩形。观察带有数字水印的药瓶会带来图22中所示的又一个背景环境菜单。在中心位置是药丸看起来应该像什么样子的图像,从而允许在服药(例如,来自旅行者混合了几种不同药丸的瓶子中的药)时进行安全检查。药品也通过名称(“Fedratryl”)、浓度(“50mg”)和开药医生(“Leslie Katz”)来标识。一个菜单选项使智能电话呼叫用户的医生(或药剂师)。该选项在用户的电话簿中搜索开药医生的名字并拨打该号码。另一个选项将自动的药房补充请求提交给药房。另一个链接通向呈现关于药品的常见问题、并且包括FDA要求的公开信息的网站。也提供“保存”选项。以类似方式,PDF文档中的水印可以揭示文档特定的菜单选项;Gap牛仔裤标签上的条形码可以导致保养说明和时尚提示;对图书封面套纸上的插图的识别可以触发包括书评和购买机会在内的菜单选项的显示;并且对脸部的识别可以带来诸如察看这个人的FaceBook页面、在Flickr上存储注释有名字的照片等之类的选项。类似地,带有水印的电台或电视音频/视频可以导致关于所采样的节目的信息的发现,等等。图23绘出与图像处理相关联的“雷达”用户界面提示。照亮的红色杆202 (图24A中所示)从虚拟的支点反复扫过图像。(在所绘出的情况下,该支点在屏幕外。)该扫掠提醒用户注意智能电话的图像处理活动。每次扫掠可以指示对所捕获数据的新的分析。数字水印通常具有在能够检测出水印有效载荷之前必须辨别出的取向。如果拍摄的图像与水印的取向大体对准地得到定向,那么会使检测变得容易。一些水印具有可被快速辨别出以识别出水印取向的取向信号。在图23B的屏幕快照中,雷达扫描线202使得瞬时的幻影图案苏醒从而显现出来。该图案示出与水印取向对准的网 格。看到(诸如图23B中绘出的)倾斜网格可以促使用户将智能电话略微重新定向,使得该网格线与屏幕边缘平行,从而帮助水印解码。作为另一种视觉提示(这种提示是与时间有关的),小玩意可以失去其空间停留处,并在一段时间已经逝去之后漂移到屏幕的边缘。最终,它们可以滑出视线(但是在用户的历史文件中仍然可获得)。这样的方案在图24中示出。(在其他实施例中,小玩意在空间上与图像特征相关联地停留——仅当相关联的视觉特征移出视线时消失。对于音频(并且任选性地对于图像),小玩意可以随着时间的推移有选择地在适当的地方冒泡。)音频发现可以平行于上面详述的处理。原型小玩意可以立即与检测到的声音相关联,并且当有更多信息可用时被精炼成完整的小玩意。不同类型的音频水印解码和指纹/查找可以用于识别歌曲等。语音识别可能正在进行。一些音频可以在本地被快速处理,并在云中经历更彻底的处理。一旦云处理被完成并确认原始的结论,那么由本地处理产生的小玩意就可以呈现不同的外观(例如,粗体、或变得更亮、或采用彩色与单色的对比)。(当通过本地和云处理或者通过备选的识别机制(例如SIFT和条型码读取)确认第一识别结果时,对于视觉分析也同样如此。)如前所述,用户可以轻拍小玩意以揭示出相关联的信息和背景环境菜单。当轻拍一个小玩意时,对其他对象的处理被暂停或减少,使得处理可以聚焦于用户指示出兴趣的地方。如果用户轻拍所显示的菜单选项之一,那么装置UI会转变成支持所选操作的UI。对于识别出的歌曲,背景环境菜单可以包括中心长方格,其呈现艺术家名字、音轨名称、发行商、CD名称、CD插图、等等。围绕着其周界的可以是各链接,从而例如允许用户在iTunes或Amazon购买该音乐作品、或者允许用户观看该歌曲的YouTube音乐视频。对于讲话音频,轻拍可以打开菜单,该菜单显示讲话者所说的话的转录文本,并且提供诸如发送给朋友、发布到FaceBook、播放所存储的讲话者讲话的录制版本等之类的选项。由于音频的时间特性,用户界面合乎期望地包括这样的控制,其允许用户访问来自较早时间(对应于该较早时间的小玩意可能已经从屏幕中去除)的信息。一种方法是允许用户往回扫过期望的音频声轨(例如,将波形120b向右扫)。该动作会暂停正在进行的波形的显示(尽管全部信息被缓冲),并且反而从存储的历史中顺序地调出音频和相关联的小玩意。当期望的小玩意以这种方式被恢复到屏幕上时,用户可以轻拍它来获得相应的发现体验。(也可以作为替代而提供用于在时间域中航行的其他装置,例如往复式控制。)为了便于进行这种时间航行,界面可以提供相对时间信息的显示,诸如沿着所调出的波形每10或60秒出现一次的tic代码,或者利用与调出的小玩意相关联的文本时间戳(例如,“2:45以前”)。软件的用户界面可以包括“之后”按钮等,从而发出用户不打算实时回顾发现信息的通知。例如,音乐会上的用户可以激活该模式,从而确认她的注意力将会集中于其他地方。该控制会向智能电话指示其不需要用发现数据更新显示器,甚至不需要立即处理数据。而是,该装置可以简单地将全部数据转送给云进行处理(不仅包括捕获的音频和图像数据,而且包括GPS位置、加速计信息等)。来自云的结果在被完成时可以存储在用户的历史中。在之后的更方便的时间,用户可以调用所存储的数据并探索注意到的发现(因为这些发现没有在直接的限制下进行处理,所以其细节可能更丰富)。
另一用户界面特征可以是“停泊坞”,小玩意被拖动到该停泊坞并且停留在这里以便例如在之后访问(类似于苹果的OS X操作系统中的停泊坞)。当小玩意以这种方式被停泊时,保存与该小玩意相关联的全部关键字向量。(可选地,保存与当前会话相关联的全部关键字向量,从而为之后的操作提供更有用的背景环境。)装置偏好可以设定成使得如果小玩意被拖动到停泊坞,那么相关数据(小玩意特定数据或者整个会话)由云处理以辨别出与所指示对象相关的更详细信息。又一界面特征可以是“蛀洞”(或共享图标(SHARE icon)),小玩意可以被拖动到该蛀洞中。这会发布用于与用户的朋友共享的小玩意或相关信息(例如,小玩意相关关键字向量或整个会话数据)。沉积到蛀洞中的小玩意可以在用户朋友的装置上弹出,例如作为地图显示上的独特推钉。如果该朋友正伴随着该用户,那么小玩意可以显现在该朋友的装置的摄像机视图上,作为由该朋友的装置所观察的场景的相应部分上的叠盖物。当然也可以使用其它相关信息的显示。关于声源定位的更多i兑明由于智能电话变得无处不在,所以它们可以以新颖的方式合作。一种合作是执行高级声源定位。如根据现有技术(例如,US20080082326和US20050117754)已知的那样,来自空间上分离的多个麦克风的信号可以用于基于感测到的音频信号中的关联特征之间的时间延迟来辨别音频的发出方向。由不同的个人携带的智能电话可以充当空间上分离的多个麦克风。声源定位的先决条件是理解组分音频传感器的位置。GPS是一种可以使用的定位技术。然而,更精确的技术正在出现。一种技术被详述在专利公开W008/07334中。通过这种技术或其他技术,移动电话的相对位置可以被确定到小于一米的准确度内(在一些情况下接近一厘米)。这种定位技术可以用于识别每个合作电话在三个空间维度中的位置。进一步的精炼结果可以来源于获悉电话主体上的传感器的位置和取向、以及获悉电话的取向。前一信息对于每个智能电话而言是特定的,并且可以从本地或远程数据存储库获得。电话中的传感器(如加速计和磁力计)可以用于提供电话取向信息。最终,可以确定每个麦克风的6D姿态。然后智能电话与其他智能电话共享该信息。智能电话可以被编程为对由其麦克风感测到的音频的带时间戳的数字流进行广播。(对应于几个流的数据可以由具有几个麦克风的智能电话广播。)位置信息也可以由每个智能电话广播,或者一个智能电话可以使用适合的技术(诸如W008/07334中详述的技术)辨别另一个智能电话的位置。广播可以通过短程无线电技术(如蓝牙或Zigbee或802. 11)。诸如Bonjour之类的服务发现协议可以用于在智能电话之间交换数据,或者也可以使用另一种协议。尽管MP3压缩通常被用于音频压缩,但是MP3压缩的使用在本环境中不是有利的。MP3等按照采样窗口将音频表示为串行的多组频率系数。该采样窗口实际上是具有时间不确定性的窗口。该不确定性会限制声源被定位的准确度。为了使特征相关性准确地与时间延迟相关,优选的是使用未压缩的音频或者使用如实地保留时间信息的压缩(例如,无损数据压缩)。在一个实施例中,第一智能电话接收由一个或更多第二智能电话感测到并从所述一个或更多第二智能电话广播的音频数据,并且结合由自己的麦克风感测到的数据来判断声源方向。该确定结果然后可以与其他智能电话共享,使得其他智能电话不需要作出它们自己的确定。声源位置可以被表示为以第一智能电话为起点的指南针方向。合乎期望的是,第一智能电话的位置为其他智能电话所知,使得相对于第一智能电话的声源定位信息可以与其他智能电话的位置相关。
在另一方案中,环境内的专用装置用来从附近的传感器采集音频流,作出声源定位确定,并且将它的发现广播给参与的智能电话。该功能性可以构建到其他基础设施装置(诸如照明控制器、恒温器等)中。在两个维度中确定音频方向对于大多数应用场合都是足够的。然而,如果麦克风(智能电话)在三个维度中间隔开(例如,处于不同的高度),那么声源方向可以在三个维度中确定。如果传感器间隔开数米而不是数厘米(如许多应用场合中常见的那样,诸如单个智能电话上的多个麦克风),那么声源不仅可以通过其方向得到定位,而且可以通过其距离得到定位。两个或更多空间上分离的智能电话可以通过利用基于方向信息的三角剖分、并且知晓它们各自的位置,来确定各智能电话到声源的距离。相对于已知智能电话位置的距离和方向允许声源的位置得到确定。如前所述,如果传感器分布在三个维度中,则该位置信息可以在三个维度中得到解析。(同样,这些计算可以由一个智能电话使用来自另一智能电话的数据来执行。所得的信息随后可以被共享。)链接的数据根据本技术的另一方面,(例如,与链接的数据相关的)数据和资源的Web 2. O概念与有形对象和/或相关关键字向量数据以及相关联的信息一起使用。链接的数据是指由Tim Berners Lee爵士发起的用于经由万维网上的可解除引用的URI来发布、分享和连接数据的方案。(参看例如T. B. Lee的“Linked Data”(www<dot>w3<dot>org/DesignIssues/LinkedData. html。)简要地,URI被用于识别有形对象和相关联的数据对象。使用HTTP URI使得这些对象可以被人们和用户代理查阅和查找(“解除引用”)。当对有形对象解除引用时,可以提供关于该有形对象的有用信息(例如,结构化的元数据)。该有用信息合乎期望地包括去往其他相关URI的链接以便改善对其他相关信息和有形对象的发现。RDF (资源描述框架)通常被用于表示关于资源的信息。RDF将资源(例如,有形对象)描述为许多由主语、谓语和宾语构成的三元组。这些三元组有时被称为声明。三元组的主语是标识所描述的资源的URI。谓语表示主语和宾语之间存在着哪种关系。谓语通常也是URI——从与特定领域相关的标准化词典中吸取。宾语可以是文字值(例如,名称或形容词),或者宾语可以是以某种方式与主语相关的另一资源的URI。不同的知识表示语言可被用于表示与有形对象和相关联的数据相关的本体论。万维网本体论语言(OWL)是一种这样的知识表示语言,并且使用提供与RDF纲要的兼容性的语义模型。SPARQL是供RDF表达式使用的查询语言——允许查询由三元组样式以及逻辑“与”、逻辑“或”和任选样式构成。根据本技术的该方面,由移动装置拍摄并产生的数据条目各自被赋予唯一且持久的标识符。这些数据包括基本关键字向量、分割出的形状、识别出的对象、关于这些条目获得的信息、等等。这些数据中的每个数据都被登记到基于云的注册系统中,该注册系统也支持相关的路由功能。(数据对象自身也可以被推送到云中进行长期存储。)关于该数据的相关声明从移动装置被提供给注册系统。因此,本地装置知道的每个数据对象经由云中的数据被例示。用户可以摆动摄像机,从而拍摄图像。通过这样的动作被聚集、处理和/或识别的所有对象(和相关数据)被赋予标识符,并且继续存在于云中。一天或一年之后,另一用户可 以对这样的对象做出声明(例如,树是白橡、等等)。即使是在特定时间在特定地点的快速摄像机扫视,也会在长时期内记录在云中。这种基本的基于云的形式的这些内容可以是用于协作的组织构造。数据的命名可以由基于云的系统赋予。(基于云的系统可以将赋予的名称报告回给始发移动装置。)标识移动装置已经知道的数据的信息(例如,上面提到的聚簇ID或MD)可以提供给基于云的注册系统,并且可以记录在云中作为关于该数据的另一声明。由基于云的注册系统保持的数据的部分视图可以包括

主语谓语宾语
TangibleObject#HouseID6789 Has—the—ColorBlue (蓝色)
TangibleObject#HouseID6789 Has the Geolocation45. 51N 122.67W
TangibleObject#HouseID6789 Belongs—to—the—Neighborhood SellwoodTangibleObject#HouseID6789 Belongs—to—the—CityPortland (波特兰)
TangibleObject#HouseID6789 Belongs—to—the—Zip—Code97211
TangibleObject#HouseID6789 Belongs—to—the—OwnerJaneA.Doe
TangibleObject#HouseID6789 Is—Physically—Adjacent—ToTangibIeObject#HouseID6790
ImageData#94D6BDFA623Was—Provided—From—DeviceiPhone 3Gs DD69886
ImageData#94D6BDFA623Was—Captured—at—TimeNovember 30,2009,8:32:16pm
ImageData#94D6BDFA623Was—Captured—at—Place45.51N 122.67W
权利要求
1.一种处理装置,其包括处理器、存储器、触摸屏、位置确定模块和至少一个音频或图像传感器,所述存储器存储将所述处理器配置成在所述触摸屏上呈现用户界面的指令,所述用户界面的第一部分呈现来自所述传感器的信息,并且同时,所述用户界面的第二部分呈现与所述装置的位置相关的信息。
2.如权利要求I所述的装置,其中与所述装置的位置相关的所述信息包括描绘所述装置周围的附近区域的地图,并且其中所述指令将所述处理器配置成在所述地图上呈现指示用户的历史动作的推针。
3.如权利要求I所述的装置,其中所述用户界面的所述第一部分呈现听觉场景可视化显不O
4.如权利要求I所述的装置,其中所述存储器存储将所述处理器配置成分析语音数据以识别其讲话者的指令,以及在所述听觉场景可视化显示中呈现与识别出的讲话者相对应的图形图像的指令。
5.如权利要求I所述的装置,其中所述存储器存储将所述处理器配置成分析音频数据以从多个可能的类型中确定所述音频数据的类型,并且在所述听觉场景可视化显示中呈现与所确定的类型相对应的图标的指令。
6.一种智能电话装置,其包括处理器、存储器、屏幕和至少一个音频传感器,所述存储器存储将所述处理器配置成在所述触摸屏上呈现用户界面的指令,所述用户界面包括听觉场景可视化显示。
7.如权利要求6所述的智能电话,其中所述指令还将所述处理器配置成分析语音数据以识别其讲话者,并且在所述听觉场景可视化显示中呈现与识别出的讲话者相对应的图形图像。
8.如权利要求6所述的智能电话装置,其中所述指令还将所述处理器配置成分析音频数据以从多个可能的类型中确定所述音频数据的类型,并且在所述听觉场景可视化显示中呈现与所确定的类型相对应的图标。
9.如权利要求8所述的智能电话装置,其中所述指令将所述处理器配置成使所显示的图标随时间而移动,从而指示时间的推移。
10.如权利要求8所述的智能电话装置,其中所述指令将所述处理器配置成在所述屏幕上以位置序列的形式同时显示多个不同的图标,图标的所述序列指示音频数据的不同类型以及音频数据的时间顺序。
11.如权利要求8所述的智能电话装置,其中所述装置包括多个音频传感器,并且所述指令将所述处理器配置成显示与多个不同的音频流相对应的标志,所述标志还指示由所述装置接收的所述音频流所来自的各个空间方向。
12.—种智能电话装置,其包括处理器、存储器、屏幕和至少一个图像或音频传感器,所述存储器存储将所述处理器配置成处理传感器数据以从所述传感器数据中得出信息、并且在所述屏幕上呈现与得出的信息相对应的标志的指令,所呈现的标志不同于由任何图像传感器捕获的图像,所述指令将所述处理器配置成在处理传感器数据期间响应于接收到的用户输入而执行保存操作,所述保存操作存储与接收到所述用户输入时的处理状态相对应的信息,由此所述装置能够在之后继续进行对所述传感器数据的处理。
13.一种智能电话装置,其包括处理器、存储器、触摸屏和至少一个传感器,所述存储器存储使所述智能电话装置执行包括以下内容的操作的指令 在所述触摸屏上呈现包括地图的用户界面,所述地图包括多个指示位置的图形标志,所述智能电话先前在所述位置被用来执行与传感器相关的动作;和 响应于在所呈现的标志之一处做出的触摸屏用户输入,显示与先前在和所述地图上的所呈现的标志的位置相对应的位置处接收到的传感器数据有关的信息。
14.如权利要求13所述的智能电话装置,其中至少一些所述图形标志具有与其相关联的历史日期,所述智能电话先前在所述历史日期被用来执行与传感器相关的动作,并且其中所述指令还使所述智能电话装置执行包括以下内容的操作 在所述触摸屏上呈现可由用户操纵的图形控制;和 响应于通过所述图形控制输入的用户输入,改变为其显示图形标志的历史日期的范围。
15.一种处理装置,其包括处理器、存储器、屏幕和图像传感器,所述存储器存储将所述处理器配置成在所述触摸屏上呈现与由所述图像传感器感测的图像相对应的数据的指令,所述处理器还在所述触摸屏上呈现雷达扫描线的扫掠效果以指示处理图像数据的过程中的装置活动。
16.如权利要求9所述的装置,其中所述指令将所述处理器配置成跟随着进行扫掠的雷达扫描线来呈现关于由所述图像传感器成像的对象的取向的标志。
17.如权利要求16所述的装置,其中所述标志指示感测到的图像数据中的数字水印的取向。
18.—种进行声源定位的方法,包括以下动作 利用环境内的多个无线电话对环境音频进行采样; 将由第一电话感测的音频信息发送给第二电话; 辨别使所述第一电话的位置与第二位置相关的位置数据;和 在所述第二电话中,处理所述位置数据、从所述第一电话接收的音频信息、以及由所述第二电话采样的音频,以辨别相对于所述第二电话的声源方向。
19.如权利要求18所述的方法,其中所述发送动作包括发送尚未被窗口频域压缩变得时间模糊的信息。
20.—种方法,包括 从汽车中的摄像机捕获图像;和 生成所述汽车所位于的交通环境的3D模型。
21.—种方法,包括 使用智能电话中的处理器,识别由智能电话摄像机捕获的图像中的第一和第二特征; 识别所述图像内的仍然包含所述第一和第二特征这两者的聚簇区域的最小尺寸;和 基于聚簇区域的所述尺寸,确定所述第一和第二特征之间的关系度。
22.—种方法,包括 使用智能电话中的处理器,识别由智能电话摄像机捕获的图像中的第一和第二相关特征; 识别所述图像内的仍然包含所述第一和第二特征这两者的聚簇区域的最小尺寸;和 确定所述最小尺寸的聚簇区域中所包含的第三特征也与所述第一和第二特征相关。
23.一种智能电话装置,其包括处理器、存储器、触摸屏和至少一个传感器,所述存储器存储使所述智能电话装置执行包括以下内容的操作的指令 在所述触摸屏上呈现用户界面,所述用户界面包括与由所述传感器感测的数据相关联的标志; 感测所述触摸屏上的用户轻拍模式; 响应于在第一标志上做出的第一用户轻拍模式,米取与和所述标志相关联的传感器数据有关的第一动作;和 响应于在所述第一标志上做出的第二用户轻拍模式,采取与和所述标志相关联的所述传感器数据有关的第二动作; 其中所述第一和第二用户轻拍模式中的一个包括单次轻拍,并且所述第一和第二用户轻拍模式中的另一个包括两次轻拍。
24.如权利要求23所述的智能电话装置,其中所述指令使所述智能电话装置执行包括以下内容的操作 响应于所述第一用户轻拍模式,由所述智能电话装置中的处理器进行所述传感器数据的处理;和 响应于所述第二用户轻拍模式,将所述传感器数据发送给远程计算机进行处理。
25.如权利要求23所述的智能电话装置,其中所述指令使所述智能电话装置执行包括以下内容的操作 响应于所述第一用户轻拍模式,由电子处理器进行所述传感器数据的处理而无需人类参与;和 响应于所述第二用户轻拍模式,由包含人类参与在内的处理进行所述传感器数据的处理。
全文摘要
智能电话感测来自用户环境的音频、图像、和/或其他刺激,并且自发地行动从而满足推断出的或预见到的用户需求。在一个方面中,所详述的技术涉及对手机的摄像机观察到的景象进行基于手机的认知。应用于所述景象的图像处理任务可以参考资源成本、资源限制、其他刺激信息(例如音频)、任务可替代性等因素从各种备选者中选择。手机可以取决于图像处理任务进行的成功程度或者基于用户对图像处理任务的明显兴趣而对所述任务应用更多或更少的资源。在一些方案中,数据可以提交给云进行分析或进行搜集。适当的装置响应的认知和识别可以由间接信息(诸如背景环境)辅助。也详述了大量其他特征和方案。
文档编号H04M11/00GK102884779SQ201180011192
公开日2013年1月16日 申请日期2011年2月23日 优先权日2010年2月24日
发明者G.B.罗兹, T.F.罗德里格斯, G.B.肖, W.Y.康威尔 申请人:数字标记公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1