CN110555869A - 提取增强现实***中主要和次级运动的方法和*** - Google Patents

提取增强现实***中主要和次级运动的方法和*** Download PDF

Info

Publication number
CN110555869A
CN110555869A CN201910462574.3A CN201910462574A CN110555869A CN 110555869 A CN110555869 A CN 110555869A CN 201910462574 A CN201910462574 A CN 201910462574A CN 110555869 A CN110555869 A CN 110555869A
Authority
CN
China
Prior art keywords
coordinate system
image data
inertial
neural network
generating
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.)
Pending
Application number
CN201910462574.3A
Other languages
English (en)
Inventor
B.P.W.巴布
闫志鑫
叶茂
L.任
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN110555869A publication Critical patent/CN110555869A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; 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/16Navigation; 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/165Navigation; 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; 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/16Navigation; 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/18Stabilised platforms, e.g. by gyroscope
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19173Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)

Abstract

提供了提取增强现实***中主要和次级运动的方法和***。一种用于增强现实(AR)***中的运动估计的方法包括:在AR***的移动期间接收惯性传感器数据和图像数据;利用卷积神经网络编码器/解码器基于惯性数据和图像数据来生成概率图,概率图对应于图像数据中的一帧并且包括概率值,所述概率值指示所述一帧中的每个像素处于惯性坐标系或局部坐标系中;基于图像数据和概率图来标识局部坐标系中至少一个地标的视觉观察;以及基于隐藏马尔科夫模型(HMM)中对应于局部坐标系的第一先验状态和局部坐标系中至少一个地标的视觉观察,来生成局部坐标系中的次级运动的估计。

Description

提取增强现实***中主要和次级运动的方法和***
优先权的主张
本申请主张题为“On Exploiting Per-Pixel Motion Conflicts to ExtractSecondary Motions”并于2018年5月31号提交的美国临时申请No. 62/678,383的权益,特此通过引用将该美国临时申请的整体内容并入本文。
技术领域
本公开总地涉及用于人机交互的增强现实***的领域,并且更具体地,涉及用于检测增强现实***中的主要和次级运动的***和方法。
背景技术
除非本文中另有所指,否则本章节中描述的材料不是本申请中权利要求的现有技术并且不因包括在本章节中而被承认为现有技术。
增强现实(AR)***使用计算机化设备来提供人机接口,所述人机接口使得人类能够观看真实世界物理环境同时提供虚拟图形的显示,所述虚拟图形“增强”物理环境的特征。常见类型的AR设备包括人类操作者穿戴的具有一个或多个传感器和视频投影设备的透明眼镜。透明眼镜使得人类能够观看真实世界物理环境,并且AR设备将图形数据投影到眼镜上或者在与物理环境中的对象、位置或其他特征对应的位置处直接投影到用户眼睛上。在一些实例中,图形显示信息或者以其他方式添加图形元素以“增强”物理环境中的物理对象,而在其他实例中,图形提供物理环境中实际不存在的信息或虚拟对象的二维或三维演示(rendition)。尽管增强现实***与“虚拟现实”(VR)***共享一些特征,但是AR与VR***之间的一个区别在于AR***提供计算机未生成且不在计算机控制下的视觉描绘和与真实世界物理环境的图形交互,而VR***产生完全计算机生成的环境的图形显示。这样,AR***中的许多操作要求附加处理以使得AR***能够测量AR***周围物理环境的参数来提供准确的增强图形。
AR***的一个功能执行“定位”以标识AR***中传感器关于***周围环境的位置。具体地,***AR***使用相机***和惯性***(诸如MEM加速度计和陀螺仪)两者来执行定位。现有技术***将相机和惯性传感器的输出组合在一起来执行定位。由于传感器一般集成在用户穿戴的设备中,所以传感器位置的定位还提供用户在环境中的定位。大多数现有技术AR***假设静态环境并仅处置与惯性坐标系一致的主要运动,也就是说,这些***可以执行静态、非移动环境(“惯性坐标系”)中的定位,并然后使用AR传感器的输入来标识AR***和用户关于静态惯性坐标系的运动(“主要运动”)。这的简单示例是测量在固定房间中穿戴AR***的用户的移动,所述固定房间提供惯性坐标系。
现有AR***在处置动态环境方面明显不太有效,在动态环境中,存在多种类型的运动和多个坐标系,所述多种类型的运动和多个坐标系产生不一致或“冲突”的传感器数据输入。引用一个常见的非限制性示例,当用户在移动的机动车辆中穿戴着AR设备时,诸如非移动道路的真惯性参考坐标系在来自相机***传感器的视觉输入中表现为移动,而如果在车辆以恒定速度(其不产生加速度)行进时设备的穿戴者静止坐着并且相对于车辆内部没有移动,则AR设备中的惯性传感器可能无论如何都登记无移动。车辆内部称为“局部坐标系”,这是因为即使整个车辆和AR***相对于道路的惯性坐标系也在移动,用户和AR***的局部移动也是相对于车辆内部。此外,用户和AR***在车辆内的任何移动产生不与来自相机***的感知移动匹配的惯性运动数据,这当然是因为车辆相对于道路的惯性坐标系的移动明显不同于用户相对于车辆的局部坐标系的移动。甚至来自相机***的输入数据也通常是不一致的,这是因为视频数据的每个生成图像的一部分包括车辆内部的局部坐标系,除非用户移动否则车辆内部相对于用户是静态的,而图像的另一部分包括外部环境的惯性坐标系,外部环境相对于车辆的局部坐标系表现为在移动。
现有AR***中的前述问题不但降低了AR***中AR传感器的主要运动的测量准确性,而且在准确地追踪“次级运动”中提供了进一步挑战,“次级运动”是指AR***中的传感器相对于局部坐标系的移动。使用上面的移动车辆示例,次级运动发生在车辆内部局部坐标系中,诸如AR***自身的移动,或者发生在车辆内部的另一对象的局部坐标系中。次级运动的准确追踪要求主要运动的准确追踪,归因于上面描述的传感器冲突,这在局部坐标系中是困难的。例如,存在本领域已知的用于在惯性坐标系中视频数据中的移动对象的运动追踪的技术,但是如果相机归因于源自冲突传感器数据的不准确主要运动追踪而以未知方式移动,则利用视频数据对相机相对于局部坐标系中的外部对象的准确移动追踪变得明显更加困难或者不切实际。另外,虽然本领域已知一些技术用于改进在包括多个坐标系的情形中的主要运动追踪的准确性,但是这些技术依赖于标识并拒绝潜在冲突的传感器数据,这改进了基于惯性坐标系的主要运动检测的准确性,但是妨碍了针对局部坐标系的准确次级运动检测。此外,虽然当然存在用于使用诸如RADAR和LIDAR的主动传感器来追踪相对移动的***和方法,但是这些主动传感器对于在许多AR***中的使用而言是不切实际的。
如上所描述的,在其中视频和惯性传感器数据归因于传感器数据中的惯性坐标系和局部坐标系二者产生的相对运动而经历冲突的情形中,现有技术的AR***在执行定位和追踪主要与次级移动方面遭遇困难。因此,对AR***及其操作方法进行改进以改进主要和次级移动检测二者的准确性将是有益的。
发明内容
本文描述的实施例提供了用于AR***中的运动估计的***和方法,所述***和方法提供运动冲突意识视觉惯性测程法(MC-VIO),所述运动冲突意识视觉惯性测程法(MC-VIO)使得AR***能够针对惯性坐标系和局部坐标系二者执行定位以提供改进的主要运动检测和次级运动检测。
在一个实施例中,已经开发了用于增强现实(AR)***中的运动估计的方法。所述方法包括:利用惯性传感器***在AR***的移动期间接收惯性传感器数据;利用相机***在AR***的移动期间接收多个图像数据帧;利用实现卷积神经网络编码器/解码器的处理器基于惯性传感器数据和多个图像数据帧来生成概率图,概率图对应于多个图像数据帧中的一帧并包括对应于一帧中多个像素的多个概率值,多个概率值中的每个概率值指示对应像素处于惯性坐标系或局部坐标系中的概率;利用处理器基于多个图像数据帧和概率图来标识对局部坐标系中至少一个地标的视觉观察;以及利用处理器基于隐藏马尔科夫模型(HMM)中对应于局部坐标系的第一先验状态和局部坐标系中至少一个地标的视觉观察,参照局部坐标系来生成针对AR***的次级运动的估计。
在另一实施例中,已经开发了增强现实(AR)***。AR***包括惯性传感器***、相机***、显示设备以及处理器,处理器操作性地连接到惯性传感器***、相机***和显示设备。处理器被配置成:接收在AR***的移动期间由惯性传感器***生成的惯性传感器数据;接收在AR***的移动期间由相机***生成的多个图像数据帧;使用卷积神经网络编码器/解码器基于惯性传感器数据和多个图像数据帧来生成概率图,概率图对应于多个图像数据帧中的一帧并包括对应于一帧中多个像素的多个概率值,多个概率值中的每个概率值指示对应像素处于惯性坐标系或局部坐标系中的概率;基于多个图像数据帧和概率图来标识对局部坐标系中至少一个地标的视觉观察;以及基于隐藏马尔科夫模型(HMM)中对应于局部坐标系的第一先验状态和局部坐标系中至少一个地标的视觉观察,参照局部坐标系来生成针对AR***的次级运动的估计。
附图说明
图1是被配置成估计主要和次级运动的增强现实(AR)***的示意图。
图2是图1的AR***使用来追踪主要和次级运动的隐藏马尔科夫模型(HMM)的图。
图3是图1的AR***的使用图2的HMM来估计主要和次级运动的操作过程的图。
图4是卷积神经网络(CNN)编码器/解码器的图,所述卷积神经网络(CNN)编码器/解码器包括图1的AR***在图3的过程中使用的极线约束层(epipolar constrainedlayer)。
图5是描绘图4的卷积神经网络编码器/解码器中极线约束层的操作的图。
图6是接收器操作特性(ROC)图形,其描绘了图4的CNN编码器/解码器相比于缺少极线约束层的CNN编码器/解码器的真-肯定检测与假-肯定检测之比。
图7是描绘了在包括惯性坐标系和局部坐标系二者的环境中使用图1的AR***的视觉惯性测程法的准确性的图。
图8A是描绘了对具有地标的全局坐标系和惯性坐标系的标识以及图1的AR***中生成的增强图形的图。
图8B是描绘了图1的AR***用于在惯性坐标系和局部坐标系二者中产生具有准确位置的增强图形的操作的另一个图。
具体实施方式
出于促进对本文公开的实施例的原理的理解的目的,现在参考附图和下面撰写的说明书中的描述。这些参考没有限制本主题的范围的意图。如本公开所属领域中的技术人员通常将想到的,本公开还包括对所说明的实施例的任何更改和修改,并且包括所公开实施例的原理的进一步应用。
如本文所使用的,术语“主要运动”是指并入了相机***和惯性传感器***的增强现实(AR)设备关于惯性坐标系的运动。在AR设备的上下文中,惯性坐标系是假设为静止(非移动)的固定坐标系,而AR设备自身和潜在地其他对象相对于惯性坐标系移动。下面的示例中描述的惯性坐标系的非限制性实际示例包括地球表面、相对于地球表面不移动的固定对象、建筑物中的墙壁、地板、屋顶和其他静态结构等等。
如本文所使用的,“次级运动”是指并入了相机***和惯性传感器***的AR设备关于惯性坐标系的运动。局部坐标系的非限制性示例可以包括AR***相对于车辆内部或相对于AR***的用户保持在手中的对象的移动,所述对象诸如书本、夹纸纪录夹板、笔记本计算机等等。尽管AR***使用来自相机***的视频数据和来自惯性传感器的惯性数据二者来追踪主要运动,但是AR***仅使用来自相机***的视频数据来追踪次级运动,这是因为惯性传感器中的加速度计和陀螺仪的性质依附于惯性坐标系。
如本文所使用的,术语“冲突”是指这样的情形,在所述情形中,来自增强现实***中两个不同传感器的输入数据关于主要运动和次级运动中任一个或二者提供不一致(“冲突”)的数据。例如,相机***可以生成指示在一个方向上的主要运动的像素数据,而惯性传感器指示另一个方向上的主要运动,这产生冲突。本文描述的实施例在每像素的基础上检测来自相机***的图像数据中的冲突并使用冲突信息来改进主要运动检测和次级运动检测二者的准确性。
如本文所使用的,术语“地标”是指AR***在图像传感器数据中检测到的不随时间相对于坐标系移动的对象,所述坐标系可以是惯性坐标系或局部坐标系。惯性坐标系中地标的示例包括不相对于惯性坐标系中的地面移动的树木、灯杆、标杆或任何其他静态对象。局部坐标系中地标的示例包括在车辆内部形成局部坐标系的情形中车辆内部的仪表板的固定元素和其他固定特征。
基于一个或多个视觉观察来标识地标,所述一个或多个视觉观察是基于特征提取过程来生成的,所述特征提取过程应用于AR***中的相机***在操作期间生成的一系列图像帧。在本文描述的实施例中,使用加速段测试特征(FAST)算法或另一特征提取算法来生成视觉观察。尽管在本文中没有更详细地描述,FAST算法通过以下操作来检测对应于图像数据中的对象的拐角的特征:在对于拐角的候选像素周围生成一圈像素,并基于候选像素和围绕该候选的像素二者的像素强度等级标识出该候选实际是拐角。包括决策树、神经网络和其他图像处理技术的机器学习技术可以被采用来以高效方式执行FAST算法的变体。本文描述的实施例将FAST与称为二元鲁棒不变可伸缩关键点(BRISK)的另一种技术进行组合,所述二元鲁棒不变可伸缩关键点(BRISK)基于来自FAST的特征来执行关键点检测以生成视觉观察z作为关键点描述符。尽管在一系列图像数据帧上生成视觉观察z,但是每个视觉观察z映射到每个帧中的像素群组,并且如下面进一步详细描述的,深度神经网络分类器将针对每个像素的分类生成为对应于惯性坐标系或局部坐标系。
在实际AR***中,地标不是先验已知的,并且必须作为称为同时定位和映射(SLAM)的过程的部分与估计AR***的主要运动和次级运动的过程并发地从图像传感器输入数据被估计。在SLAM中,主要运动和次级运动的估计涉及定位过程,而地标的估计涉及映射过程。如下面进一步详细描述的,本文描述的AR***和方法生成地标的视觉观察,其中基于当AR***相对于惯性坐标系和局部坐标系移动时随时间取得的视频的多个帧来生成视觉观察。因为地标不移动,所以地标在视觉观察中随时间的任何位置改变实际上对应于AR***的移动,并且AR使用地标的视觉观察来纠正使用隐藏马尔科夫模型和惯性传感器输入生成的运动估计。AR***实施例还将图像数据帧中的个体像素分类为属于惯性坐标系或局部坐标系。然后,AR***标识多个图像的视觉观察中的地标,并且基于来自每个图像的像素分类来分类地标属于惯性坐标系还是局部坐标系。该分类过程使得能够估计次级运动并改进主要运动的估计准确性。
图1是AR***100的示意图。AR***100包括一组AR眼镜104和AR控制单元140,一组AR眼镜104被配置成穿戴在用户的头部上,AR控制单元140完全集成到AR眼镜104中或者体现为操作性地连接到AR眼镜104中的组件的一个或多个计算设备。
AR眼镜104包括透镜108A和108B、相机***112以及一个或多个惯性传感器116,在图1的实施例中,相机***112包括立体相机112A和112B。透镜108A和108B是透明的并且使得用户能够以与一幅普通眼镜或太阳眼镜类似的方式看到四周的物理环境。透镜108A和108B还提供了透明显示器或者提供用于来自AR眼镜104中集成投影设备的图形的投影的表面,所述透明显示器在AR***中生成图形以在不模糊物理环境的视图的情况下增强物理环境中的特征。在再一实施例中,AR眼镜104包括可以将图形直接发射到用户眼睛中的投影设备,并且这些实施例可选地省略透镜108A和108B。相机***112生成视频数据中的立体图像数据帧以记录AR眼镜104周围的物理环境。相机***112包括二者产生视频数据流中的图像数据帧的两个相机112A和112B,两个相机112A和112B之间物理分离,两个相机112A和112B之间的物理分离提供了立体图像数据帧。尽管相机***112提供立体图像数据,但是本文描述的主要运动和次级运动估计过程也可以使用单视场图像数据来执行,使用单个相机来生成所述单视场图像数据。惯性传感器116例如包括在三维中测量线性加速度的多轴加速度计或多个单轴加速度计、测量旋转加速度的一个或多个陀螺仪,以提供惯性传感器数据来追踪AR眼镜104在操作期间经历的线性加速度和角加速度。在一些实施例中,惯性传感器116被体现为惯性测量单元(IMU),其使用微机电***(MEM)器件来实现加速度计和陀螺仪。
AR控制单元140包括连接到存储器160的处理器150。AR控制单元150中的处理器150操作性地连接到向AR***100提供用户输入的输入设备、诸如投影仪或显示器的图形输出显示设备、相机***112以及惯性传感器116,所述图形输出显示设备使用透镜108A和108B或者将图形直接投影到用户眼睛中。
处理器150是数字逻辑器件,其并入例如微处理器、微控制器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、专用集成电路(ASIC)等中的一个或多个。在一个说明性实施例中,处理器150实现为片上***(SOC),其包括具有一个或多个核的中央处理单元(CPU)和图形处理单元(GPU),所述图形处理单元(GPU)实现硬件以加速用于向用户显示的图形的生成。在一些实施例中,处理器150中的CPU、GPU或单独的数字逻辑器件还使用深度卷积神经网络编码器/解码器来实现推断的硬件加速,AR***100使用所述深度卷积神经网络编码器/解码器来解决在AR***100处于包括惯性坐标系和局部坐标系二者的环境的情形中由相机***112生成的图像数据帧的像素中的冲突。
存储器160包括诸如固态或磁性存储设备的一个或多个非易失性存储器设备和诸如随机存取存储器(RAM)的一个或多个易失性存储器设备,用于在AR***100中存储数据。在图1中,存储器160存储程序指令164,处理器150执行程序指令164来执行本文描述的操作。存储器160存储图像数据168,图像数据168包括相机***112在AR***100的操作期间生成的视频流中的多个图像数据帧。存储器160存储惯性传感器116在AR***100的操作期间生成的惯性传感器数据172。存储器160存储具有时间戳的图像数据168和惯性传感器数据172,以使得AR***100能够将在AR***100的操作期间同时发生的来自相机***112的图像数据帧与惯性传感器数据172进行同步。存储器160还存储深度卷积神经网络(CNN)编码器/解码器180,其使用极线约束层来生成每像素概率图184,每像素概率图184在AR***接收到冲突的传感器数据的情形中标识图像数据168的帧中每个像素对应于惯性坐标系或局部坐标系的概率。存储器160还存储隐藏马尔科夫模型(HMM)200,AR***100使用隐藏马尔科夫模型(HMM)200来用于基于主要运动和次级运动的之前估计状态以及来自图像数据168、惯性传感器数据172的目前时间输入和每像素概率图184的输出,通过使用状态模型来进行主要运动估计和次级运动估计二者。存储器160还存储AR图形数据188。AR图形数据188包括例如二维图像、三维几何模型和用于三维几何模型的纹理、供处理器150的GPU中着色器硬件执行的着色器程序,以及AR***100使用来生成图形以向用户提供增强现实输出的任何其他数据。如下面进一步详细描述的,对AR***100中主要运动估计和次级运动估计的改进使得处理器150能够使用AR图形数据188来生成在惯性坐标系和局部坐标系二者中具有准确放置的图形。
尽管图1出于说明性目的描绘了单个AR控制单元140,但是可替换实施例可以包括多个计算设备,所述多个计算设备使用由用户携带的本地计算设备和经由有线或无线数据网络与本地计算设备通信的一个或多个远程计算设备二者来实现AR***100的功能。例如,在一些实施例中,AR***使用远程服务器计算设备来执行本文描述的一些功能,而与AR眼镜104集成或由用户单独携带的更小的本地处理设备执行本文描述的其他功能。这样,对AR控制单元140以及处理器150和存储器160的操作的任何参考应当理解为适用于单个计算设备或多个计算设备的组合二者,所述多个计算设备被配置成一起操作来实现本文描述的实施例。
图2是AR***100使用来用于对主要运动轨迹和次级运动轨迹二者的估计的隐藏马尔科夫模型(HMM)200的图。图2描绘了HMM 200,其包括单个状态群组和当AR***100未经历群组204中的运动冲突时发生的输入204,以及两个单独状态群组和当***经历传感器数据中的冲突时执行主要运动(群组240)的估计和次级运动(群组280)的估计的输入240与280,传感器数据中的冲突归因于在来自相机***的图像数据帧中存在惯性坐标系和局部坐标系二者。更详细地,群组204包括估计单个惯性坐标系中的轨迹的多个状态,所述单个惯性坐标系从初始状态210A(X 0 )开始并且包括附加状态210B(X 1 )和210C(X m- ),其中状态210C(X m- )表示在引入局部坐标系和对主要运动与次级运动二者的估计之前生成的最终状态估计。在图2的群组204中,基于来自惯性传感器的数据的目前时间惯性观察由节点208A(u 1 )和208B(u m- )来表示。在操作期间,***100基于之前状态和来自208A-208B中示出的惯性传感器观察的目前输入来确定系列210B-210C中的下一状态。因此,状态210C是基于先验状态210B(并忽略在状态210B之前发生的更早状态)和形成针对状态210C的目前时间输入的惯性观察208B来预测的。惯性观察208A(u 1 )和208B(u m- )提供输入以使得HMM 200能够从一个状态传播到下一状态来生成主要运动的经更新的估计。
孤立来说,状态和惯性观察的组合形成一种类型的惯性导航***,其可以在惯性观察208A和208B关于AR***的移动始终提供完美信息的非现实场景中提供准确的主要运动预测。然而,在实际***中,惯性观察208A和208B中甚至小的误差也随时间累积,并且状态中所预测的运动值产生对于利用AR***的实际使用不足够准确的结果。因此,HMM 200还采用基于多个视频数据帧和地标而生成的视觉观察212A(z 1 )和212B(z 2 ),所述地标是在如由地标节点214(L 1 )所表示的多个视频数据帧中标识的。不同于节点210A-210C中的主要运动状态,地标节点214是单个节点,这是因为地标的位置不随时间而改变。然而,精确观察地标集合可能归因于诸如当AR***中的相机捕捉到标杆地标随时间的图像时的视觉观察中的改变而随时间改变,所述视觉观察跟随有当AR***中的相机不再观看到地标时不包括标杆地标的附加视觉观察。运动的最终估计基于来自HMM 200基于先验状态和目前惯性输入的预测及后面的误差最小化过程,所述误差最小化过程使用地标L的视觉观察z来生成准确运动估计。
在惯性传感器与相机***之间的传感器数据之间没有冲突的情形中,AR***100使用HMM群组204进行操作。然而,一有运动冲突出现,状态Xk仅取决于输入uk和之前状态Xk-1的马尔科夫假设就不是有效的。如果这样的冲突发生,则AR***100接收标识提供局部坐标系的对象的用户输入,以使得AR***100能够提供对主要运动和次级运动二者的估计。如图8A和图8B中进一步详细描绘的,提供局部坐标系的对象的非限制性实施例是机动车辆内部的仪表板。AR***100然后使用HMM 200中的两个状态群组以估计主要运动(群组240)和次级运动(群组280)。主要运动群组240图示包括状态,并且在主要运动估计过程期间随时间生成附加状态。主要运动群组240还包括随时间传播主要运动状态X的惯性传感器输入244A(u 3 )和244B(u 4 )。视觉观察对应于来自地标估计节点的地标,其中地标250包括对应于主要运动的惯性坐标系中的地标和对应于次级运动的局部坐标系中的地标二者。视觉观察248A和248B对应于图像数据中的地标,所述地标在在下面描述的单独过程中被检测,但是每个地标还映射到原始图像数据中的一个或多个像素。具体地,本文描述的实施例使用在惯性坐标系和局部坐标系中标识相对少量地标的“稀疏”特征检测过程,并且每个地标映射回原始图像数据中的像素子集。
在HMM 200中,群组280包括对应于次级运动的状态。不同于主要运动,群组280仅仅基于处于局部坐标系中的地标的视觉观察来更新针对次级运动的估计状态。
图2还描绘了每像素概率图184(M),其应用于对HMM群组240和280二者中的状态的图像数据输入。在图2的实施例中,基于可以包括惯性坐标系和局部坐标系二者的所有图像数据中的地标来生成视觉观察248A和248B。为了解决其中一些地标的像素对应于惯性坐标系而其他地标的像素对应于局部坐标系的传感器数据中冲突,每像素概率图可以提供针对每个像素的加权值,所述加权值指示该像素对应于惯性坐标系或局部坐标系的概率。由于视觉观察248A和248B中的每个可以映射到每个图像数据帧中的像素集,所以每像素概率图184使得AR***能够将地标的视觉观察分类为对于群组240中的主要运动估计处于惯性坐标系中或者对于群组280中的次级运动估计处于局部坐标系中。例如,在一种配置中,每像素概率图184包括针对每个像素在范围[0.0, 1.0]中的数值,其中值0.0指示像素处于惯性坐标系中的完全确定性,而值1.0指示像素处于局部坐标系中的完全确定性。针对每个像素的居间概率值还可以指示针对像素被包括在任一坐标系中的不同确定性程度(例如,值0.5指示像素处于任一坐标系中的相等概率)。
每像素概率权重图184通过确保HMM 200向视觉观察248A和248B的具有对应于针对主要运动估计状态242A和242B的惯性坐标系的最高概率的像素指派最大权重而同时使用具有对应于用于第二运动估计状态282A和282B的局部坐标系中的视觉观察的最高概率的像素,来改进HMM 200中的主要运动估计和次级运动估计的准确性。如下面进一步详细描述的,AR***100使用具有极线约束层的深度卷积神经网络编码器/解码器框架来生成每像素概率图184。
AR***100使用最大后验(MAP)准则优化来估计HMM 200中的***状态。优化过程基于由惯性传感器116生成的测量来最小化估计中的残差(误差),并基于由相机***112生成的图像数据中的视觉观察来最小化估计中的残差。每像素概率图184(M)供MAP优化过程使用来确定残差与惯性坐标系(W)或局部坐标系(S n )的正确关联。MAP优化过程寻求最小化残差值,并且像素及其对应视觉特征z到惯性坐标系或局部坐标系的正确映射使得AR***100与当在所有传感器数据与惯性坐标系一致的不正确假设下操作时的实践相比能够将残差值减小更大程度。下面在数学上描述用于减小针对主要运动估计的惯性坐标系中的残差和针对次级运动估计的局部坐标系中的残差的MAP过程:
在HMM 200和上面的等式中,群组204中的最终状态X m- 对应于在具有两个不同坐标系的运动冲突出现之前生成的最终估计的运动轨迹。HMM的群组204中的最终状态X m- 成为用于群组240中的主要运动估计和群组280中的次级运动估计二者的初始状态,所述主要运动估计和次级运动估计归因于主要运动和次级运动中的差异而彼此偏离。项分别表示从群组204中的组合状态估计器到群组240中的主要运动状态估计器和群组280中的次级运动状态估计器的转移概率。在地标不是固定的环境中,视觉观察不能仅基于***的当前状态X k 关联到适当的状态估计器。除了当前状态之外,还确定了与地标相关联的运动。AR***100使用每像素概率图M来估计该关联以对每个像素和视觉观察中对应于像素的地标处于惯性坐标系或局部坐标系中的概率进行分类。
图3描绘了图1的AR***100实现的过程300,用于在归因于传感器数据中惯性坐标系和局部坐标系二者的存在而发生运动冲突的情形中使用图2的HMM 200来执行主要运动估计和次级运动估计。在下面的讨论中,对执行功能或动作的过程300的参考是指诸如处理器150的处理器的操作,用于执行存储的程序指令来结合AR***的其他组件执行所述功能或动作。如下面更详细描述的,过程300包括生成每像素冲突概率图,和使用每像素冲突概率图标识输入图像数据帧中对应于惯性坐标系和局部坐标系的地标来估计主要运动轨迹和次级运动轨迹。AR***100还基于主要运动轨迹和次级运动轨迹的估计来生成增强AR***100周围的物理环境的图形。过程300也称为多运动运动冲突视觉惯性测程法(MC-VIO)过程,这是因为过程300标识图像数据的惯性坐标系和局部坐标系中的运动冲突并在视觉惯性测程法过程中使用运动冲突来提供对主要运动和次级运动的改进的估计。
每像素冲突概率图的生成
在过程300期间,处理器150分别从AR眼镜104中的相机***112和惯性传感器116接收图像帧数据168和惯性传感器数据172。处理器150使用图像帧数据168和惯性传感器数据172二者作为对深度神经网络编码器/解码器180的输入以生成每像素概率图184(块304)。
图4更详细地描绘了具有极线约束层的CNN编码器/解码器180。CNN编码器/解码器180包括CNN编码器408、极线约束层416和生成输出每像素概率图184的CNN解码器432。CNN编码器408基于两个输入图像帧404A和404B来产生输出412A和412B,两个输入图像帧404A和404B是在两个不同时间取得的两个图像,包括之前时间图像帧404A(时间t)和目前时间图像帧404B(时间t+l)。在一些实施例中,输入图像帧是由相机***112生成的视频数据序列中的两个连续帧,但是在其他实施例中,两个图像帧之间的时间差可以大于视频数据中连续图像帧之间的时间跨度。
CNN编码器408使用“Siamese”编码过程从图像帧404A和404B提取高维特征,也就是说,图像帧404A和404B二者被分开地供应给CNN编码器408以产生分别对应于输入图像帧404A和404B的经编码的输出412A和412B。具体地,使用训练过程一次训练CNN编码器408,并且在卷积层中具有经训练的权重值的相同CNN编码器结构用于为输入图像帧404A和404B二者生成经编码的输出412A和412B。在一些实施例中,处理器150使用编码块408的单独实例并行执行编码过程。
卷积神经网络编码器/解码器180也称为“深度”神经网络编码器/解码器,这是因为CNN编码器408和CNN解码器432二者都包括多个层,所述多个层在每个层中提供卷积层、激活功能(图4的实施例中使用的修正线性单元ReLu)和下采样功能(在编码器408中)或上采样功能(在解码器412中)。在图4的示例中,CNN编码器408包括五个卷积层。除了最终层,每个层跟随有批量归一化层和ReLU激活。CNN编码器408从最后卷积层移除ReLU激活功能以在内积运算之前在特征中保持负值。在卷积层之间应用四个最大池化层,所述四个最大池化层接续地对卷积层的居间输出下采样以生成输出412A和412B。两个经编码的输出412A和412B包括来自两个原始输入图像帧404A和404B的经编码的特征。术语“接受域(receptivefield)”是指经编码的输出412A和412B中对应于原始图像帧数据中的像素群组的元素的向量。最终概率图输出184基于使用极线约束层416生成的经编码的输出412A和412B的组合来对像素分类,极线约束层416接收经编码的412A和412B作为输入。
在本文描述的实施例中,极线约束层416在利用视频***的一个示例随时间(时间tt+l)生成的两个图像帧数据集合的经编码的输出412A与412B之间提供约束,所述视频***以每秒30帧的速率生成图像帧,从而以近似每33.3毫秒一帧的速率生成接续的图像数据帧。归因于AR***100随时间的移动,两个图像数据帧还描绘了对应于AR***在时间tt +l之间的移动的空间变换。极线是指这样的元素,其在两个经编码的输出之一中表现为单个元素(接受域),同时归因于从相机***112的视角来看该元素在两个图像帧之间随时间的移动而在经编码的输出中表现为线。
作为极线的简化示例,来自CNN编码器408的第一图像和对应经编码的输出包括在端点看到的定位销杆(dowel rod)的端,其中第一经编码的输出中的单个接受域包含关于定位销杆的可获得的所有信息,所述定位销杆在深度维度延伸远离相机。在相机移动之后产生的第二图像现在从另一个角度示出相同定位销杆,其中来自CNN编码器408的经编码的输出将定位销杆呈现为元素的线,因为第二图像描绘了关于定位销杆的附加信息,并且延伸通过定位销杆的线表示第二图像编码的对应于从第一图像取得的单个元素的三维空间中的所有信息。因此,对应于第一经编码的输出中的定位销杆的一个接受域现在对应于第二经编码的输出中沿该线的每个接受域,并且单个零维元素现在映射到一维元素布置。在AR***100中,来自惯性传感器116的惯性传感器数据提供信息,所述信息使得处理器150能够标识该示例中定位销杆的第一与第二图像之间角度的改变,并且更一般地,标识来自相机***112的任何集合的两个图像之间角度的改变。还在其他集合的两个图像输入中基于AR***100在两个图像的生成之间的移动来呈现类似极线,并且AR***100使用相机的移动与两个图像的经编码的输出之间的几何关系来标识极线。
在图4中,接受域块420之间的对应表示处理操作,所述处理操作使用处理器150来实现,用于基于从tt+l的时间段期间从惯性传感器116接收的传感器数据中标识的AR***100的运动来标识经编码的输出412A和412B二者中相关接受域元素之间的对应,AR***100的所述运动对应于AR***100在相机***112生成图像数据帧的时间之间的移动。在两个帧之间的短时间段内,惯性传感器数据提供对AR设备100中相机***112的移动的足够准确的测量,以使得处理器150能够标识经编码的输出412B的接受域中的极线,所述接受域对应于第一经编码的输出412A中的各个接受域。因此,AR***100使用来自相机***112的两个视频帧作为对CNN冲突检测器180的输入并使用来自惯性传感器116的惯性数据,来标识接受域与极线约束层416中的极线之间的映射。极线约束层416“约束”来自第一经编码的输出412A的每个接受域以仅对应于第二经编码的输出412B中接受域的单个线,而非潜在地使第一经编码的输出412A中的每个接受域元素对应于第二经编码的输出412B中的任何接受域元素,这改进了后续CNN解码器432的准确性。
图5更详细地描绘了极线层416的结构和操作。极线约束层416使用惯性信息用于运动冲突检测的目的。如上面所描述的,极线将潜在匹配的搜索维度从二维减小到一维。在图5中,来自之前时间t的第一经编码的输出412A中的单个接受域520对应于来自目前时间t +l的第二经编码的输出412B中的接受域的整个极线524。如图4和图5中所描绘的,经编码的输出412A和412B是三维结构,其形成对应输入图像的一系列减小分辨率的经编码的表示,其中每个减小分辨率的表示包含由CNN编码器408产生的经编码的特征。图5描绘了经编码的输出412A(R t )中坐标i,j处的单个接受域的向量,所述单个接受域是对应于来自第一输入图像帧404A的二维像素阵列504的接受域。接受域向量的深度维度表示CNN编码器408生成的一系列经编码的特征,其中接受域向量520中每个经编码的特征关于第一图像帧中的像素阵列504。因此,每个接受域在空间上对应于原始输入图像的二维区,但是经编码的输出412A和412B是三维的,这是因为每个接受域产生针对相同空间区的多个经编码的特征。在图4的说明性实施例中,CNN编码器408对于输出412A和412B中的每个接受域元素产生总共256个特征。图5描绘了处理器150在第二输入图像帧404B的经编码的输出412B中标识的极线524。极线524包括形成经编码的特征的二维矩阵的接受域的线性布置。极线524在u、v坐标空间中在数学上表示为,其中a、bc项是处理器150使用惯性传感器数据标识的极线的系数,用于基于AR***在两个输入图像404A和404B的生成之间移动来标识经编码的输出412A与412B之间的几何关系。极线524中接受域的线性布置对应于第二图像数据帧404B中的像素512的截幅(swath)。
在过程300期间,处理器150生成来自第一经编码的输出412A的接受域520和来自第二经编码的输出的接受域524的极线的内积(点积)以产生组合的输出元素528,组合的输出元素528是对应于接受域520与接受域524的阵列的内积的另一向量。极线约束层的每个输出向量(EC)在数学上表示为:。处理器150针对第一经编码的输出412A中的每个接受域执行与来自第二经编码的输出412B的接受域的极线相同的操作以产生极线约束层416的最终输出532,最终输出532组合原始经编码的输出412A和412B以形成用于CNN解码器432的输入。极线层532的最终输出将用于神经网络编码器/解码器中的神经网络编码器的输入形成为元素的块,其中是经编码的输入412A/412B的高度,并且是经编码的输入412A/412B的宽度。
在CNN编码器/解码器180中,CNN解码器432接收极线约束层416的组合输出。CNN解码器432包括接续地对来自极线约束层416的输入进行解卷积的五个解卷积层,和用于生成具有与原始输入图像404B相等分辨率的输出的四个上采样层。CNN解码器432应用具有s型激活函数的卷积层,以生成最终每像素概率图184。CNN解码器432生成具有概率值的每像素概率图184,所述概率值指示第二图像404B中每个像素处于惯性坐标系或局部坐标系中的概率。如上所述,每像素概率图184中的每个元素包括范围[0.0, 0.1]中的数值,用于指示图像帧404B中的对应像素对应于惯性坐标系或局部坐标系的概率。
图6是接收器操作特性(ROC)图形600,其描绘了相比于不使用极线约束层的另一CNN编码器/解码器(绘图604),使用极线约束层的CNN编码器/解码器180生成(绘图608)的每像素概率图中真-肯定检测(纵轴)与假-肯定检测(横轴)之比。如图形600中所描绘的,对于绘图608的真-肯定率在假-肯定率达到20%(0.2)之前超过80%(0.8),这指示对于使用极线约束层的CNN编码器/解码器180有更高准确程度。作为对比,绘图604展示了较低的真-肯定检测率而产生较高的假-肯定检测比例,这是由于产生绘图604的CNN编码器/解码器的实施例不包括极线约束层而发生的。
每像素运动冲突概率图184以至少两种方式改进了估计的主要运动和次级运动。第一,其使得能够在主要运动估计中实现更好的杂点抵御。第二,其有助于确定可以用于次级运动估计的视觉测量。多运动MC-VIO的主要挑战之一是保持算法的低计算复杂度同时以有限的测量来执行鲁棒的次级运动估计。
过程300使用CNN编码器/解码器180来在CNN编码器/解码器180已经被训练之后生成每像素概率图180,所述训练在过程300之前发生。在一个实施例中,训练过程使用随机梯度下降训练过程的变体,其自动地调整每维度学习速率。训练过程基于以下最小化过程来最小化像素方面的二元交叉熵损失:。在测试阶段期间,CNN编码器/解码器180针对测试视频序列的每个帧预测每像素概率图184,并且将每像素概率图184提供给VIO***以使用预定测试数据来测试准确主要和次级运动估计。
主要运动估计
在过程300期间,主要运动估计过程(块310)使用图像帧数据168和惯性传感器数据172二者作为输入来相对于惯性坐标系执行AR***100的主要运动估计。群组240中的主要运动状态提供主要运动状态的简化视图。在本文描述的记号中,项W是指惯性坐标系(“世界”坐标系)。对主要状态估计器的输入包括视觉观察z和惯性传感器测量。更详细地,主要运动轨迹状态表示为,其中每个状态是:。项是指AR***的姿态,项是指AR***的取向,是指速度,并且项表示惯性传感器数据中的线性加速度和旋转速度偏差。项使用W记号来指示这些元素是相对于惯性坐标系的。表示在节点250中的HMM 200中估计的视觉地标。该表达式和本文其他表达式中使用的“”记号指示矩阵转置。
如图3中所描绘的,块310的主要运动估计过程包括特征提取(块316)、引导匹配(块320)、最小求解器(块324)以及主要运动优化过程(块328)。主要运动估计过程产生输出332,输出332包括针对主要运动的估计的姿态和估计的取向
在块316的特征提取中,处理器150从图像数据168的帧提取视觉测量z。在一个实施例中,处理器150在特征提取过程中使用上面描述的FAST和BRISK技术来标识视觉观察。
过程300以引导匹配继续,所述引导匹配除了存储在HMM 200的状态中的惯性传感器数据和信息之外还使用从多个图像提取的特征来生成地标集(块320)。引导匹配的术语“引导”部分是指HMM 200中之前时间状态的使用以充当“传播”估计过程的基础,所述“传播”估计过程生成HMM 200中的另一“先验”状态。先验状态通常不是用于估计主要运动的正确状态,而是一般提供要在标识图像数据中的地标的匹配过程中使用的足够信息,AR***100之后结合每像素概率图使用所述信息来实际地标识HMM 200中包含估计的主要运动的最终状态。
处理器150传播之前主要运动状态估计以估计新的先验状态。处理器150使用具有惯性传感器数据元素的以下等式来执行传播:
传播等式取本体坐标系(body frame)B中收集的输入惯性测量作为输入。处理器150使用先验状态来引导匹配器,所述匹配器生成两个不同时间戳处的图像之间的视觉对应(时间匹配),并且在使用立体相机***112的实施例中,生成相同时间戳处的两个图像之间的视觉对应(静态匹配)。处理器150然后使用所述对应作为视觉测量z。当足够的地标视觉测量可获得时,处理器150对状态估计器中的地标执行三角测量初始化。三角测量过程基于匹配的视觉观察在一系列图像帧上的相对位置的改变来标识地标。再一次,尽管地标未移动,但是AR***100中的相机***112的移动产生地标的视觉观察的感知位置随时间的改变,并且处理器150执行三角测量过程来标识HMM 200中的地标。
过程300以最小求解器过程(块324)继续,处理器150使用所述最小求解器过程来标识预测与观察之间的残差(误差)。在过程300中,处理器150基于所观察到的惯性测量将残差(误差)标识为:
处理器150还标识观察到的视觉测量的残差,表示为:
处理器150使用残差来执行视窗化批量优化过程(块328)以最小化以下能量:。在前述等式中,项表示再投影误差,并且项表示预测误差。再投影误差表示归因于地标的实际三维位置相比于AR***100从三角测量生成的估计位置之间的差异而发生的误差,这是由于估计是使用充当AR***100周围三维物理空间的投影的一系列二维图像而做出的。预测误差表示来自HMM 200基于之前状态和目前时间惯性传感器输入的初始预测与实际主要运动之间的误差。术语“能量”不是对应于物理能量的量,而是指作为能量的量的总误差水平的测量,其中视窗化批量优化过程搜索HMM 200中具有至之前时间状态的连接的状态,以找到产生最小能量(误差)值的下一状态。AR***100然后选择HMM 200中的下一状态,并将所选状态中分别对应于姿态和取向的嵌入值用作估计的输出轨迹数据332。
次级运动估计
如图3中所描绘的,次级运动估计过程(块350)包括初始化(块354)、次级运动匹配(块358)、次级最小求解器(块362)以及次级运动优化过程(块366)。次级运动估计过程350还包括地标坐标系估计处理器340,地标坐标系估计处理器340将惯性坐标系中地标的估计提供给引导匹配器320并将局部坐标系中地标的估计提供给次级运动匹配器358。块350的次级运动估计过程产生包括姿态的估计和取向的估计的次级运动估计输出370。
次级运动利用定义为下式的次级状态来估计状态。在本文描述的记号中,项V是指局部坐标系。其中分别表示关于局部坐标系的估计的姿态和取向,并且表示使用每像素概率图标识为处于局部坐标系中的地标。如上所述,HMM 200中的次级状态不包括基于惯性传感器数据172的参数,这是因为仅基于图像帧数据168的对应于使用每像素概率图184所标识的局部坐标系的部分来估计局部坐标系中的次级运动。
在过程300中,处理器150将次级运动估计器初始化为状态(图2的HMM 200中的状态210C)(块354),状态表示次级运动追踪开始之前的最终状态。
过程300继续为处理器150执行次级运动匹配过程(块358)。次级运动匹配过程358类似于主要运动估计过程中的块320的引导匹配过程,但是在次级运动匹配过程中,处理器150使用每像素概率图184(M)来标识具有对应于局部坐标系的高概率的地标以执行次级运动匹配过程。这通过减小或消除来自次级运动估计中惯性坐标系的地标的影响来增加次级运动估计的准确性。
在过程300期间,处理器150执行地标坐标系估计以确定地标属于用于块310的主要运动估计过程的惯性坐标系还是属于用于块350的次级运动估计过程的局部坐标系(块340)。如果处理器150标识地标属于局部坐标系的大于预定概率阈值的边际概率,诸如大于50%的概率,则处理器150将地标指派给次级图并将所有相关联的残差移动到次级运动估计器。地标基于地标Li的所有视觉观察zj处于局部坐标系中的边际概率通过下式给出:。该过程隐含地移除来自上面的块310的主要运动估计过程的地标。因此,尽管主要运动估计过程不直接采用每像素概率图184,但是处理器150使用每像素概率图184来在主要运动估计过程与次级运动估计过程之间划分地标,这改进两个过程的准确性。处理器150执行次级图中的地标与当前帧的时间匹配以生成附加视觉测量。
一般化的P3P与RANSAC组合以估计与次级图相关联的姿态。过程300中,处理器150执行次级运动最小求解器过程(块362)以标识残差:。这是类似于上面的块324的主要运动最小求解器的过程,但是在块350的次级运动估计过程中,处理器150仅仅标识对应于视觉观察与估计的地标之间的误差的残差,这是因为AR***100不使用惯性数据来执行次级运动估计过程。
处理器150使用残差来执行用于次级运动估计的视窗化批量优化过程(块366)以最小化以下能量:。在该等式中,仅有的误差是再投影误差并且没有来自惯性传感器测量的预测误差。AR***100然后选择HMM 200的次级状态中的下一状态,并使用所选状态中分别对应于姿态和取向的嵌入值作为估计的输出轨迹数据370。
对AR***操作的改进
如上所述,AR***100使用过程300来生成主要运动轨迹和次级运动轨迹的估计。这些轨迹的准确估计使得AR***100能够在包括惯性坐标系和局部坐标系二者的环境中以更大准确性执行视觉惯性测程法并以更大准确性生成用于向用户显示的增强图形。
图7更详细地描绘了对视觉惯性测程法(VIO)的改进。在VIO操作中,AR***100使用惯性坐标系中的估计轨迹来追踪其在环境中的位置。在图7中示出的两个实际示例中,VIO过程追踪AR***100的移动,同时用户在观看另一人的同时在办公室周围环路中走动,该另一人也在移动,并且在另一个示例中,用户在停车场周围的环路中乘坐机动车辆,该环路从停车场开始并回到相同停车场。在两个示例中,AR***100接收来自办公室或停车场的惯性坐标系和相机***112的视野中另一人或机动车辆内部的局部坐标系二者的传感器数据。图7将VIO操作中的误差描绘为当用户在办公室周围走动时与用户的路径的偏离或当车辆在停车场周围行进时与车辆中用户的路径的偏离。
更详细地,图7描绘了使用两个现有技术VIO***生成的VIO数据的图704和708,所述两个现有技术VIO***包括OKVIS(704)和Wisely Babu(708)VIO***。这两个VIO***归因于相机传感器的视场中存在移动的人而产生追踪误差,其中现有技术中导致误差的代表性图像对于图704示出在照片720中并且对于图708示出在照片724中。图7描绘了分别在图704和708中的大追踪误差706和710,该大追踪误差706和710降低现有技术VIO***的有效性。与此相对的,图712描绘了使用图1的AR***100执行的VIO,给定相同惯性和图像输入数据集,包括在现有技术VIO***中产生误差的图像720和724二者,AR***100使用多运动MC-VIO过程300以更大准确性执行主要和次级运动估计。
除了图7的结果,以下表格使用三个运动序列针对本文描述的实施例相比于现有技术OKVIS和Wiley Baby MV-VIO AR***描绘了以米计的绝对追踪误差(ATE)和以米每秒计的相对姿态误差(RPE),所述三个运动序列包括输入传感器数据中的惯性坐标系和局部坐标系二者。如下所描绘的,执行过程300的***100的实施例在RPE标准差方面在几乎所有度量和匹配上都展现了比Wiley Babu实现更优秀的性能。
上面描述的对VIO准确性的改进还使得AR***100能够在物理环境对应于惯性坐标系和局部坐标系二者的部分中以增强图形的准确放置生成用于向用户显示的增强图形。图8A和图8B更详细地描绘了AR***100用于生成增强图形的操作。图8A描绘了物理环境的视图,其包括道路和其他固定特征(惯性坐标系)以及车辆内部(局部坐标系)。可以使用AR***100中的相机***112来生成图像。照片802包括与每像素概率图184的图形描绘的叠加,该叠加包括对应于道路的惯性坐标系的区184和对应于车辆内部的局部坐标系的另一区804。尽管AR***100一般不产生每像素概率图184的图形描绘,但是照片802提供了每像素概率图184的说明性实施例。另外,照片820包括***100基于来自相机***112的图像数据帧和来自惯性传感器116的惯性传感器数据二者来检测的地标的图形标记,具有地标820和地标824的示例,地标820仅用于惯性坐标系中的主要运动估计,地标824仅用于局部坐标系中的次级运动估计。
图8A还描绘了AR***100生成的与惯性坐标系或局部坐标系对准的图形元素,用于增强物理环境的视图。在照片850A和850B中,AR***100生成惯性坐标系中停放在街道侧的虚拟车辆832的3D图形视图。在AR***100中,处理器150使用AR图形数据188来通过使用来自过程300的主要运动估计生成车辆832的图形描绘,以将虚拟车辆832放置在道路上的位置处,所述位置与当用户乘坐移动的车辆时来自用户视角的一致位置中的惯性坐标系保持对准。用户通过透镜108A/108B来观看虚拟车辆832连同图8A中描绘的物理环境。AR***100还可以生成与局部坐标系对准的虚拟图形。如照片854A和854B中所描绘的,处理器150生成虚拟地球仪836,虚拟地球仪836在局部坐标系中相对于车辆内部的仪表板保持在固定位置。再一次,处理器150使用图形数据188来生成虚拟地球仪836,并当用户相对于局部坐标系和惯性坐标系二者移动时使用次级估计运动来在局部坐标系内的一致位置中显示虚拟地球仪836。图8B包括附加照片860A-860E,其描绘了在AR***100操作期间的地标、虚拟车辆832和虚拟车辆836。尽管未在图8A和图8B中明确示出,但是AR***100可以同时显示惯性坐标系中虚拟车辆832和局部坐标系中虚拟地球仪836二者的图形,这归因于由本文描述的实施例提供的对主要运动估计和次级运动估计的改进。
将意识到的是,上面公开的及其他的特征和功能或其替代物的变型可以合期望地组合到许多其他不同***、应用或方法中。各种目前未预料到或未预期到的替代物、修改、变型或改进可能由本领域技术人员后续做出,所附权利要求意图涵盖这些替代物、修改、变型或改进。

Claims (18)

1.一种用于增强现实(AR)***中的运动估计的方法,包括:
利用惯性传感器***来在AR***的移动期间接收惯性传感器数据;
利用相机***来在AR***的移动期间接收多个图像数据帧;
利用实现卷积神经网络编码器/解码器的处理器基于惯性传感器数据和多个图像数据帧来生成概率图,概率图对应于多个图像数据帧中的一帧并且包括对应于所述一帧中多个像素的多个概率值,多个概率值中的每个概率值指示对应像素处于惯性坐标系或局部坐标系中的概率;
利用处理器基于多个图像数据帧和概率图来标识局部坐标系中至少一个地标的视觉观察;以及
利用处理器基于隐藏马尔科夫模型(HMM)中对应于局部坐标系的第一先验状态和局部坐标系中至少一个地标的视觉观察,参照局部坐标系来生成针对AR***的次级运动的估计。
2.根据权利要求1所述的方法,还包括:
利用AR***中的显示设备基于针对AR***的次级运动的估计来生成与局部坐标系对准的图形元素。
3.根据权利要求1所述的方法,还包括:
利用处理器基于多个图像数据帧和概率图来标识惯性坐标系中至少一个地标的视觉观察,惯性坐标系中的至少一个地标不同于局部坐标系中的至少一个地标;以及
利用处理器基于HMM中对应于惯性坐标系的第二先验状态、惯性传感器数据和惯性坐标系中至少一个地标的视觉观察,参照惯性坐标系来生成针对AR***的主要运动的估计。
4.根据权利要求3所述的方法,还包括:
利用AR***中的显示设备基于针对AR***的主要运动的估计来生成与惯性坐标系对准的图形元素。
5.根据权利要求3所述的方法,还包括:
利用AR***中的显示设备基于针对AR***的次级运动的估计来生成与局部坐标系对准的第一图形元素;以及
利用AR***中的显示设备基于针对AR***的主要运动的估计来生成与惯性坐标系对准的第二图形元素。
6.根据权利要求1所述的方法,还包括:
利用相机***接收多个图像数据帧,包括第一图像数据帧和第二图像数据帧,第二图像数据帧在第一图像数据帧之后发生;
利用实现卷积神经网络编码器/解码器中的卷积神经网络编码器的处理器,使用第一图像数据帧作为对卷积神经网络编码器的输入来生成第一经编码的输出,并使用第二图像数据帧作为对卷积神经网络编码器的输入来生成第二经编码的输出;
利用处理器基于第一经编码的输出中的第一多个接受域、第二经编码的输出中的第二多个接受域以及通过第二经编码的输出中的多个接受域生成的多个极线,使用极线约束层来生成针对神经网络编码器/解码器中的卷积神经网络解码器的输入;以及
利用实现卷积神经网络编码器/解码器中的神经网络解码器的处理器来生成对应于第二图像数据帧的概率图。
7.根据权利要求6所述的方法,生成针对卷积神经网络编码器/解码器中的卷积神经网络解码器的输入还包括:
利用处理器从极线约束层生成针对神经网络编码器/解码器中的卷积神经网络解码器的输入,所述极线约束层具有坐标u、v的二维矩阵中的作为的极线,其中极线约束层的坐标i、j处的每个元素,其中是第一经编码的输出中第一多个接受域中一个接受域的一维向量,并且是对应于第二经编码的输出中多个极线中一个极线的多个接受域的二维矩阵u、v,并且a、b和c表示一个极线的系数;以及
利用处理器生成针对神经网络编码器/解码器中的卷积神经网络编码器的输入为元素的块,其中是经编码的特征的高度,并且是经编码的特征的宽度。
8.根据权利要求6所述的方法,还包括:
利用处理器基于从惯性传感器***接收的惯性传感器数据来标识多个极线中的每个极线,所述惯性传感器数据指示在生成第一图像数据帧与生成第二图像数据帧之间的时间期间AR***的运动。
9.根据权利要求1所述的方法,生成针对AR***的次级运动的估计还包括:
利用处理器参照局部坐标系来生成对AR***的姿态和AR***的取向的估计。
10.一种增强现实(AR)***,包括:
惯性传感器***;
相机***;
显示设备;以及
操作性地连接到惯性传感器***、相机***和显示设备的处理器,处理器被配置成:
接收由惯性传感器***在AR***的移动期间生成的惯性传感器数据;
接收由相机***在AR***的移动期间生成的多个图像数据帧;
使用卷积神经网络编码器/解码器基于惯性传感器数据和多个图像数据帧来生成概率图,概率图对应于多个图像数据帧中的一帧并且包括对应于所述一帧中多个像素的多个概率值,多个概率值中的每个概率值指示对应像素处于惯性坐标系或局部坐标系中的概率;
基于多个图像数据帧和概率图来标识局部坐标系中至少一个地标的视觉观察;以及
基于隐藏马尔科夫模型(HMM)中对应于局部坐标系的第一先验状态和局部坐标系中至少一个地标的视觉观察,参照局部坐标系来生成针对AR***的次级运动的估计。
11.根据权利要求10所述的***,处理器还被配置成:
利用显示设备基于针对AR***的次级运动的估计来生成与局部坐标系对准的图形元素。
12.根据权利要求10所述的***,处理器还被配置成:
基于多个图像数据帧和概率图来标识惯性坐标系中至少一个地标的视觉观察,惯性坐标系中的至少一个地标不同于局部坐标系中的至少一个地标;以及
利用处理器基于HMM中对应于惯性坐标系的第二先验状态、惯性传感器数据和惯性坐标系中至少一个地标的视觉观察,参照惯性坐标系来生成针对AR***的主要运动的估计。
13.根据权利要求12所述的***,处理器还被配置成:
利用显示设备基于针对AR***的主要运动的估计来生成与惯性坐标系对准的图形元素。
14.根据权利要求12所述的***,处理器还被配置成:
利用显示设备基于针对AR***的次级运动的估计来生成与局部坐标系对准的第一图形元素;以及
利用显示设备基于针对AR***的主要运动的估计来生成与惯性坐标系对准的第二图形元素。
15.根据权利要求10所述的***,处理器还被配置成:
利用相机***接收多个图像数据帧,多个图像数据帧包括第一图像数据帧和第二图像数据帧,第二图像数据帧在第一图像数据帧之后发生;
使用第一图像数据帧作为对卷积神经网络编码器/解码器中卷积神经网络编码器的输入来生成第一经编码的输出,并使用第二图像数据帧作为对卷积神经网络编码器的输入来生成第二经编码的输出;
基于第一经编码的输出中的第一多个接受域、第二经编码的输出中的第二多个接受域以及通过第二经编码的输出中的多个接受域生成的多个极线,使用极线约束层来生成针对神经网络编码器/解码器中的卷积神经网络解码器的输入;以及
使用卷积神经网络编码器/解码器中的神经网络解码器来生成对应于第二图像数据帧的概率图。
16.根据权利要求15所述的***,处理器还被配置成:
从极线约束层生成针对神经网络编码器/解码器中的卷积神经网络解码器的输入,所述极线约束层具有坐标u、v的二维矩阵中的作为的极线,其中极线约束层的坐标i、j处的每个元素,其中是第一经编码的输出中第一多个接受域中一个接受域的一维向量,并且是对应于第二经编码的输出中多个极线中一个极线的多个接受域的二维矩阵u、v,并且a、b和c表示一个极线的系数;以及
生成针对神经网络编码器/解码器中的卷积神经网络编码器的输入为元素的块,其中是经编码的特征的高度,并且是经编码的特征的宽度。
17.根据权利要求15所述的***,处理器还被配置成:
基于从惯性传感器***接收的惯性传感器数据来标识多个极线中的每个极线,所述惯性传感器数据指示在生成第一图像数据帧与生成第二图像数据帧之间的时间期间AR***的运动。
18.根据权利要求10所述的***,处理器还被配置成:
利用处理器生成针对AR***的次级运动的估计包括参照局部坐标系对AR***的姿态和AR***的取向的估计。
CN201910462574.3A 2018-05-31 2019-05-30 提取增强现实***中主要和次级运动的方法和*** Pending CN110555869A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862678383P 2018-05-31 2018-05-31
US62/678383 2018-05-31
US16/158,878 US10636190B2 (en) 2018-05-31 2018-10-12 Methods and systems for exploiting per-pixel motion conflicts to extract primary and secondary motions in augmented reality systems
US16/158878 2018-10-12

Publications (1)

Publication Number Publication Date
CN110555869A true CN110555869A (zh) 2019-12-10

Family

ID=68694186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910462574.3A Pending CN110555869A (zh) 2018-05-31 2019-05-30 提取增强现实***中主要和次级运动的方法和***

Country Status (2)

Country Link
US (1) US10636190B2 (zh)
CN (1) CN110555869A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112911294A (zh) * 2021-03-22 2021-06-04 杭州灵伴科技有限公司 一种使用imu数据的视频编码、解码方法,xr设备和计算机存储介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10664988B2 (en) * 2018-06-28 2020-05-26 Intel Corporation Methods and apparatus to avoid collisions in shared physical spaces using universal mapping of virtual environments
EP3987483A4 (en) * 2019-06-24 2023-03-01 Insurance Services Office, Inc. MACHINE LEARNING SYSTEMS AND METHODS FOR ENHANCED IMAGE FALSIFICATION LOCATION
KR20210128269A (ko) * 2020-04-16 2021-10-26 삼성전자주식회사 증강 현실(ar) 디바이스 및 증강 현실 디바이스에서 포즈를 예측하는 방법
US11398048B2 (en) * 2020-07-30 2022-07-26 Apical Limited Estimating camera pose
US11792517B2 (en) * 2020-09-30 2023-10-17 Snap Inc. Pose tracking for rolling shutter camera
CN116071490B (zh) * 2022-10-25 2023-06-23 杭州华橙软件技术有限公司 室内空间布局的重构方法及重构装置、电子设备和介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8191359B2 (en) * 2006-04-13 2012-06-05 The Regents Of The University Of California Motion estimation using hidden markov model processing in MRI and other applications
EP2539883A1 (en) 2010-02-24 2013-01-02 Ipplex Holdings Corporation Augmented reality panorama supporting visually impaired individuals
KR101669119B1 (ko) 2010-12-14 2016-10-25 삼성전자주식회사 다층 증강 현실 시스템 및 방법
WO2014130854A1 (en) 2013-02-21 2014-08-28 Regents Of The Univesity Of Minnesota Extrinsic parameter calibration of a vision-aided inertial navigation system
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
US10306206B2 (en) 2013-07-23 2019-05-28 The Regents Of The University Of California 3-D motion estimation and online temporal calibration for camera-IMU systems
US10260862B2 (en) 2015-11-02 2019-04-16 Mitsubishi Electric Research Laboratories, Inc. Pose estimation using sensors
US10132933B2 (en) 2016-02-02 2018-11-20 Qualcomm Incorporated Alignment of visual inertial odometry and satellite positioning system reference frames
US9965689B2 (en) 2016-06-09 2018-05-08 Qualcomm Incorporated Geometric matching in visual navigation systems
AU2017317599B2 (en) * 2016-08-22 2021-12-23 Magic Leap, Inc. Augmented reality display device with deep learning sensors
WO2018051232A1 (en) 2016-09-13 2018-03-22 Hangzhou Zero Zero Technology Co., Ltd. Unmanned aerial vehicle system and method with environmental sensing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112911294A (zh) * 2021-03-22 2021-06-04 杭州灵伴科技有限公司 一种使用imu数据的视频编码、解码方法,xr设备和计算机存储介质

Also Published As

Publication number Publication date
US10636190B2 (en) 2020-04-28
US20190371024A1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
US10636190B2 (en) Methods and systems for exploiting per-pixel motion conflicts to extract primary and secondary motions in augmented reality systems
US11328158B2 (en) Visual-inertial positional awareness for autonomous and non-autonomous tracking
US11668571B2 (en) Simultaneous localization and mapping (SLAM) using dual event cameras
US11501527B2 (en) Visual-inertial positional awareness for autonomous and non-autonomous tracking
JP7250709B2 (ja) 畳み込み画像変換を使用して同時位置特定およびマッピングを実施する方法およびシステム
US10366508B1 (en) Visual-inertial positional awareness for autonomous and non-autonomous device
US10410328B1 (en) Visual-inertial positional awareness for autonomous and non-autonomous device
Yang et al. Pop-up slam: Semantic monocular plane slam for low-texture environments
US10390003B1 (en) Visual-inertial positional awareness for autonomous and non-autonomous device
CN109298629B (zh) 在未绘制地图区域中引导移动平台的***及方法
Rambach et al. Learning to fuse: A deep learning approach to visual-inertial camera pose estimation
JP6198230B2 (ja) 深度カメラを使用した頭部姿勢トラッキング
CN109255749B (zh) 自主和非自主平台中的地图构建优化
CN109643373A (zh) 估计3d空间中的姿态
KR20150144728A (ko) 이동 로봇의 맵을 업데이트하기 위한 장치 및 그 방법
US20220051031A1 (en) Moving object tracking method and apparatus
US20160210761A1 (en) 3d reconstruction
US11398048B2 (en) Estimating camera pose
WO2023087681A1 (zh) 定位初始化方法、装置、计算机可读存储介质和计算机程序产品
Prisacariu et al. Robust 3D hand tracking for human computer interaction
US20200211275A1 (en) Information processing device, information processing method, and recording medium
CN115151944A (zh) 从单目相机的全骨骼3d姿态恢复
CN112731503A (zh) 一种基于前端紧耦合的位姿估计方法及***
TWI812053B (zh) 定位方法、電子設備及電腦可讀儲存媒體
Artemciukas et al. Kalman filter for hybrid tracking technique in augmented reality

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination