掌桥专利:专业的专利平台
掌桥专利
首页

用于操控虚拟物体的方法、装置、设备和存储介质

文献发布时间:2023-06-19 19:28:50


用于操控虚拟物体的方法、装置、设备和存储介质

技术领域

本公开的示例实施例总体涉及计算机领域,特别地涉及用于操控虚拟物体方法、装置、设备和计算机可读存储介质。

背景技术

扩展现实(Extended Reality,XR)技术包括虚拟现实技术(Virtual Reality,VR)、增强现实技术(Augmented Reality,AR)以及混合现实技术(Mixed Reality,MR)。随着扩展现实技术的进步,构建虚拟场景不仅仅局限于单纯的观看,更多的是进行与虚拟物体之间的交互,例如模拟双手持握虚拟物体。

发明内容

在本公开的第一方面,提供了一种操控虚拟物体的方法。该方法包括:确定与虚拟环境相关联的第一操控设备的第一位置和与虚拟环境相关联的第二操控设备的第二位置;基于第一位置和第二位置,确定第一朝向信息;基于第一朝向信息和第一操控设备的第二朝向信息,确定与虚拟环境中绘制的虚拟物体相关联的旋转矩阵;以及基于旋转矩阵,确定虚拟物体在虚拟环境中的位姿。

在本公开的第二方面,提供了一种用于操控虚拟物体的装置。该装置包括:位置确定模块,被配置为确定与虚拟环境相关联的第一操控设备的第一位置和与虚拟环境相关联的第二操控设备的第二位置;朝向信息确定模块,被配置为基于第一位置和第二位置,确定第一朝向信息;旋转矩阵确定模块,被配置为基于第一朝向信息和第一操控设备的第二朝向信息,确定与虚拟环境中绘制的虚拟物体相关联的旋转矩阵;以及位姿确定模块,被配置为基于旋转矩阵,确定虚拟物体在虚拟环境中的位姿。

在本公开的第三方面,提供了一种电子设备。该设备包括至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。指令在由至少一个处理单元执行时使设备执行第一方面的方法。

在本公开的第四方面,提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,计算机程序可由处理器执行以实现第一方面的方法。

应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。

附图说明

结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:

图1示出了现有技术虚拟物体旋转的示意图;

图2示出了本公开的实施例能够在其中实现的示例环境的示意图;

图3示出了根据本公开的一些实施例的确定旋转矩阵中列向量的一个示例的示意图;

图4示出了根据本公开的一些实施例的操控虚拟物体的过程的流程图;

图5示出了根据本公开的一些实施例的用于操控虚拟物体的装置的框图;以及

图6示出了能够实施本公开的多个实施例的设备的框图。

具体实施方式

可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。

例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。

作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。

可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。

可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。

下面将参照附图更详细地描述本公开的实施例。虽然附图中示出了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

需要注意的是,本文中所提供的任何节/子节的标题并不是限制性的。本文通篇描述了各种实施例,并且任何类型的实施例都可以包括在任何节/子节下。此外,在任一节/子节中描述的实施例可以以任何方式与同一节/子节和/或不同节/子节中描述的任何其他实施例相结合。

在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“一些实施例”应当理解为“至少一些实施例”。下文还可能包括其他明确的和隐含的定义。术语“第一”、“第二”等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

如前文所简要提及的,XR技术利用硬件设备结合多种软件技术手段呈现虚拟场景或者将虚拟的内容和真实场景融合,使得人们的交互方式由2D交互向3D交互转变。VR技术例如利用头戴设备模拟真实世界的3D互动场景。AR技术例如通过电子设备(例如手机、平板、眼镜等)将各种信息和影像叠加到现实世界中。MR技术介于VR技术和AR技术之间,在虚拟世界、现实世界和用户之间,利用数字技术实现实时交互的复杂场景。

在虚拟场景中,用户通过虚拟双手持握虚拟物体,虚拟物体的姿态要尽可能的与用户双手的姿态吻合,使得用户感觉动作自然地与虚拟物体进行交互。例如,在基于VR技术的射击游戏中,用户对应的虚拟双手持握虚拟枪械时,需要尽可能让虚拟枪械的姿态与用户双手的姿态相吻合,并且需要给予用户变换持枪角度的自由,尽量不要对用户持枪做出限制,这样才能让用户感觉自然,增强沉浸感。

物体在三维空间中的有限转动,可依次用三个相对转角表示,即进动角、章动角和自旋角,这三个转角统称为欧拉角。可以用欧拉角来描述刚体在三维欧氏空间的取向。但是,在使用欧拉角描述物体旋转时,会出现“万向死锁”的问题。

图1示出了现有技术中万向节旋转的示意图。万向节的工作模式与欧拉角表达旋转的方式完全一致,因此可以藉由万向节来解释欧拉角的万向死锁问题。万向节包括三个彼此相互连接的环臂。每个环臂代表不同的轴向,例如三个环臂分别表示X轴、Y轴和Z轴。中间的箭头代表物体。采用欧拉角描述物体的姿态时,必须确定三个轴的旋转顺序,例如为Y轴→X轴→Z轴。Y轴是X轴的父层级,X轴是Z轴的父层级。父层级的旋转会带动所有子层级旋转,而子层级的旋转不影响父层级的状态。具体地,当Y轴旋转时,会带动X轴、Z轴和箭头一起旋转。当X轴旋转时,会带动Z轴和箭头一起旋转。当Z轴旋转时,只能带动箭头旋转。当旋转X轴的环臂时,有概率使得Y轴的环臂和Z轴的环臂处于同一平面(如图1中的右图所示),此时Y轴的环臂和Z轴的环臂功能基本等效,整个万向节仅只有两个轴的环臂正常工作,而其内的箭头亦不再能够保持原来的平衡状态,这种现象即为万向死锁。此时,若要箭头继续旋转到需要的位置必须同时旋转3个轴的环臂,但这种旋转过程在实际空间中的轨迹为弧线,使得中间的箭头不能按照预期的直线旋转,不合理的旋转不能满足实际工程应用。调整三个轴的旋转顺序会改变其中两个环臂共面的概率,但不能完全消除在某一角度陷入万向死锁的问题。

具体到虚拟场景中,采用欧拉角描述虚拟物体的旋转时,例如按照Y轴→X轴→Z轴的顺序,则在虚拟物体的俯仰角达到90°时,会失去一个轴向,使得物体从90°继续旋转时不自然。尤其是在处理双手持握虚拟物体旋转时,被持握物体的姿态由双手的姿态决定,基于每只手进行姿态解算再合并时,会出现严重卡顿而不可用。一些产品使用四元数提供平滑的插值,并且避免万向死锁的问题,但是难以同时考虑双手的姿态对物体旋转的影响。

本公开的实施例提出了一种用于操控虚拟物体的方案。根据本公开的各种实施例,确定与虚拟环境相关联的第一操控设备的第一位置和与虚拟环境相关联的第二操控设备的第二位置。基于第一位置和第二位置,确定第一朝向信息。基于第一朝向信息和第一操控设备的第二朝向信息,确定与虚拟环境中绘制的虚拟物体相关联的旋转矩阵。基于旋转矩阵,确定虚拟物体在虚拟环境中的位姿。由此,用户可以操控虚拟环境中的虚拟物体进行符合预期的、平滑自然地旋转。

下面参考附图来描述本公开的示例实施例。

图2示出了本公开的实施例能够在其中实现的示例环境200的示意图。在环境200中,用户210穿戴XR设备220。XR设备220与计算设备230通信,为用户210重建虚拟场景或将虚拟的内容和真实场景融合。部分实施方式中,XR设备220与计算设备230也可以一体化设计。在本公开中,基于VR技术重建的虚拟场景,以及基于AR技术或MR技术将虚拟的内容和真实场景融合的场景,统称为虚拟场景240(如图2中虚线框所示)。

XR设备220可以是头戴或可穿戴的近眼显示设备,例如头戴式显示器、智能眼镜等,支持VR、AR、MR等技术。XR设备220可以包括图像生成组件和光学显示组件,用于在单目或双目视场中重建虚拟场景240并显示用户的虚拟双手270和虚拟物体280。虚拟物体280可以是游戏道具或者其他三维元素,本公开的实施例对此没有限制。

第一操控设备250和第二操控设备260可以是手持操控设备,例如手柄、手环或戒指等结构样式。第一操控设备250和第二操控设备260可以包括动作传感器,计算设备230接收传感器数据,用于在虚拟场景240中控制用户210对应的虚拟双手270执行相应的动作。在一些实施例中,用户210的双手分别持握第一操控设备250和第二操控设备260。例如,在VR射击游戏的虚拟场景中,用户210对应的虚拟双手270呈现为双手持握虚拟枪械。

计算设备230可以是能够与XR设备220、第一操控设备250和第二操控设备260进行通信的单独设备,比如用于图像或数据处理的服务器、计算节点等,也可以与XR设备220集成在一起。在一些实施例中,计算设备230可以实现为XR设备220,也即,在此情况下,XR设备220可以实现计算设备230的所有功能。应当理解,上述关于计算设备230的描述仅仅是示例性而非限制性的,计算设备230可以实现为多种形式、结构或类别的设备,本公开的实施例对此没有限制。

应当理解,仅出于示例性的目的描述环境200的结构和功能,而不暗示对于本公开的范围的任何限制。

以下将继续参考附图描述本公开的一些示例实施例。

为了避免万向死锁问题,以及考虑双手姿态对被握持物体旋转的影响,本公开的各个实施例使用旋转矩阵描述物体的旋转。继续参考图2,在虚拟场景240中,虚拟双手270持握虚拟物体280,虚拟物体280的位姿可以从虚拟双手270的位置结合旋转矩阵推导得出。

在一些实施例中,计算设备230确定与虚拟环境240相关联的第一操控设备250的第一位置和与虚拟环境240相关联的第二操控设备260的第二位置。

应当理解,可以根据所采用的操控设备的类型的不同,计算设备230可以采用对应的适当方式来确定操控设备的位置和/或姿态。例如,计算设备230可以通过操控设备的传感器来实现位姿数据的采集,并通过诸如图像定位来确定操控设备在物理空间中的位置。本公开不旨在对操控设备的位置和/或姿态信息的确定方式进行限定。

本公开的各个实施例使用旋转矩阵描述虚拟物体280旋转前后所在坐标系之间的相互关系。虚拟物体280旋转前所在的坐标系为虚拟双手270所在的坐标系。虚拟双手270的位置分别对应于第一操控设备250的第一位置和第二操控设备260的第二位置。计算设备230例如通过游戏引擎的接口获取第一位置和第二位置。

为了保证在同一坐标系下进行运算,需要获取第一操控设备250和第二操控设备260相对于同一坐标系下的变换。例如,计算设备230通过游戏引擎的接口获得第一操控设备250和第二操控设备260相对于世界坐标系下的变换。从世界坐标系中的虚拟双手270的坐标推导出虚拟物体280自身坐标系中的虚拟物体280的坐标,需要构建旋转矩阵。世界坐标系是以世界原点为坐标原点建立的三维坐标系。虚拟物体自身坐标系是以虚拟物体自身为原点建立的三维坐标系。虚拟物体自身坐标系是局部坐标系,可以定义虚拟物体280自身的方向以及初始局部位置。

图3示出了根据本公开的一些实施例的确定旋转矩阵中列向量的示例300的示意图。示例300描述了确定旋转矩阵中列向量的过程。假设虚拟物体280在旋转前所在的坐标系为A坐标系,A坐标系例如为虚拟引擎坐标系。虚拟物体280旋转后所在的坐标系为B坐标系,B坐标系例如为虚拟物体280的自身坐标系。示例300可以实现在计算设备230处。以下参考图2描述示例300。

第一操控设备250在A坐标系中的第一位置为P1,用三维向量F1、U1和R1表示。向量F1、向量U1和向量R1均为单位向量。向量F1与第一操控设备250的自身坐标系的X轴同向,向量U1与Z轴同向,向量R1与Y轴同向。

第二操控设备260在A坐标系中的第二位置为P2,用三维向量F2、U2和R2表示。向量F2、向量U2和向量R2均为单位向量。向量F2与第二操控设备260的自身坐标系的X轴同向,向量U2与Z轴同向,向量R2与Y轴同向。

假设虚拟物体280在B坐标系中的位置为P。旋转矩阵可以将位置P在B坐标系下的坐标,转换为在A坐标系下的坐标,反之亦然。而位置P在A坐标系下的坐标基于第一位置P1和第二位置P2确定。由此,可以基于第一位置P1和第二位置P2推导旋转矩阵。

旋转矩阵是在直角坐标系下描述物体的旋转操作。对于三维旋转,可以先推导二维再延伸到三维。亦即,首先获得旋转矩阵中的两个列向量,再获得第三个列向量。

在一些实施例中,计算设备230基于第一位置P1和第二位置P2,确定第一朝向信息。进一步的,计算设备230基于第一朝向信息确定旋转矩阵中的第一个列向量。

在一些实施例中,计算设备230基于第一位置P1和第二位置P2,确定第一位置P1到第二位置P2的方向向量,并将方向向量作为第一朝向信息。

作为一个示例,在VR射击游戏中,虚拟物体280为虚拟枪械。虚拟枪械包括枪柄和枪管。在用户210对应的虚拟双手270握持虚拟枪械时,其中一个操控设备为主设备,另一个操控设备为副设备。主设备和副设备可以通过枪械握持点的主副来区分。例如,左手握持的第一操控设备250对应枪柄位置,可以作为主设备;右手握持的第二操控设备260对应枪管位置,可以作为副设备。一般来说,虚拟枪械的朝向是从第一操控设备250指向第二操控设备260,参考图3,可以用从第一位置P1到第二位置P2的方向向量F表示。通过方向向量F可以控制枪口的朝向。

在一些实施例中,计算设备230确定第一操控设备250的前向向量,并将其作为第二朝向信息。进一步的,计算设备230基于第二朝向信息确定旋转矩阵中的第二个列向量。应当理解,前向向量例如可以表示第一操控设备250的预定轴线(例如,横轴线或纵轴线)的朝向,或者也可以表示第一操控设备250中的两个参考部位(例如,手柄前端和手柄尾端)所构成的方向。

继续VR射击游戏的例子,用户210在各种角度下拧动手腕,以控制虚拟枪械围绕枪管的轴线旋转。一般来说,虚拟枪械的旋转通过主设备的旋转进行控制。参考图3,通过第一操控设备250的前向向量F1来控制枪械绕自身的旋转。

在一些实施例中,为了确定旋转矩阵,计算设备230对方向向量F和前向向量F1执行正交化处理,以确定正交化方向向量和正交化前向向量。进一步的,计算设备基于正交化方向向量和正交化前向向量,确定旋转矩阵的第一个列向量和第二个列向量。

对方向向量F和前向向量F1进行正交化,使得在不同的正交的维度上调整其中一个向量,不会或几乎不会影响其他维度上的向量变化。对向量进行正交化的方法包括:格拉姆-施密特(Gram-Schimidt)正交化、改进的格拉姆-施密特(Modified Gram-Schmidt)正交化、豪斯霍尔德(Householder)正交化、吉文斯(Givens)正交化等。

在一些实施例中,计算设备230对方向向量F和前向向量F1进行格拉姆-施密特正交化,得到向量F`和向量U`。对方向向量F进行格拉姆-施密特正交化得到正交化方向向量F`;对前向向量F1进行格拉姆-施密特正交化得到正交化前向向量U`。具体如下:

U`=Fl-(F1·F`)F` (2)

在一些实施例中,计算设备230基于正交化方向向量和正交化前向向量,确定向量积。进一步地,计算设备230可以基于可以计算正交化方向向量F`与正交化前向向量U`的向量积。

作为一个示例,对向量F`和向量U`进行叉乘得到向量积,向量积垂直于向量F`,同时向量积垂直于向量U`。向量叉乘亦即通过分量交叉相乘再相减得到向量积,在只关心向量方向不关心向量大小的情况下,进一步对向量积进行标准化,其可以表示为:

R`=U`×F` (3)

由此,进一步地,计算设备230可以基于向量F`、向量U`和向量R`来确定旋转矩阵中的三个对应的列向量,分别表示为第一列向量、第二列向量和第三列向量。在一些实施例中,计算设备230可以基于虚拟物体280的自身坐标系来确定与向量F`、向量U`和向量R`对应的列向量。

作为一个示例,在游戏建模时,虚拟物体280的自身坐标系采用左手坐标系,与虚拟物体280平行的方向为Y轴,虚拟物体280的上方为Z轴。虚拟物体280旋转后,在虚拟物体280的自身坐标系中向量R`与X轴反向,向量F`与Y轴同向,向量U`与Z轴同向。由此,与向量积对应的第三列向量可以表示为-R`,与正交化方向向量对应的第一列向量可以表示为F`,与正交化前向向量对应的第二列向量可以表示为U`。

在一些实施例中,计算设备230基于虚拟物体280的自身坐标系确定第一列向量、第二列向量以及第三列向量在旋转矩阵中的相对次序。相对次序是指基于坐标轴的次序对第一列向量、第二列向量以及第三列向量进行排列的顺序。相应地,计算设备230可以确定旋转矩阵可以表示为[-R` F` U`]。进一步地,计算设备230基于该旋转矩阵可以确定虚拟物体280在虚拟环境240中的位姿。

在一些实施例中,计算设备230在虚拟环境240中绘制虚拟物体280,并将其呈现为被虚拟双手270持握。计算设备230基于虚拟双手270的位置推导描述虚拟物体280的旋转的旋转矩阵,该旋转矩阵可以被应用于虚拟物体280的网格组件,例如,应用于由游戏引擎接口提供的枪械的网格组件,从而绘制出被虚拟双手270持握的虚拟枪械。用户210通过操控设备控制虚拟枪械时,可以得到符合用户210操控预期的、自然的双手持握枪械的手感。

在一些实施例中,计算设备230接收针对第一操控设备250的预设交互。进一步的,计算设备230基于这样的预设交互,触发与虚拟物体280相关联的虚拟功能。例如,在虚拟场景240中,虚拟双手270持握虚拟枪械,在用户210通过第一操控设备250指示射击的操作时,计算设备230控制虚拟枪械发射虚拟子弹。

综上所述,本公开的各个实施例通过两个操控设备构建的旋转矩阵来控制被操控物体的旋转,实现了通过双手位置得到被操控物体的位姿,并且符合用户的现实认知。通过从第一操控设备250指向第二操控设备260的方向向量控制虚拟物体280的朝向,通过第一操控设备250的前向向量控制虚拟物体280绕自身旋转。以此方式,可以解决用户210在各种角度下拧动主手手腕,控制虚拟物体280产生符合预期的、自然流畅的旋转。

示例过程

图4示出了根据本公开的一些实施例的用于操控虚拟物体的过程400的流程图。过程400可以被实现在计算设备230处。下面参考图2描述过程400。

在框410,计算设备230确定与虚拟环境相关联的第一操控设备的第一位置和与虚拟环境相关联的第二操控设备的第二位置。

在框420,计算设备230基于第一位置和第二位置,确定第一朝向信息。

在框430,计算设备230基于第一朝向信息和第一操控设备的第二朝向信息,确定与虚拟环境中绘制的虚拟物体相关联的旋转矩阵。

在框430,计算设备230基于旋转矩阵,确定虚拟物体在虚拟环境中的位姿。

在一些实施例中,计算设备230基于第一位置和第二位置,确定第一位置到第二位置的方向向量,以作为第一朝向信息。

在一些实施例中,计算设备230确定第一操控设备的前向向量,以作为第二朝向信息。

在一些实施例中,计算设备230对方向向量和前向向量执行正交化处理,以确定正交化方向向量和正交化前向向量;以及基于正交化方向向量和正交化前向向量,确定旋转矩阵。

在一些实施例中,计算设备230基于正交化方向向量和正交化前向向量,确定向量积;以及基于正交化方向向量、正交化前向向量和向量积,分别确定旋转矩阵的列向量。

在一些实施例中,与正交化方向向量对应的第一列向量、与正交化前向向量对应的第二列向量、和与向量积对应的第三列向量在旋转矩阵中的相对次序是基于虚拟物体的自身坐标系而确定的。

在一些实施例中,虚拟物体在虚拟环境中被绘制以呈现为被双手持握。

在一些实施例中,计算设备230接收针对第一操控设备的预设交互;以及基于预设交互,在虚拟环境中触发与虚拟物体相关联的虚拟功能。

示例装置和设备

图5示出了根据本公开的某些实施例的用于操控虚拟物体的装置500的示意性结构框图。装置500可以被实现为或者被包括在计算设备230中。装置500中的各个模块/组件可以由硬件、软件、固件或者它们的任意组合来实现。

如图所示,装置500包括位置确定模块510,被配置为确定与虚拟环境相关联的第一操控设备的第一位置和与虚拟环境相关联的第二操控设备的第二位置。装置500还包括朝向信息确定模块520,被配置为基于第一位置和第二位置,确定第一朝向信息。装置500还包括旋转矩阵确定模块530,被配置为基于第一朝向信息和第一操控设备的第二朝向信息,确定与虚拟环境中绘制的虚拟物体相关联的旋转矩阵。装置500还包括位姿确定模块540,被配置为基于旋转矩阵,确定虚拟物体在虚拟环境中的位姿。

在一些实施例中,朝向信息确定模块520被配置为:基于第一位置和第二位置,确定第一位置到第二位置的方向向量,以作为第一朝向信息。

在一些实施例中,朝向信息确定模块520被进一步配置为:确定第一操控设备的前向向量,以作为第二朝向信息。

在一些实施例中,旋转矩阵确定模块530被配置为:对方向向量和前向向量执行正交化处理,以确定正交化方向向量和正交化前向向量;以及基于正交化方向向量和正交化前向向量,确定旋转矩阵。

在一些实施例中,旋转矩阵确定模块530被配置为:基于正交化方向向量和正交化前向向量,确定向量积;以及基于正交化方向向量、正交化前向向量和向量积,分别确定旋转矩阵的列向量。

在一些实施例中,与正交化方向向量对应的第一列向量、与正交化前向向量的第二列向量、和与向量积对应的第三列向量在旋转矩阵中的相对次序是基于虚拟物体的自身坐标系而确定的。

在一些实施例中,虚拟物体在虚拟环境中被绘制以呈现为被双手持握。

在一些实施例中,装置500还包括:接收模块,被配置为接收针对第一操控设备的预设交互;以及触发模块,被配置为基于预设交互,在虚拟环境中触发与虚拟物体相关联的虚拟功能。

图6示出了示出了其中可以实施本公开的一个或多个实施例的电子设备600的框图。应当理解,图6所示出的电子设备600仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。图6所示出的电子设备600可以用于实现图2的计算设备230。

如图6所示,电子设备600是通用电子设备的形式。电子设备600的组件可以包括但不限于一个或多个处理器或处理单元610、存储器620、存储设备630、一个或多个通信单元640、一个或多个输入设备650以及一个或多个输出设备660。处理单元610可以是实际或虚拟处理器并且能够根据存储器620中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高电子设备600的并行处理能力。

电子设备600通常包括多个计算机存储介质。这样的介质可以是电子设备600可访问的任何可以获取的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器620可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备630可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在电子设备600内被访问。

电子设备600可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图6中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器620可以包括计算机程序产品625,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。

通信单元640实现通过通信介质与其他电子设备进行通信。附加地,电子设备600的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,电子设备600可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。

输入设备650可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备660可以是一个或多个输出设备,例如显示器、扬声器、打印机等。电子设备600还可以根据需要通过通信单元640与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与电子设备600交互的设备进行通信,或者与使得电子设备600与一个或多个其他电子设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。

根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。

这里参照根据本公开实现的方法、装置、设备和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。

技术分类

06120115920929