用于使用卷积图像变换执行同时定位和映射的方法和系统与流程

文档序号:19942871发布日期:2020-02-14 23:24阅读:188来源:国知局
用于使用卷积图像变换执行同时定位和映射的方法和系统与流程

相关申请的交叉引用

本申请是2017年6月28日提交的名称为“methodandsystemforperformingsimultaneouslocalizationandmappingusingconvolutionalimagetransformation(用于使用卷积图像变换执行同时定位和映射的方法和系统)”的美国临时专利申请no.62/526,203的非临时申请并要求其优先权,在此将其内容整体并入本文。



背景技术:

现代计算和显示技术促进了用于所谓的“虚拟现实”或“增强现实”体验的系统的开发,其中数字再现图像或其部分以看起来是真实的或可被感知为真实的方式呈现给用户。虚拟现实或“vr”场景通常涉及呈现数字或虚拟图像信息,而对其他实际真实世界视觉输入没有透明度;增强现实或“ar”场景通常涉及呈现数字或虚拟图像信息,作为对用户周围实际世界的可视化的增强。

尽管在这些显示技术上取得了进步,但是在本领域中仍需要与增强现实系统,特别是与显示系统有关的改进的方法、系统和装置。



技术实现要素:

本公开总体上涉及用于执行同时定位和映射(simultaneouslocalizationandmapping,slam)的系统和方法。更特别地,本公开的实施例提供了用于在头戴式虚拟现实(vr)、混合现实(mr)和/或增强现实(ar)装置中使用卷积图像变换来执行slam的系统和方法。本发明的实施例通过分析由用户佩戴的装置捕获的图像来实现用户/装置运动的准确检测,从而提高了所显示的虚拟内容的准确度。虽然可参考ar装置来描述本发明,但是本公开也适用于计算机视觉和图像显示系统中的各种应用。

在本发明的第一方面,提供了一种用于基于两个图像计算单应性的方法。该方法可以包括:接收基于第一相机姿势的第一图像和基于第二相机姿势的第二图像。该方法还可以包括基于第一图像生成第一点云以及基于第二图像生成第二点云。该方法可以进一步包括将第一点云和第二点云提供给神经网络。该方法可以进一步包括由神经网络基于第一点云和第二点云生成单应性。在一些实施例中,第一点云和第二点云是二维(2d)点云。在一些实施例中,第一图像由第一相机在第一时刻捕获。在一些实施例中,第二图像由第一相机在第一时刻之后的第二时刻捕获。在一些实施例中,使用第一神经网络来生成第一点云和第二点云,以及该神经网络是第二神经网络。

在一些实施例中,先前通过以下方式训练神经网络:关于包含多个点的一个或多个三维(3d)点云中的每个3d点云,确定在多个点的阈值距离内的3d轨迹;对3d轨迹采样以获得特定的第一相机姿势和特定的第二相机姿势,其中多个点至少部分地从特定的第一相机姿势和特定的第二相机姿势可观看到;基于特定的第一相机姿势,将多个点投影到第一2d平面上以生成第一2d点云;基于特定的第二相机姿势,将多个点投影到第二2d平面上以生成第二2d点云;基于特定的第一相机姿势和特定的第二相机姿势,确定第一2d点云与第二2d点云之间的地面真实单应性;通过神经网络基于第一2d点云和第二2d点云生成特定单应性;比较特定单应性与地面真实单应性;以及基于该比较修改神经网络。在一些实施例中,通过对一个或多个几何形状采样来生成多个3d点云。在一些实施例中,特定的第一相机姿势和特定的第二相机姿势具有至少30%的重叠。

在本发明的第二方面,提供了一种ar装置。ar装置可以包括相机。ar装置还可以包括处理器,该处理器通信地耦接至相机并且被配置为执行操作,所述操作包括:从相机接收基于第一相机姿势的第一图像和基于第二相机姿势的第二图像、基于第一图像生成第一点云且基于第二图像生成第二点云、将第一点云和第二点云提供给神经网络、以及通过神经网络基于第一点云和第二点云生成单应性。在一些实施例中,第一点云和第二点云是2d点云。在一些实施例中,使用第一神经网络生成第一点云和第二点云,以及该神经网络是第二神经网络。

在本发明的第三方面,提供了一种非暂时性计算机可读介质。非暂时性计算机可读介质可以包括指令,该指令在由处理器执行时使处理器执行包括操作,该操作包括:接收基于第一相机姿势的第一图像和基于第二相机姿势的第二图像、基于第一图像生成第一点云且基于第二图像生成第二点云、将第一点云和第二点云提供给神经网络、以及通过神经网络基于第一点云和第二点云生成单应性。在一些实施例中,第一点云和第二点云是2d点云。在一些实施例中,第一图像由第一相机在第一时刻捕获,以及第二图像由第一相机在第一时刻之后的第二时刻捕获。在一些实施例中,使用第一神经网络生成第一点云和第二点云,以及该神经网络是第二神经网络。

附图说明

通过参考以下附图可实现对各种实施例的性质和优点的进一步理解。在附图中,相似的部件或特征可以具有相同的附图标记。此外,可以通过在参考标记之后加上破折号和在相似组件之间进行区分的第二标记来区分相同类型的各种组件。如果在说明书中仅使用第一参考标记,则该描述适用于具有相同的第一参考标记的任何相似组件,而与第二参考标记无关。

图1示出了根据本发明的一些实施例的同时定位和映射(slam)方法的三个子任务的视觉概略图。

图2示出了根据本发明的一些实施例的dh-slam跟踪系统。

图3示出了根据本发明的一些实施例的魔法点网(magicpointnet)架构。

图4示出了根据本发明的一些实施例的魔法点网合成训练数据。

图5示出了根据本发明的一些实施例的基于点的单应性网(homographynet)架构。

图6示出了根据本发明的一些实施例的基于点的单应性网数据生成。

图7示出了根据本发明的一些实施例的智能锚(anchor)slam系统。

图8示出了根据本发明的一些实施例的用于基于两个图像计算单应性的方法。

图9示出了根据本发明的一些实施例的用于训练神经网络的方法。

图10示出了根据本发明的一些实施例的可穿戴增强现实(ar)装置的示意图。

具体实施方式

例如图像分类和对象检测的计算机视觉任务中的深度学习成功很大程度上源于例如图像网(imagenet)和ms-coco的大型注释数据库的可用性。然而,对于类似同时定位和映射(slam)的姿势跟踪和重建问题,存在具有较小的装置特定数据集的不完整(fragment)的生态系统,该较小的装置特定数据集例如基于微软(microsoft)kinect的弗莱堡(freiburg)-tumrgbd数据集、基于立体视觉相机和imu的euroc无人机/mav数据集以及配备有四个相机、gps数据和velodyne激光扫描仪的车辆的kitti驾驶数据集。

用于slam的图像网当前不存在。在实践中,很难针对大量环境和场景获得准确的地面真实(ground-truthing)姿势测量。获得在地面真实传感器与视觉slam系统之间的精确对准,需要付出很大的努力,而且很难在不同相机的变化范围内缩放。真实感的渲染是有用的,因为slam任务的所有相关几何变量都可以100%准确地记录下来。关于真实感的序列对slam基准测试(benchmark)可能具有优势,但是关于此类渲染图像进行训练通常会遇到域适应问题,并且许多深度(deep)网络似乎过拟合。

在实践中,优选的是slam模型倾向于在嵌入式平台上大规模运行,嵌入式平台例如机器人技术和混合现实中的那些。本发明的实施例关注于与全帧预测相反的几何一致性,使得这样的系统可以部署在嵌入式平台上。虽然深度学习系统进行的全帧预测具有某些优势,但在许多实例中,预测/对准点对于度量水平的姿势恢复是足够的。深度网络的部署通常涉及定制的离线优化过程,以使网络尽可能小,因此在本发明的一些实例中,完全省略了全视觉帧预测问题。

本发明的实施例可包括被称为dh-slam的系统,其用于未知环境中的6自由度单目相机定位,该系统主要由被训练的卷积神经网络提供动力,该卷积神经网络被训练以在存在高传感器噪声、低照明和严重遮挡的情况下能够稳健地估计单应性(homography)。该系统可包括三个深卷积网(convnet)。第一网络(魔法点网)可以在单个图像上运行并提取图像中的显著(salient)点,通过设计使这些显著点在图像中被隔离并分布良好并且可不利用例如非最大抑制的任何其他后处理。第二网络(点单应性网(pointhomographynet))可对来自魔法点网的点响应映射的对进行操作,并且可以估计与两个点图像相关的单应性。然后,如果场景是高度非平面的,则可以使用标准mvg技术重新估计单应性估计,也可以将单应性估计升级为基础(fundamental)矩阵。第三网络(重定位网(relocalizationnet))可将单个图像变换为低维嵌入向量,该向量允许用于可靠和快速重定位的快速图像比较。使用简单的合成数据训练网络,使它们易于训练,因为它们不依赖昂贵的外部相机地面真实设备或高级图形渲染管线。该系统快速精简,能够在cpu上运行30+fps。

在本发明的各种实施例中,提出了三个定制的slam卷积神经网络以及三个单独的训练域。然而,不需要这种特定的实现方式,并且在一些实施例中可以组合一个或多个神经网络。提出了一种被单应性地启发(inspire)的单目slam系统,因为单应性可能是每个系统的重要组成部分。本发明的实施例可以不使用任何种类的局部特征点描述符,并且可以不需要手动数据注释或昂贵的离线图形渲染管线。

图1示出了根据本发明的一些实施例的slam方法的三个子任务的视觉概略图。在子任务102处,从图像提取几何点基元以去除例如传感器噪声、照明、纹理和运动模糊的成像效果。在子任务104处,比较点图像的对以提取与图像相关的全局姿势信息。在子任务106处,将图像压缩为低维向量以用于快速图像匹配。

子任务102涉及将图像映射到几何实体的组,例如点。子任务102的一个目标是消除例如照明、阴影和整体全局照明变化的有害变量的损害。还可能需要使用与角点检测(corner-detection)类似的技术来提取输入图像内的可靠位置。然而,不是使用解析方法定义图像角点,而是使用定制的2d形状渲染器来训练角点检测器。由于场景点的半密集覆盖对于稳健的变换估计可能是重要的,因此从系统中半密集地输出所得的2d图像位置。

子任务104涉及寻找一对图像之间的相对姿势。在一些实例中,可以从关于灰度图像的对而训练的cnn计算单应性,这些图像采样来自具有变形(wrap)的自然图像的大型数据集。在本发明的一些实施例中,使用点图像的空间(即,魔法点网输出的图像的种类)来训练cnn。由于半密集点图像的空间可能显著小于全rgb图像的空间,因此使用比处理全rgb图像所需的神经元数量少的神经元可以获得显著更高的性能。本文提出的姿势估计网络可以对点响应图像操作,并且可以以单应模式和基本(essential)模式运行。以两种不同方式处理3d世界的能力可能是重要的,因为在多视图几何背景下,场景平面性的假设可能成立,也可能不成立。如果平面性假设成立,则可以估计单应性,然后将其升级为(r,t)估计,而无需考虑单个点深度。如果替代地,解算器基于基本矩阵估计,则场景平面性提供退化(degenerate)e估计,并且所有其他估计可能失败。因此,当可视场景几何形状是高度非平面的时,可以直接处理es、rs、ts和点深度。

子任务106涉及创建图像的视觉嵌入。对于其他任务,姿势敏感度可能是重要,但是对于嵌入,姿势不敏感度可能是需要的。使用真实世界图像对于此任务可能是重要的,因为在例如2d形状或点响应图像的工程表示的顶部上的学习嵌入可能不太可能提供帮助。替代地,使用大型免费获取的图像数据集(即,图像网(imagenet)),并且单应性用于使图像变形。在学习期间,如果两个图像是单应性地相关,则可能强制该两个图像具有类似的嵌入向量。

图2示出了根据本发明的一些实施例的dh-slam跟踪系统200的通用架构。在一些实例中,魔法点网处理图像的对(例如,图像202和图像204),该魔法点网被训练以检测图像中的显著点并生成一对点图像(例如,点图像206和点图像208)。然后,点图像一起由点单应性网处理以计算单应性h,该单应性h将时间t处的点图像与时间t+1处的点图像相关联。来自网络的h估计可以经常将点投影到彼此的几个像素内,因此,简单的最近邻对应关系足以为大多数平面场景重新估计更精确的h’,或者可以使用多视图几何技术将h升级为更好地描述非平面场景的基础矩阵f。然后,可以使用相机矩阵k将h’和f分解为相机的相对姿势。

在一些实例中,slam系统可分解为三个子系统:将图像带入2d点位置的正则(canonical)子空间的魔法点(magicpoint)检测器、全局变换估计基于点的单应性网和称为重定位网(relocnet)的视觉图像嵌入引擎。在一些实施例中,每个子系统是单独的卷积神经网络。虽然魔法点网和重定位网都可以关于单个图像操作,但是点单应性网(pointhomographynet)关于一对图像操作。在一些实施例中,网络能够解决以下问题:检测噪声图像中的稳健的2d位置、计算两个图像之间的相对姿势以及重新定位。与严重依赖于两个工程特征描述符(orb或sift)的常规方法不同,本发明的实施例可以不将描述符与图像中的各个点相关联。与这些常规的基于特征的slam系统不同,可以以较少描述符的方式执行相对姿势估计。也可以使用可能类似于全局图像范围(image-wide)描述符的嵌入。嵌入可以被设计为伪(pseudo)单应不变的。通过设计,通过单应性而相关的两个图像可能在给定的流形(manifold)上接近。

在一些实例中,第一步可以包括检测图像中的显著和可定位的2d位置。该步骤可以通过计算例如harris或fast的角状响应图、检测局部最大量并采用非最大抑制来执行。可执行附加步骤以将这些局部最大量分布在图像中。此过程可能涉及大量的领域专业知识和手工工程,这可能会限制一般化和稳健性。为了增加slam设置的有用性,由点检测器检测到的点可能会很好地分布在图像中并且彼此隔离,使得跨越帧的对应是容易的。还可能期望系统在高传感器噪声情况和低光照下检测点。在一些实例中,可以为每个检测到的点获得置信度分数,这可以用来帮助拒绝虚假(spurious)点。应当注意,这些图像点不需要对应于图像中的局部高梯度边缘,而是可以对应于例如斑点中心的其他低水平提示,其可以利用比常规的角点检测器大的感受野。

图3示出了根据本发明的一些实施例的魔法点网架构300。在一些实施例中,魔法点网对灰度图像操作,并为输入中的每个像素输出“指向度(point-ness)”概率。这可以通过将vgg样式的编码器与显式解码器结合使用来完成。最终15x20x65张量中的每个空间位置都可以表示局部8x8区域加上单个垃圾箱通道上的概率分布,这可能表示没有检测到点(8*8+1=65)。使用来自2d形状渲染器的点监督、使用标准的交叉熵损失来训练网络。

在一些实例中,魔法点网是使用定制的卷积网(convnet)架构且训练数据管线来实现的。在一些实例中,将图像i映射到具有等效分辨率的点响应图像p可能是重要的,其中输出中的每个像素对应于输入中该像素的“指向度”概率。用于密集预测的网络设计可能涉及编码器-解码器对,其中空间分辨率通过池化或跨步卷积而降低,然后通过上卷积操作而上采样回到全分辨率。由于上采样层可能会增加较高的计算负担,因此可以使用显式解码器实现魔法点网,以减少模型的计算。卷积神经网络可以使用vgg样式编码器将图像的维数从120x160减少到15x20单元网格,每个空间位置具有65个通道。在一些实施例中,qqvga分辨率可以是120x160以减少计算负担。65个通道可对应于像素的局部不重叠的8x8网格区域加上额外的垃圾箱通道,这对应于在该8x8区域中未检测到点。使用3x3卷积然后进行batchnorm归一化和relu非线性使该网络可以是完全卷积的。最终的卷积层可以是1x1卷积。

图4示出了根据本发明一些实施例的魔法点合成训练数据。在一些实施例中,图像的兴趣点可以是图像中的唯一可识别的位置,其在各种视点、照明和图像噪声变化中是稳定的。当用作稀疏slam系统的预处理步骤时,可能会检测到对于给定slam系统而工作良好的点。设计和选择点检测算法的超参数可以利用专家和领域特定的知识。

如今不存在大型的兴趣点标记图像数据库。为了避免昂贵的数据收集工作,可以使用计算机视觉库来实现渲染器。在一些实例中,渲染简单的几何形状,例如三角形、四边形、棋盘格、3d立方体和椭圆形,对于它们中的每一个,角点的地面真实位置都是已知的。还已知每个对象的2d面的质心,它们用作附加的兴趣点。应当注意,将难以设计找到2d面的中心的简单且稳健的检测器。在渲染形状之后,可以将单应变形应用于每个图像,以增加训练示例的数量。可选地,可以将例如照明变化、纹理噪声、高斯噪声、椒盐噪声或其组合等形式的大量噪声的噪声应用于一个或多个图像(例如,每个图像)。数据可以即时生成,这意味着没有示例被网络看到两次。在将15x20网格中每个单元的对数(logit)通过softmax函数传递之后,可以使用标准的交叉熵损失来训练网络。

在一些实例中,点单应性网在由魔法点产生一对点图像的情况下产生单应性。通过设计网络以关于点图像的空间和相对姿势的空间(点图像的空间x相对姿势的空间)而不是所有图像的空间和相对姿势的空间(所有图像的空间x相对姿势的空间)进行操作,例如照明、阴影和纹理某些考虑素的重要性可能降低或被忽略。此外,不需要依赖以成立光度一致性假设。

图5示出了根据本发明一些实施例的基于点的单应性网架构500。在一些实例中,连接(concatenate)二进制点图像的对,然后通过vgg样式的编码器对其进行馈送。3x3单应性h由完全连接的层输出。然后,单应性h可以被归一化,使得其右下元素是一个。通过将已知的在第二张图像中具有对应关系的一个图像中的点变换为第二张图像并比较它们的位置来计算损失。等式(1)中示出了训练点单应性网的损失函数。

在一些实例中,点单应性网被设计为直接关于魔法点网输出的点检测进行操作(尽管它可以对任何传统的点检测器进行操作)。该模型对于半密集15x20x65图像的对可能效果很好。在这种小的空间分辨率下,网络使用很少的计算。在输入的按通道方式(channel-wise)的连接之后,可以实现vgg样式的编码器,其包括3x3卷积、最大池化、batchnorm和relu激活以及两个完全连接的层,该两个完全连接的层输出3x3单应性h的9个值。

图6示出了根据本发明的一些实施例的基于点的单应性网数据生成。在一些实施例中,为了训练点单应性网,可以生成数百万个渲染到两个虚拟相机中的点云的示例。点云可以从简单的3d几何形状生成,3d几何形状包括平面、球体和立方体。如图6所示,从包括分段线性平移和围绕随机轴的旋转的随机轨迹中采样两个虚拟相机的位置。在一些实施例中,具有至少30%视觉重叠的相机对被随机采样。一旦将点投影到两个相机帧中,就应用点输入丢失(dropout)来提高网络对虚假和丢失点检测的稳健性。在一些实例中,通过独立地随机丢失50%的匹配和随机丢失25%的点来提高性能。

通常需要考虑几个因素来训练网络以直接输出3x3矩阵。在一些实例中,当初始化最终fc层偏置以输出单位矩阵、当将单应性h的坐标归一化到范围[-1,1]时以及当将h量归一化以使得右下元素是一个时,训练效果最佳,因为单应性h具有八个自由度和九个元素。

在一些实施例中,嵌入网络的一个目标可以是将全局128维描述符与输入图像相关联。在一些实施例中,期望嵌入是单应不变的。例如,通过单应性而相关的两个图像应具有相同的嵌入向量,而未描绘相同场景内容(因此不具有相同平面)的两个图像应具有不同的嵌入向量。

嵌入网络可以产生128l2归一化描述符。这可以通过类vgg编码器网络顶部的完全连接层来完成。在一些实例中,可以使用来自图像网数据集的单应性相关的图像的对来训练嵌入网络。可以对全部来自同一图像的图像块(a,a’,b)的三元组进行采样,其中(a,a’)具有至少30%的重叠并且通过单应性而相关,而其中(a,b)没有重叠。可以生成用于训练网络的(a,a’)正对和(a,b)负对。在一些实施例中,可以使用孪生(siamese)网络,而在其他实施例中,可以使用两塔方法或三元组网络,这对于本领域技术人员而言是显而易见的。

相对于例如fast角点检测器和harris角点检测器的传统角点检测基线来对魔法点网进行了评估。关于来自真实传感器的合成数据和图像序列,相对于基于经典orb+ransac的单应性估计引擎对点单应性网进行了评估。在合成点世界中进行评估的一个优势是,已知点集之间的地面真相对应关系。可以添加不同数量的噪声以确定两种算法如何降级(degrade)。为了评估嵌入网络,使用嵌入度量来计算最近邻中的网格。这与使用基本resnet激活并在激活空间中获取最近邻进行比较。

为了评估整个单应slam系统,对由匹配产生的最终(r,t)估计进行评估。观察关于跟踪(仅相对于最后一帧的估计姿势)和嵌入增强跟踪(相对于具有最接近嵌入的k图像的估计姿势)的数字。定性地将本发明的实施例与几种开源slam系统(如ptam、orb-slam和lsd-slam)进行了比较。上述评估的结果表明,与常规方法相比,本发明的各种实施例表现出优异的性能。

本发明的实施例可以包括围绕平面设计的小型增强现实系统,其与点单应性网和重定位网一起使用少量图像及其关联的点图像。在一些实例中,数据集收集涉及创建短序列,该序列从具有法线[0,0,1]的参考平面的正面配置开始,直接指向相机中心。提供参考平面的这种正面初始视图允许单应性分解的两种解决方法以及每个2d界标的初始比例的消歧(disambiguation)。

图7示出了根据本发明的一些实施例的智能锚slam系统700。在一些实施例中,用户首先通过在室内环境中拍摄大部分平坦表面的图片来建立一组“智能锚”。这填充(populate)点图像和嵌入(e0,e1,e2…)的对的用户关键帧索引。一旦建立索引,系统可以在跟踪模式下运行。魔法点网和重定位网可以处理时间t处的输入图像,以生成点图像pt和嵌入向量et。在一些实施例中,计算et与一个或多个其他的(例如,每隔一个)嵌入(e0,e1,e2…)的点积,以找到嵌入流形上的最近邻。在图7所示的特定实施例中,选择e2。然后,可以将与e2对应的点图像p2与pt一起馈送至点单应性网,以计算单应性h,其将pt中的点变换为p2中的点。单应性h最后可以被分解为旋转r、平移t和主平面n。最终,对应于(p2,e2)锚的内容可以变形并显示为输入图像中的ar覆盖。

图8示出了用于基于两个图像计算单应性的方法800。方法800的步骤可以以与所示顺序不同的顺序来执行,并且在方法800的执行期间可以省略方法800中的一个或多个步骤。方法800中的一个或多个步骤可以由被配置为执行包含在非暂时性计算机可读介质中的指令的处理器执行和/或初始化。

在步骤802处,接收第一图像和第二图像。第一图像可以基于第一相机姿势,以及第二图像可以基于第二相机姿势,第二相机姿势与第一相机姿势不同。在一些实施例中,第一图像和第二图像可以由同一相机捕获(分别在第一时刻和第二时刻,第二时刻在第一时刻之后发生),并且在其他实施例中,可以同时或在两个时刻通过第一相机捕获第一图像以及通过第二相机捕获第二图像。

在步骤804处,基于第一图像生成第一点云,以及基于第二图像生成第二点云。在一些实施例中,使用第一神经网络生成点云,即,将第一图像作为输入提供给第一神经网络并且由第一神经网络基于第一图像生成第一点云,以及将第二图像作为输入提供给第一神经网络并且由第一神经网络基于第二图像生成第二点云。第一神经网络可以是本文描述的可基于图像生成2d点云的魔法点网。

在步骤806处,将第一点云和第二点云作为输入提供给第二神经网络。第二神经网络可以是本文描述的可基于点云生成单应性的点单应性网。在一些实施例中,第一神经网络可以与第二神经网络结合,使得可以在单个系统中结合两个网络的功能。

在步骤808处,使用第二神经网络基于第一点云和第二点云生成单应性。在一些实施例中,所生成的单应性包括矩阵(例如,3x3),从该矩阵可以提取第一相机姿势与第二相机姿势之间的相对旋转和相对平移(即,相对姿势)。

图9示出了用于训练神经网络的方法900。方法900的步骤可以以与所示顺序不同的顺序来执行,并且在方法900的执行期间可以省略方法900中的一个或多个步骤。参考方法900所描述的神经网络可以是参考方法800所描述的第二神经网络,该第二神经网络可以是本文描述的点单应性网。方法900中的一个或多个步骤可以由被配置为执行包含在非暂时性计算机可读介质中的指令的处理器执行和/或初始化。

在步骤902处,生成一个或多个3d点云。每个3d点云可以包含多个3d点。在一些实施例中,一个或多个3d点云是通过对例如平面、球体、立方体以及其他可能性的一个或多个几何形状随机采样而生成。例如,可以对于特定几何形状(例如,球形或立方体)的表面随机采样以产生多个3d点。替代地,可以对特定几何形状的边缘随机采样,或者可以对表面和边缘随机采样。在一些实施例中,可以对特定几何形状的整个体积随机采样。

在一些实施例中,可以为一个或多个3d点云中的每个3d点云执行步骤904至步骤916中的每一个。在步骤904处,可以确定在多个点附近的3d轨迹。例如,所有3d轨迹可以位于多个点的阈值距离内。在一些实施例中,3d轨迹是通过确定随机起始位置和随机结束位置而形成的线性轨迹。在其他实施例中,或在相同的实施例中,3d轨迹是非线性轨迹(例如,弯曲的),或者是通过确定随机起始位置、随机结束位置和一个或多个中间位置而形成的一系列线性轨迹。

在步骤906处,可以对3d轨迹进行采样以获得特定的第一相机姿势和特定的第二相机姿势。在一些实施例中,多个点至少部分地从特定的第一相机姿势和特定的第二相机姿势可观看到。例如,所获得的相机姿势可以被限制为观看多个点的至少25%、50%、75%或100%的那些相机姿势。如果相机姿势不满足预定阈值(例如,多个点中的至少50%是可观看到的),则丢弃相机姿势并且对3d轨迹进行重新采样以获得另一相机姿势。在一些实施例中,所获得的相机姿势被限制为彼此具有至少一些视觉重叠阈值(例如,30%)。在一些实施例中,视觉重叠可以对应于由特定的第一相机姿势和特定的第二相机姿势均可观看到的多个点中的点的百分比。在其他实施例中,可以基于所获得的姿势之间的共享视场来计算视觉重叠。

在步骤908处,基于特定的第一相机姿势将多个点投影到第一2d平面以生成第一2d点云,以及类似地,基于特定的第二相机姿势将多个点投影到第二2d平面以生成第二2d点云。在一些实施例中,第一2d平面可以正交于特定的第一相机姿势的取向向量,以及第二2d平面可以正交于特定的第二相机姿势的取向向量。

在步骤910处,基于特定的第一相机姿势和特定的第二相机姿势,确定第一2d点云与第二2d点云之间的地面真实单应性。在一些实施例中,通过首先确定特定的第一相机姿势与特定的第二相机姿势之间的相对旋转和相对平移,然后形成在结构上与具有由神经网络生成的单应性的结构一致的单应性(矩阵),来确定地面真实单应性。

在步骤912处,可以将第一2d点云和第二2d点云作为输入提供给神经网络,并且可以由神经网络基于第一2d点云和第二2d点云生成特定单应性。

在步骤914处,可以将特定单应性与地面真实单应性进行比较,以例如生成误差信号。在一些实施例中,误差信号的大小可以与特定单应性和地面真实单应性之间的差的大小成比例。在一个特定实施例中,使用标准矩阵减法来计算误差信号,在该方法中,矩阵的对应元素彼此相减。在其他实施例中,或在相同的实施例中,误差信号包括与相对旋转差对应的第一分量和与相对平移差对应的第二分量。在一些实施例中,误差信号包括与相对姿势差对应的单个分量。

在步骤916处,通过例如调整神经网络的一个或多个权重或系数,基于在步骤914处执行的特定单应性与地面真实单应性之间的比较,来修改神经网络。在一些实施例中,可以基于所计算的单应性之间的差(即,误差信号)来修改神经网络,使得较大的误差信号导致对神经网络的较大修改。一般地,修改神经网络使得神经网络变得更加准确,从而减小特定单应性与地面真实单应性之间的差。

图10示出了可采用本文描述的一个或多个实施例的可穿戴ar装置1000的示意图。ar装置1000可以包括左目镜1002a、右目镜1002b、直接附接在左目镜1002a上或附近的左面向前的世界相机1006a、直接附接在右目镜1002b上或附近的右面向前的世界相机1006b、左面向侧的世界相机1006c、右面向侧的世界相机1006d和处理模块1050。ar装置1000的一些或全部组件可以是头戴式的,以便用户可以观看投影的图像。在一个特定的实施方式中,图10中所示的ar装置1000的所有组件被安装到用户可佩戴的单个装置(例如,单个头戴式耳机)上。在另一个实施方式中,处理模块1050与ar装置1000的其他组件物理分离并且通过有线或无线连接通信耦接到ar装置1000的其他组件。例如,处理模块1050可以以各种配置安装,诸如固定地附接到框架、固定地附接到用户佩戴的头盔或帽子、嵌入耳机中或以其他方式可移除地附接到用户(例如,以背包式配置、以皮带耦接式配置等)。

处理模块1050可以包括处理器1052以及诸如非易失性存储器(例如,闪存)的数字存储器,两者均可以用于辅助数据的处理、缓存和存储。该数据可以包括从图像捕获装置(例如,相机1006)、麦克风、惯性测量单元、加速度计、罗盘、gps单元、无线电装置和/或陀螺仪捕获的数据。例如,处理模块1050可以从相机1006接收(多个)图像1020,或更具体地,从左面向前的世界相机1006a接收(多个)左前图像1020a、从右面向前的世界相机1006b接收(多个)右前图像1020b、从左面向侧的世界相机1006c接收(多个)左侧图像1020c以及从右面向侧的世界相机1006d接收(多个)右侧图像1020d。在一些实施例中,(多个)图像1020可以包括单个图像、一对图像、包括图像流的视频、包括成对图像流的视频等。(多个)图像1020可以在ar装置1000通电时周期性地生成并发送到处理模块1050,或者可以响应于由处理模块1050发送给一个或多个相机的指令而生成。

目镜1002a和1002b可以包括透明或半透明波导,该透明或半透明波导被配置为分别引导来自投影仪1014a和1014b的光。具体地,处理模块1050可以使左投影仪1014a向左目镜1002a输出左投影图像1022a,以及可以使右投影仪1014b向右目镜1002b输出右投影图像1022b。在一些实施例中,每个目镜1002可各自包括与不同颜色和/或不同深度平面对应的多个波导。

相机1006a和1006b可被定位为分别捕获与用户的左眼和右眼的视场基本重叠的图像。因此,相机1006a和1006b的放置可以位于用户的眼睛附近,但是不能太靠近而遮挡用户的视场。替代地或附加地,相机1006a和1006b可以被定位成分别与投影图像1022a和1022b的耦入(incoupling)位置对准。相机1006c和1006d可以定位成捕获用户的侧面的图像,例如在用户的周边视觉中或在用户的周边视觉之外。使用相机1006c和1006d捕获的(多个)图像1020c和1020d不必与使用相机1006a和1006b捕获的(多个)图像1020a和1020b重叠。

在ar装置1000的操作期间,处理模块1050可以使用训练的网络1056基于相机1006中的任何一个捕获的两个图像来计算单应性。估计的单应性可以由处理器1052使用以渲染虚拟内容,该虚拟内容更准确地反映了由于用户移动导致的用户视场的变化。网络1056可以是人工神经网络、卷积神经网络、深度网络或可以通过处理示例而逐渐“学习”的任何类型的网络或系统。在一些实施例中,网络1056包括能够将信号从一者传输到另一者的连接节点的集合。处理器1052可以与单个网络1056通信,或者在一些实施例中,处理器1052可以与多个神经网络通信,诸如第一网络(对应于例如魔法点网)、第二网络(对应于例如点单应性网)以及第三网络(对应于例如重定位网)等。

已经描述了几个示例配置,在不脱离本公开的精神的情况下,可以使用各种修改、替代构造和等同形式。例如,以上元素可以是较大系统的组件,其中其他规则可以优先于或以其他方式修改技术的应用。另外,在考虑以上要素之前、期间或之后,可以采取多个步骤。因此,以上描述不限制权利要求的范围。

如本文和所附权利要求书中所使用的,单数形式“一”、“一个”和“该”包括复数引用,除非上下文另外明确指出。因此,例如,对“一个用户”的引用包括多个这样的用户,并且对“处理器”的引用包括对一个或多个处理器及其本领域技术人员已知的等同形式的引用等。

此外,当在本说明书和所附权利要求书中使用时,词“包括”、“包含”、“含有”旨在指定陈述的特征、整数、组成部分或步骤的存在,但不排除存在或增加一个或多个其他特征、整数、组成部分、步骤、行为或组。

还应理解,本文描述的示例和实施例仅用于说明性目的,并且鉴于其的各种修改或改变将被建议给本领域技术人员并且将被包括在本申请的精神和范围以及所附权利要求的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1