首页> 中国专利> 陀螺仪调节及陀螺仪相机对准

陀螺仪调节及陀螺仪相机对准

摘要

本发明揭示用于使用相机姿态及陀螺仪旋转产生用于例如扩增实境应用AR app等应用的参数的设备及方法。基于来自图像的姿态及来自陀螺仪的旋转(例如,使用最小二乘估计以及QR因式分解或卡尔曼滤波器)估计参数。所述参数指示旋转、尺度及/或非正交性参数及任选地陀螺仪偏移误差。另外,所述尺度及非正交性参数可用于调节原始陀螺仪测量以补偿尺度及非正交性。

著录项

  • 公开/公告号CN104718431A

    专利类型发明专利

  • 公开/公告日2015-06-17

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN201380052981.8

  • 申请日2013-09-13

  • 分类号G01C25/00(20060101);G06T7/00(20060101);G06T7/20(20060101);

  • 代理机构11287 北京律盟知识产权代理有限责任公司;

  • 代理人宋献涛

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 09:13:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-03

    未缴年费专利权终止 IPC(主分类):G01C25/00 授权公告日:20161012 终止日期:20180913 申请日:20130913

    专利权的终止

  • 2016-10-12

    授权

    授权

  • 2015-09-23

    实质审查的生效 IPC(主分类):G01C25/00 申请日:20130913

    实质审查的生效

  • 2015-06-17

    公开

    公开

说明书

相关申请案的交叉参考

本申请案主张于2012年10月12日申请且标题为“陀螺仪调节及陀螺仪相机对准(Gyroscope conditioning and gyro-camera alignment)”的第13/651,055号美国申请案的优先权,所述申请案以全文引用的方式并入本文中。

技术领域

本发明涉及用于产生用于例如扩增实境应用的应用中且在一些方面用于调节陀螺仪测量的参数的系统、设备及方法。

背景技术

数目逐渐增加的现代智能电话包含一或多个相机及各种传感器。感测运动的例如陀螺仪及加速度计等惯性传感器尤其重要(这是归因于其测量角速度及加速度的能力),且处于高取样率下。这些传感器可用以增强智能电话上的扩增实境(AR)应用。在基于参考的跟踪中,跟踪失败的主要原因包含快速旋转及相对于目标的相机漂移。陀螺仪可在相机相关跟踪失败的时段期间帮助维持对目标的跟踪。然而,常常难以调节陀螺仪以例如准确地校准陀螺仪相对于相机的对准,且确定陀螺仪的尺度及非正交性参数。

因此,存在获得及维持陀螺仪的准确校准的需要。陀螺仪的准确及低成本校准可有益地适用于例如AR应用等多种应用。

发明内容

根据一些方面,揭示一种在移动装置中用于产生用于移动装置的应用的参数的方法,所述方法包括:从相机接收图像的序列;将计算机视觉算法应用于图像的序列以产生姿态角信息;从陀螺仪测量的序列估计陀螺仪信息;及处理姿态角信息及陀螺仪信息以导出适用于所述应用的以下各者中的至少两者:(1)旋转信息、(2)尺度信息及(3)非正交性信息。在一些方面,所述方法包括处理姿态角信息及陀螺仪信息以导出适用于所述应用的旋转信息、尺度信息及非正交性信息。

根据一些方面,揭示一种用于产生用于移动装置的应用的参数的移动装置,所述移动装置包括:经配置以提供图像的序列的相机;经配置以产生陀螺仪测量的序列的陀螺仪;及耦合到相机及陀螺仪的处理器,其中处理器包括:经耦合以从相机接收图像的序列的计算机视觉模块,其中计算机视觉模块基于图像的序列产生姿态角信息;用以从陀螺仪测量的序列产生陀螺仪信息的角速度模块;及经耦合以从计算机视觉模块接收姿态角信息且经耦合以从角速度模块接收陀螺仪信息的参数估计模块,其中参数估计模块导出适用于移动装置的所述应用的旋转信息、尺度信息及非正交性信息中的至少两者。

根据一些方面,揭示一种用于产生用于移动装置的应用的参数的移动装置,所述移动装置包括:用于从相机接收图像的序列的装置;用于将计算机视觉算法应用于图像的序列以产生姿态角信息的装置;用于从陀螺仪测量的序列估计陀螺仪信息的装置;及用于处理姿态角信息及陀螺仪信息以导出适用于移动装置的所述应用的旋转信息、尺度信息及非正交性信息中的至少两者的装置。在一些方面,所述用于处理的装置包括用于处理姿态角信息及陀螺仪信息以导出适用于移动装置的所述应用的旋转信息、尺度信息及非正交性信息的装置。

根据一些方面,揭示一种用于产生用于移动装置的应用的参数的移动装置,所述移动装置包括处理器及存储器,其中存储器包含用于进行以下操作的指令:从相机接收图像的序列;将计算机视觉算法应用于图像的序列以产生姿态角信息;从陀螺仪测量的序列估计陀螺仪信息;及处理姿态角信息及陀螺仪信息以导出适用于移动装置的所述应用的旋转信息、尺度信息及非正交性信息。

根据一些方面,揭示一种包含存储于其上的程序代码的非暂时性计算机可读存储媒体,所述计算机可读存储媒体用于产生用于移动装置的应用的参数,所述程序代码包括用于进行以下操作的程序代码:从相机接收图像的序列;将计算机视觉算法应用于图像的序列以产生姿态角信息;从陀螺仪测量的序列估计陀螺仪信息;及处理姿态角信息及陀螺仪信息以导出适用于移动装置的所述应用的旋转信息、尺度信息及非正交性信息中的至少两者。在一些方面,所述用于处理的程序代码包括用于处理姿态角信息及陀螺仪信息以导出适用于移动装置的所述应用的旋转信息、尺度信息及非正交性信息的程序代码。

应理解,对于所属领域的技术人员来说,其它方面将从以下详细描述变得容易显而易见,其中借助于说明展示及描述各个方面。图式和详细描述将被视为本质上是说明性的而非限制性的。

附图说明

仅借助于实例,下文参看图式描述各种实施例。

图1展示以与所揭示实施例一致的方式能够产生旋转矩阵(Rcb)及尺度及非正交性矩阵(A)及任选地陀螺仪偏移误差(ωbias)的示范性移动装置的简化框图。

图2为以与所揭示实施例一致的方式包括处理器及耦合到处理器的多种其它模块的示范性移动台的框图。

图3展示详述示范性参数估计模块的一些功能的框图。

图4展示复合矩阵(B)及正交旋转矩阵(Rcb)以及尺度及非正交性矩阵(A)之间的关系。

图5展示移动装置中的用于产生用于移动装置的应用的参数的方法。

图6展示说明以与所揭示实施例一致的方式使用QR因式分解从图像的序列及陀螺仪测量的序列导出旋转矩阵(Rcb)及尺度及非正交性矩阵(A)的示范性方法的流程图。

图7展示与所揭示实施例一致的额外示范性参数估计模块的框图。

图8展示描述移动装置中的各种参数之间的关系的等式集合。

图9展示说明以与所揭示实施例一致的方式通过使用卡尔曼滤波器从图像的序列及陀螺仪测量的序列导出旋转矩阵(Rcb)及尺度及非正交性矩阵(A)及任选地陀螺仪偏移误差(ωbias)的示范性方法的流程图。

具体实施方式

以下结合附图而陈述的详细描述希望作为对本发明的各个方面的描述,而不希望表示其中可实践本发明的仅有方面。提供本发明中所描述的每一方面仅作为本发明的实例或说明,且其不应必然地解释为比其它方面优选或有利。详细描述包含用于提供对本发明的彻底理解的目的的特定细节。然而,所属领域的技术人员将明白,可在没有这些特定细节的情况下实践本发明。在一些例子中,以框图的形式展示众所周知的结构和装置以便避免混淆本发明的概念。首字母缩写词和其它描述性术语可仅出于便利和清楚的目的而使用,且不希望限制本发明的范围。

如本文中所使用,有时被称作移动台(MS)或用户设备(UE)的移动装置可包括蜂窝式电话、移动电话或其它无线通信装置、个人通信系统(PCS)装置、个人导航装置(PND)、个人信息管理器(PIM)、个人数字助理(PDA)、平板、膝上型计算机或能够俘获或接收图像且能够测量或获得陀螺仪信息的其它合适移动装置。在一些实施例中,移动台能够接收无线通信及/或导航信号。术语“移动台”还意欲包含例如通过短程无线、红外、有线连接或其它连接与个人导航装置(PND)通信(而不管在装置处或在PND处是否发生卫星信号接收、辅助数据接收及/或位置相关处理)的装置。而且,“移动台”意欲包含能够例如经由因特网、WiFi或其它网络与服务器通信的所有装置,包含无线通信装置、计算机、膝上型计算机等,且不管在装置处、在服务器处或在与网络相关联的另一装置处是否发生卫星信号接收、辅助数据接收及/或位置相关处理。因此,移动装置可例如使用蜂窝式或WiFi技术与一或多个其它装置无线地通信,但在其它实施例中可省略此功能性。以上的任何可操作组合还被视为“移动装置”。

本文中的教示使通过处理来自相机的相机图像的序列及来自陀螺仪的陀螺仪测量的序列而产生旋转、尺度及/或非正交性参数成为可能。旋转、尺度及非正交性参数可用于扩增实境应用(其被称作AR应用或AR app)。这些产生的参数也可用于调节来自在智能电话或平板或其它移动装置中发现的陀螺仪的内部陀螺仪测量,而不需要工厂校准或外部设备。校准或调节可仅使用来自相机的图像的序列中的跟踪特征的姿态测量以及陀螺仪测量。

AR应用通常提供用户互动式体验,其是对现实世界情境的补充,而非创建类似人工环境的虚拟现实。在AR中,用户的周围环境可形成用于由计算机产生的图形及其它类型的注解及动画扩增的背景幕。

在一些实施例中,姿态(从通过计算机视觉算法的图像的序列产生)及陀螺仪向量的序列(从原始陀螺仪测量产生)可用以解决移动装置未对准以及调节原始陀螺仪测量,从而考虑关于原始陀螺仪测量的尺度及非正交性误差。通过复合矩阵(B)使计算机视觉姿态(即,姿态角向量(ωcam))与陀螺仪测量相关,所述复合矩阵(B)为线性系统的解。

可通过包含QR因式分解(也被称作QR分解)的若干方法执行复合矩阵(B)的分解。在QR因式分解中,分解将复合矩阵(B)分成正交旋转矩阵(Rcb)及上三角矩阵(A)(也被称作尺度及非正交性矩阵(A))。上三角矩阵(A)包含可用以校准后续陀螺仪测量的尺度及非正交性调整两者。

在一些实施例中,可应用卡尔曼滤波以导出尺度及非正交性参数。在卡尔曼滤波中,卡尔曼滤波器(例如,递归扩展卡尔曼滤波器(EKF))使用姿态角旋转(ωcam)及平移(T)两者连同陀螺仪向量一起估计由尺度及非正交性矩阵(A)及旋转矩阵(Rcb)构成的状态空间。除了旋转(ωcam)之外还使用计算机视觉姿态的平移(T)可提升AR app中的准确性。

图1展示以与所揭示实施例一致的方式能够产生旋转矩阵(Rcb)及尺度及非正交性矩阵(A)的示范性移动装置10的简化框图。在一些实施例中,移动装置10可包括示范性相机100及陀螺仪200,其皆可耦合到示范性处理器300。相机100可俘获在各种时间点处的图像的序列。在一些实施例中,相机100可能够俘获各种分辨率及/或帧速率的静态及视频图像。

在一些实施例中,相机100可耦合到一或多个经校准传感器,所述经校准传感器可提供关于目标相对于相机轴的定向的信息。这些传感器可包含(但不限于)定向传感器、磁场传感器等。由相机100俘获的图像的序列可存储于可由处理器300存取的存储器及/或图像缓冲器及/或视频缓冲器中。在一些实施例中,相机100可独立地俘获在各种时间点处的图像,且将图像发送到处理器。

在一些实施例中,处理器300可能够部分基于由相机100俘获的图像中所提供的信息计算姿态。在一些实施例中,处理器300还可使用来自耦合到相机100的传感器的信息。术语“姿态”用以指示相机相对于目标的位置及定向。举例来说,在跨越多个图像帧跟踪目标时,图像帧中的一者可用作参考帧,且用于图像序列中的其它帧的姿态可表达为参考帧的函数。用于图像序列的相机定向信息可表达为姿态角向量的序列(ωcam)。在一些实施例中,并非所有帧均可具有姿态估计。举例来说,处理器可跳过若干帧,且也可存在间歇的消隐周期。

对于3-D图像表示,姿态角向量(ωcam)可包括三个分量:每一维度一个分量。另外,处理器300还可使用图像的序列中的特征及从耦合到相机100的传感器获得的信息计算相机相对于参考帧中的相机的位置的平移或空间位移。在一些实施例中,用于图像的序列中的每对图像的平移可存储于平移矩阵(T)中。

陀螺仪200可俘获原始测量的序列(ωgyro-meas),其可包含原始角速度测量。如稍后将描述,陀螺仪200可充当用于导出旋转信息的装置、用于接收尺度及非正交性矩阵的装置及/或用于使用尺度及非正交性矩阵校准原始陀螺仪测量的序列的装置。在其他实施例中,代替陀螺仪200或除了陀螺仪200之外,可使用一或多个其它元件来实施此些装置。在一些实施例中,可在移动装置10上的系统时钟的可配置数目个时钟循环之后及/或以常规时间间隔提供原始陀螺仪测量(ωgyro-meas)。在一些实施例中,原始角速度测量可包括三个分量,例如x、y及z轴中的每一者一个分量。在一些实施例中,原始陀螺仪测量的序列(ωgyro-meas)可存储于可由处理器300存取的缓冲器(未图示)中。

一般来说,处理器300可为中央处理单元(CPU)、多核心CPU、微处理器、微控制器、专用集成电路(ASIC)、嵌入式处理器、数字信号处理器(DSP)或能够在移动装置10中操作及执行本文中所揭示的功能的任何其它处理器。处理器300可能够以与本文中所揭示的实施例一致的方式执行存储器中、固件中及/或来自耦合到移动装置10的媒体的程序代码。

在一些实施例中,处理器300可处理陀螺仪测量的经缓冲序列(ω'gyro-meas)以估计陀螺仪向量的序列(ωgyro),以使得陀螺仪向量的序列(ωgyro)及姿态角向量的序列(ωcam)及时同步。在一些实施例中,陀螺仪向量的序列(ωgyro)可各自包含三个分量:x、y及z轴中的每一者一个分量。在一些实施例中,图像的序列及陀螺仪向量的序列(ωgyro)可被加上时间戳或以其它方式编索引,从而准许姿态角向量(ωcam)与具有对应陀螺仪向量(ωgyro)的图像的关联。

原始陀螺仪测量(ωgyro-meas)通常患有误差。举例来说,陀螺仪200的轴可相对于彼此以很小的量非正交,这可能影响原始角速度测量(ωgyro-meas)的准确性,且造成非正交性误差。另外,例如陀螺仪200等陀螺仪还可展现其它确定性误差,例如偏移及尺度误差。例如在陀螺仪200寄存某一原始非零陀螺仪(角速度)测量(ωgyro-meas=ωbias≠0)时,在陀螺仪200事实上不旋转(ωtrue=0)时,可产生陀螺仪偏移误差(ωbias),其中ωtrue为真陀螺仪(角速度)测量。在补偿偏移之后,如果陀螺仪200寄存原始陀螺仪(角速度)测量(ωgyro-meas,其中ωgyro-meas=αωtrue),那么“α”被称作比例因子或尺度误差。在一些实施例中,原始陀螺仪测量的序列(ωgyro-meas)可在被存储于缓冲器中之前进行处理。

在一些实施例中,处理器300可使用姿态角向量的序列(ωcam)及陀螺仪向量的序列(ωgyro)来计算正交旋转矩阵Rcb及/或尺度及非正交性矩阵(A)。在一些实施例中,偏移误差(ωbias)也可由处理器300任选地估计,如图1中的虚线箭头所指示。在一些实施例中,尺度及非正交性矩阵(A)矩阵包含可用以校准后续陀螺仪测量的尺度及非正交性调整两者。在一些实施例中,尺度及非正交性调整或参数及任选地偏移误差ωbias可用以调节陀螺仪200的测量及/或被提供到例如AR应用等应用。移动装置10可包含未进行说明的额外元件。举例来说,移动装置10可包含输入元件、其它传感器、无线通信装置、显示器及/或用以例如基于本文中所描述的参数确定扩增及其类似者的模块,且使得在显示器上展示那些扩增及图像。

图2为以与所揭示实施例一致的方式包括处理器300及说明耦合到处理器的其它模块的示范性移动装置10的框图。一般来说,所示的模块可由硬件、软件及/或固件的某一组合来实施。

如图2中所示,由相机100俘获的图像的序列可输入到耦合到处理器300的示范性计算机视觉(CV)模块310。在一些实施例中,CV模块310可选择图像序列中的图像作为参考图像,且相对于参考图像计算图像序列中的每一图像的姿态角向量(ωcam)或姿态角信息。举例来说,图像序列中的第一图像可被选择为参考图像,且可相对于参考第一图像计算其它图像的姿态角向量(ωcam)。此外,在一些实施例中,CV模块310还可计算图像的序列的平移矩阵(T)。另外,在一些实施例中,CV模块310可将相机帧速率同步信号350输出到角速度(AV)模块320,所述同步信号可用以使角速度测量与图像序列中的俘获的帧同步。因此,CV模块310可充当用于从相机接收图像的序列的装置,及/或用于将计算机视觉算法应用于图像的序列以产生姿态角向量的序列的装置。AV模块320可充当用于从陀螺仪测量的经缓冲序列估计陀螺仪向量的序列的装置。在一些实施例中,同步陀螺仪向量的序列及姿态角向量的序列。在其他实施例中,代替CV模块310及/或AV模块320或除了CV模块310及/或AV模块320之外,可使用一或多个其它元件来实施此些装置。

在一些情况下,CV模块310可首先执行检测步骤来检测视觉目标且建立姿态,其后跟踪算法可更新姿态。在一些实施例中,可实时地执行检测及跟踪步骤。在跟踪步骤中,可在每一帧中计算特征点的集合的位置。举例来说,由相机100俘获的两个单独图像帧中的现实世界特征的识别及位置可产生特征对应性,其可用以跟踪目标及估计帧之间的姿态。

此外,陀螺仪200可俘获原始陀螺仪测量的序列(ωgyro-meas),所述原始陀螺仪测量可由示范性陀螺仪缓冲器模块340缓冲。陀螺仪缓冲器模块340可充当用于基于来自陀螺仪的原始陀螺仪测量的序列提供陀螺仪测量的经缓冲序列的装置。如下文所描述,陀螺仪缓冲器模块340可充当用于接收尺度及非正交性矩阵的装置及/或用于使用尺度及非正交性矩阵调节原始陀螺仪测量的序列的装置。在其他实施例中,代替陀螺仪缓冲器模块340或除了陀螺仪缓冲器模块340之外可使用一或多个其它元件来实施此些装置。在一些实施例中,陀螺仪测量的经缓冲序列(ω'gyro-meas)可输出到示范性AV模块320,所述AV模块可使用相机帧速率同步信号350来产生与姿态角向量的序列(ωcam)同步的陀螺仪向量的序列(ωgyro)。

在一些实施例中,平移矩阵(T)及姿态角向量的序列(ωcam)或由CV模块310计算的姿态角信息可输入到示范性参数估计模块330。参数估计模块330可充当用于处理姿态角向量的序列及陀螺仪向量的序列以导出尺度信息及非正交性信息的装置。参数估计模块330还可充当用于将尺度信息及非正交性信息转发到扩增实境(AR)应用的装置。在其他实施例中,代替参数估计模块330或除了参数估计模块330之外可使用一或多个其它元件来实施此些装置。

另外,参数估计模块330还可从AV模块320接收陀螺仪向量的序列(ωgyro)或陀螺仪信息,其中陀螺仪向量的序列(ωgyro)或陀螺仪信息与姿态角向量的序列(ωcam)或姿态角信息同步。参数估计模块330可使用所接收的输入来计算正交旋转矩阵(Rcb)、尺度及非正交性矩阵(A)或尺度信息及非正交性信息,及任选地陀螺仪偏移误差(ωbias)。在一些实施例中,旋转矩阵Rcb、尺度及非正交性矩阵(A)及/或陀螺仪偏移误差(ωbias)可输入到例如AR应用等应用。在一些实施例中,正交旋转矩阵(Rcb)及尺度及非正交性矩阵(A)或尺度信息及非正交性信息可输入到陀螺仪缓冲器模块(如由虚线所示),且可用以调节陀螺仪测量的经缓冲序列(ω'gyro-meas)。

图3展示详述示范性参数估计模块330的一些功能的框图。参数估计模块330可接收姿态角向量的序列(ωcam)或姿态角信息及陀螺仪向量的序列(ωgyro)或陀螺仪信息作为输入。

因为陀螺仪通常具有尺度及非正交性误差,所以这些误差的估计及校正促进从陀螺仪测量获得相机本体角速度测量。在一些实施例中,示范性最小二乘估计(LSE)模块332可使用姿态角向量的序列(ωcam)及陀螺仪测量的对应经缓冲序列(ωgyro-meas)计算复合矩阵B,如下文所论述。

测量之间的关系可表达为

ωgyro=Aωgyro-meas   1

ωcam=Rcbgyro-meas=Bωgyro-meas   2

这是我们求解通用复合矩阵的线性最小二乘估计问题

B=RCB·A   3

其最小化以下目标函数

>B^=argminΣt||ωcam(t)-B·ωgyro(t)||2---4>

其中ωcam(t)为在时间t处的姿态角向量的序列,ωgyro(t)为陀螺仪测量的对应序列,且arg min表示最小自变量,其为其中给定目标函数达到其最小值的给定自变量的点的集合。可使用等式4确定B,所述等式4为其解为线性系统的二次优化问题。

一旦已由LSE模块332计算出B,便可将复合矩阵B输入到示范性QR因式分解模块334。在一些实施例中,等式3接着可由QR因式分解模块334通过使用QR分解来分解B以获得正交旋转矩阵(Rcb)及尺度及非正交性矩阵(A)来进行求解。如早先所注明,在一些实施例中,正交旋转矩阵(Rcb)及/或尺度及非正交性矩阵(A)可输入到AR应用。在一些实施例中,正交旋转矩阵(Rcb)及尺度及非正交性矩阵(A)可用以调节陀螺仪测量的原始序列(ωgyro-meas)。

在一些实施例中,参数估计模块330可能不使用平移信息来计算正交旋转矩阵(Rcb)及尺度及非正交性矩阵(A),以使得如果输入平移信息,那么可由参数估计模块330忽略相机及陀螺仪中心之间的位移或偏移的估计。在其中参数估计模块330不使用平移信息来计算正交旋转矩阵(Rcb)及尺度及非正交性矩阵(A)的其他实施例中,CV模块310可能不计算平移矩阵(T)。

图4展示复合矩阵(B)410、正交旋转矩阵(Rcb)420及尺度及非正交性矩阵(A)430之间的关系,如等式3中所示。在一些实施例中,可将尺度及非正交性矩阵(A)430建模为上三角矩阵。上三角尺度及非正交性矩阵(A)的对角元素为用于三个轴的尺度参数,且非对角元素为非正交性参数。在获得复合矩阵B 410之后,可通过使用QR分解技术分解复合矩阵B 410(例如通过QR因式分解模块334)对正交旋转矩阵(Rcb)420及尺度及非正交性矩阵(A)430求解等式3。

图5展示在移动装置中用于产生用于例如移动装置10的移动装置的应用的参数的方法。举例来说,所述应用可为扩增实境应用。在一些实施例中,图5中所说明的方法可实施于移动装置上。在450处,例如处理器300的处理器或其它计算元件可从例如相机100的相机接收图像的序列。在460处,处理器可将计算机视觉算法应用于图像的序列以产生姿态角信息。在一些实施例中,由CV模块310执行及/或实施460。在470处,处理器可从陀螺仪测量的序列(例如从陀螺仪200)估计陀螺仪信息。陀螺仪信息及姿态角信息可同步。在一些实施例中,由陀螺仪缓冲器模块340及/或AV模块320执行及/或实施470。

在480处,处理器可处理姿态角信息及陀螺仪信息以导出适用于所述应用的以下各者中的至少两者:(1)旋转信息、(2)尺度信息及(3)非正交性信息。在一些实施例中,由参数估计模块330、最小二乘估计模块332、QR因式分解模块334及/或卡尔曼滤波器326执行及/或实施480。在一些实例中,处理姿态角信息及陀螺仪信息包括从姿态角信息及陀螺仪信息计算复合矩阵,及将复合矩阵分解成旋转矩阵及尺度及非正交性矩阵,其中尺度信息及非正交性信息包括尺度及非正交性矩阵。在一些实例中,计算复合矩阵包括将最小二乘估计应用于姿态角信息及陀螺仪信息。在一些实例中,分解复合矩阵包括将QR因式分解应用于复合矩阵。在一些实例中,处理姿态角信息及陀螺仪信息可进一步包括导出所估计的陀螺仪偏移误差。在一些实例中,处理姿态角信息及陀螺仪信息包括从图像的序列确定平移矩阵,及将姿态角信息、平移矩阵及陀螺仪信息应用于卡尔曼滤波器以计算旋转信息、尺度信息及非正交性信息。姿态角信息可为姿态角向量的序列。在一些实施例中,可省略、调换及/或重新布置图5中说明的功能中的一或多者。举例来说,在一些实施例中,省略470。在此类实施例中,可在480处处理姿态角信息及陀螺仪测量。在一些实施例中,可在另一装置、组件及/或元件处估计陀螺仪信息。可在一些实施例中实施图5中说明的方法的其它更改。

图6展示说明以与所揭示实施例一致的方式使用QR因式分解从图像的序列及陀螺仪测量的序列导出旋转矩阵(Rcb)及尺度及非正交性矩阵(A)的示范性方法500的流程图。在一些实施例中,方法500可实施于移动装置上。

在一些实施例中,在步骤505中,可俘获图像的序列。举例来说,相机100可俘获图像的序列。接下来在步骤510中,可应用基于计算机视觉的算法来处理图像的序列及例如由CV模块310获得姿态角向量的序列(ωcam)或姿态角信息。

与图像序列的俘获同时(在步骤505中),可在步骤520中俘获原始陀螺仪测量的序列(ωgyro-meas)。举例来说,陀螺仪200可在相机100正俘获图像的序列的周期期间俘获原始陀螺仪测量的序列(ωgyro-meas)。在步骤530中,可例如由陀螺仪缓冲器模块340从原始陀螺仪测量的序列(ωgyro-meas)获得陀螺仪测量向量的经缓冲序列(ω'gyro-meas)或陀螺仪信息。在一些实施例中,原始陀螺仪测量的序列(ωgyro-meas)可在被存储于缓冲器中之前进行处理。接下来,在步骤535中,可例如由AV模块320使用陀螺仪测量的经缓冲序列(ω'gyro-meas)来确定陀螺仪向量的序列(ωgyro),以使得陀螺仪向量的序列(ωgyro)及姿态角向量的序列(ωcam)及时同步。

在步骤540中,可例如由参数估计模块330从姿态角向量的序列(姿态角信息)(ωcam)及陀螺仪向量的序列(陀螺仪信息)(ωgyro)计算复合矩阵(B)。在一些实施例中,可使用等式4计算复合矩阵(B)。

接下来,在步骤550中,可使用QR因式分解分解复合矩阵(B)以获得旋转矩阵(Rcb)及尺度及非正交性矩阵(A),其中旋转矩阵(Rcb)及尺度及非正交性矩阵(A)为输出参数。举例来说,等式3可通过例如由QR因式分解模块334使用QR分解分解B以获得正交旋转矩阵(Rcb)及尺度及非正交性矩阵(A)来求解。

在步骤560中,在一些实施例中,正交旋转矩阵(Rcb)及/或尺度及非正交性矩阵(A)可任选地输入到如图2及3中所示的AR应用。

在步骤570中,正交旋转矩阵(Rcb)及尺度及非正交性矩阵(A)可任选地用以调节陀螺仪测量的原始序列(ωgyro-meas),如图2中所示(点线)。举例来说,正交旋转矩阵(Rcb)及尺度及非正交性矩阵(A)及任选地偏移误差ωbias可任选地被用作到函数的输入,所述函数调节例如在陀螺仪缓冲器模块340处的陀螺仪测量的经缓冲序列(ω'gyro-meas)

图7展示与所揭示实施例一致的额外示范性参数估计模块的框图。如图7中所示,参数估计模块330可接收姿态角向量的序列(ωcam)或姿态角信息、平移矩阵(T)及陀螺仪向量的序列(ωgyro)或陀螺仪信息作为输入。在一些实施例中,参数估计模块330可包括卡尔曼滤波器326,所述卡尔曼滤波器可接收姿态角向量的输入序列(ωcam)或姿态角信息、平移矩阵(T)及陀螺仪向量的序列(ωgyro)或陀螺仪信息。卡尔曼滤波器326接着可计算正交旋转矩阵(Rcb)及尺度及非正交性矩阵(A)及任选地偏移误差ωbias。卡尔曼滤波器为所属领域的技术人员所熟知的。在一些实施例中,卡尔曼滤波器326可呈下文进一步描述的递归扩展卡尔曼滤波器(EKF)的形式。

图8展示描述移动装置中的各种参数之间的关系的等式集合。在一些实施例中,由等式描述的关系可由示范性EKF使用以从由移动装置10进行的测量导出旋转矩阵(Rcb)及尺度及非正交性矩阵(A)及任选地偏移误差(ωbias)。可在如下文档中找到移动装置的各种传感器参数之间的关系的数学描述及模型:“视觉惯性集成:混合VINS(Vision InertialIntegration:Hybrid VINS)”,2011年1月,Stefano Soatto(下文中为“Soatto”)及“视觉惯性导航、定位及映射:可缩放实时大规模方法(Visual-Inertial Navigation,Localizationand Mapping:A Scalable Real-time Large Scale Approach)”,国际机器人研究杂志,EagleJones及Stefano Soatto(下文中为“Jones”),所述文档的全文特此以引用的方式并入。下文在一般意义上概述及简要地解释了用以描述关系的参数及与参数相关的等式。

下标“cb”用以表示校准参数。假设已在校准阶段处估计这些参数中的一些,且可假设所述参数在EKF的操作期间为恒定的。下标“sb”用以表示关于陀螺仪相对于空间坐标系的定向的参数。

模型动态的离散时间版本(使在时间“t”处的参数的值与其在时间“t+dt”处的值相关)可用以确定本体定向的动态,如下文所进一步解释。相机到陀螺仪旋转对准由表示,且两个传感器之间的偏移由“Tcb”表示。因此,使用Jones中的模型,可将及的等式写成:

Ωcb(t+dt)=Ωcb(t)   5

>Ωsb(t+dt)=LogSO3(exp(Ω^sb(t))·exp(w(t)dt))---6>

通常,陀螺仪读数可包含角速度ω(t)及加速度a(t)的测量。下文在等式7及8中展示角速度及加速度的动态。

ω(t+dt)=ω(t)+nw(t)   7

a(t+dt)=a(t)+na(t)   8

其中nω(t)及na(t)分别建模陀螺仪角速度及加速度读数中的白噪声。

让Tsb(t)及v(t)分别表示从由陀螺仪相对于空间坐标系作出的测量导出的位置及速度。此外,让γ(t)表示空间坐标系中的重力向量,让nγ(t)建模重力估计中的白噪声,且让ωbias(t)及abias(t)表示经估计为状态参数的缓慢变化的陀螺仪及加速度偏移误差。接着,位置(位移)、速度及重力的动态分别如等式9、10及11中所示。

Tsb(t+dt)=Tsb(t)+v(t)dt   9

>v(t+dt)=v(t)+exp(Ω^sb(t))·a(t)dt+γdt---10>

γ(t+dt)=γ(t)+nγ(t)   11

ωbias(t+dt)=ωbias(t)   12

等式5到12表示用移动装置上的各种传感器测量及/或与所述传感器相关联的一般模型相关参数,且可以用于EKF中以导出用于估计移动装置10中的陀螺仪200的旋转对准以及尺度及非正交性的模型。具体来说,与陀螺仪200及相机100的测量相关的测量等式类似于旋转及平移滤波器,且在下文复制。

ω'gyro-meas(t)=A·ω(t)+ωbias(t)+nw(t)   13

>Ωcam(tk)=LogSO3(exp(Ω^sb(tk))·exp(-Ω^sb))+nvis(tk)---14>

>T(tk)=Tsb-exp(Ω^sb(tk))·exp(-Ω^cb)·Tcb+nvis(t)---15>

其中,A为尺度及非正交性矩阵,其经建模为上三角;ω'gyro-meas(t)为在时间t处的陀螺仪测量的经缓冲序列,且姿态角向量的序列ωcam(tk)为Ωcam(tk)的导数。可使用与用于旋转矩阵的指数坐标相关的公式从ωcam(tk)计算Ωcam(tk)。A的对角元素为用于三个轴的尺度参数,且非对角元素为非正交性参数。因为假设尺度及非正交性参数在校准期间为恒定的,所以等式13假设用于尺度及非正交性矩阵A的恒定动态。

在上文的等式13到15中,相机到陀螺仪旋转对准Ωcb及尺度及非正交性矩阵A为未知参数,且问题为我们转换成滤波问题的参数识别中的一者。对准、尺度及非正交性参数在校准期间并不改变,且在上文等式中反映了此情形,其中Ωcb及尺度及非正交性矩阵A的演化的噪声为零。此外,正交旋转矩阵Rcb为Ωcb的指数,其中可使用熟知的罗德里格斯旋转公式获得所述指数。

在一些实施例中,使用上文等式13到15的递归解可例如由卡尔曼滤波器326计算。滤波器用Ωcb及A的初始估计来初始化,所述初始估计最初可从规范文档获得或以其它方式估计。在一些情况下,陀螺仪偏移误差(ωbias(t))可为未知的。然而,因为可假设偏移误差随时间是恒定的,所以所述偏移误差可由卡尔曼滤波器326估计。

图9展示说明以与所揭示实施例一致的方式通过使用卡尔曼滤波器从图像的序列及陀螺仪测量的序列导出旋转矩阵(Rcb)及尺度及非正交性矩阵(A)的示范性方法800的流程图。在一些实施例中,卡尔曼滤波器可呈EKF的形式。

在一些实施例中,图9的方法800可实施于移动装置上。在一些实施例中,在步骤505中,可俘获图像的序列。举例来说,相机100可俘获图像的序列。接下来,在步骤515中,可应用基于计算机视觉的算法以处理图像的序列,且例如由CV模块310获得姿态角向量的序列(ωcam)或姿态角信息及平移矩阵(T)。

步骤520、530及535可同时出现,且相对于图6进行描述。在步骤545中,旋转矩阵(Rcb)及尺度及非正交性矩阵(A)及任选地陀螺仪偏移误差(ωbias)可通过将姿态角向量的序列(ωcam)或姿态角信息、平移矩阵(T)及陀螺仪向量的序列(ωgyro-meas)或陀螺仪信息应用于卡尔曼滤波器来计算,所述卡尔曼滤波器可部分使用结合上文的等式13到15的递归技术。在一些实施例中,可使用关于旋转矩阵的指数坐标的公式从ωcam(tk)计算Ωcam(tk)。上文还相对于图6描述步骤560及570。

旋转矩阵(Rcb)及/或尺度及非正交性矩阵(A)可用作到AR应用的输入。举例来说,AR应用可使用以下各者中的一者、两者或全部三者:(1)旋转矩阵(Rcb)、(2)尺度信息及(3)非正交性信息,来预先处理原始陀螺仪测量(ωgyro-meas)及/或获得相机100的参考帧中的相机角速度。尺度信息及非正交性信息皆可在尺度及非正交性矩阵(A)内。可在时间间隔内集成这些角速度以确定时间间隔中的相机100(及/或移动装置10)的递增旋转。此情形可允许AR应用确定相机100及/或移动装置10是否及/或如何相对于所显示图像中找到的特征或对象移动。以此方式,AR应用可确定将要显示的扩增及/或如何修改所显示的扩增。

短语“在一些实施例中”及“例如”可能仅仅指一实例而非最佳实例。取决于应用,可通过各种装置来实施本文中所描述的方法。举例来说,用于应用计算机视觉算法的元件可包括CV模块310或用于应用计算机视觉算法的其它装置。举例来说,这些方法可以用硬件、固件、软件或其任何组合来实施。对于硬件实施方案,例如处理器300的处理单元可在一或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、电子装置、经设计以执行本文所描述的功能的其它电子单元或其组合内实施。本文中所描述的模块中的任一者(例如模块310到340)可类似地以硬件实施。

对于固件及/或软件实施方案,可用执行本文所描述的功能的模块(例如,程序、函数等)来实施所述技术。在实施本文中所描述的方法时,可使用任何有形地体现指令的机器可读媒体。举例来说,软件代码可以存储在存储器中,并且由处理器单元来执行。因此,方法500、800及/或图5中说明的方法中的任一者可由机器可读媒体及/或由各种模块实施。类似地,模块310到340中的任一者可类似地以固件及/或软件实施于机器可读媒体上。存储器可以实施于处理器单元内或处理器单元外部。如本文中所使用,术语“存储器”是指任何类型的长期、短期、易失性、非易失性或其它存储器,且不应限于任何特定类型的存储器或任何特定数目的存储器或存储存储器的媒体的类型。

如果在固件及/或软件中实施,那么可将所述功能作为一或多个指令或代码存储在计算机可读媒体上。实例包含以数据结构编码的计算机可读媒体及以计算机程序编码的计算机可读媒体。计算机可读媒体包含物理计算机存储媒体。存储媒体可为可由计算机存取的任何可用媒体。借助于实例而非限制,此计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置,磁盘存储装置或其它磁性存储装置,或任何其它可用于存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的媒体或任何其它形式的非暂时性媒体;如本文所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD),软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。上文的组合也应包含在计算机可读媒体的范围内。

除了存储在计算机可读媒体上之外,还可将指令和/或数据提供为通信设备中包含的发射媒体上的信号。举例来说,通信设备可包含具有指示指令及数据的信号的收发器。指令及数据经配置以致使一或多个处理器实施权利要求书中所概述的功能。也就是说,通信设备包含具有指示执行所揭示功能的信息的信号的发射媒体。在第一时间,通信设备中所包含的发射媒体可包含执行所揭示的功能的信息的第一部分,而在第二时间,通信设备中所包含的发射媒体可包含执行所揭示的功能的信息的第二部分。

提供对所揭示方面的先前描述以使任何所属领域的技术人员能够进行或使用本发明。所属领域的技术人员将容易明白对这些方面的各种修改,且在不脱离本发明的精神或范围的情况下,本文中所界定的一般原理可应用于其它方面。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号