具体实施方式
对于一些实施例,公开一种移动计算设备,该移动计算设备被配置为用从与网络连接的服务器计算机接收的增强信息增强视频流。该移动计算系统包括处理器、存储器、为该移动计算设备供电的内置电池、内置摄像头、显示屏以及以无线方式与服务器计算机通信的内置Wi-Fi电路。该移动计算设备包括视频拍摄模块和全球定位系统(GPS)模,视频拍摄模块与处理器联接且被配置为拍摄视频流,GPS模块与视频拍摄模块联接且被配置为生成与由视频拍摄模块拍摄的视频流的帧关联的地理信息。该移动计算设备还包括视频处理模块,该视频处理模块与视频拍摄模块联接且被配置为分析视频流的帧并提取在帧中包括的关注点的特征。视频处理模块还被配置为致使将关注点的特征和地理信息传输至服务器计算机,并且被配置为从服务器计算机接收增强信息。视频处理模块被配置为用增强信息对视频流的帧中的关注点进行叠加、进行高亮或者进行叠加和高亮,以生成增强的视频流。然后,在该移动计算设备的显示屏上显示增强的视频流。
在下面的描述中,阐述诸如特定数据信号示例、组件示例、连接示例等之类的多个特定细节,以便提供本发明的透彻理解。然而,将对本领域技术人员显而易见的是,本发明可以在没有这些特定细节的情况下实施。在其它情况下,众所周知的组件或方法未被详细地描述,而是在框图中进行描述,以便避免不必要地使本发明模糊。因此,所阐述的特定细节只是示例性的。特定细节可以根据本发明的精神和范围改变,并且仍然被认为在本发明的精神和范围内。
从关于计算机存储器内的数据位的操作的算法和符号表示角度,呈现下面的详细描述的一些部分。这些算法描述和表示是在数据处理领域的技术人员所使用的手段,以最有效地将它们工作的实质传达给该领域的其它技术人员。算法在这里通常被构思为导致期望结果的自洽的一系列步骤。这些步骤是需要物理量的物理操作的那些步骤。通常但不必须,这些量采用能够被储存、被传输、被组合、被比较和以其它方式被操纵的电信号或磁信号的形式。已经证明,主要出于通常使用的原因,有时将这些信号称为比特、值、元素、符号、字符、项、数字等等是方便的。这些算法可以用诸如C、C++、Java或其它类似语言之类的多种不同软件编程语言编写。此外,算法可以用软件中的多行代码、软件中配置过的逻辑门或这两者的组合来实现。在实施例中,该逻辑由遵循布尔逻辑规则的电子电路、包含指令模式的软件或这两者的任意组合组成。
然而,应该记住,所有这些和类似术语应与合适的物理量关联,并且仅仅是应用于这些量的方便标记。除非特别声明,否则如从以下讨论中显而易见的,将理解在整个说明书中,使用诸如“处理”或“计算”或“运算”或“确定”或“显示”等之类术语的讨论涉及计算机系统或类似电子计算设备的动作或过程,该计算机系统或类似电子计算设备将计算机系统的寄存器和存储器内作为物理量(电子量)表示的数据操作和转换成计算机系统的存储器或寄存器或其它这样的信息存储、传输或显示设备中类似地作为物理量表示的其它数据。
本发明还涉及用于执行本文中的操作的装置。该装置可以是为所需用途专门构造的,或其可以包括由存储在计算机中的计算机程序选择性地激活或重配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于:包括软盘、光盘、CD-ROM及磁光盘在内的任何类型的盘,只读存储器(ROM),随机存取存储器(RAM),EPROM,EEPROM,磁卡或光卡,或任何种类的适合存储电子指令的介质,并且每个介质都与计算机系统总线联接。本文描述的任何模块或组件的部分可以用软件中的多行代码、软件中配置过的逻辑门或这两者的组合实现,并且在软件中实现的部分被有形地存储在计算机可读存储介质上。
本文提出的算法和显示本质上不与任何特定的计算机或其它装置相关。根据本文的教导,各种通用系统可以与程序一起使用,或构造更专业的设备来执行所需的方法框会证明是方便的。用于多种这些系统的所需结构将从下面的描述中显现。
在示例性实施例的下面描述中,参考附图,附图构成本发明的一部分并且在附图中通过图解示出特定实施例,在这些特定实施例中能够实施本发明。应当理解,能够使用其它实施例且能够在不脱离本发明实施例的范围的情况下进行结构变化。本文使用的术语“联接”、“连接”及“附接”是可互换的,并且包括将一个部分直接地或间接地连接至另一部分的各种形式。此外,应该理解,在一个实施例中描述的一个或多个结构特征可以在不同实施例中实现,即便未特别地被提到为不同实施例的特征。
概要
本发明的实施例提供一种合并两个或更多个数据源的可扩展方法,该方法包括使用可视信息来触发增强和使用地理位置来允许所拍摄的视频流的高级增强。由视频流提供的信息典型地局限于用户可见的或可听的信息,例如几何形状、与该形状关联的颜色图案、与该视频流中的对象关联的符号和其它特征。可能存在与视频流中的场景关联的未被传达至用户的深入得多的信息。单独使用与关注点或对象有关的可视信息或特性信息来增强视频流可能是有用的,但在可视信息或特性信息的量大时可能是不足够的或不可扩展的。单独使用地理信息可能不允许增强视频流中的场景的特定对象或景物。
将可视信息和地理信息结合可以允许对已知的和预存储在对象数据库中的对象的特性的快速识别或匹配。该地理信息可以由全球定位系统(GPS)提供。将可视信息与地理信息结合可以减少需要由服务器计算机整理的可能关注点的量,以辨别和识别已知对象和/或人。来自GPS的粗略地理信息减少需要被整理为与那个区域中的已知对象的可能匹配的可能关注点的量。进一步,与移动计算设备的摄像头在拍摄视频流时面向何处有关的方向信息也被传输至服务器计算机。该方向信息连同那个帧中的关注点的特征可以由移动计算设备中的内置指南针或方向传感器提供给服务器计算机。所有这些有助于通过将从移动计算设备传输的特性信息与在数据库中存储的已知对象进行比较减少数量庞大的潜在景物,这构成可扩展和可管理系统。
移动计算设备和增强的视频流的生成
图1图示根据一些实施例的可以使用的移动计算设备的一个示例。移动计算设备100可以包括显示模块105、通信模块110、全球定位系统(GPS)模块115、视频拍摄模块120、处理器125和存储器130。移动计算设备100可以是例如移动电话、笔记本电脑、上网本、触摸板或任何其它类似设备。移动计算设备100与网络200(见图2)协作,以基于地理和可视信息的结合将增强信息供应至在移动计算设备100中的视频流的帧中捕获的关注点。移动计算设备100包括移动计算设备100上的视频处理模块135,以帮助辨别每个视频帧中捕获的对象以及然后将增强信息插入视频流的帧中。
通信模块110可以用于允许移动计算设备100与网络(例如网络200(见图2))连接。通信模块110可以被配置为使移动计算设备100能够使用无线通信协议或任何其它适合的通信协议与网络200连接。例如,通信模块110可以包括无线保真(Wi-Fi)模块111、蓝牙模块112、宽带模块113、短消息服务(SMS)模块114等等。如将描述的,通信模块110可以被配置为将与视频流关联的可视信息从移动计算设备100传送至与网络200连接的一个或多个服务器计算机。
GPS模块115可以用于使用户能够获得从一个位置至另一位置的方向。GPS模块115还可以用于使能生成地理信息并将地理信息和视频流的图像和帧关联。该过程典型地被称为地理标记(geotagging)。当移动计算设备100用于拍摄视频流时,地理信息可以被插入视频流的一个或多个帧中。地理信息可以被插入并与由移动计算设备100生成的图像、视频流以及文本消息一起被存储。地理信息可以被存储为元数据,并且可以包括纬度坐标和经度坐标。例如,用于地理特定位置的标记和增强的服务器系统能够,通过使用与图像关联或与图像一起存储的纬度坐标和经度坐标使用那个图像中的建筑物的位置并且使用建筑物的其它显著特征,以确定在视频流中出现什么对象。
视频拍摄模块120可以被配置为拍摄图像或视频流。视频拍摄模块120可以与摄像头121关联并可以使用户能拍摄图像和/或视频流。视频拍摄模块120可以与方向传感器122关联,以感应摄像头121正指向的方向。摄像头121可以是内置的摄像头。
显示模块105可以被配置为显示由视频拍摄模块120拍摄的图像和/或视频流。对于一些实施例,显示模块105可以被配置为显示已经用存储在网络中的数据库中的增强信息增强的图像和/或视频流。显示模块105可以与显示屏106关联。
存储器130可以包括内部存储器和扩展存储器。例如,内部存储器可以包括只读存储器(ROM)和随机存取存储器(RAM),并且扩展存储器可以包括闪存。存储器130可以用于存储操作系统(OS)和各种其它应用程序,各种其它应用程序包括例如生产应用程序、娱乐应用程序、通信应用程序、图像和/或视频处理应用程序、用户接口应用程序等。处理器125可以被配置为运行与OS、网络浏览器和各种应用程序关联的指令。OS一些示例可以包括来自谷歌的安卓、来自苹果的iOS、来自微软的Windows Phone和来自Palm/HP的WebOS等等。网络浏览器可以由移动计算设备100用来允许用户使用网络200访问网站。
对于一些实施例,移动计算设备100可以包括视频处理模块135,视频处理模块135被配置为处理由视频拍摄模块120拍摄的图像和/或视频流。视频处理模块135可以分析所拍摄的视频流的帧并辨别所拍摄的视频流的每个帧中的对象/关注点。辨别用于对象的关注点可以包括将该对象分解为几何形状和显著特征。该操作可以适用于一组对象,该组中的每个对象被分解成不同几何形状和关联的显著特征。
对由摄像头121拍摄的每个帧,视频处理模块135可以使用提取算法来辨别帧中关注点的特征并提取这些特征连同地理信息和其它相关信息,并且将具有与那个帧有关的信息的数据包传输至服务器计算机(见图3A)。视频处理模块135可以生成关注点的几何形状的X-Y坐标的图案和与这些形状关联的颜色。视频处理模块135可以从与摄像头121关联的指南针或方向传感器122中提取方向信息,以确定在拍摄视频流中的帧时摄像头121面对的方向。由方向传感器122提供的方向信息可以包括北、南、东、西、上、下和任何可能相关的组合(例如西北且从水平面起向上20度等)。对于一些实施例,用于关注点的点的图案、所使用的点的数量和关注点的数量可能取决于帧中的不同关注点的数量。帧中非中心的或外围的对象、小对象和非显著对象能够被提取算法过滤掉,而仅关注点上明显的和显著的特征可以被提取。
视频处理模块135可以分析视频流的每个拍摄的帧。视频处理模块135可以相关来自该系列帧的图案,以帮助确定对象/关注点是什么。视频处理模块135可以相关来自该系列帧的图案,以帮助使关注点的特征能更快传输。对于一些实施例,如果先前传输的相同特征不存在变化,则特定帧的特征的不传输可能是必要的。对于一些实施例,如果当前帧包括不同于先前帧的特征,那么仅传输特征变化的差异。
对于一些实施例,对象/关注点可以通常位于帧的中心区域。可以注意,所拍摄的视频流的特定连续帧可以具有在中心区域的相同对象或至少包含在该系列连续帧中的相同对象。视频处理模块135可以分析这些帧,以辨别该对象的特性或可视信息。由于视频拍摄模块135继续拍摄视频流,所以视频处理模块135可以辨别很多不同对象是可能的。
视频处理模块135可以执行基本场景分析,基本场景分析包括使用光学字符识别(OCR)提取所拍摄的视频流的帧中的关注点的显著特征,利用关于那个特征的关联显著颜色和图案信息将它们编码为用于几何形状格式的X-Y坐标的小图案。视频处理模块135可以辨别那个对象的地理信息和关于那个对象的其它已知显著特征。对于一些实施例,由移动计算设备100传输至服务器计算机的信息可能呈文本格式。
上述由视频处理模块135执行的操作能够用来最小化被传输至服务器的文件大小且加速关注点的通过服务器进行的近实时识别和向移动计算设备100近实时传输增强信息。不是试图传输JPEG或MPEG类型文件,视频处理模块135辨别并提取显著特征,显著特征包括与视频帧中的对象/关注点关联的形状、形状的点对点型X-Y坐标、图案颜色、字母数字、符号等等,以最小化被传输至服务器计算机的文件大小且加速关注点的通过服务器计算机进行的近实时识别和向移动计算设备100的近实时传输增强信息。增强信息应被叠加在关注点上或在关注点上被高亮,因此用户能够激活来查看和/或收听对所拍摄的视频流叠加的增强信息。随着传输速度提高,整个图像可以被连续地传输至服务器计算机。可用来减少移动计算设备100和服务器计算机之间传输的信息量的其它技术,可以包括以黑白灰度传输彩色图像、传输减少的每英寸点数(DPI)图像等。
对于一些实施例,帧中的关注点可以与人相关。视频处理模块135可以被配置为分析所拍摄的视频流的帧并辨别可能位于帧的中心区域的人的面部特性或可视信息。由于视频处理模块135分析所拍摄的视频流的许多帧,所以视频处理模块135可以辨别许多不同的人是可能的。
视频处理模块135可以包括压缩解压缩(编解码器)模块136。对于一些实施例,编解码器136可以将所拍摄的视频流压缩成DivX格式。DivX是由加利福尼亚的圣地亚哥的DivX有限责任公司开发的视频压缩技术。DivX格式也许能使用户快速播放和创建高品质的视频流。DivX编解码器因它的质量、速度和效率而成为流行的基于动态图像专家组-4(MPEG-4)的编解码器。作为一种DivX编解码器,编解码器136可以使所拍摄的视频流和/或对象/关注点的所辨别的特征或特性信息能够被快速地传输至通信带宽受限(例如无线通信)的服务器计算机。还可以使用能够将信息从移动计算设备快速传输至服务器计算机的其它技术。例如,不是以图像或所拍摄的视频流的原来颜色传输该图像或视频流,而是可以执行转换来将该图像或所拍摄的视频流从彩色转换为黑白色,以减少要传递的信息的大小。
啁啾信号传输、检测、位置估算
与服务器计算机有潜在的一些交互的移动计算设备100可以使用音频和/或可视信息来检测和确定一个或多个移动计算设备的空间准确位置。对于一些实施例,移动计算设备100可以包括音频处理模块140,以处理音频信息。音频处理模块140可以包括啁啾(chirp)信号生成模块141和扬声器142。啁啾信号生成模块141可以被配置为以特定频率模式(例如高频噪声、低频噪声)传输啁啾信号。啁啾信号可以由移动计算设备100传输和由位于附近的另一移动计算设备接收。当传输啁啾信号时和当接收该啁啾信号时之间的时间间隔可以用来估算这两个移动计算设备距离彼此多远。在该示例中,第一移动计算设备可以传输其自己的啁啾信号并且可以接收由第二移动计算设备传输的啁啾信号。高频信号和低频信号之间的差异可以用来确定啁啾从第一(或发送)移动计算设备和第二(或接收)移动计算设备所行进的距离。
在可替代方案中,移动计算设备可以传输时间戳通知至服务器计算机300,以表示已经传输啁啾信号。另一移动计算设备可以传输时间戳通知至服务器计算机300,以表示已接收或检测啁啾信号。然后,服务器计算机300基于传输通知和接收通知之间的时间差计算这两个移动计算设备之间的距离。对于一些实施例,啁啾信号的传输和接收可以用于将两个移动计算设备的两个用户向彼此引导。可以注意,基于与这两个移动计算设备关联的标识信息,服务器计算机300可能已经知道使用这两个移动计算设备的用户的标识。
移动计算设备100是支持音频/视频的设备(例如iPhone)。啁啾信号生成模块141允许持有移动计算设备100的用户检测和定位附近持有类似移动计算设备的其它用户。基于传输和接收啁啾信号的两个移动计算设备或基于使用面部识别引擎320(见图3A),音频处理模块140可以允许检测附近的人。
对于一些实施例,一种可以使用的基于音频信号的距离计算方法如下。这两个移动计算设备向彼此传输/传播啁啾信号,以算出它们之间的距离。第三移动计算设备也能够收听和辨别来自其它两个移动计算设备的两个啁啾信号,从而使能够计算精确位置(使用X-Y坐标)。
如所讨论的,啁啾信号频率用于检测两个用户的接近度。这两个移动计算设备依次广播啁啾信号。当广播和检测啁啾信号时,每个具有其麦克风和/或音频接收器的移动计算设备记录/检测时间。基于这些时间值,计算这两个移动计算设备之间的距离。一个移动计算设备的音频处理模块140被配置为计算至另一移动计算设备(或持有该设备的用户)的距离。可替代地,当采用第三观察移动计算设备(被置于预定位置)时,音频处理模块140还允许计算另一人的准确位置(准确距离和方向)。音频处理模块140被配置为对所有三个移动计算设备的位置进行三角测量。然后,音频处理模块140通过指明方向和距离的文本生成另一移动计算设备的近似方向。
音频处理模块140可以向在移动计算设备上播放的视频流中插入箭头。该箭头可以表示指示移动计算设备的用户为到达另一人而应当行走的方向。该方向信息可以叠加在显示屏上观看的视频流。如前所介绍的,当面部识别操作的使用可能是不可能的时,可替代实现可以使用来自两个移动计算设备并被传送至服务器计算机300的通知信号来确定移动计算设备之间的距离。该通知可以由音频处理模块140生成,以使用户能够辨别和定位相同附近的其它移动计算设备或用户。
音频处理模块140可以包括编码算法,该编码算法使能够在一组音频频率下生成啁啾模式并且检测啁啾信号。该算法还使能够确定从当前移动计算设备至传输或广播所检测的啁啾信号的移动计算设备的距离。由于声音回声路径,算法还被用于使距离计算误差最小化。不是生成超过标准移动计算设备的扬声器系统和麦克风系统的操作的能力/范围的高频/低频信号来避免背景噪声,啁啾信号可以是在麦克风和扬声器系统的标准范围内的一系列高频率和低频率突发脉冲,但是在那些频率下的突发脉冲序列实际上不会自然地发生。音频处理模块140具有信号处理过滤器,以特别地寻找那些频率下的那个图案来辨别何时检测到啁啾信号和这两个移动计算设备之间的距离是多少。
对于一些实施例,当移动计算设备100正在拍摄视频场景时,视频流被传输至服务器计算机300并由服务器计算机300分析来进行面部识别。可替代地,所期望用户的标识被传输至服务器计算机300,并且图像和不同的视图被传输至移动计算设备。因此,服务器计算机300将用于面部识别的照片存储在面部识别数据库340中,并且向移动计算设备100传输面部识别图像/一组图像,该面部识别图像/一组图像的前侧、右侧和左侧轮廓要由视频处理模块135匹配,这使移动计算设备100的视频处理模块135的面部识别更快速和更容易。可以注意,着眼于像肤色这样的特征和像眼睛这样的面部特征的一种或多种快速面部识别软件可以被并入视频处理模块135中。
这个过程在诸如酒吧、竞技场或主题公园、初次会见和问候等之类的大型嘈杂公共场所中可能是有用的。基于声音的距离计算和场景分析的集成允许创建动态形成的移动社区。该系统自动地创建移动社区,使用户能够与具有类似关注的人联系,否则他们永远不会见面。在具有类似配置文件的某人附近的用户将被提示和给予与另一用户见面的方向。
尽管未示出,但是移动计算设备100可以包括电源(例如电池)、用户识别模块(SIM)、键盘(虽然可以实现软键盘)、输入/输出接口(例如视频、音频端口)、外部电源连接器、外部存储器连接器、天线、扬声器等。应注意,尽管在本文的示例中使用移动计算设备100,但是具有类似特征的非移动设备也可以用于传输可视信息和接收增强信息。
具有移动计算设备和服务器计算机的网络环境
图2图示根据一些实施例的可以用于增强所拍摄的视频流的网络的示例。网络200可以是互联网。多个服务器计算机205A-205C和多个移动计算设备210A-210D可以连接至网络200。服务器计算机205A-205C中的每个服务器计算机分别可以与数据库206A-206C关联。移动计算设备210A-210D可以被称为移动计算设备。本示例中图示的网络环境可以被称为客户机-服务器环境。客户机-服务器关系允许在全世界任何位置触发移动计算设备205A-205C的操作和用加强真实世界的用户视角的有用信息增强任何所拍摄的视频流。应注意,在本示例中图示的移动计算设备、服务器计算机和数据库的数量仅用于说明目的,而不意在限制。全世界可以存在许多服务器计算机和数据库来为更多移动计算设备提供服务,是在本发明实施例的范围内的。
移动计算设备210A-210D可以包括与图1中描述的移动计算设备100类似的特征。服务器计算机205A-205C可以包括通信模块和关联的应用程序,通信模块和关联的应用程序允许服务器计算机与网络200连接并与移动计算设备210A-210D交换信息。例如,使用移动计算设备210A的用户可以与包含嵌入应用的网页交互,然后向由与该应用关联的用户界面呈现的查询/域和/或服务提供输入。在支持超文本标记语言(HTML)或无线接入协议(WAP)的移动计算设备205A或任何其等价物上,网页可以由服务器计算机205A服务。移动计算设备205A可以包括浏览器软件(例如Internet Explorer、火狐(Firefox)),以访问由服务器计算机205A服务的网页。
服务器计算机和增强信息的选择
图3A图示根据一些实施例的可以用于确定对所拍摄的视频流使用的增强信息的服务器计算机的示例。服务器计算机300可以包括通信模块(未示出),以允许该服务器计算机连接至网络,例如图2中图示的网络200。服务器计算机300还可以包括服务器应用程序,服务器应用程序允许该服务器计算机与包括例如移动计算设备100在内的一个或多个移动计算设备通信。在服务器计算机300和移动计算设备100之间可以建立通信会话,以使能够从移动计算设备100接收可视信息306和向移动计算设备100传输增强信息391。对于一些实施例,服务器计算机300可以与对象数据库300、面部识别数据库340和增强信息数据库350联接。
如所讨论的,客户机模块使用提取算法来辨别那个帧中的关注点的特征,提取那些特征连同诸如地理信息、指南针方向及其它相关信息之类的数据,并且将具有与那个帧有关的信息的数据包传输至IDOL服务器。IDOL服务器具有知识库和分布式计算能力,以辨别关注点。IDOL服务器能够分析视频流中出现的一系列帧,并且使用该信息来将关注点的所传输特征与数据库中的已知对象或图像相匹配。大约与对象识别引擎310正在层次化地过滤或减少与所传输的特征匹配的可能已知图像/对象同时,增强引擎325准备并选择要被传回移动计算设备100上的视频处理模块135的增强信息去显示。
增强引擎325具有数据库,该数据库具有要叠加到帧中的已知关注点上的准备的增强信息(例如视频文件、广告、链接等)。基于潜在的与那个用户相关的内容,增强引擎325减少要添加至视频文件中的可能叠加。当对象识别引擎310确定对象是什么时,增强引擎325能够开始向移动计算设备100传输潜在的大文件,例如视频文件及广告。否则,在辨别关注点以后,增强引擎325能够开始传输视频文件、广告和图像、文本消息、与相关网页的链接等。然后,视频处理模块135将增强信息叠加到视频流的帧上。增强信息可以是文本消息或关注点的高亮。用户能够选择激活被高亮的关注点,以查看与在移动计算设备100的显示屏106上显示的视频文件的帧关联的增强信息。
对象数据库300可以被配置为存储与一组已知对象相关的信息。该信息可以描述已知对象的不同特性。这可以包括地理信息、颜色信息、图案信息等等。通常,对象的特性可以包括与该对象有关的可以用于辨别该对象且将该对象识别为已知对象的任何信息。例如,坐落在旧金山商业区的百老汇大街第四街道的角落的办公楼,可以基于其独特的金字塔形建筑结构和橙色来辨别。可以注意,对象数据库330当其被配置为存储关于许多对象或许多组对象的信息时可以是大型数据库。可以使用许多技术来生成关于对象的信息。例如,信息可以由人生成,或者信息可以由特殊计算机程序生成,该特殊计算机程序被编码为扫描彩色图像和生成包含在图像中的一系列对象连同该系列对象的特性。
对于一些实施例,面部识别数据库340可以存储与一组已知的人有关的面部识别信息。与该组中每个人有关的面部识别信息可以事先生成并存储在面部识别数据库340中。面部识别数据库340在其被配置为存储与许多人有关的面部识别信息时可以是大型数据库。可以使用许多技术来生成和存储面部识别信息。例如,一人使用面部识别应用程序来生成自己的面部识别信息并且请求将其自己的面部识别信息存储在面部识别数据库340中。
对于一些实施例,增强信息数据库340可以被配置为存储可以被插入所拍摄的视频流305中的信息。该信息可以包括身份信息(例如大学)、广告信息(例如餐厅优惠券)、链接信息(例如餐厅网站的URL链接)和面部信息(例如鲍勃·史密斯)等等。可以为同一对象存储不同类型的增强信息。对于一些实施例,服务器计算机300可以包括对象识别引擎310、面部识别引擎320和增强引擎325。
对象识别引擎310可以被配置为从移动计算设备100接收对象的特性。对象识别引擎310能够被配置为利用跨越多个服务器的分布式工作负荷计算,以提高过滤与由视频处理模块135传输的特性信息相比较在对象数据库330中存储的已知图像的速度。对象识别引擎310可以使用包含在所拍摄的视频流305的帧中的地理信息和存储在对象数据库330中的信息,以识别对象。例如,位于纬度坐标X和经度坐标Y处的具有金字塔形状的黄色建筑物可以被识别为国家金融大厦。对于一些实施例,对象识别引擎310可以使用一组过滤器并将这些过滤器应用于从移动计算设备100接收的特性或可视信息,以确定它是否能够识别该对象是什么或该人是谁。由于所拍摄的视频流305包括时间上和近似位置上的一系列密切相关的帧,所以这些帧通常包括相同的对象和/或人并且特性/可视信息可以具有所辨别的对象(或关注点)的主要特征的相同图案。这可以帮助对象识别引擎310减少对象数据库330中可利用的匹配选项。例如,对象识别引擎310可以将关注点的显著特征识别为电影的广告牌或海报、餐厅(例如麦当劳)、建筑物(例如办公室)、历史地标、住宅等。
面部识别引擎320可以被配置为从移动计算设备100接收人的面部特性。面部识别引擎320可以使用包含在所拍摄的视频流305的帧中的地理信息和存储在面部识别数据库340中的信息来辨别和识别人。对于一些实施例,面部识别引擎320还可以使用包含在帧中的地理信息来辨别所识别人的位置,以用于方向用途。
增强引擎325可以被配置为从对象识别引擎310和/或面部识别引擎320接收结果来确定如何选择要传输至移动计算设备110的适合的增强信息,以增强原始视频文件中被辨别的对象,并且被配置为从增强信息数据库350中选择增强信息391。增强信息391可以与已由对象识别引擎310和/或面部识别引擎320识别的对象或人相关。通常,增强信息391可以包括能提供与包含在所拍摄的视频流305的帧中的对象和/或人有关的深入信息或内容的任何信息。例如,增强信息391可包括各个建筑物内的食品机构的列表、对特殊生意的用户评论的链接、对网页的链接等。增强引擎325可以选择与用户最相关的增强信息。例如,对象可以是具有许多不同商行的办公楼,并且对象数据库330可以包括与每个商行关联的增强信息。但是,仅可以选择与艺廊关联的增强信息,因为移动计算设备100的用户或操作者的配置文件可能表示该用户只关注现代艺术。
然后,所选择的增强信息391可以被传输至移动计算设备100并且被视频处理模块135用来生成增强的视频流390。然后,增强的视频流390可以由用户观看或由可能存在于移动计算设备100上的任何其它应用程序使用。拍摄视频流、处理所拍摄的视频流、识别所拍摄的视频流中的对象和/或人、增强所拍摄的视频流以及向用户或其它应用程序呈现增强的视频流的操作实时发生,是在本发明的实施例的范围内的。例如,用户可以拍摄视频流305并且几乎瞬间看见在移动计算设备100的显示屏幕106上显示的增强的视频流390。
对于一些实施例,增强信息可以包括图形信息和/或音频信息。图形增强信息可以叠加拍摄的视频流305的帧。音频增强信息可以通过移动计算设备100的扬声器142听见。因此,移动计算设备100上的视频处理模块135辨别由摄像头120拍摄的视频流的每个帧中的一个或多个关注点的主要特征,将那些辨别出的关注点传输至服务器计算机300,并且在显示屏106上显示叠加原始拍摄的视频流的增强信息和/或通过移动计算设备100的扬声器142输出具有原始拍摄的视频流的增强信息的音频部分。
对于一些实施例,在对象识别引擎310和/或面部识别引擎320正在辨别对象时,增强引擎325可以开始传输潜在大的增强信息391(例如视频文件、广告、图像等)。否则,增强引擎325可以在辨别出关注点和对象以后开始传输增强信息391。然后,视频处理模块135可以将增强信息叠加到视频流上。对于一些实施例,用户可以有查看所拍摄的原样的视频流的选择权,或者用户可以选择查看相应的增强的视频流。
对于一些实施例,服务器计算机300可以被实现为使用加利福尼亚州旧金山的Autonomy公司的智能数据操作层(IDOL)软件产品及关联系统的智能数据操作层(IDOL)服务器。该IDOL服务器从来自各种源的连接器收集索引数据来训练这些引擎并将该索引数据存储在其为数据的快速处理和检索而优化的专有结构中。作为信息处理层,IDOL形成企业中所有内容的概念的和上下文的理解,自动分析来自超过数千种不同内容格式及甚至人们兴趣的任一条信息。IDOL能够对数字内容上进行数百个操作,这些操作包括超链接、代理、归纳、分类生成、聚类、推断、剖析、提示和检索。IDOL服务器具有知识库并与由视频处理模块135传输的特征图案相互关联。图7图示在IDOL服务器中包含的模块的示例。
IDOL服务器使组织能受益于自动化受益而不丧失人工控制。这种互补方法允许自动处理与多种可人控制的代用相结合,提供两全其美且从来不需要“或者/或者”的选择。IDOL服务器集成所有已知的历史系统,省去组织拼凑多个系统来支持完全它们不同组件的需要。
IDOL服务器可以与IDOL连接器关联,IDOL连接器能够连接数百个内容贮存库和支持超过数千种文件格式。这提供将任何形式的结构化的、半结构化的和非结构化的数据聚合和索引到单一索引内的能力,而无论该文件驻留在哪里。全面的一组连接器能够支持对所有企业信息(包括富媒体)的单点搜索,为组织节约大量时间和金钱。通过几乎访问每一条内容,IDOL为组织的数据资产提供360度的视图。
IDOL服务器实现上下文感知的概念技术并且使用深度音频和视频索引技术来寻找最相关的产品,最相关的产品包括音乐、游戏和视频。IDOL服务器在没有人工输入的情况下自动分类内容来提供直观导航。IDOL服务器还生成至概念上类似的内容的链接,而不需要用户搜索。可以用自由文本描述和样品图像(例如产品的快照)训练IDOL服务器。业务控制台提供关于查询模式的、人气和点击率的实时度量,这允许操作者响应于改变需求配置环境、设置提升和调整相关度。
对于一些实施例,移动计算设备100的视频处理模块135可以辨别对象和/或人的特性,然后致使那个信息被实时传输至IDOL服务器。因此,有可能在服务器计算机300的增强引擎325对第一组帧执行其操作时,移动计算设备100的视频处理模块135可以对第二组帧执行其操作,并且第三组帧连同关联的增强信息可以在显示屏106上显示。
用户配置文件信息和相关增强信息的选择
图3B图示根据一些实施例的可以用于确定对所拍摄的视频流使用的增强信息的服务器计算机的示例。服务器计算机300中包含的组件可以是除图3A中所示的组件以外的组件。这包括用户配置文件引擎328和用户配置文件数据库360。通过保持用户配置文件,服务器计算机300可以,利用关于视频流的每个帧中的辨别的关注点的、与主管视频处理模块135的特定移动计算设备的用户更相关的增强信息,增强这些辨别的关注点。
对于一些实施例,本文描述的系统,利用关于视频流的每个帧中的辨别的关注点的、与主管视频处理应用135的特定移动计算设备的用户更相关的增强信息(图形信息或音频信息)增强每个辨别的关注点。能够供应的增强信息的类型被存储在增强信息数据库350中。在选择要对视频流使用的增强信息的过程中,服务器计算机300使用移动计算设备的用户特定信息。
当用户使用移动计算设备100时,视频处理模块135捕获用户的习惯。例如,当用户正在拍摄视频流、浏览互联网和拨打电话号码等时,可以捕获用户习惯。信息可以包括常常呼叫的电话号码、经常访问的网站、购买的产品种类、用户的年龄和性别、家庭的城市和地址信息等。用户特定信息的使用以及随时间自动更新和完善该信息的能力,对于增强信息的准确提供和靶定是非常重要的并且将该技术与所有前身区分开。
视频处理模块135将关注点的特征和可视信息的组合连同用户个人的配置文件传输至服务器计算机300,并且将附加的多条信息传输至服务器计算机300。然后,服务器计算机300对视频流305中具有在那个位置和那时与那个用户具有特别相关性的信息的帧确定增强信息。用户特定的方面能够自动训练和更新那个用户的用户配置文件,这允许提供更多相关信息。由于每个用户利用该增强视频流的系统,所以关于他的使用的信息被用于建立代表他的关注、人口特征和/或特定使用模式的“配置文件”。随后,用户的移动计算设备100能够被部署来从摄像头搜集信息和视频流并且将所收集的信息传输至服务器计算机300。这可用于确定在那个特定时间为那个用户向该系统做出的最相关的增强,以及增强具有附加可视的或视听的对象或图像的视频流305。
用户配置文件数据库360被维持来代表每个用户的关注、人口特征和/或特定使用模式,它们能够在确定何种增强信息增强移动计算设备100上所拍摄的视频流的帧中的关注点时被用户配置文件引擎328和增强引擎325引用。增强引擎325可以具有一组例如二十或更多种不同增强关注点的方式,无论是向如连锁餐厅这样的一类已知对象应用的一般增强信息,还是只向已知对象及增强信息中与历史关注点的通告、相关网页的链接、街道地址的叠加、电话号码、在建筑物中的商店列表、为加强那个对象创建的加强手段(例如动画)不同的主题应用的特定内容增强信息。
用户配置文件引擎328帮助增强引擎325确定向移动计算设备100选择和传输的哪个增强信息将被加入由移动计算设备100拍摄的视频流的帧中。在实施例中,IDOL服务器系统可以自动地规划用户彼此交互以及与他们移动计算设备上的信息交互的方式,建立他们关注和位置的概念性理解以提供量身定制的商业内容。一发布新的音轨和相关产品,IDOL服务器就提供自动通知,或者提供位置特定的信息(例如交通报告和最新新闻),而不需要用户搜索。
服务器镜像和分布式处理
图4图示根据一些实施例的具有可以用于过滤从移动计算设备接收的信息的镜像服务器的网络图的示例。连接至网络200的服务器计算机405M、405A、405B和405C可以被配置为IDOL服务器。IDOL服务器可以包括主IDOL服务器405M和多个镜像IDOL服务器405A-405C。主IDOL服务器405M可以将其信息镜像到镜像IDOL服务器405A-405C上。该镜像可以包括将主IDOL服务器数据库406M的内容镜像到镜像IDOL服务器数据库406A-406C中。例如,对象数据库300、面部识别数据库340和增强信息数据库350可以遍及所有镜像IDOL服务器405A-405C镜像。主IDOL服务器405M和镜像IDOL服务器405A-405C可以位于或分布在多个地理位置,以服务这些地区的移动计算设备。例如,主IDOL服务器405M可以位于巴黎,镜像IDOL服务器405A可以位于波士顿,镜像IDOL服务器405B可以位于费城,并且镜像IDOL服务器405C可以位于纽约。
图4中示出的IDOL服务器中每个IDOL服务器可以包括其自己的对象识别引擎310、面部识别引擎320和增强引擎325。服务器在特定位置内的分布有助于提高辨别和增强响应时间。相同服务器站点位置的镜像还帮助提高辨别和增强响应时间。然而此外,通过分布工作负荷和限制物理传输距离和关联时间,相同服务器站点位置的镜像协助维护潜在数百万具有驻留的视频应用的移动计算设备,该数百万的移动计算设备全部递交具有显著关注点特征的数据包。用相同的内容复制该IDOL服务器组并且穿越互联网镜像该IDOL服务器组,以将该负荷分布至多个相同的站点来改善响应时间和应对那些移动计算设备的查询容量。
对于一些实施例,视频处理模块135可以包括编码块,以在移动计算设备100用于拍摄视频流时呼叫并与主IDOL服务器的最近非过载镜像站点建立永久安全通信信道。例如,移动计算设备410A可以经由通信信道450与IDOL服务器405A连接,因为它们都位于波士顿。然而,当IDOL服务器405A过载时,移动计算设备410A可能与纽约的IDOL服务器405C连接,因为IDOL服务器405C可能未超载,即便IDOL服务器405C可能离移动计算设备410A比IDOL服务器405A离移动计算设备410A更远。
对于一些实施例,一组IDOL服务器可以用于过滤从移动计算设备接收的信息。层次化的一组过滤器可以遍及该组IDOL服务器线性地散布。这些IDOL服务器可以协作地一起工作来处理所传输的对象和/或人可视信息,以确定或识别该对象是什么或该人是谁。例如,当移动计算设备410A与IDOL服务器405A建立通信信道时,IDOL服务器405A-405C可以共同工作来处理从移动计算设备410A接收的信息。这种协作通过IDOL服务器405A和IDOL服务器405C之间的通信信道451以及IDOL服务器405A和IDOL服务器405B之间的通信信道452说明。类似地,当移动计算设备410B与IDOL服务器405C建立通信信道454时,IDOL服务器405C、405B和405A可以共同工作来处理从移动计算设备410B接收的信息。这种协作通过IDOL服务器405C和IDOL服务器405A之间的通信信道451以及IDOL服务器405C和405B之间的通信信道453说明。
该组服务器中的每个服务器应用过滤器来消除从移动计算设备100接收的特征的图案作为可能匹配,以特征化对象数据库330中的多组已知对象。能够同时消除可能全部种类的匹配对象,然而能够在不同的服务器上同时解决甚至在单个种类的可能匹配对象中的子集。每个服务器可以层次化地排除每个机器上的潜在已知图像,以减少通往与所分析的关注对象匹配或不匹配的层次化分支和叶路径。
移动计算设备100有内置的Wi-Fi电路,并且视频流被传输至互联网上的IDOL服务器。IDOL服务器组包括遍布该IDOL服务器组分布的对象识别引擎310、IDOL数据库,还包括增强引擎325。遍布该IDOL服务器组分布的对象识别引擎310将层次化的一组过滤器应用至视频流每个帧中的所传输的经辨别的关注点和其关联的主体,以确定那个帧中的那一个或多个关注点是什么。由于这是在时间和近似位置上一系列密切相关的帧的视频馈给,所以视频流的每个帧中的经辨别的关注点的主要特征的图案帮助减少在对象数据库330中存储的匹配已知对象。
IDOL服务器之间的协作可以帮助加速识别过程。例如,IDOL服务器中的每个IDOL服务器可以应用过滤器来消除特征的特定图案作为与存储在对象数据库330中的已知对象的特征的可能匹配。可以同时消除全部种类的对象,然而协作的IDOL服务器可以同时将甚至单个类别的对象中的子集辨别为潜在的匹配对象。每个IDOL服务器可以层次化地排除潜在的已知对象来减少层次化的分支和叶路径,以确定是否存在匹配。
对于一些实施例,IDOL服务器中的每个IDOL服务器可以将帧中的关注点的可视显著特征的图案与对象数据库330中的已知对象进行匹配。关注点的特征的几何形状的X-Y坐标的可能像点对点连接图示那样给人留下印象。当点在纸的网格上的X-Y坐标以正确顺序连接时,识别与这张纸上的那些点关联的图像/对象是简单的任务。这可以包括将点对点型几何形状的传输特征连同它们的显著颜色、识别的文本、数字和符号、地理信息、相对于相机的方向信息与存储在对象数据库330中的特征组进行比较。点对点型几何形状能够被亚设置为有特色的三角形、金字塔、矩形、立方体、圆和圆柱等,每个形状具有其自己的关联的有特色的颜色或图案,以帮助辨别和识别。IDOL服务器中的每个IDOL服务器可以层次化地将与关注点有关的特征点的集合映射至存储的已知对象的特征点的图案,以将帧中内容与已知对象进行匹配。
对于一些实施例,当那个被辨别的对象正近实时地(例如小于5秒)在显示屏上显示时,视频处理模块135可以连续地传输所拍摄的视频流305的帧中的关注点306的所辨别的特征,同时对象识别引擎310(分布在大量的IDOL服务器上)和增强引擎325传输回增强信息来增强在移动计算设备100的存储器中的存储的视频文件的所拍摄的帧中的所辨别的图像/对象。
如所讨论的,服务器计算机300具有一组一个或多个数据库来存储关于位置(例如建筑物)和结构的可视信息的可扩展数据库,以便执行可视数据流的随后匹配来确定被查看的建筑物或结构。通过将移动用户同与这些可视图像关联的特性的数据库进行匹配,在任何时候,服务器-客户机系统解决确定移动用户的确切位置的问题,并且准确地确定用户正在看什么。不管位置如何且以最少训练,该系统提供能力来构造对辨别位置的问题的可扩展方案。
具有服务器计算机300和一组一个或多个数据库(例如对象数据库330、面部识别数据库340、增强信息数据库350、用户配置文件数据库330)的系统在世界的一组视图上进行训练,所得到的模型被存储以供今后检索。地理信息和可视特性的组合允许更快的匹配。此后,移动计算设备能够被部署为从摄像头搜集地理空间信息和视频数据流并且将其反馈至该系统。这用于精准定位视图内的对象或位置并且增强具有附加可视或视听对象或图像的视频流。
流程图
图5图示根据一些实施例的可以在移动计算设备上运行来创建增强的视频流的方法的示例流程图。该方法可以与可在移动计算设备100上执行的操作关联。移动计算设备100可以拍摄视频流的许多帧。在正拍摄这些帧时,这些帧被分析并且这些帧中的对象的特性信息被提取,如框505所示。提取可以涉及特征、几何形状信息、不同颜色、点对点型图案和其它相关信息。提取可以涉及生成关注点的几何形状的X-Y坐标的图案和与这些形状关联的颜色,以及涉及来自GPS模块的地理坐标、来自与该移动计算设备的摄像头121关联的方向传感器22的方向信息。
在框510,将特性信息和地理信息传输至网络中的服务器计算机(例如服务器计算机300),使得该服务器计算机能够过滤信息并确定增强信息。接收特性信息的服务器计算机可以是地理上与移动计算设备100最接近的服务器计算器。如果这个服务器计算机过载,那么作为替代可以选择附近的未过载的服务器计算机。所选择的服务器计算机可以与其它镜像服务器计算机协作来确定增强信息。服务器计算机可以使用层次化的方法执行比较操作和匹配操作。服务器计算机可以查找可使用的不同增强信息。准则可以用于选择向移动计算设备100传输的适当的增强信息。
在框515,从服务器计算机接收增强信息。也许可能的是,当移动计算设备100正接收用于一系列帧的增强信息时,移动计算设备100还在准备用于待传输至服务器计算机的另一系列帧的特性信息。通常,对于视频流中的每个帧,从移动计算设备100将包含关注点的特性信息的传输数据包传输至服务器计算机。
在框520,移动计算设备100可以使用增强信息来叠加视频流的适当的帧并且创造增强的视频流。在框525,增强的视频流在移动计算设备100的显示屏106上显示。
图6A图示根据一些实施例的可以在服务器计算机上运行来确定增强信息的方法的示例流程图。与该方法关联的操作可以由许多服务器执行,这许多服务器协作地工作来几乎实时地向移动计算设备提供结果。该方法可以在框605处开始,这里从移动计算设备10接收特性和地理信息。还可以从方向传感器122接收摄像头121的方向信息。如先前提到的,可以压缩从移动计算设备100传输的信息。因此,服务器可以包括解压缩逻辑,以解压缩信息。如果需要,服务器还可以包括压缩逻辑,以压缩增强信息。在框610,服务器可以执行比较和匹配或识别操作。这可以包括过滤和消除不具有相同特性的任何已知对象。这可以包括减少至可能具有相同特性的潜在已知对象。
也许可能的是,存在用于每个已知对象的一组增强信息,并且服务器可能需要确定选择哪个增强信息,如框615所示。在框620,将增强信息传输至移动计算设备100。也许可能的是,当服务器在传输用于视频流的一组帧的增强信息时,服务器还在对与同一视频流关联的另一组帧执行框610中的操作。可以注意,图5和图6A中描述的方法还可以用于使用面部识别引擎320和面部识别数据库340执行面部识别。
图6B图示根据一些实施例的可以在服务器计算机上运行来基于用户配置文件确定增强信息的方法的示例流程图。与该方法关联的操作可以由IDOL服务器执行,并且可以扩展在图6A的框615中描述的操作上。该方法可以在框625开始,这里验证移动计算设备100的标识。移动计算设备100的标识信息可以在初始通信期间,例如在建立移动设备100和服务器计算机300之间的通信信道期间,被传输至服务器计算机300。该标识信息可以由用户配置文件引擎328来确定来自用户配置文件数据库360的合适的用户配置文件,如框630所示。如所讨论的,随着用户随时间推移使用移动计算设备100,可能已经收集用户配置文件。用户配置文件可以包括特定的用户提供的信息。在框635,可以基于用户配置文件中的信息选择增强信息。这允许将相关增强信息传输至移动计算设备100,以增强视频流305,如框640所示。
图6C图示根据一些实施例的可以用于基于由移动计算设备生成的啁啾信号确定距离的方法的示例流程图。该方法可以在已经执行面部识别引擎320的面部识别操作且已经出现确定的识别以后操作。该方法可以在框650开始,这里两个移动计算设备进行初始的啁啾通信。在框655,第一移动计算设备广播啁啾信号预定多次(例如3次)并记录广播啁啾信号的时钟时间。在框660,第二移动计算设备记录音频信号并且检测啁啾信号和它们的时钟时间。在框665,在数秒(例如5秒)的暂停以后,该过程反向,此时第二移动计算设备广播其啁啾信号相同的预定数次。然后,第二设备记录其广播时间,并且向第一设备发送检测时间和广播时间。在框670,第一移动计算设备检测在其记录的音频信号中的第二移动计算设备的啁啾信号。在框675,从第一移动计算设备中,基于所测得的时钟时间,使用第一公式来确定这两个移动计算设备之间的距离。
在框680,收听由第一移动计算设备和第二移动计算设备广播的这两个啁啾信号的第三移动计算设备也检测其记录的音频信号中的啁啾信号,并且将时间报告给第一移动计算设备。第三移动计算设备可以被置于预定的位置。在框685,从第一移动计算设备,使用第二公式来计算第二移动计算设备关于它自己和第三移动计算设备的位置(x,y),并且对所有三个移动计算设备之间的位置和距离进行三角测量。在框690,第一移动计算设备和第二移动计算设备的视频处理模块135然后将箭头或足迹叠加在显示在每个各自的显示屏上的视频流上,以指出第一移动计算设备和第二移动计算设备的每个用户应当向哪个方向前进来见面。因此,场景分析、面部识别和后续音频信号的组合用于检测和确定一个或多个移动计算设备的空间精确位置。
智能数据操作层(IDOL)服务器
图7图示根据一些实施例的IDOL服务器的一些模块的示例框图。IDOL服务器700可以包括自动超链接模块705、自动类别模块710、自动查询指引模块715、自动分类生成模块720、配置文件模块725、自动聚类模块730和概念检索模块735。自动超链接模块705被配置允许相关的多条信息之间人工的和全自动的链接。超链接在查看文件时实时生成。自动类别模块710被配置为允许通过在未结构化的文本中发现的概念获取精确的类别,确保所有数据被分组在正确的上下文中。
自动查询指引模块715被配置为提供查询建议来发现最相关的信息。其通过将结果动态聚类到它们最相关的分组中辨别词的不同含义。自动分类生成模块720被配置为自动生成分类并且立即将数据组织到熟悉的子/父分类结构中。其基于对具有作为整体的数据集的概念的理解辨别名称并创建每个节点。配置文件模块725被配置为基于个人的浏览、内容消费和内容贡献来准确理解个人的关注。它基于明确的配置文件和隐含的配置文件来生成每个用户的多层面的概念配置文件。
自动聚类模块730被配置为帮助分析多组文档和用户配置文件并且自动辨别内在的主题或信息聚类。它甚至聚类在邮件、电话交谈和即时消息中交换的未结构化的内容。概念检索模块735被配置为使用对概念进行识别的可扩展技术识别的图案和基于可能不在文档中的词语来查找信息。应当注意,IDOL服务器700还可以包括能够使其能与移动计算设备100一起工作来生成本文描述的增强的视频流的其它模块和特征。如上文描述的,IDOL服务器700的模块中的一个或多个模块可以用于实现对象识别引擎310、面部识别引擎320、增强引擎325和用户配置文件引擎328的功能。
计算机系统
图8图示根据一些实施例的可以用于实现增强的视频流的示例计算机系统。计算环境802仅是适合的计算环境的一个示例,而并不旨在表示对本发明实施例的使用或功能的范围的任何限制。计算环境802也不应被解释为具有与图8所示的组件中的任一个组件或任何组合相关的任何依赖或需求。
本发明的实施例可以用通用的或专用的计算机系统或配置来操作。可以使用的众所周知的计算机系统的示例包括但不限于:个人计算机、服务器计算机、手持设备或笔记本电脑设备、平板电脑、智能电话、上网本、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子设备、网络PC、微型计算机、大型计算机、包括以上系统或设备中任一种的分布式计算环境等等。
本发明的实施例可以在由计算机系统运行的计算机可运行指令(例如程序模块)的通常背景下描述。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、数据库、对象、组件、数据结构等。本领域技术人员能够将本文中的描述和/或附图实现为计算机可运行指令,计算机可运行指令能够体现在下面介绍的任何形式的计算机可读介质上。
本发明的实施例还可以在分布式计算环境中实施,在分布式计算环境中由通过通信网络链接的远程处理设备执行任务。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地计算机存储介质和远程计算机存储介质中。
参考图8,计算环境802包括通用计算机系统810。计算机系统810的组件可以包括但不限于:具有一个或多个处理核心的处理单元820、系统存储器830和系统总线821,系统总线821将包括系统存储器在内的各个系统组件联接至处理单元820。系统总线821可以是使用多种总线体系结构中任一种的包括存储器总线或存储器控制器、外围总线及本地总线在内的数种总线结构中的任一种总线结构。作为示例而不作为限制,这样的体系结构包括:工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)场所总线以及外设组件互连(PCI)总线(也被称为夹层(Mezzanine)总线)。
计算机系统810典型地包括各种计算机可读介质。计算机可读介质能够是计算机系统810能够访问的且包括易失性介质和非易失性介质、可移除介质和不可移动介质的任何可用介质。作为示例而不作为限制,计算机可读介质的用途包括诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的存储。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储或其它磁性存储设备、或者能够用于存储所需要的信息并能够被计算机系统810访问的任何其它介质。通信介质典型地包含计算机可读指令、数据结构、程序模块或其它传输机制,并且包括任何信息传递介质。
系统存储器830包括呈易失性和/或非易失性存储器形式的计算机存储介质,例如只读存储器(ROM)831和随机存取存储器(RAM)832。在ROM831中典型地存储基本输入/输出系统833(BIOS),基本输入/输出系统833(BIOS)包含帮助在计算机系统810内的元件之间例如在启动期间传递信息的基本例程。RAM832典型地包含可由处理单元820立即访问的和/或当前由处理单元820操作的数据和/或程序模块。作为示例而不作为限制,图8图示操作系统834、应用程序835、其它程序模块836以及程序数据837。
计算机系统810还可以包括其它可移除的/不可移除的易失性/非易失性计算机存储介质。仅作为示例,图8图示硬盘驱动器841、磁盘驱动器851和光盘驱动器855,硬盘驱动器841从不可移除的非易失性磁性介质读取或向不可移除的非易失性磁性介质写入,磁盘驱动器851从可移除的非易失性磁盘852读取或向可移除的非易失性磁盘852写入,光盘驱动器855从可移除的非易失性光盘856(例如CD ROM)或其它光学介质读取或向可移除的非易失性光盘856或其它光学介质写入。能够在示例性操作环境中使用的其它可移除/不可移除的易失性/非易失性计算机存储介质包括但不限于:USB驱动器和设备、盒式磁带、闪存卡、数字多功能盘、数字视频磁带、固态RAM、固态ROM等。硬盘驱动器841典型地通过不可移除的存储器接口(例如接口840)连接至系统总线821,并且磁盘驱动器851和光盘驱动器855典型地通过可移除的存储器接口(例如接口850)连接至系统总线821。
上面讨论的和图8所示的驱动器及其关联的计算机存储介质,为计算机系统810提供计算机可读指令、数据结构、程序模块和其它数据的存储。在图8中,例如,硬盘驱动器841被图示为存储操作系统844、应用程序845、其它程序模块846和程序数据847。注意,这些组件可以与操作系统834、应用程序835、其它程序模块836和程序数据837相同或不同。这里,操作系统844、应用程序845、其它程序模块846和程序数据847被给予不同的数字标识,以说明至少它们是不同的副本。
参与者可以通过诸如键盘862、麦克风863和指点设备861(例如鼠标、跟踪球或触摸板)之类的输入设备将命令和信息输入计算机系统810。其它输入设备(未示出)可以包括操纵杆、游戏垫、扫描仪等。这些和其它输入设备经常通过与系统总线821联接的用户输入接口860与处理单元820连接,但是可以通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其它接口和总线结构连接。监视器891或其它类型的显示设备也通过接口(例如视频接口890)连接至系统总线121。除监视器以外,计算机还可以包括诸如扬声器897和打印机896之类的其它外围输出设备,其它外围输出设备可以通过输出外围接口890连接。
计算机系统810可以在使用与一个或多个远程计算机(例如远程计算机880)的逻辑连接的联网环境中操作。远程计算机880可以是个人计算机、手持设备、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且典型地包括上面关于计算机系统810描述的元件中的许多元件或全部元件。图8所示的逻辑连接包括局域网(LAN)871和广域网(WAN)873,但还可以包括其它网络。这样的联网环境在办公室、企业范围的计算机网络、内联网和互联网中是常见的。
当在LAN联网环境中使用时,计算机系统810通过网络接口或适配器870连接至LAN871。当在WAN联网环境中使用时,计算机系统810典型地包括调制解调器872或用于通过WAN873(例如互联网)建立通信的其它装置。调制解调器872可以是内部的或外部的,其可以经由用户输入接口860或其它适当机制连接至系统总线821。在联网环境中,关于计算机系统810或其部分描述的程序模块可以存储在远程存储器存储设备中。作为示例而不作为限制,图8将远程应用程序885图示为驻留在远程计算机880上。将理解,所示出的网络连接是示例性的,可以使用在计算机之间建立通信链路的其它装置。
应当注意,本发明的一些实施例可以在如关于图8描述的计算机系统那样的计算机系统上实施。然而,本发明的一些实施例可以在服务器上、在专用于消息处理的计算机上、在手持设备上或在分布式系统上实施,在分布式系统中本设计的不同部分可以在分布式系统的不同部分上实施。
可以与系统总线821联接的另一设备是电源,例如电池或直流(DC)电源和交流(AC)适配器电路。DC电源可以是电池、燃料电池或类似的需要周期性地再充电的DC电源。通信模块(或调制解调器)872可以采用无线应用协议(WAP)来建立无线通信信道。通信模块872可以实现无线联网标准,例如电气和电子工程师协会(IEEE)802.11标准、IEEE标准802.11-1999(IEEE于1999年公布)。
移动计算设备的示例可以是笔记本计算机、平板电脑、上网本、移动电话、个人数字助理或具有板载处理能力和无线通信能力的由直流(DC)电源(例如燃料电池或电池)供电的其它类似设备,该DC电源向移动计算设备供应DC电压并且仅在移动计算设备中并且需要周期性地再充电。
虽然参考附图对本发明的实施例充分地进行描述,但是要注意,各种变化和修改将对本领域技术人员变得明显。这样的变化和修改应当被理解为包括在由所附权利要求限定的本发明的实施例的范围内。例如,为形状和材料提供特定示例,然而实施例包括那些对本领域技术人员显而易见的变化,例如改变形状或将材料组合在一起。此外,虽然已经示出本发明的一些特定实施例,但是本发明不应局限于这些实施例。例如,已经示出几个特定模块。每个模块执行一些特定功能。然而,所有这些功能可以被组合至一个模块中或者甚至可以进一步被分解成很多模块。由电子硬件组件执行的大多数功能可以由软件模拟来复制,反之亦然。本发明应被理解为不由本文描述的特定实施例限制,而是仅由所附权利要求的范围限制。