三维对象合成通过使用视觉引导作为二维数字图像的一部分的制作方法

文档序号:16682508发布日期:2019-01-19 00:39阅读:140来源:国知局
三维对象合成通过使用视觉引导作为二维数字图像的一部分的制作方法

作为二维数字图像的一部分的三维(3d)对象的合成是用于电影特效、用于数字营销内容的产品模型等的常用技术。例如,数字营销专业人员可以与图像处理系统交互,以将产品作为3d对象(例如,鞋)插入背景图像中,以用于在广告中使用,例如用于横幅广告。该功能通过图像处理系统的进步可用于支持基于物理的绘制和基于图像的照明。这些进步使得由于基于2d数字图像的环境将光和颜色效果逼真地应用于3d对象,图像处理系统能够以视觉上令人满意的方式来将3d对象合成为2d数字图像的一部分。

然而,用于通过图像处理系统关于2d数字图像来对3d对象进行取向的传统技术对于复杂的用户而言是低效率和乏味的,并且对新手用户来说是困难的。由于应用于取向的重复校正和缺乏精度的结果,例如在观看时显得真实,这导致采用这些传统技术的图像处理系统对计算资源使用是低效的。

例如,传统技术可以分为五类,包括基于手动旋转的技术、基于消失点的技术、基于标记的技术、依赖于除了数字图像(例如,深度场或陀螺仪)之外的外部数据的技术、以及基于机器学习的技术。在传统的手动旋转技术中,通过使用轨迹球,3d对象相对于2d数字图像被取向。然而,这种技术在实践中通常被专业用户认为是乏味的,并且由新手用户容易出错,因为不正确的旋转中心会导致不期望的和不自然的结果。

在传统的消失点技术中,2d数字图像中的正交平行线组用于确定消失点,这些消失点足以恢复内在相机参数,例如在图像中定义水平线。然而,在实践中,2d数字图像可以不包含正交平行线组(例如,对于“关闭”)和/或平行线导致具有距图像的边界的引入误差的距离的消失点。另外,在一些情况下,不同的平行线组之间的正交性可能不成立(例如,限定这些线的不同对象彼此不正交),并且因此也引入误差。此外,传统的消失点技术可能依赖于用户来追踪平行线,这是冗长乏味的并且可能引入不准确之处。另一方面,自动边缘检测技术可以部分地自动化跟踪过程,而且还引入作为2d数字图像中的前景纹理和噪声的结果的误差。

在传统的基于标记的技术中,包括已知尺寸的标记作为2d数字图像的一部分。然后由图像处理系统基于标记从2d数字图像中提取内在和外在的摄像机参数,诸如用于摄像机校准、视觉效果和增强现实。然而,实际上,这些标记通常不可用。

在传统的基于外部数据的技术中,从数字图像设备的图像传感器外部的传感器(例如深度传感器、飞行时间相机、结构化网格技术等等)获得的数据被用于提供附加信息。虽然这些数据可以提高精度,但是这些技术也引入了附加的挑战。例如,陀螺仪可以确定捕获数字图像设备的取向,但不能确定图像场景中的任意平面。深度传感器的输出通常被认为是有噪声的并且具有低分辨率,因此也可能引入误差。因此,这些挑战可能会引入不准确和不切实际的结果。

在适用于单个数字图像的传统基于机器学习的技术中,这些技术通常依赖于关于数字图像的特性的严格假设,如果不符合,则会导致误差。这些假设的示例包括数字图像的类型(例如,室内对室外)、从数字图像恢复的平面的类型(例如,接地平面或照摄像机轴对准的平面)等等。因此,这些传统技术可能由于各种挑战而失败,并且例如由于这些传统技术的重复应用而导致计算资源的低效消耗。



技术实现要素:

描述了技术和系统,其中采用视觉引导作为图像处理系统的一部分,以辅助3d对象作为数字图像的一部分的合成。视觉引导提供了简化和计算上高效的技术(例如,可以在浏览器内实时执行),以添加3d对象作为数字图像的一部分,以达到视觉上令人满意的结果。在一个示例中,图像处理系统接收在用户界面中指定平面的取向的输入。输入可以通过用户与用户界面的交互来提供(例如,通过在数字图像内的对象的角上的“点击”)或者使用边缘和角检测技术自动地且无需用户干预来提供。作为响应,图像处理系统将用户界面中的视觉引导输出为对应于平面,例如可视化为框边。

还支持用户交互以修改视觉引导的取向,使得由视觉引导定义的平面的取向与由数字图像捕获的图像场景视觉上一致。然后,图像处理系统基于由视觉引导定义的平面来对3d对象进行取向,然后向其应用渲染技术,诸如基于物理的渲染和基于图像的照明。以这种方式,视觉引导提供了直观和计算上高效的机制来引导3d对象的取向作为数字图像的一部分。

本发明内容以简化形式引入了概念的选择,这在下面具体实施方式中进一步描述。因此,本发明内容不旨在标识所要求保护的主题的必要特征,也不旨在用作确定所要求保护的主题的范围的辅助。

附图说明

参考附图描述具体实施方式。在图中表示的实体可以指示一个或多个实体,并且因此可以在讨论中可以互换地引用实体的单数或复数形式。

图1是可操作以采用本文所描述的合成技术的示例实现中的环境的图示。

图2描绘了更详细地示出图1的3d对象配置模块的操作的示例实现中的系统。

图3描绘了响应于关于数字图像的桌面定义平面的用户输入的视觉引导的输出示例。

图4描绘了使用图4的视觉引导来关于数字图像的桌面取向3d对象的示例。

图5是描绘示例实现中的过程的流程图,其中输出视觉引导以辅助3d对象的合成作为数字图像的一部分。

图6描绘了将视觉引导更详细地示出为框边的示例实施例。

图7描绘了其中视觉引导包括作为样本3d对象的另一视觉元素的示例实现。

图8描绘了可用于创建然后修改视觉引导的创建、调整大小和更新交互的示例实现。

图9描绘了可用于修改视觉引导的滑动和提升交互的示例实现。

图10-13图示了视觉引导相对于数字图像的取向的确定中涉及的考虑。

图14示出了包括示例设备的各种组件的示例系统,其可以被实现为如参考图1-13所描述和/或利用的来实现本文描述的技术的实施例的任何类型的计算设备。

具体实施方式

概述

描述技术和系统以辅助通过图像处理系统将3d对象合成为二维(2d)图像的一部分。视觉引导提供了简化和计算上高效的技术(例如,可以在浏览器内实时执行),以添加3d对象作为数字图像的一部分,以达到视觉上令人满意的结果。为此,基于由图像处理系统接收的输入来生成视觉引导,其可以由用户通过与用户界面交互手动地或通过边缘和/或角检测自动地定义。例如,图像处理系统可以接收通过与用户界面的用户交互而生成的输入,以指定数字图像的背景中的矩形区域的四个角,例如通过在桌面的四个角上的“点击”来跟随地面等等。

然后,图像处理系统生成视觉引导,用于结合数字图像在用户界面中输出,例如,可视化为“框边”。一旦视觉引导被生成,则附加的用户输入可以被图像处理系统接收以修改视觉引导。这可能包括调整大小、更新(例如,调整角以改变视觉引导在三维空间中的取向)、滑动视觉引导(例如,向前、向后、向左、向右)、提升视觉引导(例如,诸如视点在引导的平面上方或下方出现)等等。以这种方式,即使深度信息或可以用于定义三维关系的其他信息不可用于二维图像,也可以基于用户输入来容易地修改视觉引导以关于二维图像的图像场景“看起来视觉上正确”。

图像处理系统随后采用视觉引导来合成3d对象作为2d数字图像的一部分。如上所述,视觉引导定义了关于2d数字图像的平面。因此,3d对象由图像处理系统自动地并且不需要用户干预地被取向到由视觉引导定义的平面。作为其中的一部分,也可以采用基于物理的渲染和基于图像的照明,使得3d对象当基于视觉引导的平面合成为2d数字图像的一部分时,看起来是现实的。以这种方式,3d对象可以“依赖于”视觉引导(例如,可视化为餐垫),并以最小的处理资源以计算高效和直观的方式与2d数字图像的图像场景看起来视觉上一致。

在下面的讨论中,描述了可以使用本文描述的技术的示例环境。还描述了可以在示例环境以及其他环境中执行的示例过程。因此,示例过程的执行不限于示例环境,并且示例环境不限于示例过程的执行。

示例环境

图1是可操作以采用本文描述的技术的示例实现中的数字媒体环境100的图示。所示出的环境100包括可以以各种方式配置的计算设备102。

例如,计算设备102可以被配置为桌面型计算机、膝上型计算机、移动设备(例如,假设诸如图示的平板计算机或移动电话的手持配置)等等。因此,计算设备102可以从具有大量存储器和处理器资源的完全资源设备(例如,个人计算机、游戏机)变化到具有有限的存储器和/或处理资源的低资源设备(例如,移动设备)。另外,虽然示出了单个计算设备102,但是计算设备102可以代表多个不同的设备,诸如企业利用的用于执行如图14所示的“在云上”的操作的多个服务器。

计算设备102被示为包括图像处理系统104。图像处理系统104至少部分地以计算设备102的硬件实现,以处理和变换数字图像106,其被示出为保持在计算设备102的存储装置108中。数字图像106例如可以被配置为二维数字图像,其中定义图像场景中的对象相互之间沿着“z”轴的关系的数据不直接可用。本文描述的技术也可应用于3d数字图像,诸如用作增加图像场景内的3d对象的合成精度的辅助。

图像处理系统104的处理的示例包括数字图像106的创建、数字图像106的修改、以及数字图像106在用户界面110中的渲染,用于例如由显示设备112输出。尽管被示为在计算设备102处本地实现,但是图像处理系统104的功能也可以经由网络114可用的功能(诸如web服务的一部分或“在云中”)被实现为整体或部分。

由图像处理系统104并入的用于处理图像106的功能的示例被示出为资产合成模块116。资产合成模块116代表计算设备102的功能(例如,由处理系统和计算机可读存储介质实现的)以合成对象(例如,3d对象)作为数字图像106的二维背景的一部分。这可以包括使用技术来处理3d数字对象以与数字图像视觉一致。这些技术的示例包括基于物理的绘制和基于图像的照明。例如,在基于物理的绘制中,资产合成模块116可以考虑扩散、反射、半透明、透明度、节能、菲涅尔效应和微表面,以定义光如何在数字图像106的图像场景内传输。基于图像的照明被用于考虑图像场景中的作为这种光传输源的光源,例如太阳、灯等。

资产合成模块116还被图示为包括3d对象配置模块118。3d对象配置模块118至少部分地以计算设备102的硬件(例如处理系统和计算机可读存储介质)实现,以通过视觉引导的使用来支持3d对象合成作为数字图像106的一部分。例如,3d对象配置模块118可以用于关于作为数字图像106的一部分已经包括的对象(例如,桌面126)来合成诸如瓶子120、122和植物124的3d对象,使得3d对象与数字图像106看起来视觉上一致。为此,3d对象配置模块118采用视觉引导,其可用于定义相对于数字图像106的图像场景来取向3d对象的平面,例如桌面126。以这种方式,3d对象配置模块118提供了简化的和计算上有效的技术来达到视觉上令人满意的结果,其示例在下面的部分中描述并在对应的图中示出。

通常,关于上面和下面的示例描述的功能、特征和概念可以在本节中描述的示例过程的上下文中使用。此外,关于本文中的不同附图和示例描述的功能、特征和概念可以彼此互换,并且不限于在特定附图或过程的上下文中的实现。此外,与不同的代表性过程和本文对应的附图相关联的框可以一起应用和/或以不同的方式组合。因此,关于本文中不同示例环境、设备、组件、图和程序所描述的个体功能、特征和概念可以以任何合适的组合使用,并且不限于本说明书中列举的示例所表示的特定组合。

3d对象合成丝为2d数字图像的一部分

图2描绘了更详细地示出图1的3d对象配置模块118的操作的示例实现中的系统200。图3描绘了响应于关于数字图像106的桌面126定义平面的用户输入的视觉引导的输出示例300。图4描绘了使用图4的视觉引导来相对于数字图像106的桌面126对3d对象进行取向。图3和图4示出了使用相应的第一和第二阶段302、402、304、404。图5描绘了在其中输出视觉引导以辅助3d对象的合成作为数字图像的一部分的示例实现中的过程500。

以下讨论描述了可以利用所描述的系统和设备来实现的技术。该过程的方面可以以硬件、固件、软件或其组合来实现。该过程被示出为指定由一个或多个设备执行的操作的块的集合,并且不必限于示出的用于执行由各个框的操作的顺序。在以下讨论的部分中,可以互换地参照图1-5。

为了在该示例中开始,资产合成模块116接收数字图像106。在该示例中,数字图像是二维数字图像106,因为深度信息(例如,“z”方向)不直接可以从图像本身获得,以定义由数字图像106捕获的图像场景中的对象的关系。换句话说,在该示例中,图像场景的深度信息不与数字图像106一起捕获,并且因此数字图像106被配置为二维。

然后将数字图像106作为输入被提供给3d对象配置模块118以合成3d对象作为数字图像106的一部分。为此,取向输入模块202接收定义关于数字图像106的平面的输入204(框502)。输入204可以以各种方式被接收,诸如由用户与用户界面206的交互而产生的,由对象检测模块208实现的用于定位数字图像106内的对象的边缘或角的自动化技术等等。

如图3的第一阶段302所示,例如,输入306、308、310、312可以经由用户接口206接收或者从对象检测模块208自动地且没有用户介入来接收。在该用户界面206的示例中,用户使用将矩形定义为用户界面内的平面的输入306、308、310、312来指定四个位置。这可以以定义的顺序(例如顺时针或逆时针顺序)执行,或者由对象检测模块208从任何顺序通过尝试用户点击的每个可能的排列并且保持引入最少量的误差的结果来学习。在该示例中,桌面126用作用户辅助,因此可以使用在数字图像106中包括的对象来增加平面定义中的精度。还可以考虑与用户界面206的用户交互的其他示例,诸如点击和拖拽以定义如以下讨论中进一步描述的随后被修改的初始形状。

在对象检测模块208的自动化示例中,由模块标识的边缘和/或角用作相对于数字图像定义平面的基础。例如,可以采用边缘检测技术,其中使用数字图像106内的像素亮度的不连续性来定义例如在桌面126和数字图像106的背景之间的边缘。从这些边缘,对象检测模块208然后可以构造由输入204定义的平面。

然后,输入204被提供给视觉引导生成模块210,并且被用作为生成对应于平面的视觉引导212并且结合数字图像106输出的基础(框504)。如图3的第二阶段304所示,例如,视觉引导212被输出为连接输入306-312的网格。因此,作为网格的视觉引导212定义了所定义的平面与数字图像106的关系,其可以在需要的情况下被修改。

图6描绘了将视觉引导212更详细地示出为框边的示例性实现600。视觉引导212包括各种视觉元素类型,视觉元素类型中的每一个支持不同的用户交互技术。视觉元素类型的示例包括对应于输入306-312的四个角点602、604、606、608、四个边缘节点610、612、614、616和一个中心节点618,其被连接以形成的作为视觉引导212的网格。网格的间隔为深度缩短提供了视觉提示。还可以支持其他视觉提示,其示例描述如下。

图7描绘了其中视觉引导212包括作为样本3d对象702的另一视觉元素的示例实现700。该示例中的样本3d对象702不是将被构成为数字图像106的一部分的3d对象,而是被选择为用于辅助视觉引导212相对于图像的取向的感知的示例。也可以考虑其中样本3d对象702是3d对象的其他示例,例如可以具有或可以不具有应用于其的基于物理的渲染和基于图像的照明效果的较低分辨率版本。

在该示例中,选择作为椅子的样本3d对象702,因为大多数用户具有关于椅子相对于数字图像106的背景看起来如何的良好直觉。因此,样本3d对象702用作用于辅助用户理解视觉引导212(例如,框边)相对于数字图像106的图像场景的取向的视觉引导。在实现中,样本3d对象702的大小被自动地基于视觉引导212的大小来确定。

一旦输出,视觉引导212被配置为支持用户交互来修改引导,其功能由视觉引导修改模块214表示。如前所述,视觉引导212的视觉元素支持不同类型的用户交互。因此,可以经由与用户界面的用户交互来修改视觉引导(框506),以便相对于数字图像106对视觉引导进行取向和改进视觉引导的取向。

图8描绘了可用于创建并然后修改视觉引导212的创建、调整大小和更新交互802、804、806的示例实现800。在创建用户交互802中,例如通过“点击”用户界面、使用触摸屏功能检测的手势的使用等等来接收用户输入,以指定视觉引导212的四个角的定位。因此,用户输入指定如前面关于图6所述的四个角节点602、604、606、608。

一旦创建,可以使用调整大小交互804来修改视觉引导212的总体大小。这在图8中通过选择和拖动图6的边缘节点610、612、614、616来图示,其导致相邻角节点的对应移动来调整网格大小。

视觉引导修改模块214还可以支持更新交互806。更新交互806支持用户输入以重新定位(例如,拖动)角节点602-608。作为响应,视觉引导修改模块214在用户界面中实时地更新视觉引导212,其示例在图8中顺序地示出。

图9描绘了可用于修改视觉引导212的滑动和提升交互902、904的示例性实现900。在滑动交互902中,接收到涉及视觉引导212的不是节点的部分(例如,连接节点的网格线)的用户选择。作为响应,视觉引导修改模块214将视觉引导作为整体移动对应的方向,而不调整大小或重新取向。这支持用于在数字图像106内的第一位置处(例如,在该位置处基于该位置处的对象来定义矩形相对容易)定义视觉引导212,然后将视觉引导212重新定位到相对于数字图像106的另一位置(例如,其可以不具有用于跟踪的清晰线索)的能力。

通过与图6的中心节点618的用户交互来执行提升交互904,以将视觉引导212在三维空间中提升或降低在视点(例如,“相机”的位置)的“上方”或“下方”来捕获图像场景的数字图像106。还可以支持各种其他用户交互。

再次返回到图2,然后由3d对象放置模块216接收视觉引导212。3d对象放置模块216被配置为基于由视觉引导212定义的平面来合成3d对象218。这样做,3d对象的取向由3d对象放置模块216基于视觉引导的指示平面来确定(框508)。然后,3d对象放置模块216使得3d对象将在用户界面中结合数字图像以确定的取向被显示(方框510)。

如图4的第一阶段402所示,例如,视觉引导212根据用户需要相对于桌面126定位。然后,3d对象放置模块216接收3d对象218作为数据,并且将对象(其示例包括瓶120、122和植物124)相对于平面取向。然后移除视觉引导212,留下3d对象218与数字图像106合成。3d对象放置模块216可以还执行附加技术以视觉地修改3d对象218作为合成的一部分,包括基于物理的绘制和基于图像的照明。

在一个实现中,视觉引导212可以保持(例如,在基于物理的绘制和/或基于图像的照明的应用之前或之后的定义的时间量),以允许对视觉引导和定义的平面的进一步修改,以及因此3d对象如何被合成为数字图像106的一部分。例如,3d对象放置模块216可以首先以取向显示3d对象218,然后等待应用基于物理的照明和其他渲染技术,以节省计算资源,直到实现所期望的取向。

上述用户交互依赖于从输入206计算视觉引导212的3d坐标的能力。然而,这样的2d到3d的非投影被已知为在数学上是不适的,由于存在无限数量的3d矩形以投影到相同的四个图像点上,其示例1000在图10中示出。

因此,3d对象配置模块118可以采用假设来解决这个挑战。这些假设的示例包括(1)已知的摄像机投影模型;以及(2)在视觉引导212的一个角处的已知深度。使用已知的摄像机投影模型,3d对象配置模块118可以相对于由数字图像106捕获的图像场景来恢复相机位置。在不失一般性的情况下,让摄像机位于原点o处。

四个图像点可以在相机坐标中被表示为qi:=(xi,yi,zi),其中i∈{0,1,2,3}。图像点与摄像机位置一起定义从摄像机辐射的穿过图像点中的每一个的四条射线。因此,如图11的示例性系统1100所示,框边的每个角的3d坐标位于沿着这些射线的某处。因此,在下文中进行讨论,以确定视觉引导212的角沿着每个射线位于有多远。换句话说,确定深度值di,使得视觉引导212角的3d坐标被定义为pi:=(qi-o)di=qidi。

在该示例中,视觉引导212被配置为3d矩形(即,所有角都为90°),并且可以提取如此的四个二次正交性约束(pi+1-pi)·(pi-1-pi)=0。此外,也可以提取从上述假设的框边角之一的已知深度例如,令第一个角的深度为然后可以将问题定义为找到满足以下项的di的值

(pi+1-pi)·(pi-1-pi)=0i∈{0,1,2,3}

然后,3d对象放置模块216可以通过用诸如ceressolver的标准求解器求解非线性最小二乘问题来计算解。在另一示例中,迭代几何算法被没有外部库依赖性的3d对象放置模块216采用,并且可以用小于30行的javascript进行编码。因此,这种轻量级的算法可以支持web浏览器中的实时用户交互。

几何算法基于这样的观察:如果两个相邻节点的位置是已知的(例如p0和p1),则下一个点p2属于与通过p1的向量(p1-p0)的正交平面。然后从该正交条件导出深度d2和因此的位置p2:

(p1-p0)·(p2-p0)=0

(p1-p0)·p2=(p1-p0)·p0

因此,利用di和di+1的知识,可以计算di+2的值。由于该值是已知的,因此3d对象放置模块216采用该算法首先对d1值进行猜测(例如),并进行计算d2。利用计算的d1和d2,3d对象放置模块216然后可以计算d3。最后,利用d2和d3,在3d对象放置模块216返回到充当起始点的射线并且重新计算深度d0,深度d0可能与不同。3d对象放置模块216可以使用d3和d0的值来更新猜测值d1。

如图12和13的示例实现1200、1300所图示的,连续的迭代可以使得深度值朝向无限远螺旋或螺旋进收敛到零深度的平凡解。因此,3d对象放置模块216可以对迭代采用另一个固定点:上述第一个假设的解。

为了找到固定点,深度矢量(d0,d1,d2,d3)被重新调节到更新d1之后的并且另一个迭代被启动。可以使用两种不同的误差测量来测量收敛:正交性误差(eo)和平面度误差(ep)。

其中是视觉引导212的中心,并且n:=(p1-p0)×(p3-p0)是视觉引导212的估计的正常值。当两个误差测量值都低于给定阈值(例如10-6)或已经达到最大迭代次数时,迭代将停止。实际上,当解存在时,固定点迭代算法通常在10到20次迭代内收敛。当(1)没有解(例如,当4个图像点形成一个凹形四边形)时,最大迭代次数也可以防止算法过度使用计算资源。因此,在该实现中,最大迭代次数被设置为二十,但是也可以考虑其他示例。

以这种方式,3d对象配置模块118可以基于视觉引导的指示平面来确定取向,并且使用该取向来合成3d对象218以修改数字图像106。此外,这可以在不需要与数字图像106相关联的深度信息的情况下执行,并且因此可应用于宽范围的二维数字图像。

系统和设备示例

图14图示了通常在1400处的示例系统,其包括代表可以实现本文描述的各种技术的一个或多个计算系统和/或设备的示例计算设备1402。这通过包括图像处理系统104、资产合成模块116和3d对象配置模块118来图示。计算设备1402可以是例如服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统、和/或任何其它合适的计算设备或计算系统。

如所图示的示例计算设备1402包括处理系统1404、一个或多个计算机可读介质1406、和一个或多个i/o接口1408,其彼此通信地耦合。虽然未示出,计算设备1402还可以包括系统总线或将各种组件彼此耦合的其他数据和命令传送系统。系统总线可以包括不同总线结构(诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或本地总线)的任何一种或组合。还考虑了各种其它示例,诸如控制和数据线。

处理系统1404代表使用硬件来执行一个或多个操作的功能。因此,处理系统1404被示出为包括可被配置为处理器、功能块等的硬件元件1410。这可以包括在硬件中实现为使用一个或多个半导体形成的专用集成电路或其他逻辑器件。硬件元件1410不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由半导体和/或晶体管(例如,电子集成电路(ic))构成。在这种情况下,处理器可执行指令可以是电子可执行指令。

计算机可读存储介质1406被示为包括存储器/存储装置1412。存储器/存储装置1412表示与一个或多个计算机可读介质相关联的存储器/存储装置容量。存储/存储组件1412可以包括易失性介质(诸如随机存取存储器(ram))和/或非易失性介质(诸如只读存储器(rom)、闪存、光盘、磁盘等)。存储/存储组件1412可以包括固定介质(例如,ram、rom、固定硬盘驱动器等)以及可移除介质(例如,闪存、可移除硬盘驱动器、光盘等)。计算机可读介质1406可以以下面进一步描述的各种其他方式配置。

输入/输出接口1408代表允许用户向计算设备1402输入命令和信息,并且还允许使用各种输入/输出设备向用户和/或其他组件或设备呈现信息的功能性。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描仪、触摸功能(例如,被配置为检测物理触摸的电容式或其他传感器)、相机(例如,可以采用可见或诸如红外频率的不可见的波长以将移动识别为不涉及触摸的手势)等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备1402可以以下面进一步描述的各种方式进行配置,以支持用户交互。

本文可以在软件、硬件元件或程序模块的一般上下文中描述各种技术。通常,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文所用的术语“模块”、“功能”和“组件”通常表示软件、固件、硬件或其合成。本文描述的技术的特征是平台无关的,这意味着这些技术可以在具有各种处理器的各种商业计算平台上实现。

所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传输。计算机可读介质可以包括可由计算设备1402访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质“。

“计算机可读存储介质”可以指与仅信号传输、载波或信号本身相反的能够实现信息的持久和/或非暂时性存储的介质和/或设备。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移除和不可移除介质和/或存储设备的硬件,其在适用于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据的信息的方法或技术中实现。计算机可读存储介质的示例可以包括但不限于ram、rom、eeprom、闪存或其它存储器技术、cd-rom、数字通用盘(dvd)或其他光学存储装置、硬盘、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或适于存储所需信息并且可被计算机访问的其他存储设备、有形介质或制品。

“计算机可读信号介质”可以指被配置为诸如经由网络向计算设备1402的硬件发送指令的信号承载介质。信号介质通常可以在诸如载波、数据信号或其它传输机制的调制数据信号中实施计算机可读指令、数据结构、程序模块或其他数据。信号介质还包括任何信息传递介质。术语“调制数据信号”是指具有以将信息编码到信号中的方式设置或改变其特性中的一个或多个的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质、以及诸如声学、rf、红外和其它无线介质的无线介质。

如前所述,硬件元件1410和计算机可读介质1406是以硬件形式实现的模块、可编程设备逻辑和/或固定设备逻辑的代表,其可以在一些实施例中被采用以实现本文描述的技术的至少一些方面,诸如用于执行一个或多个指令。硬件可以包括以下项的组件:集成电路或片上系统、专用集成电路(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)以及硅或其它硬件的其他实现。在这种上下文中,硬件可以操作为执行由硬件所实施的指令和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件,例如先前描述的计算机可读存储介质。

前述的组合也可以用于实现本文所述的各种技术。因此,软件、硬件或可执行模块可以被实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件1410实施的一个或多个指令和/或逻辑。计算设备1402可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,可以至少部分地以硬件(例如通过使用计算机可读存储介质和/或处理系统1404的硬件元件1410)来实现可由计算设备1402可执行的作为软件的模块的实现。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备1402和/或处理系统1404)执行/操作,以实现本文描述的技术、模块和示例。

本文描述的技术可以由计算设备1402的各种配置来支持,并且不限于本文所描述的技术的具体示例。也可以通过使用诸如经由如下所述的平台1416在“云”1414上的分布式系统来全部或部分地实现该功能。

云1414包括和/或代表用于资源1418的平台1416。平台1416抽取云1414的硬件(例如,服务器)和软件资源的底层功能。资源1418可以包括在远离计算设备1402的服务器上执行计算机处理时可以利用的应用和/或数据。资源1418还可以包括通过因特网和/或通过诸如蜂窝或wi-fi网络的订户网络提供的服务。

平台1416可以抽象资源和功能以将计算设备1402与其他计算设备连接。平台1416还可以用于抽象资源的缩放以向经由平台1416实现的资源1418提供与遇到的需求相对应缩放的级别。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统1400中。例如,功能可以部分地在计算设备1402上以及经由抽象云1414的功能的平台1416来实现。

结论

尽管已经以对结构特征和/或方法动作特定的语言描述了本发明,但是应当理解,在所附权利要求中限定的本发明不一定限于所描述的具体特征或动作。相反,具体特征和动作被公开为实现所要求保护的发明的示例形式。

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