CN111465962B - 用于手持式用户设备的增强现实的运动深度 - Google Patents
用于手持式用户设备的增强现实的运动深度 Download PDFInfo
- Publication number
- CN111465962B CN111465962B CN201980006353.3A CN201980006353A CN111465962B CN 111465962 B CN111465962 B CN 111465962B CN 201980006353 A CN201980006353 A CN 201980006353A CN 111465962 B CN111465962 B CN 111465962B
- Authority
- CN
- China
- Prior art keywords
- image
- depth map
- bilateral
- key frame
- user device
- 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.)
- Active
Links
- 230000003190 augmentative effect Effects 0.000 title claims description 11
- 230000033001 locomotion Effects 0.000 title description 39
- 230000002146 bilateral effect Effects 0.000 claims abstract description 101
- 238000000034 method Methods 0.000 claims abstract description 71
- 230000008569 process Effects 0.000 claims abstract description 24
- 238000009877 rendering Methods 0.000 claims abstract description 10
- 238000012937 correction Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 10
- 238000005259 measurement Methods 0.000 claims description 8
- 230000001413 cellular effect Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 description 17
- 230000008901 benefit Effects 0.000 description 15
- 239000011159 matrix material Substances 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 238000013459 approach Methods 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 9
- 238000005457 optimization Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 5
- 238000009499 grossing Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010561 standard procedure Methods 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/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/579—Depth or shape recovery from multiple images from motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/571—Depth or shape recovery from multiple images from focus
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
一种手持式用户设备包括:单目,该单目相机用于捕获局部场景的图像馈送;以及处理器,用于从馈送选择关键帧,并且对来自该馈送的第一图像,使用该第一图像、关键帧以及基于与该第一图像相关联的姿势和与关键帧相关联的姿势的相对姿势来执行立体匹配以生成表示所述第一图像与所述关键帧之间的视差的稀疏视差图。处理器进一步将使用双边求解器算法来从所述视差图确定密集深度图,并且基于所述深度图利用遮挡渲染来处理从馈送的第二图像生成的取景器图像以将一个或者多个虚拟对象并入到所述取景器图像中以生成AR取景器图像。进一步地,处理器将提供所述AR取景器图像以供显示。
Description
背景技术
支持计算的蜂窝电话(“智能电话”)、平板计算机以及其它手持式用户设备越来越多地被用于提供增强现实(AR)体验。这种设备被用作增强世界上的取景器,其中,虚拟内容在设备的相机馈送的顶部上实时呈现。这些便携式装置使用某种形式的六自由度(6DoF)跟踪能力来支持这种AR能力,该某种形式的六自由度(6DoF)跟踪能力仅使用在这些设备的内部找到的典型传感器(诸如,彩色相机和惯性测量单元(IMU)),导致视觉惯性里程计(VIO)和同时定位与地图构建(SLAM)的许多开发。这些开发导致具有AP应用的稀疏6DoF跟踪平台的开发和使用,AP应用创建用户可以在其环境中放置和锁定虚拟对象的错觉。然而,错觉由视觉不一致(诸如,在现实对象与虚拟对象之间的错误的遮挡)的出现而降低。
为了通过更准确的处理遮挡、对虚拟内容的放置以及虚拟-现实世界交互(诸如,虚拟对象与物理对象的碰撞)来实现更现实逼真的沉浸感,基于手持设备的AR应用依赖于在设备处实时生成的密集深度图。然而,在给定计算限制或者传感器限制的情况下,许多手持式装置提供实时的密集深度图通常是不可行的。许多当前可用的手持设备缺少用于深度感测或者使用飞行时间(ToF)传感器或者其它专用的深度传感器的立体相机,并且由于成本、功率和形状因子的考虑,增加这种附加传感器能力的成本和复杂性通常是不可行的。此外,虽然已经开发了利用单目相机的密集且边缘保持的深度图生成技术,但是这些常规技术通常需要专用硬件或者大量计算资源,这些专用硬件或者大量计算资源通常在许多手持式装置上不可用,并且因此,无法令人满意地在许多广泛可用的手持式设备上实施替代用于实时深度图产生的专用深度传感器。
附图说明
通过参考附图,可以理解本公开,并且本公开的许多特征和优点对于本领域的技术人员而言是显而易见的。在不同的附图中使用相同的附图标记指示相似或者相同的项。
图1是示出了根据一些实施例的基于与单目相机传感器配置兼容的实时密集深度图生成过程来将手持式用户设备作为取景器的增强现实(AR)体验提供到AR场景中的过程的示意图。
图2是示出了根据一些实施例的图1的手持式用户设备的示例硬件配置的示意图。
图3是示出了根据一些实施例的用于由手持式用户设备实施的运动深度流水线的示例方法的流程图。
图4是示出了根据一些实施例的运动深度流水线的示意图。
图5是示出了根据一些实施例的来自常规双边求解器的结果与来自平面双边求解器的结果的比较的示意图。
具体实施方式
本公开描述了用于提供运动深度流水线的系统和方法,该运动深度流水线用于即使当手持式用户设备缺少立体相机配置(即,仅具有单目相机)或者具有有限的计算资源(例如,仅具有可用的单个中央处理单元(CPU)核心并且缺乏图形处理器(GPU)的使用)时,也以足够的速率来为这种装置提供密集且低延迟的深度图。所描述的技术能够在具有不同相机传感器的各种不同装置配置上操作,对于该不同的相机传感器,对各种参数(诸如,曝光或者聚焦)的控制可能不可用。即使在相对较差的6DoF跟踪的条件下或者在无纹理的环境中,这些技术也能够以相对较低的延迟与相对较低的计算要求来提供密集深度。
如下面更详细地描述的,这些系统和技术依赖于包括以下方面中的一些或者全部方面的运动深度流水线:基于极性校正图像的高效立体匹配;有效的关键帧选择过程;利用例如PatchMatch立体算法和HashMatch算法的优势的高效立体匹配算法;平面双边求解器,该平面双边求解器通过鼓励平面解来改进用于导致更高质量的点云的深度后处理的常规双边求解器,采用导致更快的收敛和更低的计算的有效初始化方案,并且采用用于产生在时间上稳定的结果的方法;以及提供流畅的低延迟体验的后期渲染阶段。
图1示出了使用如本文所述的运动深度流水线来在部署于现实世界场景102中的手持式用户设备100上的AR体验的示例供应。如所示出的,手持式用户设备100(例如,智能电话、平板计算机、个人数字助理、便携式视频游戏设备)采用单目相机传感器(在图1中未示出)来捕获由现实世界场景102的一系列所捕获的现实世界图像组成的相机馈送104(注意,“图像”和“帧”在本文中可互换使用)。在手持式用户设备100上的软件实现的运动深度流水线使用来自IMU(在图1中未示出)的位置/姿势跟踪数据来确定手持式用户设备100相对于现实世界场景102的当前位置/姿势(6DoF),并且根据该6DoF数据和彩色相机馈送104的所捕获的现实世界图像106中的至少一些所捕获的现实世界图像106,以一系列密集深度图110的形式来实时地计算现实世界场景的深度信息108。
在手持式用户装置100上执行的AR软件应用提供要被并入到所捕获的现实世界图像的一个或者多个虚拟对象112以及指定一个或者多个虚拟对象112相对于现实世界场景的坐标系或者相对于手持式用户设备100的当前姿势/位置或者当前视点的预期定向和放置的信息。这些虚拟对象112可以包括例如静止的对象或运动中的对象、方向箭头或者其它导航辅助、信息覆盖、异想天开的覆盖等。
然后,运动深度流水线使用由当前深度图110表示的深度信息来将一个或者多个虚拟对象112渲染到当前所捕获的现现实世界图像106中,包括:实施由当前所捕获的现实世界图像106中的现实世界对象对一个或者多个虚拟对象112的准确遮挡,反之亦然;实施一个或者多个虚拟对象112之间的准确交互等。然后,在手持式用户装置100上显示所得到的AR取景器图像114,其中,AR取景器图像114从手持式用户设备100的当前视点向现实世界场景102呈现所包括的AR内容。因此,该过程向用户呈现AR体验,其中,手持式用户装置100的显示器作为取景器出现在基于现实场景102的AR场景中。
图2示出了根据一些实施例的用于手持式用户设备100的硬件实现200,该手持式用户装置100被配置为支持运动深度流水线,该运动深度流水线支持AR体验。如所示出的,硬件实现200包括应用处理器202(例如,CPU)、显示控制器204、显示面板206、系统存储器208、传感器集线器210、惯性测量单元(IMU)212、单目彩色(例如,红-绿-蓝或者RGB)相机214、一个或者多个其他输入/输出装置216(诸如,键盘、触摸屏、扬声器等)以及大容量存储设备218。IMU 212包括一个或者多个基于移动的传感器,诸如,陀螺仪220、磁力计222和加速度计224、全球定位系统(GPS)传感器226等。
作为一般的操作概述,单目相机214进行操作以捕获现实世界图像106的一个或者多个序列(图1)以包括在相机馈送104中,而IMU212的各个传感器捕获表示手持式用户设备100的姿势、位置和移动的运动相关数据以包括在姿势/位置传感器馈送228中。传感器集线器210进行操作以对相机馈送104和姿势/位置馈送228进行格式化、同步以及以其它方式处理,馈送馈送馈送馈送并且提供所得到的处理后的传感器流以供应用处理器202访问(例如,通过直接输入或者经由存储器208中的临时存储、大容量存储设备218或者其它存储组件)。应用处理器202、传感器集线器210或者其它组件进行操作以使用包括SLAM、VIO等的各种技术任何一种或者这些技术的组合,利用来自IMU 212的传感器数据、来自单目相机214的视觉数据以及其它可用数据来周期性地确定手持式用户设备100相对于现实世界场景102的当前姿势和位置(当前姿势/位置230)。在至少一个实施例中,当前姿势/位置634表示相对于现实场景102的坐标系的六自由度(6DoF),而在其它实施例中,当前姿势/位置634表示相对于现实场景102的坐标系的三自由度(3DoF)。
应用处理器202执行一个或者多个支持AR的软件应用232(为了便于参考,本文中称为单数“AR应用232”)的存储在存储器208或大容量存储设备218中的可执行指令,以通过在显示面板206处显示通过包括所嵌入的虚拟对象和其它虚拟内容而被增强的现现实世界场景102的所捕获的现实世界图像现实,使得显示面板206作为取景器出现在用户所在的现实世界场景102的AR增强版本中。为了便于描述,对AR应用232执行下面的特定操作的引用被理解为意味着AR应用232的相应指令,当相应指令由应用处理器202执行时使应用处理器202和/或手持式用户设备100的其他组件执行特定操作。
如所示出的,AR应用232实施循环或者并行执行的至少三个阶段,包括虚拟对象生成阶段234、运动深度流水线236和AR图像显示阶段238。在虚拟对象生成阶段234,AR应用232生成或者以其它方式标识表示AR内容的虚拟对象112以并入相机馈送104的当前所捕获的图像106。可以基于例如基于用户与游戏应用的交互来生成虚拟内容的游戏应用来确定这些虚拟对象112,可以基于导航程序(例如,描绘用户应该前往以到达预期的目的地的当前方向的AR图形导航辅助)、替换或者增强现实世界对象的图形内容等来确定这些虚拟对象112。在至少一个实施例中,每个虚拟对象112包括虚拟资产或者其它对象(诸如,二维(2D)图像、三维(3D)模型等)的图形表示以及标识虚拟对象的预期姿势/位置的定位数据,该预期姿势/位置可以相对于现实世界场景102的坐标系,相对于由手持式用户设备100的当前姿势/位置230表示的视点等。
运动深度流水线236进行操作以使用相机馈送104的所捕获的现实世界图像106、来自姿势/位置馈送228的当前姿势/位置230的流以及由虚拟对象生成阶段234提供的虚拟对象112来将由虚拟对象112表示的AR内容并入到所捕获的现实世界图像106以生成表示现实世界场景102的AR版本的取景器表示的AR图像240的流。如下面更详细地描述的,运动深度流水线236使用技术的组合来利用应用处理器202和单目相机214的有限计算资源有效地确定当前深度图,而不是依赖于立体的、ToF或者其它昂贵的、复杂的或者笨重的专用深度传感器配置。
AR图像显示阶段238经由显示控制器204和显示面板206来控制对由运动深度流水线236生成的AR图像240的流的显示,以便从手持式用户设备100的当前姿势/位置230的视点呈现现实世界场景102的AR增强版本的AR取景器表示。这可以包括例如,应用单应性变换或者其它扭曲过程来补偿自生成当前AR图像240以来姿势/位置的任何运动或者变化、各种图像参数(包括焦点、对比度、亮度等)的调整或者改善。
图3示出了流程图300,该流程图300示出了图2的运动深度流水线236的示例概述方法流程,并且图4提供了运动深度流水线236相对于流程图300的过程的图形表示400。然后,下面更详细地单独描述了参照流程图300所简要描述的各种过程。
运动深度流水线236实施两条解耦路径:深度网格生成路径302和按需后期渲染路径304。在手持式用户设备100用户的手中的情况下,深度网格生成路径302在框306处以经由单目相机214来捕获现实世界相机图像106(在本文中被称为“场景图像106”)开始,并且在框308处,使用例如可从Google LLC获得的ARCore的现成VIO平台或者使用IMU和/或单目相机的各种姿势/位置跟踪技术中的任何一种来跟踪当前姿势/位置。在给定最新可用场景图像106(其可以是用于计算效率的灰度图像)的情况下,朝向计算深度图110(图1)的下一步骤是在框310处,从关键帧池404(图4)中选择适合于执行立体匹配的关键帧402(图4),该关键帧池404(图4)由过去场景图像106的最近子集组成。接下来,在框312处,确定关键帧402与当前场景图像106之间的相对6DoF姿势,并且在框314处,使用该相对6DoF姿势来执行极性校正以从关键帧402和当前场景图像106生成一对校正后的图像406、408(图4)。虽然极性校正通过将对应搜索减少到两个图像406、408中的相同的水平线来加快立体匹配,但是在一些实施例中,省略了极性校正过程。
在框316处,使用快速条件随机场(CRF)求解器来计算该对图像406、408之间的对应关系,并且在框318处,经由有效的基于机器学习的解决方案来丢弃错误的估计,从而导致生成相对没有离群值的一个或者多个视差图。在框320处,通过三角测量使用一个或者多个视差图来估计稀疏深度图410(图4)。在框322处,然后将稀疏深度图410馈送到平面双边求解器412(图4)中,该平面双边求解器412生成双边深度网格414(图4)(在本文中也被称为“双边网格414”),而不是深度图的增强型快速双边求解器。
关于按需后期渲染路径304,响应于接收到最新取景器图像415(其表示被定尺寸并且以其它方式被格式化以在显示面板206上显示的彩色最近场景图像),在框324处,通过在具有最新取景器图像415(与用于填充双边网格414的场景图像106相反)的双边网格414上采用切片过程416来按需将双边网格414转换为密集的、在时间和空间上一致的深度图110(图1),这确保了所产生的深度图110的边缘与将在显示面板206上显示的RGB取景器图像415对准。在至少一个实施例中,路径302的双边网格414的生成和路径304的框324的切片被解耦并且在单独的线程上运行。因此,可以以具有相对较低的相对较高的帧速率来生成深度图110,有效地使其独立于框312到320的CRF推断的运行时间,从而允许在具有不同水平的计算资源的各种各样的手持式用户设备上部署本文所描述的技术,而不牺牲质量或者有效帧速率。在框326处,AR应用232利用由所生成的深度图110表示的该实时深度估计来执行与旨在包括在从最新场景图像106生成的当前取景器图像中的一个或者多个虚拟对象112的遮挡渲染以生成当前AR取景器图像240,在框328处,提供该当前AR取景器图像240以作为AR取景器图像418显示在显示面板206中。
关键帧选择
如上所述,用于运动深度流水线236中的深度估计的方法基于最新图像与过去关键帧之间的立体匹配。在一个实施例中,关键帧选择基于一个或者多个不同的因素,该一个或者多个不同的因素中的每个因素有助于候选关键帧的潜在匹配质量。例如,通过提高所选择的关键帧与当前位置之间的立体基线来获得更高的深度准确度,但是这种帧在时间上也会进一步回退,这可能导致时间上的不一致。用于运动立体的常规方法通常依赖于固定时间延迟的关键帧。当在诸如车辆的恒定移动下时,这种方法是稳健的,但是对手持设备的使用通常导致分散的、不均匀运动。其它方法依赖于特征或者几何跟踪,而不是将对应关系匹配到特定帧,但是这些算法通常导致稀疏深度或者无法以足够的帧速率运行。
在一个实施例中,运动深度流水线236的关键帧选择过程包括:定义软成本函数以使用一个或者多个度量来选择最新目标图像的最佳关键帧。维持潜在关键帧的固定容量池,其中,如果6-DoF视觉惯性跟踪成功,则将每个最新捕获到的图像添加到该池,替换过时图像。在一个实施例中,用于从池中选择最好的关键帧的成本度量是:
-bi,j:两个帧i和j之间的3D基线距离(其通常应该较大)
-ti,j:捕获到帧i和j时的时间距离(通常应该被最小化)
-ai,j:帧i和j的图像区域的在范围[0,1]内的部分重叠,基于其视锥来计算该部分重叠(通常应该被最大化)
-ei,j:两个帧i和j的姿势跟踪统计的测量误差(通常应该较小)
使用多维成本函数来选择用于与最新参考图像r配对的关键帧k,从关键帧池K产生最小的总成本:
其中,针对基线选择权重ωb相对于针对目标场景深度的标称期望基线。基于已知的基线来选择候选帧是用于运动立体的常见技术,但是对于手持设备,还可以针对其它考虑来对该度量进行加权。通过标量ωt来对时间差tr,k进行加权以选择靠近在一起的帧。其它帧在时间上分开,对于具有动画或者动态内容的场景,匹配更加困难。通常利用ωa来对区域重叠的成本项ar,k进行重加权,因为尽管在仅具有部分重叠的帧之间可能发生成功的匹配,但是更大的重叠减少了要被外推到目标图像的其它部分的深度值的需要。如果6-DoF运动跟踪过程产生被测量为具有较差置信度的帧,则在一个实施例中,决不将该帧添加到关键帧池。然而,即使具有高置信度的候选关键帧也可能与最新参考帧具有某一相对误差。利用ωe来相对于其它成本对该相对误差成本进行加权。如上所述,利用如此标识的关键帧,接下来执行立体校正。
立体校正
给定两个相机及其相应姿势,可以计算出控制与同一3D点相对应的像素如何相关的基本矩阵。对于来自3D点X的投影和基本矩阵F的两个对应像素x和x',人们可以观察到x'位于线l'=Fx上。然后,将对应关系搜索约束为一维问题。一旦例如,使用下面所描述的匹配算法估计了对应关系,就可以通过三角测量来估计任何给定像素的深度。
由于现代CPU的线性缓存预取行为,在经过立体校正的图像中沿着水平线来执行该一维(1D)搜索更加有效。这种图像具有所有对极(epipolar)线都平行于图像的水平轴的特性。具有固定的基线的标准双相机设置具有以下优点:在每一帧处,捕获到的图像已经接近于进行了立体校正。大多数情况下,由于机械不精确性,仍然需要在软件中对这些图像进行立体校正。对于这些设置,由于生产级公共实现的可用性而通常使用平面校正。
然而,当处理自由移动的单个相机时(正如手持式用户设备100采用单目相机214),对极可以在图像平面上的任何地方。具体地,当用户与其相机一起向前移动时,对极在图像的内部,这通常导致诸如平面校正的常规技术失败。相反,下面所描述的极性校正技术允许用户与手持式用户设备100一起自由移动。
当给定一对图像及其相对姿势时,一些常规的校正算法对这些图像进行变换,使得其对极线平行,并且相应的核线具有相同的垂直坐标。出于早前描述的计算原因,通常期望的是:对于左校正图像中的点(x,y),对应关系位于右校正图像中的(x',y)处,其中,x'<x,并且Tmin<x-x′<Tmax,其中,Tmin是较小的常数,通常为0或者1,并且Tmax是最大视差,诸如,例如,40。这种常规算法不提供获得对应像素位于固定视差范围中的经校正图像。相反,本文描述了一种将解约束到可以在估计对应关系时有效地利用的已知视差间隔的方法。
一些相机配置可能导致其模数视差是彼此的翻转版本的经校正图像。这些配置打破了x'<x的要求。当穿过光学中心的射线与其在世界坐标中的相应图像中心之间的点积和链接两个光学中心的矢量具有相反的符号时,检测到这些情况。在这种情况下,通常应该翻转图像中的一个。
如早前提到的,有效的立体匹配假定所有对应关系都在视差值的预定义范围[Tmin,Tmax]内,其中,Tmin>0。可以利用负视差或者超过由立体匹配算法假定的最大视差的视差来违反该假定。因此,在至少一个实施例中,应用移位以使视差进入有效范围。首先,给定预期该过程处理的两个帧与预定义深度值范围[Dmin,Dmax]之间的相对变换,估计和。如果将左图像或者右图像用作参考,则这些间隔分别与做出预测所需的视差范围对应。选择参考图像,基于哪种配置需要最小移位并且基于所估计的视差的信号,适合于预期视差范围[Tmin,Tmax]所需的水平偏移也是如此。在预期视差范围太小以致于不能适应当前对的情况下,在一个实施例中,相应地调整经校正图像的大小。
当在纹理场景上进行操作时,众所周知的标准技术(如同PatchMatch立体或者HashMatch)在0.2个像素附近具有非常相似的子像素精度。因此,为了使深度精度最大化,在一个实施例中,调整经校正图像的大小以在使像素的总数保持不变的同时更充分地利用[Tmin;Tmax]。
在两个图像之间的相对变换中的最不精确导致总校正问题。实际上,像ARCore的系统仅遭受较小的姿势不精确。当对极“远离”图像时,与0或者1相反,通过在例如,[5,10]之间设置Tmin来实现对某一较小姿势不精确的补偿。当(多个)对极位于图像内时,位于对极周围的像素盘(例如,半径为20个像素)可以被抢先无效。在该阶段,无论手持式用户装置100遵循的轨迹如何,都产生经校正的图像对。下一章节介绍对这些经校正图像执行立体匹配。
立体匹配
假定解的似然性被来自指数族的条件概率很好的捕获:
通常倾向于以下形式的因式分解:
该因式分解构成成对的CRF。此处,Y:={y1...yn}是与像素{x1...xn}相关联的潜在变量集。每个yi∈Y可以采取L中的值,该L是实数的子集并且与视差对应。Ni是与像素i相邻的一组像素。虽然NP通常很难解,但是这种分解已经广泛用于许多计算机视觉任务。项ψu通常被称为一元电势,并且在经由立体匹配来进行深度估计的情况下,测量两个像素对应的可能性。函数ψp通常被称为成对电势,并且充当促进分段平滑解的正则化器。使最小化成本高的组件是评估ψu和所选择的优化器收敛到良好解所需的步骤的数量。对于以下内容,使用具有较低计算要求的一元电势,其中被截短的线性成对电势作为成对电势。优化成本函数,该成本函数使用PatchMatch和HashMatch的混合,该混合在CPU架构上特别有效,并且下面描述了该混合函数。
使用PatchMatch来进行CRF推断的基础方法利用标记空间的局部平滑度将良好的标记传播到相邻像素。文献中已经探索了不同的传播/更新策略,它们中的一些被设计用于GPU架构。以下内容描述了一种针对依赖于单指令多数据(SIMD)指令的现代CPU指令集而定制以实现在寄存器内的并行性和提高的吞吐量的传播策略。在这种架构(例如,用于移动装置的ARM NEON)上实现高性能通常需要有效地利用这些矢量寄存器。具体地,从存储器中加载数据受益于使用相干加载-即,对于具有宽度为b个位的n个通道的矢量寄存器,SIMD指令集架构(ISA)通常提供加载n*b个连续位的指令,利用一个指令来填充所有通道。对应的是分散的加载,其中,一次一个地将矢量寄存器的每个通道插入到矢量寄存器中。当要加载的存储器不是连续的时,需要这种分散的加载。该行为给立体算法带来了挑战,这些立体算法通常在探索解空间时对每像素的分散偏移进行采样。为了使问题复杂化,这种数据并行性本质上是定向的。
对于存储器中的典型图像布局,像素的矢量寄存器表示特定图像行的子集,这阻止了典型的推断方案(例如,PatchMatch)很好地映射到SIMD架构。信息在图像中水平传播阻止矢量寄存器的有效利用。与PatchMatch相比较,HashMatch通常需要对信息进行更多次迭代以进一步在图像中进行传播,但是每次迭代都基本比较便宜,并且可以独立地执行每次迭代。相比之下,PatchMatch本质上是有顺序的。利用每种方法的优势,在一个实施例中,运动深度流水线236采用非常适合于SIMD架构的混合变体。代替针对8个方向中的每个方向执行多个独立的传播遍历,按顺序执行k个遍历,每个遍历被设计为利用基础矢量架构的数据并行性。对于典型的场景,在2到4的范围内变化的k是足够的。在偶数的遍历期间,除了当前存储的假定之外,每个像素还考虑来自其上方三个邻居的假定(即,在(x,y)处的像素考虑来自(x–1,y-1)、(x,y-1)、(x+1,y-1)的假定)。在奇数的遍历期间,除了当前存储的假定之外,每个像素还考虑了来自其下方三个邻居的假定。以偶数遍历图像的顶部和奇数遍历图像的底部开始,顺序处理行。。因此,给定行的所有像素独立于同一行中的所有其它像素。作为这种方法的标准,通过对立体匹配一元成本和加权的平滑度项、上述被截短的线性成对电势进行求和来对每个假定进行评估。由于矢量寄存器的每个通道中的不同的视差值,无法完全将一元成本评估并行化。然而,我们可以完全将其余数据移动并行化:初始视差值的负载、相邻视差值的负载以及平滑度成本计算。
在成对条件随机场上执行的近似最大后验概率(MAP)推断产生针对图像中的每个像素所估计一个视差值。不幸的是:当场景缺少纹理(例如,白墙)或者包括重复的图案时,对应像素的MAP解决方案可能是错误的。典型的解决方案是:使这种像素无效,因为其误差分布取决于图像内容,并且因此,估计这些分布的最大似然估计(MLE)是有意义的(例如,将用于如同KinectFusion的滤波)。通常使用对解的一元成本的阈值化、使用左右一致性检查、使用连通分量分析或者其组合来执行无效。执行左右一致性检查导致良好的无效结果,但是涉及计算每个图像的视差图,这向流水线236增加了显著的计算成本。
然而,通过将整个CRF过程分解成包括每个像素及其直接邻居的小集团,人们可以使用以下公式来计算负的对数似然:
这种公式导致比仅考虑一元电势更好的无效结果。如将明白的,修剪不太可能的解去除了大部分不期望的像素。不幸的是:在无纹理区域的情况下,解的似然可能很高,但是不正确。因此,较小的连通分量在视差空间中是无效的。所得到的深度图110没有大多数不稳定的预测。取决于计算架构,执行这最后一个失效步骤可能变得像解决上面的因式分解CRF方程式一样计算集中。因此,可以使用单个决策树来近似连通分量无效步骤以最小化所需的计算资源。决策树由分裂的节点和叶子组成。每个分裂的节点n存储通过函数参数θn和标量阈值Tn而被参数化的“弱学习者”。为了针对像素p在树上执行推断,人们从树的根部开始并且评估:
s(p,n)=1[f(p,θn)>τn]
如果s(p,n)评估为0,则推断在节点n的左子节点上继续,并且否则在右子节点上继续。该过程重复,直到到达叶子为止,该叶子包含预测空间上的二进制概率分布,在这种情况下无效。
与惯例一致,通过选择f作为在位于p周围的两个像素索引的值之间的点积,贪婪地优化了θn和Tn的值以将信息增益(IG)最大化:
其中,E表示香农熵,并且、表示节点n的左子节点和右子节点。
利用如此生成的无离群值的视差图,最终可以推断出深度。当使用平面校正时,考虑到视差d、基线b和焦距f,可以简单地将深度Z计算为。然而,这种闭合形式解无法用于极性校正的情况。可以由运动深度流水线236采用以处理这些情况的众所周知的解决方案是最佳三角测量法,该最佳三角测量法需要将6阶多项式最小化,这在移动架构上可能是无效的。因此,在一个实施例中,作为代替,运动深度流水线236求助于解决如本领域中已知的更简单的线性问题,其不是最优的而是能够快速求解的。
双边求解器
先前的描述提供了如何获得具有相对较少的误报的深度图。然而,这些深度图可能是稀疏的(仅在纹理区域中包括信息)、在时间上不一致的,并且可能不与图像的边缘对准。因此,下面描述了对常规双边求解器的有效改进以有效地生成具有低延时的密集的、在时间上稳定的并且边缘对准的深度图。
将双边求解器定义为关于“参考”图像r(在当前情况下,是来自图2的单目相机214的灰度图像)、有噪观察值的“目标”图像t(在当前情况下,是如根据上述描述计算的噪声深度图)以及“置信度”图像c(在当前情况下,是如上面所描述的无效掩码的逆掩码)的优化问题。求解器通过求解以下优化问题来恢复“输出”图像x,该“输出”图像x接近于置信度较大的目标,同时相对于参考图像中的边缘最大程度地平滑的同时接近置信度较大的目标:
第一项促进所有像素对(i,j)根据双边亲和矩阵和平滑度参数λ(例如,被设置为4)变得平滑,而第二项在ci较大时促进每个xi接近每个ti。矩阵是双边亲和矩阵W的双随机版本,其中,将每个Wi,j被定义为:
其中,对于每个像素i,是其(x,y)位置,并且对于参考图像r,ri是其灰度强度。通过被设置为例如,16的带宽参数σxy和σr来对这些空间和强度尺寸进行调制。
众所周知,可以使用双边网格利用紧凑的因式分解来表示较大并且密集的双随机双边亲和矩阵:
其中,泼溅(splat)S矩阵和切片ST矩阵分别泼溅和切片到双边网格中,B是沿着双边网格的三个维度的[1,2,1]模糊,并且矢量m和n引起归一化,该归一化导致是近似随机的。利用该因式分解,可以从像素空间到“双边空间”执行变量替换:
x=STy
其中,y包括每个双边网格顶点的值,并且x包括每个像素的值。假定σ*参数不是较小,则y将大大小于x。因此,可以将上面所描述的在计算上昂贵的像素空间优化问题转换为易处理的双边空间优化问题:
A=λ(diag(m)-diag(n)Bdiag(n))+diag(Sc)
并且
其中,y是在双边空间中的问题的解,并且表示哈达玛(Hadamard)积。因此,解决该问题仅需要对稀疏线性系进行求解并且取消变量替换:
使用常规方法,使用预处理的重球优化来对该稀疏线性系进行了求解,这产生与经常使用的预处理共轭梯度相似的结果,经常使用该预处理共轭梯度,同时更适合于快速实现。
如先前所描述的双边求解器能够从嘈杂的或者不完整的输入产生边缘感知平滑深度图,并且可以使该双边求解器产生在移动CPU上运行的实时结果。然而,在至少一个实施例中,运动深度流水线236利用改进的增强型双边求解器,该改进的增强型双边求解器在本文中被称为“平面双边求解器”并且如下所述。首先,使求解器(或者实际上,是任何线性平滑算子)一般化以产生在共面意义上是平滑的输出,而不是在正面平行意义上平滑的输出。这种公式导致在包含缩短的平面(墙壁、地板等)的场景上的显著改善的输出,这在摄影环境和AR环境中很常见。其次,采用一种用于在求解器中引起实时时间一致性的相对简单并且在计算上廉价的方法以及一种用于对求解器的多个实例进行“热启动”的方法,该方法提高在实时/视频处理背景下的收敛速度。第三,利用求解器来进行“后期”切片,其中,使用从早前的立体输入计算得出的双边深度网格来从最新取景器帧产生边缘感知深度图。结果是仍然为边缘感知的低时延输出。
平面双边求解器
双边求解器对每像素标签进行求解,该每像素标签连同数据项一起对在空间上邻近并且具有相似的颜色或者灰度强度的像素之间的平方距离最小化。因此,求解器的最低成本输出(忽略数据项)是包括单个常数值的图像,在立体环境中,这意味着:求解器强烈偏向于产生正面平行的输出深度图。这种偏向是有问题的,因为现实世界环境通常包含平滑或者平坦但非正面平行的表面,诸如,地板、墙壁和天花板。为了进行说明,在存在平坦但非正面平行表面的情况下,常规双边求解器的输出可能显著不正确,导致将缩短的表面错误地恢复为垂直于相机定向的“广告牌”状的平坦表面。
在其他系统中,已经使用专门的优化算法来解决了在立体或者深度恢复流水线中的这种正面平行偏向,这些专门的优化算法被设计为恢复使二阶变化而不是一阶变化最小化的深度图。这些方法可以起作用,但是对于实时使用而言,通常在计算上过于昂贵,并且似乎不适合快速的双边空间优化。因此,在至少一个实施例中,运动深度流水线236实施双边求解器过程,该双边求解器过程将双边求解器嵌入在每像素平面拟合算法中,使得双边求解器的最小一阶变化假定使所得到的算法的最终输出具有较低的二阶变化。在本领域中,局部平面拟合是众所周知的,通常假定每次平面拟合的空间支持非常有限。通过将双边求解器用作用于聚合平面拟合信息的引擎,所得到的平面拟合是全局的和边缘感知的。使用这种全局平面拟合使得流水线的所恢复的深度图不会被缩短的表面所混淆,因为其能够将这样的平面解释为简单地是倾斜平面。
如上所述被称为“平面双边求解器”的该方法在移动最小二乘上下文中将平面拟合到图像中的每个像素,其中,每个像素的最小二乘拟合中的插值器是双边求解器的输出。隐式地构造了在每个像素处的3D线性系统,其中,每个线性系的左手侧和右手侧使用双边求解器来计算在标准平面拟合中使用的“散布”矩阵。除了平面双边求解器是各处都具有非负的滤波器权重的线性滤波器的示例之外,该方法不依赖于双边求解器的任何特性,并且因此,本文以完全一般的术语来描述该平面拟合过程。
由于用于平面拟合的数学是乏味的但是很好理解的,因此,为了简洁起见,在下面的算法1中主要使用伪代码来描述“平面滤波”方法。该planar_filter(·)算子将要进行滤波的一些图像Z(即,在运动深度流水线236中生成的稀疏深度图)、一些非负滤波算子filter(·)(在这种情况下,是双边求解器)和一些正则化参数∈作为输入。该算法对(x,y,Z,1)与其本身的外积进行滤波,这在以下每个像素下提供了线性系统的左手侧和右手侧:在一个实施例中,该每个像素被表示为6通道图像A和3通道图像b(x和y是每个像素的坐标,1是全为1的图像,是哈达玛积,并且“/”是逐元素除法)。利用这些图像,可以使用LDL分解来并行地在每个像素下对线性系进行求解,已经发现该LDL分解比各种其它选择更稳定。在算法2中找到了用于该每像素解的伪代码。在下面的伪代码中,恢复Zz,该Zz是每个像素的平面拟合的恒定偏移,并且然后,将该Zz用作每个像素的输出深度。注意,图示的算法进一步计算(Zx,Zy)、在本文所描述的技术中未使用的每个像素处的所估计的表面法线。
参数∈通过将Tikhonov正则化施加到所恢复的表面的表面法线上来将平面滤波的输出偏置为正面平行。随着∈接近无穷大,planar_filter(·)的输出接近filter(·)的输出。因此,可以将标准双边求解器视为平面双边求解器的实例,该平面双边求解器已经在很大程度被正则化以产生最大正面平行输出—从而进一步证明了标准双边求解器对正面平行输出的偏差。
由于应用平面滤波器涉及调用基础filter(·)九(3x3)次,并且由于调用该滤波器在计算上比执行逐元素的每像素数学更昂贵,因此,应用平面双边求解器可能在计算上比应用标准双边求解器昂贵大约九倍。这可以通过在当前情况下注意到filter(1)=1并且因此不需要进行计算,并且通过并行地计算允许容易进行矢量化的其它8个双边求解器实例来稍微减少。下面的几段证明:在实践中,平面求解器基本上受益于时间热启动初始化,从而给出其运行时间不比常规双边求解器的运行时间多很多。
算法1:planar_filter(Z,filter(·),∈)–输入:要被滤波的图像Z,某一线性平均filter(·)、某一非负正则化参数∈;输出:每像素平面拟合的3通道图像(Zx,Zy,Zz)。
算法2:solve_image_ldl3(A,b)–输入:6通道图像A和3通道图像b,其中,A中的通道与3×3矩阵的上三角部分对应;输出:3通道x,其中,对于输入线性系统中的每个像素i,x(i)=A(i)/b(i),其中,使用LDL压缩执行线性求解。
图5示出了运动深度流水线236所采用的平面双边求解器和常规平面双边求解器的示例比较。最左边的列502包括由单目相机214在室内环境中捕获到的两个输入图像504、506(场景图像106),其中,图像504主要捕获了室内环境中的墙壁的一部分,而图像506主要捕获了包括在图像504中所表示的墙壁部分的走廊的透视图。在下一列508中,分别根据图像504和506从上面所描述的立体匹配过程生成了原始点云510和512。注意,为了便于说明,从与相机的用于捕获图像504、506的角度不同的角度来使这些原始点云510、512可视化。列514包括使用原始点云510来对图像504应用常规双边求解器的示例输出516和使用原始点云512来对图像506应用常规双边求解器的示例输出518。如在输出516中所示出的,当表面碰巧正面平行时(例如,如图像504中所示的墙壁的部分中),常规双边求解器产生合理的结果,但是如在输出518中示出的,当该正面平行偏向不正确时,显示明显的伪影。最后一列520包括使用原始点云510来对图像504应用如本文所描述的平面双边求解器的示例输出522和使用原始点云512来对图像506应用平面双边求解器的示例输出524。如与输出518相比较的输出524示出的,平面双边求解器解决了正面平行偏向问题,并且产生显著改进的输出,其中,更准确地恢复了大量缩短的墙壁和地板。
时间平滑度、热启动初始化和后期切片
为了产生引人注目的用户体验,由运动深度流水线236产生的深度图随时间被平滑。时间一致性的该目标与响应性低延迟输出的目标有些矛盾,该响应性低延迟输出与当前取景器帧的边缘紧密对准。下面描述了一种用于双边求解器和平面双边求解器产生高质量的、在时间上一致的实时结果的相对简单并且有效的方法。
用于使用双边求解器的一致性的常规方法包括:例如,向双边求解器附加额外的“时间”维度,并且使用求解器的一个实例来对整个视频序列的每像素深度标记进行求解。该方法产生高质量的结果,但是对于在获取帧时对帧进行处理的实时用例而言,该方法是不可行的。因此,在至少一个实施例中,采用针对时间平滑性的因果无限冲激响应(IIR)类的方法,其中,跟踪所估计的深度的单个双边网格,并且其中,使用每个传入帧上的单个图像双边求解器实例的输出来重复更新该双边网格。该方法可以实时运行,并且允许使用“后期”切片来产生低延时边缘感知的输出,这在增强现实应用中非常有用。
如上面解释的,基线单个图像双边求解器通过在双边空间中隐式地构造和求解线性系统A-1b,并且然后,使用“切片矩阵ST”产生每像素标记来估计深度图:
在时间上一致的解中,跟踪双边深度网格为的指数移动平均,该指数移动平均被初始化为0。对于每个输入图像t,通过对线性系统进行求解并且然后,使用指数衰减更新来对当前帧的双边深度网格进行求解。执行从该经平均的双边网格的切片以产生每像素深度估计。在帧t处应用的确切更新是:
其中,α是控制促进多少时间平滑度的参数,blur(·)沿着的双边网格的三个维度应用经过归一化的[1,4,6,4,1]模糊,并且除以(1-αt)用于使得对的移动平均估计无偏。blur(·)算子在帧之间在空间上扩散信息,这似乎有帮助,并且根据α的线性插值在时间上扩散相同的信息。跟踪较小的双边深度网格而不是较大的每像素深度图具有速度优势,因为每个帧的更新需要显著更少的计算。然而,以这种方式来跟踪和模糊双边深度网格而不是跟踪深度图还意味着时间平滑方法对于小型相机或者场景运动是不变的,而不需要明确地估计帧之间的每像素运动。同样地,在双边空间中跟踪深度允许通过上述过程(以及本文中被称为“后期切片”)来产生低延迟边缘感知的深度估计:在更新之后,如果取景器帧已经发生改变,则使用新的帧来构造并且切出每像素深度标记。由于切片显著快于求解,因此,该方法使得产生与当前取景器帧适当对准的每像素深度图,从而实现引人注目的和响应性的视觉效果。该后期切片方法还允许算法在具有有限计算能力的手持式用户设备上完全下降,并且因此,每帧深度估计可能花费比在给定显示帧速率下帧之间的持续时间更长的持续时间。因此,尽管上述技术使用原始像素强度,而不是几何跟踪信息,但是可以认为该方法类似于在一些虚拟现实(VR)应用中使用的“时间扭曲”方法。
时间平滑方法实现了另一种加速,在这种加速中,通过使用前一帧的解经由梯度下降初始化要被求解的双边网格来执行对每个帧的双边求解器实例的“热启动”。由于除了存在极端的运动之外,相邻帧具有相似的图像内容,因此,该方法大大提高了收敛性,并且在除了第一图像之外的所有图像中进行更少的梯度下降迭代。因此,时间一致性方法从常规双边求解器直接推广到平面双边求解器。在LDL求解步骤之前将时间一致性应用于描述每像素平面拟合的线性系统,这产生比在每个帧处向所估计的深度应用时间滤波器更好的结果。后期切片还可以包括:后期每像素LDL求解,其略微增加运行时间,但是通常不足以阻止实时性能。
根据一个方面,一种用于在手持式用户设备上提供增强现实(AR)体验的方法包括:经由手持式用户设备的单目相机来捕获局部场景的图像馈送;以及从馈送选择关键帧。该方法进一步包括:对于来自图像馈送的第一图像,使用第一图像、关键帧以及基于与第一图像相关联的姿势和与关键帧相关联的姿势的相对姿势来执行立体匹配,以生成表示第一图像与关键帧之间的视差的视差图,并且然后,使用双边求解器算法来从视差图确定深度图。该方法进一步包括:基于深度图利用遮挡渲染来处理从馈送的第二图像生成的取景器图像,以将一个或者多个虚拟对象并入取景器图像以生成AR取景器图像;以及在手持式用户设备上显示AR取景器图像。
在另一方面中,该方法进一步包括:对关键帧和第一图像进行极性校正,以及其中,执行立体匹配包括:使用关键帧和第一图像的经极性校正的表示来执行立体匹配。确定深度图可以包括:使用三角测量来从视差图生成稀疏深度图;将双边求解器算法应用于稀疏深度图以生成深度网格;以及利用第二图像来对深度网格进行切片以生成深度图。在一个方面中,双边求解器算法包括平面双边求解器算法,该平面双边求解器算法基于将每个像素平面拟合在稀疏深度图中。进一步地,在一个方面中,选择关键帧包括:基于实施以下项中的至少一项的成本函数的最小化来选择关键帧:两个候选帧之间的基线距离;捕获两个候选帧之间的时间差;基于视锥的两个候选帧的图像区域的部分重叠;以及两个候选帧的姿势追踪统计的测量误差。在一些方面中,选择关键帧、执行立体匹配、确定深度图以及处理取景器图像的过程由手持式用户设备的中央处理单元(CPU)实时地执行。
根据另一方面,一种计算机可读介质存储一组可执行指令,该一组可执行指令被配置为操纵手持式用户设备的处理器以执行上面所描述的方法。
根据另一方面,一种手持式用户设备包括:用于捕获局部场景的图像馈送的单目相机;显示面板;用于存储软件应用的存储器;以及被耦合到存储器和单目相机的处理器。该处理器将执行软件应用的指令以:从馈送选择关键帧;对于来自图像馈送的第一图像,使用第一图像、关键帧以及基于与第一图像相关联的姿势和与关键帧相关联的姿势的相对姿势来执行立体匹配,以生成表示第一图像与关键帧之间的视差的视差图;使用双边求解器算法来从视差图确定深度图;基于深度图利用遮挡渲染来处理从馈送的第二图像生成的取景器图像,以将一个或者多个虚拟对象并入到取景器图像中,以生成AR取景器图像;以及提供AR取景器图像以供在显示面板中显示。
进一步地,在一个方面中,处理器将执行软件应用的指令,以进一步:对关键帧和第一图像进行极性校正,以及其中,立体匹配使用关键帧和第一图像的经过极校正的表示。处理器将通过以下方式来确定深度图:使用三角测量来从视差图生成稀疏深度图;将双边求解器算法应用于稀疏深度图以生成深度网格;以及利用第二图像来对深度网格进行切片以生成深度图。在一个方面中,双边求解器算法包括平面双边求解器算法,该平面双边求解器算法基于将每个像素平面拟合在稀疏深度图中。在一个方面中,处理器将基于实施以下项中的至少一项的成本函数的最小化来选择关键帧:两个候选帧之间的基线距离;捕获两个候选帧之间的时间差;基于视锥的两个候选帧的图像区域的部分重叠;以及两个候选帧的姿势追踪统计的测量误差。进一步地,处理器可以包括中央处理单元(CPU),其中,CPU将确定深度图并且实时地处理取景器图像。手持式用户设备可以是例如支持计算的蜂窝电话、平板计算机和便携式游戏设备中的一种。
在一些实施例中,上面所描述的技术的某些方面由执行软件的处理系统的一个或者多个处理器实施。软件包括存储在或者以其它方式有形地体现在非暂时性计算机可读存储介质上的一组或者多组可执行指令。软件可以包括指令和某些数据,当这些指令和某些数据由一个或者多个处理器执行时操纵该一个或者多个处理器执行上面所描述的技术的一个或者多个方面。非暂时性计算机可读存储介质可以包括:例如,磁盘或者光盘存储设备、固态存储设备(诸如,闪速存储器)、高速缓冲存储器、随机存取存储器(RAM)或者一个或者多个其它非易失性存储设备等。存储在非暂时性计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码或者由一个或者多个处理器解释或者可由一个或者多个处理器以其它方式执行的其它指令格式。
计算机可读存储介质包括在使用期间可由计算机系统访问以向计算机系统提供指令和/或数据的任何存储介质或者存储介质的组合。这种存储介质可以包括但不限于:光学介质(例如,光盘(CD)、数字通用光盘((DVD)、蓝光光盘)、磁介质(例如,软盘、磁带或者磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或者高速缓冲存储器)、非易失性存储器(例如,只读存储器(ROM)或者闪速存储器)或者基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以嵌入在计算系统(例如,系统RAM或者ROM)中,固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,光盘或者基于通用串行总线(USB)的闪速存储器),或者经由有线或者无线网络被耦接到计算机系统(例如,网络可访问存储装置(NAS))。
注意,并非上面在一般描述中描述的所有活动或者元件都是必需的,可能不需要特定活动或者装置的一部分,并且除了所描述的活动和元件之外,可以执行一个或者多个其它活动或者所包括的元件。更进一步地,所列出活动的顺序不一定是执行这些活动的顺序。而且,已经参照特定实施例描述了这些概念。然而,本领域的普通技术人员理解,在不脱离如在下面的权利要求中阐述的本公开的范围的情况下,可以作出各种修改和改变。因此,说明书和附图应该被视为说明性的而非限制性意义,并且所有这种修改旨在包括在本公开的范围内。
上面已经关于特定实施例描述了益处、其它优点和问题的解决方案。然而,益处、优点、问题的解决方案以及可能使任何益处、优点或者解决方案发生或者变得更加明显的任何特征不应被解释为任何或者所有权利要求的关键特征、必需特征或者必要特征。此外,上面所公开的特定实施例仅仅是说明性的,因为可以按照对于受益于本文的教导的本领域技术人员而言显而易见的不同但等效的方式来修改和实践所公开的主题。除了如在下面的权利要求中描述的之外,不旨在限制本文所示出的构造或者设计的细节。因此,显而易见的是,可以改变或者修改上面所公开的特定实施例,并且所有这些变化都被认为在所公开的主题的范围内。因此,本文所寻求的保护如在下面的权利要求中阐述的那样。
Claims (20)
1.一种用于在手持式用户设备上提供增强现实AR体验的方法,所述方法包括:
经由所述手持式用户设备的单目相机来捕获局部场景的图像的馈送;
从所述馈送选择关键帧;
对于来自所述图像的馈送的第一图像,使用所述第一图像、所述关键帧以及基于与所述第一图像相关联的姿势和与所述关键帧相关联的姿势的相对姿势来执行立体匹配,以生成表示所述第一图像与所述关键帧之间的视差的稀疏视差图;
使用双边求解器算法来从所述视差图确定密集深度图;
基于所述密集深度图利用遮挡渲染来处理从所述馈送的第二图像生成的取景器图像,以将一个或多个虚拟对象并入所述取景器图像中以生成AR取景器图像;以及
在所述手持式用户设备上显示所述AR取景器图像。
2.根据权利要求1所述的方法,进一步包括:
对所述关键帧和所述第一图像进行极性校正;以及
其中,执行立体匹配包括:使用所述关键帧和所述第一图像的经极性校正的表示来执行立体匹配。
3.根据权利要求1或者2所述的方法,其中,确定所述密集深度图包括:
使用三角测量来从所述视差图生成稀疏深度图;
将所述双边求解器算法应用于所述稀疏深度图以生成双边深度网格;以及
利用所述第二图像来对所述双边深度网格进行切片以生成所述密集深度图。
4.根据权利要求3所述的方法,其中,所述双边求解器算法包括平面双边求解器算法,所述平面双边求解器算法基于将每个像素平面拟合在所述稀疏深度图中。
5.根据权利要求1所述的方法,其中,选择所述关键帧包括:
基于实施以下项中的至少一项的成本函数的最小化来选择所述关键帧:两个候选帧之间的基线距离;所述的捕获两个候选帧之间的时间差;基于视锥的、两个候选帧的图像区域的部分重叠;以及两个候选帧的姿势跟踪统计的测量误差。
6.根据权利要求1到5中的任一项所述的方法,其中,选择所述关键帧、执行立体匹配、确定所述密集深度图以及处理所述取景器图像的过程由所述手持式用户设备的中央处理单元CPU实时地执行。
7.一种手持式用户设备,其包括:
单目相机,所述单目相机用于捕获局部场景的图像的馈送;
显示面板;
存储器,所述存储器用于存储软件应用;以及
处理器,所述处理器被耦合到所述存储器和所述单目相机,其中,所述处理器将执行所述软件应用的指令以:
从所述馈送选择关键帧;
对于来自所述图像的馈送的第一图像,使用所述第一图像、所述关键帧以及基于与所述第一图像相关联的姿势和与所述关键帧相关联的姿势的相对姿势来执行立体匹配,以生成表示所述第一图像与所述关键帧之间的视差的稀疏视差图;
使用双边求解器算法来从所述视差图确定密集深度图;
基于所述密集深度图利用遮挡渲染来处理从所述馈送的第二图像生成的取景器图像,以将一个或者多个虚拟对象并入所述取景器图像中,以生成AR取景器图像;以及
提供所述AR取景器图像以供在所述显示面板中显示。
8.根据权利要求7所述的手持式用户设备,其中,所述处理器将执行所述软件应用的指令,以进一步:
对所述关键帧和所述第一图像进行极性校正;以及
所述立体匹配使用所述关键帧和所述第一图像的经极性校正的表示。
9.根据权利要求7或者8所述的手持式用户设备,其中,所述处理器将通过以下来确定所述密集深度图:
使用三角测量来从所述视差图生成稀疏深度图;
将所述双边求解器算法应用于所述稀疏深度图,以生成双边深度网格;以及
利用所述第二图像来对所述双边深度网格进行切片以生成所述密集深度图。
10.根据权利要求9所述的手持式用户设备,其中,所述双边求解器算法包括平面双边求解器算法,所述平面双边求解器算法基于将每个像素平面拟合在所述稀疏深度图中。
11.根据权利要求7所述的手持式用户设备,其中,所述处理器将基于实施以下项中的至少一项的成本函数的最小化来选择所述关键帧:两个候选帧之间的基线距离;所述的捕获两个候选帧之间的时间差;基于视锥的两个候选帧的图像区域的部分重叠;以及两个候选帧的姿势跟踪统计的测量误差。
12.根据权利要求7所述的手持式用户设备,其中,所述处理器是中央处理单元CPU。
13.根据权利要求12所述的手持式用户设备,其中,所述CPU将确定所述密集深度图并且实时地处理所述取景器图像。
14.根据权利要求7所述的手持式用户设备,其中,所述手持式用户设备是支持计算的蜂窝电话、平板计算机和便携式游戏设备中的一种。
15.一种存储一组可执行指令的非暂时性计算机可读介质,所述一组可执行指令被配置为操纵手持式用户设备的处理器:
从由单目相机捕获到的图像的馈送选择关键帧;
对于来自所述图像的馈送的第一图像,使用所述第一图像、所述关键帧以及基于与所述第一图像相关联的姿势和与所述关键帧相关联的姿势的相对姿势来执行立体匹配,以生成表示所述第一图像与所述关键帧之间的视差的稀疏视差图;
使用双边求解器算法来从所述视差图确定密集深度图;
基于所述密集深度图利用遮挡渲染来处理从所述馈送的第二图像生成的取景器图像,以将一个或者多个虚拟对象并入所述取景器图像以生成AR取景器图像;以及
提供所述AR取景器图像以供在所述手持式用户设备的显示面板上显示。
16.根据权利要求15所述的非暂时性计算机可读介质,其中,所述可执行指令被配置为操纵所述处理器以进一步:
对所述关键帧和所述第一图像进行极性校正;以及
所述立体匹配使用所述关键帧和所述第一图像的经极性校正的表示。
17.根据权利要求15或者16所述的非暂时性计算机可读介质,其中,所述可执行指令将操纵所述处理器通过以下方式来确定所述密集深度图:
使用三角测量来从所述视差图生成稀疏深度图;
将所述双边求解器算法应用于所述稀疏深度图,以生成双边深度网格;以及
利用所述第二图像来对所述双边深度网格进行切片以生成所述密集深度图。
18.根据权利要求17所述的非暂时性计算机可读介质,其中,所述双边求解器算法包括平面双边求解器算法,所述平面双边求解器算法基于将每个像素平面拟合在所述稀疏深度图中。
19.根据权利要求15所述的非暂时性计算机可读介质,其中,所述处理器将基于实施以下项中的至少一项的成本函数的最小化来选择所述关键帧:两个候选帧之间的基线距离;所述的捕获两个候选帧之间的时间差;基于视锥的、两个候选帧的图像区域的部分重叠;以及两个候选帧的姿势跟踪统计的测量误差。
20.根据权利要求15至19中的任一项所述的非暂时性计算机可读介质,其中,所述处理器是中央处理单元CPU。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862741256P | 2018-10-04 | 2018-10-04 | |
US62/741,256 | 2018-10-04 | ||
PCT/US2019/054696 WO2020072905A1 (en) | 2018-10-04 | 2019-10-04 | Depth from motion for augmented reality for handheld user devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111465962A CN111465962A (zh) | 2020-07-28 |
CN111465962B true CN111465962B (zh) | 2024-03-01 |
Family
ID=68343461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980006353.3A Active CN111465962B (zh) | 2018-10-04 | 2019-10-04 | 用于手持式用户设备的增强现实的运动深度 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11145075B2 (zh) |
EP (1) | EP3698323B1 (zh) |
CN (1) | CN111465962B (zh) |
WO (1) | WO2020072905A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9766074B2 (en) | 2008-03-28 | 2017-09-19 | Regents Of The University Of Minnesota | Vision-aided inertial navigation |
US20230349693A1 (en) * | 2009-09-03 | 2023-11-02 | Electronic Scripting Products, Inc. | System and method for generating input data from pose estimates of a manipulated object by using light data and relative motion data |
US10012504B2 (en) | 2014-06-19 | 2018-07-03 | Regents Of The University Of Minnesota | Efficient vision-aided inertial navigation using a rolling-shutter camera with inaccurate timestamps |
US11466990B2 (en) | 2016-07-22 | 2022-10-11 | Regents Of The University Of Minnesota | Square-root multi-state constraint Kalman filter for vision-aided inertial navigation system |
US11940277B2 (en) | 2018-05-29 | 2024-03-26 | Regents Of The University Of Minnesota | Vision-aided inertial navigation system for ground vehicle localization |
US12003585B2 (en) | 2018-06-08 | 2024-06-04 | Vale Group Llc | Session-based information exchange |
CN110221690B (zh) * | 2019-05-13 | 2022-01-04 | Oppo广东移动通信有限公司 | 基于ar场景的手势交互方法及装置、存储介质、通信终端 |
US20210248824A1 (en) * | 2020-02-10 | 2021-08-12 | B/E Aerospace, Inc. | System and Method for Locking Augmented and Mixed Reality Applications to Manufacturing Hardware |
WO2021168484A1 (en) | 2020-02-21 | 2021-08-26 | Google Llc | Real-time stereo matching using a hierarchical iterative refinement network |
US11688073B2 (en) | 2020-04-14 | 2023-06-27 | Samsung Electronics Co., Ltd. | Method and system for depth map reconstruction |
WO2022000266A1 (en) * | 2020-06-30 | 2022-01-06 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for creating depth map for stereo moving image and electronic device |
US12008740B2 (en) * | 2020-08-12 | 2024-06-11 | Niantic, Inc. | Feature matching using features extracted from perspective corrected image |
CN112422967B (zh) * | 2020-09-24 | 2024-01-19 | 北京金山云网络技术有限公司 | 视频的编码方法及装置、存储介质、电子设备 |
WO2022158890A1 (en) * | 2021-01-21 | 2022-07-28 | Samsung Electronics Co., Ltd. | Systems and methods for reconstruction of dense depth maps |
US11615594B2 (en) | 2021-01-21 | 2023-03-28 | Samsung Electronics Co., Ltd. | Systems and methods for reconstruction of dense depth maps |
US20220276696A1 (en) * | 2021-02-26 | 2022-09-01 | BigBox VR, Inc. | Asynchronous multi-engine virtual reality system with reduced vestibular-ocular conflict |
US11481871B2 (en) | 2021-03-12 | 2022-10-25 | Samsung Electronics Co., Ltd. | Image-guided depth propagation for space-warping images |
CN113392879B (zh) * | 2021-05-26 | 2023-02-24 | 中铁二院工程集团有限责任公司 | 一种航空影像多视图匹配方法 |
WO2023009113A1 (en) * | 2021-07-28 | 2023-02-02 | Innopeak Technology, Inc. | Interactive guidance for mapping and relocalization |
US20230140170A1 (en) * | 2021-10-28 | 2023-05-04 | Samsung Electronics Co., Ltd. | System and method for depth and scene reconstruction for augmented reality or extended reality devices |
US20230236219A1 (en) * | 2022-01-21 | 2023-07-27 | Google Llc | Visual inertial odometry with machine learning depth |
CN115309301A (zh) * | 2022-05-17 | 2022-11-08 | 西北工业大学 | 基于深度学习的Android手机端侧AR交互系统 |
US11847259B1 (en) * | 2022-11-23 | 2023-12-19 | Google Llc | Map-aided inertial odometry with neural network for augmented reality devices |
EP4421447A1 (en) * | 2023-02-23 | 2024-08-28 | Floorfy S.L. | Method for positioning images within an arbitrary 3d coordinate system |
CN117078975B (zh) * | 2023-10-10 | 2024-01-02 | 四川易利数字城市科技有限公司 | 一种基于进化算法的ar时空场景模式匹配方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105210113A (zh) * | 2013-04-30 | 2015-12-30 | 高通股份有限公司 | 具有一般和全景相机移动的单眼视觉slam |
CN106559659A (zh) * | 2015-09-25 | 2017-04-05 | 台达电子工业股份有限公司 | 立体影像深度图产生装置及方法 |
CN107798702A (zh) * | 2016-08-30 | 2018-03-13 | 成都理想境界科技有限公司 | 一种用于增强现实的实时图像叠加方法以及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101822067B (zh) * | 2007-07-26 | 2013-04-24 | 皇家飞利浦电子股份有限公司 | 深度相关信息传播方法和设备 |
US20120306850A1 (en) * | 2011-06-02 | 2012-12-06 | Microsoft Corporation | Distributed asynchronous localization and mapping for augmented reality |
US20140241612A1 (en) * | 2013-02-23 | 2014-08-28 | Microsoft Corporation | Real time stereo matching |
US10726560B2 (en) * | 2014-10-31 | 2020-07-28 | Fyusion, Inc. | Real-time mobile device capture and generation of art-styled AR/VR content |
-
2019
- 2019-10-04 EP EP19794308.7A patent/EP3698323B1/en active Active
- 2019-10-04 US US16/767,401 patent/US11145075B2/en active Active
- 2019-10-04 CN CN201980006353.3A patent/CN111465962B/zh active Active
- 2019-10-04 WO PCT/US2019/054696 patent/WO2020072905A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105210113A (zh) * | 2013-04-30 | 2015-12-30 | 高通股份有限公司 | 具有一般和全景相机移动的单眼视觉slam |
CN106559659A (zh) * | 2015-09-25 | 2017-04-05 | 台达电子工业股份有限公司 | 立体影像深度图产生装置及方法 |
CN107798702A (zh) * | 2016-08-30 | 2018-03-13 | 成都理想境界科技有限公司 | 一种用于增强现实的实时图像叠加方法以及装置 |
Non-Patent Citations (4)
Title |
---|
Olaf K¨ ahler et al..Very High Frame Rate Volumetric Integration of Depth Images on Mobile Devices.IEEE Transactions on Visualization and Computer Graphics.2015,第1-10页. * |
刘自强.增强现实中深度一致性问题的研究.中国优秀硕士学位论文全文数据库信息科技辑.2017,第I138-521页. * |
宁瑞忻等.基于视觉的虚拟现实与增强现实融合技术.科技导报.2018,第36卷(第9期),第25-30页. * |
李晶皎 ; 马利 ; 王爱侠 ; 马帅 ; .基于改进Patchmatch及切片采样粒子置信度传播的立体匹配算法.东北大学学报(自然科学版).2016,(05),第609-613页. * |
Also Published As
Publication number | Publication date |
---|---|
WO2020072905A1 (en) | 2020-04-09 |
EP3698323A1 (en) | 2020-08-26 |
CN111465962A (zh) | 2020-07-28 |
EP3698323B1 (en) | 2021-09-08 |
US11145075B2 (en) | 2021-10-12 |
US20210004979A1 (en) | 2021-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111465962B (zh) | 用于手持式用户设备的增强现实的运动深度 | |
JP7495546B2 (ja) | 畳み込み画像変換を使用して同時位置特定およびマッピングを実施する方法およびシステム | |
JP7403700B2 (ja) | ホモグラフィ適合を介した完全畳み込み着目点検出および記述 | |
US11610331B2 (en) | Method and apparatus for generating data for estimating three-dimensional (3D) pose of object included in input image, and prediction model for estimating 3D pose of object | |
JP7453470B2 (ja) | 3次元再構成及び関連インタラクション、測定方法及び関連装置、機器 | |
JP7173772B2 (ja) | 深度値推定を用いた映像処理方法及び装置 | |
WO2019205852A1 (zh) | 确定图像捕捉设备的位姿的方法、装置及其存储介质 | |
EP2992508B1 (en) | Diminished and mediated reality effects from reconstruction | |
US8942422B2 (en) | Nonlinear self-calibration for structure from motion (SFM) techniques | |
CN110220493B (zh) | 一种双目测距方法及其装置 | |
CN109087346B (zh) | 单目深度模型的训练方法、训练装置和电子设备 | |
US8903161B2 (en) | Apparatus for estimating robot position and method thereof | |
US10438405B2 (en) | Detection of planar surfaces for use in scene modeling of a captured scene | |
CN112561978B (zh) | 深度估计网络的训练方法、图像的深度估计方法、设备 | |
CN115362478A (zh) | 用于标记图像之间的空间关系的强化学习模型 | |
CN111868786B (zh) | 跨设备监控计算机视觉系统 | |
CN116917949A (zh) | 根据单目相机输出来对对象进行建模 | |
CN111598927B (zh) | 一种定位重建方法和装置 | |
KR20230107224A (ko) | 광학 흐름 추정을 위한 폐색 마스킹 및 지도 학습 | |
JP2016136439A (ja) | グラフマッチングおよびサイクル検出による自動モデル初期化を用いた線トラッキング | |
CN109074658A (zh) | 通过特征跟踪和模型配准进行3d多视图重建的方法 | |
CN112085842A (zh) | 深度值确定方法及装置、电子设备和存储介质 | |
JP6967150B2 (ja) | 学習装置、画像生成装置、学習方法、画像生成方法及びプログラム | |
US20230177722A1 (en) | Apparatus and method with object posture estimating | |
WO2024162980A1 (en) | Learnable feature matching using 3d signals |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |