zhuanli/58/202180076652.html by HTTrack Website Copier/3.x [XR&CO'2014], Mon, 24 Jul 2023 12:55:20 GMT --> 3D环境中的内容回放和修改的制作方法

3D环境中的内容回放和修改的制作方法

文档序号:34863192发布日期:2023-07-23 13:37阅读:9来源:国知局
3D环境中的内容回放和修改的制作方法
3d环境中的内容回放和修改
技术领域
1.本公开整体涉及用于在电子设备上的三维(3d)环境中呈现应用程序内容的视图的系统、方法和设备,并且具体地涉及提供包括3d环境内的应用程序内容回放的视图。


背景技术:

2.电子设备可呈现包括由应用程序提供的内容的3d环境。例如,电子设备可提供包括某个环境内的应用程序内容的视图,该环境包括用户客厅的三维(3d)表示。可基于3d重建等经由光学透视技术、透传视频技术来提供用户客厅的外观。开发和调试在3d环境中使用的应用程序内容可能是耗时且困难的。现有技术可能不容易检测、审核和纠正不期望的应用程序活动和其他问题。例如,识别和解决应用程序的非预期行为(诸如致使虚拟对象非预期地移动的物理引擎)可能涉及不期望的应用程序测试和重新测试工作量。


技术实现要素:

3.本文所公开的各种具体实施包括用于录制和回放应用程序的使用/测试的设备、系统和方法,该应用程序基于录制程序状态、参数值、变化等在三维(3d)环境(例如,计算机生成的现实(cgr))中提供内容以用于3d环境内的调试目的。例如,开发者可使用设备(例如,头戴式设备(hmd))来测试应用程序,并且在测试中将虚拟保龄球滚入虚拟保龄球瓶,然后倒回测试的录像以观察为什么瓶中的一者未如预期响应。在一个应用程序与系统应用程序交互/同步变化的示例性使用情况下,录制可涉及抓取/重用那些变化并将它们写入视频文件,即录制场景内容快照和可能已在其中发生的变化的视频文件。另外,系统可重建声音(例如,空间立体音频)和应用程序的其他细节以供回放和审核(例如,应用程序的完整快照)。
4.一般来讲,本说明书中描述的主题的一个创新方面可体现在包括以下动作的方法中:在应用程序的执行期间,在三维(3d)环境内呈现包括由应用程序提供的应用程序内容的第一视图集,其中从3d环境中的第一视点集提供第一视图集;在应用程序的执行期间,基于录制程序状态信息和根据用户交互所确定的应用程序内容的变化来生成应用程序的执行的录像;以及呈现包括基于录像而在3d环境内回放应用程序内容的第二视图集,其中从不同于第一视点集的第二视点集提供第二视图集。
5.这些实施方案和其他实施方案均可任选地包括以下特征中的一个或多个特征。
6.在一些方面,在应用程序的执行期间,应用程序与系统进程之间的通信包括应用程序内容的变化,其中基于通信生成第二视图集。
7.在一些方面,生成录像包括:获得对应于应用程序内容在多个时间点的状态的所录制程序状态信息;获得应用程序内容的变化,其中变化包括在状态之间发生的应用程序内容的变化;以及基于所录制程序状态信息和来自应用程序与系统进程之间的通信的应用程序内容的变化生成应用程序的执行的录像。
8.在一些方面,应用程序内容包括对象并且变化包括对象的位置变化的增量值。
9.在一些方面,方法还包括接收选择应用程序的执行期间的时间点作为回放的开始点的输入。
10.在一些方面,呈现回放包括呈现执行应用程序的的执行的用户的头部位置、注视方向或手部位置的图形描绘。
11.在一些方面,呈现回放包括呈现声音源的图形描绘。
12.在一些方面,呈现场景的视图包括呈现物理环境的至少一部分的视频透传或透视图像,其中物理环境的至少部分的3d重建在应用程序的执行期间动态地生成,并且呈现回放包括呈现3d重建。
13.在一些方面,在应用程序的执行期间,基于物理引擎来定位应用程序内容的对象,并且在回放期间,基于根据程序状态信息确定对象的位置并根据变化重新定位对象来定位应用程序内容的对象。
14.在一些方面,在应用程序的执行期间,在头戴式设备(hmd)上呈现场景的视图。
15.根据一些具体实施,一种设备包括一个或多个处理器、非暂态存储器以及一个或多个程序;该一个或多个程序被存储在非暂态存储器中并且被配置为由一个或多个处理器执行,并且该一个或多个程序包括用于执行或使得执行本文所述方法中的任一种的指令。根据一些具体实施,一种非暂态计算机可读存储介质中存储有指令,这些指令在由设备的一个或多个处理器执行时使该设备执行或使执行本文所述方法中的任一种。根据一些具体实施,一种设备包括:一个或多个处理器、非暂态存储器以及用于执行或使执行本文所述方法中的任一种的装置。
附图说明
16.因此,本公开可被本领域的普通技术人员理解,更详细的描述可参考一些例示性具体实施的方面,其中一些具体实施在附图中示出。
17.图1是根据一些具体实施的示例性操作环境。
18.图2是根据一些具体实施的录制和回放三维(3d)环境内的应用程序对象的示例性方法的流程图表示。
19.图3示出了根据一些具体实施的包括3d环境内的应用程序内容的回放的快照的视图的示例性呈现。
20.图4示出了根据一些具体实施的包括3d环境内的应用程序内容的回放的快照的视图的示例性呈现。
21.图5示出了根据一些具体实施的包括3d环境内的应用程序内容回放的快照的视图的示例性呈现。
22.图6是根据一些具体实施的示例性设备。
23.根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的系统、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。
具体实施方式
24.本文提供了许多具体细节,以使得本领域的技术人员能够透彻理解所要求保护的主题。然而,可以在没有这些细节的情况下实践所要求保护的主题。在其他实例中,没有详细地介绍普通技术人员已知的方法、装置或系统,以便不使所要求保护的主题晦涩难懂。
25.图1是根据一些具体实施的示例性操作环境100的框图。在该示例中,示例性操作环境100示出了包括桌子130、椅子132和应用程序对象140(例如,虚拟对象)的示例性物理环境105。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性具体实施的更多相关方面,未示出各种其他特征。
26.在一些具体实施中,设备120被配置为向用户102呈现环境。在一些具体实施中,设备120是手持式电子设备(例如,智能电话或平板电脑)。在一些具体实施中,用户102将设备120穿戴在其头部上。设备120可包括被提供用于显示内容的一个或多个显示器。例如,设备120可包围用户102的视野。
27.在一些具体实施中,设备120的功能由多于一个设备提供。在一些具体实施中,设备120与单独的控制器或服务器通信以管理和协调用户的体验。此类控制器或服务器可以相对于物理环境105是本地的或远程的。
28.根据一些具体实施,设备120可生成并向其相应用户呈现计算机生成的现实(cgr)环境。cgr环境是指人们经由电子系统感测和/或交互的完全或部分模拟的环境。在cgr中,跟踪人的物理运动的一个子集或其表示,并且作为响应,以符合至少一个物理定律的方式调节在cgr环境中模拟的一个或多个虚拟对象的一个或多个特征。例如,cgr系统可以检测人的头部转动,并且作为响应,以与此类视图和声音在物理环境中变化的方式类似的方式调节呈现给人的图形内容和声场。在一些情况下(例如,出于可达性原因),对cgr环境中虚拟对象的特征的调节可以响应于物理运动的表示(例如,声音命令)来进行。
29.人可以利用其感觉中的任一者来感测cgr对象和/或与之交互,包括视觉、听觉、触觉、味觉和嗅觉。例如,人可以感测音频对象和/或与音频对象交互,音频对象创建(3d)或空间音频环境,三维或空间音频环境提供3d空间中点音频源的感知。又如,音频对象可以使能音频透明度,该音频透明度在有或者没有计算机生成的音频的情况下选择性地引入来自物理环境的环境声音。在某些cgr环境中,人可以感测和/或只与音频对象交互。在一些具体实施中,图像数据与本文所述cgr环境内与成像处理技术一起使用的物理环境105(例如,rgb、深度等)的图像像素配准。
30.cgr的示例包括虚拟现实和混合现实。虚拟现实(vr)环境是指被设计成对于一个或多个感觉完全基于计算机生成的感官输入的模拟环境。vr环境包括人可以感测和/或与之交互的虚拟对象。例如,树木、建筑物和代表人的化身的计算机生成的图像是虚拟对象的示例。人可以通过在计算机生成的环境内人的存在的模拟和/或通过在计算机生成的环境内人的物理移动的一个子组的模拟来感测和/或与vr环境中的虚拟对象交互。
31.与被设计成完全基于计算机生成的感官输入的vr环境相比,混合现实(mr)环境是指被设计成除了包括计算机生成的感官输入(例如,虚拟对象)之外还引入来自物理环境的感官输入或其表示的模拟环境。在虚拟连续体上,混合现实环境是完全物理环境作为一端和虚拟现实环境作为另一端之间的任何状况,但不包括这两端。
32.在一些mr环境中,计算机生成的感官输入可以对来自物理环境的感官输入的变化
进行响应。另外,用于呈现mr环境的一些电子系统可以跟踪相对于物理环境的位置和/或取向,以使虚拟对象能够与真实对象(即,来自物理环境的物理物品或其表示)交互。例如,系统可以导致移动使得虚拟树木相对于物理地面看起来是静止的。
33.混合现实的示例包括增强现实和增强虚拟。增强现实(ar)环境是指其中一个或多个虚拟对象叠加在物理环境105或其表示之上的模拟环境。例如,用于呈现ar环境的电子系统可具有透明或半透明显示器,人可以透过该显示器直接查看物理环境105。该系统可以被配置为在透明或半透明显示器上呈现虚拟对象,使得人利用该系统感知叠加在物理环境105之上的虚拟对象。另选地,系统可以具有不透明显示器和一个或多个成像传感器,该成像传感器捕获物理环境105的图像或视频,这些图像或视频是物理环境105的表示。系统将图像或视频与虚拟对象组合,并在不透明显示器上呈现组合物。人利用系统经由物理环境105的图像或视频而间接地查看物理环境105,并且感知叠加在物理环境105之上的虚拟对象。如本文所用,在不透明显示器上显示的物理环境的视频被称为“透传视频”,意味着系统使用一个或多个图像传感器捕获物理环境105的图像,并且在不透明显示器上呈现ar环境时使用那些图像。进一步另选地,系统可以具有投影系统,该投影系统将虚拟对象投射到物理环境105中,例如作为全息图或者在物理表面上,使得人利用该系统感知叠加在物理环境105之上的虚拟对象。
34.增强现实环境也是指其中物理环境105的表示被计算机生成的感官信息进行转换的模拟环境。例如,在提供透传视频中,系统可以对一个或多个传感器图像进行转换以施加与成像传感器所捕获的视角不同的选择视角(例如,视点)。又如,物理环境105的表示可以通过图形地修改(例如,放大)其部分而进行转换,使得经修改部分可以是原始捕获图像的代表性的但不是真实的版本。再如,物理环境105的表示可以通过以图形方式消除其部分或将其部分进行模糊处理而进行转换。
35.增强虚拟(av)环境是指其中虚拟或计算机生成的环境结合来自物理环境105的一个或多个感官输入的模拟环境。感官输入可以是物理环境105的一个或多个特性的表示。例如,av公园可以具有虚拟树木和虚拟建筑物,但人的脸部是从对物理人拍摄的图像逼真再现的。又如,虚拟对象可以采用一个或多个成像传感器所成像的物理物品的形状或颜色。再如,虚拟对象可以采用符合太阳在物理环境105中的定位的阴影。
36.有许多不同类型的电子系统使人能够感测和/或与各种cgr环境交互。示例包括头戴式系统、基于投影的系统、平视显示器(hud)、集成有显示能力的车辆挡风玻璃、集成有显示能力的窗户、被形成为被设计用于放置在人眼睛上的透镜的显示器(例如,类似于隐形眼镜)、耳机/听筒、扬声器阵列、输入系统(例如,具有或没有触觉反馈的可穿戴或手持控制器)、智能电话、平板电脑、和台式/膝上型计算机。头戴式系统可以具有一个或多个扬声器和集成的不透明显示器。另选地,头戴式系统可以被配置成接受外部不透明显示器(例如,智能电话)。头戴式系统可以结合用于捕获物理环境的图像或视频的一个或多个成像传感器、和/或用于捕获物理环境的音频的一个或多个麦克风。头戴式系统可以具有透明或半透明显示器,而不是不透明显示器。透明或半透明显示器可以具有媒介,代表图像的光通过该媒介被引导到人的眼睛。显示器可以利用数字光投影、oled、led、uled、硅基液晶、激光扫描光源或这些技术的任意组合。媒介可以是光学波导、全息图媒介、光学组合器、光学反射器、或它们的任意组合。在一个具体实施中,透明或半透明显示器可被配置为选择性地变得不
透明。基于投影的系统可以采用将图形图像投影到人的视网膜上的视网膜投影技术。投影系统也可以被配置为将虚拟对象投影到物理环境中,例如作为全息图或在物理表面上。
37.图2是根据一些具体实施的录制和回放3d环境(例如,cgr)中的应用程序对象的示例性方法200的流程图表示。在一些具体实施中,方法200由设备(例如,图1的设备120)执行,诸如移动设备、台式计算机、膝上型计算机或服务器设备。在一些具体实施中,设备具有用于显示图像的屏幕和/或用于观看立体图像的屏幕,诸如头戴式显示器(hmd)。在一些具体实施中,方法200由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法200由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。方法200的内容录制和回放过程参考图3至图5说明。
38.在框202处,方法200在应用程序的执行期间在3d环境内呈现包括由应用程序提供的应用程序内容的第一视图集,其中从3d环境中的第一视点集提供第一视图集。例如,在mr环境中的应用程序的测试期间,用户正在执行应用程序(例如,如图3至图4所示的虚拟绘图应用程序)。第一视点集可基于用户设备在执行期间的位置。在示例性具体实施中,例如,虚拟绘图应用程序可覆盖在视频透传、光学透视或虚拟房间上。在一些具体实施中,应用程序可定义虚拟保龄球的重量,并且虚拟保龄球可基于用户手部移动和/或与输入/输出(i/o)设备的交互而滚动。在一些具体实施中,在应用程序的执行期间,在hmd上呈现场景的视图。
39.在框204处,方法200基于录制程序状态信息和根据在应用程序的执行期间用户交互所确定的应用程序内容的变化来生成应用程序的执行的录像。例如,录制程序状态信息可包括录制场景理解或快照,诸如对象在环境中的位置。在一些具体实施中,场景理解可包括头部姿势数据、用户在应用程序中正在看什么(例如,虚拟对象)、手部姿势信息。另外,录制场景理解可包括录制在程序执行期间同时生成的场景理解3d网格。
40.在一些具体实施中,现实引擎架构可同步应用程序和整个系统应用程序之间的变化。在一些具体实施中,可捕获在应用程序和整个系统应用程序之间传送的变化和/或增量以进行录制。捕获在应用程序和整个系统应用程序之间传送的变化和/或增量可使得能够在对应用程序的性能几乎没有影响的情况下进行录制。调试者(例如,自动调试者应用程序或调试应用程序的系统工程师)可接收应用程序到系统变化并将其写入视频文件(例如,包括场景层级的场景内容/快照及快照之间的变化两者的视频文件)。
41.在框206处,方法200呈现包括基于录像而在3d环境内回放应用程序内容的第二视图集。从不同于第一视点集的第二视点集提供第二视图集。另选地,第二视点集是与第一视点集相同的视点(例如,调试者具有与应用程序用户相同的视点)。第二视点集可基于用户设备在回放期间的位置。
42.在一些具体实施中,3d环境(例如,场景和其他应用程序内容)可在整个执行和回放期间连续地/实况地呈现。即,渲染引擎可在一个时间段期间连续地运行以注入执行应用程序内容并且在另一时间段注入录制的应用程序内容。在一些具体实施中,回放可以不同于以与内容初始产生的方式相同的方式简单地重建内容。例如,回放可涉及使用球的位置的录制值而不是让球使用物理系统。
43.用户(例如,编程者/调试者)可暂停测试并使用清理器工具来返回以查看期望的时间点。在一些具体实施中,用户可从相同视点回放,或另选地,用户可改变视点并查看hmd在何处的描绘,诸如基于注视方向。在一些具体实施中,用户可改变视点以观察场景理解
(例如,头部位置、手部位置、3d重建网格等)。在一些具体实施中,开发者可返回以使得能够显示声音源(例如,空间立体音频)及其他不可见项目的表示。在一些具体实施中,开发者可添加数据追踪。
44.在一些具体实施中,方法200涉及聚焦于重用已经在应用程序到系统现实架构中使用的快照的改变/增量(例如,场景理解),使得可高效准确地完成录制而对性能影响很小。在一个示例性具体实施中,在应用程序的执行期间,应用程序与系统进程(例如,调试者/系统应用程序)之间的通信包括应用程序内容的变化,其中基于通信生成第二视图集。例如,系统应用程序(例如,调试者应用程序)负责系统进程。系统进程可包括渲染、呈现不同的视场等。该示例性具体实施呈现了其中应用程序和系统应用程序之间的变化被同步的现实引擎架构。例如,系统应用程序可显示由多个应用程序提供的内容/变化。在一些具体实施中,系统应用程序可在用户(例如,调试者或编程者)可与系统应用程序元件和应用程序元件两者交互的环境中提供环境内容(例如,墙壁、地板、系统功能性等)和其中的应用程序内容。
45.在一些具体实施中,生成录像包括:获得对应于应用程序内容在多个时间点的状态的所录制程序状态信息(例如,调试者应用程序获得定期快照);获得应用程序内容的变化;以及基于所录制程序状态信息和来自应用程序与系统进程之间的通信的应用程序内容的变化生成应用程序的执行的录像。变化可包括在状态之间发生的应用程序内容的变化。例如,变化可包括在每个快照之间变化的参数变化、增加/减少、位置变化、新值、(用户的头部姿势、手部姿势等的)新位置等。
46.在一些具体实施中,方法200还涉及接收选择应用程序的执行期间的时间点作为回放的开始点的输入。例如,清理器工具可用于暂停并返回到更早的时间点。在一些具体实施中,应用程序内容包括对象并且变化包括对象的位置变化的增量值。
47.在一些具体实施中,呈现回放包括呈现执行应用程序的的执行的用户的头部位置、注视方向和/或手部位置的图形描绘。在一些具体实施中,呈现回放包括呈现声音源的图形描绘。例如,对于空间立体音频,可使用声音图标来向编程者示出空间立体声音源在回放期间的特定时间所处的位置。
48.在一些具体实施中,呈现场景的视图包括呈现物理环境的至少一部分的视频透传或透视图像,并且呈现回放包括呈现3d重建。在一些具体实施中,在应用程序的执行期间动态地生成物理环境的至少一部分的3d重建。例如,这允许开发者看到由于3d重建在该时间点未完成而导致应用程序中的错误。
49.在一些具体实施中,方法200涉及基于使用(例如,执行)而不同的回放。即,聚焦于使用所录制位置而不是物理引擎来确定用户在回放期间的特定点处的位置。在一个示例性具体实施中,在应用程序的执行期间,基于物理引擎来定位应用程序内容的对象;并且在回放期间,应用程序内容的对象基于根据程序状态信息确定对象的位置并根据变化重新定位对象来定位。
50.此处参考图3至图5进一步描述包括基于录制在3d环境内回放应用程序内容的第二视图集的呈现,其中从不同于第一视点集的第二视点集(例如,基于回放期间用户设备的位置)提供第二视图集。具体地,图3和图4示出了呈现给观看与应用程序(例如,覆盖在物理环境上的虚拟应用程序,即,透传视频)交互的用户的回放/录制的编程者(例如,调试者)的
视图的示例。图5示出了系统流程图,示出了根据本文所述的技术基于录制在3d环境内回放应用程序内容。
51.图3示出了呈现物理环境的快照表示(例如,透传视频)、从不同视点(例如,调试者视点)呈现应用程序320(例如,虚拟绘图应用程序)的用户视点的示例性环境300。应用程序320包括绘图工具322。不同视点来自调试者视点,并且根据一些具体实施,在某一时间点向调试者呈现调试者的清理器工具330(例如,虚拟回放控制器)。
52.如本文所用,“用户”是使用应用程序320(例如,虚拟绘图应用程序)的人,并且“调试者”是使用系统应用程序、使用本文所述的技术来将应用程序320(从所示的另一个视点,或另选地从相同视点)回放到特定时间点的快照的人。用户和调试者可以是相同的人或不同的人。因此,例如,图3示出经由虚拟应用程序(例如,应用程序320)的设备310(例如,hmd)观看用户视角的调试者视角,该虚拟应用程序覆盖或放置在物理环境305的真实世界内容(例如,用户卧室的透传视频)的3d表示内。
53.如图3所示,设备310(例如,图1的设备120)示出用户的头部姿势和注视方向。例如,左眼注视312和右眼注视314由设备310检测(例如,使用面向内部的相机、计算机视觉等),并且显示在调试者应用程序内,使得调试者可确定用户注视在回放的快照时聚焦于什么。例如,一些虚拟应用程序利用人的注视以便为正在使用的特定程序(例如,应用程序320)提供附加功能。中心线注视316指示用户的头部姿势。在一些具体实施中,中心线注视316可包括基于左眼注视312和右眼注视314的用户的平均注视方向。除此之外或另选地,中心线注视316可基于设备310中的传感器,诸如惯性测量单元(imu)、加速度计、磁力计、陀螺仪等。
54.在一些具体实施中,调试者视点可被示出为与用户视点相同,或可从不同视点进行说明。因此,呈现给调试者的视图可说明用户在应用程序320的执行期间的情况。在应用程序320的执行期间,系统应用程序(例如,调试者应用程序)录制程序状态信息和根据在应用程序的执行期间用户交互所确定的应用程序内容的变化。例如,录制程序状态信息可包括录制场景理解或快照,诸如对象在环境中的位置(例如,应用程序320内的虚拟对象)。在一些具体实施中,场景理解可包括头部姿势数据、用户在应用程序中正在看什么(例如,虚拟对象)、手部姿势信息。另外,录制场景理解网格可包括录制在程序的执行期间同时生成的场景理解3d网格。
55.另外,录制场景理解可包括录制除了视觉数据之外的其他数据。例如,空间立体音频可以是应用程序320的一部分。因此,系统应用程序可回放由应用程序320产生的空间立体音频。在一些具体实施中,可在调试者视点上呈现视觉元素(例如,虚拟图标)以指示空间立体音频在回放期间的该时刻来自的位置(例如,3d坐标)。
56.在一些具体实施中,现实引擎架构可同步应用程序(例如,应用程序320)与整个系统应用程序(例如,调试者应用程序)之间的变化。在一些具体实施中,可捕获在应用程序和整个系统应用程序之间传送的变化和/或增量以进行录制。捕获在应用程序和整个系统应用程序之间传送的变化和/或增量可使得能够在对应用程序的性能几乎没有影响的情况下进行录制。调试者(例如,自动调试者应用程序或调试应用程序的系统工程师)可接收应用程序到系统变化并将其写入视频文件(例如,包括场景层级的场景内容/快照及快照之间的变化两者的视频文件)。
57.在一些具体实施中,3d环境(例如,场景和其他应用程序内容)可经由清理器工具330在整个执行和回放期间连续地/实况地呈现。即,渲染引擎可在一个时间段期间连续地运行以注入执行应用程序内容并且在另一时间段注入录制的应用程序内容。在一些具体实施中,回放可以不同于以与内容初始产生的方式相同的方式简单地重建内容。例如,回放可涉及使用球的位置的录制值(例如,3d坐标)而不是让球使用物理系统(例如,在虚拟保龄球应用程序中)。即,用户(例如,编程者/调试者)可暂停测试并使用清理器工具330来返回以查看期望的时间点(例如,查看所发生的调试事件/错误,如本文参考图4进一步论述)。
58.在一些具体实施中,生成录像包括:获得对应于应用程序内容在多个时间点的状态的所录制程序状态信息(例如,调试者应用程序获得定期快照);获得应用程序内容的变化;以及基于所录制程序状态信息和来自应用程序与系统进程之间的通信的应用程序内容的变化生成应用程序的执行的录像。变化可包括在状态之间发生的应用程序内容的变化。例如,变化可包括在每个快照之间变化的参数变化、增加/减少、位置变化、新值、(用户的头部姿势、手部姿势等的)新位置等。
59.图4示出根据一些具体实施的呈现物理环境的快照的表示(例如,透传视频)、从不同视点(例如,调试者视点)呈现应用程序(例如,虚拟绘图应用程序)的用户视点、以及在特定时间点(例如,在调试诸如错误的事件期间)呈现用于调试者的清理器工具(例如,虚拟回放控制器)的示例性环境400。因此,例如,图4示出观看虚拟应用程序(例如,应用程序320)用户视角的调试者视角,该虚拟应用程序覆盖或放置在真实世界内容(例如,用户卧室的透传视频)表示内。然而,图4示出调试者在特定时间(例如,当调试事件发生时)暂停应用程序执行的回放。例如,在特定时间处,调试事件420(例如,“短时脉冲干扰”)在应用程序320的执行期间发生。调试者可随后经由系统应用程序(例如,调试者应用程序)使用清理器工具330来回放应用程序320的执行的录像并在任何特定时间停止回放。随着调试者与清理器工具330交互(例如,当发生调试事件420时点击暂停按钮),手部图标410是调试者手部在系统环境中的3d表示。
60.在一些具体实施中,调试者有机会从不同视点观看回放。例如,调试者可利用系统应用程序和手部图标410来抓取当前快照并针对调试者拖动透视图。例如,环境400从特定3d坐标(例如,x1、y1、z1)示出针对调试者的特定视点。在一些具体实施中,调试者可利用手部图标410(例如,可选择的图标)或其他方式,并且及时改变同一特定快照处的视点(例如,在调试事件420期间)以从不同3d坐标(例如,x2、y2、z2)观看快照。在一些具体实施中,调试者可将设备310移动到示例性位置x2、y2、z2,并且响应于此移动,设备更新快照的视图。
61.图5示出根据一些具体实施的示例性环境500的系统流程图,在该环境中,系统可呈现包括3d环境内的应用程序内容回放的快照的视图。在一些具体实施中,示例性环境500的系统流程在设备(例如,图1的设备120)诸如移动设备、台式计算机、膝上型计算机或服务器设备上执行。示例性环境500的图像可显示在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备诸如hmd上。在一些具体实施中,示例性环境500的系统流程在处理逻辑部件(包括硬件、固件、软件或它们的组合)上执行。在一些具体实施中,示例性环境500的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。
62.示例性环境500的系统流从物理环境(例如,图1的物理环境105)的传感器采集环境数据502(例如,图像数据),并且从应用程序(例如,图3至图4的应用程序320)采集应用程
序数据506,集成并录制环境数据502和应用程序数据506,并且生成交互式回放数据以供调试者查看应用程序的执行(例如,识别错误(如果有的话)的发生)。例如,本文所述的虚拟应用程序调试者技术可通过录制对应于应用程序内容在多个时间点的状态的程序状态信息(例如,调试者应用程序获得定期快照)来从不同视点回放应用程序的执行,获得应用程序内容的变化,并且基于所录制程序状态信息和来自应用程序与系统进程之间的通信的应用程序内容的变化生成应用程序的执行的录像。
63.在示例性具体实施中,环境500包括从设备(例如,图1的设备120)上的传感器采集或获得物理环境的数据(例如,来自图像源的图像数据)的图像合成流水线。示例性环境500是采集多个图像帧的图像传感器数据(例如,光强度数据、深度数据和位置信息)的示例。例如,图像504表示由于用户在物理环境(例如,图1的物理环境105)中的房间而由用户采集的图像数据。图像源可包括采集物理环境的深度数据的深度相机、采集光强度图像数据(例如,rgb图像帧序列)的光强度相机(例如,rgb相机),以及用于采集定位信息的位置传感器。对于定位信息,一些具体实施包括视觉惯性测距(vio)系统,以通过使用相机序列图像(例如,光强度数据)确定等效测距信息来估计行进的距离。另选地,本公开的一些具体实施可包括slam系统(例如,位置传感器)。该slam系统可包括独立于gps并且提供实时同时定位与映射的多维(例如,3d)激光扫描和范围测量系统。该slam系统可生成并管理由来自环境中对象的激光扫描的反射而产生的非常准确的点云数据。随着时间推移,准确地跟踪点云中的任何点的移动,使得slam系统可使用点云中的点作为位置的参考点,在其行进通过环境时保持对其位置和取向的精确理解。该slam系统还可以是依赖于光强度图像数据来估计相机和/或设备的位置和取向的可视slam系统。
64.在示例性具体实施中,环境500包括采集或获得应用程序数据(例如,来自应用程序源的应用程序数据)的应用程序数据流水线。例如,应用程序数据可包括虚拟绘图应用程序508(例如,图3至图4的虚拟应用320)。应用程序数据可包括3d内容(例如,虚拟对象)和用户交互数据(例如,用户与应用程序的交互的触觉反馈)。
65.在一个示例性具体实施中,环境500包括配置有可由处理器执行以生成回放数据515的指令的集成环境录制指令集510。例如,集成环境录制指令集510获得环境数据502(例如,诸如图1的物理环境105的物理环境的图像数据),获得应用程序数据(例如,虚拟应用程序),集成环境数据和应用程序数据(例如,将虚拟应用程序覆盖在物理环境的3d表示上),录制应用程序的执行期间的状态改变和场景理解,以及生成回放数据515。
66.在一个示例性具体实施中,集成环境录制指令集510包括集成指令集520和录制指令集530。集成指令集520配置有可由处理器执行以集成物理环境的图像数据和来自虚拟应用程序的应用程序数据以将虚拟应用程序覆盖在物理环境的3d表示上的指令。例如,集成指令集520分析环境数据502以生成物理环境的3d表示(视频透传、光学透视或重建的虚拟房间),并将应用程序数据与3d表示集成,使得用户在应用程序的执行期间将应用程序作为3d表示上的覆盖来查看,如本文参考图3至图4所示。
67.录制指令集520配置有可由处理器执行以从集成指令集520采集整合数据522并生成录制数据532的指令。例如,录制指令集520基于录制程序状态信息和根据在应用程序的执行期间用户交互所确定的应用程序内容的变化来生成应用程序的执行的录像。例如,录制程序状态信息可包括录制场景理解或快照,诸如对象在环境中的位置。在一些具体实施
802.16x、gsm、cdma、tdma、gps、ir、bluetooth、zigbee、spi、i2c和/或相似类型的接口)、一个或多个编程(例如,i/o)接口610、一个或多个显示器612、一个或多个面向内部和/或面向外部的图像传感器系统614、存储器620以及用于互连这些部件和各种其他部件的一条或多条通信总线604。
73.在一些具体实施中,一条或多条通信总线604包括互连和控制系统部件之间的通信的电路。在一些具体实施中,该一个或多个i/o设备及传感器606包括以下各项中的至少一者:惯性测量单元(imu)、加速度计、磁力计、陀螺仪、温度计、一个或多个生理传感器(例如,血压监测仪、心率监测仪、血氧传感器、血糖传感器等)、一个或多个麦克风、一个或多个扬声器、触觉引擎或者一个或多个深度传感器(例如,结构光、飞行时间等),等等。
74.在一些具体实施中,一个或多个显示器612被配置为向用户呈现物理环境或图形环境的视图。在一些具体实施中,一个或多个显示器612对应于全息、数字光处理(dlp)、液晶显示器(lcd)、硅上液晶(lcos)、有机发光场效应晶体管(olet)、有机发光二极管(oled)、表面传导电子发射器显示器(sed)、场发射显示器(fed)、量子点发光二极管(qd-led)、微机电系统(mems)和/或类似显示器类型。在一些具体实施中,一个或多个显示器612对应于衍射、反射、偏振、全息等波导显示器。在一个示例中,设备600包括单个显示器。又如,设备600包括针对用户的每只眼睛的显示器。
75.在一些具体实施中,该一个或多个图像传感器系统614被配置为获得对应于物理环境105的至少一部分的图像数据。例如,该一个或多个图像传感器系统614包括一个或多个rgb相机(例如,具有互补金属氧化物半导体(cmos)图像传感器或电荷耦合器件(ccd)图像传感器)、单色相机、ir相机、深度相机、基于事件的相机等。在各种具体实施中,一个或多个图像传感器系统614还包括发射光的照明源,诸如闪光灯。在各种具体实施中,该一个或多个图像传感器系统614还包括相机上图像信号处理器(isp),该isp被配置为对图像数据执行多个处理操作。
76.在一些具体实施中,设备120包括用于检测眼睛位置和眼睛移动(例如,眼睛注视检测)的眼睛跟踪系统。例如,眼睛跟踪系统可包括一个或多个红外(ir)发光二极管(led)、眼睛跟踪相机(例如,近红外(nir)相机)和向用户的眼睛发射光(例如,nir光)的照明源(例如,nir光源)。此外,设备10的照明源可发射nir光以照明用户的眼睛,并且nir相机可捕获用户的眼睛的图像。在一些具体实施中,可分析由眼睛跟踪系统捕获的图像以检测用户的眼睛的位置和移动,或检测关于眼睛的其他信息诸如瞳孔扩张或瞳孔直径。此外,从眼睛跟踪图像估计的注视点可使得能够与设备120的近眼显示器上示出的内容进行基于注视的交互。
77.存储器620包括高速随机存取存储器,诸如dram、sram、ddr ram或其他随机存取固态存储器设备。在一些具体实施中,存储器620包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器620任选地包括与一个或多个处理单元602远程定位的一个或多个存储设备。存储器620包括非暂态计算机可读存储介质。
78.在一些具体实施中,存储器620或存储器620的非暂态计算机可读存储介质存储任选的操作系统330和一个或多个指令集640。操作系统630包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些具体实施中,指令集640包括由以电荷形式存储的
二进制信息定义的可执行软件。在一些具体实施中,指令集640是能够由一个或多个处理单元602执行以实施本文所述技术中的一种或多种的软件。
79.指令集640包括集成环境指令集642和调试者指令集644。指令集640可以体现为单个软件可执行文件或多个软件可执行文件。
80.集成环境指令集642(例如,图3的点云注册指令集320)可由处理单元602执行以生成回放数据515。例如,集成环境录制指令集642获得环境数据(例如,诸如图1的物理环境105的物理环境的图像数据),获得应用程序数据(例如,虚拟应用程序),集成环境数据和应用程序数据(例如,将虚拟应用程序覆盖在物理环境的3d表示上),录制应用程序的执行期间的状态改变和场景理解,以及生成回放数据。在一个示例性具体实施中,集成环境录制指令集包括集成指令集和录制指令集。集成指令集配置有可由处理器执行以集成物理环境的图像数据和来自虚拟应用程序的应用程序数据以将虚拟应用程序覆盖在物理环境的3d表示上的指令。例如,集成指令集分析环境数据以生成物理环境的3d表示(视频透传、光学透视或重建的虚拟房间),并将应用程序数据与3d表示集成,使得用户在应用程序的执行期间将应用程序作为3d表示上的覆盖来查看,如本文参考图3至图4所示。
81.调试者指令集644配置有可由处理器执行以评估来自集成环境指令集642的回放数据的指令,并且呈现包括基于回放数据在3d环境内回放应用程序内容的视图集。在一些具体实施中,在设备(例如,图1的设备120)的显示器上显示第二视图集(例如,从与图3至图4中所示的用户不同的视角/视点)。在一些具体实施中,调试者指令集540生成交互显示数据,诸如清理器工具(例如,图3至图4的清理器工具330),使得调试者可与回放数据交互(例如,倒回、改变视角等)。
82.尽管指令集640被示出为驻留在单个设备上,但应当理解,在其他具体实施中,元件的任何组合可位于单独的计算设备中。此外,图6更多地用作存在于特定具体实施中的各种特征部的功能描述,该各种特征部与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。指令集的实际数量以及如何在其中分配特征将根据具体实施而变化,并且可以部分地取决于为特定具体实施选择的硬件、软件和/或固件的特定组合。
83.本文所公开的一些具体实施提供集成来自从任意视图(例如,视点1102a和视点2 102b)捕获的场景的任意数目图像的信息(例如,部分点云)的技术。在一些具体实施中,本文所公开的技术用于使用两个或多个图像(例如,由移动设备、hmd、膝上型计算机或其他设备(例如,设备120)从两个不同视点捕获的图像)来估计部分点云的变换参数。这些技术可利用包括深度学习模型的机器学习模型,深度学习模型输入两个部分点云并且在无显式匹配的情况下直接预测一个点云在另一个点云的坐标系统中的逐点位置。深度学习可应用于每个部分点云以生成所估计的变换参数的潜在表示。在一些具体实施中,深度学习模型为每个潜在值生成相关联的置信度水平。使用来自不同图像的预测和置信度值,这些技术可组合结果以生成部分点云的每个变换参数的单个估计。
84.描述了若干细节以便提供对附图中所示的示例性方面的透彻理解。此外,附图仅示出了本公开的一些示例性方面,因此不应被视为限制。本领域的普通技术人员将会知道并未详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。此外,其他有效方面和/或变体不包括本文所述的所有具体细节。
85.本文所公开的方法的各方面可在计算设备的操作中执行。上述示例中呈现的框的顺序可以变化,例如,可以将框重新排序、组合和/或分成子块。某些框或过程可以并行执行。本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
86.本说明书中描述的主题和操作的实施方案可在数字电子电路中或在计算机软件、固件或硬件中(包括本说明书中公开的结构及其结构等同物)或在它们中的一者或多者的组合中实现。本说明书中所述主题的实施方案可被实现为一个或多个计算机程序,即在计算机存储介质上编码的计算机程序指令的一个或多个模块,以用于由数据处理装置执行或控制数据处理装置的操作。另选地或除此之外,该程序指令可在人工生成的传播信号上被编码,例如机器生成的电信号、光信号或电磁信号,该电信号、光信号或电磁信号被生成以对信息进行编码以便传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备,或者它们中的一者或多者的组合,或者包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备中。此外,虽然计算机存储介质并非传播信号,但计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的物理部件或介质(例如,多个cd、磁盘或其他存储设备),或者包括在一个或多个单独的物理部件或介质中。
87.术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机、片上系统、或前述各项中的多项或组合。该装置可包括专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))。除了硬件之外,该装置还可包括为所考虑的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行环境、虚拟机或它们中的一者或多者的组合的代码。该装置和执行环境可实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。除非另外特别说明,否则应当理解,在整个说明书中,利用诸如“处理”、“计算”、“计算出”、“确定”和“标识”等术语的论述是指计算设备的动作或过程,诸如一个或多个计算机或类似的电子计算设备,其操纵或转换表示为计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的物理电子量或磁量的数据。
88.本文论述的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括部件的提供以一个或多个输入为条件的结果的任何合适的布置。合适的计算设备包括基于多用途微处理器的计算机系统,其访问存储的软件,该软件将计算系统从通用计算装置编程或配置为实现本发明主题的一种或多种具体实施的专用计算装置。可以使用任何合适的编程、脚本或其他类型的语言或语言的组合来在用于编程或配置计算设备的软件中实现本文包含的教导内容。
89.本文所公开的方法的具体实施可以在这样的计算设备的操作中执行。上述示例中呈现的框的顺序可以变化,例如,可以将框重新排序、组合和/或分成子块。某些框或过程可以并行执行。
90.本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条
件或超出所述的值。本文包括的标题、列表和编号仅是为了便于解释而并非旨在为限制性的。
91.还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重命名。第一节点和第二节点都是节点,但它们不是同一个节点。
92.本文中所使用的术语仅仅是为了描述特定具体实施并非旨在对权利要求进行限制。如在本具体实施的描述和所附权利要求中所使用的那样,单数形式的“一个”和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。
93.如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。
[0094]
虽然本说明书包含许多具体实施细节,但是这些具体实施细节不应被理解为是对任何发明或可能要求保护的内容的范围的限制,而应被理解为对特定于特定发明的特定实施方案的特征的描述。本说明书中在不同实施方案的上下文中描述的某些特征也可以在单个实施方案中组合地实现。相反地,在单个实施方案的上下文中描述的各种特征也可单独地或者以任何合适的子组合的形式在多个实施方案中实现。此外,虽然某些特征可能在上面被描述为以某些组合来起作用并且甚至最初也这样地来要求保护,但是要求保护的组合的一个或多个特征在某些情况下可从该组合中去除,并且要求保护的组合可涉及子组合或子组合的变型。
[0095]
类似地,虽然操作在附图中以特定次序示出,但不应将此理解为要求以相继次序或所示的特定次序来执行此类操作,或者要求执行所有所示的操作以实现期望的结果。在某些情况中,多任务和并行处理可能是有利的。此外,上述实施方案中各个系统部件的划分不应被理解为在所有实施方式中都要求此类划分,并且应当理解,所述程序部件和系统可一般性地一起整合在单个软件产品中或者封装到多个软件产品中。
[0096]
因此,已经描述了主题的特定实施方案。其他实施方案也在以下权利要求书的范围内。在某些情况下,权利要求书中所述的动作能够以不同的次序执行,并且仍能实现期望的结果。此外,附图中所示的过程未必要求所示的特定次序或者先后次序来实现期望的结果。在某些具体实施中,多任务和并行处理可能是有利的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
zhuanli/58/202180076652.html by HTTrack Website Copier/3.x [XR&CO'2014], Mon, 24 Jul 2023 12:55:31 GMT -->