空间音频应用中的头部姿态跟踪的头部到头戴式受话器旋转变换估计的制作方法

文档序号:28100454发布日期:2021-12-22 11:04阅读:329来源:国知局
空间音频应用中的头部姿态跟踪的头部到头戴式受话器旋转变换估计的制作方法

1.本公开整体涉及空间音频应用。


背景技术:

2.空间音频创建了三维(3d)虚拟听觉空间,该三维虚拟听觉空间允许佩戴头戴式受话器的用户在观看电影、玩视频游戏或与源设备(例如,计算机屏幕)上显示的增强现实(ar)内容交互的同时,精确定位声源位于3d虚拟听觉空间中的位置。现有空间音频平台包括头部姿态跟踪器,该头部姿态跟踪器使用摄像机来跟踪用户的头部姿态。如果源设备是移动设备(例如,智能电话、平板电脑),则源设备和头戴式受话器相对于彼此自由移动,这可能不利地影响用户对3d空间音频的感知。


技术实现要素:

3.本发明公开了用于在空间音频应用中估计用于头部姿态跟踪的头部到头戴式受话器旋转变换的实施方案。在一个实施方案中,一种方法包括:估计用于源设备的源设备参考坐标系中的第一重力方向;估计用于头戴式受话器的头戴式受话器参考坐标系中的第二重力方向;使用所估计的第一重力方向和所估计的第二重力方向来估计从该头戴式受话器坐标系到面部参考坐标系的旋转变换、从相机参考坐标系到该源设备参考坐标系的旋转变换,以及从该面部参考坐标系到该相机参考坐标系的旋转变换;使用源设备运动数据、头戴式受话器运动数据和从该头戴式受话器坐标系到该面部参考坐标系的旋转变换来估计相对位置和姿态;
4.使用该相对位置和姿态来估计头部姿态;以及使用所估计的头部姿态来渲染空间音频以用于在该头戴式受话器上回放。
5.其他实施方案可以包括装置、计算设备和非暂态计算机可读存储介质。
6.本文所公开的特定实施方案提供了下列优点中的一个或多个优点。用户可在佩戴其头戴式受话器时在其头部上的不同位置处(诸如向前或向后倾斜)感知空间音频。
7.在以下附图和描述中阐述了该主题的一个或多个具体实施的细节。根据说明书、附图及权利要求,本主题的其他特征、方面和优点将变得显而易见。
附图说明
8.图1示出了根据一个实施方案的示例性用户姿势变化场景。
9.图2示出了根据一个实施方案的居中且惯性稳定的3d虚拟听觉空间。
10.图3示出了根据一个实施方案的用于估计头部到头戴式受话器旋转变换听觉空间的几何形状。
11.图4是根据一个实施方案的用于估计头部到头戴式受话器旋转变换的系统的框图。
12.图5是根据一个实施方案的估计头部到头戴式受话器旋转变换的过程的流程图。
13.图6是实现参考图1至图5描述的特征和操作的源设备软件/硬件架构的概念框图。
14.图7是实现参考图1至图5所述的特征和操作的头戴式受话器软件/硬件架构的概念框图。
15.图8示出了根据一个实施方案的用于相对姿态跟踪的各种参考坐标系和符号。
16.图9示出了根据一个实施方案的在头部跟踪中使用的相对运动模型的几何形状。
具体实施方式
17.示例性系统
18.图1是示出根据一个实施方案的使用相关运动来选择运动跟踪状态的概念图。在所示的示例性场景中,用户正在查看在源设备101上显示的音频/视觉(av)内容,同时佩戴有线或无线耦接到源设备101的头戴式受话器102。
19.源设备103包括能够播放av内容并且可以有线或无线耦接到头戴式受话器102的任何设备,包括但不限于智能电话、平板电脑、膝上型计算机、可穿戴计算机、游戏机、电视等。在一个实施方案中,源设备101包括参考图6所述的架构600。架构600包括惯性测量单元(imu)607,该惯性测量单元包括各种运动传感器,包括但不限于角速率传感器(例如,三轴mems陀螺仪)和加速度计(例如,三轴mems加速度计)。当移动或旋转源设备103时,运动传感器检测运动。imu 607的输出在惯性参考坐标系中被处理成旋转和加速度数据。在一个实施方案中,源设备101输出av内容,包括但不限于增强现实(ar)、虚拟现实(vr)和沉浸式视频内容。源设备101还包括模拟人类用于定位声音的主音频提示的音频渲染引擎(例如,双耳渲染引擎),包括耳间时间差、耳间水平差和由外耳完成的频谱滤波。
20.头戴式受话器102是包括用于投影声学音频的扬声器的任何设备,包括但不限于:头戴式受话器、耳塞、耳机和扬声器(例如,智能扬声器)。在一个实施方案中,头戴式受话器102包括参考图7所述的架构700。该架构包括imu 711,该imu包括各种运动传感器,包括但不限于角速率传感器(例如,三轴mems陀螺仪)和加速度计(例如,三轴mems加速度计)。当用户101平移或旋转其头部时,imu 711中的运动传感器检测运动。头戴式受话器运动传感器的输出在与由源设备101的imu 607输出的旋转和加速度相同的惯性参考坐标系中被处理成旋转和加速度数据。
21.在一个实施方案中,头戴式受话器运动数据通过短程无线通信信道(例如,蓝牙信道)传输到源设备101。在源设备101处,相关性运动检测器101确定头戴式受话器运动数据与源设备运动数据之间的类似性(例如,类似的姿态和重力特征)。如果头戴式受话器数据和源设备运动数据被确定为不相关,则头部跟踪器转变到1

imu跟踪状态104,其中头部跟踪仅使用头戴式受话器运动数据来执行。如果确定头戴式受话器运动数据和源设备运动数据相关,则头部跟踪器转变到2

imu融合跟踪状态105,其中使用从头戴式受话器运动数据和源设备运动数据计算的相对运动数据来执行头部跟踪。在2

imu融合跟踪状态105中,使用相对运动模型来计算相对位置和相对姿态,如在本文所附附录a中所述。头部跟踪器使用所估计的相对运动(视轴矢量)来跟踪用户的头部姿态并保持空间音频相对于所估计的重力方向居中且稳定。每当相对运动改变时,视轴矢量估计被更新,并且因此可能导致虚拟听觉空间变得不居中。由于所估计的视轴矢量受到漂移误差的影响,因此需要周期性地或响
应于触发事件(例如,大的用户姿势变化)来校正视轴矢量,如附录a所述。
22.图2示出了根据一个实施方案的居中且惯性稳定的3d虚拟听觉空间200。虚拟听觉空间200包括使用已知的空间音频技术诸如双耳渲染在环境床202中渲染的虚拟声源或“虚拟扬声器”(例如,中央(c)、左(l)、右(r)、左环绕(l

s)和右环绕(r

s))。为了保持期望的3d空间音频效果,期望中央声道(c)与视轴矢量203对准。视轴矢量203源自头戴式受话器参考坐标系并终止于源设备参考坐标系。当首次初始化虚拟听觉环境时,通过旋转用于环境床202的参考坐标系(x
a
,y
a
,z
a
)以使中央声道与视轴矢量203对准来使中央通道与视轴矢量203对准,如图2所示。
23.当空间音频居中时,用户将来自中央声道的音频(例如,语音对话)感知为直接来自源设备101的显示器。使用扩展卡尔曼滤波器(ekf)跟踪系统,通过跟踪视轴矢量203从头部参考坐标系到源设备101的位置来实现居中,如附录a所述。估计视轴矢量203仅确定中央声道的位置。第二跟踪器获取所估计的视轴矢量203作为输入并提供环境床202的输出取向,该输出取向确定除了中央声道之外的用户周围的l/l

s和r/r

s环绕声道的位置。将环境床202的中央声道与视轴矢量203对准允许渲染源设备101的所估计位置处的中央声道以供用户感知。
24.如果视轴矢量203不在源设备101上居中(例如,由于跟踪误差),则对准环境床202的中央声道将不使音频“居中”,因为中央声道将仍然呈现在源设备101的错误估计位置处。需注意,每当用户的头部相对于源设备101旋转时,诸如当源设备101在用户前方静止并且用户的头部旋转时,视轴矢量203改变。在这种情况下,随着头部旋转,准确地跟踪用户头部的运动,使得即使当视轴矢量203改变时,音频也保持居中在源设备101的所估计位置上,因为ekf提供了对真实视轴矢量203如何改变的准确跟踪。还需注意,当所估计的视轴矢量203不是源设备101的真实位置时,由于跟踪误差(其可来自随时间的漂移,诸如来自陀螺仪偏置等的imu传播误差,或其他误差源),空间音频变得不居中。在一个实施方案中,当用户静止或检测到复杂过渡时,使用泄放至零(btz)过程来校正跟踪误差,如附录a中所述。
25.需注意,图2所示的环境床202用于5.1音频格式,其中所有音频声道均位于环境床202的x
a
y
a
平面中(z
a
=0),其中x
a
向前朝向中央声道,y
a
向右并且z
a
向下。其他实施方案可具有更多或更少的音频声道,并且这些音频声道可任意地在任何平面中放置在3d虚拟听觉空间中的不同位置处。
26.图3示出了根据一个实施方案的用于估计头部到头戴式受话器旋转变换的几何结构。示出了三个参考坐标系:源设备imu参考坐标系301(s)、面部参考坐标系302(f)和头戴式受话器参考坐标系303(b)。期望估计从面部坐标系到头戴式受话器坐标系的旋转变换,由r
b

f
给出。假设面部参考坐标系与头部参考坐标系对准,其中原点位于用户头部的中央,x轴朝向用户的鼻部,y轴朝向用户的右耳,并且z轴朝向用户的下巴,如图2所示。
27.图4是根据一个实施方案的用于估计面部到头戴式受话器旋转变换的系统400的框图。系统400包括头部到头戴式受话器变换估计器401和头部跟踪融合模型402。变换估计器401接收来自imu 607的源设备运动数据、来自面部检测器的相机面部姿态测量结果和来自imu 711的头戴式受话器运动数据作为输入。在假设源设备101是静态的情况下,估计问题被视为手眼校准问题,其中由在两个不同时间t0和t1捕获的两个不同头部姿态生成的来自头戴式受话器imu 711的δ相机面部姿态测量结果和δ(六轴)姿态之间的对应关系由下
式给出:
[0028][0029][0030]
δr
f

c
r
f

b
=r
f

b
δr
i

b

ꢀꢀꢀ
[3]
[0031]
其中
[0032][0033]
上面的公式[1]

[3]给出了规范的手眼校准形式ax=xb,其中x可用各种方法估计。
[0034]
然而,上述方法要求在校准阶段期间,当用户在相机视图中移动头部时,源设备保持静止。为了避免这种情况,可利用源设备imu数据,这将允许至少在尖端倾斜方向上利用相机进行r
f

b
的估计,而无需用户移动。当源设备或头戴式受话器中的任一者或两者移动时,可估计更多角度。例如,关于两个imu的重力估计可用于估计中。旋转变换r
f

b
的估计可使用以四元数q
f

b
为状态的扩展卡尔曼滤波器来计算,并且测量结果更新由下式给出:
[0035][0036]
其中和分别是源设备坐标系和头戴式受话器坐标系中的重力矢量,并且在静态条件下可观察到,并且r
s

c
和r
c

f
分别是从相机坐标系到源坐标系的转换和从面部坐标系到相机坐标系的转换。另选地,可使用来自源设备和头戴式受话器imu的六轴δ测量的重力估计。测量结果更新和卡尔曼矩阵在附录a中更完整地描述。在使用公式[4]估计了旋转变换r
f

b
之后,将其输入头部跟踪融合模型402中以估计视轴,如参考图2所述。
[0037]
图5是估计头部到头戴式受话器旋转变换的过程500的流程图。过程500可使用例如图6所示的源设备架构来实现。
[0038]
过程500开始于估计源设备参考坐标系中的第一重力方向(501),估计头戴式受话器参考坐标系中的第二重力方向(502),使用所估计的第一重力方向和所估计的第二重力方向来估计从头戴式受话器坐标系到面部参考坐标系的旋转变换、从相机参考坐标系到源设备参考坐标系的旋转变换,以及从面部参考坐标系到相机参考坐标系的旋转变换(503),使用源设备运动数据、头戴式受话器运动数据和从头戴式受话器坐标系到面部参考坐标系的旋转变换来估计视轴矢量(504),使用所估计的视轴矢量来估计用户的头部姿态(505),以及使用所估计的头部姿态来渲染空间音频以用于在头戴式受话器上回放(506)。
[0039]
示例性软件/硬件架构
[0040]
图6是实现参考图1至图5描述的特征和操作的源设备软件/硬件架构600的概念框图。架构600可包括存储器接口621、一个或多个数据处理器、数字信号处理器(dsp)、图像处理器和/或中央处理单元(cpu)622以及外围设备接口620。存储器接口621、一个或多个处理器622和/或外围设备接口620可为独立部件,或者可集成到一个或多个集成电路中。
[0041]
可将传感器、设备和子系统耦接到外围设备接口620以提供多个功能。例如,imu 607、光传感器608和接近传感器609可以耦接到外围设备接口620,以促进可穿戴式计算机的运动感测(例如,加速、旋转速率)、照明和接近功能。可将位置处理器610连接到外围设备
接口620以提供地理定位。在一些具体实施中,位置处理器610可以是gnss接收器,诸如全球定位系统(gps)接收器。也可将电子磁力计611(如集成电路芯片)连接到外围设备接口620以提供可用于确定磁北方向的数据。电子磁力计611可以向电子罗盘应用程序提供数据。imu 607可包括被配置为确定源设备的速度和移动方向的变化的一个或多个加速度计和/或陀螺仪(例如,三轴mems加速度计和三轴mems陀螺仪)。气压计606可以被配置为测量移动设备周围的大气压力。
[0042]
相机/3d深度传感器602捕获数字图像和视频,并且可包括前向相机和后向相机两者。3d深度传感器可以是能够捕获3d数据或点云的任何传感器,诸如飞行时间(tof)传感器或lidar。
[0043]
可通过无线通信子系统612来促进通信功能,这些无线通信子系统可包括射频(rf)接收器和发射器(或收发器)和/或光学(例如,红外)接收器和发射器。无线通信子系统612的具体设计与实现可取决于移动设备打算通过其操作的通信网络。例如,架构600可包括设计用于通过gsm网络、gprs网络、edge网络、wi

fi
tm
网络以及bluetooth
tm
网络操作的通信子系统612。具体地讲,无线通信子系统612可包括主机协议,使得移动设备可被配置为其他无线设备的基站。
[0044]
可将音频子系统605耦接到扬声器603和一个或多个麦克风604以促进支持语音的功能,诸如语音识别、语音复制、数字记录和电话功能。音频子系统605可以被配置为从用户处接收语音命令。
[0045]
i/o子系统613可包括触摸表面控制器617和/或其他输入控制器615。可以将触摸表面控制器617耦接到触摸表面618。触摸表面618和触摸表面控制器617例如能够利用多种触敏技术中的任一个检测接触和运动或其中断,触敏技术包括但不限于电容性、电阻性、红外和表面声波技术,以及用于确定与接触表面646接触的一个或多个点的其他接近传感器阵列或其他元件。触摸表面618可包括例如触摸屏或智能手表的数字表冠。i/o子系统613可以包括触觉引擎或设备,以用于响应于来自处理器或数字信号处理器(dsp)622的命令而提供触觉反馈(例如,振动)。在一个实施方案中,触摸表面618可以是压敏表面。
[0046]
可将其他输入控制器615耦接到其他输入/控制设备616,诸如一个或多个按钮、摇臂开关、拇指滚轮、红外端口和usb端口。该一个或多个按钮(未示出)可包括用于扬声器603和/或麦克风604的音量控制的增大/减小按钮。触摸表面618或其他输入控制设备616(例如,按钮)可以包括或耦接到指纹识别电路,以与指纹认证应用程序一起使用,从而基于用户的指纹来认证用户。
[0047]
在一个具体实施中,将按钮按下第一持续时间可以解开触摸表面618的锁定;并且将按钮按下持续比第一持续时间长的第二持续时间可打开或关闭移动设备的电源。用户能够对一个或多个按钮的功能进行自定义。例如,还可以使用触摸表面618实现虚拟或软按钮。
[0048]
在一些具体实施中,计算设备可呈现记录的音频文件和/或视频文件,诸如mp3、aac和mpeg文件。在一些具体实施中,移动设备可包括mp3播放器的功能。也可使用其他输入/输出以及控制设备。
[0049]
存储器接口621可以耦接到存储器623。存储器623可包括高速随机存取存储器和/或非易失性存储器,诸如一个或多个磁盘存储设备、一个或多个光学存储设备和/或闪存存
储器(例如,nand、nor)。存储器623可以存储操作系统624,诸如由加利福尼亚州库比蒂诺的apple公司开发的ios操作系统。操作系统624可包括用于处理基础系统服务以及用于执行硬件相关任务的指令。在一些具体实施中,操作系统624可以包括内核(如unix内核)。
[0050]
存储器623还可以存储通信指令625,以促进与一个或多个附加设备、一个或多个计算机和/或一个或多个服务器的通信诸如,例如,用于实现与其他设备的有线或无线通信的软件栈的指令。存储器623可以包括图形用户界面指令626,以方便图形用户界面处理;促进与传感器相关的处理及功能的传感器处理指令627;促进与电话相关的过程及功能的电话指令628;促进与电子消息处理相关的过程及功能的电子消息处理指令629;促进与网页浏览相关的过程及功能的网页浏览指令630;促进与媒体处理相关的过程及功能的媒体处理指令631;促进通用gnss和与定位有关的进程的gnss/位置指令632;以及用于捕获图像(例如,视频、静止图像)和深度数据(例如,点云)的相机/3d深度传感器指令633。存储器623还包括用于空间音频应用(包括但不限于ar和沉浸式视频应用)的空间音频指令634。
[0051]
上面所识别的指令和应用程序中的每一者可对应于用于执行上述一个或多个功能的指令集。这些指令不需要作为独立软件程序、进程或模块来实现。存储器623可包括附加的指令或更少的指令。此外,可在硬件和/或软件中,包括在一个或多个信号处理和/或专用集成电路中,执行移动设备的各种功能。
[0052]
图7是实现参考图1至图5所述的特征和操作的头戴式受话器软件/硬件架构700的概念框图。在一个实施方案中,架构700可以包括片上系统(soc)701、立体声扬声器702a、702b(例如,耳塞、听筒、耳机)、电池保护器703、可充电电池704、天线705、滤波器706、led 707、麦克风708、存储器709(例如,闪存存储器)、i/o/充电端口710、imu 711和用于打开和关闭头戴式受话器、调节音量、静音的按钮712等。先前参考图1至图5描述了imu 711,并且包括例如三轴mems陀螺仪和三轴mems加速度计。
[0053]
soc 701还包括各种模块,诸如用于与其他设备诸如源设备103进行无线双向通信的射频(rf)无线电(无线收发器),如参考图1至图5所述。soc 701还包括用于运行特定应用的应用处理器(ap)、存储器(例如,闪存存储器)、用于管理头戴式受话器的各种功能的中央处理单元(cpu)、用于编码/解码音频的音频编解码器,用于对可再充电电池704进行充电/再充电的电池充电器、用于驱动i/o和充电端口710(例如,微型usb端口)的i/o驱动器、将数字音频转换成模拟音频的数模转换器(dac)以及用于驱动led 707的led驱动器。其他实施方案可具有更多或更少的部件。
[0054]
图8示出了根据一个实施方案的用于相对姿态跟踪的各种参考坐标系系和符号,如在本文所附附录a中更全面描述的。
[0055]
图9示出了根据一个实施方案的在头部跟踪中使用的相对运动模型的几何形状,如在本文所附附录a中更全面描述的。
[0056]
所描述的特征可有利地在能够在可编程系统上执行的一个或多个计算机程序中实现,该可编程系统包括至少一个输入设备、至少一个输出设备以及被耦接以从数据存储系统接收数据和指令并且将数据和指令发送到数据存储系统的至少一个可编程处理器。计算机程序是在计算机中可以直接或间接使用以执行某种活动或者产生某种结果的指令集。计算机程序可以包括编译和解释语言在内的任何形式的编程语言(例如,swift、objective

c、c#、java)来编写,并且其可以任何形式部署,包括作为独立程序或者作为模
块、部件、子例程、基于浏览器的网页应用程序、或适于在计算环境中使用的其他单元。
[0057]
虽然本说明书包含许多具体实施细节,但是这些具体实施细节不应被理解为是对任何发明或可能要求保护的内容的范围的限制,而应被理解为对特定于特定发明的特定实施方案的特征的描述。本说明书中在不同实施方案的上下文中描述的某些特征也可以在单个实施方案中组合地实现。相反,在单个实施方案的上下文中描述的各种特征也可单独地或者以任何合适的子组合的形式在多个实施方案中实现。此外,虽然某些特征可能在上面被描述为以某些组合来起作用并且甚至最初也这样地来要求保护,但是要求保护的组合的一个或多个特征在某些情况下可从该组合去除,并且要求保护的组合可涉及子组合或子组合的变型。
[0058]
类似地,虽然操作在附图中以特定次序示出,但不应将此理解为要求以相继次序或所示的特定次序来执行此类操作,或者要求执行所有所示的操作以实现期望的结果。在某些情况中,多任务和并行处理可能是有利的。此外,上述实施方案中各个系统部件的划分不应被理解为在所有实施方式中都要求此类划分,并且应当理解,所述程序部件和系统可一般性地一起整合在单个软件产品中或者封装到多个软件产品中。
[0059]
如上所述,本说明书的主题的一些方面包括来自各种来源的数据的采集和使用以改善移动设备可向用户提供的服务。本公开预期,在一些情况下,该采集到的数据可基于设备使用情况来识别特定位置或地址。此类个人信息数据可包括基于位置的数据、地址、订阅者账户标识符或其他标识信息。
[0060]
本公开还设想负责此类个人信息数据的收集、分析、公开、传输、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私做法。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法用途之外共享或出售。另外,此类收集应当仅在用户知情同意之后进行。另外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。
[0061]
就广告递送服务而言,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本发明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参与对个人信息数据的收集。
[0062]
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过基于非个人信息数据或绝对最低数量的个人信息诸如与用户相关联的设备所请求的内容、对内容递送服务可用的其他非个人信息或公开可用的信息来推断偏好,从而选择内容并将该内容递送至用户。
[0063]
附录a
[0064]
相对姿态建模
[0065]
背景
[0066]
利用向用户显示/呈现av内容的源设备(例如,iphone、ipad),并且用户佩戴具有imu的头戴式受话器,空间音频使得用户能够移动他或她的头部并且听到音频内容就好像它总是来自源设备一样。主要应用领域是丰富的电影观看或游戏体验和ar。
[0067]
算法挑战
[0068]
·
低延迟、准确估计头戴式受话器设备与源设备的相对位置(即,源设备在头部设备的参考坐标系中的位置),其中在传感器数据中存在延迟和可能的间隙。用户可从头部运动中感知任何大于50ms的音频延迟
[0069]
·
通过bt链路向源设备发送头戴式受话器imu数据的延迟
[0070]
·
只能通过bt从头戴式受话器获得较低速率的imu数据,约50hz
[0071]
·
可能丢弃的分组在来自头戴式受话器的传感器数据中产生间隙
[0072]
·
相机测量结果延迟(即测量结果是在过去进行的)
[0073]
·
当需要将空间音频发送到头戴式受话器播放时,返回路径上的bt延迟,这意味着需要对相对姿态进行前向预测
[0074]
·
出于功耗原因,相机测量处于低赫兹(例如1hz),并且相机的面部跟踪在许多情况下可能会失败(例如,人脸不在视野中,rgb模式下的低光)
[0075]
·
可能存在长时间段的缺失锚点信号,在不减轻的情况下,来自imu的姿态估计(尤其是位置)将在没有边界的情况下二次漂移
[0076]
·
当相机坐标系中的面部位置从一个坐标系大幅移动到下一坐标系时,facekit的面部姿态误差很大,这意味着我们的算法需要在两个坐标系之间出现较大的面部位置跳跃时丢弃任何锚点测量结果。这种效果在低hz锚点时更加明显,因为受试者有更多的时间在下一坐标系之前移动。在应用这些门控条件之后所得的锚点校正率将更低。
[0077]
·
相机锚点测量跟踪相对于相机坐标系的面部坐标系,这与源设备和头戴式受话器设备上的imu坐标系不匹配
[0078]
·
锚点测量需要转换才能在imu坐标系中使用
[0079]
·
头戴式受话器位置在由不同用户佩戴时变化,或者可在使用期间移位。这要求在头部跟踪会话中主动估计面部坐标系到头戴式受话器imu坐标系变换qf<

b
[0080]
·
空间音频需要将声源放置在相对于用户头部的位置,这与相机锚点测量跟踪的面部坐标系不匹配
[0081]
·
面部坐标系到头部坐标系的变换是不可观察的,并引入了静态视线/相对位置误差
[0082]
·
对于给定用户,面部到头部的变换不会改变,但根据对象的面部几何形状而因对象而异。面部坐标系相对于头部的倾斜取决于用户眼睛相对于他们嘴部的嵌入程度。
[0083]
·
这可通过“居中”过程来减轻,其中每当用户直接在设备前方并查看屏幕时,我们校准面部到头部变换。可基于面部姿态阈值来对居中会话进行门控。
[0084]
·
当估计的姿态或位置发生较大的修正时,需要专门过滤修正以实现平滑的用户感知
[0085]
·
空间音频需要相对于用户的头部放置声源,这与相机锚点测量所跟踪的面部坐标系不匹配
[0086]
·
面部坐标系到头部坐标系的变换是不可观察的,并引入了静态视线/相对位置
误差
[0087]
·
对于给定用户,面部到头部的变换不会改变,但根据对象的面部几何形状而因对象而异。面部坐标系相对于头部的倾斜取决于用户眼睛相对于他们嘴部的嵌入程度。
[0088]
·
这可通过“居中”过程来减轻,其中每当用户直接在设备前方并查看屏幕时,我们校准面部到头部变换。可基于面部姿态阈值来对居中会话进行门控。
[0089]
·
当估计的姿态或位置发生较大的修正时,需要专门过滤修正以实现平滑的用户感知
[0090]
对于这些推导,存在定义如下的若干坐标系:
[0091]
·
c:附接到源设备的相机坐标系
[0092]
·
f:相机生成的面部坐标系
[0093]
·
h:头部坐标系居中在用户头部中,在耳朵之间
[0094]
·
b:头戴式受话器的主体坐标系
[0095]
·
s:源设备的主体坐标系
[0096]
·
i:惯性参考坐标系
[0097]
符号
[0098]
位置:表示从坐标系a的原点到坐标系b的原点的向量,以x坐标系坐标表示。
[0099]
旋转速率:表示坐标系b相对于坐标系a的旋转速率,以x坐标系测量或表示。
[0100]
角加速度:α
b/a
表示坐标系b相对于坐标系a的角加速度
[0101]
导数:表示x相对于坐标系a的导数。对于速度v和加速度a,前面的上标表示取导数的坐标系。例如是b坐标系中表示的p相对于位置0的惯性加速度。
[0102]
取向:r
b

a
表示从坐标系a到坐标系b的旋转,使得坐标系b中表示的坐标系a中的点p
a
为:p
b
=r
b

a
p
a
使用四元数表达式的相同旋转为q
b

a

[0103]
可用的运动学
[0104]
此处为用于以下推导的一些运动学等式:
[0105]
为了将在坐标系a中获取的向量r的导数与在坐标系b中获取的导数相关联,使用下面给出的传输等式:
[0106][0107]
通过使用传输等式两次来将对象p的位置相对于旋转坐标系b中的位置0双重微分,得到以下惯性坐标系i中加速度的等式:
[0108][0109]
其中最后三项是来自描述旋转坐标系中的运动的运动学效果。第二项来自b坐标系的角加速度,第三项是科里奥利加速度,并且最后项是向心加速度。
[0110]
基本设置
[0111]
根据我们对空间音频跟踪的当前理解,目标是跟踪从头部坐标系到源设备(的中心)的“视线”向量,即设备在头部参考坐标系中的相对位置。现在我们假设源设备的中心在
设备传感器坐标系s的原点处。那么,感兴趣的相对位置向量为其为从h坐标系的原点到s坐标系的原点的向量,在h坐标系中解析。
[0112]
假设我们知道c坐标系和s坐标系之间的刚性关系:
[0113]
以及h坐标系与f坐标系之间的刚
[0114]
性关系:r
h

s
=r
f

s

[0115]
以及h坐标系与b坐标系之间的刚
[0116]
性关系:r
b

h
=r
b

f
[0117]
从s和b处的imu,我们获得以下传感器输出:源设备相对于惯性坐标系的旋转源设备在s坐标系中的惯性加速度b515相对于惯性坐标系的旋转以及b515设备在b坐标系中的惯性加速度需注意,这些ω表示偏置补偿角速率,而不是原始陀螺仪输出。
[0118]
估计的量(即,ekf状态向量):
[0119][0120]
估计的量是从s坐标系的角度来看b坐标系的相对位置、速度和取向。我们选择估计这些量,因为imu输出在s坐标系和b坐标系中。
[0121]
由于摄像机测量是在c坐标系中进行的,因此将需要将它们转换成s坐标系以进行测量更新:
[0122]
·
变换相机旋转:
[0123]
r
s

b
(t)=r
s

c
r
c

f
(t)r
f

b
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0124]
其中r
c

f
(t)为在时间t处测量的相机相对旋转。
[0125]
·
变换相机位置:
[0126][0127]
其中为在时间t处相机测量的面部位置。
[0128]
现在,一旦我们可以估计和跟踪r
s

b
和我们就可以如下表达目标相对位置向量:
[0129][0130]
其中r
h

b
=r
f

b
假设为刚性且已知的,假设为恒定且已知的。
[0131]
相对位置
[0132]
在s坐标系中进行估计的相对位置为对应的相对速度和加速度为和(从源设备的角度来看的速度和加速度)。
[0133]
通过应用两次传输规则,可将相对于s坐标系的加速度与惯性加速度相关联(参见等式2):
[0134][0135]
如每个项右侧的上标s所示,所有量均以s坐标系坐标表示。
[0136]
相对位置和速度和是估计的量。我们得到来自源设备上的陀螺仪的并
且可从导出角加速度
[0137]
是以s坐标系表示的相对于源设备的惯性加速度,其可写为:
[0138][0139]
其中为在惯性坐标系中测得的b坐标系的惯性加速度,并且被类似地定义。这些量与它们各自的imu加速计测量结果相关,如下所述:
[0140][0141][0142]
其中和分别为来自和源设备的加速度计测量结果,并且为惯性坐标系中表示的重力加速度。收集上述等式,我们可将相对加速度项写成如下:
[0143][0144]
需注意,为源设备中表示的重力向量,其在通过r
s

b
应用于的变换之后抵消
[0145]
假设在小时间间隔(即,更新时间间隔δt)内恒定则我们可丢弃角加速度项
[0146]
相对加速度的最终表达式为:
[0147][0148]
*如果您不太熟悉传输规则,则也可通过将相对位置等式微分两次来导出以上等式:
[0149]
相对姿态
[0150]
b坐标系与s坐标系之间的相对姿态可类似地根据相对于惯性坐标系的姿态来表示
[0151][0152]
可通过获取时间导数来导出相对姿态动力学
[0153][0154]
其中在第三行和最后一行之间使用四元数旋转矩阵标识
[0155]
状态和状态传播
[0156]
调用状态向量为
[0157][0158]
状态传播等式
[0159]
为:
[0160][0161][0162]
其中α
k
∈[0 1]为旨在抑制所跟踪位置的潜在漂移的缩放因数。
[0163]
其值应基于相对加速度的大小。
[0164][0165]
上述使用四元数积分规则,其中并且
[0166][0167]
误差传播
[0168]
给定状态向量x=[r v q]
t
和状态动力学等式我们可导出具有状态误差向量δx的误差状态动力学:
[0169]
δx=[δr δv δq]
t
[0170]
我们的过程噪声向量w取决于我们的加速度计和陀螺仪中的测量结果误差。对于已经减去了偏置量的陀螺仪测量结果和我们得到:
[0171][0172]
项n
b
和n
w
为陀螺仪偏置过程噪声和陀螺仪传感器噪声,它们为0均值高斯随机变量。
[0173]
将加速度计误差定义如下:
[0174][0175]
项和分别为和源设备的残差加速度计偏差。项和分别为b和源设备上的加速度计传感器噪声。
[0176]
鉴于上述情况,我们得到:
[0177][0178]
其中q为过程噪声协方差,并且w

n(0,q)。
[0179]
为了便于下面的推导,我们可以通过四元数的向量和标量部分来表示四元数:
[0180][0181]
其中e为旋转的特征轴,并且θ为旋转的特征角。如下面将看到的,假设θ较小,我们将误差状态下的δq替换为δqv。跟踪δq
v
允许下一部分中相对四元数的乘法测量更新。
[0182]
我们估计中的误差(表示为δq)可写为:
[0183][0184]
得自等式:(10),我们得到:
[0185][0186][0187]
将上文代入等式(14)中,我们得到
[0188][0189]
使用等式(11),等式(15)变为以下内容:
[0190][0191]
假设姿态误差小,我们将有||δq
v
||≈0和δq
s
≈1,则等式(16)可通过如下丢弃高阶项来简化:
[0192][0193]
现在让我们导出r和v的误差状态:
[0194][0195][0196]
接下来,我们将根据δx线性化等式(19)。
[0197][0198]
我们可将等式(19)与等式(19a)以及等式(11)、等式(12)扩展成以下内容:
[0199][0200]
我们可用以下等式线性化δv中的r(q)相关项:
[0201]
r(δq)=((δq
s2

δq
vt
δq
v
)i3×3‑
2δq
s
[δq
v
×
]+2δq
v
δq
vt
)≈i3×3‑
2[δq
v
×
]
[0202][0203]
将等式(19b)中的r(q)替换为上文所述,我们得到:
[0204][0205]
收集等式(17)至(19)并重写δx=[δr δv δq
v
]
t
,准备写出线性状态误差动力学模型中的矩阵f和g:
[0206][0207]
其中
[0208][0209]
我们将需要根据δx线性化等式(17),这将允许我们写下状态误差动力学模型δx=fδx中的f矩阵。使用x处的1级泰勒级数来线性化f(x):令
[0210][0211][0212][0213]
现在导出
[0214]
[0215]
收集等式(15)至(17)并重写δx=[δr δv δq
v
]
t
,准备写出线性状态误差动力学模型中的矩阵f:
[0216][0217]
其中来自等式(17c),通过丢弃对应于δqs的项。
[0218]
现在利用我们刚导出的连续误差状态动力学模型:我们可通过离散化获得状态过渡矩阵φ和过程噪声映射矩阵l(参见页面末尾关于离散化的参考):
[0219][0220]
x
k+1
=φ
k
x
k
+l
k
w
[0221][0222][0223]
最后,根据下式传播误差协方差p:
[0224][0225]
对于误差传播,我们将根据乘法扩展卡尔曼滤波器公式跟踪相对姿态的吉布斯向量表示的变化δg,而不是使用相对四元数。注意

对所估计的四元数的附加更新将更快地违反单位范数约束,这就是我们选择使用乘法姿态更新代替的原因。查看乘法更新到四元数状态的测量更新部分。
[0226]
吉布斯向量姿态表示为:
[0227]
g=e tan(θ/2)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0228]
其中e为旋转的特征轴,并且θ为旋转的特征角。由于四元数由下式给出:
[0229]
q=[q
v q
s
]
t
=[e sin(θ/2) cos(θ/2)]
t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0230]
吉布斯向量通过以下关系与四元数相关:
[0231]
知以吉布斯向量将写为:
[0232]
[0233]
取吉布斯向量的导数,得到:
[0234][0235]
将等式(15)和来自等式(8)的相对状态动力学组合,得到:
[0236][0237]
其中w(t)为状态中的误差,其被建模为w(t)~n(0,q(t)),其中q(t)为捕获由于外部干扰和未建模动态导致的状态中的不确定性的过程噪声。
[0238]
由此,我们得到:
[0239][0240]
通过在x处取泰勒级数展开并忽略高阶项来线性化,我们得到:
[0241][0242]
将f表示为f相对于状态的导数,得到:
[0243][0244]
需注意,以吉布斯向量g(在页面末尾的参考文献中给出)表示r,我们得到:
[0245]
其中
[0246][0247]
协方差根据以下公式传播:
[0248][0249]
从锚点更新测量结果
[0250]
相机提供面部坐标系和相机坐标系中的相对位置和姿态的测量结果。通过应用上面等式3和等式4中的变换以便在与源设备的imu坐标系中获得这些测量结果,我们在每个测量时间戳t
k
处获得和的测量结果。每当我们获得相机测量结果时,相对位置残差由下式给出:
[0251][0252]
其中
λ
表示估计的量,并且

表示测量的量。残差是测量量与估计量之间的差值。
[0253]
为了约束速度漂移,我们还可以根据相机测量的相对位置提供速度更新:
[0254][0255]
误差四元数δq由下式给出:
[0256][0257]
状态校正向量为:
[0258][0259]
其中卡尔曼
[0260]
增益k
9x9

[0261]
下式给出:
[0262][0263]
其中r
k
为测量噪声协方差矩阵。
[0264]
灵敏度矩阵h将测量结果y
k
映射到状态,其中测量结果由下式给出:
[0265][0266]
测量误差v(f)被建模为零均值高斯噪声:v(t)

n(0,r)。r为测量结果误差的协方差。灵敏度矩阵由下式给出:
[0267][0268]
根据下式更新所估计的相对位置:
[0269][0270]
根据下式更新所估计的相对速度:
[0271][0272]
并且根据下式更新所估计的相对姿态:
[0273]
其中在每次测量更新之后,根据下式更新协方差:
[0274][0275]
在静止条件下伺机校正
[0276]
零速度更新
[0277]
在静态的某些门控条件下,例如当具有接近单位的量值和低方差,并且量值低于某个最大阈值(这可能不是必需的)时,我们可以假设相对速度$\mathbf{v}$接近0。该校正的增益将取决于测量噪声项r
zv
,该测量噪声项将取决于源设备和b515设备上的相应加速度计的噪声,并且可能更适当地,取决于我们用于测试静态条件的加速度计量值缓冲器的方差。
[0278]
δv
k
,对v
k
的校正以及状态校正向量为:
[0279][0280]
其中灵敏度矩阵h
zv
和卡尔曼增益k
zv
由下式给出:
[0281][0282]
其中r
zv
为用于该零速度更新的测量噪声项。然后根据等式(28)应用速度状态更新,并根据等式(30)更新状态协方差。
[0283]
相对重力更新
[0284]
当源和imu两者均处于静态条件下时,归一化加速度计读数近似于其相应坐标系中的局部重力向量。我们可使用这些近似的重力向量来提供对相对姿态估计r(q)的校正。这也可扩展到仅设备中的一个设备处于静态条件的场景。在这种情况下,我们可使用来自移动设备的六轴dm的重力估计。
[0285]
如前所述,和是来自源和imu的原始加速度计读数,表示分别在(源)s坐标系和b坐标系中表示的重力向量。在静态条件下,我们得到:
[0286][0287][0288]
其中和如等式(17a)中所定义,分别表示imu上的加速度计偏差和噪声。当偏差项可忽略不计时,假设为白色和高斯,并且通过和建模。
[0289]
2个重力向量之间的关系由真实相对姿态r(q)=r
s

b
获得,该真实相对姿态继而将测量结果和相关联:
[0290][0291]
由估计的相对姿态矩阵估计的可与等式(32)一起使用以导出误差δu
s
,该误差δu
s
可用于如下校正
[0292][0293]
使用等式和r(δq)=((δq
s2

δq
vt
δq
v
)i3×3‑
2δq
s
[δq
v
×
]+2δq
v
δq
vt
)≈i3×3‑
2[δq
v
×
],我们可将等式(43)重写为:
[0294][0295]
其中
[0296]
以及
[0297]
h
rg
为该测量更新的灵敏度矩阵,并且c
rg
为加速度计测量误差w
a
的成形矩阵。现在我们对状态向量进行以下测量更新:
[0298][0299]
其中r
rg
为测量噪声协方差:给定的估计相对姿态可根据等式(29)更新,并且误差协方差应根据等式(30)更新。
[0300]
车辆和行人条件下的测量更新
[0301]
当源设备和头部设备(例如,在车辆中或行走时手持源设备的用户)之间存在相关运动时,我们也应当进行零速度测量更新和相对重力更新。
[0302]
车辆和行人相关运动检测
[0303]
我们可以利用ios源设备上车辆和行走的活动检测作为相关运动的先验。在此类
现有条件下,我们可进一步检查相对旋转的量值和相对加速度的量值是低的:
[0304]
另外,还可以对两个设备发出的lpf加速度信号的量值进行进一步检查,使其接近统一。
[0305]
零速度更新
[0306]
在相关运动的条件下,我们可以根据等式(40)和(41)进行相同的零速度测量更新,测量噪声应基于相关运动检测的置信度或质量度量。
[0307]
相对重力更新
[0308]
我们可以根据等式(44)和(45)进行类似的相对重力更新,其中根据源设备和头部设备的低通加速度读数计算得出(*)和(*)。我们不应使用瞬时归一化加速度测量的原因在于,相关运动在它们之间可能具有非常好的相位滞后,这将在相对重力更新中引入不良误差。
[0309]
无锚点测量更新(bleed

to

zero)
[0310]
在不存在相机锚点的情况下,我们将需要作出一些假设以便馈送校正以抑制估计漂移。
[0311]
假设
[0312]
相对姿态:
[0313]
存在相对偏航角为180
°
的默认姿态。我们希望保持相对俯仰和翻滚,并且仅更新偏航。尚不立即清楚我们如何通过线性化更新来实现这一点。因此,我们可以将此视为一个2步过程:
[0314]
1.利用来自s坐标系和b坐标系的当前重力测量值计算重力对准r
s

b
,将其表示为将残差表示为δq1[0315]
2.使用通过将f坐标系+z与s坐标系

z对准来计算偏航残差,将残差表示为δq2。
[0316]
3.总相对姿态残差为:
[0317]
步骤1为相对重力更新。
[0318]
步骤2得自下文:
[0319][0320]
其中表示以s坐标系表示的f坐标系中的(测量的)正z轴,并且为预期(校正之前)量。基于两者之间的差值来计算残差。
[0321]
为了使偏航校正不违反相对重力约束条件,我们需要将两个向量投影到s坐标系中的水平面上(通过沿gs截取分量)。然后可以在两个投影向量之间计算四元数残
差。
[0322]
相对位置:
[0323]
相对位置默认为沿+z轴距源设备1米(即,s坐标系):
[0324][0325]
其中假设为已知且恒定的。
[0326]
·
在源设备和附件设备均在某个时间阈值之外为静态的条件下,我们假设用户正以默认姿势面向源设备。此时,可将当前姿态估计与默认姿态进行比较以生成校正,从而使姿态估计朝向默认姿态。
[0327]
测量更新
[0328]
·
通过使用等式(50)并计算残差δd并用(*)更新所估计的相对姿态(*)并将其与r和r相关联。
[0329][0330]
坐标系旋转使匹配所需的δq可通过取以下两个向量的交叉乘积来推导:
[0331]
作为旋转轴(需注意,交叉乘积的顺序反映了我们正在旋转坐标系而不是向量的事实),并且旋转角度θ为两个向量之间的角度。
[0332]
·
通过使用公式(51)用δr更新估计的相对位置
[0333][0334]
由于我们不具有bleed

to

zero的真实测量模型,因此我们可手动控制收敛速度。此类“输入成形”理想地应通过提供中间虚拟视轴锚点而与视轴向量一起发生。
[0335]
收集等式(52)和等式(53)中的更新,我们得到以下测量更新:
[0336][0337]
上述更新的测量噪声n
b0
~n(0,r
b0
)可被设计为将收敛速度调制到默认姿态。可能的是,校正可能较大,这将违反我们对正确校正的假设(即δq较小),应过滤残差(δq
k
和δr
k
)以产生较小且感知上有效的校正。
[0338]
卡尔曼滤波器设置(伪代码)
[0339]
相关矩阵汇总
[0340][0341][0342][0343]
[0344][0345]
l
k
=g
k
δt
[0346][0347]
σ
r,cam
以及σ
q,cam
分别为相对位置和相对取向(作为3d向量)的相机测量中的不确定性。
[0348]
初始化
[0349][0350][0351]
其中和为启动时来自相机的测量的相对位置和姿态。假设初始相对速度为0,方差var[v(t0)]可使用启动时的最大预期相对平移速度来近似。
[0352]
如果我们在初始化滤波器时未启动相机,则我们可以猜测初始相对位置和取向,并设定一些较大的初始不确定性。例如,我们可以假设设备一开始是对齐的,这样用户就可以看到与用户相距约一臂的源设备。需注意,然而,如果我们对初始姿势/位置的假设是严重错误的,则滤波器可发散。
[0353]
传播
[0354]
随时间传播状态和误差协方差矩阵前向δt。
[0355][0356][0357][0358]
计算校正
[0359][0360]
[0361][0362][0363]
更新状态
[0364][0365][0366][0367]
更新协方差
[0368][0369]
估计r
f

b
:f坐标系与b坐标系之间的旋转变换
[0370]
由于旋转变换r
f

b
用于变换相机姿态测量结果,以及将我们的估计变换为r
s/f
(或r
s/h
)的最终目标,因此重要的是我们要有相当准确的估计。
[0371]
因为用户有可能将他们的头戴式受话器佩戴在他们的头部上的不同位置,例如向前或向后倾斜等,所以我们最好的办法是为会话中的每个用户估计它。
[0372]
在假设源设备是静态的情况下,我们可将估计问题视为手眼校准问题,其中δ相机面部姿态测量结果与来自头戴式受话器imu的δ(6轴)姿态之间的对应关系由2个不同的头部姿态生成:
[0373][0374][0375]
δr
f

c
r
f

b
=r
f

b
δr
b

i
,其中
[0376]
上文给出了规范的手眼校准形式ax=xb,其中x可用各种方法估计。然而,以上意味着我们将很可能需要校准阶段,其中源设备在用户在相机视图中移动他们的头部时保持静止,这是不期望的。然而,我们确实可以从源设备imu获得更多信息,这将允许我们至少在尖端倾斜方向上利用相机来估计r
f

b
,而无需用户移动。当源设备或头戴式受话器设备中的任一者或两者移动时,可估计更多。这些基于2个imu上的重力估计。此外,r
f

b
的估计可简单地用另一个eki(其中q
f

b
为状态)来完成,并且测量更新基于以下各项:
[0377][0378]
其中和为s坐标系和b坐标系中的重力向量,它们在静态条件下可观察到,或者,我们可以使用来自六轴dm的重力估计
[0379]
[0380]
鉴于此,
[0381][0382][0383][0384][0385]
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1