CN106489170A - 基于视觉的惯性导航 - Google Patents
基于视觉的惯性导航 Download PDFInfo
- Publication number
- CN106489170A CN106489170A CN201480055944.7A CN201480055944A CN106489170A CN 106489170 A CN106489170 A CN 106489170A CN 201480055944 A CN201480055944 A CN 201480055944A CN 106489170 A CN106489170 A CN 106489170A
- Authority
- CN
- China
- Prior art keywords
- information
- window
- variable
- equipment
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 65
- 238000005259 measurement Methods 0.000 claims abstract description 31
- 238000012805 post-processing Methods 0.000 claims abstract description 18
- 230000008859 change Effects 0.000 claims abstract description 11
- 239000011159 matrix material Substances 0.000 claims description 169
- 230000015654 memory Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 9
- 230000001133 acceleration Effects 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000001052 transient effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 42
- 230000006870 function Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 239000011521 glass Substances 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000017105 transposition Effects 0.000 description 4
- 206010068829 Overconfidence Diseases 0.000 description 3
- 238000005096 rolling process Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 206010011469 Crying Diseases 0.000 description 1
- QOSSAOTZNIDXMA-UHFFFAOYSA-N Dicylcohexylcarbodiimide Chemical compound C1CCCCC1N=C=NC1CCCCC1 QOSSAOTZNIDXMA-UHFFFAOYSA-N 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
- G01C21/1652—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with ranging devices, e.g. LIDAR or RADAR
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
- G01C21/1656—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/183—Compensation of inertial measurements, e.g. for temperature effects
- G01C21/188—Compensation of inertial measurements, e.g. for temperature effects for accumulated errors, e.g. by coupling inertial systems with absolute positioning systems
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Navigation (AREA)
- User Interface Of Digital Computer (AREA)
- Traffic Control Systems (AREA)
- Gyroscopes (AREA)
Abstract
本发明公开了一种方法,该方法包括:接收来自预处理模块的传感器测量,其中该传感器测量包括设备的图像数据和惯性数据;利用处理器将从该传感器测量得出的信息从与第一时间窗口相关联的第一组变量变换为与第二时间窗口相关联的第二组变量,其中第一窗口和第二窗口在时间上连续地重叠;以及基于所变换的信息将设备的状态输出到后处理模块。
Description
相关申请的交叉引用
本申请要求2013年8月12日提交的美国专利申请序列号61/864,754的优先权,其内容全文以引用方式并入本文中。
背景技术
随着便携式计算设备诸如智能电话、智能眼镜和其他设备越来越普及,为此类设备提供定位和地图绘制能力受到了关注。定位可通过依赖于使用全球定位系统(GPS)信号或小区塔信号三角测量来计算位置而部分地实现。地图绘制可利用企业解决方案来部分地实现,诸如使配置有专门设备的车辆在街道上穿行并对街道进行地图绘制。定位和地图绘制通过地图和基于位置的服务使消费者受益。然而,此类服务往往限于在室外使用,因为GPS信号或小区塔信号在建筑物内可能受到阻碍,并且因为便携式计算设备的地图绘制通常尚未延伸到室内环境。此外,相对于位置而言,商用定位和地图绘制服务通常不能提供超过几米的精确度。
基于视觉的惯性导航系统依赖于从图像和惯性测量设备获得的信息,以便实现定位和/或地图绘制。由于基于视觉的惯性导航系统不需要来自GPS或小区塔的信号,所以此类系统可在GPS和小区信号不能到达或者由于干扰而在其中不可用的室内使用。此外,基于视觉的惯性导航系统使得能够实现例如厘米级的非常高的位置精确度。然而,基于视觉的惯性导航系统通常是计算密集型的,因为其需要完全实时地处理大量从图像检测器(诸如相机)获取的图像数据和由惯性测量单元(IMU)生成的惯性读数。此外,为了实现位置的高精确度测量,与先前姿态(位置和取向)、惯性测量和图像特征有关的信息的历史通常被存储,因此要求设备使用大量的存储空间并因此使用大量的计算时间来处理该信息。
发明内容
本公开涉及基于视觉的惯性导航。
一般来讲,在第一方面,本公开的主题可体现在用于执行导航的电子计算系统中,其中电子计算系统包括用于实现滑动窗反向滤波器模块的电子处理器和存储器,并且其中滑动窗反向滤波器模块被配置为:接收来自预处理模块的传感器测量,其中传感器测量包括设备的图像数据和惯性数据;将从传感器测量得出的信息从与第一时间窗口相关联的第一组变量变换为与第二时间窗口相关联的第二组变量,其中第一窗口和第二窗口在时间上连续地重叠;以及基于所变换的信息将设备的状态输出到后处理模块。该对中的每个窗口与对应的第一信息矩阵相关联,并且每个第一信息矩阵用于多个第一变量和多个第二变量,该多个第一变量表示邻近设备的至少一个对象的位置和/或取向,该多个第二变量表示设备在两个或更多个时间点处的状态。变换该信息包括:对与第一窗口的第一信息矩阵相关联的第一变量的至少子组进行边缘化以获得第二信息矩阵,该第二信息矩阵仍然保持与多个第二变量的关联;对与第二信息矩阵相关联的第二变量的子组进行边缘化以获得第三信息矩阵;以及对第三信息矩阵进行缩放以获得第四信息矩阵,其中第四信息矩阵是当该对中的第一窗口和第二窗口重叠时的时间点处设备的状态和邻近设备的对象的位置和/或取向的概括表示。
在另一方面,本公开的主题可体现在计算机实现的方法中,该方法包括:接收来自预处理模块的传感器测量,其中传感器测量包括设备的图像数据和惯性数据;利用处理器将从传感器测量得出的信息从与第一时间窗口相关联的第一组变量变换为与第二时间窗口相关联的第二组变量,其中第一窗口和第二窗口在时间上连续地重叠;以及基于所变换的信息将设备的状态输出到后处理模块,其中该对中的每个窗口与对应的第一信息矩阵相关联,并且每个第一信息矩阵用于多个第一变量和多个第二变量,该多个第一变量表示邻近设备的至少一个对象的位置和/或取向,该多个第二变量表示设备在两个或更多个时间点处的状态。变换该信息包括:对与第一窗口的第一信息矩阵相关联的第一变量的至少子组进行边缘化以获得第二信息矩阵,第二信息矩阵仍然保持与所述多个第二变量的关联;对与第二信息矩阵相关联的第二变量的子组进行边缘化以获得第三信息矩阵;以及对第三信息矩阵进行缩放以获得第四信息矩阵,其中第四信息矩阵是当该对中的第一窗口和第二窗口重叠时的时间点处设备的状态和邻近设备的对象的位置和/或取向的概括表示。
在另一方面,本公开的主题可体现在编码有计算机程序指令的非暂态计算机存储介质中,计算机程序指令在被一个或多个电子计算设备执行时使一个或多个电子计算设备执行包括以下的操作:接收来自预处理模块的传感器测量,其中传感器测量包括设备的图像数据和惯性数据;利用处理器将从传感器测量得出的信息从与第一时间窗口相关联的第一组变量变换为与第二时间窗口相关联的第二组变量,其中第一窗口和第二窗口在时间上连续地重叠;以及基于所变换的信息将设备的状态输出到后处理模块,其中该对中的每个窗口与对应的第一信息矩阵相关联,并且每个第一信息矩阵用于多个第一变量和多个第二变量,该多个第一变量表示邻近设备的至少一个对象的位置和/或取向,该多个第二变量表示设备在两个或更多个时间点处的状态。变换该信息包括:对与第一窗口的第一信息矩阵相关联的第一变量的至少子组进行边缘化以获得第二信息矩阵,该第二信息矩阵仍然保持与多个第二变量的关联;对与第二信息矩阵相关联的第二变量的子组进行边缘化以获得第三信息矩阵;以及对第三信息矩阵进行缩放以获得第四信息矩阵,其中第四信息矩阵是当该对中的第一窗口和第二窗口重叠时的时间点处设备的状态和邻近设备的对象的位置和/或取向的概括表示。
这些方法、介质、和/或系统的具体实施可包括以下特征和/或其他方面的特征中的一者或多者。例如在一些具体实施中,电子计算系统还可包括:预处理模块、耦接到预处理模块的图像检测单元,其中预处理模块被配置为接收由图像检测单元捕获的多个图像并从多个图像得出图像数据;和耦接到预处理模块的运动感测单元,其中预处理模块被配置为接收来自运动感测单元的惯性数据。
在一些具体实施中,与第一窗口相关联的第一组变量的子组和与第二窗口相关联的第二组变量的子组在时间上重叠。重叠的时间段可对应于存在于第一窗口和第二窗口两者中的任何时间段。特别地,其可对应于具有存在于第一窗口和第二窗口两者中的最早时间的那组变量。
在一些具体实施中,对于每个窗口,多个第一变量表示跨多个图像的图像特征的3D位置和/或取向,并且多个第二变量包括加速度数据和角速度数据。设备的状态还可包括两个感测设备的内在参数和外在参数(例如运动感测单元的偏差和运动单元相对于相机的相对姿态)。
在一些具体实施中,与每个窗口相关联的第一信息矩阵包括:关于表示邻近设备的对象的位置或取向估计的至少一个变量的第一信息;和关于表示设备状态的估计的至少一个变量的第二信息;以及第一信息与第二信息之间的共享信息。共享信息可表示邻近设备的对象的位置或取向的估计与设备状态的估计之间的共享置信度。对与第一窗口的第一信息矩阵相关联的第一变量的至少子组进行边缘化可包括对对应的共享信息进行边缘化。对第三信息矩阵进行缩放可包括将第三信息矩阵除以常数或乘以常数。该常数可等于第一窗口的大小,诸如在第一窗口中捕获的测量的数量或者与第一窗口相关联的时间长度。
某些具体实施可具有特别的优点。例如在一些具体实施中,本文所公开的技术使得能够保持关于设备在不同时间的惯性状态和邻近设备所观察到的对象的位置和/或取向之间的约束的信息,而不需要同时处理在长的时间段上生成的所有约束。此外,虽然减少了用以处理约束的过去变量的数量,但本公开的技术使得能够计算设备在目前情况下的惯性状态的高精度估计(例如厘米级的位置误差),同时避免对其过度自信。
除非另有指明,本文所使用的所有技术和科技术语具有与本文公开的主题所属领域中的普通技术人员的一般理解相同的含义。虽然与本文所述的那些类似或等同的方法、材料、设备和系统可用于实践或测试本发明,但下面描述了合适的方法、材料、设备和系统。本文提到的所有出版物、专利申请、专利、和其他参考资料均以引用的方式全文并入本文。此外,本文所述的示例是用于示例性的目的,而并非旨在进行限制。
在下面的附图和具体实施方式中示出了一种或多种具体实施的细节。其他特征和优点将在具体实施方式和附图以及权利要求中显而易见。
附图说明
图1是示出叠置有由基于视觉的惯性导航系统计算的路径的建筑平面图的示意图。
图2是示出基于视觉的惯性导航设备的示例的示意图。
图3是示出一种用于利用基于视觉的惯性导航来计算位置和取向的估计的示例性过程的流程图。
图4是示出一种用于执行集束调整的示例性过程的流程图。
图5是示出信息矩阵的一个示例的示意图。
图6是示出一种用于执行稀疏结构边缘化的示例性过程的流程图。
图7是示出第二信息矩阵的一个示例的示意图。
图8是示出一种用于执行延迟运动边缘化的示例性过程的流程图。
图9示出了可与本文所述的技术一起使用的移动计算设备的一个示例的示意图。
图10是由包括基于视觉的惯性导航系统的设备的显示器所输出的图像的一个示例,其中虚拟箭头叠置在图像上。
图11是由包括基于视觉的惯性导航系统的设备的显示器所输出的图像的一个示例,其中虚拟路径叠置在图像上。
具体实施方式
对于基于视觉的惯性导航系统,关于设备在一个时间处的位置和取向的信息、或者所观察到的图像特征的3D位置往往与关于设备在先前时间的位置和取向的信息高度相关,因为通常目前捕获的图像内的特征能够在一个或多个先前图像中找到。在数学上以确定性或随机测量约束的形式表达的此类相关可用于提高基于视觉的惯性导航系统内的设备的位置和取向的估计的准确性。然而,处理那些测量可能是计算繁重的,尤其是对于可能具有有限计算能力的设备(诸如可穿戴计算设备)。此外,此类设备可能使用受困于非线性的低端相机/检测器和IMU,从而增大了保持以及同时处理甚至更多过去的数据的需要使得能够产生准确性高的估计。随着图像和惯性读数的数量增加,计算可能变得难以应付。
本文所公开的技术涵盖用于保持关于基于视觉的惯性导航系统中观察到的、设备在不同时间处的惯性状态和邻近设备的对象的位置和/或取向之间的约束的信息的方法,而不需要系统同时处理在长的时间段上生成的所有约束。此外,虽然减少了用以处理约束的过去变量的数量,但本公开的技术使得能够计算设备在目前情况下的惯性状态的高准确性估计(例如厘米级的位置误差),同时避免对其过度自信。
为了将用以优化约束的过去变量的数量最小化,使用滑动窗反向滤波器(SWF),其中随着工作于电子计算设备(例如智能电话、电子平板设备、或智能眼镜)上的基于视觉的惯性导航系统捕获图像,SWF处理来自图像的重叠窗口的信息。利用图像中跟踪的特征和从同样工作于该设备上的IMU获得的对应信息,SWF获得设备的惯性状态的估计(例如位置、取向、速度、和/或陀螺仪和加速度计偏差),这可被简单地称为设备的“状态”。SWF还获得邻近设备的对象的位置和/或取向的估计,其中该对象在一些情况下被表示为正在图像之间被跟踪的特征的3D位置。对于图像窗口中的每个图像,计算设备的惯性状态以及对象的位置和/或取向的估计。对于每个图像窗口,SWF然后通过将这些估计转换为关于设备在单个时间点T处的状态的估计来概括这些估计。对于一对窗口,从第一窗口概括的信息然后可被携带到第二窗口,只要该对窗口在至少一个相同时间点T重叠。从第一窗口概括的信息然后可在后续处理步骤中用于第二窗口,以估计设备在其他时间点的状态。概括和传输各对重叠窗口之间的信息的过程因此保持关于不同时间处设备的惯性状态和邻近设备的对象的位置和/或取向之间的约束的信息,同时将用以优化约束的过去变量的数量最小化。
图1是示出叠置有由具有根据本公开配置的基于视觉的惯性导航系统的电子计算设备计算的路径10的建筑平面图的示意图。该建筑平面图是包括不同部门(例如管道部门、工具和器材部门等)的一般性五金店的概貌,其中阴影区域表示货架,并且白色区域表示过道以及消费者可在其中移动的其他商店区域。设备可为随着人移动穿过商店而记录图像的便携式电子计算设备(例如照相手机、智能电话、智能眼镜、头戴式显示器或测量设备)。便携式电子计算设备还包括具有记录设备的惯性数据诸如线性加速度和角速度的部件(例如加速度计和陀螺仪)的IMU。在记录图像和惯性数据期间,基于视觉的惯性导航系统计算并存储计算设备相对于起始点的状态的估计,通常被称为“航迹推算”的过程。位置可用于计算路径10,该路经被存储在设备的存储器中和/或叠置在建筑物平面图的图像上,如图1所示,并且该路经可被输出到显示器以供用户查看。
图2是示出基于视觉的惯性导航设备100的示例的示意图,该基于视觉的惯性导航设备诸如是可用于产生图1的路经10的电子计算设备。设备100包括构成基于视觉的惯性导航系统的多个部件。例如,设备100包括将光学图像转换为电子信号的图像传感器102,诸如数字相机。传感器102可使用任何适当的图像感测部件,诸如数字电荷耦合器件(CCD)、互补金属氧化物半导体(CMOS)像素传感器或红外传感器。另选地,图像传感器102可包括深度传感器、立体相机对、闪测激光雷达传感器、激光传感器或这些的任何组合。图像传感器102可完全以硬件形成,或者也可被配置为包括用于修改检测到的图像的软件。设备100还包括惯性测量单元104。IMU 104可包括若干电子硬件部件,包括三轴陀螺仪和加速度计,用于记录设备100的惯性数据。例如,IMU 104可对设备的六个自由度(设备加速度的X、Y和Z笛卡尔坐标、以及设备角速度的滚转、俯仰、和偏航分量)进行测量和报告。IMU 104也可输出其他惯性数据。各种IMU是可商购获得的,或者被预安装在便携式电子计算设备上。
设备100还包括预处理模块106,其接收从图像传感器102检测到的图像以及由IMU104记录的惯性数据。由图像传感器102记录并且由模块106处理的图像也可称为“帧”。预处理模块106可以是电子硬件、软件、或者电子硬件和软件两者的组合。除了其他功能之外,预处理模块106在所记录帧内执行特征跟踪,并将惯性数据与帧本身相关联。图像特征对应于表示帧中的对象或对象的一部分的特定位置/像素或一组像素的图像坐标(例如x-y坐标)。预处理模块106计算“特征轨迹”,其中特征轨迹是表示跨由图像传感器102获得的两个或更多个帧跟踪的单个特征的位置的一系列二维点。预处理模块106通过在第一帧中标识一个或多个图像特征,然后将这些一个或多个图像特征与连续帧中的一个或多个对应的图像特征进行匹配来生成特征轨迹。本领域中已知的各种技术可用于获得特征轨迹。例如,图像特征的标识可通过以下方式来执行:针对每个像素评估打分函数(诸如在Harris角点检测器或拉普拉斯算子中使用的打分函数),然后将得分比其任何相邻像素都高的像素指定为图像特征。然后可通过将在第一帧中围绕该图像特征居中的像素(或其函数)的矩形阵列与在另一帧中在图像特征处居中的像素(或其函数)的矩形阵列进行比较来在帧之间匹配图像特征。通过在连续对的帧上匹配图像特征,预处理模块106构建特征轨迹列表,其中每个特征轨迹包含跨帧的一系列图像特征位置。模块106标识的特征轨迹的数量可不同,并且在一些具体实施中可取决于基于视觉的惯性导航系统正被用于的最终用户应用。
预处理模块106还被配置为将从图像传感器102接收的帧的一个子组选择为“关键帧”。关键帧是由预处理模块选择的任何帧。例如,对于从图像传感器102接收的10个帧的序列,预处理模块102可将第一帧和最后一帧指定为关键帧。模块106可基于一个或多个参数将帧指定为关键帧,所述参数诸如是所期望的关键帧频率,或者是与在当前帧中标识或者在一对帧中匹配的图像特征的数量有关的统计值。也可使用其他判定规则来选择关键帧。预处理模块106还将关键帧序列组织成K个连续关键帧的群组,其中K是预先限定的参数。每个关键帧群组(即图像组)可被称为窗口。随着从图像传感器102接收图像,模块106可将关键帧组织成重叠窗口的群组,其中每个到来的窗口与先前窗口重叠至少一个关键帧但不多于M个关键帧。M是可在1和K之间取值的参数。例如,假设K等于5并且M等于3,则模块106产生的第一窗口可包括关键帧(1、2、3、4、5),而第二窗口可包括关键帧(3、4、5、6、7),并且第三窗口可包括关键帧(4、6、7、8、9)。因此,在第一窗口和第二窗口之间存在三个重叠关键帧(即关键帧3、4和5),并且在第二窗口和第三窗口之间也存在三个重叠关键帧(即关键帧4、6和7)。此外,如上述示例中看到的那样,预处理模块106选择的关键帧并非必须是连续的。相反,一个或多个关键帧可被丢弃或忽略。此外,K(窗口大小)的值和M(重叠关键帧的数量)的值可随时间变化。
预处理模块106将每个特征轨迹与长度等于当前窗口中的关键帧数量的二元向量(例如分别表示状态“真”和“假”的1和0的向量)相关联。二元向量指示窗口的哪些关键帧包括所跟踪的图像特征。例如,如果窗口大小为5并且正被处理的当前窗口包含关键帧(3、4、5、6、7),则可在窗口中总共5个关键帧的3个关键帧(5、6、7)中的不同位置处识别一个特征轨迹。该特定特征轨迹将具有与其相关联的大小为5的二元向量,诸如(0,0,1,1,1),其中前两个0指示在关键帧3和4中没有观察到该特征,并且之后的三个1指示在关键帧5、6和7中观察到了该特征。二元向量然后可在随后的位置和取向计算期间使用,以指示伪图像特征(异常值)的存在。也就是说,该向量中与假元素(即0)相关联的特征位置将被忽略,而与真元素(即1)相关联的特征位置将用于进一步计算。例如,如果关键帧窗口(3、4、5、6、7)中的关键帧6上的特征轨迹的2D位置在处理期间在某个点处被确定为是异常值,则关键帧6然后将在二元向量中被标记为假,使得该向量变为(0,0,1,0,1),并且关键帧6中的特征的观察将在进一步处理期间被忽略,而关于关键帧6的其他信息可仍然在进一步处理中使用。
预处理模块106还产生包含在每个连续的关键帧对之间以及在每个连续的关键帧对时捕获的那些惯性读数的惯性读数阵列。也就是说,模块106从IMU 104接收惯性读数,并标识在或接近每个关键帧被图像传感器102捕获时出现的读数。模块106然后标识在每个关键帧和其下一关键帧的时间之间出现的所有读数。因此,预处理模块106生成惯性读数序列,开始于在或接近窗口中的第一关键帧被捕获时的读数,并且结束于在或接近窗口中的最后一个关键帧被捕获时的读数,并且包含那些端值之间出现的所有惯性读数。每个惯性读数包括六个测量(例如浮点数),前三个是指加速度计所测量的线性加速度的X、Y、和Z分量,并且后三个是指陀螺仪所测量的角速度的滚转、俯仰、和偏航分量。
预处理模块106还计算SWF处理第一关键帧时设备的状态的初始估计。在一些具体实施中,初始状态估计的计算如下进行。来自短的初始时间段的加速度计读数被平均并归一化,并且设备的滚转和俯仰取向被初始化为将向量(0,0,1)映射到归一化为1的该平均加速度计读数的旋转,而偏航可被设置为任何任意值。来自同一个短的初始时间段的陀螺仪读数被平均,并且结果被用作为陀螺仪偏差的初始估计。初始位置、速度、和加速度计偏差被设置为0。这些偏差对应于运动感测单元的测量中的误差,其可能随时间变化。
预处理模块106还计算第二和后续关键帧时设备的状态的第一估计,例如利用传播算法来计算。传播算法取第一时间和第二时间之间的惯性读数序列以及设备在第一时间处的惯性状态,并产生设备在第二时间处的惯性状态的估计。该初始估计通常准确度差,但其被后续处理步骤用来计算设备状态的更准确估计。
预处理模块106还利用例如三角测量算法计算邻近设备的对象的位置和/或取向的初始估计。三角测量算法取在两个或更多个不同关键帧中观察到并匹配单个图像特征的位置(在特征轨迹中提供)以及设备在这两个关键帧时的状态,并产生该图像特征的3D位置的估计。初始估计通常准确度差,但其被后续处理步骤用来计算3D位置的更准确估计。针对设备的姿态,或者针对任何其他参照系来表述匹配的图像特征的所估计的3D位置。此外,匹配的图像特征的每个3D位置被考虑为是真实世界中的对象或对象的一部分。因此,初始估计是邻近设备的对象的位置和/或取向的估计。
对于预处理模块106所标识的每个窗口,模块106将特征轨迹信息(其包括特征轨迹、与特征轨迹相关联的二元向量、和表示跨邻近设备的对象的位置和/或取向的不同关键帧的每个匹配的图像特征的3D位置的初始估计)和惯性数据(其包括每个窗口中关键帧的惯性读数序列和设备100在每个关键帧被捕获时的状态的初始估计)传递给SWF模块108。
SWF模块108可以是电子硬件、软件、或者电子硬件和软件两者的组合。SWF模块108包括若干子模块,它们一起用于确定邻近设备的对象的位置和/或取向的估计、以及设备100在各个时间点处的状态的估计。子模块包括集束调整(BA)模块110、稀疏结构边缘化(SSM)模块112、和延迟运动边缘化(DMM)模块114。SWF模块108一次一个窗口地处理从预处理模块106输入的数据。对于每个窗口,SWF模块108保持设备在各个时间点处的状态的估计,以及表示邻近设备的对象的位置和/或取向的被跟踪图像特征的3D位置。这些估计一起被称为“模型参数”。例如,模型参数包括表示邻近设备100的对象的位置和/或取向的变量和表示设备100在窗口中的一个或多个关键帧时的状态(例如位置、取向、速度、和/或惯性偏差)的估计的变量。SWF模块108还保持与窗口相关联的信息矩阵H,其表示关于当前模型参数可用的信息,其中该信息描述模型参数的置信度。因此H与表示邻近设备的对象的位置和/或取向的估计的一组变量以及表示设备在(或接近)每个关键帧时的状态的估计的另一组变量相关联。信息矩阵H可包含多个不同元素,其中一些元素表示关于第一组变量的信息(位置和/或取向估计的置信度),一些元素表示关于第二组变量的信息(设备状态的估计的置信度),并且其他一些元素表示第一组变量和第二组变量之间的共享信息,其中共享信息表示第一组变量和第二组变量之间的共享置信度。关于信息矩阵的另外的细节可例如在Triggs等人于2010年12月20日发表的“Bundle Adjustment-A Modern Synthesis”第1-71页中找到,其全文以引用方式并入本文。当SWF模块108第一次工作时,模块108用设备状态针对一个或多个初始关键帧的估计来初始化。
BA模块110、SSM模块112、和DMM模块114结合工作,以随着每个新窗口被接收而更新新的模型参数。BA模块110保持模型参数并将模型参数输出到后处理模块116。SSM模块112和DMM模块114执行边缘化。边缘化过程减少与信息矩阵H相关联的变量的数量,并产生新的信息矩阵,关于被减少变量的信息的概要已经被折叠到该新的信息矩阵中。因此,H中的一些元素被概括到H中的其他元素中,从而产生新的更小的信息矩阵。应该指出的是,SWF模块仍然保持新的信息矩阵中元素之间的关联;即,其保持尚未被概括的变量之间的关联。特别地,通过将新的信息矩阵中未被概括的元素重新相关联来将变量和H中的元素之间的关联带入新的信息矩阵中。
边缘化的目的是将先前窗口内的信息变换到新窗口内的信息上,以及将关于一组模型参数的信息转换到关于这些模型参数的子组的信息上。当SWF模块108接收新窗口时,模块108获得对与新的关键帧相关联的新的特征轨迹和惯性读数的访问权限,但也丢弃与在新窗口中不存在的旧关键帧相关联的特征轨迹和惯性读数。如果SWF模块108从不丢弃任何特征轨迹或惯性读数,则处理时间会无限制地增加。相反,如果SWF模块108在没有执行边缘化的情况下丢弃特征轨迹和惯性读数,则所计算的模型参数估计将是次优的,因为这是在没有考虑以前的有关数据的情况下进行的。因此,通过减少用以解决优化问题的模型参数的总数量,边缘化降低了SWF模块108的计算负担,但也通过在每个窗口与下一窗口之间概括和变换信息而随时间推移保持一致的模型估计。
从SWF模块108接收模型参数的后处理模块116可包括根据用户应用利用包含在模型参数中的信息的各种算法/程序和/或硬件。例如,后处理模块116可包括使用由SWF模块108输出的模型参数来确定设备100的路径历史并将路径历史存储在设备存储器中和/或将路径历史重叠在输出到显示器的地图(诸如如图1所示)上的程序。也就是说,随着SWF模块108输出每组新的模型参数,后处理模块116采取针对设备100在每个关键帧时确定的3D特征位置估计和设备状态估计,并将这些值添加到设备100的历史位置和取向值的集合(例如阵列)。位置估计然后可被设备100标绘在地图或其他网格上以示出设备行进的路径。
图3是示出由SWF模块108执行的一种用于计算模型参数的估计的示例性过程300的流程图。参考图2的设备100描述过程300。在从预处理模块106接收(302)与每个新窗口相关联的特征轨迹信息和惯性读数时,SWF模块108将该数据提供给BA模块110。BA模块110执行集束调整(304)来基于当前接收的特征轨迹和惯性读数更新模型参数。为了执行该调整,BA模型110还接收与先前计算的信息矩阵H先前有关的数据。一般来讲,先前信息矩阵H先前是由DMM模块114针对在当前窗口之前接收的窗口计算的。另选地,当SWF模块108还没有处理任何先前窗口时,H先前在基于视觉的惯性导航过程的初始化期间计算。BA模块110产生模型参数的更新的估计以及表示SWF模块的关于模型参数的信息的更新的信息矩阵H。关于集束调整的另外的细节可例如在Triggs等人的“Bundle Adjustment-A Modern Synthesis”中找到,其全文以引用方式并入本文。
在更新模型参数和信息矩阵H之后,BA模块110将模型参数和信息矩阵H传递给SSM模块112,该SSM模块然后执行稀疏结构边缘化(306)。稀疏结构边缘化的目的是将来自所跟踪特征的信息变换为关于设备在当前窗口内的每个关键帧时的状态的信息。也就是说,SSM模块112执行的边缘化过程产生尺寸更小的修改的信息矩阵,其包含表示关于设备在当前窗口中的每个关键帧时的状态的边缘信息的多个值。所跟踪特征的信息的边缘化因此降低了后续步骤中处理信息矩阵的计算负担。修改的信息矩阵可以是新的矩阵或者可以被保持为是相同的原始信息矩阵H,其中原始信息矩阵H的子组被边缘化到同一矩阵H的其他子组中,并且边缘化的子组在后续步骤中被忽略,从而实现降低后续步骤中处理信息矩阵的计算负担的相同结果。
SSM模块112将包含边缘信息值的修改的矩阵输出到DMM模块114。DMM模块然后对修改的矩阵执行延迟运动边缘化(308)。延迟运动边缘化的目的是投射对于除了指定数量的关键帧之外的所有关键帧的关于设备状态的信息,因此进一步减小信息矩阵的大小以及对设备100造成的计算负担。在另选的具体实施中,DMM模块114相对于从修改的信息矩阵获得的协方差矩阵而不是相对于修改的信息矩阵自身来执行延迟运动边缘化。在该具体实施中,首先计算SSM模块112产生的修改的信息矩阵的逆矩阵,这得到协方差矩阵。然后对协方差矩阵执行延迟运动边缘化,并且对输出矩阵求逆。
在任一种情况下,来自DMM模块114的输出矩阵被传递回BA模块110,并作为先前信息矩阵H先前被用在相对于由预处理模块106标识的新窗口的下一集束调整过程中。此外,针对SWF模块108接收的一些窗口,后处理模块116可从BA模块110提取更新的对应模型参数和/或与这些模型参数有关的信息矩阵。例如,后处理模块116可从BA模块110提取最新的模型参数,以获得设备的更新位置。为了简化,也可将后处理模块116从BA模块提取最新的模型参数的过程描述为BA模块将信息输出到后处理模块116,如图3的框310中所示。
下面提供关于BA模块110、SSM模块112和DMM模块114执行的操作的进一步细节。图4是示出一种用于执行集束调整的过程的流程图。如上所述,BA模块110首先接收(402)第一窗口中的关键帧的特征轨迹信息和惯性读数,以及先前信息矩阵H先前。利用所接收的特征轨迹信息、惯性读数、和先前信息矩阵H先前,BA模块110然后更新模型参数并计算(404)与模型参数相关联的当前信息矩阵H(404)。
计算当前信息矩阵H的示例描述如下。设x当前为当前模型参数,其是在初始化期间由预处理模块计算的,或者是从集束调整的先前迭代带入的。针对图像特征计算第一雅可比矩阵JV,从而将x当前与图像特征相关。特别地,JV的元素被计算为是从3D特征位置到2D图像特征的转换的一阶导数。还针对图像特征计算残余向量rV。特别地,rV的元素被计算为是每个图像特征的位置与当前模型参数针对每个图像特征预测的位置之间的差。可针对当前窗口中的每对连续关键帧之间的惯性读数计算第二雅可比矩阵JI。第二雅可比矩阵基于惯性读数来相关一些模型参数x当前。特别地,JI的元素被计算为是上述传播函数的一阶导数。还为惯性读数计算残余向量rI。特别地,rI的元素被计算为是由传播算法针对每个关键帧输出的设备状态与当前模型参数针对每个关键帧预测的设备状态之间的差。先前估计x当前和信息矩阵H先前由对先前窗口执行的延迟运动边缘化过程来提供(或者如果是第一窗口,则在初始化时提供)。计算先前残余r先前,其中r先前表示每个关键帧时设备状态的当前估计与其先前估计之间的差。还计算先前信息矩阵H先前的乔里斯基分解L先前。
当前信息矩阵H然后可表述如下:
其中JV T是针对图像特征计算的第一雅可比矩阵的转置,并且JI T是针对惯性读数计算的第二雅可比矩阵的转置。等式中的第一项、第二项和第三项可对应于不同大小的矩阵。例如,由于要在下文中更详细介绍的边缘化过程,先前信息矩阵H先前可比第一雅可比矩阵和第二雅可比矩阵小。在这样的情况下,完全填充以零的行和列视情况而被添加到这三个项中的一者或多者,以确保一个项中的行和列与每个其他项中的对应行和列相关联到相同变量。
BA模块110然后利用雅可比矩阵、残余向量、先前残余r先前和乔里斯基分解L先前来计算(406)新的模型参数x新。计算新的模型参数的一个示例如下。首先,通过利用矩阵H的乔里斯基分解求解以下线性系统而获得当前窗口的新模型参数的估计:
x新=x当前+δx (3)
其中x当前是指当前窗口的现有模型参数,x新是指当前窗口的更新模型参数,LT 先前是L先前的矩阵转置,并且δx是用于将更新存储到模型参数的临时变量。在系统的一些变型形式中,等式(3)可用非欧几里德更新运算来代替。非欧几里德更新运算的一个示例是四元数更新,
其中δq是通过将值1添附到存储在δx中的对应取向误差值而形成的四元数,并且表示四元数乘法。非欧几里德更新运算的另一个示例是旋转矩阵更新,
R新=R当前(I+[δx×]) (5)
其中R当前是由存储在x当前中的值构成的旋转矩阵,R新是由存储在x新中的值构成的旋转矩阵,并且执行的运算是矩阵乘法。[δx×]表示针对δx的斜对称矩阵,
非欧几里德更新运算的第三示例是分别应用于x新、x当前、和δx内的不同子向量的任意数量的欧几里德和非欧几里德更新运算的任意组合。
在针对当前窗口计算新的模型参数之后,BA模块110评估成本函数,该成本函数测量当前窗口的模型参数与当前特征轨迹和惯性读数之间的一致性。可使用本领域中已知的各种不同成本函数。成本函数的主要要求是成本函数在模型参数与当前特征轨迹和惯性读数不符时具有较大值,并且在模型参数与当前特征轨迹和惯性读数相符时具有较小值。例如在一些具体实施中,成本函数评估如下。通过利用被当前模型参数关联到在其中观察到图像特征的关键帧的位置和取向将与该特征关联的3D位置投射到该关键帧中来计算每个图像特征的“预测2D位置”。将这个预测与图像传感器观察的该特征的“观察”位置进行比较,并且计算“预测”和“观察”位置之间的欧几里得距离平方,这在下文中将被称为这个图像特征的误差。
接下来,如下针对当前窗口中的每个关键帧计算误差。假设当前窗口的第一关键帧在时间T处被捕获,并且窗口中的下一后续关键帧在时间T+1处被捕获。设备在(包含在当前模型参数内的)关键帧时间T时的状态和T与T+1之间捕获的惯性读数被用来计算设备在关键帧时间T+1时的“预测”状态。计算设备在关键帧时间T+1时的预测状态与存储在当前模型估计内的设备在关键帧时间T+1时的状态之间的加权平方差,其在下文中将被称为关键帧T的二次误差项。
与当前模型估计相关联的成本然后被计算为是所有图像特征的二次误差之和加上所有关键帧的二次误差之和。这个成本针对模型参数x新评估一次并且针对模型参数x当前评估一次。如果与模型参数x新相关联的成本比与模型参数x当前相关联的成本小,则新的模型估计代替当前模型估计。否则,拒绝新的模型估计。
成本函数可以有多种变型形式,包括但不限于以下形式。例如在一些具体实施中,可使用稳健成本函数来代替图像特征误差或关键帧误差中的任一者或两者的平方差之和。稳健成本函数的示例有:
L1范数:
f(x)=2b|x|;
Huber函数:
对于|x|<b,f(x)=x2
否则,f(x)=2b|x|-b2;
或者Cauchy函数:
f(x)=b2log(1+x2/b2)。
在一些具体实施中,可将特定于域的知识插入到成本函数中。例如在特定应用中,可能知道执行基于视觉的惯性导航的设备只在水平面上移动,其中其海拔高度保持固定,或者设备的速度变化受到设备自身的惯性特性限制。可通过使用针对与特定于域的知识不符的模型估计取大的值,并且针对与特定于域的知识符合的模型估计取小的值的成本项来结合此类约束。
在这点,计算x新的成本和x当前的成本之间的绝对差值,并且如果这个差值小于阈值γ或者集束调整过程的重复次数超过上限Nmax,则集束调整过程完成,在这种情况下,BA模块110将x当前的当前值输出作为最终位置和取向估计,并且处理继续下文所述的稀疏结构边缘化。也就是说,在将集束调整应用于一组特征轨迹和惯性读数之后,BA模块110输出当前模型参数,其包含设备100在当前窗口内的每个关键帧时的状态的估计和所观察图像特征的3D位置的估计。以与模型参数相关联的当前信息矩阵H的形式,BA模块110的输出还包括表示模型参数中的置信度(或确定性)的值。否则,如果成本x新和x当前的成本之间的绝对差值大于阈值γ并且集束调整过程的重复次数小于上限Nmax,则执行集束调整的另一迭代,并且SWF模块110从集束调整过程的开始重新开始处理,开始于计算雅可比矩阵,并如上所述继续进行。
在完成集束调整过程后,当前信息矩阵H被传递到SSM模块112。图5是示出信息矩阵的一个示例的示意图。信息矩阵H包含关于模型参数的信息,其是关于设备在每个关键帧时的状态的信息,以及关于邻近设备的对象的3D位置和/或取向的信息。如图5的示例所示,信息矩阵H可被布置成不同的组块A、B、C、和D。组块A包括对应于设备状态估计的值。组块D包括对应于邻近设备的对象的位置和/或取向(例如3D特征位置)的估计的值。组块B和C包括对应于A中设备状态估计与D中特征位置之间的共享信息的值。信息矩阵H是对称的,因此组块C是B的矩阵转置。
SSM模块112执行对信息矩阵H边缘化的第一部分。图6是示出一种用于执行稀疏结构边缘化的示例性过程600的流程图。首先,SSM模块从BA模块110接收(602)当前窗口的信息矩阵H。然后,SSM模块对信息矩阵H的与表示邻近设备的对象的位置和/或取向的变量相关联的子组(即图5中的组块B、C、和D)进行边缘化(604)。关于被边缘化变量的信息的概括然后保持在新的矩阵A′中。例如,可利用可表述如下的舒尔补来计算边缘化B、C、和D:
A′=A-BD-1C (7)
这里,SSM模块112利用H的稀疏结构。具体地,子矩阵A是块三对角,并且D是块对角。SSM模块112只考虑非零的舒尔补的项,这显著地减少了计算时间。因此,来自这个过程的SSM模块112的输出是表示关于在每个关键帧时的设备状态的边缘信息的新的信息矩阵A′。A′中包含的值是“边缘信息值”。在图7中示出了新矩阵A′的一个示例,并且下面进一步解释该矩阵的子组。新矩阵A′然后被传递(606)到延迟运动边缘化模块114。
图8是示出一种用于执行延迟运动边缘化的示例性过程800的流程图。DMM模块114从SSM模块112接收(802)新的信息矩阵A′,其中DMM模块114执行边缘化过程的第二部分,即延迟运动边缘化。在边缘化过程期间,DMM模块114消除与表示除了一个关键帧之外的所有关键帧的设备状态估计的变量相关联的信息。然而,DMM模块首先选择(804)SWF模块108要处理的当前窗口和新窗口公共的关键帧。为了执行这个操作,DMM模块114需要知道当前窗口中的哪些帧将也存在于下一窗口中。为此,在下一窗口到达之前,不进行公共关键帧的选择。优选地,存在于两个窗口中的最早的帧被选为公共关键帧。然而,存在于这两个窗口中的其他帧也可被选为公共关键帧。在一些具体实施中,可选择不止一个公共关键帧,并且将使用不止一个关键帧来在窗口之间变换信息。
例如,假设当前窗口是W1,并且下一个要到达的窗口是W2。一旦来自W2的信息(即特征轨迹和惯性状态信息)到达SWF模块108处,DMM模块114就利用帧标识符(例如整数)列表将W1中的帧与W2中的帧相关联。假设存在于W1和W2两者中的最早帧被分配帧标识符F0。具体地,假设W1包含帧(3、4、5、6、7),并且W2包含帧(5、6、7、8、9)。在这种情况下,F0=帧5,因为帧5是存在于这两个窗口中的最早帧。
一旦选择了公共关键帧,DMM模块114就除了信息矩阵A′的与表示设备在所选公共关键帧处的状态的变量相关联的子组之外,对A′的与表示设备状态的变量相关联的子组进行边缘化(806)。图7是示出矩阵A′的布置的示例性视图。如图中所示,矩阵A′包括与表示设备在每个关键帧时的状态的变量相关联的边缘信息值以及表示每对关键帧时的设备状态的变量之间的共享信息项。矩阵A′可被细分为四个子矩阵:区块K对应于针对W1和W2两者为公共的所选帧F0相关联的行和列;区块G11、G12、G21、G22包含关于不包括所选帧以及它们之间的共享信息项的信息;并且区块F1、F2、E1、E2包含所选帧F0与除了所选帧F0之外的帧之间的共享信息项。
延迟运动边缘化的目的是对区块F1、F2、E1、E2和G11G12G21G22进行边缘化并将这个信息概括在大小与K的大小相同的新矩阵中。新矩阵K′可通过计算舒尔补来确定,并且可表述为:
K′=K-EG-1F (8)
其中:
E=[E1 E2] (11)
DMM模块114然后通过将K′中的值除以常数(808)来缩放K′,以便保持一致性并避免过度自信的情况。例如在一些具体实施中,常数等于窗口大小(例如窗口中测量的数量或者与窗口相关联的时间段)。K′内的值被称为公共帧边缘信息值。所得到的矩阵K′也可被称为H先前。H先前然后被BA模块110作为先前信息矩阵用于下一窗口。因此,SWF模块108在集束调整过程、稀疏结构边缘化过程、和延迟运动边缘化过程期间生成的信息矩阵现在在滤波器的下一迭代中作为先前信息矩阵被用作滤波器的输入,由此有助于滤波器的迭代之间以及窗口之间的信息转换。滤波器现在还包含可被输出到后处理模块116或可由后处理模块116获得的设备状态的更新估计。
在一些具体实施中,修改的矩阵A′的延迟运动边缘化可另选地如下执行:首先,DMM模块114获得A′的逆矩阵,其可被表述为:
Σ=A′-1 (12)
然后,矩阵∑被分成子区块,如图7所示,子区块K被提取,并且矩阵K′根据下式来计算:
K′=K-1 (13)。
矩阵K′然后如上所述地处理,包括除以常数,以便保持SWF的一致性。
矩阵K′具有比原始信息矩阵H显著小的尺寸。例如,如果信息矩阵H最初具有1000×1000的大小,则利用SSM模块112执行稀疏结构边缘化可将矩阵减小到150×150的大小。在应用延迟运动边缘化之后,矩阵可被进一步减小到15×15的大小。
应用
本文所述的滑动窗反向滤波器(SWF)模块(例如SWF模块108)可用作各种基于视觉的惯性导航应用的一部分。例如在一些具体实施中,SWF模块结合到具有可视显示器的移动电子计算设备中。SWF模块确定的位置和取向估计可(例如在后处理之前或之后)作为地图上的点被输出到显示器来为电子计算设备的用户提供关于设备的当前和过去位置的可视信息。在一些情况下,SWF模块被配置为是正在移动的电子计算设备的一部分。在其他具体实施中,SWF模块与电子计算设备分开,例如SWF模块可工作于服务器上,而IMU和图像传感器在电子计算设备中。来自电子计算设备的特征轨迹和惯性数据然后可被传输到服务器上的SWF模块,在服务器处,SWF模块然后计算位置和取向估计。服务器可以是实时地向网站更新电子计算设备的位置和取向信息的因特网服务器。该信息还可与附加信息(诸如被成像环境的深度信息)结合使用,并产生穿行的地方的3D地图。
在一些具体实施中,可使用位置和取向估计来跟踪在一个点处已经被图像传感器成像的对象。例如,预处理模块106可标识图像传感器捕获的图像内的一个或多个对象(例如钥匙、钱包等),然后使用来自SWF模块的位置和取向数据来在该对象不再在图像传感器的视场中时保持该对象的最后的已知位置。如果用户忘了对象在哪里或者如何返回到对象被标识的位置,则电子计算设备可(向显示器)输出对象的最后的已知位置和/或用户能够遵循以返回到该对象的路径。
在一些具体实施中,利用具有根据本公开的基于视觉的惯性导航系统的电子计算设备穿行建筑物(例如仓库、购物广场或住宅)的内部/外部,以记录该建筑物的地图。电子计算设备可存储SWF模块提供的位置和取向信息,同时还收集来自诸如例如WiFi信号、蓝牙信号、信标生成的信号、近场通信(NFC)等的源的附加信息。电子计算设备的准确位置和取向然后可用于创建结构内的不同位置的信号地图。
在一些具体实施中,可利用具有根据本公开的基于视觉的惯性导航系统的电子计算设备穿行一个区域(例如房屋、后院、建筑物内部)来创建该区域的三维(3D)地图,而不需要除了设备自身的图像传感器和惯性测量单元之外的附加传感器。这是因为SWF模块生成的信息可包括关于设备和设备外部环境的3D信息。在一些情况下,利用基于视觉的惯性导航系统产生的3D绘图的准确性可利用来自结合到电子计算设备中的附加传感器(诸如深度传感器)的信息来提高。
在一些具体实施中,SWF模块可用于朝着对象引导用户。图10是电子计算设备输出的显示的一个示例,其示出商店区域的图像,其中图形箭头1010被叠置在图片上并且指向商店中的一件商品的位置。本文所公开的基于视觉的惯性导航系统可用于计算电子计算设备相对于该商品的位置和取向,使得箭头始终指向该商品的位置中该商品的方向,其中商品的位置是事先已知的,并且设备的位置和取向是由SWF模块计算的。箭头将用户向需要取的商品进行引导。
在一些具体实施中,SWF模块提供电子计算设备的准确位置和取向,以允许用户跟踪其移动。图11是包括基于视觉的惯性导航系统的电子计算设备的显示器所输出的图像的示例,其中虚拟路径1110叠置在图像上。基于视觉的惯性导航系统来计算虚拟路径,作为用户在握持、携带或穿戴着该电子计算设备期间所遵循的导向。
硬件和软件
图9示出了可与本文所述的技术一起使用的电子计算设备550的一个示例。例如,参考图2,移动电子计算设备100可以是设备550的示例。电子计算设备550旨在表示各种形式的电子计算设备,诸如个人数字助理、蜂窝电话、智能电话、智能眼镜、和其他类似计算设备。本文示出的部件、其连接和关系、以及其功能意在仅仅是示例,并非意在对本文所述和/或请求保护的技术的具体实施进行限制。
除了其他部件之外,电子计算设备550包括处理器552、存储器564、输入/输出设备诸如显示器554、通信接口566、和收发器568。设备550还可具有存储设备,诸如微硬盘或其他设备,以提供附加存储。部件550,552,564,554,566和568中的每一者利用各种总线互连,并且这些部件中的若干部件可安装在公共母板上或者以其他适当的方式安装。
处理器552可执行计算设备550内的指令,包括存储在存储器564中的指令。处理器可被实施为包括独立且多个模拟和数字处理器的芯片的芯片组。处理器可例如提供对设备550的其他部件的协调,诸如控制用户界面、设备550所运行的应用、和设备550进行的无线通信。
处理器552可通过耦接到显示器554的控制界面558和显示界面556与用户通信。显示器554可例如是TFT LCD(薄膜晶体管液晶显示器)或者OLED(有机发光二极管)显示器,或者其他合适的显示器技术。显示界面556可包括适当的电路以驱动显示器554以向用户呈现图形和其他信息。控制界面558可接收来自用户的命令并对其进行转换以提交给处理器552。此外,可提供与处理器552通信的外部接口562,以使设备550能够与其他设备进行近区域通信。外部接口562可例如在一些具体实施中提供有线通信,或者在其他具体实施中提供无线通信,并且还可使用多个接口。
存储器564将信息存储在计算设备550内。存储器564可被实施为计算机可读介质、易失性存储器单元、或非易失性存储器单元中的一者或多者。扩展存储器574也可被提供并通过扩展接口572连接到设备550,该扩展接口可包括例如SIMM(单列直插存储器模块)卡接口。此类扩展存储器574可为设备550提供额外的存储空间,或者也可为设备550存储应用或其他信息。特别地,扩展存储器574可包括用以执行或补充上述过程的指令,并且还可包括安全信息。因此例如,扩展存储器574可作为设备550的安全模块被提供,并且可被编程具有允许对设备550的安全使用的指令。
存储器可包括例如闪存存储器和/或NVRAM存储器,如下所述。在一个具体实施中,计算机程序产品被有形地实现在信息载体中。计算机程序产品包含在被执行时执行一个或多个方法(诸如上述那些方法)的指令。信息载体是计算机或机器可读介质,诸如存储器564、扩展存储器574、或处理器552上的存储器。
设备550可通过通信接口566无线地通信,如果需要的话,该通信接口可包括数字信号处理电路。通信接口566可提供各种模式或协议的通信,诸如GSM语音呼叫、SMS、EMS、或MMS消息收发、CDMA、TDMA、PDC、WCDMA、CDMA2000、或GPRS等等。此类通信例如可通过射频收发器568来进行。此外,可进行短程通信,诸如利用蓝牙、WiFi、或其他此类收发器(未示出)。此外,GPS(全球定位系统)接收器模块570可将附加的与导航和位置有关的无线数据提供给设备550,该无线数据可视情况而被运行于设备550上的应用使用。
设备550还可利用音频编解码器560来以语音通信,该音频编解码器可接收来自用户的口头信息并将其转换为可用的数字信息。音频编解码器560同样可为用户生成可听声,诸如通过扬声器来生成,扬声器例如在设备550的听筒中。此类声音可包括来自语音电话呼叫的声音,可包括所记录的声音(例如语音消息、音乐文件等),并且还可包括由工作于设备550上的应用生成的声音。
计算设备550可以多种不同形式来实现,如图所示。例如,其可被实现为蜂窝电话580。其也可被实现为智能电话582、个人数字助理、平板计算机、智能眼镜、智能手表、或其他类似移动设备的一部分。
本文所述系统和技术的各个具体实施可在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种具体实施可包括在能够在可编程系统上执行和/或解释的一个或多个计算机程序中实现,该可编程系统包括至少一个可编程处理器,该可编程处理器可以是专用或通用的,耦接以从存储系统、至少一个输入设备、和至少一个输出设备接收数据和指令并且将数据和指令传输到存储系统、至少一个输入设备、和至少一个输出设备。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以高级过程和/或面向对象的编程语言来实现,和/或以汇编/机器语言来实现。如本文所用,术语“机器可读介质”、“计算机可读介质”是指用于为可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令的机器可读介质。
为了提供与用户的交互,本文所述的系统和技术可实现在具有用于为用户显示信息的显示器(例如液晶显示器监视器)的设备上。显示器还可用于接收来自用户的信息(例如触摸屏)。设备可具有用户可用以提供输入给计算机的其他输入设备,诸如键盘和/或指向设备(例如鼠标或轨迹球)。也可使用其他类型的设备来提供与用户的交互。例如,提供给用户的反馈可以是任何形式的感官反馈(例如视觉反馈、听觉反馈、或触觉反馈)。来自用户的输入可以任何形式被接收,包括声音、语音、或触觉输入。
已经介绍了多个具体实施。然而,应当理解,在不脱离本发明的实质和范围的情况下可作出各种修改。其他实施例也在以下权利要求书的范围内。
Claims (28)
1.一种用于执行导航的电子计算系统,所述电子计算系统包括用于实现滑动窗反向滤波器模块的电子处理器和存储器,其中所述滑动窗反向滤波器模块被配置为:
接收来自预处理模块的传感器测量,其中所述传感器测量包括设备的图像数据和惯性数据;
将从所述传感器测量得出的信息从与第一时间窗口相关联的第一组变量变换为与第二时间窗口相关联的第二组变量,其中所述第一窗口和所述第二窗口在时间上连续地重叠;以及
基于所变换的信息将所述设备的状态输出到后处理模块,
其中所述对中的每个窗口与对应的第一信息矩阵相关联,并且每个第一信息矩阵用于多个第一变量和多个第二变量,所述多个第一变量表示邻近所述设备的至少一个对象的位置和/或取向,所述多个第二变量表示所述设备在两个或更多个时间点处的状态,并且
其中变换所述信息包括:
对与所述第一窗口的所述第一信息矩阵相关联的所述第一变量的至少子组进行边缘化,以获得第二信息矩阵,所述第二矩阵仍然保持与所述多个第二变量的所述关联;
对与所述第二信息矩阵相关联的所述第二变量的子组进行边缘化,以获得第三信息矩阵;以及
对所述第三信息矩阵进行缩放以获得第四信息矩阵,
其中所述第四信息矩阵是在所述对中的所述第一窗口和所述第二窗口重叠时的时间点处关于所述设备的所述状态的信息和邻近所述设备的所述对象的所述位置和/或取向的概括表示。
2.根据权利要求1所述的电子计算系统,还包括:
所述预处理模块;
图像检测单元,所述图像检测单元耦接到所述预处理模块,其中所述预处理模块被配置为接收由所述图像检测单元捕获的多个图像并从所述多个图像得出所述图像数据;和
运动感测单元,所述运动感测单元耦接到所述预处理模块,其中所述预处理模块被配置为接收来自所述运动感测单元的所述惯性数据。
3.根据权利要求1所述的电子计算系统,其中与所述第一窗口相关联的所述第一组变量的子组和与所述第二窗口相关联的所述第二组变量的子组在时间上重叠。
4.根据权利要求3所述的电子计算系统,其中所述第一组变量和所述第二组变量之间的所述重叠在存在于所述第一窗口和所述第二窗口两者中的最早时间处。
5.根据权利要求1所述的电子计算系统,其中对于每个窗口,所述多个第一变量表示跨多个图像的图像特征的3D位置和/或取向,并且
其中对于每个窗口,所述多个第二变量包括线性加速度数据和角速度数据。
6.根据权利要求5所述的电子计算系统,其中所述设备的所述状态进一步包括所述运动感测单元的偏差。
7.根据权利要求1所述的电子计算系统,其中与每个窗口相关联的所述第一信息矩阵包括:
关于至少一个变量的第一信息,所述至少一个变量表示邻近所述设备的对象的位置或取向的估计;和
关于至少一个变量的第二信息,所述至少一个变量表示所述设备的所述状态的估计;和
共享信息,所述共享信息在所述第一信息和所述第二信息之间。
8.根据权利要求7所述的电子计算系统,其中所述共享信息表示邻近所述设备的对象的位置或取向的所述估计与所述设备的所述状态的所述估计之间的共享置信度。
9.根据权利要求7所述的电子计算系统,
其中对与所述第一窗口的所述第一信息矩阵相关联的所述第一变量的至少所述子组进行边缘化包括对所述共享信息进行边缘化,并且
其中对所述第三信息矩阵进行缩放包括将所述第三信息矩阵除以常数或乘以常数。
10.根据权利要求9所述的电子计算系统,其中所述常数等于所述第一窗口的大小。
11.一种计算机实现的方法,包括:
接收来自预处理模块的传感器测量,其中所述传感器测量包括设备的图像数据和惯性数据;
利用处理器将从所述传感器测量得出的信息从与第一时间窗口相关联的第一组变量变换为与第二时间窗口相关联的第二组变量,其中所述第一窗口和所述第二窗口在时间上连续地重叠;以及
基于所变换的信息将所述设备的状态输出到后处理模块,
其中所述对中的每个窗口与对应的第一信息矩阵相关联,并且每个第一信息矩阵用于多个第一变量和多个第二变量,所述多个第一变量表示邻近所述设备的至少一个对象的位置和/或取向,所述多个第二变量表示所述设备在两个或更多个时间点处的状态,并且
其中变换所述信息包括:
对与所述第一窗口的所述第一信息矩阵相关联的所述第一变量的至少子组进行边缘化,以获得第二信息矩阵,所述第二矩阵仍然保持与所述多个第二变量的所述关联;
对与所述第二信息矩阵相关联的所述第二变量的子组进行边缘化,以获得第三信息矩阵;以及
对所述第三信息矩阵进行缩放以获得第四信息矩阵,
其中所述第四信息矩阵是在所述对中的所述第一窗口和所述第二窗口重叠时的时间点处所述设备的所述状态的信息和邻近所述设备的所述对象的所述位置和/或取向的概括表示。
12.根据权利要求11所述的计算机实现的方法,其中与所述第一窗口相关联的所述第一组变量的子组和与所述第二窗口相关联的所述第二组变量的子组在时间上重叠。
13.根据权利要求12所述的计算机实现的方法,其中所述第一组变量和所述第二组变量之间的所述重叠在存在于所述第一窗口和所述第二窗口两者中的最早时间处。
14.根据权利要求11所述的计算机实现的方法,其中对于每个窗口,所述多个第一变量表示跨多个图像的图像特征的3D位置和/或取向,并且
其中对于每个窗口,所述多个第二变量包括线性加速度数据和角速度数据。
15.根据权利要求14所述的计算机实现的方法,其中所述设备的所述状态进一步包括所述运动感测单元的偏差。
16.根据权利要求11所述的计算机实现的方法,其中与每个窗口相关联的所述第一信息矩阵包括:
关于至少一个变量的第一信息,所述至少一个变量表示邻近所述设备的对象的位置或取向的估计;和
关于至少一个变量的第二信息,所述至少一个变量表示所述设备的所述状态的估计;和
共享信息,所述共享信息在所述第一信息和所述第二信息之间。
17.根据权利要求16所述的计算机实现的方法,其中所述共享信息表示邻近所述设备的对象的位置或取向的所述估计与所述设备的所述状态的所述估计之间的共享置信度。
18.根据权利要求16所述的计算机实现的方法,
其中对与所述第一窗口的所述第一信息矩阵相关联的所述第一变量的至少所述子组进行边缘化包括对所述共享信息进行边缘化,并且
其中对所述第三信息矩阵进行缩放包括将所述第三信息矩阵除以常数或乘以常数。
19.根据权利要求18所述的计算机实现的方法,其中所述常数等于所述第一窗口的大小。
20.一种编码有计算机程序指令的非暂态计算机存储介质,所述计算机程序指令在由一个或多个电子计算设备执行时使所述一个或多个电子计算设备执行包括以下的操作:
接收来自预处理模块的传感器测量,其中所述传感器测量包括设备的图像数据和惯性数据;
利用处理器将从所述传感器测量得出的信息从与第一时间窗口相关联的第一组变量变换为与第二时间窗口相关联的第二组变量,其中所述第一窗口和所述第二窗口在时间上连续地重叠;以及
基于所变换的信息将所述设备的状态输出到后处理模块,
其中所述对中的每个窗口与对应的第一信息矩阵相关联,并且每个第一信息矩阵用于多个第一变量和多个第二变量,所述多个第一变量表示邻近所述设备的至少一个对象的位置和/或取向,所述多个第二变量表示所述设备在两个或更多个时间点处的状态,并且
其中变换所述信息包括:
对与所述第一窗口的所述第一信息矩阵相关联的所述第一变量的至少子组进行边缘化,以获得第二信息矩阵,所述第二矩阵仍然保持与所述多个第二变量的所述关联;
对与所述第二信息矩阵相关联的所述第二变量的子组进行边缘化,以获得第三信息矩阵;以及
对所述第三信息矩阵进行缩放以获得第四信息矩阵,
其中所述第四信息矩阵是在所述对中的所述第一窗口和所述第二窗口重叠时的时间点处关于所述设备的所述状态的信息和邻近所述设备的所述对象的所述位置和/或取向的概括表示。
21.根据权利要求20所述的介质,其中与所述第一窗口相关联的所述第一组变量的子组和与所述第二窗口相关联的所述第二组变量的子组在时间上重叠。
22.根据权利要求21所述的介质,其中所述第一组变量和所述第二组变量之间的所述重叠在存在于所述第一窗口和所述第二窗口两者中的最早时间处。
23.根据权利要求20所述的介质,其中对于每个窗口,所述多个第一变量表示跨多个图像的图像特征的3D位置和/或取向,并且
其中对于每个窗口,所述多个第二变量包括线性加速度数据和角速度数据。
24.根据权利要求23所述的介质,其中所述设备的所述状态进一步包括所述运动感测单元的偏差。
25.根据权利要求20所述的介质,其中与每个窗口相关联的所述第一信息矩阵包括:
关于至少一个变量的第一信息,所述至少一个变量表示邻近所述设备的对象的位置或取向的估计;和
关于至少一个变量的第二信息,所述至少一个变量表示所述设备的所述状态的估计;和
共享信息,所述共享信息在所述第一信息和所述第二信息之间。
26.根据权利要求25所述的介质,其中所述共享信息表示邻近所述设备的对象的位置或取向的所述估计与所述设备的所述状态的所述估计之间的共享置信度。
27.根据权利要求25所述的介质,其中对与所述第一窗口的所述第一信息矩阵相关联的所述第一变量的至少所述子组进行边缘化包括对所述共享信息进行边缘化,并且
其中对所述第三信息矩阵进行缩放包括将所述第三信息矩阵除以常数或乘以常数。
28.根据权利要求27所述的介质,其中所述常数等于所述第一窗口的大小。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361864754P | 2013-08-12 | 2013-08-12 | |
US61/864,754 | 2013-08-12 | ||
PCT/US2014/050649 WO2015023634A2 (en) | 2013-08-12 | 2014-08-12 | Visual-based inertial navigation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106489170A true CN106489170A (zh) | 2017-03-08 |
CN106489170B CN106489170B (zh) | 2020-03-31 |
Family
ID=52448708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480055944.7A Active CN106489170B (zh) | 2013-08-12 | 2014-08-12 | 基于视觉的惯性导航 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9424647B2 (zh) |
JP (1) | JP6434513B2 (zh) |
CN (1) | CN106489170B (zh) |
AU (1) | AU2014306813A1 (zh) |
WO (1) | WO2015023634A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109059941A (zh) * | 2018-07-06 | 2018-12-21 | 禾多科技(北京)有限公司 | 特征地图构建方法、视觉定位方法及对应装置 |
CN111814869A (zh) * | 2020-07-06 | 2020-10-23 | 北京邮电大学 | 一种同步定位与建图的方法、装置、电子设备及存储介质 |
CN112154347A (zh) * | 2018-04-23 | 2020-12-29 | 布莱克莫尔传感器和分析有限责任公司 | 使用相干距离多普勒光学传感器控制自主车辆的方法和系统 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9443414B2 (en) | 2012-08-07 | 2016-09-13 | Microsoft Technology Licensing, Llc | Object tracking |
JP6362325B2 (ja) * | 2013-12-18 | 2018-07-25 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 物体追跡 |
US9303999B2 (en) * | 2013-12-30 | 2016-04-05 | Google Technology Holdings LLC | Methods and systems for determining estimation of motion of a device |
US9277361B2 (en) | 2014-02-20 | 2016-03-01 | Google Inc. | Methods and systems for cross-validating sensor data acquired using sensors of a mobile device |
US9964409B1 (en) * | 2014-05-27 | 2018-05-08 | Apple Inc. | Localized map generation |
CN105987694B (zh) * | 2015-02-09 | 2019-06-07 | 株式会社理光 | 识别移动设备的用户的方法和装置 |
US20160255271A1 (en) * | 2015-02-27 | 2016-09-01 | International Business Machines Corporation | Interactive surveillance overlay |
US9940542B2 (en) * | 2015-08-11 | 2018-04-10 | Google Llc | Managing feature data for environment mapping on an electronic device |
US10176554B2 (en) | 2015-10-05 | 2019-01-08 | Google Llc | Camera calibration using synthetic images |
US20170193705A1 (en) * | 2015-12-31 | 2017-07-06 | Daqri, Llc | Path visualization for motion planning |
US11537808B2 (en) | 2016-11-29 | 2022-12-27 | Blackmore Sensors & Analytics, Llc | Method and system for classification of an object in a point cloud data set |
KR102380943B1 (ko) | 2016-11-30 | 2022-03-30 | 블랙모어 센서스 앤드 애널리틱스, 엘엘씨 | 광학 거리 측정 시스템을 이용한 자동적인 실시간 적응형 스캐닝 방법과 시스템 |
US11624828B2 (en) | 2016-11-30 | 2023-04-11 | Blackmore Sensors & Analytics, Llc | Method and system for adaptive scanning with optical ranging systems |
KR102477195B1 (ko) | 2016-11-30 | 2022-12-12 | 블랙모어 센서스 앤드 애널리틱스, 엘엘씨 | 광 처프 거리 검출의 도플러 검출 및 도플러 보정을 위한 방법 및 장치 |
CN106705965A (zh) * | 2017-01-12 | 2017-05-24 | 苏州中德睿博智能科技有限公司 | 场景三维数据配准方法及导航系统误差校正方法 |
US10422880B2 (en) | 2017-02-03 | 2019-09-24 | Blackmore Sensors and Analytics Inc. | Method and system for doppler detection and doppler correction of optical phase-encoded range detection |
US11120264B2 (en) | 2017-06-02 | 2021-09-14 | Apple Inc. | Augmented reality interface for facilitating identification of arriving vehicle |
US10401495B2 (en) | 2017-07-10 | 2019-09-03 | Blackmore Sensors and Analytics Inc. | Method and system for time separated quadrature detection of doppler effects in optical range measurements |
EP3451288A1 (en) * | 2017-09-04 | 2019-03-06 | Universität Zürich | Visual-inertial odometry with an event camera |
US10739774B2 (en) * | 2017-10-06 | 2020-08-11 | Honda Motor Co., Ltd. | Keyframe based autonomous vehicle operation |
CN110388917B (zh) * | 2018-04-23 | 2021-07-13 | 北京京东尚科信息技术有限公司 | 飞行器单目视觉尺度估计方法和装置、飞行器导航系统及飞行器 |
CN109661659B (zh) * | 2018-07-19 | 2023-01-20 | 驭势科技(北京)有限公司 | 视觉定位地图存储及加载方法、装置、系统及存储介质 |
US11822010B2 (en) | 2019-01-04 | 2023-11-21 | Blackmore Sensors & Analytics, Llc | LIDAR system |
CN110487274B (zh) * | 2019-07-30 | 2021-01-29 | 中国科学院空间应用工程与技术中心 | 用于弱纹理场景的slam方法、系统、导航车及存储介质 |
CN116171573A (zh) * | 2020-07-21 | 2023-05-26 | 索尼集团公司 | 信息处理设备、信息处理方法和程序 |
CN117705107B (zh) * | 2024-02-06 | 2024-04-16 | 电子科技大学 | 基于两阶段稀疏舒尔补的面向视觉惯性定位方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020198632A1 (en) * | 1997-10-22 | 2002-12-26 | Breed David S. | Method and arrangement for communicating between vehicles |
CN101046390A (zh) * | 2006-03-29 | 2007-10-03 | 株式会社电装 | 导航设备与对车辆导航的方法 |
CN101518119A (zh) * | 2006-09-26 | 2009-08-26 | 高通股份有限公司 | 基于无线装置的传感器网络 |
US20090248304A1 (en) * | 2008-03-28 | 2009-10-01 | Regents Of The University Of Minnesota | Vision-aided inertial navigation |
WO2012049492A1 (en) * | 2010-10-13 | 2012-04-19 | University Of Nottingham | Positioning system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7970170B2 (en) * | 2005-05-09 | 2011-06-28 | Lockheed Martin Corporation | Continuous extended range image processing |
JP2007292657A (ja) * | 2006-04-26 | 2007-11-08 | Nippon Telegr & Teleph Corp <Ntt> | カメラ運動情報取得装置、カメラ運動情報取得方法および記録媒体 |
JP2011043419A (ja) * | 2009-08-21 | 2011-03-03 | Sony Corp | 情報処理装置、および情報処理方法、並びにプログラム |
JP2012064131A (ja) * | 2010-09-17 | 2012-03-29 | Tokyo Institute Of Technology | 地図生成装置、地図生成方法、移動体の移動方法、及びロボット装置 |
US8442765B1 (en) * | 2012-11-08 | 2013-05-14 | Honeywell International Inc. | Shared state selection and data exchange for collaborative navigation using conditionally independent parallel filters |
US20140341465A1 (en) * | 2013-05-16 | 2014-11-20 | The Regents Of The University Of California | Real-time pose estimation system using inertial and feature measurements |
US9303999B2 (en) * | 2013-12-30 | 2016-04-05 | Google Technology Holdings LLC | Methods and systems for determining estimation of motion of a device |
US9277361B2 (en) * | 2014-02-20 | 2016-03-01 | Google Inc. | Methods and systems for cross-validating sensor data acquired using sensors of a mobile device |
-
2014
- 2014-08-12 AU AU2014306813A patent/AU2014306813A1/en not_active Abandoned
- 2014-08-12 US US14/457,286 patent/US9424647B2/en active Active
- 2014-08-12 CN CN201480055944.7A patent/CN106489170B/zh active Active
- 2014-08-12 WO PCT/US2014/050649 patent/WO2015023634A2/en active Application Filing
- 2014-08-12 JP JP2016534784A patent/JP6434513B2/ja active Active
-
2016
- 2016-08-12 US US15/236,008 patent/US10152795B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020198632A1 (en) * | 1997-10-22 | 2002-12-26 | Breed David S. | Method and arrangement for communicating between vehicles |
CN101046390A (zh) * | 2006-03-29 | 2007-10-03 | 株式会社电装 | 导航设备与对车辆导航的方法 |
CN101518119A (zh) * | 2006-09-26 | 2009-08-26 | 高通股份有限公司 | 基于无线装置的传感器网络 |
US20090248304A1 (en) * | 2008-03-28 | 2009-10-01 | Regents Of The University Of Minnesota | Vision-aided inertial navigation |
WO2012049492A1 (en) * | 2010-10-13 | 2012-04-19 | University Of Nottingham | Positioning system |
Non-Patent Citations (1)
Title |
---|
GABE SIBLEY ET AL.: "Visual Sliding Window SLAM with Application to Planetary Landers", 《JOURNAL OF FIELD ROBOTICS》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112154347A (zh) * | 2018-04-23 | 2020-12-29 | 布莱克莫尔传感器和分析有限责任公司 | 使用相干距离多普勒光学传感器控制自主车辆的方法和系统 |
CN112154347B (zh) * | 2018-04-23 | 2022-05-10 | 布莱克莫尔传感器和分析有限责任公司 | 使用相干距离多普勒光学传感器控制自主车辆的方法和系统 |
CN109059941A (zh) * | 2018-07-06 | 2018-12-21 | 禾多科技(北京)有限公司 | 特征地图构建方法、视觉定位方法及对应装置 |
CN111814869A (zh) * | 2020-07-06 | 2020-10-23 | 北京邮电大学 | 一种同步定位与建图的方法、装置、电子设备及存储介质 |
CN111814869B (zh) * | 2020-07-06 | 2022-11-08 | 北京邮电大学 | 一种同步定位与建图的方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2016534450A (ja) | 2016-11-04 |
US10152795B2 (en) | 2018-12-11 |
WO2015023634A3 (en) | 2015-04-16 |
US20160350926A1 (en) | 2016-12-01 |
CN106489170B (zh) | 2020-03-31 |
AU2014306813A1 (en) | 2016-03-31 |
US9424647B2 (en) | 2016-08-23 |
JP6434513B2 (ja) | 2018-12-05 |
US20150043784A1 (en) | 2015-02-12 |
WO2015023634A2 (en) | 2015-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106489170A (zh) | 基于视觉的惯性导航 | |
CN104704384B (zh) | 具体用于装置的基于视觉的定位的图像处理方法 | |
US10254118B2 (en) | Extrinsic parameter calibration of a vision-aided inertial navigation system | |
US10324172B2 (en) | Calibration apparatus, calibration method and calibration program | |
Panahandeh et al. | Vision-aided inertial navigation based on ground plane feature detection | |
CN102944240B (zh) | 一种基于智能手机的惯性导航系统及方法 | |
US10157478B2 (en) | Enabling use of three-dimensional locations of features with two-dimensional images | |
CN112815939B (zh) | 移动机器人的位姿估计方法及计算机可读存储介质 | |
CN105279750A (zh) | 一种基于ir-uwb和图像矩的装备展示导览系统 | |
TW201425971A (zh) | 圖資校正裝置、系統和方法 | |
CN110260866A (zh) | 一种基于视觉传感器的机器人定位与避障方法 | |
Khoury et al. | Infrastructureless approach for ubiquitous user location tracking in construction environments | |
CN108256563B (zh) | 基于距离度量的视觉词典闭环检测方法与装置 | |
Singh et al. | Ubiquitous hybrid tracking techniques for augmented reality applications | |
Cheng et al. | AR-based positioning for mobile devices | |
Chen et al. | High-Precision Positioning, Perception and Safe Navigation for Automated Heavy-duty Mining Trucks | |
Irmisch et al. | Simulation framework for a visual-inertial navigation system | |
CN115235454B (zh) | 行人运动约束的视觉惯性融合定位与建图方法和装置 | |
TWI822423B (zh) | 運算裝置及模型產生方法 | |
Osman et al. | Indoor SLAM using a foot-mounted IMU and the local magnetic field | |
Hasler et al. | Implementation and first evaluation of an indoor mapping application using smartphones and AR frameworks | |
CN109186594A (zh) | 利用惯性传感器和深度摄像头传感器获取运动数据的方法 | |
CN106441282A (zh) | 一种星敏感器星跟踪方法 | |
Li et al. | A stereo-based visual-inertial odometry for slam | |
Dandoš et al. | A new control mark for photogrammetry and its localization from single image using computer vision |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |