一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

增强现实的3D重建的制作方法

2022-06-01 15:31:30 来源:中国专利 TAG:

增强现实的3d重建


背景技术:

1.本公开总体上涉及人工现实,更具体地但不限于涉及对用于增强现实的三维场景进行重建。与人工现实相关的技术,诸如虚拟现实(virtual reality,vr)、增强现实(augmented reality,ar)、混合现实(mixed reality,mr)等,已经取得了迅速的进步。实现人工现实技术的系统可以包括下述设备:该设备允许数字化产生的虚拟对象,例如3d虚拟对象,连同来自真实世界的对象一起被叠加在真实世界环境的图像中。在真实世界环境中准确地呈现虚拟对象和/或与来自真实世界环境的对象进行交互可能是有挑战的。


技术实现要素:

2.在一些实施方式中,用于渲染三维虚拟对象的增强现实系统包括:摄像装置、惯性测量单元(inertial measurement unit,imu),和/或存储设备,该存储设备中存储有程序,所述程序被执行时使一个或更多个处理器实现步骤。在一些实施方式中,步骤包括:引导系统的用户通过移动摄像装置来扫描环境;在摄像装置扫描环境时,使用摄像装置获取环境的多个图像;使用imu测量摄像装置的相对运动,以获取imu数据,其中,在用户移动摄像装置以扫描环境的同时测量上述相对运动;基于使用多个图像和imu数据测量相机的相对运动,估计相对于环境的摄像装置位姿;基于多个图像和imu数据,确定相对于摄像装置位姿的三维点集;基于多个图像和imu数据,计算三维点集的尺度(scale,比例);基于多个图像估计环境中的表面相对于摄像装置的深度或法线,以获得环境的深度图或法线贴图;将深度图或法线贴图与三维点集对准;基于将深度图或法线贴图与三维点集对准,确定深度图的尺度或法线贴图的尺度;使用深度图或法线贴图以及使用深度图的尺度或法线贴图的尺度,重建环境的表面几何结构;使用根据深度图或法线贴图重建的表面几何结构,在环境中渲染虚拟对象。基于多个图像,估计环境中的表面相对于摄像装置的深度和法线两者,以获得环境的深度图和法线贴图两者;将深度图和法线贴图两者与三维点集对准;使用深度图和法线贴图,重建环境的表面几何结构。根据三维点集和法线贴图重建深度图。根据三维点集和深度图重建法线贴图。检测虚拟对象和环境的所重建的表面几何结构的碰撞;计算对碰撞的响应;和/或渲染在碰撞后的虚拟对象。在一些实施方式中,深度图是摄像装置的每个像素的深度值,法线贴图是摄像装置的每个像素的法线值,在环境中渲染虚拟对象包括对与环境的表面几何结构相互作用的光线进行光线追踪,和/或在环境中渲染虚拟对象包括,基于与所述虚拟对象相互作用的光线追踪,改变环境中的真实对象上的阴影。
3.在一些实施方式中,用于渲染三维虚拟对象的增强现实方法包括:引导用户通过移动摄像装置来扫描环境;在摄像装置扫描环境时,使用摄像装置获取环境的多个图像;使用imu测量摄像装置的相对运动,以获取imu数据,其中,在用户移动摄像装置以扫描环境的同时测量上述相对运动;基于imu数据和多个图像,估计相对于环境的摄像装置位姿;基于多个图像和imu数据,确定相对于摄像装置位姿的三维点集;基于多个图像和imu数据,计算三维点集的尺度;基于多个图像估计环境中的表面相对于摄像装置的深度或法线,以获得环境的深度图或法线贴图;将深度图或法线贴图与三维点集对准;基于将深度图或法线贴
图与三维点集对准,确定深度图的尺度或法线贴图的尺度;使用深度图或法线贴图以及使用深度图的尺度或法线贴图的尺度,重建环境的表面几何结构。使用根据深度图或法线贴图重建的表面几何结构,在环境中渲染虚拟对象。基于多个图像,估计环境中的表面相对于摄像装置的深度和法线两者,以获得环境的深度图和法线贴图两者;将深度图和法线贴图两者与三维点集对准;使用重建的环境的表面几何结构渲染虚拟对象的碰撞;使用深度图和法线贴图两者,重建环境的表面几何结构。根据三维点集和深度图重建法线贴图。检测虚拟对象和环境的所重建的表面几何结构的碰撞;和/或计算对碰撞的响应;渲染碰撞后的虚拟对象。在一些实施方式中,在环境中渲染虚拟对象包括对与环境的表面几何结构相互作用的光线进行光线追踪,和/或在环境中渲染虚拟对象包括,基于与所述虚拟对象相互作用的光线追踪,改变环境中的真实对象上的阴影。
4.根据下文提供的详细描述,本公开的其他应用领域将变得明显。应该理解的是,虽然这些详细描述和具体示例指示了各种实施例,但它们仅旨在说明的目的而并非意在必然地限制本公开的范围。
附图说明
5.结合附图对本公开的内容进行了描述。
6.图1描述了增强现实设备的实施方式。
7.图2a示出了正确重建的几何结构的实施方式。
8.图2b示出了在重建几何结构中的潜在误差的实施方式。
9.图3描述了使用增强现实设备扫描环境的实施方式。
10.图4示出了通过增强现实系统渲染三维虚拟对象的过程的实施方式的流程图。
11.图5示出了通过增强现实系统渲染三维虚拟对象的过程的另一实施方式的流程图。
12.图6描述了计算机系统的实施方式的框图。
13.在附图中,相似的部件和/或特征可以具有相同的附图标记。此外,可以通过在附图标记之后用短划线和在相似部件之间进行区分的第二标记来区分相同类型的各种部件。如果说明书中仅使用第一附图标记,则该描述适用于具有相同第一附图标记的任何一个相似部件,而与第二附图标记无关。
具体实施方式
14.在下面的描述中,将描述各种实施方式。出于说明的目的,阐述了具体的配置和细节,以便提供对实施例的彻底理解。然而,对于本领域技术人员还将明显的是,实施方式可以在没有上述具体细节的情况下实践。此外,可以省略或简化众所周知的特征,以免模糊所描述的实施方式。
15.本公开的实施方式尤其涉及在增强现实系统中渲染虚拟对象的交互。在增强现实中,虚拟对象被放置在真实世界对象的场景中。对虚拟对象和真实世界对象的照明(lighting,光照)和/或交互进行建模可能是有挑战的。在一些实施方式中,3d深度图和/或3d法线贴图与同步定位和地图构建(simultaneous localization and mapping,slam)相结合,以实现对场景的3d建模,从而对与真实对象交互的虚拟对象的碰撞检测、碰撞反应
和/或照明进行更精确的计算。
16.光线追踪是一种渲染技术,其用于通过将光线追踪作为图像平面上的像素并且模拟光线和虚拟对象的交互作用的效果来生成图像。光线追踪的计算成本可能非常高。因此,实时应用,特别是商业化人工现实应用,通常使用光栅化技术作为它们的渲染方法。与光线追踪相比,光栅化仅计算每个像素相对于光源的阴影。因此,光栅化的计算速度可以非常快。一些研究和商业尝试在人工现实应用中实现光线追踪。为了正确地对通过虚拟环境和现实环境的光线进行追踪,使用了真实世界的重建的表面的几何结构和/或材料。有人提议使用光线追踪以利用真实世界场景的预定义模型在人工现实场景中渲染全局照明效果,诸如反射、折射和焦散面。然而,通过使用预定义模型,只有简单的几何结构(诸如若干个漫反射盒(diffuse box))能被手动定义。其他的使用鱼眼镜头来捕获环境的图像。使用鱼眼镜头捕获的图像可以用于限定半球形环境地图,该半球形环境地图用于通过使用图像处理技术来渲染和计算光源位置/颜色/强度。然而,使用鱼眼镜头的扭曲视角可能导致不准确的照明。有人使用了kinect传感器。kinect传感器用于获取场景的3d几何结构,因此可以使用kinect传感器来处理复杂的场景。然而,由于从kinect的输出不能得到表面取向(法线)信息,因此对从真实几何结构到虚拟几何结构的光线进行追踪可能较困难,原因在于如果表面取向是未知的话,那么光线从真实表面反弹的方向也是未知的。有人已经证实了使用表面列表的光线追踪能力,其不对场景进行建模,而是对标记进行追踪,并且使用标记的位置和取向来指示平面表面。光源也可是手动添加的。需要有效地获得真实世界对象的表面几何结构,以在增强现实中渲染与真实世界对象交互的虚拟对象。获得真实世界对象的表面几何结构使得增强现实应用能够实现更准确的光线追踪、碰撞检测和/或碰撞响应。
17.首先参阅图1,示出了用于提供增强现实的设备100的实施方式。设备100包括摄像装置104、一个或更多个传感器108和屏幕112。在一些实施方式中,设备100是移动设备(例如,智能电话或工作台)和/或计算机(例如,膝上型计算机)。在一些实施方式中,该设备是头戴式显示器的一部分。
18.摄像装置104获取场景116的图像。摄像装置104被引导朝向场景116(例如,背离屏幕112)。设备100可以具有不止一个摄像装置(例如,背离屏幕112的第一摄像装置和朝向用户的第二摄像装置,第二摄像装置与第一摄像装置朝向相反)。场景116中有一个或更多个真实对象120。在图1中的场景116中,有第一真实对象120-1和第二真实对象120-2。第一真实对象120-1是柱体。第二真实对象120-2是长方体。
19.在屏幕112上产生的场景116的图像具有虚拟对象124。在图1中,虚拟对象124是矩形条,该矩形条在屏幕112上被渲染在长方体的顶部。
20.传感器108可以包括一个或更多个惯性传感器,例如陀螺仪和/或加速度计。传感器108可以是惯性测量单元(imu)。imu和摄像装置的组合可以提供设备100的相对位姿(例如,使用slam算法,视觉惯性里程计)。位姿可以包括三个位置自由度(例如,x、y和z)和三个取向自由度(例如,翻滚、俯仰、偏摆)。
21.图2a示出了正确重建的几何结构的实施方式。图2示出了在重建的几何结构中存在潜在误差的实施方式。对虚拟对象124与真实对象的表面220的碰撞进行检测和/或建模而言,真实对象的重建的几何结构可能是重要的,其中,表面220是真实对象的重建。在很多应用中,例如在视频游戏中,对虚拟对象124与真实对象的碰撞正确地进行建模可能是有用
的。为了对碰撞进行建模,生成了场景116的3d模型。场景的3d模型可以包括深度图和/或法线贴图。深度图具有真实表面(例如,每像素)的深度的值。法线贴图具有真实表面(例如,每像素)的取向的值。在图2a中,表面220正确地再现真实对象的平面形状。图2a中的虚拟对象124为球。该球被渲染为从表面220正确地反弹。
22.如果表面220未准确地近似于真实对象的平坦表面,如图2b所示,则该球以不同的角度从表面220反弹。由于不准确地重建表面(例如,由于法线贴图中的误差),对虚拟对象124的碰撞的渲染在用户看来可能是不自然的。因此,为了正确地对虚拟对象124的碰撞进行渲染,期望对真实对象的表面进行准确地建模。
23.图3描绘了使用增强现实设备来扫描环境的实施方式。当设备100或设备100上的应用被启动时,发起增强现实会话。该应用尝试构建用户周围的地图,并追踪设备100的位姿。例如,实施slam模块。slam模块可以提供相对位姿、尺度和3d点集(例如,稀疏点集)。示例性的slam模块包括arkit、arcore和arunit。为了便于slam扫描,用户可以被引导(例如,通过在屏幕112上显示的命令、文本或符号)以使设备100向周围移动进而对场景116进行扫描,使得帮助slam开发解决方案。例如,屏幕112上的右箭头可用于指示用户向右移动设备100。一旦slam模块成功地追踪到摄像装置的位置和位姿,就可以实现增强现实特征。通常,通过表面检测算法将检测到一个或更多个表面。用户可以把一个或更多个虚拟对象放置在场景116的数字表示中。
24.图4示出了在增强现实系统中渲染三维虚拟对象的400的实施方式的流程图。过程400开始于在步骤404扫描环境。在摄像装置104获取图像时,用户可以被指示在周围移动设备100。图像与来自传感器108的imu数据同步。在步骤408,确定摄像装置是否被追踪(例如,通过slam算法)。如果步骤408的答案为否,则将过程返回至步骤404,要求用户通过移动设备100来扫描环境。如果对步骤408的答案为是,则将过程400继续至步骤412。
25.在步骤412,摄像装置104获取场景116的新的帧(例如,图像)。在步骤s416,使用新的帧以及深度和法线模块来估计深度和法线,以生成深度图和法线贴图。一些用于估计深度值和法线值的方法在下述文献中给出:xiaojuan qi,et al.,geonet:geometric neural network for joint depth and surface normal estimation,ieee cvpr 2018;d.eigen,et al.,predicting depth,surface normals and semantic labels with a common multi-scale convolutional architecture,iccv,2015;and p.wang,et al,surface regularized geometry estimation from a single image,nips,2016。
26.由单个图像估计出的深度图和法线贴图可能具有模糊性,原因是很多可能的世界场景也许已经生成了特定的图像。此外,深度图可能具有全局尺度模糊。例如,正常大小的房间和娃娃屋可以产生相同的图像。
27.slam模块可以输出具有全局尺度分辨率的稀疏点集。例如,基于并入在步骤404中移动摄像装置时所获取的imu数据,slam模块可以输出具有距离(例如,厘米、米或英尺)的稀疏点集。在步骤s420,基于依据摄像装置位姿将深度图和法线贴图与稀疏点集(或稀疏点集的子集)对准,计算深度图和法线贴图的尺度。深度图的深度值(例如,所计算的距离摄像装置104的投影中心的深度值)是根据稀疏点集定尺度的,使得深度图被定尺度(scale,缩放)到全局尺度。基于使用摄像装置104的位姿将稀疏点集与深度图和法线贴图对准,随时间生成的深度图和法线贴图被转换为全局尺度值。
28.在步骤424,通过根据深度图中的深度数据和/或法线贴图中的法线数据生成网格(例如,多边形网格),使用深度图和法线贴图构建出场景116中真实对象120的表面几何结构和取向。p.labatut,et al.,robust and efficient surface reconstruction from range data,computer graphics forum 28(8):2275-2290,oct.2009,给出了使用距离数据来重建表面的示例。法线贴图也可以和多边形网格对准。
29.在步骤428中,在屏幕112上渲染虚拟对象124。从真实对象120重建的多边形网格被用于计算虚拟对象124和真实对象120的碰撞,和/或渲染对虚拟对象124的照明。在一些实施方式中,从真实对象120重建的多边形网格被用于检测虚拟对象和环境的重建表面几何结构的碰撞;可以计算碰撞响应;和/或可以基于所计算的碰撞响应来渲染碰撞后的虚拟对象。为了在屏幕112上渲染虚拟对象124,可以使用光线追踪引擎。主光线从摄像装置的中心被投射穿过成像平面上的每个像素。当主光线首次与虚拟对象的几何结构或真实对象120的重建几何结构相交时,二次光线从相交点被递归地投射。二次光线可以包括反射光线、折射光线和/或阴影光线。反射光线沿镜面反射方向被投射,以用于镜面反射效果。当折射光线与透明物体的表面相交时,折射光线被投射。阴影线被朝向每个光源投射。如果朝向光源的阴影线被不透明的物体阻挡,则光源不照亮表面。在一些实施方式中,可以用射线分布(distribution of rays,dst)替代单射线近似,以渲染柔和的现象,例如,光泽反射、柔和阴影、半透明等。
30.在人工现实设置中进行光线追踪期间,可能存在四种类型的二次光线:
31.i:从与虚拟对象的几何结构相交的虚拟对象的几何结构投射的二次光线;
32.ii:从与真实对象的几何结构相交的虚拟对象的几何结构投射的二次光线;
33.iii:从与虚拟对象的几何结构相交的真实对象的几何结构投射的二次光线;以及
34.iv:从与真实对象的几何结构相交的真实对象的几何结构投射的二次光线。
35.在这四种类型中,类型iv是隐含支持的,这是因为由真实几何结构的一部分对真实几何结构的另一部分的颜色影响是自然发生的现象,并且这种现象已经被摄像装置捕获。在没有重建真实几何结构的情况下,仅类型i也被支持。在重建真实几何结构的情况下,类型ii也被支持。在一些实施方式中,对于类型iii,不支持来自高反射性真实物体(例如,镜子)的折射和反射,这是因为对透明真实对象或高反射性真实对象进行3d重建的计算强度可能很高。因此,虚拟对象124可以被渲染在屏幕112上,其中虚拟对象124的照明由真实对象120反射和/或遮挡的光线确定;和/或通过被虚拟对象124反射和/或阻挡的光线,可以改变(例如,变暗、变亮、变色等)真实对象120的像素。slam算法可以使用视觉-惯性测距(visual-inertial odometry,vio)来估计摄像装置位姿。除了位姿以外,slam算法还可以基于imu数据的并入,输出具有准确全局尺度的稀疏3d点集。来自slam的稀疏点可以用于计算估计的深度图的全局尺度。例如,对于稀疏点集中的每个点pi,基于其3d位置和摄像装置位姿(这两者均由slam输出),可以计算出点pi距离摄像装置的投影中心的深度di。也可以从估计的深度图获得深度值di。然后,将来自深度图的深度值缩放至绝对世界尺度的比例值si可以如下计算:
[0036][0037]
可以对slam算法所获得的稀疏点集中的部分或全部点进行尺度计算。多个尺度计
算值可以被求平均,以获得绝对世界尺度。位姿数据可以被用于将随时间捕获的深度和/或法线贴图转换到公共的世界坐标系。
[0038]
图5示出了在增强现实系统中渲染三维虚拟对象的过程500的实施方式的流程图。流程500开始于步骤504,引导ar系统的用户通过移动摄像装置来扫描环境。例如,用户在将摄像装置104指向场景116的同时,使设备100在周围移动,其中,场景116中有一个或更多个真实对象120。用户可以在游乐场上,并使用智能电话的摄像装置对游乐场设备进行成像。
[0039]
在步骤508,当摄像装置扫描环境时,摄像装置捕获环境的多个图像。例如,当用户移动智能电话时,摄像装置104捕获不同位置处的滑梯、秋千和栏杆的图像。
[0040]
在步骤512,使用imu来测量摄像装置的相对运动,以获得imu数据。当摄像装置104被移动以扫描环境时,摄像装置发生相对运动。在步骤516,基于imu数据和多个图像来估计相对于环境的摄像装置位姿。例如,使用slam模块来确定智能电话相对于游乐场设备的相对位置和相对取向。在步骤520,确定具有全局尺度距离的3d点集。基于多个图像和imu数据,slam模块可以生成真实对象相对于摄像装置位姿的稀疏点集。因此,稀疏点集可以包括:滑梯上的点和秋千的座位上的点。在一些实施方式中,3d点集中的点是基于特征诸如拐角来确定的,或者基于处于具有高对比度的位置而被确定。
[0041]
在步骤524,计算3d点的尺度。在一些实施方式中,slam模块使用imu数据来计算3d点的尺度。例如,如果摄像装置104的两个位姿之间的距离是已知的,并且由摄像装置104所捕获的图像具有重叠的视场,则可以基于立体图像算法(例如,使用透视投影,三角测量等)来计算重叠视场中摄像装置与真实对象之间的距离。因此,设备100可以确定设备100距离滑梯上的点有多远(例如,以米和相对角度来计量),设备100距离秋千的座位上的点有多远及其相对角度,以及滑梯上的点距离秋千的座位上的点有多远的及其相对角度。
[0042]
在步骤528,基于多个图像,估计环境中的表面相对于摄像装置的深度和/或法线,以获得环境的深度图和/或法线贴图。例如,使用机器学习算法来识别滑梯、秋千和栏杆。深度图提供了从设备100到游乐场设备的相对距离,包括到滑梯、秋千和栏杆的距离。法线贴图提供了游乐场设备相对于设备100的相对表面取向,包括滑梯、秋千和栏杆的表面取向。
[0043]
基于机器学习的深度图和法线贴图不具有尺度。例如,深度图和法线贴图可以被用于娃娃屋的空间结构,也可以被用于与实物大小一样的空间结构。在步骤532,将深度图和/或法线贴图与3d点集对准。因此,3d点集中滑梯上的点对应于深度图和法线贴图中滑梯的类似点。可以使用摄像装置104相对于3d点集的已知相对位姿、以及摄像装置相对于深度图和法线贴图的已知相对位姿,将3d点集与深度图和法线贴图对准。通过将深度图和法线贴图与3d点集对准,可以确定法线贴图的尺度和深度图的尺度,这是因为3d点集的尺度是已知的。
[0044]
在步骤540,使用深度图、法线贴图、深度图的尺度、和/或法线贴图的尺度来重建环境的表面几何结构。例如,重建的表面几何结构提供了下述网格(例如,多边形网格,比如三角形网格),该网格具有由深度图确定的点位置以及由法线贴图确定的表面取向。例如,三角形网格被用于数字重建游乐场设备的滑梯、秋千和栏杆。在一些实施方式中,网格是高聚数(high poly count)的网格。
[0045]
在步骤544,可以使用生成的网格在环境中渲染虚拟对象124。使用从深度图和/或法线贴图重建的表面几何结构(例如,多边形网格),在环境中渲染虚拟对象124。使用与多
边形网络产生相互作用的虚拟对象,可以生成虚拟对象的照明和环境的照明,也可以生成虚拟对象和真实环境的碰撞。例如,虚拟球可以被放置在滑梯上。球可以被渲染为从滑梯上滚下来,同时球在滑梯上的阴影以及从滑梯到球上的反射也被更新并且在屏幕112上呈现给用户。可以使用光线追踪和网格来计算球与滑梯的照明和相互作用。
[0046]
在一些实施方式中,根据多个图像估计深度图和法线贴图;将深度图和法线贴图两者与3d点集对准;使用深度图和法线贴图两者来重建场景中的对象的表面几何结构。在一些实施方式中,从多个图像估计深度图,使用从深度图和3d点集重建的几何结构来生成法线贴图;或者,估计法线贴图,使用从法线贴图和3d点集重建的几何结构来生成深度图。
[0047]
可以使用所公开实施方式的多种变型和改进。例如,可以使用3d稀疏点集来拟合平面,以使使其接近真实物体,其中平面具有位置和取向。
[0048]
图6是计算设备600的简化框图。计算设备600可以实现将使用电子存储或处理的上述部分或全部的功能、行为和/或能力,以及未明确描述的其他功能、行为或能力。计算设备600包括处理子系统602、存储子系统604、用户界面606和/或通信接口608。计算设备600也可以包括其他组件(未明确示出),诸如电池、电源控制器和其他可操作以提供各种增强能力的组件。在各个实施方式中,计算设备600可以被实现于台式电脑或笔记本电脑、移动设备(例如,平板电脑、智能手机、移动电话)、可穿戴设备、媒体设备、应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器或其他被设计为执行上述功能或功能组合的电子单元中
[0049]
存储子系统604可以使用本地存储和/或可移动存储介质来实现,例如使用磁盘、闪存(诸如,安全数字卡、通用串行总线闪存驱动器),或任何其他非暂时性存储介质或介质的组合,并且可以包括易失性和/或非易失性存储介质。本地存储可以包括随机存取存储器(ram),包括动态ram(dram)、静态ram(sram),或备用电池ram。在一些实施方式中,存储子系统604可以存储一个或多个由处理子系统602执行的应用程序和/或操作系统程序,包括将使用计算机执行以用于实现上述部分或所有操作的程序。例如,存储子系统604可以存储一个或多个代码模块610,用于实现上述的一个或多个方法步骤。
[0050]
固件和/或软件的实施方式可以被模块(例如,程序、功能等)实施。有形地体现指令的任何机器可读介质都可以用于实现本文描述的方法。代码模块610(例如,存储在存储器中的指令)可在处理器内或处理器外部执行。如本文多使用的术语“存储器”是指各种类型的长期、短期、易失性、非易失性或其他存储介质,并且不限于任何特定类型的存储器或特定数量的存储器,或其上存储有存储器的介质的类型。
[0051]
此外,术语“存储介质”或“存储设备”可以代表一个或多个用于存储数据的存储器,包括只读存储器(read only memory,rom)、ram、磁性ram、磁心存储器、磁盘存储介质、光学存储介质、闪存设备和/或其他用于存储信息的机器可读介质。术语“机器可读介质”包括但不限于,便携式或固定式存储设备、光学存储设备、无线通道和/或能够存储指令和/或数据的各种其他存储介质。
[0052]
此外,实施方式可以通过硬件、软件、脚本语言、固件、中间件、微码、硬件描述语言和/或其任何组合来实施。当以软件、固件、中间件、脚本语言和/或微码实施时,用于执行任务的程序代码或代码段可以存储在如存储介质等机器可读介质中。代码段(例如,代码模块
610)或机器可执行指令可以表示程序、函数、子程序、程序、例程、子例程、模块、软件包、脚本、类或指令、数据结构和/或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数和/或存储器内容耦合到另一个代码段或硬件电路。信息、自变量、参数、数据等可以通过任何合适的方式传递、转发或传输,所述任何合适的方式包含存储器共享、消息传递、票据传递、网络传输等。
[0053]
可以以各种方式完成上述技术、方框、步骤和手段的实施。例如,这些技术、方框、步骤和手段可以用硬件、软件或其组合来实现。对于硬件实施方式,处理单元可以在一个或多个asic、dsp、dspd、pld、fpga、处理器、控制器、微控制器、微处理器、被设计用于执行上述功能的其它电子单元和/或其组合中实现。
[0054]
每个代码模块610可以包括配置在计算机可读存储介质中的指令(代码)组,所述指令(代码)组指示计算设备600的处理器执行相应的动作。这些指令被配置为按顺序、并行(例如在不同处理线程下并行),或以上述组合运行。在通用计算机系统上加载代码模块610后,通用计算机被转化为特定用途的计算机系统
[0055]
包含本文所述各种特征(例如,在一个或更多个代码模块610中)的计算机程序可以被编码并存储在各种计算机可读存储介质上。编码了程序代码的计算机可读介质可以被封装在兼容的电子设备,或者,程序代码可以与电子设备分开提供(例如,通过互联网下载或作为单独封装的计算机可读存储介质)。存储子系统604也可以存储用于使用通信接口608建立网络连接的信息。
[0056]
用户界面606可以包括输入设备(例如,触摸板、触摸屏、滚动轮、点击轮、转盘、按钮、开关、键盘、麦克风等),以及输出设备(例如,视频屏幕、指示灯、扬声器、耳机插孔、虚拟现实或增强现实显示器等),以及支持电子器件(例如,数模转换器或模数转换器、信号处理器等)。用户可以操作用户界面606的输入设备来调用计算设备600的功能,并且可以通过用户界面606的输出设备查看和/或得知计算设备600的输出。对于一些实施方式,用户界面606可能不被呈现(例如,对于使用asic的过程)。
[0057]
处理子系统602可以被实施为一个或更多个处理器(例如,集成电路、一个或更多个单核或多核微处理器、微控制器、中央处理单元、图形处理单元等)。在操作中,处理子系统602可以控制计算设备600的操作。在一些实施方式中,处理子系统602可以响应程序代码执行各种程序,并可以保持多个并发执行的程序或进程。在某一时间,要被执行的部分或全部程序代码可以位于处理子系统602和/或存储介质中,例如在存储子系统604中。通过编程,处理子系统602可以为计算设备600提供各种功能。处理子系统602也可以执行其他程序以控制计算设备600的其他功能,所述其他程序包括可以存储在存储子系统604中的程序。
[0058]
在各种示例中,处理单元1304可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或更多个)处理器1304中和/或存储子系统1318中。通过适当的编程,(一个或更多个)处理器1304可以提供上述各种功能。计算机系统1300可以附加地包括处理加速单元1306,其可以包括数字信号处理器(dsp)、专用处理器,等等。
[0059]
通信接口608可以为计算设备600提供语音和/或数据通信能力。在一些实施方式中,通信接口608可以包括用于访问无线数据网络(例如,wi-fi网络、3g、4g/lte等)、移动通信技术的射频(radio frequency,rf)收发器组件,用于短距离无线通信(例如,使用蓝牙通
信标准、近场通信(near field communication,nfc)等)的组件,其他组件或技术的组合。在一些实施方式中,作为无线接口的附加或替代,通信接口608可以提供有线连接(例如,通用串行总线、以太网、通用异步接收器/发射器等)。可以使用硬件(例如,驱动电路、天线、调制器/解调器、编码器/解码器,以及其他模拟和/或数字信号处理电路)和软件部件的组合来实施通信接口608。在一些实施方式中,通信接口608可以同时支持多个通信通道。在一些实施方式中,通信接口608不被使用。
[0060]
可以理解的是,计算设备600是说明性的,而且变化和修改是可能的。计算设备可以具有未具体描述的各种功能(例如,通过蜂窝电话网络的语音通信),并且可以包括适合这种功能的组件。
[0061]
此外,虽然计算设备600是参照特定的块被描述的,但应当理解,这些块是为了方便描述而定义的,并非旨在暗示部件部分的特定物理排列。例如,处理子系统602、存储子系统、用户界面606和/或通信接口608可以在一个设备中或分布在多个设备中。
[0062]
此外,这些块不需要对应于物理上不同的部件。块可以被配置为执行各种操作,例如通过对处理器进行编程或提供适当的控制电路来执行各种操作,并且,各种块根据如何获得初始配置可以被重新配置或者不被重新配置。本发明的实施方式可以在各种设备中实现,上述各种设备包括使用电路和软件的组合实现的电子设备。本文所述的电子设备可以使用计算设备600来实现。
[0063]
本文所述的各个特征,例如,方法、装置、计算机可读介质等,可以使用专用部件、可编程处理器和/或其他可编程设备的任何组合来实现。本文所述的各种过程可以在同一处理器或不同处理器上实现。在部件被描述成配置为执行某些操作的情况下,可以例如,通过设计电子电路以执行操作、通过对可编程电子电路(例如,微处理器)进行编程以执行操作或其任何组合来实现这样的配置。此外,虽然上述实施方案可能参考了具体硬件部件和软件部件,但本领域的技术人员应当理解,也可使用硬件部件和/或软件部件的不同组合,并且被描述为在硬件中被实现的特定操作也可能在软件中被实现,反之亦然。
[0064]
在以上描述中给出了具体细节,以提供对实施例或实施方式的彻底理解。然而,应当理解,可以在没有这些具体细节的情况下实践所述实施例。在一些示例中,众所周知的电路、过程、算法、结构和技术可以不作不必要的详细说明,以避免模糊上述实施方式。
[0065]
尽管已经结合具体装置和方法描述了本公开的原理,可以理解的是,这种描述只是以举例的方式做出的,而非对本公开的范围进行限制。选择和描述实施方式是为了解释本发明和实际应用的原理,以使本领域技术人员能够以适合于设想的特定用途的各种实施例和各种实施例的各种修改来利用本发明。可以理解的是,该描述旨在涵盖修改和等同物。
[0066]
关于本发明的具体实施方式详细描述了本主题,但是应当理解,本领域技术人员在获得对前述内容的理解之后可以容易地产生这样的实施方式的变更、变型和等效方案。因此,应当理解,如本领域普通技术人员将容易明显的,本公开内容是出于示例而非限制的目的而呈现的,并且不排除包括对本主题的这样的修改、变型和/或添加。实际上,本文中描述的方法和系统可以以各种其他形式来体现;此外,在不脱离本公开内容的精神的情况下,可以对本文中描述的方法和系统的形式进行各种省略、替代和改变。所附权利要求书及其等效方案旨在覆盖落入本公开内容的范围和精神内的这样的形式或修改。
[0067]
也要注意的是,上述实施方式可以被描述为过程,所述过程被描绘为流程图、流
图、数据流图、结构图或框图。虽然流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。此外,操作的顺序可以重新安排。当一个过程的操作完成时,过程终止,但是可以具有图中没有包括的附加步骤。过程可以对应于方法、函数、程序(procedure)、子例程、子程序等。
[0068]
除非明确指示有相反的意思,否则叙述“一”、“一个/种”或“该/所述”旨在表示“一个/种或更多个/种”。除非另有明确说明,否则本文使用的条件语言例如“可以”、“能够”、“可以(might)”、“可以(may)”、“例如”等或者在上下文中以其他方式被理解为所使用的,通常旨在表达某些示例包括某些特征、元件和/或步骤而其他示例不包括某些特征、元素和/或步骤。因此,这样的条件语言通常不旨在暗示:一个或更多个示例以任何方式需要特征、元素和/或步骤,或者一个或更多个示例必须包括用于在有或没有作者输入或提示的情况下决定这些特征、元素和/或步骤是否被包括在任何特定示例中或者要在任何特定示例中被执行的逻辑。术语“包括”、“包含”、“具有”等是同义的并且以开放式的方式包含地被使用,并且不排除另外的元件、特征、动作、操作等。此外,术语“或”在其包含性意义上被使用(而不是在其排他意义上被使用),使得当被使用时,例如为了连接元素的列表,术语“或”意味着列表中的元素中的一个、一些或全部。本文中“适于”或“被配置成”的使用意味着开放和包含性的语言,其不排除适于或被配置成执行附加任务或步骤的装置。另外,“基于”的使用意味着开放和包含性,原因是“基于”一个或更多个列举条件或值的过程、步骤、计算或其他动作可能实际上基于除了列举的这些以外的附加条件或值。类似地,“至少部分地基于”的使用意味着开放和包含性,原因是“至少部分地基于”一个或更多个列举条件或值的过程、步骤、计算或其他动作可能实际上基于除了列举的这些之外的附加条件或值。本文包括的标题、列表和标记仅是为了便于说明而不意味着进行限制。
[0069]
所列举的文件通过引用并入本文。所列举的文件不被承认为是现有技术。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献