用于确定当前注视方向的方法和系统与流程
未命名
07-15
阅读:78
评论:0
1.本发明涉及一种用于确定用户关于三维(“3d”)场景的当前注视方向的方法。本发明还涉及一种用于执行这种方法的系统和计算机软件功能。
2.本发明的实施例涉及在用户观察3d场景时跟踪用户的注视,并且特别涉及如何确定3d场景中用户的注视当前所朝向的点、区或实体。
背景技术:
3.已知的是,检测眼睛及其注视方向。例如,这可以通过以下操作来完成:利用红外辐射照亮在其中寻找眼睛的区域;捕获该区域的图像;以及检测该图像中源自眼睛的瞳孔和角膜的亮点。这种方法利用摄影师已知的亮眼或“红眼”效应,借此使光线进入眼睛并通过瞳孔反射或吸收并重新发射,从而使瞳孔看起来比眼睛的其余部分和脸部更明亮。角膜会产生单独的较小的亮点(也被称为闪光)。瞳孔和角膜闪光的相对位置可以用于确定眼睛的注视方向。美国专利号6,152,563中给出了更多细节。
4.作为替代或附加,可以使用类似的技术,借此将红外照明器与图像传感器间隔开,因此由图像传感器捕获的图像具有非明亮瞳孔,亦被称为“暗瞳”效应。
5.该注视跟踪技术可以在例如邻近显示器而定位的远程注视跟踪器中实施,或者在诸如一副眼镜、虚拟现实头戴装置、增强现实头戴装置、头盔等可穿戴设备中实施。
6.这种注视跟踪技术可以用于确定用户是否正在观看屏幕上的特定对象或区域(这些对象或区域在本技术中被统称为
‘
区’)。这可以作为游戏的一部分,例如,允许用户通过观看屏幕上的图像来与图像进行交互(观看图像的动作具有预定结果),或者通过观看图像与其他控制的组合来与图像进行交互(例如,用户在其注视朝向图像的同时按下键盘上的按键或鼠标)。
7.当确定用户的注视关于3d场景当前朝向何处时,必须考虑该用户关于诸如屏幕等物理观看区域的物理注视方向。然而,还必须考虑场景本身的当前状态、以及虚拟相机的当前虚拟3d空间位置和方向。这对于2d场景和3d场景都是如此。
8.在本文中,“模拟”场景是指这样的场景,其最终呈现或表现是通过对定义的虚拟模型进行某种类型的计算机模拟而产生的。所讨论的最终呈现采取2d图像(诸如屏幕显示器上的位图)或3d图像(诸如全息图)的形式。所讨论的“模拟”发生在对最终呈现的渲染之前,并且包括考虑场景的动态特性,诸如场景中存在的可变对象和/或定义的虚拟模型本身(在虚拟空间中)相对于用户定义的视点的几何变换。通常,这种“模拟”考虑到某些预定义的规则,这些规则可能构成所述虚拟模型定义的一部分,所述虚拟模型定义涉及这种变异将如何基于这些规则以至少部分或至少统计学上的确定性方式随时间推移而发展。
9.已经证明,由于各种延迟,在例如所有这些参数都可能快速变化的动态游戏情况下,用户体验将通常不够完美。
10.例如,第一类情况发生在用户观看如监视器屏幕上示出的虚拟3d场景中的特定对象时。然后,被观看的对象出现在所述屏幕上的特定位置处。然后,旋转和/或平移用于将3d
场景渲染为在屏幕上看到的2d图像的虚拟相机,并且因此所看到的2d图像相应地发生改变。然而,由于延迟,用户在所述屏幕上的注视点将保持不变,直到用户的眼睛通过用户移动其注视以便再次聚焦在先前由于虚拟相机移位而移动的所述对象上来对虚拟相机移位做出反应为止。此后,硬件延迟导致游戏控制器(或类似设备)检测到屏幕上已改变的用户注视点之前的时间延迟,使得用户交互功能可以正确地做出反应。
11.在第二类情况中,随着3d场景本身改变,诸如由于所述对象在虚拟3d场景内移动过,即使虚拟相机位置或方向没有发生改变,也将会产生类似的延迟效果。
12.us 2020/278746a1提出了一种针对这些第一和第二类情况工作的解决方案,即通过确定测量确定注视方向的时间与渲染下一帧的时间之间虚拟相机的3d变换,然后使用该3d变换的反变换确定调整后的注视方向。
13.然而,这种解决方案需要了解用于渲染所讨论场景的虚拟相机的动态状态。
14.在第三类情况中,首先使用虚拟相机渲染场景,从而得到上述类型的呈现。然而,然后在渲染器的下游提供的单独过程中,重新投影渲染后的呈现。这种重新投影是在实际展示之前对要呈现给用户的渲染的2d或3d图像施加的变换。例如,重新投影可以用于:在佩戴对头部姿势敏感的vr/ar监视器(头戴式显示器,hmd)时,能够迅速对用户移动或转动其头部做出反应;将渲染器由于gpu的不足而漏掉的帧进行补偿;对由于镜头特性而进行的调整进行补偿;等等。对于这样的重新投影,没有重新渲染场景以产生重新投影的呈现,而是通过对整个渲染的呈现施加变换来变换已经渲染的图像。也可能是在不同的时间点使用不同的重新投影/移动调整来呈现同一渲染图像。例如,当以较低的帧频率然后以期望的最终输出帧频率产生图像时,可能会出现这种情况。
15.在这第三类情况中,即使注视检测机制能够获得关于用于执行渲染的虚拟相机的动态特性的信息,也会在这种渲染的下游进行重新投影。尽管如此,由于所述重新投影,可能会出现与第一和第二类情况类似的问题。
16.这些问题不仅导致较差的用户体验,而且限制了可以用于实施用户与3d场景的交互的时间粒度。
17.对于gtom(注视到对象的映射)实施方式,会出现特别的问题,其中系统尝试检测屏幕上作为用户凝视或以其注视跟随的当前聚焦对象的静止或可移动对象。
18.通常,注视检测算法可以使用各种缓冲区,本文统称为“标签缓冲区”,这些缓冲区是各种场景特性(诸如深度、颜色和几何特征)的简化表示或限定范围的表示。例如,深度缓冲区和模板缓冲区都是当前意义上的标签缓冲区。一个这样的标签缓冲区可以是注视交互面罩区(mask)。在us 2016/0357255 a1中描述了这样的标签缓冲区在确定用户注视方向中的使用。当基于一个或多个这样的标签缓冲区中包含的信息确定关于渲染场景的注视方向时,所确定的注视方向通常会在呈现的重新投影时变得不确定或无效。
19.通过提供更快的硬件和更高效的软件,可以部分地克服这些问题。然而,这很昂贵并且不能解决所有问题。
20.因此,本发明旨在至少部分地克服上述问题。
技术实现要素:
21.因此,本发明涉及一种用于确定用户关于三维(“3d”)场景的当前注视方向的方
法,该3d场景通过渲染功能进行采样以产生该3d场景的至少一个投影图像,其中,该方法包括以下步骤:由重新投影装置确定在显示之前要施加于投影图像的重新投影变换,以便在注视时间点对用户可见;由注视方向检测装置确定用户在所述注视时间点的物理注视方向;以及确定用户在所述注视时间点改变的注视方向,该改变的注视方向是基于物理注视方向和重新投影变换两者而关于3d场景确定的。
22.此外,本发明涉及一种用于确定用户关于三维场景的当前注视方向的系统,通过渲染功能对3d场景进行采样以产生该3d场景的至少一个投影图像,该系统包括:注视方向检测装置,被布置成确定用户在注视时间点的物理注视方向;以及改变的注视方向检测装置,被布置成接收关于在显示之前要施加于投影图像的重新投影变换的信息,以便在所述注视时间点对用户可见,并且进一步被布置成确定用户在所述注视时间点的改变的注视方向,该改变的注视方向是基于所述物理注视方向和所述重新投影变换两者而关于3d场景确定的。
23.此外,本发明涉及一种用于确定用户关于三维场景的当前注视方向的计算机软件功能,该3d场景通过渲染功能进行采样以产生该3d场景的至少一个投影图像,该计算机软件功能被配置成当在计算机硬件上执行时执行以下步骤:确定或接收用户在所述注视时间点的物理注视方向;接收关于在显示投影图像之前施加于投影图像的重新投影变换的信息,以便在注视时间点对用户可见;以及确定用户在所述注视时间点的改变的注视方向,该改变的注视方向是基于所述物理注视方向和所述重新投影变换两者而关于3d场景确定的。
24.在下文中,将参考本发明的例示性实施例和附图来详细描述本发明,在附图中:
附图说明
25.图1是用于说明如何将3d场景渲染为2d图像的简图;
26.图2是用于实施注视检测的例示性系统的简图;
27.图3是用于说明立体图像设备的操作原理的简图;
28.图4是用于说明多焦点图像设备的操作原理的简图;
29.图5是示出了根据本发明的系统的简图;
30.图6是展示了根据本发明的方法的流程图;以及
31.图7和图8展示了本发明的示例实施例。
32.在所有附图中,相同的附图标记表示相同或相似的部分。
具体实施方式
33.本发明涉及关于3d场景的注视跟踪。本文使用术语注视跟踪来表示检测和/或监测眼睛的位置和/或眼睛的注视方向的任何方法或系统。本领域技术人员将了解并知晓这样的系统。
34.还应注意,描述还涉及“注视可交互”对象或区。该短语旨在表示系统可以检测到用户的注视正在朝向的对象。这可能会或可能不会导致对于用户的明显“交互”。例如,当系统检测到用户的注视正朝向注视可交互对象时,用户可能看不到任何标志。然而,对象已经被观看到的事实将会以非明显方式被系统检测到并且可以由该系统使用(例如,用于统计分析)。因此,术语“注视可交互”不应被解释为要求与用户进行明显的交互。
35.图1提供了3d场景10的示例。这种场景可以是诸如在计算机游戏中的或针对虚拟现实头戴装置而创建的虚拟3d场景。场景10包含3d对象1。此类对象1可能会随时间推移在场景10内移动。实际上,对象1也可以移出场景10,而其他对象1可以移入到场景中。当在监视器或计算机屏幕上观看此类3d场景时,监视器或屏幕通过视口2呈现2d图像,该2d图像表示从空间中的特定位置来看3d场景的视图。视口2界定了由位于关于3d场景10的设想位置处的虚拟相机20或眼睛将看到的图像。虚拟相机20和视口2的位置组合设定了视域4。图1还示出了视锥体3,其是3d场景10中的在视口2中展示的区域(即,延伸到3d场景10的最后部分)。
36.图1的简图也适用于例如在虚拟现实头戴装置中使用的立体图像。在那种情况下,以略微不同的视口2将用户的每只眼睛呈现到场景10上,然后用户的大脑从其感知单个3d图像。示例见图3。在这种情况下,每个图像通常以非线性方式发生变形以补偿镜头特性。然而,对于呈现给用户的每只眼睛的每个图像,其基本理念与参考图1所讨论的理念相同。
37.3d对象1在理论上可以是由多边形构造的无限复杂的3d形状。如上所讨论的,经由视口2观看到的图像是如从虚拟相机20的位置所见的3d对象1在视口2的平面上的2d投影。然而,在其上显示2d视口2图像的屏幕由离散元素或像素的阵列组成。这样,必须通过在每个屏幕像素位置处对所投影的图像进行采样来将3d对象1的投影光栅化到显示网格上,以产生将被呈现为视觉场景(即,通过视口2观察到的场景)的图像。像素值作为与屏幕或视口2相同尺寸对应的2d“位图(bitmap)”而被存储在存储器区域或缓冲器中。
38.这里,这种光栅化在本文中通常被称为对3d场景的“采样”。采样由渲染功能来执行以产生3d场景10的所述2d投影图像,并且尤其是基于虚拟相机20的特性由渲染功能来执行。虚拟相机20的此类特性进而可以包括虚拟相机20关于所讨论的虚拟3d场景10的位置以及虚拟相机20关于该虚拟3d场景的方向。换句话说,虚拟相机20位于虚拟3d空间中的特定点处,并且朝向特定的虚拟3d空间方向。光栅化的2d图像将取决于虚拟3d场景的内容以及所述相机20的位置和方向两者。
39.应注意,术语“位图”具有许多可能的含义。在本发明的背景下并且如在计算机图形学领域中常见的,其用于表示像素的空间映射阵列的概念,其也可以被称为“像素图(pixmap)”。术语位图不旨在传达有关所存储信息的位深度的任何限制。在本发明中,所存储信息的位深度可以是可变的。
40.图2示出了根据本发明的系统40的示意性视图,在该系统中可以实施所述注视检测。系统40包括显示设备、屏幕或监视器41,以及注视检测器(注视跟踪器或注视方向检测装置)42。屏幕41可以采用常规形式或非常规形式,包括虚拟屏幕,诸如车辆中的视网膜投影仪或平视显示器。注视方向检测装置42和屏幕41两者都连接到计算机43。在现代计算机43中,对于可并行计算,图形处理单元(gpu)45通常比中央处理单元(cpu)44快上10到100倍。这样,优选的是,使用gpu 45来实施本发明。然而,可以使用诸如cpu 44等任何合适的处理器来实施本发明。
41.计算机43进一步包括存储器46以及常规的计算机总线,所述2d图像可以作为位图47存储在该存储器中。应理解,图2所示的示例仅用于说明。在实践中,设置可能有所不同,例如,注视检测器42是与显示设备41和/或计算机43集成的部分。
42.图3是类似于图1的简化视图,示出了一种情况,其中显示设备41c被布置成并行显
示(诸如在两个不同的物理显示屏上显示)一对立体投影图像2a、2b,以实现用户的沉浸式ar(增强现实)或vr(虚拟现实)体验。例如,用户可以将设备41c作为头戴式显示单元戴在头上,头戴式显示单元包括所述屏幕,并被配置成向所讨论用户的每只眼睛展示所述投影图像2a、2b中的相应一个。设备41c的显示屏的一个可能位置位于两个相应视口2的所示位置。
43.图4是也类似于图1的另一个简化视图,并且示出了显示设备41b被布置成显示多焦点投影图像的情况,该多焦点投影图像进而包括一组两个以上(诸如至少十个)的不同图像2c或者是从该组图像中选择的,该组图像被并行渲染,但关于观察用户的眼睛具有不同的焦平面。因此,图像2c可以全部通过渲染功能来并行渲染,然后根据例如检测到的用户眼睛的当前焦距示出渲染图像2c中的一个。可以认识到,这样的多焦点显示器只是几个可能的示例之一,其中,一个显示器可以被布置成显示一组可能的渲染图像2c中的一个或几个。在图4中,多个图像被示出在视口2的位置,但关于深度存在差异。实际上,图像2c被投影成在空间中的同一位置处显示。另外,设备41b的屏幕显示器可以布置在所示视口2处。
44.应注意,图3和图4都是非常示意性的,展示了与相应设备41a、41b有关的相关原理。其目的是说明本发明所适用于的不同类型显示设备之间的差异。当然,在实践中,所展示的设置可能会有所不同。例如,立体显示设备也可以是多焦点显示设备。
45.图5展示了根据本发明的用于确定用户关于三维(“3d”)场景10的当前注视方向的系统100,3d场景10通过渲染功能110进行采样以产生3d场景10的至少一个投影图像。
46.图5使用箭头展示了可能的通信路径,所有这些通信路径可能不会在所有实施例中提供或使用。
47.可以认识到,在一些实施例中,系统100包括渲染功能110,而在其他实施例中,渲染功能是位于系统100之外的外部部分。
48.渲染功能110可以实施为计算机软件,诸如图形计算机游戏或其他交互式计算机应用程序,或者实施为更大的计算机软件(例如xr runtime)的一部分。渲染功能可以具有用于与其他系统100内部或系统100外部部分进行通信的各种接口110’,诸如下面描述的注视方向检测装置130和被布置成控制游戏、gui或类似物的逻辑的逻辑模块111。图5中所示的特定拓扑结构或架构只是用于说明目的的示例。例如,在一些实施例中,渲染功能110可以部分或全部实施为远程服务,诸如云服务,以经由互联网(诸如经由wifi或5g无线互联网连接)将最终渲染的投影图像馈送到显示设备41。
49.如本文所使用的,术语“接口”旨在涵盖任何适当使用的逻辑、电气和/或物理接口,包括无线或电缆通信接口和api(应用程序编程接口)。图5中展示的每个这样的接口可以包括一个或几个不同的接口,用于各种类型的通信、用于与各种其他实体的通信和/或用于各种不同类型信息的通信,包括一个或多个通信层。
50.图5进一步展示了重新投影装置120,该重新投影装置被布置成经由所述(多个)接口110’和重新投影装置120的接口120’与渲染功能110通信。重新投影装置120被布置成确定在显示设备41显示投影图像之前要施加于投影图像的重新投影变换,以便在特定注视时间点(诸如在每个注视时间点)对用户可见。重新投影装置120可以是物理上和/或本地独立的部分,也可以是显示设备41的一部分。重新投影变换的确定可以使用在硬件和/或软件中实施的算法来实现。
51.重新投影装置120可以使用合适的重新投影算法或电路系统、或这些的组合在软
件和/或硬件中实施。
[0052]“注视时间点”是指投影图像在视觉上显示给用户的时间点。此时,将存在最新的注视方向,该方向在注视时间点之前或之时已经确定。通常,在注视时间点已经执行了渲染和重新投影。然而,(未经改变的)注视方向的最后确定可能发生在当前使用的投影图像的渲染最终完成之前或之后;也可能发生在施加重新投影变换之前或之后。
[0053]
正如下文将举例说明的,重新投影的可能效果是,关于显示设备42被检测到的特定检测注视方向将转化为关于在显示设备42上或由显示设备以投影图像形式示出的渲染场景10的不同注视方向。可以确定改变的注视方向,以便即使在执行了重新投影之后也能够将检测到的关于显示设备42的注视方向正确地转化为关于场景10的对应注视方向。
[0054]
通常,可以基于可供重新投影装置120使用的多条信息中的一条或几条来确定重新投影变换。
[0055]
这种信息的第一示例是物理显示装置(诸如显示设备41、41b或41c)的一组至少一个已知静态或动态可变特性,该物理显示装置被布置成显示所述投影图像。
[0056]
这种信息的第二示例是检测到的所述物理显示装置的移动。
[0057]
这种信息的第三示例是检测到的用户相对于所述物理显示装置的移动。
[0058]
这种信息的第四示例是外部提供的触发条件,诸如由渲染功能110或由重新投影装置120上游的硬件提供的触发条件。
[0059]
更具体地说,重新投影变换可以有几种不同的类型,可以逐个地施加,也可以根据具体情况以任意组合施加。重新投影变换可以基于对显示设备41的某些静态或动态可变特性的先验知识、和/或基于检测到的显示设备41的绝对移动、和/或基于检测到的显示设备41相对于用户的移动和/或外部触发条件(诸如检测到例如由于gpu瓶颈而漏掉的图像帧)来确定。
[0060]
例如,所述“静态或动态可变特性”可以是所讨论的显示设备41使用的镜头和/或投影表面的静态或动态可变光学特性。
[0061]
在第一示例中,重新投影变换包括投影图像的平移和/或投影图像的旋转和/或投影图像的重新缩放和/或投影图像的扭曲。
[0062]
如本文所使用的,术语“扭曲”是指投影图像的非线性几何变换,而“重新投影”是指投影图像的任何变换,包括基于一个或几个已知投影图像产生额外的投影图像(诸如使用插值技术)。
[0063]
平移、旋转或重新缩放可能是由于检测到显示设备41的移动,诸如,如果佩戴头戴式ar(增强现实)或vr(虚拟现实)显示器的用户以平移和/或旋转的方式移动(侧向移动可能对应于平移重新投影,而向前移动可能对应于放大的重新缩放重新投影)。投影图像的扭曲可能是由于非线性镜头特性与平移/旋转/重新缩放重新投影相结合造成的,和/或可能是由于考虑到非线性镜头或显示器特性或类似特性而使显示的图像适应于目前使用的显示屏造成的。
[0064]
在第二示例中,重新投影变换的结果是由一个或几个现有图像插值产生的综合确定的中间图像。例如,如果检测到丢失漏掉的图像帧,或者例如,如果由于例如快速变化的图形而需要增加帧速率,则可能会出现这种情况。
[0065]
在第三示例中,即在3d场景10通过渲染功能110进行采样以产生3d场景10的至少
两个投影图像(它们表示布置成在ar/vr设备41a(诸如结合图3说明的ar/vr设备)中显示的立体视图中的每个图像)的情况下,基于所讨论的ar/vr设备41a的一个或几个静态和/或动态可变特性,为每个所述图像确定重新投影变换。在这种情况下,在两个所投影和显示的图像之间,重新投影变换通常可能略有不同。
[0066]
在第四示例中,即在3d场景10通过渲染功能110进行采样以产生3d场景10的至少两个投影图像(它们表示要在同一个多图像显示器41b(诸如结合图4说明的多图像显示器)上显示的几个替代或补充图像)的情况下,基于所讨论的多图像显示器41b的至少一个静态和/或动态可变特性,为每个所述图像确定重新投影变换。
[0067]
因此,重新投影装置120被布置成在最终通过渲染功能110对图像进行渲染后,从渲染功能110接收每个渲染图像。优选地,没有从重新投影装置120回到渲染功能110的直接或间接反馈,优选地,就算经由逻辑模块111也没有反馈。相反地,重新投影装置120优选地确定重新投影变换,将重新投影变换施加于渲染图像,然后将其传递给显示设备41,诸如,经由重新投影装置120的合适接口120’和显示设备41的合适接口41’(或者,如果重新投影装置120是显示设备41集成部分,则经由内部接口)。通常,图像的渲染比施加重新影变换要耗费更多的gpu算力,因此,将重新投影变换施加于已经渲染的图像比考虑重新投影变换来重新渲染图像更高效且提供的延迟更少。
[0068]
此外,根据本发明,系统100包括所述注视方向检测装置42。注视方向检测装置42可以是如上所述的,并且被具体布置成确定用户在特定注视时间点的物理注视方向。通常,注视方向检测可能涉及“命中测试”算法,该算法被布置成确定与检测到的注视方向相对应的对象或感兴趣区域或类似物。
[0069]
与重新投影装置120一样,注视检测装置42可以使用合适的重新投影算法或电路系统、或算法与电路系统的组合在软件和/或硬件中实施。通常,注视检测装置42将包括或具有对访问某种硬件传感器的访问权,诸如对相机形式的视觉传感器的访问权,以检测用户眼睛的注视方向。
[0070]
此时,被检测到注视方向的用户可以将显示设备41、41a、41b作为头戴式显示器佩戴,或者可以以某种其他方式观看当前投影图像。注视方向是关于场景10确定的。
[0071]
注视方向检测装置42可以是逻辑上和/或物理上独立的设备,与系统100的其他部分和/或渲染功能110分开,但能够经由注视方向检测装置42的合适的接口42’与所述部分进行通信。具体地,注视方向检测装置42可以被布置成经由接口42’、110’与渲染功能110直接通信,和/或根据具体情况经由接口42’与逻辑模块111通信,以便直接或间接地向逻辑模块111和/或向渲染功能110提供信息,该信息涉及用户与场景10相关联的当前注视。然后,逻辑模块111和/或渲染功能110可以使用这种信息来影响场景10的外观、结构和/或渲染。一个示例是,如上所讨论的,检测到的当前注视方向可能会影响场景10中的用户可交互对象。
[0072]
系统100进一步包括改变的注视方向检测装置130,它可以是注视方向检测装置42的一体部分,也可以是一个逻辑上和/或物理上分开的实体。改变的注视方向检测装置130可以被布置成经由接口130’和120’与重新投影装置120通信。
[0073]
与注视方向检测装置42一样,改变的注视方向检测装置130可以使用合适的重新投影算法或电路系统、或算法与电路系统的组合在软件和/或硬件中实施。
[0074]
特别地,改变的注视方向检测装置130被布置成接收与在投影图像显示在显示设备41上之前被施加于投影图像的所述重新投影变换有关的信息,以便在所述注视时间点可见。这种接收到的信息可以是重新投影变换本身,或者是足以确定重新投影变换的特性的其他信息,这些特性是能够基于关于显示设备41的物理注视方向确定关于场景10的注视方向所必需的。
[0075]
此外,改变的注视方向检测装置130被布置成确定用户在所述注视时间点的改变的注视方向,该改变的注视方向是基于所述物理注视方向和所述重新投影变换两者而关于3d场景10确定的。在注视方向装置42是与改变的注视方向检测装置130不同的实体的情况下,关于所述物理注视方向的信息可以首先从注视方向装置42传送给改变的注视方向检测装置130。
[0076]
应理解,检测到的物理注视方向可以是最近检测到的物理注视方向。因此,该信息可以从相对于注视时间点处于过往短时间段内的检测中提供。根据注视检测装置42的实施方式,还可以以各种方式处理由改变的注视检测装置使用的检测到的物理注视方向。例如,如果注视检测装置42已确定用户当前的注视正在跟随在屏幕上移动的特定感兴趣对象1,则可以基于最近检测到的注视方向并使用确定的当前注视移动的外插法来计算检测到的物理注视方向。
[0077]
然后,改变的注视方向检测装置130被布置成例如经由接口130’和110’向逻辑模块111和/或渲染功能110传送所确定的用户的改变的注视方向,或者至少传送足以确定改变的注视方向的关于所确定的改变的注视方向的信息。
[0078]
图6展示了根据本发明的用于确定用户关于3d场景10的当前注视方向的方法,该3d场景10通过渲染功能110进行采样以产生3d场景10的至少一个2d投影图像(或者,以模拟的方式产生3d场景10的3d投影全息图或类似物)。如前面所提及的,2d投影图像显示在显示设备41上,其可以对应于视口2。同样如所提及的,采样尤其基于虚拟相机20来执行,该虚拟相机进而至少与虚拟相机20在3d场景中的位置和虚拟相机20在该3d场景中的方向相关联。
[0079]
该方法由上述类型的系统100执行。
[0080]
在第一步骤s0中,该方法开始。
[0081]
在随后的步骤s2中,重新投影装置120确定在显示投影图像之前已经、正在或即将施加于投影图像的重新投影变换,以便在所述注视时间点对用户可见。这种确定可以如上所述进行。
[0082]
在步骤s3(可以在步骤s2之前执行、与其并行执行或在其之后执行)中,注视方向检测装置42确定用户在所述注视时间点的物理注视方向。这种确定也可以如上所述进行。因此,所确定的在注视时间点的物理注视方向可以是最近确定的注视方向,并且对于这个最近确定的注视方向,可以施加注视方向移动预测算法,以得出当前意义上的“用户在注视时间点的物理注视方向”。通常,步骤s1至s3可以以任何顺序执行,但通常涉及同一个注视时间点,换句话说,就是用户的注视落在已渲染的且可能重新投影的经变换的、视觉显示的投影图像上的时间点。
[0083]
在随后的步骤s4中,在所述注视时间点确定用户的改变的注视方向,该改变的注视方向是基于物理注视方向和重新投影变换两者而关于3d场景10确定的。这种确定可以如上所述进行,并且可以由改变的注视方向检测装置130执行。
[0084]
在随后的步骤s5中,可以将改变的注视方向、或至少关于改变的注视方向的信息提供给逻辑模块和/或渲染功能110,如上所述。
[0085]
在随后的步骤s6中,渲染功能110可以基于所述接收到的改变的注视方向或所述接收到的关于改变的注视方向的信息来渲染随后的投影图像。例如,渲染可能会导致与用户可交互对象的不同用户交互;或者改变的用户注视可能会导致场景10以某种其他方式变化。
[0086]
此后,该方法可以在稍后的注视时间点关于随后渲染的投影图像来重复执行所施加的步骤s1和跳转到(forward)(特别是步骤s2至s6中的)任何步骤。当发生各种事件时,诸如用户带着头戴式显示器四处走动、或者帧被丢弃时,可能会施加各种重新投影变换。由于改变的注视方向检测装置130能够以低延迟截获关于这种更新后的重新投影变换的信息,因此在任何时候都可以将改变的注视方向信息同样以低延迟提供给逻辑模块111和/或渲染功能110,以便在渲染更新后的投影图像时使用。
[0087]
在随后的步骤s7中,该方法结束。
[0088]
如所提及的,重新投影装置120可以是逻辑上与渲染功能110分开的实体。从上面的描述中也可以清楚地看到,相对于显示给用户之前与投影图像相关的处理步骤链,相对于渲染功能110,重新投影装置120被布置在下游。换句话说,由渲染功能110提供已经最终渲染的图像,以供重新投影装置120使用,并用于提供用于实际向用户显示的重新投影图像。
[0089]
如前面所讨论的,改变的注视方向可以由改变的注视方向检测装置130确定,该装置进而被布置成经由第一接口130’接收重新投影变换信息,并经由第二接口130’(第一接口和第二接口可能是同一个接口)向渲染功能110和/或逻辑单元111提供改变的注视方向信息,该逻辑单元111例如是游戏控制器。
[0090]
在一些实施例中,注视方向检测装置42将使用标签缓冲区来确定注视时间点的注视方向。这也可以表示为,作为渲染结果,渲染功能110将虚拟世界(场景10)投影到一组至少一个标签缓冲区(其中一个可能是上述类型的彩色位图)。
[0091]
例如,这样的标签缓冲区可以是深度标签缓冲区,包括关于从虚拟相机20到场景10中各个点的各个虚拟距离的信息。另一个示例是用户可交互性标签缓冲区,其包括关于用户可交互(或不可交互)的对象的信息。通常,这样的标签缓冲区包括或表示位图,该位图将投影图像(或场景10的对应投影)中的每个像素与特定特性或一组特性相关联。例如,这样的标签缓冲区可以用于提高计算效率和/或减少延迟。标签缓冲区信息可以由逻辑模块111和/或渲染功能110提供给注视方向检测装置42。
[0092]
在一些实施例中,并且如图6所示,该方法进一步包括,在步骤s1中,确定与3d场景10有关的一组至少一个标签缓冲区、并将其提供给改变的注视方向检测装置130。标签缓冲区“与3d场景有关”是指标签缓冲区是经由合适的投影(诸如所述投影图像)映射到3d场景上的标签缓冲区。映射在像素方面可以是1:1,但也可以根据像素坐标以其他方式重新缩放、扭曲或修改。
[0093]
然后,作为本方法的一部分,改变的注视方向检测装置130可以进一步基于所述一组至少一个标签缓冲区来确定所述改变的注视方向,例如如前面总体例示的那样。特别地,可以基于所讨论的重新投影来更新这样的标签缓冲区,以确定改变的注视方向。例如,可以
通过合适的插值来重新投影标记缓冲区以补偿漏掉的帧。
[0094]
同样如前面所提及的,该组至少一个标签缓冲区可以由所述逻辑单元111和/或渲染功能110确定和提供。这可能取决于标签缓冲区的类型及其用途。
[0095]
如前面所讨论的,可以以不同的方式定义注视方向,诸如注视角度;用户的注视所朝向的感兴趣区域;或者用户的注视所朝向的特定感兴趣对象。特别地,在最后一种情况下,改变的注视方向可以包括关于3d场景10中的特定对象1的信息,该对象的投影沿着检测到的注视方向在投影图像中呈现。然后,可以在不需要渲染功能110(可能也不需要逻辑模块111)获得关于所述改变的注视方向的直接信息的情况下,既执行对改变的注视方向的确定又执行对所述对象1的识别。因此,在这种情况下,改变的注视方向装置130可以执行改变的注视方向的确定,以产生使用重新投影变换所改变的、与确定的注视方向相对应的感兴趣对象或区域。这种确定则可能会导致由检测到的注视方向确定的相同感兴趣对象也根据改变的注视方向被确定为感兴趣对象或不同的对象。应注意,在这种情况下,改变的注视方向检测装置130可以访问和使用关于3d场景10中的一个或几个对象1的信息。这种信息可以至少部分地以对应的标签缓冲区的形式提供给改变的注视方向检测装置130。然后,考虑到重新投影变换,改变的注视方向检测装置130可以向逻辑模块111和/或渲染功能110提供关于确定的感兴趣对象或区域的更新信息,以便在逻辑模块和/或渲染功能中使用以用于例如确定与该感兴趣对象1或区域的特定用户交互。
[0096]
在一些实施例中,由于检测到的重新投影变换,可以在本方法中改变标签缓冲区信息。例如,改变的注视方向检测装置130可以在确定改变的注视方向之前或作为这种确定过程的一部分,对接收到的标签缓冲区执行这样的改变。通常,本方法可以包括以下步骤:其中,在确定改变的注视方向之前,基于检测到的重新投影变换来改变至少一个标签缓冲区。
[0097]
在一些实施例中,基于这样改变的标签缓冲区信息,可以确定用户当前注视的注视可交互区或对象的特性。
[0098]
例如,可以由改变的注视方向检测装置130至少部分地基于由于所述重新投影变换而产生的视差效应来确定改变的注视方向。这则可能涉及改变的注视方向检测装置130使用深度标签缓冲区来确定检测到的平移重新投影变换的视差效应,该视差效应进而在确定改变的注视方向时被使用。替代性地或作为补充,改变的注视方向检测装置130可以首先改变接收到的深度标签缓冲区,以反映或表现具有视差效应的检测到的重新投影变换,然后使用该改变的深度标签缓冲器来确定改变的注视方向。
[0099]
例如,如果与较近的遮挡对象相比距离虚拟相机20更远的感兴趣对象突然进入或离开用户的视野,这种视差效应可能具有相当大的影响,这种视差效应是由于检测到平移移动并将其用作在显示渲染图像之前的重新投影变换。在某些情况下,即使由于用户的注视朝向不同的方向而导致的用户瞳孔移动也足以获得这种视差效应。
[0100]
应理解,在本示例和其他示例中,重新投影变换可能涉及对图像的线性或非线性修正,其中,例如,距离虚拟相机20较远的对象1在投影图像中的平移比距离虚拟相机20较近的图像要少,而且,重新投影变换本身可能涉及将各个对象或多或少地移入或移出位于较近位置的遮挡对象后面的视域。
[0101]
到目前为止,本发明已经在系统100和本方法方面进行了描述。然而,应理解,本发
明还涉及一种用于确定用户关于以上讨论类型的三维场景10的当前注视方向的计算机软件功能。这样的计算机软件功能被配置成当在合适的物理和/或虚拟计算机硬件上执行时执行上述方法步骤中的至少一些。
[0102]
具体地,所述计算机软件功能被布置成当被执行时:确定或接收(诸如经由如上所述的合适接口)用户在所述注视时间点的所述物理注视方向(或关于所述物理注视方向的信息);接收(诸如经由如上所述的合适接口)在显示之前要施加于投影图像的所述重新投影变换(或关于所述重新投影变换的信息),以便在注视时间点对用户可见;并且基于所述物理注视方向(信息)和所述重新投影变换(信息)两者,以前面讨论的方式确定用户在所述注视时间点关于3d场景10的所述改变的注视方向。
[0103]
在一些实施例中,该计算机软件功能被布置成在注视方向检测装置42和/或改变的注视方向检测装置130的硬件上执行。在其他实施例中,用于由计算机软件功能作出的所述确定的至少一部分计算是例如使用云服务或类似服务在远程执行的。然后,(一方面)注视方向检测装置42和/或改变的注视方向检测装置130与(另一方面)远程执行这种计算的计算机软件功能的部件之间可以进行通信。通信可以通过互联网进行,这是常规的方式。
[0104]
通常,计算机软件功能是系统100的一部分。如果计算机软件功能至少部分地是远程执行的,则系统100可能因此被认为也包括这种远程功能,并且可能还包括相关的远程布置硬件。特别地,如果注视方向检测装置42和/或改变的注视方向检测装置130的一些或全部确定功能是通过所述计算机软件功能远程执行的,则注视方向检测装置42和/或改变的注视方向检测装置130可以被认为包括这种远程功能,并且可能还包括这种远程硬件,视情况而定。
[0105]
图7展示了反馈回路(作为流程图),图8展示了三对重新投影图像,图7和图8一起展示了本发明的简单示例实施例,其中重新投影变换是平移,并且其中显示器是头戴式立体ar/vr显示器。
[0106]
如图7所展示的,游戏引擎(对应于逻辑模块111)决定了场景10的几何布局和特征。该信息被提供给gpu/合成器(对应于渲染功能110),进而以左/右投影图像对的形式产生两个图像描绘。这些投影图像作为立体图像对被提供给头戴式显示器(对应于显示设备41a)。该显示器包括重新投影的功能,该重新投影基于所检测到的、用户所执行的移动,这些移动对所关注的头戴式显示器的平移和/或旋转位置产生影响。例如,可以使用嵌入在头戴式显示单元中的常规mems电路来进行这种移动检测。该显示器还包括用于注视检测(对应于注视方向检测装置42)和用于基于当前使用的重新投影来调整检测到的注视方向(对应于改变的注视方向检测装置130)的功能。
[0107]
图8所示的顶部的一对图像示出了场景10中的两个对象1(椭圆和三角形)。左图像通过立体显示设备呈现给用户的左眼;右图像呈现给用户的右眼。虚线矩形表示视口2(每个图像对用户可见的部分)。从图8可以看出,合成器在渲染投影图像时,在视口2周围留有一定的间隙,以便能够施加平移重新投影,而不需要进行任何重新渲染工作。虚线圆圈表示检测到的注视方向(可以用于确定当前感兴趣对象或区域,诸如用于用户交互)。
[0108]
在图8所示的从上往下的第二对图像中,用户将其头部向左移动了约2
°
(与游戏引擎发起渲染时预测的头部位置相比),导致对应的平移重新投影将视口2相应地向左移动。应注意,检测到的用户头部向左的物理平移可能会导致类似的重新投影。此时,注视跟踪器
对施加的重新投影变换一无所知。
[0109]
重新投影将在渲染后发生,诸如在相对于渲染将来的10到50毫秒之间。此时,游戏引擎不知道投影图像的平移。通常,游戏引擎不了解在渲染流水线、合成器或运行时后期施加的任何投影图像校正,这些校正基于来自头戴式显示器的关于显示器位置和方向的更新后的传感器读数。
[0110]
当用户向左转动其头部时,她的眼睛会跟随感兴趣对象(在示例中示出的椭圆1的右上部分)。结果是注视跟踪器检测到更新后的注视方向,这是因为当用户向左转动其头部时,她的眼睛会跟随感兴趣对象。从注视跟踪器的角度来看,这种注视移动似乎是图像中的向右稳定漂移,从而导致当前注视方向,如图8中从上往下的第二对图像所展示的。应注意,检测到的感兴趣对象现在可能被错误地解释为三角形的一部分。
[0111]
然后,注视跟踪器(或实际上改变的注视方向检测装置)考虑所施加的重新投影变换,并相应地改变检测到的注视方向。例如,这可能是或者包括应用与所讨论的重新投影变换相同的变换,在本案例中是向左平移。结果示出在底部的一对图像中,其中感兴趣对象同样是椭圆的右上部分。
[0112]
然后,这个更新后的注视方向信息(诸如确定的感兴趣对象或区域)从显示器反馈给游戏引擎。结果是向游戏引擎(诸如xr runtime)提供了关于当前注视方向的正确信息。例如,游戏控制器将知道向用户实际示出的内容,然后可以计算出用户在前一帧中看到的内容(以使得正在运行的应用程序或子系统能够准确地了解用户聚焦的内容)。
[0113]
因此,显示器的眼睛跟踪器确定,当头部向左转动时,如果注视固定在感兴趣对象上,则与头部有关的注视会朝着右侧方向移动。如果游戏引擎没有考虑到头部向左移动,那么游戏引擎会认为注视是从感兴趣对象向右平滑地追视。因此,必须不断调整感兴趣对象相对于用户头部方向的位置。
[0114]
以上,已经描述了优选实施例。然而,对于本领域技术人员显而易见的是,可以在不脱离本发明的基本理念的情况下对所披露的实施例进行许多修改。
[0115]
例如,除了本文描述的特征之外,上述方法还可以包括许多附加特征,诸如内置的用户交互功能。
[0116]
所确定的当前用户注视方向的用途可以改变。例如,一种可能的用途是在屏幕41的当前聚焦区附近局部地提高2d采样图像质量,以便将计算机资源优先用于提供从计算机图形角度更高质量的用户体验。
[0117]
根据本发明的计算机软件功能还可以是计算机游戏或任何其他复杂计算机软件功能的集成部分。其也可以安装在注视方向检测装置(诸如图2中披露的装置42)上。
[0118]
通常,本文中关于该方法已经陈述的所有内容都同样适用于所述系统和计算机软件功能,并且反之亦然。
[0119]
因此,本发明不限于所描述的实施例,而是可以在所附权利要求的范围内变化。
技术特征:
1.一种用于确定用户关于三维(“3d”)场景(10)的当前注视方向的方法,通过渲染功能(110)对所述3d场景(10)进行采样以产生所述3d场景(10)的至少一个投影图像,其中,所述方法包括以下步骤:由重新投影装置(120)确定(s2)在显示之前要施加于所述投影图像的重新投影变换,以便在注视时间点对所述用户可见;由注视方向检测装置(42)确定(s3)所述用户在所述注视时间点的物理注视方向;以及确定(s5)所述用户在所述注视时间点的改变的注视方向,所述改变的注视方向是基于所述物理注视方向和所述重新投影变换两者而关于所述3d场景(10)确定的。2.根据权利要求1所述的方法,其中,所述重新投影装置(120)是在逻辑上与所述渲染功能(110)分开并且布置在所述渲染功能下游的实体。3.根据权利要求1或2所述的方法,其中,所述重新投影变换是基于以下中的至少一项确定的:物理显示装置(41)的一组至少一个已知特性,所述物理显示装置诸如是被布置成显示所述投影图像的显示屏;检测到的所述物理显示装置(41)的移动;以及检测到的所述用户相对于所述物理显示装置(41)的移动。4.根据前述权利要求中任一项所述的方法,其中,所述改变的注视方向由改变的注视方向检测装置(130)确定,所述改变的注视方向检测装置被布置成经由第一接口(130’)接收重新投影变换信息,并经由第二接口(130’)向逻辑单元(111)提供改变的注视方向信息。5.根据权利要求4所述的方法,其中,所述方法进一步包括确定(s1)与所述3d场景(10)有关的一组至少一个标签缓冲区并将其提供给所述改变的注视方向检测装置(130);所述改变的注视方向检测装置(130)进一步基于所述一组至少一个标签缓冲区确定所述改变的注视方向。6.根据权利要求5所述的方法,其中,所述一组至少一个标签缓冲区由所述逻辑单元(111)确定和提供。7.根据权利要求5或6所述的方法,其中,所述改变的注视方向包括关于所述3d场景(10)中的对象(1)的信息,所述对象的投影沿着所述注视方向在所述投影图像中呈现。8.根据权利要求7所述的方法,其中,在无需所述渲染功能(110)获得关于所述改变的注视方向的直接信息的情况下,既执行对所述改变的注视方向的确定又执行对所述对象(1)的识别。9.根据权利要求5至8中任一项所述的方法,其中,所述方法进一步包括在确定所述改变的注视方向之前基于所述重新投影变换来改变所述至少一个标签缓冲区。10.根据权利要求5至9中任一项所述的方法,其中,所述改变的注视方向至少部分地基于由所述重新投影变换引起的视差效应来确定。
11.根据前述权利要求中任一项所述的方法,其中,所述重新投影变换包括所述投影图像的平移和/或所述投影图像的旋转和/或所述投影图像的重新缩放和/或所述投影图像的扭曲,和/或其中,所述重新投影变换的结果是由一个或几个现有图像插值产生的综合确定的中间图像。12.根据前述权利要求中任一项所述的方法,其中,通过所述渲染功能(110)对所述3d场景(10)进行采样以产生所述3d场景(10)的至少两个投影图像,所述至少两个投影图像表示布置成在ar(增强现实)/vr(虚拟现实)设备(41a)中显示的立体视图中的每个图像,并且其中,基于所述讨论的ar/vr设备(41a)的特性,为每个所述图像确定所述重新投影变换。13.根据前述权利要求中任一项所述的方法,其中,通过所述渲染功能(110)对所述3d场景(10)进行采样以产生所述3d场景(10)的至少两个投影图像,所述至少两个投影图像表示要在同一个多图像显示器(41b)上显示的几个替代或补充图像,并且其中,基于所述讨论的多图像显示器(41b)的特性,为每个所述图像确定所述重新投影变换。14.一种用于确定用户关于三维(“3d”)场景(10)的当前注视方向的系统(100),通过渲染功能(110)对所述3d场景(10)进行采样以产生所述3d场景(10)的至少一个投影图像,所述系统(100)包括:注视方向检测装置(42),被布置成确定(s3)所述用户在注视时间点的物理注视方向;以及改变的注视方向检测装置(130),被布置成接收关于在显示之前要施加于所述投影图像的重新投影变换的信息,以便在所述注视时间点对所述用户可见,并且进一步被布置成确定(s4)所述用户在所述注视时间点的改变的注视方向,所述改变的注视方向是基于所述物理注视方向和所述重新投影变换两者而关于所述3d场景(10)确定的。15.一种用于确定用户关于三维(“3d”)场景(10)的当前注视方向的计算机软件功能,通过渲染功能(110)对所述3d场景(10)进行采样以产生所述3d场景(10)的至少一个投影图像,所述计算机软件功能被配置成当在计算机硬件上执行时执行以下步骤:确定(s3)或接收所述用户在所述注视时间点的物理注视方向;接收关于在显示所述投影图像之前施加于所述投影图像的重新投影变换的信息,以便在注视时间点对所述用户可见;以及确定(s4)所述用户在所述注视时间点的改变的注视方向,所述改变的注视方向是基于所述物理注视方向和所述重新投影变换两者而关于所述3d场景(10)确定的。
技术总结
一种用于确定用户关于三维(“3D”)场景(10)的当前注视方向的方法,通过渲染功能(110)对该3D场景(10)进行采样以产生该3D场景(10)的至少一个投影图像,其中,该方法包括以下步骤:由重新投影装置(120)确定(S2)在显示之前要施加于该投影图像的重新投影变换,以便在注视时间点对该用户可见;由注视方向检测装置(42)确定(S3)该用户在所述注视时间点的物理注视方向;以及确定(S5)该用户在所述注视时间点的改变的注视方向,该改变的注视方向是基于该物理注视方向和该重新投影变换两者而关于该3D场景(10)确定的。本发明还涉及一种系统和一种计算机软件功能。和一种计算机软件功能。和一种计算机软件功能。
技术研发人员:丹尼
受保护的技术使用者:托比股份公司
技术研发日:2022.12.27
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
