用于在头戴显示设备显示画面的方法、装置、系统及设备
本公开要求在2022年12月28日提交国家知识产权局、申请号为CN202211696125.3、发明名称为“用于在头戴显示设备显示画面的方法、装置、系统及设备”的中国专利申请的优先权,其全部内容通过引用结合在本公开中。
技术领域
本公开涉及头戴显示设备技术领域,尤其涉及一种用于在头戴显示设备显示画面的方法、装置、系统及设备。
背景技术
采用增强现实(Augmented Reality,AR)、虚拟现实技术(Virtual Reality,VR)等技术的头戴显示设备的应用越来越广泛。头戴显示设备可以用于内容显示,例如用于显示电影画面、游戏画面、网页等。
发明内容
本公开的实施例提供了一种用于在头戴显示设备显示画面的方法、装置、系统及设备。
根据本公开实施例的一个方面,提供了一种用于在头戴显示设备显示画面的方法,包括:基于在头戴显示设备坐标系下的预设位置和预设姿态,对头戴显示设备的待显示画面进行渲染;从修正姿态序列中,为经渲染的待显示画面选择目标修正姿态;其中,修正姿态序列包括:在多个历史时刻中的每个历史时刻的修正姿态,多个历史时刻中非最早的任一历史时刻对应的修正姿态基于头戴显示设备在该历史时刻的角速度数据、该历史时刻的前一历史时刻对应的修正姿态,以及预设姿态确定;基于预设位置和目标修正姿态,对经渲染的待显示画面进行调整,得到调整画面;通过头戴显示设备显示调整画面。
根据本公开实施例的另一个方面,提供了一种用于在头戴显示设备显示画面的装置,包括:渲染模块,用于基于在头戴显示设备坐标系下的预设位置和预设姿态,对头戴显示设备的待显示画面进行渲染;选择模块,用于从修正姿态序列中,为经渲染的待显示画面选择目标修正姿态;其中,修正姿态序列包括:在多个历史时刻中的每个历史时刻的修正姿态,多个历史时刻中非最早的任一历史时刻对应的修正姿态基于头戴显示设备在该历史时刻的角速度数据、该历史时刻的前一历史时刻对应的修正姿态,以及预设姿态确定;调整模块,用于基于预设位置和目标修正姿态,对经渲染的待显示画面进行调整,得到调整画面;显示模块,用于通过头戴显示设备显示调整画面。
根据本公开实施例的再一个方面,提供了一种用于在头戴显示设备显示画面的系统,包括:车机、适配器和头戴显示设备,头戴显示设备通过适配器与车机连接;其中,车机用于基于在头戴显示设备坐标系下的预设位置和预设姿态,对头戴显示设备的待显示画面进行渲染,并将经渲染的待显示画面发送至适配器;适配器用于从修正姿态序列中,为经渲染的待显示画面选择目标修正姿态,基于预设位置和目标修正姿态,对经渲染的待显示画面进行调整,得到调整画面;其中,修正姿态序列包括:在多个历史时刻中的每个历史时刻的修正姿态,多个历史时刻中非最早的任一历史时刻对应的修正姿态基于头戴显示设备在该历史时刻的角速度数据、该历史时刻的前一历史时刻对应的修正姿态,以及预设姿态确定,其中,角速度数据为头戴显示设备采集并发送至适配器;头戴显示设备用于显示调整画面。
根据本公开实施例的又一个方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于从存储器中读取可执行指令,并执行指令以实现上述用于在头戴显示设备显示画面的方法。
根据本公开的又一个方面,提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序用于执行上述用于在头戴显示设备显示画面的方法。
根据本公开的又一个方面,提供了一种计算机程序产品,包括计算机程序指令,该程序指令被处理器执行时实现上述用于在头戴显示设备显示画面的方法。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开一示例性实施例提供的用于在头戴显示设备显示画面的方法的流程示意图。
图2是本公开另一示例性实施例提供的用于在头戴显示设备显示画面的方法的流程示意图。
图3是本公开另一示例性实施例提供的用于在头戴显示设备显示画面的方法中修正姿态的计算流程示意图。
图4-1是本公开一示例性实施例中头戴显示设备所在可移动平台的示意图之一。
图4-2是本公开一示例性实施例中头戴显示设备所在可移动平台的示意图之二。
图5是本公开再一示例性实施例提供的用于在头戴显示设备显示画面的方法的流程示意图。
图6是本公开一示例性实施例中第一预设工作模式和第二预设工作模式涉及的时间轴的示意图。
图7是本公开又一示例性实施例提供的用于在头戴显示设备显示画面的方法的流程示意图。
图8是本公开又一示例性实施例提供的用于在头戴显示设备显示画面的方法的流程示意图。
图9是本公开一示例性实施例中第三预设工作模式涉及的时间轴的示意图。
图10是本公开又一示例性实施例提供的用于在头戴显示设备显示画面的方法的流程示意图。
图11-1是一种车辆使用场景下第一预设工作模式和第三预设工作模式下头戴显示设备的显示效果对比示意图之一。
图11-2是一种车辆使用场景下第一预设工作模式和第三预设工作模式下头戴显示设备的显示效果对比示意图之二。
图11-3是一种车辆使用场景下第一预设工作模式和第三预设工作模式下头戴显示设备的显示效果对比示意图之三。
图11-4是一种车辆使用场景下第一预设工作模式和第三预设工作模式下头戴显示设备的显示效果对比示意图之四。
图12是本公开一示例性实施例中头戴显示设备坐标系的示意图。
图13-1是另一种车辆使用场景下第一预设工作模式和第二预设工作模式下头戴显示设备的显示效果对比示意图之一。
图13-2是另一种车辆使用场景下第一预设工作模式和第二预设工作模式下头戴显示设备的显示效果对比示意图之二。
图13-3是另一种车辆使用场景下第一预设工作模式和第二预设工作模式下头戴显示设备的显示效果对比示意图之三。
图13-4是另一种车辆使用场景下第一预设工作模式和第二预设工作模式下头戴显示设备的显示效果对比示意图之四。
图14是再一种车辆使用场景的示意图。
图15-1是再一种车辆使用场景下第一预设工作模式和第二预设工作模式下头戴显示设备的显示效果对比示意图之一。
图15-2是再一种车辆使用场景下第一预设工作模式和第二预设工作模式下头戴显示设备的显示效果对比示意图之二。
图15-3是再一种车辆使用场景下第一预设工作模式和第二预设工作模式下头戴显示设备的显示效果对比示意图之三。
图15-4是再一种车辆使用场景下第一预设工作模式和第二预设工作模式下头戴显示设备的显示效果对比示意图之四。
图15-5是再一种车辆使用场景下第一预设工作模式和第二预设工作模式下头戴显示设备的显示效果对比示意图之五。
图15-6是再一种车辆使用场景下第一预设工作模式和第二预设工作模式下头戴显示设备的显示效果对比示意图之六。
图16是本公开一示例性实施例提供的用于在头戴显示设备显示画面的装置的结构示意图。
图17是本公开另一示例性实施例提供的用于在头戴显示设备显示画面的装置的结构示意图。
图18是本公开再一示例性实施例提供的用于在头戴显示设备显示画面的装置的结构示意图。
图19是本公开又一示例性实施例提供的用于在头戴显示设备显示画面的装置中,用于计算修正姿态的部分的结构示意图。
图20是本公开又一示例性实施例提供的用于在头戴显示设备显示画面的装置的结构示意图。
图21是本公开一示例性实施例提供的用于在头戴显示设备显示画面的系统的结构示意图。
图22是本公开一示例性实施例提供的用于在头戴显示设备显示画面的系统的工作原理示意图。
图23是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面将参考附图详细描述根据本公开的示例实施例。显然,所描述实施例仅是本公开部分实施例,而非全部实施例,本公开不受描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,不代表特定技术含义,也不表示必然逻辑顺序。“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅是一种描述关联对象的关联关系,表示可存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各实施例的描述着重强调各实施例之间的不同之处,相同或相似之处可相互参考。附图示出的各个部分尺寸并未按照实际比例关系绘制。
以下对至少一个示例性实施例的描述仅是说明性的,不作为对本公开及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,该技术、方法和设备应被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可包括例程、程序、目标程序、组件、逻辑、数据结构等,它们执行特定任务或者实现特定抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
示例性概述
一般而言,可以通过头戴显示设备进行画面显示。例如,可以通过头戴显示设备显示网页、视频播放页面、应用程序(APP)界面等。
需要说明的是,头戴显示设备也可以称为头戴显示器(Head-Mounted Display,HMD)或者头显,头戴显示设备可以用于实现扩展现实(Extended Reality,XR)效果,例如用于实现增强现实(Augmented Reality,AR)效果、虚拟现实(Virtual Reality,VR)效果、混合现实(Mixed Reality,MR)效果等。例如,在一些场景下,由于头戴显示设备能够创造特有的沉浸感,在使用头戴显示设备时,用户主观上可以感觉置身于与现实具有隔离感的一空间中,该空间可以作为头戴显示设备的虚拟空间。
可以理解地,头戴显示设备可以以眼镜、头盔等形态呈现。
在一些可选的实施方式中,头戴显示设备可以呈分体机形式,分体机形式的头戴显示设备需要额外的计算设备。头戴显示设备可以佩戴于用户头部用于显示画面,额外的计算设备可以具有数据处理能力和图像渲染能力中的至少一种。计算设备和头戴显示设备通信地连接,计算设备可以向头戴显示设备提供承载待显示画面的数据。头戴显示设备可以利用光学系统显示画面。头戴显示设备可以利用自身传感器采集数据,例如惯性测量单元(Inertial Measurement Unit,IMU)、相机等采集数据。头戴显示设备可以将上述采集的数据发送至计算设备,计算设备利用上述数据计算头戴显示设备的位置、姿态或位姿中的至少一种,以用于调整待显示画面。在一些实施例中,计算设备还可以向头戴显示设备提供电能。分体机形式的头戴显示设备还可以与用于控制显示画面的控制设备通信地连接,计算设备可以自身作为控制设备,也可以提供额外的控制设备,使控制设备与头戴显示设备和计算设备中的至少一个通信地连接。
可选地,计算设备可以为手机、电子计算机、适配器、可移动平台的中控等具有计算能力的终端设备。可移动平台包括但不限于车辆、火车、船、飞机等,以车辆为例,中控可以为车机(其是指安装在汽车中控台内的车载信息娱乐产品)。计算设备中可以安装有渲染引擎。
计算设备可以是一个终端设备,也可以是多个终端设备。例如,可以是两个终端设备作为计算设备,并与头戴显示设备通信地连接。两个终端设备可以包括第一终端设备和第二终端设备,第一终端设备和第二终端设备可以根据实际需求分别承担部分计算设备的功能。例如,第一终端设备可以通过第二终端设备与头戴显示设备相连接,第一终端设备可以主要用于向头戴显示设备提供承载显示画面的数据和电力。第一终端设备还可以向第二终端设备提供电力。第二终端设备可以用于接收头戴显示设备的传感器采集的数据并计算头戴显示设备的位置、姿态或位姿中的至少一种,根据上述计算结果渲染画面。
可选地,头戴显示设备和计算设备之间可以采用有线通信方式或者无线通信方式进行交互。例如,头戴显示设备和计算设备之间可以通过蓝牙进行交互,或者,头戴显示设备和计算设备之间可以通过通用串行总线(Universal Serial Bus,USB)接口进行交互。
当然,头戴显示设备也可以呈一体机形式,头戴显示设备可以同时具有数据采集、数据处理能力、图像渲染能力和画面显示能力。
在一些可选的实施方式中,头戴显示设备可以利用自身传感器采集数据,例如采集图像数据、加速度数据、角速度数据等。通过利用传感器采集的数据进行计算,可以确定头戴显示设备的位置、姿态、位姿等信息。利用确定出的信息,可以对通过头戴显示设备的虚拟空间显示的画面进行调整。可选地,可以利用上述传感器采集的数据进行用于缓解头戴显示设备的抖动的计算,利用计算结果对显示画面进行调整,以显示缓解抖动的画面。
在一些可选的实施方式中,头戴显示设备应用于移动平台上,头戴显示设备可以通过适配器与移动平台通信地连接,适配器作为用于两者之间数据传输的媒介。移动平台的中控可以向用户提供承载待显示画面的数据,适配器可以承担画面渲染、调整中的至少一者,并将画面发送至头戴显示设备进行显示。移动平台的中控和适配器共同组成计算设备。
在一些可选的实施方式中,还可以通过头戴显示设备显示额外的控制标识,通过控制标识,可以方便用户与虚拟空间中的显示画面进行交互。
可选地,控制标识可以是一维、二维或三维的标识。控制标识既可以是圆点、箭头、方框等,也可以是具有一定的长度的标识,例如线段、曲线、长箭头等。
示例性方法
图1是本公开一示例性实施例提供的用于在头戴显示设备显示画面的方法的流程示意图。图1所示的方法可以包括步骤120、步骤130、步骤140和步骤150,下面对各步骤分别进行说明。
步骤120,基于在头戴显示设备坐标系下的预设位置和预设姿态,对头戴显示设备的待显示画面进行渲染(Render)。
在一些可选的实施方式中,预设位置可以是头戴显示设备坐标系下的一个固定的位置,该固定的位置可以是符合用户的观看习惯的位置,例如是头戴显示设备的正前方、左上方等容易被用户观察到的位置。这样,预设位置可以认为是:为了保证头戴显示设备的显示效果而用于对显示画面进行处理的位置。
在一些可选的实施方式中,预设姿态可以是头戴显示设备坐标下的一个固定的姿态,该固定的姿态可以是符合用户的观看习惯的姿态,例如是能够使头戴显示设备的虚拟空间中的显示画面与用户平视视线垂直的姿态。这样,预设姿态可以认为是:为了保证头戴显示设备的显示效果而用于对显示画面进行处理的姿态。
在步骤120中,可以获取承载有头戴显示设备的待显示画面的数据(例如视频数据、应用界面数据等)。可选地,如果所获取的数据是经编码的数据,则需要对所获取的数据进行解码处理,再由渲染引擎使用预设位置和预设姿态,针对解码结果做画面渲染,以得到经渲染的待显示画面。由于这里的渲染操作参考的是预设位置和预设姿态,如果将经渲染的待显示画面直接通过头戴显示设备显示,经渲染的待显示画面会位于头戴显示设备坐标系下的预设位置,且呈预设姿态。
步骤130,从修正姿态序列中,为经渲染的待显示画面选择目标修正姿态;其中,修正姿态序列包括:在多个历史时刻中的每个历史时刻的修正姿态,多个历史时刻中非最早的任一历史时刻对应的修正姿态基于头戴显示设备在该历史时刻的角速度数据、该历史时刻的前一历史时刻对应的修正姿态,以及预设姿态确定。
一般而言,头戴显示设备可以包括IMU和光学系统。IMU可以包括加速度计、陀螺仪和磁力仪。加速度计用于采集加速度数据,陀螺仪用于采集角速度数据。光学系统是头戴显示设备的成像系统,光学系统可以包括显示屏和光学元件。
在一些可选的实施方式中,头戴显示设备在任一时刻的角速度数据可以为该时刻IMU中的陀螺仪采集的角速度数据。
在一些可选的实施方式中,可以按照一定的时间间隔,进行修正姿态的确定,这样,可以多次执行修正姿态的确定操作,由此可以得到修正姿态序列。
在首次执行修正姿态的确定操作而没有前一历史时刻对应的修正姿态的情况下,前一历史时刻对应的修正姿态可以采用头戴显示设备的真实姿态,预设姿态或者一个预先设定的其他姿态。在非首次执行修正姿态的确定操作的情况下,前一历史时刻对应的修正姿态可以为上一次执行修正姿态的确定操作所确定的修正姿态。
在一些可选的实施方式中,修正姿态序列中可以包括每次执行修正姿态的确定操作所确定的修正姿态。或者,修正姿态序列中可以仅包括最近预设数量次执行修正姿态所确定的修正姿态,修正姿态序列中所对应历史时刻较早的修正姿态可以被删除或者被覆盖掉。可选地,预设数量可以为4、5、6或者其他数值,在此不再一一列举。
在步骤130中,可以按照一定的选择规则,从修正姿态序列中选择目标修正姿态。例如,可以参考修正姿态序列中的各个修正姿态在修正姿态序列中的排序位置,从修正姿态序列中选择目标修正姿态。再例如,可以参考修正姿态序列中的各个修正姿态在修正姿态序列中的排序位置,以及修正姿态序列中的各个修正姿态与预设姿态之间的差异大小,从修正姿态序列中选择目标修正姿态。
步骤140,基于预设位置和目标修正姿态,对经渲染的待显示画面进行调整,得到调整画面。
在步骤140中,在对经渲染的待显示画面进行调整时,采用的调整方式可以包括移位和扭曲(warping)中的至少一项。
在一些可选的实施方式中,可以按照预设划分规则,将经渲染的待显示画面划分多个画面区域,分别为多个画面区域确定调整方式,并按照多个画面区域各自对应的调整方式,分别对多个画面区域进行调整,经调整后的多个画面区域可以组成调整画面。
在一些可选的例子中,预设划分规则用于将经渲染的待显示画面平均划分为两个区域P1和P2,为区域P1确定的调整方式为移位,为区域P2确定的调整方式为扭曲,则可以利用预设位置和目标修正姿态,对区域P1进行移位,并利用预设位置和目标修正姿态,对区域P2进行扭曲,区域P1的移位结果和区域P2的扭曲结果可以组成调整画面。
当然,具体实现时,也可以不将经渲染的待显示画面划分多个画面区域,而直接利用预设位置和目标修正姿态,对经渲染的待显示画面整体进行移位,并将移位结果作为调整画面,或者,直接利用预设位置和目标修正姿态,对经渲染的待显示画面整体进行扭曲,并将扭曲结果作为调整画面。
步骤150,通过头戴显示设备显示调整画面。
在步骤150中,可以控制光学系统中的显示屏发出调整画面的光线,光学系统中的光学元件可以对显示屏发出的光线进行处理,使得调整画面的光线投射至使用头戴显示设备的用户的眼睛,由此可以使用户看到调整画面,从而实现头戴显示设备对调整画面的显示。
本公开的实施例中提供的用于在头戴显示设备显示画面的方法涉及画面渲染、画面调整和画面显示三个阶段。在画面渲染阶段,可以参考在头戴显示设备坐标系下的预设位置和预设姿态,对头戴显示设备的待显示画面进行渲染,这样有利于使经渲染的待显示画面符合用户的观看习惯。在画面调整阶段,可以参考预设位置和从修正姿态序列中为经渲染的待显示画面选择的目标修正姿态,对经渲染的待显示画面进行调整,得到调整画面。预设位置可以认为是能够促使头戴显示设备的显示效果向着预设位置下的显示效果进行调整的位置,目标修正姿态可以认为是能够促使头戴显示设备的显示效果向着预设姿态下的显示效果进行调整的姿态,这样,通过参考预设位置和目标修正姿态,进行经渲染的待显示画面的调整,有利于在经渲染的待显示画面的基础上进行有效的画面防抖优化。在画面显示阶段,可以通过头戴显示设备显示经画面防抖优化后得到的调整画面,这样,从用户视觉上来看,头戴显示设备显示的画面能够具有较好的稳定性,不会由于头戴显示设备的震动而发生大幅震动,从而能够提升用户的使用体验。
在一些可选示例中,在图1所示实施例的基础上,如图2所示,步骤130包括步骤1301和步骤1303。
步骤1301,从修正姿态序列中,选择所对应确定时间最晚的修正姿态。
在一些可选的实施方式中,在每次通过执行修正操作确定修正姿态时,可以记录修正姿态的确定时间,修正姿态序列中的各个修正姿态可以按照所对应确定时间由早至晚的顺序排列,这样,修正姿态序列中排序在末尾的修正姿态即为修改姿态序列中所对应确定时间最晚的修正姿态。
当然,修正姿态序列中的各个修正姿态也可以按照所对应确定时间由晚至早的顺序排列,这样,修正姿态序列中排序在首位的修正姿态即为修改姿态序列中所对应确定时间最晚的修正姿态。
步骤1303,将所选择的修正姿态作为目标修正姿态。
本公开的实施例中,参考修正姿态序列中的各个修正姿态所对应的确定时间早晚,可以高效可靠地从修正姿态序列中筛选出目标修正姿态。
当然,步骤130的实施方式并不局限于此,例如,可以从修正姿态序列中,选择所对应确定时间最晚的修正姿态和所对应确定时间第二晚的修正姿态,这两个修正姿态可以分别作为一个目标修正姿态。这样,假设按照上文中的预设划分规则,将经渲染的待显示画面平均划分为了两个区域P1和P2,则可以利用预设位置和所对应确定时间最晚的修正姿态,对区域P1进行移位,并利用预设位置和所对应确定时间第二晚的修正姿态,对区域P2进行扭曲。
当然,目标修正姿态的数量并不局限于以上的1个和2个,还可以为3个或者3个以上,在此不再一一列举。
在一些可选示例中,若修正姿态序列中相邻的两个修正姿态为第一修正姿态和第二修正姿态,第一修正姿态对应的历史时刻表示为第一历史时刻,第二修正姿态对应的历史时刻表示为第二历史时刻,第一历史时刻早于第二历史时刻,则第二修正姿态的确定方法可以参考图3,如图3所示,第二修正姿态的确定方法可以包括步骤310、步骤320和步骤330。
步骤310,基于头戴显示设备在第二历史时刻的角速度数据,以及第一历史时刻对应的第一修正姿态,确定在第二历史时刻在头戴显示设备坐标系下的参考姿态。
在步骤310中,可以按照由陀螺仪角速度至角位置的积分方式,使用头戴显示设备在第二历史时刻的角速度数据和第一修正姿态做积分处理,以得到在第二历史时刻在头戴显示设备坐标系下的参考姿态。
假设头戴显示设备在第二历史时刻的角速度数据表示为Gyrok,第一修正姿态表示为Posek-1,参考姿态表示为则有:
步骤320,基于参考姿态与预设姿态之间的姿态误差,确定修正姿态差值。
在步骤320中,可以将参考姿态与预设姿态做差,以得到参考姿态与预设姿态之间的姿态误差。姿态误差可以呈3×1的轴角形式。需要说明的是,这里的做差并不是简单的减法,而是广义的函数,做差中的“差”指的是差异,做差可以是指求两个角度之间的相对旋转。假设参考姿态表示为预设姿态表示为Target,姿态误差表示为error,则有:
在一些可选的实施方式中,在得到姿态误差之后,可以对姿态误差进行低通滤波(Low Pass Filter)处理,以得到修正姿态差值。
在另一些可选的实施方式中,在得到姿态误差之后,可以将姿态误差与校正比例系数相乘,并将相乘结果作为修正姿态差值。可选地,校正比例系数可以大于0且小于1,例如为0.2、0.6、0.6、0.8等,在此不再一一列举。
步骤330,利用修正姿态差值补偿参考姿态,得到第二历史时刻对应的第二修正姿态。
在步骤330中,可以将修正姿态差值作为补偿值更新至参考姿态中,以得到第二历史时刻对应的第二修正姿态。第二修正姿态表示为Posek,则有:
需要说明的是,这里的补偿值表示的可以是一个相对旋转,将补偿值更新至参考姿态中,可以是在参考姿态的基础上叠加一个相对姿态,从而得到另一个姿态,该另一个姿态即为第二修正姿态。
本公开的实施例中,利用头戴显示设备在第二历史时刻的角速度数据,以及第一历史时刻对应的第一修正姿态,通过积分运算,可以高效可靠地得到参考姿态,再通过参考姿态与姿态误差的做差,以及姿态补偿处理,能够高效可靠地确定出第二修正姿态,由此可以高效可靠地生成修正姿态序列,并且,通过将修正姿态序列中的修正姿态用于画面调整阶段,有利于使头戴显示设备的显示效果向着预设姿态下的显示效果进行调整,不管是头戴显示设备使用过程中发生小角度变化的情况(颠簸、晃动、抖动等),或是头戴显示设备使用过程中发生大角度变化的情况(例如大角度转弯),均能够保证头戴显示设备的画面稳定性,从而能够提升用户的使用体验。
在一些可选示例中,头戴显示设备位于可移动平台上,并且,头戴显示设备满足以下两项中的一项:头戴显示设备固定安装于可移动平台;头戴显示设备可相对可移动平台移动。
这里,可移动平台包括但不限于车辆、船、火车、飞机等,例如,可移动平台可以为图4-1、图4-2所示的汽车。
在一些可选的实施方式中,头戴显示设备可以通过螺接、卡接或者本领域技术人员所熟知的其他固定连接方式安装于可移动平台内的某一固定的位置,这时,头戴显示设备与可移动平台之间可以是相对静止的,头戴显示设备可以跟随可移动平台同步运动。
在另一些可选的实施方式中,头戴显示设备与可移动平台之间可以不进行固定连接,当用户(例如车辆上的乘客)佩戴头戴显示设备时,用户可以在可移动平台内随意移动,由于头戴显示设备与用户之间可以是基本相对静止的,头戴显示设备会跟随用户在可移动平台内随意移动。
本公开的实施例中,头戴显示设备可以固定安装于可移动平台,这样有利于防止头戴显示设备发生磕碰、遗失等情况,当然,头戴显示设备也可相对可移动平台移动,这样,用户可以根据实际情况,在可移动平台内所需的任意位置使用头戴显示设备。
在一些可选示例中,在图1所示实施例的基础上,如图5所示,该方法还包括步骤101、步骤103、步骤105和步骤107。
步骤101,获取头戴显示设备相对头戴显示设备所在可移动平台的相对姿态。
在一些可选的实施方式中,头戴显示设备和可移动平台均可以包括IMU,利用头戴显示设备中的IMU采集的数据做积分处理,可以确定头戴显示设备在世界坐标系下的实际姿态,利用可移动平台中的IMU采集的数据做积分处理,可以确定可移动平台在世界坐标系下的实际姿态,通过将头戴显示设备和可移动设备各自在世界坐标系下的实际姿态做差,可以得到头戴显示设备相对可移动平台的相对姿态。
在一些可选的实施方式中,可移动平台上可以设置有摄像头,可移动平台和头戴显示设备中的一者上可以设置有标志物,可以通过摄像头对标志物进行图像采集,利用通过图像采集得到的图像,可以通过图像校准算法,对头戴显示设备相对可移动平台的相对姿态进行校准。
步骤103,基于相对姿态,确定与头戴显示设备适配的目标工作模式。
需要说明的是,对于头戴显示设备而言,在做内容呈现时可使用的模式可以有三种,分别是第一预设工作模式、第二预设工作模式和第三预设工作模式。
第二预设工作模式可以为3自由度(degree of freedom,dof)模式,在第二预设工作模式下,可以利用头戴显示设备自身的实际姿态对显示画面进行定位方面的处理。此时,头戴显示设备的显示画面的姿态与用户的实际姿态相关,头戴显示设备的显示画面可以相对头戴显示设备坐标系存在旋转,头戴显示设备的显示画面可以与世界坐标系保持旋转不变。
第三预设工作模式可以为0自由度(dof)模式,在第三预设工作模式下,不对头戴显示设备的显示画面进行定位方面的处理。此时,头戴显示设备的显示画面的姿态可以与用户的姿态无关,头戴显示设备的显示画面随用户头部运动而运动。头戴显示设备的显示画面可以相对头戴显示设备坐标系保持旋转不变,头戴显示设备的显示画面可以相对世界坐标系存在旋转。
第一预设工作模式可以是本公开的实施例中实现的不同于0dof模式和3dof模式的模式,在第一预设工作模式下,头戴显示设备可以利用修正姿态序列中的修正姿态对显示画面进行定位方面的处理,此时,头戴显示设备的显示画面的姿态与修正姿态相关。
这样,目标工作模式可以有三种可能的情况,分别是第一预设工作模式、第二预设工作模式和第三预设工作模式。
步骤105,响应于目标工作模式为第一预设工作模式,将头戴显示设备设置为第一预设工作模式,并触发上述的步骤120至步骤150。
如果目标工作模式为第一预设工作模式,可以判断头戴显示设备当前使用的工作模式是否为第一预设工作模式,如果判断结果为是,可以使头戴显示设备保持当前使用的工作模式,如果判断结果为否,可以将头戴显示设备当前使用的工作模式切换为第一预设工作模式。
在第一预设工作模式下,可以执行上述的步骤120至步骤150,以使头戴显示设备向用户呈现稳定的画面。
在一些可选的例子中,在第一预设工作模式下,可以按照一定的时间间隔,进行修正姿态的确定,这样,在图6中的t0、t1、t2这三个时刻(这三个时刻可以分别作为一个历史时刻),可以分别确定出一个修正姿态,以得到三个修正姿态,修正姿态序列中可以包括这三个修正姿态。
另外,在第一预设工作模式下,在图6中的T0至T1时刻之间,可以利用预设位置和预设姿态,对待显示画面进行渲染,在图7中的T1时刻,可以从修正姿态序列中获取所对应确定时间最晚的修正姿态,这样可以获取到t2时刻对应的修正姿态。在图6中的T1至T2时刻之间,可以利用预设位置和t2时刻对应的修正姿态,对经渲染的待显示画面进行调整,例如扭曲,以得到调整画面,后续可以通过头戴显示设备显示得到的调整画面。
步骤107,响应于目标工作模式为第二预设工作模式,将头戴显示设备设置为第二预设工作模式,并通过头戴显示设备显示基于预设位置、待显示画面和实际姿态序列得到的调整画面;其中,实际姿态序列包括:在多个历史时刻中的每个历史时刻,头戴显示设备在世界坐标系下的实际姿态。
如果目标工作模式为第二预设工作模式,可以判断头戴显示设备当前使用的工作模式是否为第二预设工作模式,如果判断结果为是,可以使头戴显示设备保持当前使用的工作模式,如果判断结果为否,可以将头戴显示设备当前使用的工作模式切换为第二预设工作模式。
在第二预设工作模式下,可以通过头戴显示设备显示基于预设位置、待显示画面和实际姿态序列得到的调整画面。
在一些可选的例子中,在第二预设工作模式下,可以按照一定的时间间隔,利用头戴显示设备包括的IMU的采集数据,进行实际姿态的确定,这样,在图6中的t0、t1、t2这三个时刻(这三个时刻可以分别作为一个历史时刻),可以分别确定出一个实际姿态,以得到三个实际姿态,实际姿态序列中可以包括这三个实际姿态。
另外,在第二预设工作模式下,在图6中的T0至T1时刻之间,可以利用预设位置和t1时刻对应的实际姿态,对待显示画面进行渲染,在图6中的T1至T2时刻之间,可以利用预设位置和t2时刻对应的实际姿态,对经渲染的待显示画面进行调整,例如扭曲,以得到调整画面,后续可以通过头戴显示设备显示得到的调整画面。
本公开的实施例中,参考头戴显示设备相对头戴显示设备所在可移动平台的相对姿态,可以合理确定与头戴显示设备适配的目标工作模式,以便控制头戴显示设备以合适的工作模式进行工作。在目标工作模式为第一预设工作模式或者第二预设工作模式的情况下,可以基于姿态(实际姿态或者修正姿态)对显示画面进行定位方面的处理,这样有利于保证头戴显示设备的画面稳定性,从而能够提升用户的使用体验。
在一些可选示例中,在图5所示实施例的基础上,如图7所示,步骤103,包括步骤1031和步骤1033。
步骤1031,响应于以下四种情况中的一种情况满足,确定与头戴显示设备适配的目标工作模式为第二预设工作模式:相对姿态大于预设相对姿态阈值;最近预设时间段中,每个时刻各自对应的相对姿态均大于预设相对姿态阈值;最近预设时间段中,超过预设数量个时刻各自对应的相对姿态大于预设相对姿态阈值;相对姿态的变化趋势为增大趋势。
可选地,最近预设时间段可以为最近10秒、最近20秒、最近30秒等,预设数量可以为3、5、8、10或者其他数值,在此不再一一列举。
在一些可选的实施方式中,可以按照一定的时间间隔,进行相对姿态的计算,由此可以得到多个时刻各自对应的相对姿态,并将多个时刻各自对应的相对姿态均与预设相对姿态阈值进行比较。另外,还可以对多个时刻各自对应的相对姿态组成的相对姿态序列进行分析,以确定相对姿态的变化趋势。
如果任一相对姿态大于预设相对姿态阈值,可以判定头戴显示设备相对于可移动平台的姿态在短时间内比较大,这时,用户很可能存在扭头观察外部真实世界的需求,因此,这种情况下,可以将头戴显示设备设置为3dof模式,以满足用户观察外观真实世界的需求。
另外,最近预设时间段中,每个时刻各自对应的相对姿态均大于预设相对姿态阈值,最近预设时间段中,超过预设数量个时刻各自对应的相对姿态均大于预设相对姿态阈值,以及相对姿态的变化趋势为增大趋势这三种情况下,用户很可能也存在着扭头观察外部真实世界的需求,因此,这些情况下,也可以将头戴显示设备设置为3dof模式。
需要说明的是,对于相对姿态的变化趋势为增大趋势的情况,并不要求相对姿态序列中的相对姿态持续增大,只要相对姿态序列中的相对姿态从整体上来看是逐渐增大的即可。
步骤1033,响应于以下四种情况中的一种情况满足,确定与头戴显示设备适配的目标工作模式为第一预设工作模式:相对姿态小于或等于预设相对姿态阈值;最近预设时间段中,每个时刻各自对应的相对姿态均小于或等于预设相对姿态阈值;最近预设时间段中,超过预设数量个时刻各自对应的相对姿态小于或等于预设相对姿态阈值;相对姿态的变化趋势为减小趋势。
需要说明的是,步骤1033中涉及的四种情况与步骤1031中涉及的四种情况正好是相反的,如果步骤1033中涉及的四种情况中的一种情况满足,可以判定头戴显示设备相对于可移动平台的姿态在短时间内均较小,用户相对于可移动平台的姿态较为稳定,这时,可以判定用户并不存在扭头观察外部真实世界的需求,因此,这种情况下,可以将头戴显示设备设置为第一预设工作模式。
本公开的实施例中,可以参考相对姿态,判断用户是否存在扭头观察外部真实世界的需求,对于判断结果为存在的情况(例如图4-1中后排左侧乘客自正对左侧车窗转头至正前方的情况),可以通过将头戴显示设备设置为第二预设工作模式,以满足用户的实际需求。对于判断结果为不存在的情况(例如图4-2中前排右侧乘客始终朝向正前方的情况,或者图4-2中后排左侧乘客缓慢自正对左侧车窗转头至正前方的情况),可以通过将头戴显示设备设置为第一预设工作模式,以实现画面防抖的效果,以及保持画面能够跟随用户。
在一些可选示例中,在图1所示实施例的基础上,如图8所示,该方法还包括步骤109、步骤111、步骤113和步骤115。
步骤109,获取头戴显示设备在世界坐标系下的运动状态。
在一些可选的实施方式中,头戴显示设备在世界坐标系下的运动状态包括但不限于静止状态、匀速直线运动状态、加速运动状态、减速运动状态等,加速运动状态还可以细分为匀加速运动状态和变加速运动状态,减速运动状态还可以细分为匀减速运动状态和变减速运动状态等。
在步骤109中,可以获取头戴显示设备包括的IMU等传感器采集的数据,利用所获取的数据,可以计算头戴显示设备在各个时刻在世界坐标系下的加速度、速度,以及实际姿态等信息,利用这些信息可以确定头戴显示设备在世界坐标系下的运动状态。例如,如果最近一段时间中,头戴显示设备的速度和加速度均基本保持为零,则可以判定运动状态为静止状态。再例如,如果最近一段时间中,头戴显示设备的速度均基本保持一个明显大于0的定值,头戴显示设备的加速度均保持基本为零,且头戴显示设备的实际姿态均基本保持不变,则可以判定运动状态为匀速直线运动状态。利用头戴显示设备在各个时刻在世界坐标系下的加速度,可以确定头戴显示设备的加速度变化情况,参考加速度变化情况,可以确定出运动状态为加速运动状态、减速运动状态等的情况。
步骤111,基于运动状态,确定与头戴显示设备适配的目标工作模式。
需要说明的是,参照步骤103中的相关说明,目标工作模式可以有三种可能的情况,分别是第一预设工作模式、第二预设工作模型和第三预设工作模式。
步骤113,响应于目标工作模式为第一预设工作模式,将头戴显示设备设置为第一预设工作模式,并触发步骤120至步骤150。
需要说明的是,步骤113的具体实施方式参照对步骤105的介绍即可,在此不再赘述。
步骤115,响应于目标工作模式为第三预设工作模式,将头戴显示设备设置为第三预设工作模式,基于预设位置和预设姿态,对待显示画面进行渲染,并通过头戴显示设备显示经渲染的待显示画面。
如果目标工作模式为第三预设工作模式,可以判断头戴显示设备当前使用的工作模式是否为第三预设工作模式,如果判断结果为是,可以使头戴显示设备保持当前使用的工作模式,如果判断结果为否,可以将头戴显示设备当前使用的工作模式切换为第三预设工作模式。
在一些可选的例子中,在第三预设工作模式下,在图9中的T0至T1时刻,可以由渲染引擎利用预设位置和预设姿态,对待显示画面进行渲染,在渲染结束之后,可以直接通过头戴显示设备显示得到的调整画面。
本公开的实施例中,参考头戴显示设备在世界坐标系下的运动状态,可以合理确定与头戴显示设备适配的目标工作模式,以便控制头戴显示设备以合适的工作模式进行工作。在目标工作模式为第一预设工作模式的情况下,可以基于修正姿态对显示画面进行定位方面的处理,这样有利于保证头戴显示设备的画面稳定性,从而能够提升用户的使用体验。在目标工作模式为第三预设工作模式的情况下,可以直接通过头戴显示设备显示基于预设位置和预设姿态,对待显示画面进行渲染后得到的结果,而不用额外的画面调整,这样有利于节约算力。
在一些可选示例中,在图8所示实施例的基础上,如图10所示,步骤111,包括步骤1111和步骤1113。
步骤1111,响应于运动状态为静止状态和匀速直线运动状态中的一种状态,确定与头戴显示设备适配的目标工作模式为第三预设工作模式。
步骤1113,响应于运动状态为不同于静止状态和匀速直线运动状态的状态,确定与头戴显示设备适配的目标工作模式为第一预设工作模式。
本公开的实施例中,如果运动状态为静止状态和匀速直线运动状态中的一种状态,可以认为头戴显示设备静止不动,或者,头戴显示设备的运行情况非常平稳,那么,可以通过将头戴显示设备设置为第三预设工作模式,以有效地节约计算资源和算力。如果运动状态为不同于静止状态和匀速直线运动状态的状态,可以认为头戴显示设备的运行情况不够平稳,那么,可以通过将头戴显示设备设置为第一预设工作模式,保证头戴显示设备的画面稳定性。
在一些可选示例中,可以分别在车辆上坡场景下、车辆正常行驶且存在凸出路面的物体使得车辆颠簸的场景下,以及车辆转弯场景下,验证第一预设工作模式的效果。
车辆上坡场景下,第一预设工作模式和0dof模式下,头戴显示设备的显示效果的对比结果可以参考图11-1至图11-4,每一张图表示头戴显示设备相同状态下两种工作模式的对比。图11-1至图11-4中,可以定义外围实线框和外围实线框中的虚线相对世界坐标系是不变的,外围实线框中的小实线框表示的是用户通过头戴显示设备能够看到的屏幕,在图11-1至图11-4中,可以理解为小实线框是可以随着头戴显示设备相对于世界坐标系变化的。图11-1至图11-4中的每一张图中,位于左侧的部分表示的是第一预设工作模式下头戴显示设备的显示效果,位于右侧的部分表示的是0dof模式下头戴显示设备的显示效果。
车辆上坡场景下,对于第一预设工作模式而言,车辆首先平稳行驶(假设为在平坦的直路上行驶),整体画面在屏幕的整个显示区域显示,显示区域位于外围实线框中的虚线限定的部分。通过头戴显示设备能观察到的显示区域的位置为预设位置,预设位置可以位于图12所示的头戴显示设备坐标系中的Z轴的负方向上,显示区域可以与图12所示的头戴显示设备坐标系中的X轴和Y轴形成的XY平面平行,此时,整体画面全部显示,用户能看到的可显示画面的尺寸基本与显示区域的尺寸一致,如图11-1左侧部分所示。
当车辆开始向上移动时,由于需要时间计算修正姿态,屏幕的显示区域会先相对外围实线框中的虚线限定的部分上移一部分,通过调整画面使整体画面偏移到显示区域的下方。画面在显示区域中的效果如图11-2左侧部分所示,相比于图11-1左侧部分,显示区域的部分区域不显示内容,这部分区域可以呈黑色,这样,用户能看到的可显示画面的尺寸与显示区域的尺寸不同。
当车辆继续向上移动时,可以继续修正姿态并调整画面,则显示区域相对图11-2左侧部分会下移,以逐步趋向外围实线框中的虚线限定的部分。而整体画面相比于图11-2左侧部分会向上偏移一部分,以逐步趋于充满显示区域,但此时用户可以看到的可显示画面的尺寸仍然与显示区域的尺寸不一致。画面在显示区域中的效果可以如图11-3左侧部分所示。
当车辆车继续向上移动时,如果坡度较为平缓,则继续通过修正姿态和调整画面,使显示区域和用户可看到的可显示画面趋于平稳,画面在显示区域中的效果如图11-4左侧部分所示。
当车辆结束上坡,不再继续上移,保持一个平稳的状态,则可以回到图11-1左侧部分所示的整体画面在显示区域中的效果。
车辆上坡场景下,对于0dof模式而言,如图11-1至图11-4中右侧部分所示,一直保持显示的画面的尺寸与显示区域的尺寸一致,也即,不管使用头戴显示设备的用户怎么动,整体画面在头戴显示设备坐标系下一直位于预设位置且呈预设姿态,但是在世界坐标系下,整体画面是一直在动的。图中仅示出了理想的平缓坡道情况,可以理解地,实际路况的坡道是多维度的,使用本公开实施例的方法可以修正沿三轴的姿态并调整画面,使得画面能相对保持在世界坐标系中的一个小范围内的稳定位姿。参考11-1至图11-4可知,车上坡场景下,相比于0dof模式,第一预设工作模式能够使画面缓慢上移,起到较好的画面稳定的效果,防止眩晕。
车辆正常行驶且存在凸出路面的物体使得车辆颠簸的场景下,第一预设工作模式和0dof模式下,头戴显示设备的显示效果的对比结果可以参考图13-1至图13-4,每一张图表示头戴显示设备相同状态下两种工作模式的对比。图13-1至图13-4中,可以定义外围实线框和外围实线框中的虚线相对世界坐标系是不变的,外围实线框中的小实线框表示的是用户通过头戴显示设备能够看到的屏幕,在图13-1至图13-4中,可以理解为小实线框是可以随着头戴显示设备相对于世界坐标系变化的。图13-1至图13-4中的每一张图中,位于左侧的部分表示的是第一预设工作模式下头戴显示设备的显示效果,位于右侧的部分表示的是0dof模式下头戴显示设备的显示效果。
车辆正常行驶且存在凸出路面的物体使得车辆颠簸的场景下,对于第一预设工作模式而言,车辆首先平稳行驶,整体画面在屏幕的整个显示区域显示,显示区域位于外围实线框中的虚线限定的部分,如图13-1左侧部分所示。
如果路面存在的凸出物体比较大,坡度比较和缓,例如减速带,则车辆先往上,这时,类似于图11-2的解释,可以通过修正姿态和调整画面,使整体画面与图13-1左侧部分相比,呈现如图13-2左侧部分所示的效果。在达到凸出物体顶端时,利用继续修正姿态并调整画面,则显示区域逐步趋向外围实线框中的虚线限定的部分,用户可见的显示画面也逐步趋向充满整个显示区域,显示效果如图13-3左侧部分所示。车辆离开凸出物体落地时,相当于车辆下坡,则显示效果会与图13-2呈相反的趋势,显示区域相对于外围实线框中的虚线限定的部分下移一部分,画面会朝显示区域的上方移动。整体画面如图13-4左侧部分所示。由于在先的显示区域部分处于外围实线框中的虚线限定的部分之上,使得图13-4左侧部分中的显示区域下移的程度不大。之后车辆落地并继续平稳行驶,整体画面回复至如图13-1左侧部分所示。
如果路面存在的凸出物体比较小比较陡峭,使得车辆突然往上,这时整体画面如图13-3左侧部分所示,之后车辆突然落地,整体画面直接回复至如图13-1左侧部分所示。
对于0dof模式而言,画面会一直显示在屏幕的显示区域中,而通过头戴显示设备能看到的屏幕也会随头戴显示设备运动而运动。车辆正常行驶且存在凸出路面的物体使得车辆颠簸的场景下,由于头戴显示设备会随车辆共同颠簸,用户看到的显示画面也会上下颠簸,如图13-1至图13-4中右侧部分显示的效果。
参考13-1至图13-4可知,车辆正常行驶且存在凸出路面的物体使得车辆颠簸的场景下,第一预设工作模式较0dof模式而言能够起到较好的画面防抖效果。
车辆转弯场景下,如图14所示,车辆可以先向图中的左侧行驶,然后向图中的上侧转弯,该场景中第一预设工作模式和3dof模式下,头戴显示设备的显示效果的对比结果可以参考图15-1至图15-6。图14中的椭圆形可以表示用户头部所在的位置。可以理解地,为了便于说明,图14示出的示例中,用户不主动转动头部,用户的视线一直朝着车辆行进方向,车辆转弯可以带动用户头部相对世界坐标系转动。图14中各个箭头指示的“横线”表示距用户一定间距位于视野中心的一部分区域,该区域随车辆转弯逐步从J1变化到J6。对于图15-1至图15-6,图14中箭头J1指示的是图15-1中虚线限定的区域的位置,图14中箭头J2指示的是图15-2中虚线限定的区域的位置,图14中箭头J3指示的是图15-3中虚线限定的区域的位置,图14中箭头J4指示的是图15-4中虚线限定的区域的位置,图14中箭头J5指示的是图15-5中虚线限定的区域的位置,图14中箭头J6指示的是图15-6中虚线限定的区域的位置。在图15-1至图15-6中,可以定义外围实线框、外围实线框中的虚线、外围实线框中的小实线框均是随着头戴显示设备相对于世界坐标系变化的。图15-1至图15-6中的每一张图表示头戴显示设备相同状态下两种工作模式的对比,位于上面的部分表示的是第一预设工作模式下头戴显示设备的显示效果,位于下面的部分表示的是3dof模式下头戴显示设备的显示效果。
参考图15-1至图15-6中上面的部分可知,在第一预设工作模式下,经过画面处理,画面可以慢慢跟随用户。该效果的解释可以参考上述车辆上坡过程的解释,本示例与上述示例的主要区别在于车辆围绕不同的轴在世界坐标系下发生旋转。待车辆停止转弯,整体画面会慢慢回归至正常的显示区域,这时,画面仍是可见的。而3dof模式下,参考图15-1至图15-6中下面的部分可知,由于画面相对世界的旋转是定值,因此,转弯后画面不再可见。
参考15-1至图15-6可知,车辆转弯场景下,相比于3dof模式,采用第一预设工作模式,有利于保持画面的可见性。
综上,本公开的实施例中提供的第一预设工作模式在各种场景下均具有良好的显示效果,能够较好地保证用户的使用体验。
本公开的实施例提供的任一种用于在头戴显示设备显示画面的方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种用于在头戴显示设备显示画面的方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种用于在头戴显示设备显示画面的方法。下文不再赘述。
本公开的实施例提供一种画面处理方法,该方法包括:基于在头戴显示设备坐标系下的预设位置和预设姿态,渲染待显示画面;获取目标修正姿态,其中,目标修正姿态基于头戴显示设备的角速度数据、前一次的修正姿态,以及预设姿态确定;基于预设位置和目标修正姿态,调整经渲染的待显示画面。
在一个示例中,获取目标修正姿态可以为从修正姿态序列中选择目标修正姿态。
在一个示例中,修正姿态序列可以包括在多个历史时刻中的每个历史时刻的修正姿态,多个历史时刻中非最早的任一历史时刻对应的修正姿态基于头戴显示设备在该历史时刻的角速度数据、该历史时刻的前一历史时刻对应的修正姿态,以及预设姿态确定。
本公开的实施例提供一种用于头戴显示设备的画面处理方法。该方法中,可以响应于头戴显示设备的目标工作模式为第一预设工作模式,基于在头戴显示设备坐标系下的预设位置和预设姿态,渲染待显示画面;获取目标修正姿态,其中,目标修正姿态基于头戴显示设备的角速度数据、前一次的修正姿态,以及预设姿态确定;基于预设位置和目标修正姿态,调整经渲染的待显示画面。响应于头戴显示设备的目标工作模式为第二预设工作模式,基于预设位置和头戴显示设备在世界坐标系下的实际姿态,调整待显示画面。
该方法还可以包括响应于头戴显示设备的目标工作模式为第三预设工作模式,基于在头戴显示设备坐标系下的预设位置和预设姿态,渲染待显示画面,通过头戴显示设备显示经渲染的待显示画面。
本公开的实施例提供一种用于头戴显示设备的画面显示方法。可以响应于头戴显示设备的目标工作模式为第一预设工作模式,通过头戴显示设备显示缓慢跟随头戴显示坐标系的画面。响应于头戴显示设备的目标工作模式为第二预设工作模式,通过头戴显示设备显示相对头戴显示设备坐标系存在旋转,相对世界坐标系保持旋转不变的画面。
该方法还可以包括响应于头戴显示设备的目标工作模式为第三预设工作模式,通过头戴显示设备坐标显示相对头戴显示设备坐标系保持旋转不变,相对世界坐标系存在旋转的画面。
示例性装置
图16是本公开一示例性实施例提供的用于在头戴显示设备显示画面的装置的结构示意图,图16所示的装置包括渲染模块1620、选择模块1630、调整模块1640和显示模块1650。
渲染模块1620,用于基于在头戴显示设备坐标系下的预设位置和预设姿态,对头戴显示设备的待显示画面进行渲染;
选择模块1630,用于从修正姿态序列中,为经渲染的待显示画面选择目标修正姿态;其中,修正姿态序列包括:在多个历史时刻中的每个历史时刻的修正姿态,多个历史时刻中非最早的任一历史时刻对应的修正姿态基于头戴显示设备在该历史时刻的角速度数据、该历史时刻的前一历史时刻对应的修正姿态,以及预设姿态确定;
调整模块1640,用于基于预设位置和目标修正姿态,对经渲染的待显示画面进行调整,得到调整画面;
显示模块1650,用于通过头戴显示设备显示调整画面。
在一些可选示例中,如图17所示,该装置还包括:
第一获取模块1601,用于获取头戴显示设备相对头戴显示设备所在可移动平台的相对姿态;
第一确定模块1603,用于基于相对姿态,确定与头戴显示设备适配的目标工作模式;
第一处理模块1605,用于响应于目标工作模式为第一预设工作模式,将头戴显示设备设置为第一预设工作模式,并触发渲染模块1620、选择模块1630、调整模块1640和显示模块1650;
第二处理模块1607,响应于目标工作模式为第二预设工作模式,将头戴显示设备设置为第二预设工作模式,并通过头戴显示设备显示基于预设位置、待显示画面和实际姿态序列得到的调整画面;其中,实际姿态序列包括:在多个历史时刻中的每个历史时刻,头戴显示设备在世界坐标系下的实际姿态。
在一些可选示例中,如图17所示,第一确定模块1603,包括:
第一确定子模块16031,用于响应于以下四种情况中的一种情况满足,确定与头戴显示设备适配的目标工作模式为第二预设工作模式:相对姿态大于预设相对姿态阈值;最近预设时间段中,每个时刻各自对应的相对姿态均大于预设相对姿态阈值;最近预设时间段中,超过预设数量个时刻各自对应的相对姿态大于预设相对姿态阈值;相对姿态的变化趋势为增大趋势;
第二确定子模块16033,用于响应于以下四种情况中的一种情况满足,确定与头戴显示设备适配的目标工作模式为第一预设工作模式:相对姿态小于或等于预设相对姿态阈值;最近预设时间段中,每个时刻各自对应的相对姿态均小于或等于预设相对姿态阈值;最近预设时间段中,超过预设数量个时刻各自对应的相对姿态小于或等于预设相对姿态阈值;相对姿态的变化趋势为减小趋势。
在一些可选示例中,如图18所示,该装置还包括:
第二获取模块1609,用于获取头戴显示设备在世界坐标系下的运动状态;
第二确定模块1611,用于基于运动状态,确定与头戴显示设备适配的目标工作模式;
第三处理模块1613,用于响应于目标工作模式为第一预设工作模式,将头戴显示设备设置为第一预设工作模式,并触发渲染模块1620、选择模块1630、调整模块1640和显示模块1650;
第四处理模块1615,用于响应于目标工作模式为第三预设工作模式,将头戴显示设备设置为第三预设工作模式,基于预设位置和预设姿态,对待显示画面进行渲染,并通过头戴显示设备显示经渲染的待显示画面。
在一些可选示例中,如图18所示,第二确定模块1611,包括:
第三确定子模块16111,用于响应于运动状态为静止状态和匀速直线运动状态中的一种状态,确定与头戴显示设备适配的目标工作模式为第三预设工作模式;
第四确定子模块16113,用于响应于运动状态为不同于静止状态和匀速直线运动状态的状态,确定与头戴显示设备适配的目标工作模式为第一预设工作模式。
在一些可选示例中,头戴显示设备位于可移动平台上,并且,头戴显示设备满足以下两项中的一项:
头戴显示设备固定安装于可移动平台;
头戴显示设备可相对可移动平台移动。
在一些可选示例中,若修正姿态序列中相邻的两个修正姿态为第一修正姿态和第二修正姿态,第一修正姿态对应的历史时刻表示为第一历史时刻,第二修正姿态对应的历史时刻表示为第二历史时刻,第一历史时刻早于第二历史时刻,则如图19所示,第二修正姿态采用如下模块确定:
第三确定模块1910,用于基于头戴显示设备在第二历史时刻的角速度数据,以及第一历史时刻对应的第一修正姿态,确定在第二历史时刻在头戴显示设备坐标系下的参考姿态;
第四确定模块1920,用于基于参考姿态与预设姿态之间的姿态误差,确定修正姿态差值;
补偿模块1930,用于利用修正姿态差值补偿参考姿态,得到第二历史时刻对应的第二修正姿态。
在一些可选示例中,如图20所示,选择模块1630,包括:
选择子模块16301,用于从修正姿态序列中,选择所对应确定时间最晚的修正姿态;
第五确定子模块16303,用于将所选择的修正姿态作为目标修正姿态。
在本公开的装置中,上述公开的各种可选实施例、可选实施方式和可选示例,都可以根据需要进行灵活的选择和组合,从而实现相应的功能和效果,本公开不进行一一列举。
示例性系统
本公开的实施例还提供了一种用于在头戴显示设备显示画面的系统的结构示意图,如图21所示,该系统包括:车机2100、适配器2105和头戴显示设备2110,头戴显示设备2110通过适配器2105与车机2100连接;其中,
车机2100用于基于在头戴显示设备坐标系下的预设位置和预设姿态,对头戴显示设备2110的待显示画面进行渲染,并将经渲染的待显示画面发送至头戴显示设备2110;
适配器2105用于从修正姿态序列中,为经渲染的待显示画面选择目标修正姿态,基于预设位置和目标修正姿态,对经渲染的待显示画面进行调整,得到调整画面;其中,修正姿态序列包括:在多个历史时刻中的每个历史时刻的修正姿态,多个历史时刻中非最早的任一历史时刻对应的修正姿态基于头戴显示设备2110在该历史时刻的角速度数据、该历史时刻的前一历史时刻对应的修正姿态,以及预设姿态确定,角速度数据为头戴显示设备2110采集并发送至适配器2105;
头戴显示设备2110用于显示调整画面。
在一些可选的实施方式中,头戴显示设备2110可以为AR眼镜、VR眼镜等。
在一些可选的实施方式中,车机2100与适配器2015之间,以及适配器2015与头戴显示设备2110之间均可以通过有线方式进行连接以实现通信,或者通过无线方式进行连接以实现通信。
需要说明的是,本公开的实施例中提供的系统可以看做是包括两个计算设备的分体机形式的头戴显示设备。该系统中,头戴显示设备2110可以用于显示画面,车机2100通过适配器2105与头戴显示设备2110通信地连接,车机2100和适配器2015两者共同作为计算设备。通过分体机形式的头戴显示设备的运行,可以实现本公开上述实施例中的用于在头戴显示设备显示画面的方法。可选地,适配器2105和头戴显示设备2110也可以为集成的一体机,也就是从外观形式来看适配器2105和头戴显示设备2110为一个设备。具体实施方式和所能实现的效果均参照上述方法实施例中的相关介绍即可,在此不再赘述。
在一些可选示例中,适配器2105,还用于:
对待显示画面对应的控制标识进行渲染,将经渲染的控制标识和经渲染的待显示画面进行合成,得到合成画面;
基于预设位置和目标修正姿态,对合成画面进行调整,得到调整画面。
需要说明的是,控制标识的类型参照上述申请概述部分的相关说明即可,合成画面的调整方式参照上述方法实施例中对经渲染的待处理画面的调整方式的介绍即可,在此不再赘述。
本公开的实施例中,通过将经渲染的控制标识和经渲染的待显示画面进行合成,得到合成画面,并通过对合成画面的调整,得到调整画面,可以使得通过头戴显示设备进行控制标识的显示,控制标识可以用于人机交互。例如,用户可以通过控制标识,将调整画面中的网页、视频播放窗口等由虚拟空间中的一个位置移动至另一个位置。或者,将调整画面中的网页切换为另外一个网页。再或者,可以关闭调整画面中的网页。
在一些可选的例子中,如图22所示,车机2100可以先渲染不包括控制标识的待显示画面,车机2100还可以向适配器2105发送承载待显示画面的视频数据。适配器2105解码视频数据,由此可以得到一帧图像(对应待显示画面)。另外,还可以使用Opengl(图像处理库,可以用于执行图像拷贝、渲染、叠加等操作)的图像拷贝功能,把得到的图像复制到Opengl的纹理(texture)上,并把控制标识叠加到texture上,以得到合成好的待显示画面(相当于上文中的合成画面)。
适配器2105可以基于预设位置和从修正姿态序列中选择的目标修正姿态,对合成画面进行调整,得到调整画面。适配器2105将得到的调整画面通过有线或者无线的方式传输给头戴显示设备2110,头戴显示设备2110可以显示调整画面,这样能够较好地保证头戴显示设备2110提供的画面的稳定性,从而能够提升用户的使用体验。
示例性电子设备
下面,参考图23来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图23图示了根据本公开实施例的电子设备2300的框图。
如图23所示,电子设备2300包括一个或多个处理器2310和存储器2320。
处理器2310可以是中央处理单元(CPU)或具有数据处理能力和/或指令执行能力的其他处理单元,且可控制电子设备2300中的其他组件以执行期望功能。
存储器2320可以包括一个或多个计算机程序产品,所述程序产品可包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器可包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)。所述非易失性存储器可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器2310可以运行所述程序指令,以实现上文所述的本公开的各个实施例的用于在头戴显示设备显示画面的方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备2300还可以包括:输入装置2330和输出装置2340,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
若电子设备2300是第一或第二设备,输入装置2330可是麦克风或麦克风阵列。若电子设备2300是单机设备,输入装置2330可是通信网络连接器,用于从第一和第二设备接收采集的输入信号。输入装置2330还可包括键盘、鼠标等。
输出装置2340可以向外部输出各种信息。输出装置2340可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出装置等等。
图23仅示出电子设备2300中与本公开有关的组件中的一些,省略了总线、输入/输出接口等组件。根据具体情况,电子设备2300还可包括其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的用于在头戴显示设备显示画面的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的用于在头戴显示设备显示画面的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。上述公开的具体细节仅是为了示例和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体细节实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。