用于确定设备运动的估计的方法和系统的制作方法

文档序号:10579067阅读:152来源:国知局
用于确定设备运动的估计的方法和系统的制作方法
【专利摘要】提供了用于确定设备运动的估计的方法和系统。示例方法包括:接收在滑动时间窗口内的来自设备的惯性测量单元IMU的数据,以及接收在所述滑动时间窗口内的来自所述设备的相机的图像。所述方法还包括:基于来自所述IMU的所述数据来确定所述设备的运动的IMU估计,以及基于所述图像中的特征跟踪来确定所述设备的运动的相机估计。所述方法还包括:基于所述设备的运动的所述IMU估计和所述设备的运动的所述相机估计具有大于阈值量的差异,确定在所述滑动时间窗口内的所述设备的位置或速度中的一个或多个,以及如来自所述IMU的所述数据以及所述设备的所述位置或所述速度中的所述一个或多个所支持的,来确定在所述滑动时间窗口内的所述设备的运动的总体估计。
【专利说明】
用于确定设备运动的估计的方法和系统
【背景技术】
[0001]除非本文中以其他方式指示,否则在此部分中所描述的材料不是本申请的权利要求的现有技术并且不会通过在此部分中的包含而被承认为现有技术。
[0002]传感器融合包括组合传感器数据或从来自独立源的感官数据导出的数据,使得结果信息更为完整。用于融合过程的数据源可以包括多个孑然不同的传感器。例如,每个传感器可以提供关于环境中的相同对象或者关于环境中的相同位置的不同信息。通过组合传感器数据,能够提供更为完整的对象或位置的描绘。作为示例,一个传感器可以包括捕获对象的图像的相机,另一传感器可以包括位置检测能力以确定用于捕获该图像的设备的位置。通过组合所述传感器数据,提供了图像数据和设备的特定位置信息。

【发明内容】

[0003]在一个示例中,提供了一种方法,所述方法包括:接收在滑动时间窗口内的来自设备的惯性测量单元(IMU)的数据,以及接收在所述滑动时间窗口内的来自所述设备的相机的图像。所述方法还包括:基于来自所述MU的所述数据来确定所述设备的运动的頂U估计,以及基于所述图像中的特征跟踪来确定所述设备的运动的相机估计。所述方法还包括:基于所述设备的运动的所述MU估计和所述设备的运动的所述相机估计具有大于阈值量的差异,确定在所述滑动时间窗口内的所述设备的位置或速度中的一个或多个,以及如来自所述IMU的所述数据以及所述设备的所述位置或所述速度中的所述一个或多个所支持的,来确定在所述滑动时间窗口内的所述设备的运动的总体估计。
[0004]在另一示例中,提供了一种被配置为存储指令的计算机可读存储器,所述指令当由设备来执行时,致使所述设备执行功能。所述功能包括:接收在滑动时间窗口内的来自所述设备的惯性测量单元(IMU)的数据,以及接收在所述滑动时间窗口内的来自所述设备的相机的图像。所述功能还包括:基于来自所述IMU的所述数据来确定所述设备的运动的IMU估计,以及基于所述图像中的特征跟踪来确定所述设备的运动的相机估计。所述功能还包括:基于所述设备的运动的所述IMU估计和所述设备的运动的所述相机估计具有大于阈值量的差异,确定在所述滑动时间窗口内的所述设备的位置或速度中的一个或多个,以及如来自所述IMU的所述数据以及所述设备的所述位置或所述速度中的所述一个或多个所支持的,来确定在所述滑动时间窗口内的所述设备的运动的总体估计。
[0005]在另一示例中,提供了一种设备,所述设备包括:一个或多个处理器,以及被配置为存储指令的数据储存器,所述指令当由所述一个或多个处理器来执行时,致使所述设备执行功能。所述功能包括:所述功能包括:接收在滑动时间窗口内的来自所述设备的惯性测量单元(IMU)的数据,以及接收在所述滑动时间窗口内的来自所述设备的相机的图像。所述功能还包括:基于来自所述IMU的所述数据来确定所述设备的运动的頂U估计,以及基于所述图像中的特征跟踪来确定所述设备的运动的相机估计。所述功能还包括:基于所述设备的运动的所述IMU估计和所述设备的运动的所述相机估计具有大于阈值量的差异,确定在所述滑动时间窗口内的所述设备的位置或速度中的一个或多个,以及如来自所述IMU的所述数据以及所述设备的所述位置或所述速度中的所述一个或多个所支持的,来确定在所述滑动时间窗口内的所述设备的运动的总体估计。
[0006]这些以及其他方面、优点、和替选方案,通过在适当的情况下参照附图来阅读以下【具体实施方式】,对于本领域的普通技术人员将变得显而易见。
【附图说明】
[0007]图1图示了示例计算设备。
[0008]图2图示了另一示例计算设备。
[0009]图3A至图3B是示出图2中的计算设备的一些传感器的配置的计算设备的概念图不O
[0010]图4是根据本文所述的至少一些实施例的用于确定设备运动的估计的示例方法的框图。
[0011]图5图示了用于相机和惯性测量单元(MU)中的每个的示例时间轴,以及在时标上的来自相机和頂U的示例输出。
[0012]图6A至图6C图示了滑动时间窗口内的示例相机图像输出。
[0013]图7是基于相机图像和頂U数据的设备运动的示例估计的概念图示。
[0014]图8是在时标上的基于相机图像和MU数据的设备运动的示例估计以及设备的附加位置数据的概念图示。
[0015]图9是设备运动的示例总体估计的概念图示。
[0016]图10是基于相机图像和頂U数据的设备运动的示例估计的另一概念图示。
[0017]图11是在时标上的基于相机图像和MU数据的设备运动的示例估计以及设备的附加位置数据的概念图示。
[0018]图12是设备运动的示例总体估计的另一概念图示。
[0019]图13是示出设备运动的表示的示例并排视图的显示器。
【具体实施方式】
[0020]以下【具体实施方式】参照附图描述了所公开的系统和方法的各种特征和功能。在附图中,除非上下文另有指示,否则相似附图标记标识相似组件。本文所描述的说明性系统和方法的实施例不意味着限制。可以容易地理解到,所公开的系统和方法的某些方面可以以各种不同的配置进行布置和组合,所有这些都在本文中被考虑到。
[0021]示例内,描述了用于确定设备运动的估计的方法和系统。示例方法包括接收在滑动时间窗口内的来自设备的惯性测量单元(IMU)的数据以及接收在该滑动时间窗口内的来自设备的相机的图像。所述方法还包括基于来自MU的数据来确定设备运动的頂U估计以及基于图像中的特征跟踪来确定设备运动的相机估计。基于设备运动的IMU估计和设备运动的相机估计具有大于阈值量的差异,所述方法包括:确定在滑动时间窗口内设备的位置或速度中的一个或多个,以及如来自IMU的数据以及设备的位置或速度中的一个或多个所支持的来确定滑动时间窗口内设备运动的总体估计。示例方法可以使用来自移动设备的传感器的数据以估计设备的位置随时间的变化,所述方法可以被称作测程法。设备位置的估计可以相对于已知的或人为的开始位置。
[0022]现在参照附图,图1图示了示例计算设备100。在一些示例中,图1中所图示的组件可以跨多个计算设备分布。然而,为了示例起见,所述组件被示出和描述为一个示例计算设备100的一部分。计算设备100可以是或包括移动设备(诸如移动电话)、桌面计算机、膝上型计算机、电子邮件/消息设备、平板式计算机、或可以被配置为执行本文所述的功能的类似设备。大体上,计算设备100可以是根据本文所述的方法和功能的被配置为发射数据或接收数据的任何类型的计算设备或发射器。
[0023]计算设备100可以包括接口 102、无线通信组件104、蜂窝无线电通信组件106、全球定位系统(GPS)接收器108、(一个或多个)传感器110、数据储存器112、以及(一个或多个)处理器114。图1中图示的组件也可以包括实现计算设备100内的通信以及计算设备100与诸如服务器实体的其他计算设备(未示出)之间的通信的硬件。例如,所述硬件可以包括发射器、接收器、和天线。
[0024]接口102可以被配置为允许计算设备100与诸如服务器的其他计算设备(未示出)通信。因此,接口 102可以配置为从一个或多个计算设备接收输入数据,并且也可以被配置为向所述一个或多个计算设备发送输出数据。接口 102可以被配置为根据有线或无线通信协议来运行。在一些示例中,接口 102可以包括按钮、键盘、触摸屏、(一个或多个)扬声器118、(一个或多个)麦克风120、和/或用于接收输入的任何其他元件,以及一个或多个显示器、和/或用于通信输出的任何其他元件。
[0025]无线通信组件104可以是被配置为促进根据一个或多个无线通信标准的计算设备100的无线数据通信的通信接口。例如,无线通信组件104可以包括W1-Fi通信组件,所述W1-Fi 通信组件被配置为促进根据一个或多个 IEEE 802.11标准的无线数据通信。作为另一示例,无线通信组件104可以包括蓝牙通信组件,所述蓝牙通信组件被配置为促进根据一个或多个蓝牙标准的无线数据通信。其他示例也是可能的。
[0026]蜂窝无线电通信组件106可以是被配置为促进与蜂窝无线基站的无线连接(语音和/或数据)以提供对网络的移动连接的通信接口。例如,蜂窝无线电通信组件106可以被配置为连接至计算设备100所位于的蜂窝的基站。
[0027]GPS接收器108可以被配置为通过由GPS卫星发送的精确计时信号来估计计算设备100的位置。
[0028](—个或多个)传感器110可以包括一个或多个传感器,或者可以表示包括在计算设备100内的一个或多个传感器。示例传感器包括加速度计、陀螺仪、步程计、光传感器、麦克风、(一个或多个)相机、红外闪光灯、气压计、磁力计、GPS、WiF1、近场通信(NFC)、蓝牙、投影仪、深度传感器、温度传感器、或者其他位置和/或场境感知(context-aware)传感器。
[0029]数据储存器112可以存储能够由(一个或多个)处理器114存取和执行的编程逻辑122。数据储存器112也可以存储由(一个或多个)传感器110所收集的数据,或者由无线通信组件104、蜂窝无线电通信组件106、和GPS接收器108中的任何一个所收集的数据。
[0030](一个或多个)处理器114可以被配置为接收由(一个或多个)处理器110中的任何一个所收集的数据并且基于该数据来执行任何数目的功能。作为示例,(一个或多个)处理器114可以被配置为使用一个或多个位置确定组件来确定计算设备100的一个或多个地理位置估计,所述位置确定组件诸如无线通信组件104、蜂窝无线电通信组件106、或者GPS接收器108。(一个或多个)处理器114可以基于计算设备100的无线范围内一个或多个已知无线接入点的存在和/或位置使用位置确定算法来确定计算设备100的位置。在一个示例中,无线位置组件104可以确定一个或多个无线接入点的身份(例如MAC地址)并且测量从所述一个或多个无线接入点中的每一个无线接入点所接收的信号的强度(例如,所接收的信号强度指示)。来自每个独特无线接入点的接收信号强度指示(RSSI)可以被用于确定距每个无线接入点的距离。然后可以将该距离与存储关于每个独特无线接入点位于哪里的信息的数据库进行比较。基于距每个无线接入点的距离以及所述无线接入点中的每个无线接入点的已知位置,可以确定计算设备100的位置估计。
[0031]在另一实例中,(一个或多个)处理器114可以基于邻近蜂窝基站使用位置确定算法来确定计算设备100的位置。例如,蜂窝无线电通信组件106可以被配置为识别计算设备100正从其或最近一次从其接收来自蜂窝网络的信号的小区。蜂窝无线电通信组件106也可以被配置为测量到提供信号的基站的往返时延(RTT),并且将此信息与所识别的小区组合以确定位置估计。在另一示例中,蜂窝通信组件106可以被配置为使用距三个或更多个基站的观察到达时间差(OTDOA)来估计计算设备100的位置。
[0032]在一些实施方式中,计算设备100可以包括设备平台(未示出),其可以被配置为多层的Linux平台。设备平台可以包括不同应用和应用框架,以及各种内核、库、和运行时实体。在其他示例中,其他格式或操作系统也可以操作计算设备100。
[0033]通信链路116被图示为有线连接,然而,也可以使用无线连接。例如,通信链路116可以是除其他可能性之外,诸如通用串行总线或并行总线的有线串行总线,或者使用例如短程无线无线电技术、或IEEE802.1l中所描述的通信协议(包括任何IEEE 802.11修订)的无线连接。
[0034]计算设备100可以包括更多或更少的组件。此外,本文所述的示例方法可以由计算设备100的组件单独执行,或者由计算设备100的组件中的一个或全部组件来组合执行。
[0035]图2图示了另一示例计算设备200。图2中的计算设备200可以表示图1中示出的计算设备100的一部分。在图2中,计算设备200被示出为包括多个传感器,诸如包括陀螺仪204和加速度计206的惯性测量单元(MU)202、全局快门(GS)相机208、翻转快门(RS)相机210、前置相机212、红外(IR)闪光灯214、气压计216、磁力计218、GPS接收器220、WiFi/NFC/蓝牙传感器222、投影仪224、深度传感器226、以及温度传感器228,其中的每个输出至协同处理器230。协同处理器230从应用处理器232接收输入并且向其输出。计算设备220可以进一步包括向应用处理器232直接输出的第二頂U 234。
[0036]IMU 202可以被配置为基于陀螺仪204和加速度计206的输出来确定计算设备200的速度、定向、和重力。
[0037]GS相机208可以被配置在计算设备200以作为后置相机,以便背对着计算设备200的正面。GS相机208可以被配置为同时读取相机208的所有像素的输出。GS相机208可以被配置为具有大约120至170度的视场,GS相机208诸如用于广角观察的鱼眼传感器。
[0038]RS相机210可以被配置为从像素显示的顶部到像素显示的底部读取像素的输出。作为一个示例,RS相机210可以是红/绿/蓝(RGB)红外(IR)4百万像素的图像传感器,然而其他传感器也是可能的。例如,RS相机210可以具有快速曝光以便使用大约5.5ms的最小读出时间来操作。与GS相机208相似,RS相机210可以是后置相机。
[0039]相机212可以是计算设备200中的附加相机,其被配置为前置相机或者被配置在朝向与GS相机208和RS相机210相对的方向上。相机212可以被配置为捕获计算设备200的第一视角的图像,并且GS相机208和RS相机210可以被配置为捕获该设备与第一视角相对的第二视角的图像。例如,相机212可以是广角相机,并且可以具有大约120至170度的视场以用于广角观察。
[0040]IR闪光灯214可以为计算设备200提供光源,以及例如,可以被配置为以朝向计算设备200后方的方向来输出光以便为GS相机208和RS相机210提供光。在一些示例中,IR闪光灯214可以被配置为以诸如5Hz的低占空比周期闪光,或者如由协同处理器230或应用处理器232所指导的以非连续方式闪光。例如,IR闪光灯214可以包括被配置用于移动设备的LED光源。
[0041]图3A至图3B是示出图2中的计算设备200的一些传感器的配置的计算设备300的概念图不。在图3A至图3B中,计算设备300被不出为移动电话。计算设备300可以与图1中内的计算设备100或图2中的计算设备200相似。图3A图示了计算设备300的正面,在其中设置有显示器302、连同前置相机304和P/L传感器开口 306(例如接近传感器或光传感器)的。前置相机304可以是如图2中所描述的相机212。
[0042]图3B图不了显不设备300的背面308,在其中设置有后置相机310和另一个后置相机314。如图2中的计算设备200中所描述的,后置相机310可以是RS相机210以及后置相机312可以是GS相机208。计算设备300的背面308还包括IR闪光灯314,其可以是图2中的计算设备200中所描述的IR闪光灯214或投影仪224。在一个示例中,IR闪光灯214和投影仪224可以是相同的一个。例如,单个IR闪光灯可以被用于执行IR闪光灯214和投影仪224的功能。在另一示例中,计算设备300可以包括位于后置相机310附近的第二闪光灯(例如LED闪光灯)(未示出)。例如,传感器的配置和放置可以有助于提供计算设备300的所期望的功能,然而其他配置也是可能的。
[0043]再参照图2,气压计216可以包括压力传感器,并且可以被配置为确定空气压力和高度变化。
[0044]磁力计218可以被配置为提供计算设备200的翻转、偏航、和倾斜测量,以及例如,能够被配置为组为内部罗盘来操作。在一些示例中,磁力计218可以是MU 202的组件(未示出)。
[0045]GPS接收器220可以与图1的计算设备100中所描述的GPS接收器108类似。在其他示例中,GPS 220也可以输出从GPS卫星或其他网络实体所接收的计时信号。这样的计时信号可以被用于使从跨包括相同卫星时间戳的多个设备的传感器所收集的数据同步。
[0046]WiFi/NFC/蓝牙传感器222可以包括无线通信组件,所述无线通信组件被配置为根据如上面关于图1的计算设备100所讨论的WiFi和蓝牙标准来操作,以及根据用于经由与其他设备接触或进入其附近来建立与其他设备的无线通信的NFC标准来操作。
[0047]投影仪224可以是或包括具有激光器的结构光投影仪,所述激光器具有在环境中产生点图案的图案生成器。投影仪224可以被配置为结合RS相机210来操作以恢复关于环境中的对象深度的信息,诸如对象的三维(3D)特性。例如,分离的深度传感器226可以被配置为在环境光条件下以3D方式捕获点图案的视频数据以感测环境中的对象的范围。投影仪224和/或深度传感器226可以被配置为基于所投影的点图案来确定对象的形状。通过示例的方式,深度传感器226可以被配置为使得投影仪224产生点图案并且使得RS相机210捕获该点图案的图像。然后,深度传感器226可以处理该点图案的图像、使用各种算法进行三角剖分并提取3D数据、以及将深度图像输出至协同处理器230。
[0048]温度传感器228可以被配置为测量温度或温度梯度,例如,诸如计算设备200的周围环境的温度变化。
[0049]协同处理器230可以被配置为控制计算设备200上的所有传感器。在示例中,协同处理器230可以控制相机208、210、和212中的任何相机的曝光时间以匹配IR闪光灯214,控制投影仪224脉冲同步、持续时间、和强度,以及在总体上,控制传感器的数据捕获或收集时间。协同处理器230也可以被配置为将来自处理器中的任何处理器的数据处理为对于应用处理器232合适的格式。在一些示例中,协同处理器230将与相同时间戳或数据收集时间(或时间段)对应的来自传感器中的任何传感器的所有数据合并为单个数据结构以提供给应用处理器232。
[0050]应用处理器232可以被配置为控制计算设备200的其他功能,诸如配置为控制计算设备200以根据存储在计算设备200上的操作系统或任何数目的软件应用来操作。应用处理器232可以使用由传感器收集的数据和从协同处理器接收的数据来执行任何数目的类型的功能。应用处理器232可以接收协同处理器230的输出,以及在一些示例中,应用处理器232也可以从包括GS相机208和RS相机210的其他传感器接收原始数据输出。
[0051]第二IMU234可以将所收集的数据直接输出至应用处理器232,所述数据可以由应用处理器232接收并且被用于触发其他传感器来开始收集数据。作为示例,第二頂U 234的输出可以指示计算设备200的运动,以及当计算设备200处于运动中时,可以期望其收集图像数据、GPS数据等。因此,应用处理器232能够通过公共总线上的通信信令来触发其他传感器在頂U 234的输出指示运动的时候收集数据。
[0052]图2中示出的计算设备200可以包括传感器和处理器中每个的多个通信总线。例如,协同处理器230可以通过包括用于通信的多主机串行单端总线的内置集成电路(I2C)总线来与MU 202、GS相机208、以及RS相机212中的每个进行通信。协同处理器230可以通过相同的I2C总线或分立的通信总线来接收由MU 202、GS相机208、以及RS相机212中的每个所收集、测量、或检测的原始数据。协同处理器230可以通过多个通信总线来与应用处理器232通信,所述通信总线包括:包括可以以全双工模式操作的同步串行数据链路的串行外设接口(SPI)总线、I2C总线、以及包括配置用于通信相机或像素信息的移动产业处理器接口(MIPI)。例如,可以基于对数据通信的速度的需求以及由相应通信总线所提供的带宽来确定各种总线的使用。
[0053]在本文的示例内,计算设备200可以在计算设备200移动穿过环境时收集数据,并且可以被配置为执行测程功能。测程法包括使用来自正在移动的传感器的数据来估计位置随时间的变化。测程法能够被用于估计计算设备200相对于开始位置的位置以便确定计算设备200的轨迹或途径。在一些示例中,能够在设备穿过环境移动时对传感器数据的滑动窗口进行处理以确定计算设备200所穿过的路径。
[0054]图4为根据本文所述的至少一些实施例的用于确定设备运动的估计的示例方法的框图。例如,图4中示出的方法400呈现了方法的一个实施例,所述实施例能够通过图1中的计算设备100、图2中的计算设备200、或者图3中的计算设备300来使用,或者例如,可以由图1中的计算设备100、图2中的计算设备200、或者图3中的计算设备300中的任何组件的组合来执行。方法400可以包括如框402至框412中的一个或多个所示的一个或多个操作、功能、或动作。尽管以顺序次序图示了这些框,但是在一些实例中这些框可以被并行执行,和/或以与本文所述的这些不同的次序来执行。此外,各个框可以组合为较少的框,划分为附加的框,和/或基于所期望的实施方式被移除。
[0055]此外,对于本文所公开的方法400以及其他过程和方法而言,流程图示出了本实施例的一个可能的实施方式的功能和操作。在这方面,每个框可以表示模块、区段、或程序代码的一部分,其包括用于实现过程中的特定逻辑功能或步骤的可由处理器执行的一个或多个指令。例如,程序代码可以被存储在任何类型的计算机可读介质上,诸如包括盘或硬盘驱动器的存储设备。例如,计算机可读介质可以包括非暂时性计算机可读介质,诸如在短时间段内存储数据的计算机可读介质,如寄存器存储器、处理器高速缓存、和随机存取存储器(RAM)。例如,计算机可读介质也可以包括其他非暂时性介质,诸如二级存储或持久性长期存储,如只读存储器(R0M)、光盘或磁盘、光盘只读存储器(CD-ROM)。计算机可读介质也可以是任何其他暂时性或非暂时性存储系统。例如,计算机可读介质也可以被视为计算机可读存储介质、有形存储设备、或其他制品。例如,程序代码(或代码的数据)也可以被存储在或被提供在包括通信介质的其他介质上,诸如无线通信介质。
[0056]此外,对于本文所公开的方法400以及其他过程和方法而言,图4中的每个框可以表示被连线以执行过程中的特定逻辑功能的电路。
[0057]方法400的功能可以完全由计算设备来执行,或者可以跨多个计算设备和/或服务器分布。在一些示例中,计算设备可以从计算设备的传感器接收信息,或者在计算设备是服务器的情况下,能够从收集信息的另一设备接收信息。例如,计算设备还可以与服务器通信以接收来自其他设备的传感器的信息。方法400还可以由设备来执行,所述设备具有应用处理器和协同处理器,所述应用处理器被配置为基于操作系统来运行,所述协同处理器被配置为从设备的多个传感器接收数据。传感器可以包括如上文中图1、图2、或图3A至图3B中的任何一个中所述的任何传感器,例如包括IMU、全局快门相机、翻转快门相机、结构光投影仪、深度相机、红外闪光灯、气压计、磁力计、以及温度传感器。
[0058]在框402处,方法400包括在滑动时间窗口内接收来自设备的惯性测量单元(MU)的数据。设备的处理器可以接收数据,所述数据可以指示设备的三个自由度的位置(例如,沿X轴、7轴、和Z轴)和三个自由度的定向(例如翻转、倾斜、偏航)。MU数据可以表示在滑动时间窗口内设备的运动。頂U可以在任何给定的时间段内收集数据,并且在一些示例中,IMU可以连续收集数据。在一些实例中,滑动时间窗口可以指示MU收集数据的时间期间。或者,诸如在頂U继续收集数据的示例中,滑动时间窗口可以指示处理器接收頂U数据的时间段。
[0059]滑动时间窗口包括关于当前时间帧的时间量。在一个示例中,时间窗口可以是大约I至10秒,并且时间窗口继续在时间上向前滑动使得滑动时间窗口覆盖了过去的I至10秒内由MU所收集的数据的最新近的量。时间窗口也可以更小或更大。例如,MU数据可以被存储在持久型存储中,或者可以被存储在循环缓冲区中使得新接收到的数据覆写缓冲区中最老的数据。因此,时间窗口可以指示数据何时被IMU所收集。
[0060]在框404处,方法400包括在该滑动时间窗口内接收来自设备的相机的图像。例如,相机可以被配置为在该滑动时间窗口期间捕获图像。在设备包括具有后置相机的移动电话的示例中,相机可以在该滑动时间窗口内捕获设备的视场中的图像。在设备包括后置相机和前置相机两者的其他示例中,一个或两个相机可以被配置为在滑动时间窗口期间捕获图像。例如,取决于时间窗口的长度,可以在时间窗口内捕获任何数目的图像,诸如I至3个图像。相机也可以被配置为在时间窗口期间捕获直播视频,并且可以将视频的帧作为图像。[0061 ]在框406处,方法400包括基于来自MU的数据来确定设备运动的MU估计。作为示例,设备的处理器可以对于六个自由度(例如,x、y、z和θχ,、0y、和θζ)将随时间推移的頂U加速度数据求积分以确定速度。处理器可以进一步对速度求积分以确定位置。作为特定示例,基于对頂U数据进行处理,处理器可以检测出设备以每小时1.5英里的平均速度向西行进了一个小时,以及之后处理器可以确定出设备在其初始位置或某些开始位置、已知位置、或参考位置以西约1.5英里处。例如,处理器可以将动作的估计确定为设备在该时间段内行进的路径。动作的估计可以沿六个自由度(例如,x、y、z和θχ,、θγ、和θζ)中的任何一个或六个自由度中的任何多个的组合。运动的估计可以依据加速度、速度、位置的变化、或这样的因素的任何组合。
[0062]在框408处,方法400包括基于图像的特征跟踪来确定设备运动的相机估计。例如,处理器能够基于由相机捕获的图像来确定设备运动的估计。图像均能够被处理以识别特征跟踪算法能够锁定并贯穿多个帧跟随的图像中的特征或点的集合。取决于特定跟踪算法,示例特征点可以是图像中独特的、亮斑/暗斑、或边/角的点。例如,边包括在存在两个图像区域之间的边界处的图像的点,并且角指代图像中具有局部二维结构的点状特征。诸如Harris&Stephens算法的其他算法能够被用于检测边和角。另外的其他方法也可以被使用,例如,诸如检测角和兴趣点的加速段测试特征检测(FAST)算法。此外,诸如斑点的特征可以描述图像中的兴趣区域(例如,过于平滑以致于无法被角检测器检测到的区域),以及除其他方法以外,FAST算法也能够被用于检测斑点。
[0063]一个示例特征跟踪方法包括Kanade-Lucas-Tomasi (KLT)特征跟踪器方法。在一个实例中,通过检查图像的每个2乘2梯度矩阵的最小特征值来定位特征,以及能够使用最小化图像的两个窗口之间的差异的Newton-Raphson方法来跟踪特征。
[0064]一旦在连续图像中识别出特征,就能够由图像中的特征的移动而检测出设备运动的估计。例如,如果特征是静态对象,则图像内特征的移动是由于设备的移动引起的。在示例中,当来自相机的图像之间的差异大于阈值量,则由于图像已经捕获了可以在所有图像中跟踪的不同特征,因此图像可以与在滑动时间窗口内来自IMU的对应数据相关联。
[0065]在一些示例中,在连续图像之间的图像中特征的移动能够被确定和关联为表示图像中的移动对象的特征的移动。当特征表示移动对象时,图像之间特征的移动可能不由设备的移动引起(或者可能由对象的移动和设备的移动引起),并且因此,特征跟踪方法可能不精确。因此,与移动对象相关联的除这些以外的特征能够被用于特征跟踪。当特征与静态对象相关联时,特征可以被用于特征跟踪。
[0066]为了将图像内的移动对象的特征与静态对象的特征进行区分,能够比较所有特征的运动模型。显示与大多数特征的运动模型不同的运动模型的特征能够表示来自移动对象的特征。例如,可以认为,图像中的大多数特征表示静态对象,并且因此,能够执行离群值拒绝以基于具有相当大的差异的那些特征的运动模型来识别移动对象的特征。
[0067]在对特征进行线性变换的情况下,能够使用平移运动模型来对特征的移动建模。图像中的固定窗口的特征点X的平移运动模型可以用下面的函数h来描述:
[0068] h(x) =χ+ Δ X 等式(I)
[0069 ]也能够使用仿射运动模型对特征的移动建模,可以将其定义为:
[0070]h(x) =Dx+d 等式(2)
[0071]其中D是变形矩阵以及d是窗口中心的平移。
[0072]在其他示例中,为了将图像内的移动对象的特征与静态对象的特征进行区分,可以执行其他函数。当在两个图像之间跟踪特征时,能够确定图像平面中的特征的运动是否与移位相一致,该移位在特征是静止的而设备是移动的情况下会出现。为此,能够基于来自陀螺仪的测量值、和根据所跟踪特征的子集所计算的估计的行进方向来使用设备的所计算的旋转。如果后续图像中的特征实际位置与所预期的位置之间的差异大于阈值,则可以将该特征识别为离群值。
[0073]在框410处,方法400包括基于设备运动的MU估计和设备运动的相机估计具有大于阈值量的差异,而在该滑动时间窗口内确定设备的位置或速度中的一个或多个。处理器可以被配置为将来自IMU数据的运动的估计中的每一个与来自相机数据的运动的估计中的每一个进行比较以确定是否存在某些阈值变异量内的匹配。例如,如果两个运动的估计大致相同,诸如沿运动的路径彼此距离约几厘米内或者具有近似相等的开始位置和结束位置,则可以确定匹配。在此实例下JMU数据和相机图像这两者可以表示设备的运动。
[0074]为了执行设备运动的MU估计与设备运动的相机估计的比较,图像中的特征可以被投影到图像空间的x、y坐标系并且可以基于MU数据的时间戳来链接到相应的数据以与数据的位置匹配。如果存在匹配,则可以确定最好地解释设备运动的相机图像和MU数据。
[0075]然而,在设备运动的MU估计与设备运动的相机估计相差大于阈值量的实例中,可以确定附加数据以估计滑动时间窗口内的设备的运动。所述附加数据包括滑动时间窗口内的设备的位置或速度。可以从包括GPS接收器、WiFi接收器等的设备的其他传感器或者从可以被处理以确定设备的地理位置的其他传感器数据来确定设备的位置。也可以基于来自其他传感器的数据或基于来自其他传感器的数据的整合来确定设备的速度。
[0076]在一些示例中,设备运动的相机估计可以指示设备几乎静止,诸如例如,当所有图像或许多图像相同的时候。在这些示例中,由于设备可能还在垂直或水平地移动,因此方法400可以包括确定相对于设备的垂直轴或水平轴的设备的位置或速度。例如,设备可以在电梯上,并且在设备沿垂直轴移动期间,相机图像很可能相同。頂U数据可以指示移动,然而,相机图像不会表示沿垂直轴的移动。因此,例如,能够确定附加位置信息以验证MU数据。相机图像可能大致恒定的另一实例包括设备在正在移动的汽车或火车中,并且即使设备沿路径水平移动,随时间推移设备仍然可以捕获相同图像。IMU数据可以指示移动,以及能够确定附加的位置信息以验证MU数据。因此,可以基于来自设备的位置感测传感器的一个或多个输出来确定滑动时间窗口内的设备的地理位置。
[0077]在框412处,方法400包括在滑动时间窗口内确定由来自MU的数据以及设备的位置或速度中的一个或多个所支持的设备运动的总体估计。在示例内,能够根据设备的位置信息和/或速度信息来验证基于MU数据所确定的设备运动的估计。随着滑动时间窗口变化以覆盖新的时间段,能够确定随时间推移的设备的运动的总体估计。
[0078]图5图示了对于相机和IMU中的每一个的概念时间轴以及时间轴上的来自相机和IMU的输出。如图所示,IMU可以被配置为以高于相机的频率来提供输出。滑动时间窗口可以被配置为任何时间窗口,以及在图5所示的示例中,滑动时间窗口包含了三个相机图像和七个IMU数据输出。例如,相机图像输出和IMU数据输出能够由数据的时间戳来链接或关联,以便图像和頂U数据相关联,图像和頂U数据二者是都在大约相同时间收集的。
[0079]图6A至图6C图示了滑动时间窗口内的示例相机图像输出。例如,示出了停放的自行车的三个图像,而且在滑动时间窗口内,设备移动并捕获了所示的图像。图像的内容由于设备的移动而变化。在图6A中,能够确定图像的特征,并且代表性特征包括特征602、604、606、和608。图像中的特征602、604、606、和608包括特征跟踪算法能够锁定并贯穿多个帧跟随的图像中的特定点。特征602、604、606、和608包括对象的亮斑或暗斑或者边。
[0080]边检测技术可以识别数字图像中图像亮度急剧变化或不连续处的点。图像亮度急剧变化处的点能够被组织成被称为边的一组曲线区段。角检测是机器视觉系统内用来提取某类特征和推断图像内容的另一种方法,而且角能够被定义为两个边的交点。角也能够被定义为点,在该点的局部邻域中存在两个显著且不同的边方向。其他特征检测方法包括斑点检测,其指代旨在检测数字图像中与周围区相比,在诸如亮度或颜色的属性上不同的区域的方法。
[0081 ] 如图6A、图6B、和图6C之间所示出的,特征602、604、606、和608中的一些被包括在每个图像中以及可以确定这样的公共特征的路径。例如,在所有三个图像中都见到特征602和604,并且能够确定特征的路径。如上所述,可以使用平移运动通过线性变换来表征特征602和604的路径。
[0082 ]图7是基于相机图像和IMU数据的设备运动的示例估计的概念图示。如图7中所示,已经使用图像中特征的特征跟踪(诸如跟踪图6A至图6C所示的连续图像中的特征)来确定设备运动的示例相机估计。运动的估计被示出为随时间推移沿X轴的相对位置。该图还示出基于IMU数据的设备运动的估计,其有时从所示的相机估计以差异变化。例如,可以在时标上的任何时间、或者沿时标的多个实例处、或者在滑动时间窗口的开始和结束处测试所述差异,以便确定该差异是否超过了阈值。基于所期望的估计的精度,超过阈值能够基于仅一次超过、多次超过等。在差异大于阈值量且超过预设阈值(这两种情况都依据在阈值被超过的幅值和实例数)的示例中,能够确定附加位置数据。
[0083]图8是在时间轴上的基于相机图像和MU数据的设备运动的示例估计以及设备的附加位置数据的概念图示。例如,如位置(I)、位置(2)、位置(3)、和位置(4)的图中的点所示,能够周期性地确定设备的地理位置。在这个示例中,由于数据点沿着或邻近运动的IMU估计的路线,因此位置数据确定或验证了基于MU数据的运动的估计。
[0084]图9是设备运动的示例总体估计的概念图示。在这个示例中,设备运动的总体估计能够是,在考虑到设备的位置(4)处所示的位置变化以及与沿时标的各位置处的运动的相机估计之间示出的变化的情况下,所轻微修改的运动的IMU估计。例如,修改可以包括在差异大于阈值的任何时间帧处,将估计整形为相机估计与IMU估计的平均值。替选地,修改可以包括在差异大于阈值的任何时间帧处,使得路径穿过附加位置信息的(一个或多个)数据点(例如沿位置(4))。
[0085]图10是基于相机图像和IMU数据的设备运动的不例估计的另一概念图不。在图10中的这个示例中,运动的相机估计被示出为随时间推移几乎静止。例如,由设备所捕获的图像随时间推移可以大致相同,其指示了设备在此时间段上没有移动。图10也将设备运动的頂U估计图示为随时间推移几乎恒定地以恒定速率移动。图10可以图示设备在车中并且向前移动的示例,然而,所捕获的图像没有示出任何变化(例如设备没有在车内移动)。因此,根据图10的图形图示,在运动的相机估计与运动的MU估计之间存在差异,并且该差异可能至少在给定滑动时间窗口的一些时间帧期间超过了给定阈值。
[0086]图11是在时间轴上的基于相机图像和頂U数据的设备运动的示例估计以及设备的附加位置数据的概念图示。在图11中,由于运动的相机估计与运动的MU估计之间的差异超过了阈值,因此附加位置数据被确定和示出为位置(I)、位置(2)、位置(3)、和位置(4)的图上的数据点。在这个示例中,位置数据点几乎沿着设备运动的MU估计的路径。
[0087]图12是设备运动的示例总体估计的另一概念图示。在图12中,由于运动的相机估计静止而且位置数据支持运动的MU估计,因此运动的总体估计可以采取运动的頂U估计。
[0088]在一些示例内,能够将设备运动的估计提供为显示器上的表示。图13是示出设备运动的表示的示例并排视图的显示器。所述显示器可以是设备的显示器,或者从设备接收数据的另一显示器。在图13中,显示器的部分1300包括直播视频馈送或由设备捕获的图像的显示。显示器的另一部分1302包括设备所穿过的路径的鸟瞰表示1304。鸟瞰表示1304可以是设备运动的总体估计的自上向下的透视线表示(例如二维的表示)。例如,鸟瞰表示1304示出设备沿转弯的路径移动,以及在区段1306处,设备可能在楼梯井垂直向上移动。
[0089]尽管图13中所示的显示器是并排显示器,也可以提供多个单独的显示器。图13中所示的显示可以示出设备沿一个轴的运动,并且也能够实时提供显示。
[0090]在示例内,图像和IMU数据能够被收集并且与设备的位置相关联。在第一实例处,可能不知道设备的位置,以及因此,能够基于设备的参考架构中的第一坐标系来将图像和MU数据与设备的开始位置相关联。开始位置能够被定义为坐标(0,0,0),或者一些任意空间,并且可以被视为设备的原点。一旦执行了对具有特征的图像中的特征的辨别,就能够基于所辨别的特征的相应地理位置来将设备运动的总体估计修改为在第二坐标系中,所述特征具有对应的地理位置并且被存储在数据库中。例如,设备能够通过将图像发送至服务器并且接收对象的识别和对象的位置(例如位于特定街道的建筑)来执行图像中的特征的对象辨别。例如,能够使用平移线性变换来将设备的参考架构和相关联的参考坐标平移至所识别的对象的实际地理参考坐标内。
[0091]在一些实例中,例如,也能够基于来自GPS接收器或其他基于位置的接收器的数据来确定地理开始位置。
[0092]在其他示例内,能够基于所捕获的图像和所收集的IMU数据来确定设备位置的附加细节。在一个示例中,能够根据来自IMU的数据来确定重力向量以便确定相对于设备的定向的重力的方向,并且能够从设备的深度相机接收附加信息。能够基于垂直于重力向量的来自深度相机的信息中的特征来确定表示地面的来自深度相机的信息中的特征。一旦确定了地面位置的估计,则也能够基于到地面的距离确定设备高度的估计。
[0093]在另一示例中,能够基于设备运动的总体估计来确定在滑动时间窗口内设备的相机的姿态或定向。IMU数据可以指示设备的偏航、倾斜、和翻转,以及相机处于相对于设备的固定位置。因此,使用相机的固定相对位置和IMU数据,能够确定相机的定向。例如,在图像中的特征可以表示相对于相机倒置或成其他角度的对象的示例中,这可以是有帮助的,并且姿态/定向能够被用于为了特征跟踪的目的而将图像平移至竖直。
[0094]在示例内,计算设备能够被配置为基于来自计算设备的可用传感器的输出来执行运动跟踪。作为示例,设备的测程估计器可以被配置为利用来自可用传感器的任何输出以便生成计算设备的运动的估计。例如,计算设备可以位于阻挡相机镜头的口袋或背包中,并且因此图像数据可能是没用的。计算设备能够被配置为切换至运动运动跟踪的简档其他方法,诸如计步或来自IMU、GPS接收器、气压计等的输出。测程估计可以被配置为在传感器数据变为不可用时降低运动估计的精度。在相机被阻挡、WiFi/蓝牙系统在接入点的范围之外等的示例中,测程估计器仍然可以用来自可用传感器的输出来产生位置的估计。估计可以与考虑到来自可用传感器的所有观测和输出的概率或考虑到传感器输出中的不确定性或噪声的置信水平相关联。
[0095]应当理解,本文所述的布置仅出于示例目的。因此,本领域技术人员将意识到,其他布置和其他要素(例如,机器、接口、功能、次序、和功能的群组等)能够被替换使用,并且根据所期望的结果可以完全省略一些要素。此外,所描述的要素中的许多是功能实体,所述功能实体可以被实现为在任何合适的组合或位置中的离散或分布式组件,或与其他组件结合,或者被描述为独立结构的结构化组件可以被组合。
[0096]尽管本文已经公开了各个方面和实施例,但是其他方面和实施例对于本领域技术人员将是显而易见的。本文所公开的各个方面和实施例出于说明性目的并且不旨在进行限制,其中由所附权利要求书指示真正的范围,以及这样的权利要求所享有的等同物的全部范围。还应当理解,本文所使用的术语仅为了描述特定实施例,并且不旨在进行限制。
【主权项】
1.一种方法,包括: 接收在滑动时间窗口内的来自设备的惯性测量单元IMU的数据; 接收在所述滑动时间窗口内的来自所述设备的相机的图像; 基于来自所述頂U的所述数据,来确定所述设备的运动的頂U估计; 基于所述图像中的特征跟踪,来确定所述设备的运动的相机估计; 基于所述设备的运动的所述IMU估计和所述设备的运动的所述相机估计具有大于阈值量的差异,确定在所述滑动时间窗口内的所述设备的位置或速度中的一个或多个;以及确定由来自所述IMU的所述数据以及所述设备的所述位置或所述速度中的所述一个或多个所支持的、在所述滑动时间窗口内的所述设备的运动的总体估计。2.根据权利要求1所述的方法,进一步包括,将在所述滑动时间窗口内的来自所述相机的所述图像与在所述滑动时间窗口内的匹配时间段内的来自所述IMU的数据相关联。3.根据权利要求2所述的方法,进一步包括: 基于来自所述相机的所述图像之间的差异大于阈值量,将在所述滑动时间窗口内的来自所述相机的所述图像与在所述滑动时间窗口内的来自所述IMU的对应数据相关联。4.根据权利要求1所述的方法,进一步包括: 确定所述设备的运动的所述相机估计指示所述设备几乎静止;以及作为响应,相对于所述设备的垂直轴和水平轴确定所述设备的所述位置或所述速度中的所述一个或多个。5.根据权利要求1所述的方法,其中,确定在所述滑动时间窗口内的所述设备的位置或速度中的一个或多个包括:基于来自所述设备的位置感测传感器的一个或多个输出,来确定在所述滑动时间窗口内的所述设备的地理位置。6.根据权利要求1所述的方法,进一步包括: 确定来自所述相机的所述图像中的一个或多个特征在连续图像之间的移动; 将所述一个或多个特征与移动对象相关联;以及 使用与所述移动对象相关联的除所述一个或多个特征以外的特征来进行所述特征跟足示O7.根据权利要求1所述的方法,进一步包括: 确定来自所述相机的所述图像中的一个或多个特征在连续图像之间的移动; 将所述一个或多个特征与静止对象相关联;以及 使用与所述静止对象相关联的所述一个或多个特征来进行所述特征跟踪。8.根据权利要求1所述的方法,进一步包括: 基于来自所述相机的所述图像,来提供所述设备的视频馈送以用于显示;以及 提供所述设备的运动的所述总体估计的从上至下的透视线表示以用于显示。9.根据权利要求1所述的方法,进一步包括: 基于所述设备的参考架构中的第一坐标系来确定所述设备的开始位置;以及基于辨别所述图像中带有具有对应地理位置并且被存储在数据库中的特征的一个或多个特征,来基于一个或多个所辨别特征的相应地理位置将所述设备的运动的所述总体估计修改为在第二坐标系中。10.根据权利要求1所述的方法,进一步包括: 根据来自所述设备的所述MU的所述数据来确定重力向量; 接收来自所述设备的深度相机的信息; 基于来自与所述重力向量垂直的所述深度相机的所述信息中的所述特征,来确定表示地面的来自所述深度相机的所述信息中的特征;以及 基于到所述地面的距离,来确定所述设备的高度的估计。11.根据权利要求1所述的方法,进一步包括,基于所述设备的运动的所述总体估计,来确定在所述滑动时间窗口内的所述设备的所述相机的姿态。12.根据权利要求1所述的方法,进一步包括,随着所述滑动时间窗口变化以覆盖新的时间段,确定随时间推移的所述设备的运动的所述总体估计。13.根据权利要求1所述的方法,其中,所述设备包括多个传感器,以及其中,确定在所述滑动时间窗口内的所述设备的运动的所述总体估计包括,还基于来自所述多个传感器的输出来确定所述设备的运动的所述总体估计。14.根据权利要求13所述的方法,进一步包括: 基于来自所述多个传感器的给定传感器的输出是不可用的,来基于来自所述多个传感器中可用传感器的给定输出确定所述设备的运动的所述总体估计。15.—种被配置为存储指令的计算机可读存储器,所述指令当由设备执行时,致使所述设备执行功能,所述功能包括: 接收在滑动时间窗口内的来自所述设备的惯性测量单元IMU的数据; 接收在所述滑动时间窗口内的来自所述设备的相机的图像; 基于来自所述頂U的所述数据,来确定所述设备的运动的頂U估计; 基于所述图像中的特征跟踪,来确定所述设备的运动的相机估计; 基于所述设备的运动的所述IMU估计和所述设备的运动的所述相机估计具有大于阈值量的差异,确定在所述滑动时间窗口内的所述设备的位置或速度中的一个或多个;以及确定由来自所述IMU的所述数据以及所述设备的所述位置或所述速度中的所述一个或多个所支持的、在所述滑动时间窗口内的所述设备的运动的总体估计。16.根据权利要求15所述的计算机可读存储器,其中,所述功能进一步包括: 确定所述设备的运动的所述相机估计指示所述设备几乎静止;以及 作为响应,相对于所述设备的垂直轴和水平轴确定所述设备的所述位置或所述速度中的一个或多个。17.根据权利要求15所述的计算机可读存储器,其中,所述功能进一步包括: 基于所述设备的参考架构中的第一坐标系来确定所述设备的开始位置;以及 基于辨别所述图像中带有具有对应地理位置并且被存储在数据库中的特征的一个或多个特征,来基于一个或多个所辨别特征的相应地理位置将所述设备的运动的所述总体估计修改为在第二坐标系中。18.—种设备,包括: 一个或多个处理器;以及 被配置为存储指令的数据储存器,所述指令当由所述一个或多个处理器执行时,致使所述设备执行功能,所述功能包括: 接收在滑动时间窗口内的来自所述设备的惯性测量单元IMU的数据; 接收在所述滑动时间窗口内的来自所述设备的相机的图像; 基于来自所述MU的所述数据来确定所述设备的运动的頂U估计; 基于所述图像中的特征跟踪,来确定所述设备的运动的相机估计; 基于所述设备的运动的所述IMU估计和所述设备的运动的所述相机估计具有大于阈值量的差异,确定在所述滑动时间窗口内的所述设备的位置或速度中的一个或多个;以及确定由来自所述IMU的所述数据以及所述设备的所述位置或所述速度中的所述一个或多个所支持的、在所述滑动时间窗口内的所述设备的运动的总体估计。19.根据权利要求18所述的设备,其中,所述功能进一步包括,基于所述设备的运动的所述总体估计,来确定在所述滑动时间窗口内的所述设备的所述相机的姿态。20.根据权利要求18所述的设备,进一步包括: 多个传感器,以及 其中,确定在所述滑动时间窗口内的所述设备的运动的所述总体估计包括,还基于来自所述多个传感器的输出来确定所述设备的运动的所述总体估计,以及 基于来自所述多个传感器的给定传感器的输出是不可用的,来基于来自所述多个传感器中可用传感器的给定输出确定所述设备的运动的所述总体估计。
【文档编号】G06T7/00GK105940429SQ201480074351
【公开日】2016年9月14日
【申请日】2014年12月29日
【发明人】乔尔·黑施, 约翰尼·李, 西蒙·吕嫩
【申请人】谷歌技术控股有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1