用于根据室内场景的3D扫描的高效平面图生成的系统和方法与流程


用于根据室内场景的3d扫描的高效平面图生成的系统和方法
技术领域
1.本技术涉及计算、学习网络配置和连接的移动计算系统、方法和配置,并且更具体地,涉及以可用于虚拟和/或增强现实操作的至少一个可穿戴组件为特征的移动计算系统、方法和配置。


背景技术:



2.计算机可以控制人类用户界面以创建交叉现实(xr或交叉现实)环境,其中如由用户感知的部分或全部xr环境由计算机生成。这些xr环境可以是虚拟现实(vr)、增强现实(ar)和混合现实(mr)环境,其中部分或全部xr环境可能由计算机部分使用描述环境的数据来生成。例如,该数据可以描述虚拟对象,这些虚拟对象可以以用户感觉或感知为物理世界的一部分并且可以与虚拟对象交互的方式渲染。由于通过用户接口设备(诸如,例如,头戴式显示设备)渲染和呈现数据,因此用户可以体验这些虚拟对象。数据可以显示给用户看,或者可以控制播放给用户听的音频,或者可以控制触觉(或触觉)界面,使得用户能够体验用户感觉或感知为感觉虚拟对象的触摸感觉。
3.xr系统可能对许多应用有用,覆盖科学可视化、医学训练、工程设计和原型制作、远程操作和远程呈现以及个人娱乐等领域。与vr相比,ar和mr包括与物理世界的真实对象相关的一个或多个虚拟对象。虚拟对象与真实对象交互的体验极大地增强了用户使用xr系统的乐趣,并且也为各种应用打开了大门,这些应用提供了关于物理世界可能如何改变的真实且易于理解的信息。
4.估计房间布局或平面图是一个基本的室内场景理解问题,其中应用于诸如场景重建、室内定位和增强现实的广泛任务。来自图像的房间布局或平面图估计旨在描绘室内场景的2d方形(boxy)表示,是用于各种计算机视觉任务的重要步骤,并且最近受到了若干应用的极大关注。这些包括室内导航、场景重建/渲染、增强现实等。该房间布局估计的领域主要集中在使用自下而上的图像特征,诸如局部颜、纹理和边缘线索,然后是消失点(vanishing point)检测。单独的后处理阶段用于清理特征异常值(outlier)并使用结构化svm(支持向量机)或条件随机场(crf)生成/排名大量房间布局集合假设。
5.原则上,可以通过2d布局和消失点的知识(按尺度)获得房间布局的3d重建。然而,在实践中,最终布局预测的准确度通常很大程度上取决于提取的低级别图像特征的质量,其本身容易受到局部噪声、场景杂波和遮挡的影响。考虑单视图rgb图像:布局或平面图估计任务是描绘墙壁-天花板、墙壁-地板、和墙壁-墙壁边界。现有工作仅针对最多包括五个平面(例如,天花板、地板、左墙壁、前墙壁和右墙壁)的房间布局的特殊情况。
6.传统的基于深度学习的方法通常预测2d每像素边缘图或分割图(例如,天花板、地板、左、前和右),然后是经典的消失点/线采样方法来产生房间布局。然而,这些方法都不能直接应用于非箱形状房间布局拓扑。例如,必须在框架中定义更多的分割标签,以生成包含超过三面墙壁的房间的布局。另外,这些方法高度取决于提取三个相互正交的消失点的准确度,这有时由于误导性纹理而失败。
7.这些问题的现有解决方案通常强烈依赖于手工设计的特征和消失点检测,这在杂乱的情况下容易失败。考虑估计杂乱的室内场景(比如说,杂乱的教室)的空间布局的任务。然而,推断布局,特别是在存在大量杂乱的情况下,是一项具有挑战性的任务。室内场景具有高度的类内(intra-class)变化,以及推断布局所需的关键信息,诸如房间角落,经常被遮挡,并且必须间接被推断。一些传统方法在给定深度信息(例如,rgbd帧或红绿蓝深度)或可以从中推断深度的单目图像序列的情况下解决这些问题。这些传统方法通常明确或隐含地对使用消费级计算设备可以处理的扫描数量、待估计的布局中的少量房间等施加限制,以使这些传统方法充其量不切实际。一些其他传统方法将输入限制为最一般的情况:单个rgb图像。该问题的一些现有方法通常遵循两阶段过程。首先,生成一系列布局假设。接下来,这些被排名以达到最终布局。第一阶段通常通过检测场景中的三个正交消失点来完成,通常由诸如边缘的低级别特征引导。例如,有影响力的工作通过推断消失点并且然后使用结构化svm(支持向量机)对它们进行排名来生成布局候选。不幸的是,该第一阶段非常容易受到杂乱的影响,并且经常无法产生足够准确的假设。虽然随后的工作提出了对该过程的第二阶段的改进(例如,对布局进行排名),但是它们被候选生成的脆弱性所破坏。
8.最近,随着用于语义分割的深度卷积神经网络(cnn)的快速发展,研究人员一直在探索使用这样的cnn用于房间布局估计的可能性。例如,一些现有方法首先训练完全卷积网络(fcn)模型来生成取代手工设计的低级图像特征提取的“信息丰富的边缘图”。预测的边缘图然后用于对消失线进行采样,用于布局假设生成和排名。一些其他现有方法使用fcn来学习语义表面标签,诸如左墙壁、前墙壁、右墙壁、天花板和地面。然后使用连接组件和孔填充技术来细化fcn的原始每像素预测,然后使用经典的消失点/线采样方法来产生房间布局。然而,尽管结果有所改善,但是这些方法使用cnn来生成新的“低级”特征集合,并没有充分利用cnn的端到端学习能力。换句话说,原始cnn预测需要通过昂贵的假设检验阶段进行后处理,以产生最终布局。例如,这花费管线30秒来处理每一帧并且是不切实际的,如果在实际应用中不是完全无用的话。
9.其他一些现有方法采用完全卷积神经网络。这些现有方法受到对于布局估计独特的约束,阻止了现有通用语义分割方法的直接应用。例如,三种潜在的墙类不具有任何特征外观。多个子对象可能包含在它们的边界内,因此由crf(条件随机场)方法做出的颜一致性假设是无效的。此外,存在关于语义布局标签的固有模糊性。这与标签被唯一定义的传统语义分割问题形成对比。
10.而且,平面图估计涉及语义分割和对象识别,再加上与捕获真实世界室内环境相关联的后勤困难,自然反映在室内环境数据集的短缺以及具有注释的平面图以及伴随的3d点云/网格表示。而且,这样的单一来源的数据集极不可能能够拥有具有大量和各种不同布局类型的样本,这些样本是训练能够在野外表现良好的深度网络所必需的。而且,许多语义分割技术需要更多的计算资源,这些资源仅可由最先进的服务器提供,并且因此在各种容量的计算设备之间缺乏广泛的应用和部署。除了繁重的计算资源要求之外,随着输入数据的维度变得更高,这些传统的语义分割技术通常表现出较差的性能。
11.平面图估计中的另一个挑战涉及利用由各种可操作地耦接的传感器捕获的数据来做出对用户有用和/或关键的确定,诸如在计算机视觉和/或对象识别挑战中,其可能例如涉及用户周围的三维世界。在诸如使用全局图优化技术的被称为“floorsp”的方法和配
置中,就房间数量和每个房间的墙壁数量而言,问题的复杂性不能很好地随着输入的大小而缩放,这进而与要优化的图的大小成比例。而且,聚类已经在需要关于聚类数量的先验知识以及有组织地确定聚类数量的算法的工作中得到很好的探索。
12.场景理解和分析中的又一个挑战涉及利用由各种可操作地耦接的传感器捕获的数据来做出对用户有用和/或关键的确定,诸如在计算机视觉和/或对象识别挑战中,其可能例如涉及用户周围的三维世界。许多公开可用的数据集和库可用于训练和验证各种模型,用于场景理解和分析,以及通过基于一个或多个地标拼接室外环境的重建布局的较小片段来构建室外环境的环境图。尽管如此,对于室内环境来说,这样的数据集和库充其量是稀缺的(如果确实存在的话),更不用说室内环境更加杂乱的性质了。
13.因此,需要改进的方法、系统和计算机程序产品,用于从室内场景的扫描中有效地生成平面图,以解决传统方法的至少前述缺陷、挑战、缺点和困难。


技术实现要素:



14.根据一些实施例,描述了一种用于生成室内场景的平面图的方法。在这些实施例中,可以根据室内场景的输入图像来确定房间的房间分类和用于房间的墙壁的墙壁分类;以及可以至少部分地基于房间分类和墙壁分类生成平面图,而不限制室内场景中的房间的总数或房间的大小。
15.在这些实施例中的一些实施例中,确定房间分类和墙壁分类可包括识别输入图像,其中,输入图像包括来自室内场景的三维扫描的一个图像或图像序列;以及确定用于输入图像的输入点云。
16.在前述实施例中的一些实施例中,为了确定房间分类和墙壁分类,可以确定输入点云的子集;以及深度网络可以至少用合成数据集来训练。在紧接前述实施例中的一些实施例中,可以在深度网络处针对在子集中表示的一个或多个顶点生成一个或多个房间集标签,并针对墙壁生成墙壁集标签,以确定房间的房间分类和墙壁的墙壁分类。
17.在这些实施例中的一些实施例中,可以至少部分地基于与室内场景相关的距离度量对点集执行嵌套分区以将点集划分为多个重叠的局部区域;以及可以至少通过对经嵌套分区的点集递归地执行语义特征提取来提取捕获室内场景中的几何结构的局部特征,用于生成一个或多个房间集标签和墙壁集标签。
18.在紧接前述实施例中的一些实施例中,局部特征可以被抽象为更高级别的特征或表示;以及可以以多种不同的尺度或分辨率对多个局部特征进行自适应加权,以生成一个或多个房间集标签和墙壁集标签。
19.在一些实施例中,可以以多个不同的尺度或分辨率组合多个局部特征;以及一个或多个房间集标签和墙壁集标签可以至少部分基于距离度量被分配给用于室内场景的度量空间,用于生成一个或多个房间集标签和墙壁集标签。
20.根据一些实施例,提供了一种具有处理器和存储器的系统。该存储器存储在由处理器执行时使得处理器执行本文所描述的任何方法的指令。
21.根据一些实施例,提供了一种非暂态计算机可读介质。该非暂态计算机可读介质存储在由处理器执行时使得处理器执行本文所描述的任何方法的指令。
22.本公开的一些实施例的概要陈述:
23.1.一种用于生成室内场景的平面图的方法,包括:根据室内场景的输入图像来确定房间的房间分类和用于所述房间的墙壁的墙壁分类;以及至少部分地基于所述房间分类和所述墙壁分类来确定平面图,而不限制所述平面图中的房间的总数或所述房间的大小。
24.2.根据权利要求1所述的方法,其中,确定所述房间的所述房间分类和所述墙壁的所述墙壁分类包括:识别所述输入图像,其中,所述输入图像包括来自所述室内场景的三维扫描的一个图像或图像序列;以及确定用于所述输入图像的输入点云。
25.3.根据权利要求2所述的方法,其中,确定所述房间的所述房间分类和所述墙壁的所述墙壁分类还包括:识别所述输入点云的子集;以及至少用合成数据集来训练深度网络。
26.4.根据权利要求3所述的方法,其中,确定所述房间的所述房间分类和所述墙壁的所述墙壁分类还包括:在使用深度网络,生成用于在所述子集中表示的一个或多个顶点的一个或多个房间集标签和用于所述墙壁的墙壁集标签。
27.5.根据权利要求4所述的方法,其中,生成所述一个或多个房间集标签和所述墙壁集标签包括:至少部分地基于与所述室内场景相关的距离度量,对点集执行嵌套分区以将所述点集划分为多个重叠的局部区域;以及至少通过对经嵌套分区的点集递归地执行语义特征提取来提取捕获所述室内场景中的几何结构的局部特征。
28.6.根据权利要求5所述的方法,其中,生成所述一个或多个房间集标签和墙壁集标签包括:将所述局部特征抽象为更高级别的特征或表示;以及以多个不同的尺度或分辨率对多个局部特征进行自适应加权。
29.7.根据权利要求6所述的方法,其中,生成所述一个或多个房间集标签和墙壁集标签包括:以多个不同的尺度或分辨率组合所述多个局部特征;至少部分地基于所述距离度量,将所述一个或多个房间集标签和所述墙壁集标签分配给用于所述室内场景的度量空间。
30.8.根据权利要求1所述的方法,其中,确定所述平面图包括:至少使用所述房间分类和所述墙壁分类生成用于所述房间的形状,其中,所述房间分类包括被分配给所述房间的或与所述房间相关联的房间集标签,以及所述墙壁分类包括被分配给所述房间的一个或多个墙壁的或与所述房间的一个或多个墙壁相关联的一个或多个墙壁集标签,并且所述一个或多个墙壁包括所述墙壁;至少部分地基于所述形状,至少通过聚合或集成相对于全局坐标系所估计的房间周边来生成所述平面图,其中,所述形状包括深度周边类型的多边形。
31.9.根据权利要求8所述的方法,其中,生成所述形状包括:对所述室内场景的所述输入图像的rgb(红绿蓝)帧执行深度估计;以及至少通过使用多视图深度估计网络和分割模块来生成深度图和墙壁分割掩模,其中,所述分割模块至少部分地基于pspnet(金字塔场景解析网络)和resnet(残差网络)。
32.10.根据权利要求9所述的方法,其中,生成所述形状还包括:至少通过使用步进立方体算法将一个或多个掩模深度图像与姿势轨迹相融合来提取墙壁点云;至少通过训练深度分割网络来隔离对应于所述墙壁点云的深度预测;以及将所述深度预测投射到三维3d点云。
33.11.根据权利要求10所述的方法,其中,生成所述形状还包括:至少通过在所述深度分割网络处检测属于同一平面实例的一个或多个点,将所述3d点云聚类为多个集;以
及将所述多个集转换为形成用于所述平面图的周边布局的平面集合。
34.12.根据权利要求8所述的方法,其中,生成所述平面图包括:根据所述室内环境的扫描来识别房间实例和墙壁实例;以及估计用于所述房间实例的闭合周边。
35.13.根据权利要求12所述的方法,其中,生成所述平面图还包括:至少通过使用投票架构来预测集的数量;以及至少通过执行房间或墙壁回归来提取多个特征,所述房间或墙壁回归以一个或多个尺度来计算所述多个特征。
36.14.根据权利要求13所述的方法,其中,生成所述平面图还包括:以所述一个或多个尺度至少部分地基于所述多个特征来确定所述输入点云的子采样版本;以及确定由所述输入点云的所述子采样版本中的种子点投出的一个或多个投票(vote)。
37.15.根据权利要求14所述的方法,其中,生成所述平面图还包括:对所述一个或多个投票执行投票聚类;以及估计用于所述平面图的房间周边。
38.16.根据权利要求15所述的方法,其中,执行所述投票聚类包括:识别所预测的投票集合;以及至少通过针对所述输入点云的所述子采样版本中的所述种子点生成集标签来确定一个或多个房间实例和一个或多个墙壁实例。
39.17.根据权利要求16所述的方法,其中,执行所述投票聚类还包括:至少通过将所预测的房间投票连接到一个或多个房间投票以及通过将所预测的墙壁投票连接到一个或多个墙壁投票来准备聚类输入;以及对所述一个或多个房间投票和所述一个或多个墙壁投票执行基于密度的空间聚类,以将所述房间分类分配给所述房间,并且将所述墙壁分类分配给所述墙壁。
40.18.根据权利要求17所述的方法,其中,执行所述投票聚类还包括:至少通过将所述房间分类和所述墙壁分类从所预测的投票集合回溯到所述输入点云的所述子采样版本中的一个或多个种子点来生成分配;以及至少通过对房间点集和墙壁点集执行相交来确定用于所述房间的墙壁点的列表。
41.19.根据权利要求15所述的方法,其中,估计用于所述平面图的所述房间周边包括:用标签识别房间点和用于所述房间的墙壁点;使用深度周边模块确定各个房间周边;以及将所述房间点或用于所述房间的所述墙壁点中的点投射到平面。
42.20.根据权利要求19所述的方法,其中,估计用于所述平面图的所述房间周边包括:预测用于所述墙壁点的二维2d线段。
43.21.根据权利要求19所述的方法,其中,估计用于所述平面图的所述房间周边包括:至少部分地基于标准移除一个或多个2d线段。
44.22.根据权利要求20所述的方法,其中,估计用于所述平面图的所述房间周边包括:通过至少使用所述2d线段形成沿着多个节点的闭合路径作为用于所述平面图的所述房间周边。
45.23.一种用于生成室内场景的平面图的系统,包括:处理器;以及存储器,其操作地耦接到所述处理器并存储指令序列,所述指令序列在由所述处理器执行时使得所述处理器执行一组动作,所述一组动作包括:根据室内场景的输入图像来确定房间的房间分类和用于所述房间的墙壁的墙壁分类;以及至少部分地基于所述房间分类和所述墙壁分类来确定平面图,而不限制所述平面图中的房间的总数或所述房间的大小。
46.24.根据权利要求23所述的系统,包括在由所述处理器执行时使得所述处理器执
行确定所述房间的所述房间分类和所述墙壁的所述墙壁分类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:识别所述输入图像,其中,所述输入图像包括来自所述室内场景的三维扫描的一个图像或图像序列;以及确定用于所述输入图像的输入点云。
47.25.根据权利要求24所述的系统,包括在由所述处理器执行时使得所述处理器执行确定所述房间的所述房间分类和所述墙壁的所述墙壁分类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:识别所述输入点云的子集;以及至少用合成数据集来训练深度网络。
48.26.根据权利要求25所述的系统,包括在由所述处理器执行时使得所述处理器执行确定所述房间的所述房间分类和所述墙壁的所述墙壁分类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:在使用深度网络,生成用于在所述子集中表示的一个或多个顶点的一个或多个房间集标签和用于所述墙壁的墙壁集标签。
49.27.根据权利要求26所述的系统,包括在由所述处理器执行时使得所述处理器执行生成所述一个或多个房间集标签和所述墙壁集标签的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少部分地基于与所述室内场景相关的距离度量,对点集执行嵌套分区以将所述点集划分为多个重叠的局部区域;以及至少通过对经嵌套分区的点集递归地执行语义特征提取来提取捕获所述室内场景中的几何结构的局部特征。
50.28.根据权利要求27所述的系统,包括在由所述处理器执行时使得所述处理器执行生成所述一个或多个房间集标签和所述墙壁集标签的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:将所述局部特征抽象为更高级别的特征或表示;以及以多个不同的尺度或分辨率对多个局部特征进行自适应加权。
51.29.根据权利要求28所述的系统,包括在由所述处理器执行时使得所述处理器执行生成所述一个或多个房间集标签和所述墙壁集标签的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:以多个不同的尺度或分辨率组合所述多个局部特征;至少部分地基于所述距离度量,将所述一个或多个房间集标签和所述墙壁集标签分配给用于所述室内场景的度量空间。
52.30.根据权利要求23所述的系统,包括在由所述处理器执行时使得所述处理器执行确定所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少使用所述房间分类和所述墙壁分类生成用于所述房间的形状,其中,所述房间分类包括被分配给所述房间的或与所述房间相关联的房间集标签,以及所述墙壁分类包括被分配给所述房间的一个或多个墙壁的或与所述房间的一个或多个墙壁相关联的一个或多个墙壁集标签,并且所述一个或多个墙壁包括所述墙壁;至少部分地基于所述形状,至少通过聚合或集成相对于全局坐标系所估计的房间周边来生成所述平面图,其中,所述形状包括深度周边类型的多边形。
53.31.根据权利要求30所述的系统,包括在由所述处理器执行时使得所述处理器执
行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:对所述室内场景的所述输入图像的rgb(红绿蓝)帧执行深度估计;以及至少通过使用多视图深度估计网络和分割模块来生成深度图和墙壁分割掩模,其中,所述分割模块至少部分地基于pspnet(金字塔场景解析网络)和resnet(残差网络)。
54.32.根据权利要求31所述的系统,包括在由所述处理器执行时使得所述处理器执行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过使用步进立方体算法将一个或多个掩模深度图像与姿势轨迹相融合来提取墙壁点云;至少通过训练深度分割网络来隔离对应于所述墙壁点云的深度预测;以及将所述深度预测投射到三维3d点云。
55.33.根据权利要求32所述的系统,包括在由所述处理器执行时使得所述处理器执行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过在所述深度分割网络处检测属于同一平面实例的一个或多个点,将所述3d点云聚类为多个集;以及将所述多个集转换为形成用于所述平面图的周边布局的平面集合。
56.34.根据权利要求30所述的系统,包括所在由所述处理器执行时使得所述处理器执行生成所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:根据所述室内环境的扫描来识别房间实例和墙壁实例;以及估计用于所述房间实例的闭合周边。
57.35.根据权利要求34所述的系统,包括在由所述处理器执行时使得所述处理器执行生成所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过使用投票架构来预测集的数量;以及至少通过执行房间或墙壁回归来提取多个特征,所述房间或墙壁回归以一个或多个尺度来计算所述多个特征。
58.36.根据权利要求35所述的系统,包括在由所述处理器执行时使得所述处理器执行生成所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:以所述一个或多个尺度至少部分地基于所述多个特征来确定所述输入点云的子采样版本;以及确定由所述输入点云的所述子采样版本中的种子点投出的一个或多个投票。
59.37.根据权利要求36所述的系统,包括在由所述处理器执行时使得所述处理器执行生成所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:对所述一个或多个投票执行投票聚类;以及估计用于所述平面图的房间周边。
60.38.根据权利要求37所述的系统,包括在由所述处理器执行时使得所述处理器执行所述投票聚类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:识别所预测的投票集合;以及至少通过针对所述输入点云的所述子采样版本中的所述种子点生成集标签来确定一个或多个房间实例和一个或多个墙壁实例。
61.39.根据权利要求38所述的系统,包括在由所述处理器执行时使得所述处理器执
行所述投票聚类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过将所预测的房间投票连接到一个或多个房间投票以及通过将所预测的墙壁投票连接到一个或多个墙壁投票来准备聚类输入;以及对所述一个或多个房间投票和所述一个或多个墙壁投票执行基于密度的空间聚类,以将所述房间分类分配给所述房间,并且将所述墙壁分类分配给所述墙壁。
62.40.根据权利要求39所述的系统,包括在由所述处理器执行时使得所述处理器执行所述投票聚类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过将所述房间分类和所述墙壁分类从所预测的投票集合回溯到所述输入点云的所述子采样版本中的一个或多个种子点来生成分配;以及至少通过对房间点集和墙壁点集执行相交来确定用于所述房间的墙壁点的列表。
63.41.根据权利要求37所述的系统,包括在由所述处理器执行时使得所述处理器执行估计所述房间周边的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:用标签识别房间点和用于所述房间的墙壁点;使用深度周边模块确定各个房间周边;以及将所述房间点或用于所述房间的所述墙壁点中的点投射到平面。
64.42.根据权利要求41所述的系统,包括在由所述处理器执行时使得所述处理器执行估计所述房间周边的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:预测用于所述墙壁点的二维2d线段。
65.43.根据权利要求41所述的系统,包括在由所述处理器执行时使得所述处理器执行估计所述房间周边的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少部分地基于标准移除一个或多个2d线段。
66.44.根据权利要求42所述的系统,包括在由所述处理器执行时使得所述处理器执行估计所述房间周边的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:通过至少使用所述2d线段形成沿着多个节点的闭合路径作为用于所述平面图的所述房间周边。
67.45.一种用于生成室内场景的平面图的可穿戴扩展现实设备,包括;光学系统,其具有微型显示器或微型投影仪的阵列以向用户的眼睛呈现数字内容;处理器,其被耦接到所述光学系统;以及存储器,其操作地耦接到所述处理器并存储指令序列,所述指令序列在由所述处理器执行时使得所述处理器执行一组动作,所述一组动作包括:根据室内场景的输入图像来确定房间的房间分类和用于所述房间的墙壁的墙壁分类;以及至少部分地基于所述房间分类和所述墙壁分类来确定平面图,而不限制所述平面图中的房间的总数或所述房间的大小。
68.46.根据权利要求45所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行确定所述房间的所述房间分类和所述墙壁的所述墙壁分类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:识别所述输入图像,其中,所述输入图像包括来自所述室内场景
的三维扫描的一个图像或图像序列;以及确定用于所述输入图像的输入点云。
69.47.根据权利要求46所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行确定所述房间的所述房间分类和所述墙壁的所述墙壁分类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:识别所述输入点云的子集;以及至少用合成数据集来训练深度网络。
70.48.根据权利要求47所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行确定所述房间的所述房间分类和所述墙壁的所述墙壁分类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:在使用深度网络,生成用于在所述子集中表示的一个或多个顶点的一个或多个房间集标签和用于所述墙壁的墙壁集标签。
71.49.根据权利要求48所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行生成所述一个或多个房间集标签和所述墙壁集标签的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少部分地基于与所述室内场景相关的距离度量,对点集执行嵌套分区以将所述点集划分为多个重叠的局部区域;以及至少通过对经嵌套分区的点集递归地执行语义特征提取来提取捕获所述室内场景中的几何结构的局部特征。
72.50.根据权利要求49所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行生成所述一个或多个房间集标签和所述墙壁集标签的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:将所述局部特征抽象为更高级别的特征或表示;以及以多个不同的尺度或分辨率对多个局部特征进行自适应加权。
73.51.根据权利要求50所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行生成所述一个或多个房间集标签和所述墙壁集标签的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:以多个不同的尺度或分辨率组合所述多个局部特征;至少部分地基于所述距离度量,将所述一个或多个房间集标签和所述墙壁集标签分配给用于所述室内场景的度量空间。
74.52.根据权利要求45所述的可穿戴扩展现实设备,包括所述指令序列的所述存储器,所述指令序列在由所述处理器执行时使得所述处理器执行确定所述平面图,还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少使用所述房间分类和所述墙壁分类来生成用于所述房间的形状,其中,所述房间分类包括被分配给所述房间的或与所述房间相关联的房间集标签,以及所述墙壁分类包括被分配给所述房间的一个或多个墙壁的或与所述房间的一个或多个墙壁相关联的一个或多个墙壁集标签,并且所述一个或多个墙壁包括所述墙壁;以及至少部分地基于所述形状,至少通过聚合或集成相对于全局坐标系所估计的房间周边来生成所述平面图,其中,所述形状包括深度周边类型的多边形。
75.53.根据权利要求52所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执
行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:对所述室内场景的所述输入图像的rgb(红绿蓝)帧执行深度估计;以及至少通过使用多视图深度估计网络和分割模块来生成深度图和墙壁分割掩模,其中,所述分割模块至少部分地基于pspnet(金字塔场景解析网络)和resnet(残差网络)。
76.54.根据权利要求53所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过使用步进立方体算法将一个或多个掩模深度图像与姿势轨迹相融合来提取墙壁点云;至少通过训练深度分割网络来隔离对应于所述墙壁点云的深度预测;以及将所述深度预测投射到三维3d点云。
77.55.根据权利要求54所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过在所述深度分割网络处检测属于同一平面实例的一个或多个点,将所述3d点云聚类为多个集;以及将所述多个集转换为形成用于所述平面图的周边布局的平面集合。
78.56.根据权利要求52所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行生成所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:根据所述室内环境的扫描来识别房间实例和墙壁实例;以及估计用于所述房间实例的闭合周边。
79.57.根据权利要求56所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行生成所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过使用投票架构来预测集的数量;以及至少通过执行房间或墙壁回归来提取多个特征,所述房间或墙壁回归以一个或多个尺度来计算所述多个特征。
80.58.根据权利要求57所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行生成所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:以所述一个或多个尺度至少部分地基于所述多个特征来确定所述输入点云的子采样版本;以及确定由所述输入点云的所述子采样版本中的种子点投出的一个或多个投票。
81.59.根据权利要求58所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行生成所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:对所述一个或多个投票执行投票聚类;以及估计用于所述平面图的房间周边。
82.60.根据权利要求59所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行所述投票聚类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:识别所预测的投票集合;以及至少通过针对所述输入点云的所述子采样版本中的所述种子点生成集标签来确定一个或多个房间实例和一个或多个墙壁实例。
83.61.根据权利要求60所述的可穿戴扩展现实设备,包括在由所述处理器执行时使
得所述处理器执行所述投票聚类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过将所预测的房间投票连接到一个或多个房间投票以及通过将所预测的墙壁投票连接到一个或多个墙壁投票来准备聚类输入;以及对所述一个或多个房间投票和所述一个或多个墙壁投票执行基于密度的空间聚类,以将所述房间分类分配给所述房间,并且将所述墙壁分类分配给所述墙壁。
84.62.根据权利要求61所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行所述投票聚类的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过将所述房间分类和所述墙壁分类从所预测的投票集合回溯到所述输入点云的所述子采样版本中的一个或多个种子点来生成分配;以及至少通过对房间点集和墙壁点集执行相交来确定用于所述房间的墙壁点的列表。
85.63.根据权利要求59所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行估计所述房间周边的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:用标签识别房间点和用于所述房间的墙壁点;使用深度周边模块确定各个房间周边;以及将所述房间点或用于所述房间的所述墙壁点中的点投射到平面。
86.64.根据权利要求63所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行估计所述房间周边的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:预测用于所述墙壁点的二维2d线段。
87.65.根据权利要求63所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行估计所述房间周边的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少部分地基于标准移除一个或多个2d线段。
88.66.根据权利要求64所述的可穿戴扩展现实设备,包括在由所述处理器执行时使得所述处理器执行估计所述房间周边的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:通过至少使用所述2d线段形成沿着多个节点的闭合路径作为用于所述平面图的所述房间周边。
89.前述概述通过说明的方式提供并且不旨在进行限制。
附图说明
90.附图不旨在按比例绘制。在附图中,各图中所示的每个相同或几乎相同的部件由相同的数字表示。出于清晰的目的,并非每个组件可以在每个附图中被标记。在附图中:
91.图1是示出根据一些实施例的简化增强现实(ar)场景的示例的示意图。
92.图2是根据一些实施例的示例性简化ar场景的示意图,示出了xr系统的示例性使用案例。
93.图3是示出根据一些实施例的被配置为向用户提供与物理世界交互的ar内容的体验的ar系统中的单个用户的数据流的示意图。
94.图4是示出根据一些实施例的为单个用户显示虚拟内容的示例性ar显示系统的示意图。
95.图5a是示出根据一些实施例的当用户在物理世界环境中移动时穿戴渲染ar内容的ar显示系统的用户的示意图。
96.图5b是示出根据一些实施例的观看光学组件和伴随组件的示意图。
97.图6a是示出根据一些实施例的使用世界重建系统的ar系统的示意图。
98.图6b是示出根据一些实施例的维护可通行世界的模型的ar系统的组件的示意图。
99.图7是由穿过物理世界的路径的设备形成的跟踪地图的示意图。
100.图8是示出根据一些实施例的交叉现实(xr)系统的用户感知虚拟内容的示意图。
101.图9是根据一些实施例的在坐标系之间进行变换的图8的xr系统的第一xr设备的组件的框图。
102.图10示出了示例眼镜设备的俯视图,该眼镜设备在一个或多个实施例中包括两个相对的镜撑臂和提供改进的稳定性和增强的抗扭转能力的扭转带。
103.图11a示出了一个或多个实施例中的微型投影仪阵列以及将微型投影仪阵列与光学系统耦合的示例配置。
104.图11b示出了一个或多个实施例中的可穿戴xr设备的示意性表示的一些示例组件的俯视图。
105.图11c示出了一个或多个实施例中的可穿戴xr设备的示意性表示的示例实施例。
106.图12a示出了一个或多个实施例中的用于(一个或多个)2d和/或3d图像序列的时空感知的四维(4d)时空(或时空)卷积神经网络的示例架构。
107.图12b示出了一个或多个实施例中的用于(一个或多个)2d和/或3d图像序列的时空感知的四维(4d)时空(或时空)卷积神经网络的另一示例架构。
108.图12c示出了一个或多个实施例中的用于点云中的3d对象检测的示例架构。
109.图12d示出了一个或多个实施例中的根据输入点云生成三维(3d)边界框的简化示例。
110.图12e示出了一个或多个实施例中的用于修改的pointnet++的示例架构。
111.图13a示出了在一个或多个实施例中将最小二乘法应用于一些示例数据点的示例应用。
112.图13b示出了一个或多个实施例中的位置确定任务的示例几何形状。
113.图13c示出了一些实施例中的p2p任务的示例几何形状。
114.图13d示出了一些实施例中的p3p任务的示例几何形状。
115.图13e-(a)到13e-(c)示出了一些实施例中的对p3p任务的一些示例解决方案。
116.图13f-(a)到13f-(c)示出了一些实施例中的p4p任务的示例。
117.图13g示出了一些实施例中的示例p5p任务。
118.图14a示出了一些实施例中的掩模rcnn的简化示意性示例。
119.图14b示出了一些实施例中的示例roialign(感兴趣区域对齐)。
120.图14c示出了一些实施例中的具有resnet和fpn(特征金字塔网络)骨干的示例快速r-cnn头部架构。
121.图14d示出了一些实施例中的示例pspnet架构。
122.图14e示出了一些实施例中的具有辅助损失的示例resnet。
123.图14f示出了一些实施例中的具有3
×
3感受野的一(1)扩张卷积(dilated convolution)的简化示例。
124.图14g示出了一些实施例中的从图7b中的一扩张卷积产生并且具有7x 7感受野的二(2)扩张卷积的简化示例。
125.图14h示出了一些实施例中的从图7c中的二扩张卷积产生并且具有11x 11感受野的三(3)扩张卷积的简化示例。
126.图14i示出了一些实施例中的从图7d中的二扩张卷积产生并且具有15x 15感受野的四(4)扩张卷积的简化示例。
127.图14j示出了一些实施例中的用于周边估计的示例管线。
128.图14k示出了一些实施例中的用于周边估计的另一示例管线。
129.图15a示出了一些实施例中的用于生成场景的平面图的高级流程图。
130.图15b示出了一些实施例中的关于用于生成场景的平面图的图15a所示的高级流程图的更多细节。
131.图15c示出了一些实施例中的关于用于生成场景的平面图的图15a所示的高级流程图的更多细节。
132.图15d示出了一些实施例中的关于用于生成场景的平面图的图15b所示的流程图的更多细节。
133.图15e示出了一些实施例中的关于用于生成场景的平面图的图15c所示的流程图的更多细节。
134.图15f示出了一些实施例中的关于用于生成场景的平面图的图15c所示的流程图的更多细节。
135.图15g示出了一些实施例中的关于用于生成场景的平面图的图15f所示的流程图的更多细节。
136.图15h示出了一些实施例中的关于用于生成场景的平面图的图15f所示的流程图的更多细节。
137.图16a至图16i示出了一个或多个实施例中的微型投影仪阵列以及将微型投影仪阵列与光学系统耦合的示例配置。
具体实施方式
138.在以下描述中,阐述了某些特定细节以便提供对各种公开的实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有这些具体细节中的一个或多个的情况下,或者使用其他方法、部件、材料等来实践实施例。在其他情况下,与眼镜相关联的众所周知的结构,包括空间计算头戴式装置和用于眼镜镜腿的铰接系统没有被详细示出或描述以避免不必要地混淆实施例的描述。
139.除非上下文另有要求,否则在整个说明书和随后的权利要求书中,“comparise(包括)”一词及其变体,例如“comprises(包括)”和“comprising(包括)”应以开放、包容的意义解释为“包括但不仅限于。”140.在整个说明书中对“一个实施例”或“一实施例”的引用意味着结合该实施例描述
的特定特征、结构或特性被包括在至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”或“在一实施例中”不一定都指示相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
141.在以下描述中,阐述了某些特定细节以便提供对各种公开的实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有一个或多个这些具体细节的情况下,或者用其他方法、组件、材料等来实践实施例。在其他情况下,未详细示出或描述与虚拟现实(vr)、增强现实(ar)、混合现实(mr)和扩展现实(xr)系统相关联的众所周知的结构,以避免不必要地模糊实施例的描述。应当注意,术语虚拟现实(vr)、增强现实(ar)、混合现实(mr)和扩展现实(xr)在本公开中可以互换使用,以表示用于经由至少可穿戴xr设备以及支持可穿戴xr设备的一个或多个远程计算设备向用户显示至少虚拟内容的方法或系统。
142.除非上下文另有要求,否则在随后的说明书和权利要求书中,“comparise(包括)”一词及其变体,例如“comprises(包括)”和“comprising(包括)”应以开放、包容的意义解释为“包括但不仅限于”。
143.在各种实施例中,用户可以穿戴增强现实系统,诸如图1中所描绘的增强现实系统,它也可以被称为“空间计算”系统,关于该系统在操作时与用户周围的三维世界的交互。这样的系统可以包括例如头戴式显示组件(2),并且可以以如上文所描述的环境感测能力为特征,诸如各种类型的相机,其可以被配置为映射用户周围的环境,或者创建这样的环境的“网格”,包括表示用户周围环境内的各种对象(诸如墙、地板、椅子等)的几何形状的各种点。空间计算系统可以被配置为对用户周围的环境进行映射或网格化,并运行或操作软件,诸如可从佛罗里达州plantation的magic leap公司购得的软件,它可以被配置为利用房间的地图或网格来帮助用户在用户周围的三维空间中放置、操纵、可视化、创建和修改各种对象和元素。返回参考图1,系统可以通过云或其他连接配置可操作地耦接到附加资源,诸如其他计算系统。
144.空间计算中的挑战之一涉及利用由各种可操作地耦接的传感器(诸如图1的系统的元件22、24、26、28)捕获的数据来做出对用户有用和/或关键的确定,诸如在计算机视觉和/或对象识别挑战中,这些挑战可能例如涉及用户周围的三维世界。一些实施例引入了一种方法,该方法在本文中可以称为“floorvoter”,用于至少部分地基于对相关室内环境的结构元件的扫描来准确地确定与可以围绕用户定位和取向的物理环境相关的平面图的估计。所描述的方法和系统配置的某些变型包含两阶段方法,其中初始阶段使用神经网络将场景的无序点云表示聚类成房间实例和墙壁实例。这些方法和配置广泛适用于可穿戴空间计算领域之外的各种场景,受限于适当的传感器和相关联的数据可用。随后的阶段通过沿着所预测的房间和墙壁关键点到最短路径,为每个单独的房间估计由简单多边形参数化的闭合周边。与现有方法相比较,floorvoter管线具有高度的可并行性且极其高效。一些实施例采用在完全合成数据集上训练的深度网络,并在公开可用的结构化3d(结构化3d)和bke数据集上评估该方法,以证明优于最先进技术的出定性和定量结果。
145.对构成室内环境的语义成分的详细理解正逐渐成为越来越重要的问题。属于广为人知的场景理解的广泛主题的这样的见解可以以各种方式表达-例如室内环境的2d/3d数据的语义分割、对象检测/识别、家具的cad扫描替换、和平面图估计等。该描述专注于有效生成室内场景的准确平面图以帮助这样的场景理解的任务的各方面。从3d扫描生成平面图
的能力在多个学术和商业领域具有深远的影响。住宅行业、建筑设计和室内设计比以往更多地被技术所渗透,而诸如floorvoter的自动化工具可以大大增加针对这样的行业的效率和设计可能性的范围。类似地,对于增强和虚拟现实(ar/vr)设备而言,对环境的更智能理解对于为消费者提供更丰富、更具交互性的体验至关重要。
146.与涉及语义分割和对象识别的常见深度学习问题相比较,平面图估计是一项小众任务,再加上与捕获真实世界室内环境相关联的后勤困难,自然反映在具有注释的平面图以及伴随的3d点云/网格表示的室内环境数据集的短缺。而且,这样的单一来源的数据集极不可能能够拥有具有大量和各种不同布局类型的样本,这些样本是训练能够在野外表现良好的深度网络所必需的。
147.一些实施例从捕获的数据中提取具有单个或多个房间的室内环境的平面图,捕获的数据诸如环境结构元素的3d扫描,其可能包括墙壁、门和窗户。由于学术界和工业界已经对室内环境中的2d和3d数据的语义分割进行了广泛的研究,一些实施例专注于估计不受约束的布局的相对未探索的任务,在合理范围内对房间的形状和数量没有限制。这些实施例假设可以利用诸如称为minkowskinet、用于3d扫描的scancomplete和/或maskrcnn、用于2d分割的pspnet(如果随附的rgb/灰度图像可用)的技术的最先进技术来处理floorvoter然后可以处理以生成平面图的结构元素的扫描。
148.在诸如使用全局图优化技术的被称为“floorsp”的方法和配置中,就房间数量和每个房间的墙壁数量而言,问题的复杂性不能很好地随着输入的大小而缩放,这进而与要优化的图的大小成比例。相反,主题floorvoter方法和配置旨在通过将全局问题分解为多个较小的问题来解决缩放问题,这些较小的问题可以以并行方式有效地处理。
149.在一些实施例中,本文所描述的方法和配置广泛地遵循两步方法。首先,基于pointnet++骨干的深度网络为输入点云的感知统一子集的顶点生成聚类标签,以便识别包括室内场景的房间/区域。同时,该网络的另一个输出也是聚类标签,以识别给定场景中的每一面墙壁。其次,一些实施例联合利用房间和墙壁标签为每个房间创建深度周边(deepperimeter)类型的形状,由简单的多边形表示。最终的平面图仅是将所有估计的房间周边放在原始点云的全局坐标系中的集合。
150.总之,一些实施例描述了一种从室内场景的3d扫描生成详细平面图的新技术。在一些实施例中,本文所描述的方法和配置不对房间的数量、它们的配置或它们的形状施加约束。一些实施例证明,可以通过在纯合成数据集上训练深度网络来解决平面图估计问题,该数据集可以有效生成并且在所有方面中也是高度可配置的。这些实施例详细描述了用于生成这样的数据集的算法并附有说明。该网络在真实数据上的表现令人印象深刻,没有显著的领域适应问题,这对架构成功逼近底层功能的能力具有重要意义。所提出的解决方案在多个阶段是高度可并行化的,并且在运行时效率和准确度方面优于当前最先进的技术。
151.无序点云上的特征提取:随着增强和虚拟现实行业以及自动驾驶汽车行业的增长势头,来自诸如智能电话、消费级深度传感器、和lidar(光检测和测距)系统的各种来源的“2.5d”和三维(“3d”)数据的可用性得到了巨大的提升。对这样的数据执行复杂学习任务的需求也有所增加。架构直接对点向量进行操作,将输入空间划分为结构化网格并量化输入,因此在派生网格上运行3d卷积是可能的。最近的方法在3d点集上执行稀疏卷积以实现令人印象深刻的目标检测结果,而一些方法将输入数据点参数化为图形并利用图形连接性和结
构来提取特征。
152.聚类:聚类问题可以广义地定义为标签分配任务,其中具有相似特征的数据点将被分配相同的标签。传统地,聚类已经在需要关于聚类数量的先验知识以及有组织地确定聚类数量的算法的工作中得到很好的探索。最近,深度神经网络也被用于在监督或半监督和无监督的环境中执行该任务。与本文所描述的一些实施例类似,某些其他描述包括一些先前的研究,这些研究专注于用于聚类的投票机制。
153.平面图估计:已经观看到平面图估计的先前研究在输出平面图的参数化实践中具有很大的变化,因为不存在表达这样的表示的通用和标准化的方式。类似地,可以以各种方式捕获室内环境,这取决于手头传感器套件的可用性以及捕获的尺寸和期望的分辨率。
154.传统方法使用全景rgbd图像来使用结构语法在程序上重建空间,而其他方法使用3d扫描来提取平面图元并启发式地生成建筑信息模型。
155.基于深度学习的方法处理单个图像(例如,针孔或全景图像)以生成用于单个房间的基于长方体的布局。通常,这些方法依赖于诸如消失点和墙壁边缘的视觉线索来估计布局,通常从预编译的曼哈顿风格(manhattan-style)房间形状库中选择最佳匹配。一些方法使用单个房间布局估计方法,该方法使用场景的单目视频生成多边形周边。
156.对于公寓/房屋尺度的平面图将处理3d扫描以生成相对更详细和半约束的平面图。但是,他们的方法的高计算要求限制了可以在可接受的时间内使用消费级硬件处理的扫描数量。
157.floorvoter-系统概述:参考图2,floorvoter是一种从室内环境的3d扫描提取详细平面图的稳健且高效的方法。以下本节详细描述了从室内场景的3d扫描推断2d平面图所涉及的组件。关键步骤是-从原始3d扫描中识别房间实例和用于每个房间的墙壁实例,然后是估计用于每个房间实例的闭合周边。
158.房间和墙壁聚类:一些实施例提出了将输入3d点云202分离为其构成房间(例如,204个房间集)和墙壁(例如,206墙壁集)的问题,作为3d数据点的非排他性聚类,该3d数据点被进一步处理为平面图208,并且然后一个或多个墙壁集210,而无需集数量上的任何先验假设。为了使得该步骤能够独立于网络架构来预测不受约束的集的数量,一些实施例采用基于投票的技术。
159.房间和墙壁中心回归:图3中概述了投票模块的架构。一些实施例使用pointnet++骨干作为特征提取器,其输入是点p 302的点云,使得和骨干318中的集合抽象(set abstraction)304(用于下采样的(一个或多个)sa层)层和特征传播306(例如,用于上采样的(一个或多个)fp层)以各种尺度计算特征,以产生由s表示的输入的子采样版本(例如,种子点308),其中m个点,m≤n具有c个附加特征维度,使得和此处的一些实施例将集合s称为种子点308,其中的每个成员经由投票生成器310fc1(完全连接网络1)和312fc2(完全连接网络2)投票v,使得和q∈{r0,r1,w}。在一些实施例中,每个种子点si投3个投票(例如,每个种子三个3d偏移向量-两个用于房间投票314并且一个用于墙壁投票316),其中q=r0或q=r1暗示投票表示si属于的房间中心,并且q=w暗示投票表示si属于的墙壁中心。
160.在种子点si属于单个房间的情况下,和是相同的,而在两个房间之间共享的墙壁点的情况下,它们是不同的。对于投票来确定墙壁中心为了简单起见,一些实施例假设每个点可以仅属于唯一的墙壁。
161.为了从每个种子si生成投票一些实施例使用多个投票生成器,其是完全连接层,然后是batchnorm(批量归一化)和relu(修正线性单元)层。投票生成器从单个种子点si中提取投票偏移xi,使得和投票偏移只不过是从种子点到其投票的偏移向量,使得在实践中,一些实施例使用两个投票生成器,一个用于房间投票,其中q∈{r0,r1},并且另一个用于墙壁投票,其中q=w。任何特定投票生成器的参数在所有m个种子点之间共享,并且因此每个si能够独立于任何其他种子点生成
162.一些实施例使用由以下给出的平滑l1损失来训练网络:
[0163][0164][0165][0166][0167]
是对应于预测偏移向量的真实情况(ground truth)偏移向量。要最小化的总损失是其中α是平衡损失幅度的常数。
[0168]
在的情况下,其中一些实施例具有两个无序的真实情况和预测对,这些实施例选择导致最低误差的成对差异。这允许我们优化网络参数,而无需对房间投票进行人为排序。图4中显示了来自结构化3d数据集的示例的墙壁和房间投票的可视化。而且,图4示出了用于房间和墙壁中心的投票。在一些实施例中,图4示出了点云输入到投票模块可包括点云输入到投票模块402、种子点s具有投票点v 404、投票偏移向量x用于不同和共享房间投票406、种子点s具有投票点v 408、以及投票偏移向量x用于墙壁。
[0169]
投票聚类-图5:
[0170]
给定一组预测中心一些实施例现在打算针对种子点生成对应的集标签以获得房间和墙壁实例。为了执行该操作,一些实施例联接和以为房间准备聚类输入(例如,点云输入502到投票模块),并且简单地将用于墙壁。一些实施例运行聚类算法-房间和墙壁上的具有eps=∈的dbscan分别投票并且将集标签分配给每个投票使得q

∈{r,w},其中q

=r暗示标签是用于房间的集分配,而q

=w暗示标签是用于墙壁的集分配。使用dbscan允许我们基于其空间密度分布对投票进行聚类,而不受最大聚类数量的限制。一些实施例然后将聚类标签从投票回溯到种子si以创建分配(例如,用于房间504的从投票v回溯到种子点s的聚类标签和用于墙壁506的从投票到投票v回溯到种子点s的聚类标签),其中在此之后,一些实施例还移除对于房间的成员强度小于0.05
×
m和对于墙壁的成员强度小于0.01
×
m的任何集,以最终创建cr数量的房间集和cw数量的墙壁集。为了获得属于房间的墙壁点的列表,一些实施例对房间和墙壁点集执行交集操作,如下文所描述的:
[0171]rk
=s
r,k
[0172][0173]
其中rk是属于第k个房间的点集,并且w
m,k
是属于第k个房间的第m个墙壁的点集。由于不是所有的墙壁属于所有的房间,因此大量的交集w
m,k
是空集。为了便于记法,一些实施例忽略所有这样的空集,并将w
m,k
重新定义为wm′
,k
,其中和c
mk
是中非空集的数量。
[0174]
房间周边估计:
[0175]
在获得房间点rk,以及具有聚类标签k的用于房间的房间墙壁点一些实施例基于深度周边中描述的方法来描绘各个房间周边。由于在一些实施例中,最终平面图是2d的,因此在所有墙壁正交于x-y平面的假设下,一些实施例通过将rk和中的所有点投射到x-y平面来进行。让w
h,k
表示属于第k个房间的第h个墙壁的点集。通过使用ransac,一些实施例预测用于w
h,k
中的所有点的2d线段,由p
h,k
表示,由线段端点参数化。一些实施例移除中被认为是重复的任何线段,特别是如果它们的斜率的差异≤θ
min
及其偏差的差异≤β
min
。与最近的正交轴成θ
orth
角的任何线段被折断以与所述轴对准。为了允许非曼哈顿布局,同时也考虑到ransac线拟合中的小误差,一些实施例将θ
orth
的值保持相对低,如下文所描述的。
[0176]
为了沿着一组节点形成闭合路径,如图6所示,一些实施例实现了2-opt算法的改进版本,从中为臭名昭著的指数时间旅行商问题提供了次优o(n2)解决方案。更具体地,图6示出了聚类墙壁点集的输入602到用于房间的周边估计模块、由最短路径算法确定的墙壁段端点602的排序、以及通过挤出或延伸线段以生成多边形顶点而确定为多边形的房间周边606。一些实施例通过其计算最短路径的节点集是线段的起始点和端点的集合。这有效地将输入节点的数量增加了一倍,但在仅使用的中值作为其节点集的更复杂布局形状的情况下,也提供了更优化的解决方案。由于线段p
h,k
的端点对和可能总是通过边缘被连接,因此在优化问题中,一些实施例将所有这样的边缘对的遍历成本设置为0。
[0177]
数据集:
[0178]
在本节中,一些实施例描述了用于floorvoter的训练和评估的各种数据集。重要
的是要注意,该系统能够在看不见的真实和合成数据集上实现具有竞争力的性能,同时纯粹在程序生成的合成数据集上进行训练。
[0179]
合成数据集:
[0180]
在完全合成的数据集上训练本文所描述的网络的主要动机在于缺乏具有带注释的平面图的室内场景的完整3d表示的公开可用数据集。一些实施例生成的合成数据集在所有方面都是高度可配置的,这允许在房间形状、大小、配置和噪声模式方面改变样本的分布以匹配任何目标测试数据集(如果需要)。而且,算法的简单性和这样的数据集的快速生成使得能够对大量具有丰富多种可能布局的样本进行训练。
[0181]
为了生成该数据集,一些实施例从图7a所示的形状库开始,它们仅是二进制3
×
3内核上的各种位组合。为了创建具有no房间的合成布局,一些实施例从库中随机选择形状并将其放置在32
×
32网格的中心,称为占用网格,并为其分配房间标签l=0。为了添加下一个n
o-1房间及其标签,一些实施例迭代地选择任何相邻的未占用网格空间并从库中放置另一个随机形状,只要它不与当前占用的空间重叠。有时,一些实施例随机创建“超级房间”,这是一些实施例将相同的标签l分配给若干连接的形状时。在图7b中可以看到示例,其中红房间由库形状的组合创建,而其他房间由单个形状创建。而且,图7a示出了来自形状库的一些示例形状702a;图7b示出了针对数据集的样本生成的标记占用网格704a;以及图7c示出了从占用网格生成的最终点云706a,其可用于训练或测试管线。
[0182]
一旦利用从0到n
omax
的随机数量的房间创建了占用网格,一些实施例将迭代占用网格以识别墙壁位置,并假设所有墙壁具有固定高度通过在平面上随机采样点来创建墙壁平面的3d表示,在这之后,一些实施例能够生成3d点云,其中每个点具有两个房间标签和墙壁标签。如果点属于单个房间,则这两个房间标签被设置为相同,以及如果点同时属于两个不同的房间,则它们是不同的。假设每个点仅属于单个墙壁。为了在房间尺寸中产生更多差异,一些实施例随机缩放占用网格的行和列的宽度和高度。在门或窗可能是墙壁的一部分的情况下,剪切出随机大小的矩形块来表示场景中的缺失点也是可能的。可以在图7c中看到所得的点云。
[0183]
在训练时,一些实施例对每个样本的x、y和z轴中的每一个应用尺度和随机旋转,并且将输入归一化为第一象限中的2m
×
2m框。在推理期间也强制执行相同的归一化。
[0184]
结构化3d数据集:
[0185]
一些实施例使用结构化3d数据集来评估本文所描述的系统或方法的定量和定性性能。该数据集是由专业设计师创建的3500个带有良好注释的公寓扫描的集合,在房间形状及其配置方面具有挑战性的变化。
[0186]
bke数据集:
[0187]
一些实施例还使用bke数据集来评估本文所描述的系统或方法的定量和定性性能。由于一些实施例在输入扫描仅包含诸如墙壁、门窗等的结构元素的假设下操作,因此一些实施例通过使用该数据集的两个不同版本来执行实验。在一些实施例应称为bke-syn的第一版本中,一些实施例使用数据集中提供的角、边缘和房间注释构建合成点云。来自该数据集的样本干净、无噪声,并且包含沿着所有墙壁的点的统一采样。第二版本,一些实施例将称为bke-struct,可以通过保留原始扫描中的距离与bke-syn中同一场景的最近对应点的距离小于0.15m的点来获得。一些实施例获得原始扫描的点的子集,该子集表示平面图估
计所必需的结构元素,同时丢弃内部杂波。使用公开可用的语义分割网络(诸如minkowskinet或scancomplete)来执行此过滤也是可能的。然而,由于缺乏用于bke的训练数据集以及预训练的minkowskinet在看不见的数据集上的较差性能,一些实施例相反依赖于数据集本身中提供的注释。
[0188]
实验:
[0189]
一些实施例详述了在从3d扫描生成平面图的路径上执行的各种实验,并讨论了在前一节中讨论的数据集上的管线的不同部分的定量和定性结果。
[0190]
示例实现细节:
[0191]
一些实施例将输入到网络的点数设置为n=16384,用于通过对原始点云进行随机子采样来进行训练和评估。对于投票模块中的pointnet骨干,一些实施例使用与中相同的架构。因为一些实施例将所有输入点归一化为位于2
×
2m框中,所以一些实施例将四个集合抽象层的半径分别设置为[0.2,0.4,0.8,1.2]以使能以所有可能尺度计算特征。特征通道数量针对每个种子点设置为c=256,并且要创建的种子点数量是m=1024。图3中的第一投票生成器(用于房间)具有具有输出的大小为[256,256,6]的层,而第二隐藏层(用于墙壁)具有具有输出大小我[256,256,3]的层。
[0192]
对于dbscan聚类步骤,一些实施例将值设置为∈=5cm用于房间投票并且将值设置为∈=2.5cm用于墙壁投票。在某种意义上,∈是两点之间的最大距离的度量,以将它们分组到同一个集中。在周边估计步骤期间,一些实施例设置θ
min
=15、β
min
=15cm和θ
orth
=15。上文讨论的合成训练数据集在每个样本最多仅10个房间的情况下生成,然而在评估期间,当房间数量大于10时,网络也可能实现出的性能。
[0193]
示例结果和示例度量:
[0194]
为了将由本文所描述的一些实施例生成的结果与最先进方法进行比较,一些实施例报告与floorsp相同的度量,并针对所有角位置、边缘和房间iou(交并比(intersection-over-union))生成精度和召回(recall)值。应当注意,一些实施例不将布局参数化为联合全局图,而是相反将每个房间视为用于计算度量的独立简单多边形。类似于floorsp方法,一些实施例将真实情况和预测角和边缘联合变换和投射到256
×
256图像网格上并使用以下规则用于计算度量:
[0195]
角:角的列表是所有房间角的联接而不管其位置。这暗示即使多个角可能具有相同的2d坐标,但如果它们属于不同的房间,则一些实施例不会统一它们。根据用于真实情况和预测角的该逻辑,一些实施例使用匈牙利(hungarian)矩阵来解决分配问题并且计算精度和召回率,其中如果gt中存在唯一角,在距其10个像素的距离内,则预测被认为是真阳性。
[0196]
边缘:类似于角,一些实施例将跨所有房间联接边缘,并且如果其两个角是真阳性,则认为边缘是真阳性。
[0197]
房间:房间被认为是真阳性,如果它关于来自真实情况的唯一房间具有超过0.7的iou得分。与floor-sp相比,一些实施例已经解决了后处理中的任何房间重叠,因此由floorvoter生成的任何房间多边形保证在2d空间中相互排斥。
[0198]
为了评估方法的效率,一些实施例对管线的不同模块进行计时。当输入点云具有n=16384个点时,上文所描述的深度网络的正向传递(forward pass)在nvidia gtx-ti gpu
上平均花费1.99s。随后的每个房间任务在具有8个内核的intel-xeon cpu上运行,使得每个房间以并行方式处理。上文所描述的算法每场景花费1.77s来生成初始布局。在这之后,一些实施例在公共坐标系中组装所有房间布局并且运行一些后处理步骤以移除共线角并解决房间多边形之间的任何重叠。该步骤需要平均0.192s,以针对结构化3d数据集的每个场景提供3.96s的平均端到端运行时间。相比之下,在同一硬件上端到端运行的整个floorsp管线每个场景花费15-30分钟以上,其中昂贵的最终全局图形优化步骤消耗了大部分处理时间。
[0199]
floorvoter能够为各种形状生成准确的平面图,如图8a至8b所示。在图8a中,802a表示一些示例真实情况图像;804a表示来自传统floorsp方法的一些示例结果;以及806a表示由本文所描述的一些实施例对来自相同公开可用的结构化3d和bke数据集的样本生成的一些示例平面图。在图8b中,802b表示一些示例真实情况图像;804b表示来自传统floorsp方法的一些示例结果;以及806b表示由本文所描述的一些实施例对来自相同公开可用的结构化3d和bke数据集的样本生成的一些示例平面图。可以看出,尽管一些实施例仅使用曼哈顿风格布局来训练投票网络,但是房间和墙壁聚类在非曼哈顿风格布局以及训练集中不存在的房间形状上同样成功。这是可能因为一些实施例在数据集中引入了增强,主要是一些实施例应用于输入的随机化旋转,在未对齐轴的房间和墙壁上训练网络。
[0200]
在极其杂乱的布局的情况下,诸如图9a中的布局,一些小房间被省略,因为以下组合:首先-不完美的聚类,其中两个连接的小房间被分配相同的标签,并且其次-周边估计中的后处理步骤,其中一些实施例省略了具有少量点的墙壁,如上文所描述的。而且,图9a示出了错误聚类对非常杂乱的布局的一些示例效果,其中如由区域906a所指示的,在预测904a中不存在真实情况902a中的较小房间。图9b示出了在真实情况902b中具有弯曲墙壁的情况下的一些示例不准确的房间周边估计,而预测904b示出了如由区域906b所指示的不准确的预测。图9c示出了墙壁剔除的一些示例不利影响,其中提供输入点云902c以生成估计的平面图906c。如图9c所示,输入点云092c和真实情况904c中左上角的小角在估计的平面图906中没有精确地表示,如由估计的平面图906c中的区域908c所指示的。图9d示出了对具有缺失点的输入使用非全局方法的一些缺点。更具体地,提供具有缺失点的输入点云902d以生成估计的平面图906d。如图9d所示,真实情况904d指示房间相互连接,而估计的平面图906d示出了如由908d指示的三个未占用区域,这是由于输入云902d中这些对应区域中的缺失点。
[0201]
该墙壁剔除的另一种效果可以在图9c中看到,其中省略了平面图中的小缺口(notch)。一些示例方法的另一个限制是经由具有弯曲墙壁的扫描来暴露的,诸如图9c,其中在真实情况中,曲率由一系列角来表示,而聚类模块将这些非常小的片段中的多个组合成一个大片段。
[0202]
在结构化3d和bke-syn数据集(见下表1)上,示例实现在除房间召回之外的所有类别中均优于最先进的技术。这可以通过以下事实来解释:本文所描述的一些示例方法可能易于将多个房间分组在一起,或者在图9中所讨论的场景中完全省略一个房间。在bke-struct上,存在用于角和边缘的精确召回的下降。该差异可以通过查看图9d来解释,其中由于上文所描述的不完善的过滤过程,输入扫描本身缺少场景中的结构元素的多个部分。然而,由于大部分房间的总体形状被保留,房间召回度量仍然保持竞争力,而房间召回较低,
因为过滤导致在一些情况下遗漏了整个房间。
[0203]
表1:floorvoter的定量结果与最先进的平面图估计方法的比较
[0204][0205]
在该工作的未来迭代中,存在一些实施例旨在改进的该管线的多个区域。为了进一步改进该方法的运行时间,周边估计阶段可以与聚类阶段组合,以形成端到端的可训练系统。这样的系统将使用相同的点云作为输入,并为场景中的每个房间提供光栅化版本的布局或一系列多边形。这将使系统对输入中的加法和减法噪声更加鲁棒,并且还通过从周边估计任务反向传播的误差来帮助聚类任务。此外,骨干网络在3d扫描上生成特征也应该是可能的,以执行识别门和窗位置的附加任务,从而进一步为当前推理添加另一个维度的语义信息。
[0206]“floorvoter”的方法和配置涉及一种有效的自上而下的方法,用于根据室内场景的3d扫描生成准确的平面图。floorvoter依赖于深度网络来执行房间和墙壁聚类,并且可以在下文所描述的合成数据集上进行完全训练。使用程序算法预测单独房间周边的管线的后半部分是高度可并行化的,并且作为一个整体,该方法在速度和准确度方面优于当前最先进的技术。floorvoter能够生成场景布局,而无需关于对房间的形状、大小、数量和配置的假设,这使其对于来自野外的3d数据的平面图估计非常有价值。
[0207]
本文描述了本发明的各种示例实施例。以非限制性的意义对这些示例进行参考。它们被提供以示出本发明的更宽的适用方面。可以对所描述的本发明做出各种改变并且可以代替等效物而不脱离本发明的真实精神和范围。另外,可以做出许多修改以将特定情况、材料、物质的组成、过程、(一个或多个)过程动作或(一个或多个)步骤适于本发明的(一个或多个)目的、精神或范围。而且,如由本领域的技术人员将理解到的,本文中所描述和所示出的每个单独变型具有可以容易地与其他数个实施例中的任一个的特征分离或者组合的分立部件和特征,而不脱离本公开的范围或精神。所有这样的修改旨在在与本公开相关联的权利要求的范围内。
[0208]
本应用包括可以使用主题设备执行的方法。方法可以包括提供这样的适合的设备的动作。这样的提供可以由终端用户执行。换句话说,“提供”动作仅要求终端用户获得、访问、接近、定位、设定、激活、加电或其他动作来提供本方法中的必要设备。本文中记载的方法可以以记载事件的逻辑上可能的任何次序以及以事件的记载次序执行。
[0209]
上文已经阐述了本发明的示例方面连同关于材料选择和制造的细节。至于本发明的其他细节,这些可以结合上文提到的专利和公开以及通常由本领域的技术人员已知或者理解的来理解。就如通常或者逻辑上使用的附加动作而言,相对于本发明的基于方法的方面可以同样适用。
[0210]
另外,虽然已经参考可选地包含各种特征的数个示例描述了本发明,但是本发明
将不限于如相对于本发明的每个变型预期的描述或指示的发明。可以对所描述的本发明做出各种改变并且可以代替等效物(无论是记载在本文中还是出于某种简洁的缘故未包括),而不脱离本发明的真实精神和范围。另外,在提供值的范围的情况下,应当理解,该范围的上限与下限之间的每个中间值和该声称的范围中的任何其他声称的值或中间值涵盖在本发明中。
[0211]
而且,应预期到,可以独立地或者与本文所描述的特征中的任何一个或多个组合来阐述并且要求保护所描述的本发明变型的任何可选特征。对于单数项的引用包括存在多个相同项的可能性。更特别地,如在本文和与其相关联的权利要求中所使用的,除非特别另外说明,否则单数形式“一”、“一个”、“所述”和“该”包括复数指示物。换句话说,冠词的使用允许以上描述以及与本公开相关联的权利要求中的主题项中的“至少一个”。还应注意到,这样的权利要求可以被撰写为排除任何可选元素。如此,该语句旨在用作用于结合权利要求元素的记载来使用如“仅仅”、“仅”等这样的专用术语或者使用“否定”限制的先行基础。
[0212]
在不使用这样的专用术语的情况下,与本公开相关联的权利要求中的术语“包括“应当允许包括任何附加元素—而不管给定数目的元素是否被列举在这样的权利要求中,或者特征的添加可以被认为是转换这样的权利要求中阐述的元素的性质。除了如本文特别定义之外,本文中使用的所有技术和科学术语将被给定为尽可能宽的通常理解的意义,同时维持权利要求有效性。
[0213]
本发明的宽度将不限于所提供的示例和/或本说明书,而是相反仅通过与本公开相关联的权利要求语言的范围来限定。
[0214]
图10示出了示例眼镜设备的俯视图,该眼镜设备在一个或多个实施例中包括两个相对的镜撑臂和提供改进的稳定性和增强的抗扭转能力的扭转带。更具体地,示例性眼镜设备1000可包括框架前部1002,框架前部1002还可包括一个或多个空间1004以容纳例如光学元件、电子元件、光纤投影仪、其任何集成组件、或任何其他合适的组件或元件等。与传统的虚拟现实护目镜不同,示例眼镜设备1000可以类似于传统的一副眼镜,并且包括右撑臂1006、左撑臂1012、和可扩展和可折叠纽带组件1008,该纽带组件可操作地附接到右撑臂和左撑臂。示例眼镜设备1000还可包括用于接收电缆或电缆束1010的供应,该电缆或电缆束1010可以例如向示例眼镜设备1000提供电源和/或向其发送数据。
[0215]
图11a示出了在一个或多个实施例中可操作地耦合到光学系统或xr设备的电子器件的示例架构2500。光学系统或xr设备本身或耦合到或xr设备的外部设备(例如,腰带包)可以包括一个或多个印刷电路板部件,例如左(2502)和右(2504)印刷电路板组件(pcba)。如图所示,左pcba 2502包括大部分有源电子器件,而右pcba 604主要支撑显示器或投影仪元件。
[0216]
右pcba 2504可以包括多个投影仪驱动结构,这些投影仪驱动结构向图像生成部件提供图像信息和控制信号。例如,右pcba 2504可以承载第一投影仪驱动结构或左投影仪驱动结构2506和第二投影仪驱动结构或右投影仪驱动结构2508。第一投影仪驱动结构或左投影仪驱动结构2506连接第一投影仪光纤或左投影仪光纤2510和一组信号线(例如,压电驱动线)。第二投影仪驱动结构或右投影仪驱动结构2508连接第二投影仪光纤或右投影仪光纤2512和一组信号线(例如,压电驱动线)。第一投影仪驱动结构或左投影仪驱动结构2506被通信地耦合到第一图像投影仪或左图像投影仪,而第二投影仪驱动结构或右投影仪
驱动结构2508被通信地耦合到第二图像投影仪或右图像投影仪。
[0217]
在操作中,图像投影仪经由相应的光学部件(例如波导和/或补偿透镜)将虚拟内容渲染给用户的左眼和右眼(例如视网膜),以改变与虚拟图像相关联的光。
[0218]
图像投影仪例如可以包括左投影仪组件和右投影仪组件。投影仪组件可以使用多种不同的图像形成或生产技术,例如,光纤扫描投影仪、液晶显示器(lcd)、lcos(硅上液晶)显示器、数字光处理(dlp)显示器。在采用光纤扫描投影仪的情况下,图像可以沿着光纤传送,以经由光纤的尖端从光纤投影。此尖端可以被取向为馈入波导。光纤的尖端可以投射图像,该尖端可以被支撑以弯曲或震荡。多个压电致动器可以控制尖端的震荡(例如,频率、幅度)。投影仪驱动结构向各自的光纤提供图像,并提供控制信号以控制压电致动器,从而将图像投影到用户的眼睛。
[0219]
继续右pcba 2504,按钮板连接器2514可以提供与携带各种用户可访问按钮、按键、开关或其他输入设备的按钮板2516的通信和物理耦合。右pcba 2504可以包括右耳机或扬声器连接器2518,以将音频信号通信地耦合到头戴式部件的右耳机2520或扬声器。右pcba 2504还可以包括右麦克风连接器2522以通信地耦合来自头戴式部件的麦克风的音频信号。右pcba 2504还可以包括右遮挡驱动器连接器2524,以将遮挡信息通信地耦合到头戴式部件的右遮挡显示器2526。右pcba 2504还可以包括板对板连接器以经由左pcba 2502的板对板连接器2534提供与左pcba 2502的通信。
[0220]
右pcba 2504可以通信地耦合到一个或多个面朝外的或世界观察的右侧相机2528,该相机由身体或头部穿戴,并被可选地耦合到右侧相机视觉指示器(例如led),该指示器通过照射指示其他人图像何时被捕获。右pcba 2504可以被通信地耦合到一个或多个右眼相机2532,这些右眼相机由头戴式部件携带,被定位和取向为捕获右眼的图像,以允许跟踪、检测或监测右眼的取向和/或运动。可选地,右pcba 2504被通信地耦合到一个或多个右眼照射源2530(例如,led),如本文所解释的,右眼照射源2530以照射模式(例如,时间、空间)照射右眼,以促进跟踪、检测或监测右眼的取向和/或运动。
[0221]
左pcba 2502可以包括控制子系统,该控制子系统可以包括一个或多个控制器(例如,微控制器、微处理器、数字信号处理器、图形处理单元、中央处理单元、专用集成电路(asic)、现场可编程门阵列(fpga)2540和/或可编程逻辑单元(plu))。控制系统可以包括一个或多个存储可执行逻辑或指令和/或数据或信息的非暂时性计算机或处理器可读介质。非暂时性计算机或处理器可读介质可以采用多种形式,例如易失性和非易失性的形式,例如只读存储器(rom)、随机存取存储器(ram、dram、sd-ram)、闪存等。非暂时性计算机或处理器可读介质可以被形成为例如微处理器、fpga或asic的一个或多个寄存器。
[0222]
左pcba 2502可以包括左耳机或扬声器连接器2536,以将音频信号通信地耦合到头戴式部件的左耳机或扬声器2538。左pcba 2502可以包括与驱动耳机或扬声器通信耦合的音频信号放大器(例如,立体声放大器)2542。左pcba 2502还可以包括左麦克风连接器2544以通信地耦合来自头戴式部件的麦克风的音频信号。左pcba 2502还可以包括左遮挡驱动器连接器2546以将遮挡信息通信地耦合到头戴式部件的左遮挡显示器2548。
[0223]
左pcba 2502还可以包括一个或多个传感器或换能器,它们检测、测量、捕获或以其他方式感测关于周围环境和/或关于用户的信息。例如,加速度换能器2550(例如,三轴加速度计)可以检测三个轴上的加速度,从而检测运动。陀螺仪传感器2552可以检测取向和/
或磁或罗盘航向或取向。可以类似地使用其他传感器或换能器。
[0224]
左pcba 2502可以被通信地耦合到一个或多个面朝外的或世界观察左侧相机2524,该相机由身体或头部穿戴,并可选地耦合到左侧相机视觉指示器(例如led)2556,该指示器通过照射指示其他人图像被何时捕获。左pcba可以被通信地耦合到一个或多个左眼相机2558,这些左眼相机由头戴式部件携带,被定位和取向为捕获左眼的图像,以允许跟踪、检测或监测左眼的取向和/或运动。可选地,左pcba 2502可被通信地耦合到一个或多个左眼照射源(例如,led)2556,如本文所解释的,左眼照射源2556以照射模式(例如,时间、空间)照射左眼,以促进跟踪、检测或监测左眼的取向和/或运动。
[0225]
pcba 2502和2504经由一个或多个端口、连接器和/或路径与不同的计算部件(例如,腰带包)通信地耦合。例如,左pcba 2502可以包括一个或多个通信端口或连接器以提供与腰带包的通信(例如,双向通信)。一个或多个通信端口或连接器还可以从腰带包向左pcba 2502供电。左pcba 2502可以包括电源调节电路2580(例如,dc/dc电源转换器、输入滤波器),其被电耦合到通信端口或连接器,并可根据条件(例如,升压、降压、平滑电流、减少瞬变)操作。
[0226]
通信端口或连接器例如可以采用数据和电源连接器或收发机2582(例如,端口、端口)的形式。右pcba 2504可以包括端口或连接器以从腰带包接收电力。图像生成元件可以从便携式电源(例如,化学电池单元、一次或二次电池单元、超级电容器电池、燃料电池)接收电力,该便携式电源例如可以位于腰带包中。
[0227]
如图所示,左pcba 2502包括大部分有源电子器件,而右pcba 2504主要支持显示器或投影仪以及相关的压电驱动信号。跨光学系统或xr设备的身体或头戴式部件的前部、后部或顶部采用电和/或光纤连接。pcba 2502和2504被通信地(例如,电地、光学地)耦合到腰带包。左pcba 2502包括电源子系统和高速通信子系统。右pcba 2504处理光纤显示器压电驱动信号。在所示的实施例中,仅右pcba 2504需要光学连接到腰带包。在其他实施例中,右pcba和左pcba都可以被连接到腰带包。
[0228]
虽然图示为采用两个pcba 2502和2504,但身体或头戴式部件的电子器件可以采用其他架构。例如,一些实施方式可以使用更少或更多的pcba。作为另一示例,各种部件或子系统可以以不同于图11a所示的方式布置。例如,在一些替代实施例中,图11a示出为驻留在一个pcba上的一些部件可以位于另一pcba上,而不失一般性。
[0229]
如上面参考例如图1所述,在一些实施例中,本文描述的光学系统或xr设备可以向用户呈现虚拟内容,使得虚拟内容可以被感知为三维内容。在一些其他实施例中,光学系统或xr设备可以将四维或五维光场(或光场)中的虚拟内容呈现给用户。
[0230]
如图11b至11c所示,光场生成子系统(例如,分别为1100c和1102c)被优选地可操作以产生光场。例如,光学装置1160c或子系统可以产生或投射光以模拟由从真实的三维对象或场景反射的光产生的四维(4d)或五维(5d)光场。例如,在一些实施例中,诸如波导反射器阵列投影仪(wrap)装置1110c或多深度平面三维(3d)显示系统之类的光学装置可以在相应的径向焦距处生成或投影多个虚拟深度平面以模拟4d或5d光场。在这些实施例中,光学系统或xr设备用作通过将输入图像解释为表示光场的4d函数的二维(2d)小片来用作近眼光场发生器以及4d或5d光场的显示器。需要指出,图11b至11c示出了光学系统或xr设备,在一些实施例中,该光学系统或xr设备具有本文描述的光场生成子系统,或者在一些其他实
施例中,该光学系统具有将对应于多个深度平面的光束投射到用户眼睛的立体虚拟内容生成子系统。
[0231]
在一些实施例中,光学系统或xr设备利用基于图像的渲染向用户渲染虚拟内容的立体表示,基于图像的渲染通过一组预先获取或预先计算的影像生成虚拟内容的不同视图。通过使用例如环境地图、世界地图、拓扑地图(例如,具有点节点的地图,这些节点表示相应的位置和/或特征以及连接节点的边缘,并且表示连接的节点之间的一个或多个关系)中的一种或多种,可以将虚拟内容混合或放置在观看虚拟内容的用户所在的环境中。在这些实施例中,光学系统或xr设备针对基于图像的渲染使用一种或多种显示或渲染算法,这些基于图像的渲染需要相对适度(例如,与生成相同虚拟内容的光场相比)的计算资源,尤其是在虚拟内容的实时实施方式中。此外,与所生成的虚拟内容交互的成本与虚拟内容的复杂性无关。此外,用于生成虚拟内容的图像源可以是真实的(例如,物理对象的照片或一系列视频)或虚拟的(例如,来自一个或多个模型)。
[0232]
这些以基于图像的渲染和一个或多个地图为基础的实施例可以基于一个或多个固定视点(例如,从中获取一组图像以渲染基于图像的虚拟内容的视点)。这些实施例中的一些使用深度值(例如,由深度传感器获取或通过诸如三角测量等之类定位技术计算的深度信息)通过视图插值来放宽固定视点限制。在这些实施例中,光学系统或xr设备使用深度信息(例如,图像中的较小像素子集或图像中的每个像素的深度数据)来解释视图,以便基于用户的位置、取向和/或注视方向在例如环境地图(例如,具有地图中的特征、点等的详细几何和/或地理信息的几何地图)中相对于用户重新投影点。
[0233]
使用基于图像的渲染和一个或多个地图的一些其他实施例通过确定一对图像中的对应点和/或对应关系来放宽固定视点限制,这些对应点和/或对应关系用于至少部分地基于捕获该对图像的一个或多个图像传感器的位置,渲染虚拟内容。具有基于图像的渲染的两类实施例有效地生成和呈现可被观看用户感知为立体的虚拟内容,尽管可能存在例如不一定确定性地确定一个或多个图像对之间的对应关系的情况。
[0234]
因此,一些其他实施例利用光学系统或xr设备生成4d或5d光场,而不是采用上述基于图像的渲染。光场可以使用5d函数(例如,5d全光函数)生成,并包括三维空间中给定方向上的点处的辐射。因此,一个光场可能包括定义一组空间角度图像的5d函数。在空间中坐标为(x,y,z)的点a处的辐射r沿方向d(φ,θ)传播的这些实施例中,可以具有r(x,y,z,φ,θ)的形式,其中φ具有范围[0,π],包括两个端点,并且θ具有范围[0,2π],也包括两个端点。在这种形式中,φ表示与由x轴和y轴定义的水平面的夹角;θ表示连接3d空间中的点和坐标系原点的矢量与参考单位矢量(例如,沿x轴的单位矢量)之间的角度。
[0235]
在一些实施例中,辐射在介质(例如,诸如空气之类的透明介质)中是守恒的。由于辐射守恒,上述5d函数表现出一定量的冗余。在这些实施例中,当光学系统或xr设备在表面(例如,平面z=0)中创建5d函数时,上述表示光场的5d函数可以被简化为4d函数r(x,y,φ,θ),并因此有效地将具有三个空间维度(x,y,z)和两个角度维度(φ,θ)的5d函数简化为具有两个空间维度(x,y)和两个角度维度(φ,θ)的4d函数。将光场函数的维数从5d函数简化为4d函数不仅可以加快虚拟内容的光场生成,而且可以节省计算资源。
[0236]
在这些实施例中,本文所述的光学系统或xr设备通过使用上述4d函数(或者在更一般的光场技术应用中使用5d函数)计算虚拟内容的多个点的相应辐射生成虚拟内容的光
场并向用户呈现该虚拟内容的光场。所计算的点的辐射(或辐射通量)包括由该点发射、反射、透射或接收的光的数据,并且可以基于每投影面积计算。点的辐射还可以包括频率和/或波长信息,并且具有方向性,因为辐射表示,代表虚拟内容的一个点(例如,像素或像素组)或一部分的点可以被光学系统或xr设备的用户感知成什么。可以使用任何技术计算辐射,诸如通过点和方向参数化一条线(例如,从用户的眼睛到虚拟内容的一点的线),利用使用齐次坐标的正投影图像或使用固定视场的图像。例如,可以通过使用将虚拟内容的点和代表用户眼睛的点限制在相应的凸四边形内的光板技术以及通过虚拟内容的点(例如,虚拟内容的图像像素)和利用线性投影图(例如,3x3矩阵)表示用户眼睛的点之间的映射来确定点的辐射。
[0237]
例如,光学系统或xr设备或电子器件(例如,上述腰带包)可以通过渲染2d图像阵列来生成光板,其中,每个图像表示固定平面处的4d光板的小片,并且通过执行与用于生成立体图像对的投影基本相似的剪切透视投影,将虚拟相机的投影中心放置在对应于该虚拟内容的点的样本位置来形成。在一些实施例中,光板可以由正投影视图的2d阵列形成。
[0238]
为了经由光学系统或xr设备生成虚拟内容的光场表示并将其呈现给用户,光学系统或xr设备的透镜(例如,图1中的12a或12b)可以包括一个或多个平面或自由形式波导的堆叠,其中,波导可以定义一个或多个不同的焦平面,这些焦平面分别对应于一个或多个不同焦距。在一些实施例中,一个或多个平面或自由形式波导的堆叠因此限定位于对应焦距处的多个焦平面。图像的2d小片可以在特定焦距处的焦平面上渲染,因此可以在多个焦平面上渲染一组2d小片以表示虚拟内容,然后该虚拟内容可以被光学系统或xr设备的用户感知为立体的。
[0239]
在一些实施例中,波导可以包括:与平面光波导的第一面相关联的正交光瞳扩展(ope)元件,用于将耦入光束分成第一组正交子光束;以及与平面光波导的第二面相关联的第二正交光瞳扩展(ope)元件,用于将耦入光束分成第二组正交子光束。在一些实施例中,第一ope元件被设置在平面光波导的第一面上,第二ope元件被设置在平面光波导的第二面上。耦入元件可以被配置为将来自图像投影组件的准直光束光学耦合为耦入光束,以经由全内反射(tir)沿着第一光学路径在平面光波导内传播,该第一光学路径交替地与第一ope元件和第二ope元件相交,使得耦入光束的各个部分被偏转为相应的第一组正交子光束和第二组正交子光束,这些子束经由tir沿着第二平行的光学路径在平面光波导内传播。在这种情况下,第二平行的光学路径可以与第一光学路径正交。
[0240]
在一些实施例中,半反射界面被配置为将耦入光束分成至少两个耦入子束。在这种情况下,一个或多个doe包括正交光瞳扩展(ope)元件,其被配置为将至少两个耦入子束分别分成至少两组正交子光束,半反射界面还被配置为将至少两组正交子光束分成至少四组正交子光束,并且doe包括出瞳扩展(epe)元件,其被配置为将至少四组正交子光束分成一组耦出子光束。ope元件和epe元件可以被设置在光平面波导的面上。
[0241]
在一些实施例中,波导可以包括与平面光波导相关联的出瞳扩展(epe)元件,用于将正交子光束分成从平面光波导射出的耦出子光束阵列(例如,二维耦出子束阵列)。准直光束可以限定入瞳,耦出子束阵列可以限定比入瞳大的出瞳,例如,比入瞳大至少十倍,甚至比入瞳大至少一百倍。
[0242]
在一些实施例中,epe元件被设置在平面光波导的第一表面和第二表面之一上。第
一组正交子光束和第二组正交子光束可以与epe元件相交,使得第一组正交子光束和第二组正交子光束的部分被偏转为从平面光波导射出的耦出子光束阵列。在一些实施例中,epe元件被配置为在从平面光波导射出的耦出光束阵列上赋予凸波前轮廓。在这种情况下,凸波前轮廓可以在焦点处具有半径中心,以在给定焦平面处产生图像。在另一实施例中,ic元件、ope元件和epe元件中的每一个都是衍射的。
[0243]
虚拟图像生成系统还包括与平面光波导相关联的一个或多个衍射光学元件(doe),用于进一步将多个初级子光束分成从平面光波导的一面射出的耦出子光束阵列(例如,二维耦出子光束阵列)。准直光束可以限定入瞳,耦出子束阵列可以限定比入瞳大的出瞳,例如,比入瞳大至少十倍,甚至比入瞳大至少一百倍。在一些实施例中,选择主基板的第一厚度和次基板的第二厚度,使得耦出子光束中至少两个相邻子束的中心之间的间距等于或小于准直光束的宽度。在另一实施例中,选择第一厚度和第二厚度,使得耦出子光束中的大于一半的相邻子光束的边缘之间不存在间隙。
[0244]
在一些实施例中,半反射界面被配置为将耦入光束分成至少两个耦入子光束。在这种情况下,一个或多个doe包括正交光瞳扩展(ope)元件,其被配置为分别将至少两个耦入子光束分成至少两组正交子光束,半反射界面还被配置为将至少两组正交子光束分成至少四组正交子光束,并且一个或多个doe包括出瞳扩展(epe)元件,其被配置为将至少四组正交子光束分成一组耦出子光束。ope元件和epe元件可以被设置在光平面波导的面上。
[0245]
至少两个耦入子光束可以经由全内反射(tir)沿着第一光学路径在平面光波导内传播,该第一光学路径与ope元件相交,使得至少两个耦入子光束的各个部分被偏转为至少两组正交子光束,这些子光束经由tir沿着第二平行的光学路径在平面光波导内传播。第二平行的光学路径可以与第一光学路径正交。至少两组正交子光束可以与epe元件相交,使得至少两组正交子光束的各个部分作为耦出子束组被衍射出平面光波导的面。在一些实施例中,epe元件可以被配置为在从平面光波导射出的耦出子光束阵列上赋予凸波前轮廓。在这种情况下,凸波前轮廓可以在焦点处具有半径中心,以在给定焦平面处产生图像。
[0246]
根据本公开的第三方面,一种虚像生成系统包括平面光波导,该平面光波导包括多个基板,该基板包括具有第一厚度的主基板、分别具有至少一个第二厚度的至少一个次基板以及分别被设置于基板之间的至少一半反射界面。
[0247]
第一厚度是至少一个第二厚度中的每一个的至少两倍。在一些实施例中,第一厚度是第二厚度中的每一个的非倍数。在另一实施例中,一个或多个次基板包括多个次基板。在这种情况下,第二厚度可以彼此相等,或者两个或更多个次基板可以具有彼此不相等的第二厚度。第一厚度可以是至少一个第二厚度的非倍数。不相等的第二厚度中的至少两个可以不是彼此的倍数。
[0248]
在一些实施例中,一个或多个半反射界面中的每一个包括半反射涂层,其例如可以经由物理气相沉积(pvd)、离子辅助沉积(iad)和离子束溅射(ibs)中的一种被分别设置在基板之间。每个涂层例如可以包括金属(au、al、ag、ni-cr、cr等)、电介质(氧化物、氟化物和硫化物)和半导体(si、ge)中的一种或多种。在又一实施例中,多个基板中的相邻基板包括不同折射率的材料。
[0249]
虚拟图像生成系统还包括耦入(ic)元件,其被配置为光学耦合来自图像投影组件的准直光束,以在平面光波导内作为耦入光束传播。图像投影组件可以包括被配置为扫描
准直光束的扫描设备。一个或多个半反射界面被配置为将耦入光束分成在主基板内传播的多个主子光束。
[0250]
虚拟图像生成系统还包括与平面光波导相关联的一个或多个衍射光学元件(doe),以进一步将多个主子光束分成从平面光波导的面射出的耦出子光束阵列(例如,二维耦出子光束阵列)。准直光束可以限定入瞳,耦出子束阵列可以限定比入瞳大的出瞳,例如,比入瞳大至少十倍,甚至比入瞳大至少一百倍。在一些实施例中,选择主基板的第一厚度和一个或多个次基板的一个或多个第二厚度,使得耦出子光束中至少两个相邻子光束的中心之间的间距等于或小于准直光束的宽度。在另一实施例中,选择第一厚度和一个或多个第二厚度,使得耦出子光束中的大于一半的相邻子光束的边缘之间不存在间隙。
[0251]
在一些实施例中,一个或多个半反射界面被配置为将耦入光束分成至少两个耦入子光束。在这种情况下,一个或多个doe包括正交光瞳扩展(ope)元件,其被配置为分别将至少两个耦入子光束分成至少两组正交子光束,一个或多个半反射界面还被配置为将至少两组正交子光束分成至少四组正交子光束,并且一个或多个doe包括出瞳扩展(epe)元件,其被配置为将至少四组正交子光束分成一组耦出子光束。ope元件和epe元件可以被设置在光平面波导的面上。
[0252]
至少两个耦入子光束可以经由全内反射(tir)沿着第一光学路径在平面光波导内传播,该第一光学路径与ope元件相交,使得至少两个耦入子光束的各个部分被偏转为至少两组正交子光束,该两组正交子光束经由tir沿着第二平行的光学路径在平面光波导内传播。第二平行的光学路径可以与第一光学路径正交。至少两组正交子光束可以与epe元件相交,使得至少两组正交子光束的各个部分作为一组耦出子光束被衍射出平面光波导的面。在一些实施例中,epe元件可以被配置为在从平面光波导射出的耦出子光束阵列上赋予凸波前轮廓。在这种情况下,凸波前轮廓可以在焦点处具有半径中心,以在给定焦平面处产生图像。
[0253]
根据本公开的第四方面,一种虚拟图像生成系统包括预扩瞳(ppe)元件,其被配置为接收来自成像元件的准直光束并将准直光束分成一组初始耦出子光束。虚像生成系统还包括平面光波导;耦入(ic)元件,其被配置为将该组初始耦出子光束光学耦入平面光波导中作为一组耦入子光束;以及与平面光波导相关联的一个或多个衍射元件,其用于将该组耦入子光束分成从平面光波导的一个面射出的一组最终耦出子光束。一个或多个衍射元件可以包括与平面光波导相关联的正交光瞳扩展(ope)元件,用于进一步将该组耦入子光束分成一组正交子光束,以及包括与平面光波导相关联的出瞳扩展(epe)元件,用于将该组正交子光束分成该组最终耦出子光束。
[0254]
在一些实施例中,准直光束限定入瞳,该组初始耦出子光束限定比入瞳大的预扩瞳,并且该组最终耦出子光束限定比预扩瞳大的出瞳。在一个示例中,预扩瞳比入瞳至少大十倍,出瞳比预扩瞳至少大十倍。在一些实施例中,该组初始耦出子光束被光学耦入平面光波导中作为二维子光束阵列,并且该组最终耦出子光束从平面光波导的面射出作为二维子光束阵列。在另一实施例中,该组初始耦出子光束被光学耦入平面光波导中作为一维子光束阵列,并且该组初始耦出子光束从平面光波导的面射出作为二维子光束阵列。
[0255]
在一些实施例中,ppe元件包括微型平面光波导、与微型平面光波导相关联的用于将准直光束分成一组初始正交子光束的微型ope元件,以及与微型平面光波导相关联的用
于将该组初始正交子光束分成从微型平面光波导面射出的该组初始耦出子光束的微型epe元件。ppe还可以包括被配置为将准直光束光学耦合到平面光波导中的微型ic元件。
[0256]
在另一实施例中,ppe元件包括:衍射分束器(例如,1x n分束器或m x n分束器),其被配置为将准直光束分成一组初始发散子光束;以及透镜(例如,衍射透镜),其被配置为将该组初始发散子光束重新准直成该组初始耦出子光束。
[0257]
在又一实施例中,ppe元件包括棱镜(例如,实心棱镜或空腔棱镜),其被配置为将准直光束分成一组耦入子光束。棱镜可以包括半反射棱镜平面,其被配置为将准直光束分成该组耦入子光束。棱镜可以包括多个平行的棱镜平面,其被配置为将准直光束分成该组耦入子光束。在这种情况下,平行的棱镜平面可以包括半反射棱镜平面。多个平行的棱镜平面可以包括完全反射的棱镜平面,在这种情况下,准直光束的一部分可以被至少一个半反射棱镜沿第一方向反射,并且准直光束的一部分可以透射到完全反射的棱镜平面以沿第一方向反射。棱镜可以包括:第一组平行的棱镜平面,其被配置为将准直光束分成一组沿第一方向反射的初始正交子光束;以及第二组平行的棱镜平面,其被配置为将该组初始正交子光束分成该组耦入子光束,这些耦入子光束沿着不同于第一方向的第二方向反射。第一方向和第二方向可以彼此正交。
[0258]
在又一实施例中,ppe元件包括:第一平面光波导组件,其被配置为将准直光束分成二维耦出子光束阵列(例如,n x n子光束阵列),这些耦出子光束阵列从第一平面光波导的组件的面射出;以及第二平面光波导组件,其被配置为将二维耦出子光束阵列分成多个二维耦出子光束阵列,这些二维耦出子光束阵列从第二平面光波导组件的面射出作为该组耦入子光束。第一平面光波导组件和第二平面光波导组件可以分别具有不相等的厚度。
[0259]
二维耦出子光束阵列具有子光束间间距,并且多个二维耦出子光束阵列在空间上相互错开一阵列间间距,该阵列间间距不同于二维耦出子光束阵列的子光束间间距。在一些实施例中,多个二维耦出子光束阵列的阵列间间距与二维耦出子光束阵列的子光束间间距互为非倍数。多个二维耦出子光束阵列的阵列间间距可以大于二维耦出子光束阵列的子光束间间距。
[0260]
在一些实施例中,第一平面光波导组件包括:具有相对的第一面和第二面的第一平面光波导;第一耦入(ic)元件,其被配置为光耦合准直光束以经由全内反射(tir)沿着第一光学路径在第一平面光波导内传播;与第一平面光波导相关联的第一出瞳扩展器(epe)元件,其用于将准直光束分成从第一平面光波导的第二面射出的一维子光束阵列;具有相对的第一面和第二面的第二平面光波导;第二ic元件,其被配置为光学耦合一维子光束阵列,以经由tir沿着与第一光学路径垂直的相应的第二光学路径在第二平面光波导内传播;以及与第二平面光波导相关联的第二出瞳扩展器(epe)元件,其用于将一维子光束阵列分成从第二平面光波导的第二面射出的二维子光束阵列。在这种情况下,第二平面光波导的第一面可以被附接到第一平面光波导的第二面。第一平面光波导和第二平面光波导可以分别具有基本相等的厚度。
[0261]
第二平面光波导组件可以包括:具有相对的第一面和第二面的第三平面光波导;第三ic元件,其被配置为光耦合第一二维子光束阵列,以经由tir沿着相应的第三光学路径在第三平面光波导内传播;与第三平面光波导相关联的第三epe元件,其用于将二维子光束阵列分成从第三平面光波导的第二面射出的多个二维子光束阵列;具有相对的第一面和第
二面的第四平面光波导;第四ic元件,其被配置为光学耦合多个二维子光束阵列,以经由tir沿着与第三光学路径垂直的相应的第四光学路径在第四平面光波导内传播;以及与第四平面光波相关联的第四epe元件,其用于将多个二维子光束阵列分成多个二维子光束阵列,这些子光束阵列从第四平面光波导的第二面射出作为输入的一组子光束。在这种情况下,第四平面光波导的第一面可以被附接到第三平面光波导的第二面,第三平面光波导的第一面可以被附接到第二平面光波导的第二面。第一平面光波导和第二平面光波导可以分别具有基本相等的厚度,第三平面光波导和第四平面光波导可以分别具有基本相等的厚度。在这种情况下,第一平面光波导和第二平面光波导的基本相等的厚度可以不同于第三平面光波导和第四平面光波导的基本相等的厚度。第三平面光波导和第四平面光波导的相等厚度可以大于第一平面光波导和第二平面光波导的相等厚度。
[0262]
wrap装置1110c或多深度平面3d显示系统形式的光学装置1160c例如可以直接或间接地将图像投影到用户的每只眼睛中。当虚拟深度平面的数量和径向位置与根据径向距离的人类视觉系统的深度分辨率相当时,一组离散的投影深度平面模拟了由真实的连续三维对象或场景产生的心理物理效应。在一个或多个实施例中,系统1100c可以包括为每个ar用户定制的框架1170c。系统1100c的附加部件可以包括电子器件1130c(例如,图11a所示的电子器件中一些或全部),以将ar系统的各种电气和电子子部件相互连接。
[0263]
系统1100c还可以包括微型显示器1120c,其将与一个或多个虚拟图像相关联的光投射到波导棱镜1110c中。如图11b所示,从微型显示器1120c产生的光在波导1110c内行进,并且一些光到达用户的眼睛1190c。在一个或多个实施例中,系统1100c还可以包括一个或多个补偿透镜1180c以改变与虚拟图像相关联的光。图11c示出了与图11b相同的不件,但是示出了来自微型显示器1120c的光如何行进传播通过波导1110c到达用户的眼睛1190c。
[0264]
应当理解,光学装置1160c可以包括多个线性波导,每个线性波导具有嵌入、定位或形成在每个线性波导内的相应系列的解构弯曲球面反射器或反射镜。该系列的解构弯曲球面反射器或反射镜被设计为将无限远聚焦的光重新聚焦在特定的径向距离处。凸球面镜可用于产生输出球面波,以表示呈现为位于凸球面镜后面的限定距离处的虚拟点源。
[0265]
通过在线性或矩形波导中将一系列具有形状(例如,围绕两个轴的曲率半径)和取向的微型反射器连接在一起,可以投影对应于由在特定x、y、z坐标处虚拟点源产生的球面波前的3d图像。每个2d波导或层提供相对于其他波导独立的光学路径,并对波前进行整形以及聚焦入射光以投射对应于相应径向距离的虚拟深度平面。利用分别在不同焦深处提供焦平面的多个2d波导,观看投影的虚拟深度平面的用户可以体验3d效果。
[0266]
图14f示出了一些实施例中的具有3
×
3感受野的一(1)扩张卷积的简化示例。更特别地,图14f示出了扩张支持感受野的指数扩张而不损失分辨率或覆盖范围。图14f中的每个元素(圆形点)具有3
×
3的感受野,并且与每层相关联的参数的数量与一扩张卷积相同。
[0267]
图14g示出了一些实施例中的从图14f中的一扩张卷积产生的二(2)扩张卷积并且由于二扩张卷积而具有7x 7感受野的简化示例。图14h示出了一些实施例中的从图14g中的二扩张卷积产生的三(3)扩张卷积并且由于三扩张卷积而具有11x 11感受野的简化示例。图14i示出了一些实施例中的从图14h中的二扩张卷积产生的四(4)扩张卷积并且由于四扩张卷积而具有15x 15感受野的简化示例。如从图14f至14i可以看出,感受野是呈指数的平方增长尺寸。即,每个元素的相应域是(2
i+1-1)2,其中i=1,2,3,

,n,并且i指示扩张因子。
[0268]
图14h示出了一些实施例中的从图7c中的二扩张卷积产生并且具有11x 11感受野的三(3)扩张卷积的简化示例。图14i示出了一些实施例中的从图7d中的二扩张卷积产生并且具有15x 15感受野的四(4)扩张卷积的简化示例。图14j示出了一些实施例中的用于周边估计的示例管线。
[0269]
图14k示出了一些实施例中的用于周边估计的另一示例管线。
[0270]
图15a示出了一些实施例中的用于生成场景的平面图的高级流程图。更具体地,图15a示出了用于用两步过程生成估计平面图的高级流程图。在第一步骤期间,在一些实施例中,可以在1502a处从场景的输入图像确定房间分类和墙壁分类。输入图像可包括静态图像,诸如在一些实施例中由相机捕获的照片、在一些其他实施例中的图像序列、在其他实施例中的视频。输入图像可以被处理以确定点集或特征集,这些点集或特征集也可以被称为输入点云。可以执行分类以将标签(例如,第一墙壁标签、第二墙壁标签、第一房间标签、第二房间标签等)分配给每个点或特征。
[0271]
在第二步1504a期间,可以至少部分地基于房间分类和墙壁分类来估计或确定平面图。与现代平面图估计方法不同,在一些实施例中,在没有对房间数量、房间的任何特定配置、或房间的任何形状的约束的情况下,可以在1504a处确定平面图。下文将描述关于图15a所示的两个步骤中的每一个的更多细节。
[0272]
图15b示出了一些实施例中的关于用于生成场景的平面图的图15a所示的高级流程图的更多细节。更具体地,图15b示出了关于在图15a中的1502a处确定房间分类和墙壁分类的更多细节。在这些一个或多个实施例中,可以在1502b处识别输入图像。可以从场景扫描中获得图像(例如,具有具有一个或多个墙壁的一个或多个房间的内部环境)。例如,可以从场景的3d扫描获得输入图像。如上文所描述的,输入图像可包括静态图像,诸如在一些实施例中由相机捕获的照片、在一些其他实施例中的图像序列、在其他实施例中的视频。输入图像可以被处理以确定点集或特征集,这些点集或特征集也可以被称为输入点云。图像可以是二维(2d)平面图像(或图像序列)或更高维图像(或图像序列,诸如欧几里德空间中的3d图像、具有时间和空间维度的4d图像、4d光场表示、5d光场表示等)。
[0273]
可以在1504b处从输入图像确定输入点云。例如,可以将各种技术应用于输入图像以从输入图像中提取点或特征(例如,顶点、边缘等),并将这些提取的点或特征存储到输入点云中,该输入点云包括从输入图像获得的点的集合。在一些实施例中,可以在1506b处识别或确定输入点云的子集。在这些实施例中的一些实施例中,可以在1506b处识别或确定输入点云的统一(uniform)子集。可以在1508b处用至少一个数据集识别和可选地训练深度网络。在一些实施例中,可以使用不包括噪声的纯合成数据集来训练深度网络。
[0274]
在1510b处,可以针对输入点云(或可选地其子集)生成用于一个或多个房间的一个或多个房间集标签。在一些实施例中,可以用深度网络针对相应(一个或多个)房间和(一个或多个)墙壁同时生成房间集标签和墙壁集标签。在一些实施例中,可以通过使用基于pointnet++的聚类模块为输入点云(或其子集)生成集标签,下文参考图15d更详细地描述该模块。另外或在替代方案中,可以通过识别集的现有数量,有组织地确定集的总数,通过在监督或半监督设置或无监督设置中使用一个或多个深度神经网络,和/或通过在一些其他实施例中使用投票机制进行聚类来确定集标签。
[0275]
图15c示出了一些实施例中的关于用于生成场景的平面图的图15a所示的高级流
程图的更多细节。更具体地,图15c示出了关于在图15a的1504a处确定平面图的更多细节。在这些实施例中,对于在输入图像中完全或部分捕获的房间(并因此在输入点云中表示),可以在1502c处生成深度周边类型的形状(例如,用深度周边模块生成的房间周边)。这些实施例中的一些实施例为每个房间生成深度周边类型的形状,其中深度周边类型的形状将房间表示为多边形并且可以在本文中称为估计的房间周边。至少通过将估计的房间周边与根据相同输入图像或一个或多个单独输入图像为场景确定的一个或多个其他估计的房间周边进行聚合或集成,可以在1504c处生成平面图。下面参考图15e描述了关于在1502c处生成深度周边类型的形状的更多细节。
[0276]
图15d示出了一些实施例中的关于用于生成场景的平面图的图15b所示的流程图的更多细节。更具体地,图15d示出了关于在图15b的1510b处生成房间集标签的更多细节。在这些实施例中,可以基于至少部分地基于底层空间的距离度量将点集在1502d处分区为重叠的局部区域。在一些实施例中,为了生成点集的重叠分区,分区可以定义为底层欧几里德空间中的邻域球,其参数包括质心位置和尺度。为了均匀地覆盖整个集合,在这些实施例中的一些实施例中,通过最远点采样(fps)算法从输入点集中选择质心。在一些实施例中,点的分区在分区之间产生公共结构,使得可以共享局部特征学习器的权重,如在卷积设置中。
[0277]
至少通过在点集的经嵌套的分区上递归地执行语义特征提取,可以在1504d处提取捕获几何结构的一个或多个局部特征。基于pointnet的模块可用于提取局部特征或点。
[0278]
视觉社区(community)在短时间周期内迅速改进了对象检测和语义分割结果。在大部分中,这些进步是由强大的基线系统驱动的,诸如分别用于对象检测和语义分割的fast/faster r-cnn和完全卷积网络(fcn)框架。这些方法在概念上是直观的并且提供灵活性和稳健性,以及快速的训练和推理时间。
[0279]
这些技术开发了用于实例分割的框架。实例分割是具有挑战性的,因为它需要正确检测图像中的所有对象,同时还精确地分割每个实例。因此,这些技术组合了来自对象检测和语义分割的经典计算机视觉任务的元素,在对象检测中,目标是使用边界框对单独对象进行分类并对每个对象进行定位,在语义分割中,目标是将每个像素分类为固定的类别集,而不区分对象实例。
[0280]
基于语义分割的场景解析是计算机视觉中的基本主题。目标是向图像中的每个像素分配类别标签。场景解析提供了对场景的完整理解。它预测用于每个元素的标签、位置以及形状。该主题对于自动驾驶、机器人传感的潜在应用具有广泛的兴趣,仅举几例。场景解析的难度与场景和标签多样性紧密相关。先驱场景解析任务是在lmo数据集上为2688个图像分类33个场景。最近的pascal voc语义分割和pascal上下文数据集包括具有相似上下文的更多标签,诸如椅子和沙发、马和牛等。新的ade20k数据集是最具挑战性的数据集,具有大量且无限制的开放词汇表和更多场景类。
[0281]
语义过滤或语义分割在计算机视觉中很重要,诸如2d/3d感知、场景分析和场景理解等,并且在诸如xr(扩展现实)、ar(增强现实)、mr(混合现实)、vr(虚拟现实)、lidar(光检测和测距)、机器人等技术领域中具有广泛的应用。语义分割或过滤接收用于计算机视觉的输入图像,诸如环境感知。各种方法已经证明了使用诸如2d卷积神经网络等技术对2d图像的成功语义分割。
[0282]
随着诸如microsoft kinect、intel realsense和google tango的商品rgb-d传感器的广泛可用性,室内空间的3d重建获得了动力。3d重建可以帮助创建用于图形应用的内容,并且虚拟和增强现实应用依赖于从周围环境中获得高质量的3d模型。尽管在跟踪准确度和用于扫描大空间的有效数据结构方面取得了重大进展,但是产生的重建3d模型质量仍然不能令人满意。质量的一个基本限制在于,通常,人们仅可获得给定场景的部分和不完整的重建,因为扫描遭受遮挡和距离传感器的物理限制。在实践中,即使利用人类专家的仔细扫描,扫描房间而在重建中没有孔实际上是不可能的。孔在美学上不令人愉快并且可能导致下游处理中的严重问题,诸如3d打印或场景编辑,因为不清楚扫描的某些区域是否表示自由空间或占用空间。传统方法,诸如拉普拉斯孔填充或泊松表面重建可以填充小孔。然而,完成高级场景几何形状,诸如缺少墙壁或椅子腿,更具挑战性。解决该问题的一个有希望的方向是使用机器学习来完成。最近,用于3d完成的深度学习方法和涉及单个对象或深度帧的其他生成任务已经示出有希望的结果。然而,3d中的生成建模和结构化输出预测仍然具有挑战性。当用体积网格表示时,数据大小随着空间大小的增加而立方体增长,这严重限制了分辨率。室内场景特别具有挑战性,因为它们不仅很大,而且还可以以不同空间范围不规则地成形。
[0283]
最先进的场景解析框架主要基于全卷积网络(fcn)。基于深度卷积神经网络(cnn)的方法提高了动态对象理解,但考虑到不同的场景和无限制的词汇,仍然面临挑战。这些错误归因于对象的相似外观。但是,在将场景描述为河流附近的船库之前查看关于上下文的图像时,应产生正确的预测。为了准确的场景感知,知识图依赖于场景上下文的先验信息。用于当前基于fcn的模型的主要问题之一是缺乏利用全局场景类别线索的合适策略。对于典型的复杂场景理解,先前为了获得全局图像级特征,空间金字塔池化被广泛使用,其中空间统计为总体场景解释提供了良好的描述符。空间金字塔池化网络进一步增强了能力。
[0284]
随着3d或甚至更高维(例如,4d时空或时空图像,或甚至更高维图像)的出现,这些技术遭受较差的性能并且通常不能用更高维度的输入图像或图像序列(例如,3d视频)很好地缩放。
[0285]
在其中输入图像或图像序列(例如视频)包括3d或更高维数据(例如3d视频,4d时空图像序列等)的一些实施例中,一些实施例利用诸如基于minkowski net的算法、基于scancomplete的算法等的算法用于语义过滤或分割以执行场景分析和理解。在其中输入图像或图像序列(例如视频)包括2d数据的一些其他实施例中,一些实施例利用诸如基于掩模rcnn的算法、基于pspnet的算法等的算法用于语义过滤或分割以执行场景分析和理解。
[0286]
例如,随着lidar扫描器和深度相机变得更实惠并广泛用于机器人应用,3d视频成为用于机器人系统或ar/vr应用的现成可用源。然而,将3d视频用于高级感知任务存在许多技术挑战。第一,3d数据需要异构表示和处理,这些要么疏远用户,要么难以集成到更大的系统中。第二,3d卷积神经网络的性能更差或与2d卷积神经网络相当。第三,存在用于快速大尺度3d数据的有限数量的开源库。
[0287]
为了解决高维感知中的大部分(如果不是全部)挑战,一些实施例针对该问题采用稀疏张量并提出广义稀疏卷积。广义稀疏卷积包含所有离散卷积作为其子类,并且对于高维感知至关重要。一些实施例在第4节和开源库中实现广义稀疏卷积和所有标准神经网络功能。
[0288]
一些实施例出于若干原因采用稀疏表示。当前,存在用于3d感知的各种并发工作:密集3d卷积、pointnet变体、连续卷积、表面卷积、和八叉树卷积。在这些表示中,一些实施例由于其对高维空间的表达性和普遍性而选择稀疏张量。而且,它允许传统神经网络库内的均匀数据表示,因为它们中的大多数支持稀疏张量。第二,稀疏卷积非常类似于标准卷积(第3节),它被证明在2d感知以及3d重建、特征学习和语义分割方面是成功的。第三,稀疏卷积是高效且快速的。它仅计算用于预定义坐标的输出并且将它们保存到紧凑稀疏张量中(第3节)。它保存了存储器和计算,特别是对于大部分空间为空的3d扫描或高维数据。因此,一些实施例采用用于该问题的稀疏表示并创建第一大尺度3d/4d网络或minkowski网络。
[0289]
然而,即使具有有效的表示,仅仅将3d卷积缩放到高维空间由于维度的原因而导致显著的计算开销和存储器消耗。具有内核大小5的2d卷积需要52=25权重,其在3d立方体中指数增加到53=125,并且在4d超正方体(tesseract)中增加到625。然而,该指数增加不一定导致更好的性能并且显著减慢网络速度。为了克服该挑战,一些实施例提出了使用广义稀疏卷积的具有非(超)立方体形状的自定义内核。最后,来自4d时空广义稀疏卷积的预测在整个空间和时间中不一定是一致的。为了加强一致性,一些实施例采用在具有固定成对一致性函数的7d三边空间(空间-时间-颜)中定义的高维条件随机场。一些实施例使用变分推理将条件随机场转换为可微递归层,其可以作为7d广义稀疏卷积实现并且端到端地训练4d和7d网络。
[0290]
神经网络没有3d卷积。最近,没有3d卷积的神经网络用于3d感知的使用大大增加。由于3d扫描由薄的可观看表面组成,因此建议在表面上使用2d卷积用于语义分割。另一个方向是基于pointnet的方法。pointnet使用一组输入坐标作为用于多层感知的特征。然而,该方法处理有限数量的点,并且因此用于从输入中裁剪出部分的滑动窗口用于大空间,使感受野大小相当有限。一些方法试图用多点网上的递归网络来解决这些缺点,并且提出了一种针对pointnet下层的三维连续卷积的变型,并且获得了显著的性能提升。
[0291]
稀疏张量和卷积:在传统的语言中,文本或图像数据、特征被密集提取。此处键入方程。因此,这些数据的最常见的表示是向量、矩阵和张量。然而,对于三维扫描或甚至更高维空间,由于稀疏性,这样的密集表示是低效的。替代地,一些实施例仅可将空间的非空部分保存为其坐标和相关联的特征。该表示是稀疏矩阵的n维扩展;因此,它被称为稀疏张量。存在许多方式来紧凑地保存这样的稀疏张量,但是一些实施例遵循coo格式,因为它对于此处类型方程是有效的。邻域查询。
[0292][0293]
广义稀疏卷积:一些实施例概括了用于通用输入和输出坐标以及用于任意内核形状的稀疏卷积。广义稀疏卷积不仅包含所有稀疏卷积,而且包含传统密集卷积。让是d维空间中u∈rd(d维坐标)处的n
in
维输入特征向量,以及卷积核权重是一些实施例将权重分解为空间权重,其中对于{i}=kd,大小n
out
xb
in
的kd矩阵作为wi。那么,d维中传统密集卷积为:
[0294]
其中u∈{zd},
ꢀꢀꢀ
等式15d-(2)
[0295]
其中vd(k)是以原点为中心的d维超立方体中的偏移列表,例如v1(3)={-1,0,1}。等式15d-3中的广义稀疏卷积将等式15d-2松弛如下:
[0296]
其中u∈zd,
ꢀꢀꢀꢀ
等式15d-(3)
[0297]
其中,nd是定义核形状的一组偏移,并且nd(u,c
in
)={i|u+i∈c
in
,i∈nd作为存在于c
in
中的当前中心u的一组偏移。c
in
和c
out
是稀疏张量的预定义输入和输出坐标。首先,注意,输入坐标和输出坐标不一定相同。其次,一些实施例用nd任意定义卷积核的形状。该一般化包含许多特殊情况,诸如扩张卷积和典型的超立方核。另一个感兴趣的特殊情况是当一些实施例设置c
out
=c
in
和nd=vd(k)时的“稀疏子流形卷积”。如果设置c
in
=c
out
=zd和nd=vd(k),则广义稀疏卷积成为传统密集卷积(等式15d-2)。如果将c
in
和c
out
定义为自然数的倍数并且nd=vd(k),则可以获得步幅密集卷积。
[0298]
一些实施例利用用于上文所描述的稀疏张量和广义稀疏卷积的自动微分库和minkowski引擎。稀疏卷积神经网络的第一步是生成稀疏张量的数据处理,其在训练语义分割时将输入转换为唯一坐标、相关联特征和可选标签。在算法1中,一些实施例列出了用于该过程的gpu功能。当给出密集标签时,重要的是这些实施例忽略具有多于一个独特标签的体素。这可以通过用ignore_label标记这些体素来完成。首先,这些实施例将所有坐标转换为哈希键(hash key)并查所有唯一的哈希键标签对以消除冲突。注意,sortbykey、uniquebykey和reducebykey全部是标准推力库函数。减函数f((l
x
;i
x
);(ly;iy))=》(ignore_label;ix)获取标签键对并返回ignore_label,因为同一键中的至少两个标签键对意味着存在标签冲突。除了所有缩减和排序串行处理之外,cpu版本类似地工作。
[0299]
·
[算法1]输入:坐标c
p
∈r
nxd
,特征
[0300]
·
目标标签量化步长v
l
[0301]
·c′
p

floor(c
p
/v
l
)
[0302]
·k←
hash(c

p
),i

sequence(n)
[0303]
·
((i

,l

),k

)

sortbykey(i,l),key=k)
[0304]
·
(i

,(k

,l

))

uniquebykey(i

,key=(k

,l))
[0305]
·
(l
″′
,i
″′
)

reducebykey(l

,i

),key=k

,fn=f)
[0306]
·
return c

p
[i
″′
,:],f
p
[i
″′
,:],l
″′
[0307]
管线中的下一步是在给定输入坐标c
in
(等式15d-3)中的情况下生成输出坐标c
out
。当在传统神经网络中使用时,该过程仅需要卷积步幅大小、输入坐标和输入稀疏张量的步幅大小(坐标之间的最小距离)。该算法在补充材料中呈现。一些实施例动态地创建该输出坐标,允许用于广义稀疏卷积的任意输出坐标c
out
。接下来,为了将输入与内核卷积,一些实施例需要映射以识别哪些输入影响哪些输出。在传统密集卷积中不需要这种映射,因为它可以容易推断。然而,对于坐标任意分散的稀疏卷积,一些实施例指定映射。该映射可以称为核映射,并且定义为输入索引和输出索引的列表对,m={(ii,oi)}i其中i∈nd。最后,给定输入和输出坐标、核映射和核权重wi,一些实施例可以通过迭代偏移中的每一个来计算广义稀疏卷积i∈nd(算法2),其中i[n]和o[n]分别指示索引i和o列表的第n个元素,并且fin和fon也分别是第n个输入和输出特征向量。除了输入和输出坐标的作用相反之外,颠倒顺序(transpose)的广义稀疏卷积(反卷积)类似地工作。
[0308]
·
[算法2]核权重w,输入特征fi,输出特征占位符f0,卷积映射m;
[0309]

f0←
0//setto0
[0310]
■ꢀ
for all wi,(ii,oi)∈(w,m)do
[0311]

[0312]

[0313]

[0314]

end for
[0315]
与密集张量不同,在稀疏张量上,输入特征的数量按输出变化。因此,这为最大/平均池化创建了重大的实现。分别让i和o是联接的所有{ii}ii和{oi}i的向量,其中i∈nd。一些实施例首先到每个输出坐标的输入数量和那些输入的索引。算法3减少了映射到相同输出坐标的输入特征。序列(n)生成从0到n-1的整数序列,以及减函数f((k1,v1),(k2,v2))=min(v1,v2),其在给定两个键值对的情况下返回最小值。maxpoolkernel是使用s'减少指定通道的所有特征的自定义cuda内核,其包含映射到相同输出的i的第一个索引,以及对应的输出索引o”。
[0316]
·
[算法3]输入:输入特征f,输出映射o
[0317]

(i

,o

)

sortbykey(i,key=o)
[0318]
■s←
sequence(length(o

))
[0319]
■s′
,o
″←
reducebykey(s,key=o

,fn=f)
[0320]

returnmaxpoollernel)s

,i

,o

,f)
[0321]
平均池化层和全局池化层计算用于平均池化的每个输出坐标或用于全局池化的一个输出坐标的输入特征的平均。这可以以多种方式实现:一些实施例使用稀疏矩阵乘法,因为它可以在硬件上或使用更快的稀疏blas库来优化。特别地,一些实施例使用用于稀疏矩阵-矩阵(cusparse_csrmm)和矩阵-向量乘法(cusparse_csrmv)的cusparse库来实现这些层。类似于最大池化算法,m是(i,o)输入到输出内核映射。对于全局池化,一些实施例创建将所有输入映射到原点并使用相同算法4的内核映射。转置池化(非池化)类似地工作。在算法4的最后一行上,一些实施例通过映射到每个输出的输入数量来划分池化特征。然而,该过程可能移除密度信息。因此,一些实施例提出了不划分输入数量并将其命名为总和池化的变型。
[0322]
对于不需要空间信息(坐标)的函数,诸如relu,一些实施例可以将函数直接应用于特征f。而且,对于批量归一化,由于f的每一行表示特征,因此一些实施例可以直接在f上使用1d批量归一化函数。
[0323]
·
[算法4]:输入:映射m=(i,o),特征f,一个向量1;
[0324]
·
sm=coo2csr(row=o,col=i,val=1)
[0325]
·f′
=cusparse_csrmm(sm,f)
[0326]
·
n=cusparse_csrmv(sm,1)
[0327]
·
returnf

/n
[0328]
一些实施例引入用于时空感知的四维时空卷积神经网络。一些实施例将时间维度视为额外的空间维度并创建具有四维卷积的网络。然而,存在由高维卷积产生的独特问题。
首先,网络中的参数数量和计算成本随着一些实施例增加尺寸呈指数增加。然而,一些实施例实验证明这些增加不一定导致更好的性能。其次,网络没有动力使预测在整个空间和时间上与单独的传统交叉熵损失保持一致。为了解决第一个问题,一些实施例利用广义稀疏卷积的特殊性质,并提出了不仅节省存储器和计算而且执行更好的非传统的内核形状。其次,为了加强时空一致性,一些实施例采用过滤网络预测的高维条件随机场(7d空间-时间-颜空间)。一些实施例使用变化推理来训练基础网络和条件随机场端到端。
[0329]
超正方体内核和混合内核:3d数据的表面区域对于时间线性增加,并且对于空间分辨率二次增加。然而,当一些实施例使用传统的4d超立方体或超正方体用于卷积内核时,参数数量的指数增加导致过度参数化、过度拟合、以及高计算成本和存储器消耗。相反,一些实施例采用混合内核(非超立方、非permutohedral)来节省计算。一些实施例使用广义稀疏卷积的任意内核偏移n d来实现混合内核。混合内核是交叉形(cross-shape)内核与传统立方内核的组合。对于空间维度,一些实施例使用立方内核来准确地捕获空间几何形状。对于时间维度,一些实施例使用交叉形内核来跨时间连接空间中的相同点。一些实施例实验证明,混合内核在速度和准确度方面优于超立方体内核。
[0330]
残差minkowski网络:广义稀疏卷积允许我们任意定义步幅和内核形状。因此,一些实施例可以仅利用广义稀疏卷积创建高维网络,这使实现更容易和通用。另外,它允许将2d的最新结构创新直接采用到高维网络。为了演示,一些实施例在图12a上创建残差网络的高维版本。在图12a中,示例架构包括左手边的resnet18和右手边的minkowskinet18。应注意,在本示例架构中,“x”表示超立方内核,并且“+”表示超交叉内核。对于第一层,取代7
×
7 2d卷积,一些实施例使用5
×5×5×
1广义稀疏卷积。然而,对于网络的剩余部分,一些实施例遵循原始网络架构。对于u形变型,一些实施例添加了多步幅稀疏卷积和步幅稀疏转置卷积,其中跳跃连接连接基本残差网络上具有相同步幅大小的层(参见图12b)。一些实施例使用相同架构的多个变型用于语义分割实验。图12b示出了minkowskiunet32的示例架构。在图12b中,“x”表示超立方内核,并且“+”表示超交叉内核。
[0331]
三边固定(trilateral stationary)crf:对于语义分割,对每个像素或体素应用交叉熵损失。然而,损失并不强制保持一致性,因为它没有成对项。为了使这样的一致性更明确,一些实施例采用高维条件随机场(crf),类似于图像语义分割中使用的高维条件随机场(crf)。在图像分割中,由2d空间和3d颜组成的双边空间用于crf。对于3d视频,一些实施例使用由3d空间、1d时间和3d彩空间组成的三边空间。颜空间在具有空间相邻(例如,在边界上)的不同颜的点之间创建“空间”间隙。因此,它防止信息“漏泄”到不同的区域。与具有高斯边缘势(gaussian edge potential)和密集连接的传统crf不同,一些实施例不将兼容性函数限制为高斯。相反,一些实施例放宽约束并且仅应用平稳性条件。为了到分布的全局最优,一些实施例使用变分推理并将一系列固定点更新方程转换为类似于的递归神经网络。一些实施例使用7d空间中的广义稀疏卷积来实现递归并且联合训练产生一元势的基础网络和crf端到端。
[0332]
让7d(空间-时间-度)中的crf节点是xi和一元势是和成对势作为其中xj是xj,n7(xi)的邻居。条件随机场被定义为:
[0333]
[0334]
其中z是分区函数;x是所有节点的集合;以及φ
p
必须满足固定条件其中τu,τv∈rd。注意,一些实施例使用相机外部来在世界坐标系中定义节点xi的空间坐标。这允许静止点在整个时间内具有相同的坐标。
[0335]
优化arg max
x
p(x)是难处理的。相反,一些实施例使用变分推理来最小化最佳p(x)与近似分布q(x)之间的发散。具体地,一些实施例使用平均场近似q=πiqi(xi),作为闭合形式解决方案存在。根据定理11.9,q是局部最大值,当且仅当:
[0336]
·
[0337]
·
x-i
和q-i
指示除了第i个节点或变量之外的所有节点或变量。最终的固定点方程是等式15d-4。推导在补充材料中。
[0338]
·
[0339]
用7d稀疏卷积进行学习:等式15d-4中的加权和等于7d空间中的广义稀疏卷积,因为是固定的,并且xi,xj之间的每个边缘可以使用n7进行编码。因此,这些实施例将固定点更新等式等式15d-4转换为算法5中的算法。
[0340]
·
[算法5ts-crf的变分推理]输入:逻辑得分,对于所有xi;相关联的坐标ci、颜fi、时间ti。
[0341][0342][0343]
最后,一些实施例使用φu作为4d minkowski网络的分对数(logit)预测,并且使用以下等式15d-5使用一个4d和一个7d minkowski网络端到端训练和
[0344][0345]
以上描述用于利用用于语义分割和过滤的基于minkowski net的算法。以下描述是利用用于语义分割或过滤的基于scancomplete的算法。
[0346]
一些实施例提出了一种新颖的方法scancomplete,其在大的3d环境上操作而没有对空间范围的限制。一些实施例利用可以在较小的子体积上训练但在测试时应用于任意大小的场景环境的完全卷积神经网络。该能力允许非常大的室内场景的3d扫描的有效处理:一些实施例示出具有高达1480
×
1230
×
64体素(≈70
×
60
×
3m)的边界的示例。一些实施例具体地聚焦于场景补全和语义推理的任务:对于给定部分输入扫描,一些实施例推断缺失的几何形状并在每个体素基础上预测语义标签。为了获得高质量输出,模型必须使用足够高的分辨率来预测细微尺度细节。然而,它还必须考虑足够大的上下文以识别大型结构并保持全局一致性。为了调和这些竞争性问题,一些实施例采用了粗略到精细策略,其中模型预测输出的多分辨率分层。第一分层级别以低分辨率但大空间上下文预测场景几何形状和语义。以下级别使用较小的空间上下文但较高的分辨率,并且将前一分层级别的输出当作输入以便利用全局上下文。在一些实施例中,已经以前所未有的空间范围观看到场景补全
和语义标记。另外,一些实施例证明在合成数据上训练模型并将其传送到补全从商品扫描设备获取的真实rgb-d扫描是可能的。结果优于现有的完整方法并获得了用于语义体素标签的显著更高的准确度。总之,一些实施例至少提供以下技术优点:用于处理具有任意空间范围的3d场景的3d全卷积补全网络;捕获局部细节和全局结构的粗略到精细补全策略;以及两者优于现有方法显著裕度的场景补全和语音标记。
[0347]
scancomplete方法将由存储在体积网格中的截断带符号距离场(tsdf)表示的部分3d扫描作为输入。tsdf是根据体积融合方法从深度帧生成的,该方法已由现代rgb-d扫描方法广泛采用。一些实施例将该部分tsdf馈送到新的体积神经网络中,其输出截断的无符号距离场(tdf)。在训练时间处,一些实施例向网络提供目标tdf,该tdf由完整的真实情况网格生成。训练网络以输出与该目标完整tdf尽可能相似的tdf。网络使用具有三维过滤组(bank)的全卷积架构。其关键特性是其对输入空间范围的不变性,这对于补全其大小可以显著变化的大型3d场景特别重要。也就是说,一些实施例可以使用从训练场景采样的随机空间裁剪(crop)来训练网络,并且然后在测试时间处在不同的空间范围上进行测试。体积网格的存储器要求随着空间范围呈立方增长,这限制了可管理的分辨率。小体素大小捕获局部细节但缺乏空间上下文;大体素大小提供了大的空间上下文但缺乏局部细节。为了在保持高分辨率时获得两全其美,一些实施例使用粗略到精细分层策略。网络首先以低分辨率预测输出,以便利用来自输入的更多全局信息。后续分层级别以更高的分辨率和更小的上下文大小操作。除了当前级别不完整的tsdf之外,它们还以前一级别的输出为条件。一些实施例使用三个分层级别,在最粗糙的级别处具有几米(~6m3)的大的上下文,直到~5cm3的精细尺度体素分辨率。该网络使用自回归架构。一些实施例将给定分层级别的体积空间划分为八个体素组的集合,使得来自相同组的体素彼此不相邻。该网络预测第一组中的全部体素,然后预测第二组中的全部体素,等等。用于每个组的预测以在其之前的组的预测为条件。因此,一些实施例使用八个单独的网络,一个用于每个体素组。一些实施例还探索用于训练损失函数的多个选项,其惩罚网络输出与真实情况目标tdf之间的差异。作为一种选择,一些实施例使用确定性的“1-距离”,其迫使网络集中于单一模式。当部分扫描包含足够的上下文以允许对缺失几何形状的单个解释时,该设置是理想的。作为另一种选择,一些实施例使用制定为分类问题的概率模型,例如,tdf值被离散化为箱(bin)并且它们的概率基于tdf值的幅度来加权。该设置可能更好地适合于非常稀疏的输入,因为预测可以是多模态的。除了预测完整的几何形状之外,该模型还在每个体素基础上联合预测语义标签。语义标签预测还利用完全卷积自回归架构以及粗略到精细预测策略以获得场景的准确语义分割。在结果中,一些实施例演示了补全如何极大地帮助语义推理。
[0348]
为了训练scancomplete cnn架构,一些实施例准备部分tsdf扫描的训练及其完整的tdf对应物对。一些实施例使用来自从先前工作分离的训练测试的5359个训练场景和155个测试场景根据suncg训练示例。由于网络仅需要深度输入,因此一些实施例通过生成模拟真实世界扫描路径的扫描轨迹来虚拟扫描深度数据。为了这样做,这些实施例从scannet数据集提取轨迹统计,并且计算地面上相机高度的均值和方差以及视线与世界向上向量之间的相机角度。对于suncg场景中的每个房间,一些实施例然后从该分布中采样以选择相机高度和角度。
[0349]
在房间内的每个1.5m3区域内,一些实施例选择一个相机来添加到训练扫描轨迹。
一些实施例选择相机c,其产生的深度图像d(c)与来自scannet的深度图像最相似。为了量化该相似性,一些实施例首先计算用于scannet中的所有相机的深度值h(d(c))的直方图,并且然后计算平均直方图然后,一些实施例然后计算针对scannet中的所有相机的直方图与针对scannet中的所有相机c的(例如,emd(h(d(c)),)之间的地球移动器(earth mover)的距离。一些实施例采用这些距离值的平均μ
emd
和方差这为我们给定了真实扫描轨迹中预期的平均深度直方图距离上的高斯分布。对于每个候选相机c,一些实施例计算其在该分布下的概率,例如,n(emd(h(d(c)),),μ
emd

emd
)。一些实施例采用该项与覆盖场景对象(例如,非地板、天花板、或墙壁)的d(c)中的像素的百分比的线性组合,这反映了假设人们倾向于将扫描集中在感兴趣对象上而不是将深度传感器直接指向地面或墙壁。在该组合目标下的最高得分相机c*被添加到训练扫描轨迹中。
[0350]
对于渲染视图,一些实施例以米为单位存储每像素深度。然后,这些实施例将数据体积融合到密集规则网格中,其中每个体素存储截断的带符号距离值。一些实施例将截断设置为3
×
体素大小,并且这些实施例将tsdf值存储在体素距离度量中。这些实施例针对三个分层级别独立地重复该过程,具有4.7cm 3、9.4cf’m 3和18.8cm 3的体素大小。一些实施例使用来自suncg的补全网格生成用于训练的目标tdf。为了这样做,这些实施例使用了batty的级别集生成工具包。对于每个体素,这些实施例存储截断的距离值(无符号;3
×
体素大小的截断),以及最接近体素中心的对象的语义标签。与tsdf一样,tdf值存储在体素距离度量中,并且这些实施例针对三个分层级别中的每一个重复该真实情况数据生成。
[0351]
为了训练,一些实施例以3m间隔从训练场景中的每一个中均匀地采样子体积。这些实施例保持包含任何非结构对象体素(例如,桌子、椅子)的所有子体积,并且以90%概率随机丢弃仅包含结构体素(例如,墙壁/天花板/地板)的子体积。这导致总共225414个训练子体积。一些实施例对于每个级别使用[32
×
16
×
32]、[32
×
32
×
32]和[32
×
64
×
32]的体素网格分辨率,这导致分别[6m
×
3m
×
6m]、[3m3]、[1.5m
×
3m
×
1.5m]的空间范围。为了测试,一些实施例对整个场景进行测试。输入部分tsdf和完整目标tdf被存储为跨越场景整个范围的均匀网格,其跨测试集变化。完全卷积架构允许在不同大小上进行训练和测试,并支持不同的训练空间范围。
[0352]
注意,输入tsdf的符号根据相机可见度编码已知和未知空间,例如,具有负值的体素位于观看到的表面后面,并且因此是未知的。相反,一些实施例使用无符号距离场(tdf)用于真实情况目标体积,因为所有体素在真实情况中是已知的。人们可能争论目标距离场应该使用符号来表示对象内部的空间。然而,这在实践中是不可行的,因为从其生成真实情况距离场的合成3d模型很少防水。使用隐式函数(tsdf和tdf)而不是离散占用网格允许允许训练过程中的更好梯度;这在先前的工作中通过对不同类型的网格表示的各种实验来证明。
[0353]
在一些实施例中,用于单个分层级别的scancomplete网络架构包括直接在3d中操作的完全卷积架构,这使其对于不同的训练和测试输入数据大小不变。在每个分层级别处,网络将输入部分扫描作为输入(在体积网格中编码为tsdf)以及先前的低分辨率tdf预测(如果不是基础级别)和任何先前的体素组tdf预测。输入体积中的每一个用具有1
×1×
1卷积捷径(shortcut)的一系列3d卷积进行处理。然后,它们全部逐特征联接起来,并且用具有
捷径的3d卷积进一步处理。最后,网络分成两个路径,一个输出几何补全,并且另一个输出语义分割,其分别用'1损失和逐体素softmax交叉熵测量。分层级别之间的架构的概述。
[0354]
为了训练网络,一些实施例使用如上文所描述的从suncg数据集生成的训练数据。在训练时间处,一些实施例将真实情况体积作为先前的体素组输入馈送到网络。然而,对于先前的分层级别输入,一些实施例馈入由先前的分层级别网络预测的体积。通过相反使用先前的分层级别预测体积作为输入,网络必须学习使用当前级别的部分输入扫描来解决细节,仅依赖于先前级别的输入用于更多全局的低频信息(例如如何填充墙壁和地板上的大洞)。该方法的一个缺点是用于每个分层级别的网络可能不再并行训练。它们必须顺序训练,因为用于每个分层级别的网络取决于来自前一级别处的训练网络的输出预测。在一些实施例中,可以在单个端到端过程中训练所有分层级别。然而,当前gpu存储器限制使这一点难处理。由于一些实施例在合成数据上训练模型,因此这些实施例引入用于训练样本的高度抖动(jitter)以抵消过度拟合,通过范围[0,0.1875]m中的(均匀)随机抖动使每个训练样本在高度上抖动。由于训练数据朝向墙壁和地板倾斜,因此一些实施例使用结构类(例如,墙壁/地板/天花板)与所有其他对象类的1:10比率在语义损失中应用重新加权。对于最终模型,一些实施例使用具有学习率0.001(衰减到0.0001)的adam优化器在nvidia gtx 1080上训练所有网络。一些实施例在三个分层级别中的每一个处针对八个体素组中的每一个训练一个网络,总共24个训练网络。注意,每个分层级别内的八个网络并行训练,具有约3天的完全分层的总训练时间。
[0355]
3d或其他更高维数据集(例如,3d扫描)上的语义分割可以通过使用前述修改的基于minkowski net的算法、基于scancomplete的算法等来执行,而2d数据集上的语义分割可以通过使用基于修改的掩模rcnn的算法、基于修改的pspnet的算法等来执行。以下描述涉及可用于对2d数据集进行语义分割或过滤的基于修改的掩模rcc的算法。
[0356]
不是需要提供复杂的方法来实现良好的结果,一些实施例提供了超过当前最先进的实例分割结果的出人意料地简单、灵活而快速的系统。这些实施例(也称为掩模r-cnn)通过添加用于预测每个感兴趣区域(roi)上的分割掩模的分支来扩展faster r-cnn,该分支与用于分类和边界框回归的现有分支并行(图14a)。图14a示出了用于接收输入1402a(诸如图像或图像序列)的基于修改的掩模rcnn架构的简化架构。基于修改的掩模rcnn架构通过使用本文在1404a处描述的roialign来处理输入图像1402a以对准感兴趣区域(roi)。将roialign 1404a的输出提供给第一卷积1406a(其也可以将其输出提供给分类框),然后是第二卷积1408a,如下文所描述的以生成输出1410a。
[0357]
掩膜分支是应用于每个roi的小fcn,以像素到像素的方式预测分割掩膜。给定faster r-cnn框架,掩膜r-cnn易于实现和训练,这促进广泛的灵活的架构设计。此外,掩模分支仅添加了小的计算开销,这使能快速的系统和快速的实验。原则上,掩模r-cnn是faster r-cnn的直观扩展,但是正确构建掩模分支对于良好的结果至关重要。最重要的是,faster r-cnn未被设计用于网络输入与输出之间的像素到像素对准。这在roipool(用于处理实例的事实上的核心操作)如何执行用于特征提取的粗略空间量化中最明显。为了固定未对准,我们提出了简单的无量化层,被称为roialign,其忠实地保留了精确的空间位置。尽管看似微小的变化,但是roialign产生了巨大影响:它将掩模准确度提高了相对10%至50%,在更严格的定位度量下示出更大的收益。第二,我们发现解耦掩模和类预测是必要
的:我们独立地预测用于每个类的二进制掩模,没有类之间的竞争,并且依赖于网络的roi分类分支来预测类别。相反,fcn(完全卷积网络)通常执行每像素多类分类,其耦合分割和分类,并且基于各种实验,对于实例分割不佳工作。
[0358]
mask r-cnn在概念上很简单:faster r-cnn具有用于每个候选对象的两个输出,类标签和边界框偏移;为此,我们添加了输出对象掩模的第三分支。因此,mask r-cnn是一个自然而直观的想法。但是附加的掩模输出与类和框输出不同,需要提取对象的精细得多的空间布局。接下来,我们介绍mask r-cnn的关键元素,包括像素到像素对准,这是fast/faster r-cnn的主要缺失片段。
[0359]
一些实施例通过简要地回顾faster r-cnn检测器开始。faster r-cnn由两个阶段组成。第一阶段,被称为区域建议网络(rpn),提出候选对象边界框。实际上是fast r-cnn的第二阶段使用roipool从每个候选框中提取特征,并且执行分类和边界框回归。由两个阶段使用的特征可以被共享用于更快的推理。一些实施例向读者介绍faster r-cnn与其他框架之间的最新综合比较。
[0360]
mask r-cnn采用相同的两阶段过程,具有相同的第一阶段(其是rpn)。在第二阶段中,与预测类和框偏移并行,mask r-cnn还针对每个roi输出二进制掩膜。这与最近的系统形成对比,其中分类取决于掩膜预测。一些实施例遵循并行应用边界框分类和回归的fast r-cnn的精神(其结果这在很大程度上简化了原始r-cnn的多阶段管线)。正式地,在训练期间,一些实施例将每个采样roi上的多任务损失定义为l=l
cls
+l
box
+l
mask
。分类损失l
cls
和边界框损失l
box
与其定义的相同。掩模分支针对每个roi具有km2维输出,其编码分辨率m
×
m的k个二进制掩模,对于k个类中的每一个类一个。为此,一些实施例应用每像素sigmoid,并且将l掩膜定义为平均二进制交叉熵损失。对于与真实情况类k相关联的roi,l掩模仅定义在第k个掩模上(其他掩模输出不对损失有贡献)。l掩模的定义允许网络生成用于每个类的掩模,而不在类之间进行竞争;一些实施例依赖于专用分类分支以预测用于选择输出掩模的类标签。这将掩膜和类预测解耦。这与将fcn应用于语义分割时的常见做法不同,其通常使用每像素softmax和多项式交叉熵损失。在这种情况下,类之间的掩模会相互竞争;在一些实施例中,对于每像素sigmoid和二进制损失,它们不会。一些实施例表明该公式对于良好的实例分割结果是关键。
[0361]
掩膜表示:掩膜对输入对象的空间布局进行编码。因此,与通过完全连接(fc)层不可避免地折叠成短输出向量的类标签或框偏移不同,提取掩模的空间结构可以通过由卷积提供的像素到像素对应而自然地解决。具体地,一些实施例使用fcn预测来自每个roi的m
×
m掩膜。这允许掩模分支中的每个层保持显式m
×
m对象空间布局而不将其折叠为缺少空间尺寸的向量表示。与采用fc层用于掩模预测的先前方法不同,完全卷积表示需要更少的参数,并且如由实验所证明的更准确。该像素到像素的行为要求roi特征(其本身是小特征图)很好地对准以忠实地保持显式的每像素空间对应。这促使我们开发了以下roialign层,它在掩模预测中发挥关键作用。
[0362]
roialign:roipool是用于从每个roi提取小特征图(例如,7
×
7)的标准操作。roipool首先将浮点数roi量化到特征图的离散粒度,然后将该量化的roi细分为本身量化的空间箱,并且最终聚合由每个箱覆盖的特征值(通常通过最大池化)。例如,通过计算[x/16]在连续坐标x上执行量化,其中16是特征图步幅并且[
·
]是舍入;同样,在分成箱时执行
量化(例如,7
×
7)。这些量化引入了roi与提取的特征之间的未对齐。虽然这可能不影响对小平移鲁棒的分类,但是它对预测像素准确掩膜产生大的负面影响。为了解决这一点,一些实施例采用了roialign层,其移除了roipool的严格量化,这将提取的特征与输入适当对齐。一些建议的改变很简单:一些实施例避免了roi边界或箱的任何量化(例如,一些实施例使用x/16而不是[x/16])。一些实施例使用双线性插值来计算每个roi箱中在四个规则采样位置处的输入特征的精确值,并且聚合结果(使用最大值或平均值),详情参见图14b。图14b示出了关于roialign的更多细节(例如,图14a中的1404a)。更具体地,虚线网格1406b表示特征图;并且实线1402b表示包括2
×
2箱的感兴趣区域。每个箱中的四个点1404b表示箱中的采样点。本文所描述的所描述的roialign模块(例如,图14a中的1404a)通过例如从特征图上的附近网格点进行双线性插值来计算每个采样点的值。在一些实施例中,不对roi、其箱或采样点中涉及的任何坐标执行量化。应注意,只要不执行量化,则结果对精确的采样位置或采样多少点不敏感。如以下段落中的一些实施例所示,roialign模块导致了很大的改进。一些实施例还与roiwarp操作进行比较。与roialign不同,roiwarp忽略了对齐问题,并且就像roipool一样在量化roi中实现。因此,尽管roiwarp还采用了由其驱动的双线性重采样,但它与由实验所示的roipool相当(表2c中的更多细节)执行,证明了对齐的关键作用。
[0363]
网络架构:为了证明一些实施例的一般性,一些实施例实例化具有多个架构的mask r-cnn。为了清晰起见,一些实施例区分:(i)用于在整个图像上进行特征提取的卷积骨干架构,以及(ii)用于分别应用于每个roi的掩模预测和边界框识别(分类和回归)的网络头部。一些实施例使用命名(nomenclature)网络深度特征表示骨干架构。一些实施例评估深度50或101层的resnet和resnext网络。具有resnets的faster r-cnn的原始实现从第4阶段的最终卷积层提取特征,其可以被称为c4。例如,具有resnet-50的该骨干由resnet-50-c4表示。这是使用的常见选择。一些实施例还探索了另一更有效的骨干,诸如特征金字塔网络(fpn)。fpn使用具有横向连接的自顶向下架构,以从单个尺度(single-scale)输入来构建网络内特征金字塔。具有fpn骨干的faster r-cnn根据其尺度从特征金字塔的不同级别提取roi特征,但是另外其余方法类似于vanilla resnet。使用resnet-fpn骨干用于具有mask r-cnn的特征提取在准确度和速度方面给出出的受益。对于关于fpn的进一步的细节,一些实施例请读者参考。对于网络头部,一些实施例遵循先前工作中呈现的架构,其中一些实施例添加了完全卷积掩模预测分支。具体地,一些实施例从resnet和fpn扩展faster r-cnn框头部。图14c示出了细节。resnet-c4骨干上的头部包括resnet的第5阶段(即,9层'res5'),其是计算密集的。对于fpn,骨干已经包括res5并且因此允许使用更少滤波器的更有效的头部。应注意,掩膜分支具有简单的结构。更复杂的设计具有提高性能的潜力,但不是该工作的重点。
[0364]
在图14中,在头部架构中具有resnet 1400c的faster r-cnn在1402c处识别roi 1401c,其是7x7x1024块,其经由res5块1406c产生到另一个7x7x2048块1404c的输出。块1404c的输出可以提供给块1408c(对应于1024个通道)以提供分类和边界框和/或14x14x256块1416c,其进一步将其输出提供给14x14x80块1418c。在具有fpn 1420c的faster r-cnn块中,可以向7x7x256块1422c和/或14x14x256块1428c提供roi 1401c。7x7x256块1422c的输出可以提供给块1424c(对应于1024个通道),其进一步产生输出给块1026c(也对应于1024个通道),其生成分类输出1412c和/或边界框1414c。14x14x256块
1428c的输出可以提供给第一14x14x256块1430c,然后是在28x28x80块1434c之前的28x28x256块1432c。
[0365]
头部架构:一些实施例扩展了两个现有的faster r-cnn头部。两个块分别示出了添加了掩模分支的resnet c4(1400c)和fpn(1420c)骨干的头部。以下数字诸如7x7x1025表示空间分辨率(7x7)和通道(1024)。箭头表示可以从上下文推断的卷积、反卷积或fc(完全连接)层(卷积保留空间维度,而反卷积增加它)。所有卷积是3
×
3,除了输出conv是1
×
1,反卷积是2
×
2,其中步幅为2,并且一些实施例在隐藏层中使用relu(修正线性单元)。左:'res5'表示resnet的第五阶段,其为了简单起见,一些实施例改变使得第一卷积以步幅1在7
×
7roi上操作(而不是14
×
14/步幅2)。右:'
×
4'表示四个连续卷积的堆叠。
[0366]
示例实现细节:一些实施例根据现有的fast/faster r-cnn工作设置超参数。尽管这些决定是针对原始的对象检测做出的,但是一些实施例发现实例分割系统对它们是鲁棒的。
[0367]
训练:与在fast r-cnn中一样,如果roi具有具有至少0.5的真实情况框的iou,则roi被认为是正的,并且否则是负的。掩膜损失l掩膜仅在正roi上定义。掩膜目标是roi与其相关联的真实情况掩模之间的交集。一些实施例采用以图像为中心的训练。对图像调整大小,使得其尺度(较短的边缘)是800个像素。每个小批量每个gpu具有2个图像,并且每个图像具有n个采样的roi,以及正负比为1:3的比率。n对于c4骨干是64,并且对于fpn是512。一些实施例在8个gpu(因此有效的小批量大小是16)上训练160k次迭代,学习速率为0.02的,其在120k次迭代处降低10。一些实施例使用0.0001的权重衰减和0.9的动量。利用resnext,一些实施例使用每个gpu 1个图像和相同的迭代次数进行训练,其中起始学习率为0.01。rpn锚点跨越5个尺度和3个纵横比,如下。为了便于消融,rpn单独训练并且不与mask r-cnn共享特征,除非指明。对于每个条目,rpn和mask r-cnn具有相同的骨干,并且因此它们是可共享的。推理:在测试时间处,建议数量对于c4骨干是300,并且对于fpn是1000。一些实施例在这些建议上运行框预测分支,然后是非最大抑制。然后将掩膜分支应用于最高得分的100个检测框。虽然这与训练中使用的并行计算不同,但它加速了推理并提高了准确度(由于更少的使用,更准确的roi)。掩模分支可以预测每个roi的k个掩模,但是一些实施例仅使用第k个掩模,其中k是由分类分支预测的类。m
×
m浮点数掩模输出然后被调整大小为roi大小,并以0.5的阈值二值化。注意,由于一些实施例仅在前100个检测框上计算掩模,因此mask r-cnn向其faster r-cnn对应部分添加了小开销(例如,在典型模型上约为20%)。
[0368]
以上描述了用于语义分割或过滤的经修改的掩膜rcnn模块的一些示例实现细节。如上文所描述的,3d或其他更高维数据集(例如,3d扫描)上的语义分割可以通过使用前述基于修改的minkowski net算法、基于scancomplete算法等来执行,而2d数据集上的语义分割可以通过使用基于修改的掩模rcnn算法、基于修改的pspnet算法等来执行。以下描述涉及可用于对2d数据集进行语义分割或过滤的基于修改的mask rcc的算法。以下章节涉及用于语义分割或过滤的基于修改的pspnet算法。
[0369]
如上文所描述的,最先进的场景解析框架主要基于全卷积网络(fcn)。基于深度卷积神经网络(cnn)的方法提高了动态对象理解,但考虑到不同的场景和无限制的词汇,仍然面临挑战。与这些方法不同,为了包含适合的全局特征,一些实施例提出了金字塔场景解析网络(pspnet)。除了用于像素预测的传统扩张fcn之外,一些实施例将像素级特征扩展到专
门设计的全局金字塔池化特征。局部和全局线索一起使最终的预测更可靠。一些实施例采用具有深度监督损失的优化策略。一些实施例给出了所有实现细节,这些细节是良好性能的关键,并使代码和训练模型公开可用。一些实施例在所有可用数据集上实现了最先进的性能,并表明pspnet为像素级预测任务给出了有希望的方向,这甚至可以在后续工作中受益于基于cnn的立体匹配、光流、深度估计等。优点中的一些优点包括利用金字塔场景解析网络将困难的场景上下文特征嵌入在基于fcn的像素预测框架中;用于基于深度监督损失的深度resnet的有效优化策略;以及为最先进的场景解析和语义分割提供实际系统,其中包括所有关键的实现细节。
[0370]
一些实施例从将fcn方法应用于使用金字塔池化模块作为有效全局上下文先验的场景解析时的代表性故障案例的观察和分析开始。描述了图14d中所示的金字塔场景解析网络(pspnet)以提高复杂场景解析中的东西识别和开放词汇表对象的性能。
[0371]
金字塔池化模块:一些实施例采用金字塔池化模块1450d,其已被证明是有效的全局上下文先验。在深度神经网络中,感受野的大小可以粗略地指示使用了多少上下文信息。尽管理论上resnet的感受野已经大于输入图像,但是cnn的经验感受野比理论感受野小得多,特别是在高级别层上。这使许多网络未充分地包含重要全局场景先验。一些实施例通过提出有效的全局先验表示来解决该问题。在一些实施例中,全局平均池化是作为全局上下文先验的良好基线模型,其通常用于图像分类任务。在一些实施例中,全局平均池化可以成功地应用于语义分割。在涉及复杂场景图像的一些实施例中,仅此策略可能不足以覆盖必要信息。这些场景图像中的像素关于许多东西和对象进行了注释。直接将它们融合形成单个向量可能失去空间关系并导致歧义。全局上下文信息连同子区域上下文在这方面有助于区分各种类别。
[0372]
更强大的表示可能是将来自不同子区域的信息与这些感受野融合。在一些实施例中,由金字塔池化生成的不同级别的特征图最终被变平并连接,以馈送到全连接层用于分类。该全局先验被设计为移除cnn用于图像分类的固定大小约束。为了进一步减少不同子区域之间的上下文信息丢失,一些实施例提出了分层全局先验,包括具有不同尺度并且在不同子区域之间变化的信息。这可以被称为金字塔池化模块(例如,1450d),用于在深度神经网络的最终层特征图上构建全局场景先验,如图14d所示。
[0373]
金字塔池化模块(1450d)使用池化块1408d来融合四个不同金字塔尺度下的特征。最粗略的级别(1430d)是全局池化以生成单个箱输出。下面的金字塔级别(1432d)将特征图分成不同的子区域,并针对不同的位置形成池化表示。金字塔池化模块1450d中不同级别(1430d、1432d、1434d和1436d)处的输出包括具有不同大小的特征图并分别被提供给它们对应的卷积块(例如,用于1430d的卷积块1412d、用于1432d的卷积块1414d、用于1434d的卷积块1416d、和用于1436d的卷积块1418d)以生成进一步提供给上采样块1420d的相应卷积输出。上采样块1420d的输出被提供给联接层1422d,该联接层1422d将相应的卷积块输出联接到提供给卷积层1426d的联接输出,卷积层1426d将联接输出卷积到输出1428d中(例如,预测图)。
[0374]
应注意,尽管图14d示出了处理块的特定布置,但该特定布置并不旨在限制具有(一个或多个)不同布置或由块组成的其他实施例。例如,一些实施例可以针对金字塔池化模块1450d采用最大池化块,而一些其他实施例可以针对金字塔池化模块1450d采用平均池
化块。而且,一些实施例可以利用相应的处理块进入具有{1x 1}的箱大小的池化特征图,而其他实施例可以利用不同的处理块进入具有{1x 1}、{2x 2}、{3x 3}、{6x 6}的一个或多个箱大小、或其他适当大小等、或其任何组合的池化特征图。一些实施例可以进一步包括在池化块1408之后的维度降低块(dimension reduction block),而一些其他实施例可能不包括这样的维度降低块。
[0375]
为了保持全局特征的权重,如果金字塔的层级大小为n,一些实施例在每个金字塔层级之后使用1
×
1卷积层来将上下文表示的维度降低到原始维度的1/n。然后,这些实施例经由双线性插值直接对低维特征图进行上采样以获得与原始特征图相同大小的特征。最后,将不同级别的特征连接起来作为最终的金字塔池化全局特征。注意,金字塔层级的数量和每个层级的大小可以修改。它们与馈送到金字塔池化层中的特征图的大小有关。该结构通过在几步中采用不同大小的池化内核来抽象不同的子区域。多阶段内核应在表示上保持合理的间隙。金字塔池化模块1450d是分别具有1
×
1、2
×
2、3
×
3和6
×
6的箱大小的四级模块。
[0376]
采用金字塔池化模块1450d,一些实施例采用如图14d所示的金字塔场景解析网络(pspnet)。给定图14d中的输入图像1402d,一些实施例用卷积神经网络(cnn)1404d处理输入图像1402d,并使用具有扩张网络策略的预训练resnet模型来提取特征图。最终的特征图或特征表示(1406d)大小是输入图像1402d的1/8,如图14d所示。在图之上,这些实施例使用金字塔池化模块1450d来收集上下文信息。使用4层级金字塔,池化内核覆盖图像的整体、一半、和小部分。这些整体、一半和小部分被融合为全局先验。
[0377]
然后,先验在联接层1422d中与原始特征图1406d联接。联接之后是卷积层1426d以生成最终预测图1428d。为了解释该架构,pspnet为像素级场景解析提供了有效的全局上下文先验。金字塔池化模块可以收集不同级别的信息,比全局池化更具代表性。与原始扩张的fcn网络相比较,pspnet并没有增加太多的计算成本。在端到端学习中,可以同时优化全局金字塔池化模块和局部fcn特征。
[0378]
深度预训练网络导致良好的性能。在一些情况下,增加网络的深度可能给图像分类带来额外的优化困难。resnet用每个块中的跳过连接来解决该问题。深度resnet的后几层主要基于先前的学习残差。一些实施例建议通过具有额外损失的监督来生成初始结果,并且利用最终损失学习残差。在这些实施例中,深度网络的优化可以被分解为两个,每个都更容易解决。图14e中示出了深度监督的resnet101模型的示例,该示例示出了在resnet101中引入辅助损失。在图14e中,深度监督的resnet101模型包括前三个阶段中的第一多个残差块1402e,第一多个残差块1402e可操作地耦接到在第四阶段中的res4b22残差块1404e,然后是作为第五和第六阶段的两个第一残差块1402e。在res4b22残差块1404e之后添加辅助损失1406e。res4b22块1404e的输出被提供给具有最终损失1410e的res5c块1408e。在图14e所示的示例架构中,后一个块至少部分地基于先前的(一个或多个)块来学习残差,而示例架构通过用附加损失(1406e)进行监督并在之后用最终损失(1410e)来学习残差而生成初始结果。
[0379]
除了主分支使用softmax损失训练最终分类器之外,在第四阶段之后应用另一分类器,例如,res4b22残差块。与将反向辅助损失阻挡到若干浅层的中继反向传播不同,一些实施例让两个损失函数穿过所有先前层。辅助损失有助于优化学习过程,而主分支损失承
担大部分责任。一些实施例增加权重以平衡辅助损失。在测试阶段中,一些实施例放弃该辅助分支并且仅使用优化良好的主分支用于最终预测。这种基于resnet的fcn(完全卷积网络)的深度监督训练策略在不同的实验环境下广泛可用,并与预先训练的resnet模型一起使用。这表明了这样的学习策略的普遍性。
[0380]
返回参考图15d,局部特征可以在1506d处被抽象为更高级别的(一个或多个)特征或(一个或多个)表示。在一些实施例中,基于pointnet的模块将局部点或特征集抽象为更高级别的表示。在这些实施例中,基于pointnet++的模块递归地将pointnet应用于输入集的嵌套分区。而且,在1508d处,具有多个不同尺度和/或分辨率的特征或表示可以通过学习被自适应地加权和组合。在1510d处,集标签可以由一个或多个集合函数(sf)被分配给具有上述距离度量的度量空间。集合函数可以包括分类函数并且接收度量空间作为输入以及用于每个点的附加特征,并且产生关于度量空间的语义感兴趣的信息。集合函数还可以将标签分配给度量空间的一部分或分割函数,该分割函数将每个点标签分配给点集合的每个成员。可以在1512d处重复上述过程,直到例如已经类似地处理了整个点集。
[0381]
在这些采用基于pointnet和/或pointnet++的模块的实施例中,这些实施例分析作为欧几里德空间中的点集的几何点集。一种特别重要类型的几何点集是由3d扫描仪捕获的点云,例如,来自适当配备的自动驾驶汽车。作为集合,这样的数据必须对其成员的排列保持不变。另外,距离度量定义了可能表现出不同特性的局部邻域(local neighborhood)。例如,点的密度和其他属性跨不同位置可能不均匀-在3d扫描中,密度变化可能来自透视效应、径向密度变化、运动等。很少先前工作研究点集上的深度学习。pointnet是直接处理点集的开创性努力。
[0382]
涉及pointnet的各种实施例是学习每个点的空间编码,并且然后将所有单独点特征聚合到全局点云签名。通过其设计,pointnet可能无法捕获由度量引起的局部结构。然而,利用局部结构已被证明对卷积架构的成功很重要。cnn将在规则网格上定义的数据当作输入并且能够沿着多分辨率分层以越来越大的尺度逐步捕获特征。在较低级别处,神经元具有较小的感受野,而在较高级别处,它们具有更大的感受野。沿着分层抽象局部模式的能力可以更好地推广到未见过的情况。一些实施例引入了称为pointnet++的分层神经网络,以以分层方式处理在度量空间中采样的点集。
[0383]
涉及pointnet++的各种实施例首先通过底层空间的距离度量将点集分区为重叠的局部区域。类似于cnn,这些实施例中的一些实施例从小邻域提取捕获精细几何结构的局部特征;这样的局部特征被进一步分组到更大的单元中并被处理以产生更高级别的特征。重复该过程,直到这些实施例获得整个点集的特征。pointnet++的设计解决两个问题:(1)如何生成点集的分区,以及(2)如何通过局部特征学习器抽象点集或局部特征集。两个问题是相关的,因为点集的分区必须产生跨分区的公共结构,使得可以共享局部特征学习器的权重,如在卷积设置中。一些实施例将局部特征学习器选择为pointnet,pointnet是处理用于语义特征提取的无序点集的有效架构。另外,该架构对输入数据损坏具有鲁棒性。作为基本构建块,pointnet将局部点集或特征集抽象为更高级别的表示。在该点,pointnet++递归地将pointnet应用于输入集的嵌套分区。
[0384]
为了生成点集的重叠分区,分区被定义为底层欧几里德空间中的邻域球,其参数包括质心位置和尺度。为了均匀地覆盖整个集合,由最远点采样(fps)算法在输入点集中选
择质心。与用固定步幅扫描空间的体积cnn相比,具有pointnet++的局部感受野可能取决于输入数据和度量,并且因此更高效和有效。然而,由于特征尺度的纠缠和输入点集的非均匀性,决定局部邻域球的适当尺度是更具挑战性但更有趣的问题。这些实施例中的一些实施例假设输入点集可以在不同区域处具有可变密度,这在诸如结构传感器扫描的实际数据中相当常见。在一些实施例中,输入点集因此与cnn输入非常不同,cnn输入可以被视为定义在具有均匀恒定密度的规则网格上的数据。在cnn中,局部分区尺度的对应部分是内核的大小。一些实施例证明使用更小的内核有助于提高cnn的能力。优点之一是pointnet++在多个尺度上利用邻域以实现鲁棒性和细节捕获。在训练期间辅助随机输入丢弃,网络学习自适应地加权在不同尺度处检测到的模式,并且根据输入数据组合多尺度特征。实验表明,基于pointnet++的模块能够有效且稳健地处理点集。特别地,已经在3d点云的具有挑战性基准上获得显著地比现有技术更好的结果。
[0385]
在一些实施例中,假设x=(m,d)是离散度量空间,其度量从欧几里德空间rn继承,其中表示点集,并且d表示距离度量。另外,周围欧几里德空间中的m的密度可能并非处处均匀。这些实施例学习接收这样的x作为输入(以及用于每个点的附加特征)的集合函数f,并产生关于x的语义兴趣的信息。在一些实施例中,这样的f可以是将标签分配给x的分类函数或将每个点标签分配给m的每个成员的分割函数。
[0386]
一些实施例可以被视为具有添加的分层结构的pointnet的扩展。这些实施例引入了具有分层结构的pointnet的基本扩展,并且即使在非均匀采样的点集中也稳健地学习特征。
[0387]
pointnet:
[0388]
通用连续集函数逼近器:给定无序点集{x1,x2,...,xn},其中x i∈r d,人们可以定义将点集映射到向量的集合函数f:x

r:
[0389]
f(x1,x2,...,xn)=γ(max
i=1,...,n
{h(xi)})
ꢀꢀꢀ
等式15d-(1)
[0390]
其中γ和h通常是多层感知器(mlp)网络。等式15d-(1)中的集合函数f对输入点排列不变,并且可以任意逼近任何连续集合函数。注意,h的响应可以解释为点的空间编码。pointnet在几个基准测试中取得了令人印象深刻的表现。但是,它缺乏以不同尺度捕获局部上下文的能力。一些实施例在下面引入了分层特征学习框架来解决该限制。
[0391]
分层点集特征学习:
[0392]
虽然pointnet使用单个最大池化操作来聚合整个点集,但是一些实施例构建了点的分层分组,并且沿着分层逐渐抽象出越来越大的局部区域。该分层结构由多个集合抽象层级组成(图12e)。图12e示出了一个或多个实施例中的用于经修改的pointnet++的示例架构。更具体地,图12e示出了使用2d欧几里德空间中的点作为示例设置分割和分类的分层特征学习架构及其应用。应注意,尽管图12e示出了单点分组,但是相同或基本上相似的方法也可应用于密度自适应分组。
[0393]
在这些实施例中,示例网络架构包括具有第一集合抽象1250e的分层点集特征学习模块,其进一步包括第一采样和分组模块1202e和pointnet模块1204e。图12e中的该分层点集特征学习模块架构还包括具有如本文所描述的第二采样和分组模块1206e和第二pointnet模块1208e的第二集合抽象1252e。可以提供分层点集特征学习模块(1250e,1252e)1210e的输出,用于串行或并行地分割1254e和分类1256e。分割处理1254e包括插值
1212e、单元pointnet 1214e((n1,d+c2+c1))、插值1216e((n1,d+c3))、另一个单元pointnet 1218e((n,d+c3+c))以生成每点得分(n,k))。采样和分组模块1202e的输出可以与单元pointnet 1214e联接,如下文所描述的;以及第二采样和分组模块1206e的输出可以经由跳过链接联接与第二单元pointnet 1218e联接。
[0394]
分类处理1256e将分层点集特征学习输出1210e提供给pointnet模块1222e,pointnet模块1222e生成pointnet输出1224e((1,c4)),其进而用于生成一组完全连接(fc)层1226e。该过程然后可以生成一组类得分1228e。下面描述了关于图12e的更多细节。
[0395]
在每个层级处,点集被处理和抽象以产生具有更少元素的新集合。集合抽象层级可能包括三个关键层:采样层、分组层和pointnet层。采样层从输入点中选择点集,这些点定义了局部区域的质心。然后,分组层通过在质心周围寻“邻域”点来构造局部区域集。pointnet层使用mini-pointnet将局部区域模式编码为特征向量。集合抽象级别将n
×
(d+c)矩阵作为输入,该矩阵来自具有d-dim坐标和c-dim点特征的n个点。它输出n'
×
(d+c')矩阵,该矩阵由n'个子采样点组成,具有d-dim坐标和总结局部上下文的新c'-dim特征向量。一些实施例在以下段落中介绍了集合抽象级别的层。
[0396]
采样层。给定输入点{x1,x2,...,xn},一些实施例使用迭代最远点采样(fps)来选择点的子集{x
i1
,x
i2
,...,x
im
},使得x i j是关于剩余点与集合{x
i1
,x
i2
,...,x i
j-1
}最远的点(以度量距离为单位)。与随机采样相比较,给定相同数量的质心,它具有整个点集的更好覆盖。与扫描数据分布的向量空间不可知的cnn相比较,采样策略以数据相关的方式生成感受野。
[0397]
分组层。在一些实施例中,该层的输入是大小n
×
(d+c)的点集和一组大小n
’×
d的质心的坐标。输出是大小n
’×k×
(d+c)的点集的组,其中每个组对应于局部区域,并且k是质心点邻域的点数。注意,k跨组变化,但是后续的pointnet层能够将灵活的点数转换为固定长度局部区域特征向量。在卷积神经网络中,像素的局部区域由具有阵列索引在像素的特定曼哈顿距离(核大小)内的像素组成。在从度量空间采样的点集中,点的邻域由度量距离定义。球查询到在查询点的半径内的所有点(在实施方式中设置上限k)。可替代的范围查询是到固定数量的邻域点的k最近邻(knn)搜索。与knn相比较,球查询的本地邻域保证固定区域尺寸,因此使局部区域特征跨空间更普遍,这对于局部模式识别(例如,语义点标记)是优选的。
[0398]
pointnet层。在该层中,输入是具有数据大小n
’×k×
(d+c)的点的n'局部区域。输出中的每个局部区域由其质心和编码质心邻域的局部特征来抽象。输出数据大小是n'
×
(d+c')。
[0399]
局部区域中的点的坐标首先转换为相对于质心点的局部框架:其中i=1,2,...,k,并且j=1,2,...,d,其中^x是质心的坐标。一些实施例使用上述pointnet作为用于局部模式学习的基本构建块。通过将相对坐标连同点特征一起使用,一些实施例可以捕获局部区域中的点对点关系。
[0400]
非均匀采样密度下的稳健特征学习:
[0401]
如上文所讨论的,点集在不同区域中具有不均匀的密度可能是很常见的。这样的不均匀性为点集特征学习引入了重大挑战。在密集数据中学习的特征可能无法推广到稀疏采样的区域。因此,为稀疏点云训练的模型可能无法识别细粒度的局部结构。一些实施例尽
可能近距离地检查点集以捕获密集采样区域中的最细微细节。然而,在低密度区域处禁止这样的近距离检查,因为局部图案可能由采样缺陷损坏。在这种情况下,这些实施例在更近处寻更大尺度的图案。为了实现该目标,一些实施例提出了密度自适应pointnet层,其学习当输入采样密度改变时组合来自不同尺度的区域的特征。一些实施例将具有密度自适应pointnet层的分层网络称为pointnet++。如上文所描述的,每个抽象级别包含单个尺度的分组和特征提取。在pointnet++中,每个抽象级别提取多个尺度的局部图案,并根据局部点密度来智能地组合它们。就分组局部区域和组合来自不同尺度的特征而言,一些实施例采用如下文列出的两种类型的密度自适应层。
[0402]
多尺度分组(msg):
[0403]
捕获多尺度模式的一种简单但有效的方式是采用不同尺度应用分组层,然后是根据pointnets提取每个尺度的特征。不同尺度的特征被联接以形成多尺度特征。一些实施例训练网络以学习优化策略来组合多尺度特征。这可以通过对于每个实例以随机概率随机丢弃输入点来实现,一些实施例将其称为随机输入丢弃。具体地,对于每个训练点集,一些实施例选择从[0,p]均匀采样的丢弃比θ,其中p≤1。对于每个点,一些实施例以概率θ随机丢弃点。在实践中,一些实施例设置p=0.95以避免生成空点集。在这样做时,这些实施例向网络呈现具有各种稀疏性(由θ引起)和不同均匀性(由丢弃中的随机性引起)的训练集。在测试期间,一些实施例保持所有可用点。
[0404]
多分辨率分组(mrg):
[0405]
上述msg方法在计算上是昂贵的,因为它针对每个质心点以大尺度邻域运行局部pointnet。特别地,因为质心点的数量通常在最低级别处相当大,所以时间成本是显著的。一些实施例避免了这样的昂贵的计算,但仍然保留了根据点的分布特性自适应聚合信息的能力。在这些实施例中,某个级别li的区域的特征是两个向量的联接。一个向量(图中左)通过使用集合抽象级别从下层级l
i-1
总结每个子区域处的特征来获得。另一个向量(右)是通过使用单个pointnet直接处理局部区域中的所有原始点获得的特征。当局部区域的密度低时,第一向量可能比第二向量更不可靠,因为在计算第一向量的子区域包含甚至更稀疏的点并且遭受更多的采样缺陷。在这样的情况下,第二向量应当加权更高。另一方面,当局部区域的密度很高时,第一向量提供更细微细节的信息,因为它具有在较低级别处以较高分辨率递归检查的能力。与msg相比较,该方法计算上更有效,因为这些实施例避免了最低级别处在大尺度邻域中的特征提取。
[0406]
用于集合分割的点特征传播:
[0407]
在集合抽象层中,对原始点集进行子采样。然而,在诸如语义点标记的集合分割任务中,一些实施例获得用于所有原始点的点特征。一种解决方案是在所有集合抽象级别中始终将所有点采样为质心,然而这会导致高计算成本。另一种方式是将特征从子采样点传播到原始点。一些实施例采用具有基于距离的插值和跨级别跳跃链接的分层传播策略(如图12e所示)。在特征传播级别中,一些实施例将点特征从n
l
×
(d+c)点传播到n
l-1
点,其中n
l-1
和n
l
(具有n
l
≤n
l-1
)是集合抽象级别l的输入和输出的点集合大小。一些实施例通过在n l-1点的坐标处插值n l点的特征值来实现特征传播。在用于插值的许多选择中,一些实施例基于k个最近邻居使用逆距离加权平均(如在等式15d-(2)中,默认情况下,一些实施例使用p=2,k=3)。n l-1点上的插值特征然后与来自集合抽象级别的跳跃链接点特征联接。然
后,联接的特征通过“单位点网”,这类似于cnn中的一对一卷积。一些共享的全连接层和relu层被用于更新每个点的特征向量。重复该过程,直到一些实施例已将特征传播到原始点集。
[0408]
其中,
[0409]
图15e示出了一些实施例中的关于用于生成场景的平面图的图15c所示的流程图的更多细节。更具体地,图15e示出了关于在图15c中的1502c处生成深度周边类型的形状的更多细节。这些实施例在1502e处对环境的输入图像序列中的一个或多个rgb帧执行深度估计。可以在1504e处通过使用例如多视图深度估计网络和基于pspnet和/或基于resnet的分割模块来生成深度图和墙壁分割掩模。在一些实施例中,可以在1502e处利用例如多视图深度估计网络生成每帧密集深度图。
[0410]
可以在1506e处通过使用步进立方体模块,将一个或多个掩模深度图像与一个或多个姿势轨迹融合来提取墙壁点云。这些实施例至少通过在1508e处训练深度分割网络来进一步隔离对应于墙壁点的深度预测。深度预测可以在1510e处投射到三维(3d)点云。至少通过用深度网络检测属于同一平面实例的点,3d点云可以在1512e处聚类成一个或多个集。一些实施例直接对墙壁点进行聚类,使得这些实施例在点(例如,对应于角、边缘等的点)被遮挡时不会受到阻碍。一些实施例采用端到端模型,用于使用综合生成的真实情况将点响声聚类到远程平面区域中。在1512e处确定的集可以在1514e处转换成平面集合,该平面集合形成周边布局。下面描述了关于图15e的更多细节。
[0411]
一些实施例利用深度周边模块来获得理解室内环境的3d布局对于通过增强现实、导航和一般场景理解中的无数应用来理解空间的远程几何可能是重要的。这样的布局可以以各种方式呈现,从长方体参数到单目角坐标以及它们与语义更丰富的完全平面图。这些方法在它们在输入时需要的信息量和它们关于房间几何形状的假设方面不同(例如,一些方法在输入时需要干净的3d点云,而其他方法需要单目透视或全景图像)。该组相关问题之间的一致性的缺乏揭示关于用于布局预测的标准设置应该用于室内场景的普遍分歧。一些实施例涉及回答挑战:什么类型的数据在野外最容易获得以及什么类型的布局填充对于现代视觉应用的最直接的需要。
[0412]
就传感器数据而言,可能容易从许多现代设备(例如,智能电话、ar/vr hmd等)获得rgb(红绿蓝)相机和姿势数据。访问完全视频序列允许我们超越遍及单目布局估计的角和边缘估计,并且使内部空间的完全周边图的估计可能。关于空间范围和空间的形状的这样的度量信息是内部空间的基本不变(不同于房间内可以动态移动的对象),并且因此通过为移动增强现实平台启用面积和体积测量对各种下游3d应用可用。
[0413]
采用深度周边框架的一些实施例无需任何手工枚举的可能房间类型集即可精确推断该周边。深度周边对现实世界场景中常见的角和边缘遮挡也很稳健。为了便于描述和说明,以下描述预测水平周边(例如,外部墙壁的位置),因为这些包含房间布局内的绝大多数结构,而地板和天花板通常由单个平面很好地近似。对于示例管线的基本轮廓,参见图14j。在图14j中,将场景的输入成姿势视频1402j提供给深度网络,诸如本文所描述的深度周边模块,以产生聚类结果1404j,该聚类结果1404j进而由深度网络处理以产生估计的周边1408j(例如,由深度周边类型的形状产生的估计周边)。也可以参考同一场景的真实情况
1404j以训练或验证估计的周边或任何其他中间结果。
[0414]
管线可以从对视频序列的rgb帧的深度估计开始。实际上,对于深度学习的一般3d重建应用来说,最具限制性的瓶颈之一是深度估计模型的准确度。在像nyuv2数据集中的室内场景的杂乱室内场景中,在给定单目输入的情况下,这样的网络仍然难以表现优于0.5-0.6m的rms误差。一些实施例通过使用现代多视图立体方法将多个视图合并到深度估计模块中来绕过该表现瓶颈。这些实施例然后训练深度分割网络以隔离对应于墙壁点的深度预测。这些预测被投射到3d点云,并且然后通过深度网络进行聚类,该网络被调整以检测属于同一平面实例的点。
[0415]
一旦分配了点集,则标准方法将这些集转换为一组完整的平面,这些平面形成完整的周边布局。在一些实施例中,通过直接聚类墙壁点,一些实施例在角落被遮挡时不会受到阻碍。一些实施例提供了一种基于深度学习的管线,用于根据单眼成姿势的rgb图像序列预测室内周边。这些实施例对于被遮挡的角落都是稳健的并且不取决于先验房间形状的枚举集合。一些实施例开发端到端模型,用于使用综合生成的真实情况将点云聚类到远程平面区域中。
[0416]
管线概述:
[0417]
管线可能包括两个关键阶段——深度多视图深度估计和分割以提取墙壁点云(3.1),以及深度聚类用于检测平面实例(3.2)。最终周边是在后处理中通过简单的最小二乘平面拟合生成(3.3)。图14k示出了完整管线。
[0418]
图14k示出了用于周边估计的示例管线。一些实施例从具有成姿势的单眼(posed monocular)图像序列及其相对姿势开始。这些实施例通过多视图立体算法提取用于墙壁的语义分割图和密集深度图。这两个输出通过标准非投影被组合,以形成仅由墙壁像素组成的3d点云。然后,使用深度聚类网络将这些墙壁像素着为墙壁实例候选,并使用线性最小二乘法和最短路径算法进行后处理以形成最终周边预测。在图14k中,包括例如轨迹1402k、(一个或多个)视频1404k、图像、成姿势图像、成姿势视频或任何其他适合输入或其任何组合的一个或多个输入1400k可以提供给多视图深度网络1406k(mvdepthnet)和语义分割模块,诸如pspnet(金字塔场景解析网络)1408k,其可以分别生成深度图1410k和语义分割1412k。
[0419]
深度图1410k和语义分割可以通过未投射模块1414k组合或以其他方式合并以生成一组墙壁点云1416k。墙壁点云1416k可以提供给聚类模块1418k(例如,本文所描述的clusternet)以产生标记的(一个或多个)集1420k。标记的集1420k可以进一步提供给周边估计模块1422k,诸如本文所描述的深度网络或深度周边网络,以产生深度周边类型的形状以表示其(一个或多个)房间和墙壁。
[0420]
提取墙壁点云:
[0421]
一些实施例利用来自各种姿势的相同现实世界场景的多个观看来通过最先进的多视图深度估计网络生成每帧密集深度图。这些实施例然后优化分割算法,用于通过具有resnet-50骨干的标准金字塔场景解析(psp)网络对天花板、地板和墙壁进行分类。在获得用于每个输入帧的深度图和墙壁分割掩膜之后,一些实施例仅使用属于墙壁类的深度像素生成统一点云。为了这样做,这些实施例将掩膜的深度图像的集合与已知姿势轨迹融合在隐式表面表示中,并通过步进立方体方法的衍生来提取点云。在简单地未投射每个深度像
素上使用隐式表面表示的益处在于,它移除了冗余点并且它将多个观看上的噪声平均,这导致更平滑和更清洁的点集,如图14k所示。最后,为了移除内部墙壁点,一些实施例使用α形状的概念来创建表示点云的凹包的点云的子集。
[0422]
clusternet:
[0423]
在获得场景中墙壁的α剔除的子采样点云表示之后,一些实施例继续通过执行该点云的深度聚类来分离墙壁实例。一些实施例采用基于平面部分来聚类无序点云的完全无监督的技术,而无需在推理期间显式计算表面法线或平面参数。clusternet可以仅使用合成数据集进行训练,并且刚好在用于添加容量的预测头部之前使用具有两个附加128

128过滤卷积层的pointnet架构。pointnet全局特征然后用于输出用于每个输入点的聚类概率。为了针对单独的墙壁实例生成唯一集分配,一些实施例需要对3d位置噪声、遮挡和可变点密度稳健。此外,聚类需要区分共享相同点法线的平行平面墙壁。一些实施例制定了成对损失函数,当位于不同墙壁实例上的两个点被分配相同标签时,该成对损失函数将惩罚网络。然而,一些实施例不惩罚过度分割,因为集合并可以在后处理中容易地实现。采取n个点xi,其中3d坐标p i=(xi,yi,zi),和预测的集概率向量第(k+1)类保留给不能置信地放置到任何平面实例上以允许网络有能力滤除嘈杂点的点。聚类损失l
cluster
给出为:
[0424]
l
clustrr
=∑
i,j>i
p(xi,xj)d(xi,xj)
ꢀꢀꢀꢀꢀ
等式15c-(1)
[0425]
其中,总和取自所有离散的点对,以及
[0426][0427]
是预测聚类概率的前k个元素的成对点积,以及
[0428][0429]
当xi和xj位于不同平面(包括平行平面)上时,术语d(xi,xj)具有高值,并且当xi和xj位于同一平面上时,术语d(xi,xj)具有低值。进一步地,如果xi和xj具有相似的集分配概率向量,则p(xi,xj)可能很高。当两对属于不同的墙壁但具有相似的集分配概率时,一些实施例将受到惩罚。为了防止将所有点分配给第(k+1)集的简单解决方案,一些实施例使用正则化损失l reg如下:
[0430][0431]
每当点属于任何平面的概率很小时,这些实施例进行惩罚。那么总损失是l cluster+βl reg,其中一些实施例在这些实施例中将β设置为1.0。
[0432]
周边估计:
[0433]
遵循所有墙壁平行于z轴的假设,一些实施例将所有聚类的3d墙壁点投射到x-y平面以生成点云的自顶向下视图。一些实施例使用线性最小二乘估计用于每个集的2d线参数。为了移除重复的墙壁预测,具有线参数的相对法向偏差《θmerge=30
°
和集间点对线误差《e merge=0.3m的集被分配相同的标签。为了在集之间建立连接,一些实施例沿着所有集中值到闭合最短路径。使用基于旅行商问题的算法计算解,并且重新估计2d线参数。然后将生成的线捕捉到最近的正交轴并简单地延伸为相交。两个相邻墙壁段的交点被定义为角。当主要遮挡发生并导致两个连接的平行段时,一些实施例在正交方向上延
伸这些段之一的端点以强制相交。注意,这样的情况很少见,而且肯定比角遮挡要少得多,角遮挡会在许多通过直接角预测操作的布局估计管线中引起问题。
[0434]
数据集:
[0435]
一些实施例描述了用于训练各种网络的数据集,包括用于训练深度聚类模型的综合生成的数据集。
[0436]
公共数据集:
[0437]
一些实施例使用以下数据集来评估各种模型。训练深度网络、评估估计周边以及评估深度和分割模块的scannet数据集。用于训练分割网络的ade20k和sunrgbd数据集。用于对非聚类点云的周边推断进行额外评估的floornet数据集。
[0438]
各种实施例连同正常标签一起构建完全合成的数据集,从从各种形状(矩形、l形、t形、或u形)随机采样的房间周边骨架开始。每个边缘的长度和角度取向以及房间的高度是均匀采样的。添加了高斯噪声,并且一些实施例还包括随机删除圆柱形区域内的点以模拟点云测量中通常出现的消失点。
[0439]
图15f示出了一些实施例中的关于用于生成场景的平面图的图15c所示的流程图的更多细节。更具体地,图15e示出了关于在图15c中的1504c处生成平面图的更多细节。在这些实施例中,一个或多个房间实例和一个或多个墙壁实例可以在1502f处从对具有稀缺的公共可用数据集和/或库的环境(诸如室内环境)的扫描来识别。对于房间实例,可以在1504f处估计闭合周边。
[0440]
在1506f处至少可以通过使用例如投票架构预测多个集。一些实施例通过使用基于投票的架构(诸如下文更详细描述的深度霍夫(hough)投票架构)来预测独立于网络架构的无约束数量的集。在一些实施例中,预测多个集可包括通过使用基于投票的架构来预测独立于网络架构的无约束数量的集,该架构并行执行房间集和墙壁集-至少通过将输入3d点云分离成一个或多个构成房间和墙壁作为3d数据点的非排他性集,无需先验假设在一些实施例中的集的数量。另外或在替代方案中,在1506f处预测多个集可包括执行3d数据点的非排他性聚类,而无需通过以下先验假设聚类的数量:(1)通过使用基于投票的技术将输入点云(3d)分离成构成房间和墙壁,紧接地下文将参考图12c至12d更详细地描述该技术。
[0441]
传统的霍夫投票2d检测器包括离线和在线步骤。首先,给定具有注释的对象边界框的图像的集合,利用图像块(或其特征)与其到对应对象中心的偏移之间的存储映射来构建码本。在推理时间处,从图像中选择感兴趣点以提取它们周围的图块。这些图块然后与码本中的图块进行比较,以检索偏移并计算投票。由于对象图块倾向于投票同意,因此集将在对象中心附近形成。最后,通过将集投票追溯回其生成的图块来检索对象边界。一些实施例识别了该技术非常适合感兴趣的问题的两种方式。第一,基于投票的检测比区域建议网络(rpn)与稀疏集更兼容。对于后者,rpn必须在可能在空白空间中的对象中心附近生成建议,从而导致额外的计算。第二,它基于自下而上的原则,其中累积小部分信息位以形成自信检测。即使神经网络可以潜在地从大的感受野聚集上下文,在投票空间中聚集可能仍然是有益的。然而,由于传统的霍夫投票包括多个独立的模块,因此将其集成到最先进的点云网络中是一个开放的研究课题。为此,一些实施例包括对不同管线成分的以下适应。
[0442]
兴趣点由深度神经网络描述和选择,而不是取决于手工制作的特征。投票生成是
由网络而不是使用码本来学习的。利用更大的感受野,可以使投票不太模糊,从而更有效。另外,可以利用特征向量来增加投票位置,从而允许更好的聚合。投票聚合是用可训练参数通过点云处理层实现的。利用投票特征,网络可以潜在地过滤掉低质量的投票并生成改进的建议。可以从聚合特征直接生成以下形式的对象建议:位置、尺寸、取向、以及甚至语义类,从而减轻追溯投票来源的需要。在下文中,一些实施例描述了如何将所有上述成分组合到单个端到端可训练网络中作为votenet。
[0443]
votenet架构:
[0444]
图12c至12d示出了示例端到端检测网络(votenet)。整个网络可以分为两部分:一部分处理现有点以生成投票;以及另一部分对虚拟点进行操作-投票-以提出和分类对象。图12c示出了votenet的示例架构1256c,其包括用于在点云中进行3d对象检测的对象建议和分类模块1252c和投票模块1250c。在这些实施例中,给定具有xyz坐标的n个点的输入点云,骨干网络(例如,用本文所描述的pointnet++层实现)对点进行子采样和学习深度特征,并输出m个点的子集,但通过c-dim特征扩展。该点的子集可以被认为是种子点。
[0445]
种子可以通过投票模块(例如,1208c)独立生成投票。这些投票可以被分组成集并由建议和分类模块(例如,1220c)处理以生成最终建议。分类(1222c)和nmsed(1224)建议成为最终的3d边界框输出(1226c)。在图12c中,nx3输入点云1202c被提供给投票模块1250c,该投票模块1250c包括生成mx(3+c)(例如,xyz+特征)种子点1206c的点云特征学习模块1204c。投票模块1250c的输出1210c具有m x(3+c)的维度并且可以进一步在对象建议和分类模块1252c中提供给采样和分组模块1212c,其生成输出(1214c、1216c、1218c等)分别提供给可以共享的对应建议和分类模块(1220c)。建议和分类模块1220c的输出1222c可以以0.25的iou阈值由3d nms模块1224c进一步处理以生成最终输出1226c(例如,3d边界框)。
[0446]
图12d示出了利用图12c所示的前述示例架构所处理或生成的各种类型的前述数据的一些图形示例。1202d示出了输入点云的图形示例。1204d示出了对应于相应xyz坐标和特征的一些种子点的图形示例。1206d示出了对种子点进行的投票的图形示例。1208d示出了投票集的图形示例。1210d示出了3d边界框的图形示例输出。
[0447]
学习在点云中投票:
[0448]
根据大小为n
×
3的输入点云,其中n个点中的每一个具有3d坐标,一些实施例旨在生成m个投票,其中每个投票都具有3d坐标和高维特征向量。存在两个主要步骤:通过骨干网络的点云特征学习和根据种子点学习霍夫投票。
[0449]
点云特征学习:
[0450]
生成准确的投票需要几何推理和上下文。取代依赖于手工制作的特征,一些实施例利用最近提出的点云上的深度网络用于点特征学习。虽然一些其他实施例不限于任何点云网络,但是一些实施例由于其简单性而采用pointnet++作为骨干,并且从正常估计语义分割到3d对象定位范围的任务上证明了成功。骨干网络具有若干具有跳跃连接的集合抽象层和特征传播(上采样)层,其输出具有xyz和丰富的c维特征向量的输入点的子集。结果是维度(3+c)的m个种子点。每个种子点生成一个投票。
[0451]
利用深度网络进行霍夫投票:
[0452]
与传统的霍夫投票相比较,投票(与局部关键点的偏移)通过预先计算的码本中的
查来确定,一些实施例基于深度网络用投票模块来生成投票,其更有效(没有knn查)并且更准确,因为它与管线的剩余部分共同训练。
[0453]
给定一组种子点其中si={xi;fi}以及xi∈r3和fi∈rc,共享投票模块独立地从每个种子生成投票。具体地,投票模块用具有完全连接层、relu(修正线性单元)和批量归一化的多层感知(mlp)网络实现。mlp采用种子点fi并输出欧几里德空间偏移δxi∈r3和特征偏移δfi∈rc,使得从种子si生成的投票vi=[yi;gi]具有yi=xi+δxi和gi=fi+δfi。预测的3d偏移δxi由回归损失明确监督。
[0454][0455]
其中1[s
i on object]指示种子点si是否在对象表面上,并且m
pos
是对象表面上种子总数的计数。δx
i*
是从种子位置xi到它属于的对象的边界框中心的真实情况位移。
[0456]
投票与张量表示中的种子相同,但不再基于对象表面。但是更重要的差异在于它们的位置-从同一对象上的种子生成的投票现在比种子更靠近彼此,这使组合来自对象的不同部分的线索更容易。接下来,一些实施例将利用该语义感知位置来聚合用于对象建议的投票特征。
[0457]
根据投票的对象建议和分类:
[0458]
投票为来自对象的不同部分的上下文聚合创建规范的“汇合点(meeting point)”。在对这些投票进行聚类之后,一些实施例聚合它们的特征以生成对象建议并对它们进行分类。
[0459]
通过采样和分组投票聚类。虽然可以存在许多方式来对投票进行聚类,但是一些实施例选择根据空间接近度进行统一采样和分组的简单策略。具体地,从一组投票一些实施例基于3d欧几里德空间中的{yi}使用最远点采样来采样k个投票的子集,以获得{v
ik
},其中k=1,...,k。然后,这些实施例通过寻到每个v
ik
的3d位置的相邻投票形成k个聚类:其中,k=1,...,k。虽然简单,但这种聚类技术很容易集成到端到端管线中,并且在实践中运行良好。
[0460]
根据投票集的建议和分类:
[0461]
由于投票集本质上是一组高暗(high-dim)点,因此一些实施例可以利用通用点集学习网络来聚合投票以便生成对象建议。与用于识别对象边界的传统霍夫投票的回溯步骤相比较,该过程允许甚至从部分观看中提出amodal边界,以及预测其他参数,例如取向、类等。在示例实施方式中,一些实施例使用共享的pointnet用于集中的投票聚合和建议。给定投票集c={wi},其中i=1,...,n,以及其集中心wi,其中wi=[zi;hi]以及zi∈r3作为投票位置,并且hi∈rc作为投票特征。为了使能使用局部投票几何形状,一些实施例将投票位置通过z
′i=(z
i-zj)/r变换到局部归一化坐标系。然后,通过将集合输入传递通过类似pointnet的模块来生成针对该集p(c)的对象建议:
[0462]
p(c)=mlp2{max
i=1,...,n
([z
′i;hi])}
ꢀꢀꢀ
等式15f-(2)
[0463]
在上述等式15f-(2)中,在被最大池化(信道方式)到单个特征向量并传递给mlp 2之前,来自每个集的投票由mlp 1独立处理,其中来自不同投票的信息被进一步组合。一些实施例将建议p表示为具有对象得分、边界框参数(中心、标题和尺度参数化)和语义分类
得分的多维向量。
[0464]
损失函数:
[0465]
建议和分类阶段的损失函数由对象状态、边界框估计和语义分类损失组成。一些实施例监督位于靠近真实情况对象中心(在0.3米内)或远离任何中心(超过0.6米)的投票的对象得分。一些实施例将由这些投票产生的建议分别视为积极建议和消极建议。对于其他建议的对象预测未被惩罚。对象性是经由交叉熵损失来监督的,该交叉熵损失由批次中多个未被忽略的建议归一化。对于积极建议,一些实施例进一步根据最接近的真实情况边界框来监督边界框估计和类预测。具体地,一些实施例将框损失与中心回归、航向角估计和框大小估计解耦。对于语义分类,一些实施例使用标准交叉熵损失。在检测损失的所有回归中,一些实施例使用huber(smooth-l1)损失。在附录中提供了进一步的细节。
[0466]
实现细节:
[0467]
输入和数据增强。检测网络的输入是从弹出的深度图像(n=20k)或3d扫描(网格顶点,n=40k)中随机子采样的n个点的点云。除了xyz坐标之外,一些实施例还包括每个点的高度特征,指示其到地板的距离。地板高度被估计为所有点高度的1%。为了增加训练数据,一些实施例从实时场景点中随机子采样点。一些实施例还在两个水平方向上随机翻转点云,围绕垂直轴随机旋转场景点uniform[-5
°
,5
°
],以及随机缩放点uniform[0.9,1.1]。
[0468]
训练网络:
[0469]
一些实施例用adam优化器、批量大小为8和初始学习率为0.001从头开始端到端地训练整个网络。学习率在80个epoch之后减小10倍,并且然后在120个epoch之后又减小10倍。训练模型以收敛在一上,volta quadro gp100 gpu在sun rgb-d上大约需要10个小时,在scannetv2上需要不到4个小时。在一些实施例中,votenet能够获取整个场景的点云并在一次前向传递中生成建议。建议以0.25的iou阈值由3d nms模块进行后处理。评估遵循与使用平均平均精度相同的协议。
[0470]
一些实施例执行房间和/或墙壁回归以通过以一个或多个尺度至少计算特征来在1508f处提取特征,以确定输入点云的子采样版本(例如,一组种子点)并确定通过输入点云的子采样版本投的投票。在一些实施例中,1508f处的房间和/或墙壁回归可以用基于pointnet和/或基于pointnet++的模块执行,其在上文参考图15d在下文更详细地描述。可以在1510f处执行投票聚类;以及可以在1512f处估计房间周边。
[0471]
图15g示出了一些实施例中的关于用于生成场景的平面图的图15f所示的流程图的更多细节。更具体地,图15g示出了关于在图15f的1510f处执行投票聚类的更多细节。在这些实施例中,可以在1502g处识别一组投票或预测投票。一个或多个房间实例和一个或多个墙壁实例可以在1504g处至少通过针对种子点生成集标签来确定。一些实施例至少通过将房间投票(或预测的房间投票)联接成一个或多个房间投票并且进一步至少通过将墙壁投票(或预测的墙壁投票)联接成一个或多个墙壁投票来在1506g处准备聚类输入。
[0472]
可以在一个或多个房间投票和/或一个或多个墙壁投票上在1508g处执行聚类,以分配一个或多个房间标签和/或一个或多个墙壁标签。在一些实施例中,基于密度的空间聚类(例如,dbscan或具有噪声的应用的基于密度的空间聚类)可以单独用房间和墙壁投票上的eps=ε在1508g处执行并且将集标签分配给每个投票使得q'属于{r,w},其中q’=r暗示标签是用于房间的集分配,并且q’=w暗示标签是用于墙壁的集分配,纯基于
投票的空间密度分度而不限制最大集数(例如,房间或墙壁)。
[0473]
dbscan模型在半径ε内基于邻域数量的阈值minpts(具有任意距离度量)使用简单的最小密度级别估计。在此半径内(包括查询点)具有多于minpts个邻域的对象被认为是核心点。dbscan的直觉是到满足该最小密度并且由较低密度的区域分离的那些区域。出于效率原因,dbscan不执行点之间的密度估计。相反,核心点的ε半径内的所有邻居被认为是与核心点相同的集的一部分(被称为直接密度可达)。如果这些邻居中的任何一个再次是核心点,则它们的邻域被传递包括(密度可达)。该集合中的非核心点被称为边界点,并且同一集合内的所有点是密度连接的。从任何核心点是密度不可达的点被认为是噪声并且不属于任何集。
[0474]
而且,dbscan模块根据上述模型计算集(除了属于多个集的边界点仅被分配给其中一个之外)。在该算法中,对数据库进行线性扫描用于尚未处理的对象。非核心点被分配给噪声,并且当发现核心点时,它的邻居被迭代扩展并添加到集。当由线性扫描稍后遇到时,然后将跳过已分配给集的对象。该基本算法是计算关系的传递闭包的标准方法,仅需扩展核心点即可进行最小修改。然而,如果使用数据库索引,则这可以产生相当有效的算法。算法1给出了用于该dbscan算法的简化伪代码。在该伪代码中存在两个对函数rangequery的调用。第3行和第13行仅在该点尚未被标记的情况下执行,在这种情况下,该点随后被标记。这使得很容易看到以下特性:(i)仅对标记为未定义的点执行邻域查询。(ii)如果对点执行邻域查询,该点随后会被标记为集标签或噪声。(iii)点被重新标记的唯一时间是它的标签在第11行从噪声变为集标签时。因此,一些实施例对数据库中的每个点准确地执行一个邻域查询。如果第10行中的种子集迭代充分实现,则该循环最多对数据库中的每个点执行一次,并且一些实施例获得运行时复杂度o(c+n
×
q+∑iri),其中q是函数rangequery的复杂度并且ri是第i个查询的结果大小。如果数据尚未存储在索引数据库中,则一些实施例考虑索引构建时间c,其产生总运行时复杂度o(c+n
×
q+eiri)。索引可能还需要附加的存储,因此一些实施例具有空间复杂度o(n+i)来存储集标签和索引。
[0475]
然而,如果它是支持范围查询(在其它查询中)的“通用”索引(诸如r*树),则索引可以跨算法的多次运行被共享,并且不同的算法可以受益于相同的索引。使用线性扫描实现范围查询产生q∈θ(n
·
d),计算两点距离的成本为d,然后dbscan运行时复杂度为θ(n2·
d)。对于维数d的欧几里德空间,这是θ(n2·
d),但是当使用昂贵的距离函数(诸如共享最近邻居距离)时,复杂度甚至可以是o(n3)。dbscan从未被限制使用欧几里德距离或rd中的点,但总是打算也与地理数据、多边形和其他数据类型一起使用。该“原始dbscan”算法不是基于理论dbscan集模型产生聚类的仅有算法。例如,scikit-learn 0.16包括以下变型:首先实现所有邻域(其产生最坏情况的二次存储),然后仅在核心点以“向量化”方式执行集扩展。总体运行时复杂度没有提高,但是这通过python/numpy运行时环境执行更有效。该dbscan算法的结果是确定性的,但如果数据集被置换,则可能改变。首先,集标签可以取决于发现集的顺序进行细微改变。其次,dbscan理论模型中的边界点可以从多于一个集进行密度可达。原始dbscan算法仅将边界点分配给它们可以到达的第一集,因为从用户的角度来看,通常需要唯一的集分配,并且这需要最少的存储。因为这是一种很少感兴趣的罕见情况,所以没有必要尝试数据集的不同排列。在hdbscan*的改进集模型中,由于不再存在边界点,因此已经移除该异常。在一些实施例中,讨论原始dbscan算法复杂度
的问题是邻域查询rangequery的运行时复杂度q。该查询构成了可重用(其他算法也可以使用rangequery)和强大的接口,用于在数据库之上有效地实现和优化数据挖掘算法。但是如果该查询未被加速,运行时间是θ(n2
·
d),其中d是距离计算的成本。
[0476]
当查看样本点集时,一些实施例可以容易且明确地检测点的集和不属于那些集中的任何一个的噪声点。这些实施例识别集的主要原因在于,在每个集内,这些实施例具有显著高于集外部的典型点密度。此外,噪声区域内的密度低于任何集中的密度。在下文中,一些实施例在一些k维空间s的点的数据库d中将这种直观的“集”和“噪声”概念形式化。注意,集的概念和算法dbscan也适用于2d或3d欧几里德空间,也适用于一些高维特征空间。关键思想是,对于集的每个点,给定半径的邻域必须包含至少最少数量的点,例如,邻域中的密度必须超过某个阈值。邻域的形状由两个点p和q的距离函数的选择确定,由dist(p,q)表示。例如,当在2d空间中使用曼哈顿距离时,邻域的形状是矩形的。注意,本文所描述的采用dbscan的各种实施例与任何距离函数一起工作,使得可以针对一些给定的应用选择适当的函数。出于正确可视化的目的,所有示例将在2d空间中使用欧几里德距离。
[0477]
定义1:(点的eps邻域)由n
eps
(p)表示的点p的eps邻域由n
eps
(p)={q∈d|dist(p,q)≤eps}定义。
[0478]
朴素方法可能对于集中的每个点需要在该点的eps邻域中至少存在最小数量(minpts)的点。然而,该方法失败了,因为集中存在两种点,集内部的点(核心点)和集的边界上的点(边界点)。通常,边界点的eps邻域包含比核心点的eps邻域显著更少的点。因此,一些实施例将最小点数设置为相对低的值,以便包括属于相同集的所有点。然而,该值将不是用于相应集的特性-特别是在存在噪声的情况下。因此,一些实施例需要对于集c中的每个点p,在c中存在点q,使得p在q的eps邻域内部并且n
eps
(q)包含至少minpts点。该定义在下文中详细阐述。
[0479]
定义2:(直接密度可达)点p从相对于eps,minpts的点直接密度可达,如果1)q∈n
eps
(q)和2)|n
eps
(q)|≥minpts(core point conditin)。
[0480]
直接密度可达对于核心点对是对称的。通常,然而,如果涉及一个核心点和一个边界点,则它是不对称的。
[0481]
定义3:(密度可达)如果存在点链p1,...,pn,p1=q,pn=p,使得p
i+1
从pi直接密度可达,则点p是相对于eps和minpts从点q密度可达的。
[0482]
密度可达性是直接密度可达性的规范扩展。该关系是传递的,但它不是对称的。尽管通常不是对称的,但是很明显密度可达性对于核心点是对称的。相同集c的两个边界点可能在彼此之间密度不可达,因为核心点条件可能不适用于它们。然而,c中必须存在一个核心点,从该核心点c的两个边界点都是密度可达的。因此,一些实施例引入了覆盖边界点的这种关系的密度连接性的概念。
[0483]
定义:(密度连接)如果存在点“o”,则点“p”相对于eps和minpts密度收集到点“q”,使得p和q相对于eps和minpts从o密度可达。
[0484]
密度-连接性是一种对称关系。对于密度可达点,密度-连接性的关系也是自反的。现在,一些实施例能够定义集的基于密度的概念。直观地,集被定义为一组密度连接的点,这些点关于密度可达性是最大的。噪声将相对于给定的一组集进行定义。噪声简单地
是d中不属于任何其集的点集。
[0485]
定义5:(集)让d是点的数据库。关于eps和minpts的集c是满足以下条件的d的非空子集:1)如果p∈c和q相对于eps和minpts从p密度可达,那么q∈c(极大性);以及2)p相对于eps和minpts密度连接到q(连接性)。
[0486]
定义6:(噪声)让c1,...,ck相对于参数epsi和minptsi,i=1,

,k是数据库d的集。然后,将噪声定义为数据库d中不属于任何集ci的点集,例如,
[0487]
注意,由于以下原因,关于eps和minpts的集c至少包含minpts个点。由于c包含至少一个点p,因此p必须经由某个点o(其可以等于顶部)密度连接到自身。因此,至少o必须满足核心点条件,并且,因此,o的eps邻域至少包含minpts点。以下引理对于验证聚类算法的正确性很重要。直观地,他们陈述了以下内容。给定参数eps和minpts,一些实施例可以以两步方法发现集。首先,从数据库中选择满足核心点条件的任意点作为种子。其次,检索从种子密度可达的所有点,获得包含种子的集。
[0488]
引理1:让p是d中的一个点,并且|n
eps
(p)|≥minpts。然后设置0={o|o∈d和o是相对于eps和minpts从p密度可达的}是相对于ep和minpts的集。并不明显,集c相对于和minpts由其任何核心点唯一确定。然而,c中的每个点从c的任何核心点密度可达,并且,因此,集c恰好包含从c的任意核心点密度可达的点。
[0489]
引理2:让c是关于eps和minpts的集,并且让p是c中具有|n
eps
(p)|≥minpts的任何点。那么c等于集合0={o|o是相对于eps和minpts从p密度可达的}。
[0490]
具有噪声的应用的基于密度的空间聚类:
[0491]
一些实施例呈现算法dbscan(具有噪声的应用的基于密度的空间聚类),其被设计为根据定义5和6发现空间数据库中的聚类和噪声。理想地,一些实施例将必须知道每个集的适当参数eps和minpts以及来自相应集的至少一个点。然后,这些实施例可以使用正确的参数检索从给定点密度可达的所有点。但是,对于数据库的所有集,不存在简单的方式来提前获得该信息。然而,存在简单且有效的启发式(在第4.2节中呈现)来确定数据库中“最薄”(例如,最小密集)集的参数eps和minpts。因此,dbscan使用用于eps和minpts的全局值,例如,用于所有集的相同值。“最薄”集的密度参数是用于这些全局参数值的良好候选,全局参数值指定了不被认为是噪声的最低密度。
[0492]
为了到集,dbscan从任意点p开始,并检索相对于eps和minpts从p密度可达的所有点。如果p是核心点,则此过程产生关于eps和minpts的集(参见引理2)。如果p是边界点,则无点从p密度可达,并且dbscan访问数据库的下一个点。由于一些实施例使用用于eps和minpts的全局值,因此如果两个不同密度的集彼此“接近”,则dbscan可以根据定义5将两个集合并为一个集。让两个点集s1和s2之间的距离定义为dist(s1,s2)=min{dist(p,q)i p∈s1,q∈s2}。然后,仅当两个集合之间的距离大于eps时,至少具有最薄集的密度的两个点集将彼此分开。因此,对于具有用于minpts的较高值的检测到的集,dbscan的递归调用可能是必要的。然而,这不是缺点,因为dbscan的递归应用产生了一种优雅且非常有效的基本算法。此外,集的点的递归聚类仅在可以容易检测的条件下是必要的。在下文中,一些实施例呈现了dbscan的基本版本,省略了数据类型的细节并生成关于集的附加
信息:
[0493][0494]
setof points是整个数据库或从先前运行中发现的集。eps和minpts是手动或根据第4.2节中呈现的启发式确定的全局密度参数。函数setof points.get(i)返回setof点的第i个元素。由dbscan使用的最重要的函数是下文呈现的expandcluster:
[0495][0496][0497]
setof points.regionquery(point,eps)的调用将setof points中的点的eps邻域作为点的列表返回。区域查询可以通过空间访问方法有效地支持,诸如假定在sdbs中可
用的r*-trees,用于有效处理几种类型的空间查询。对于最坏情况下n个点的数据库,r*-tree的高度是o(log n),具有“小”查询区域的查询必须仅遍历r*-tree中有限数量的路径。由于与整个数据空间的大小相比较,eps邻域预期较小,因此单个区域查询的平均运行时间复杂度是o(log n)。对于数据库的n个点中的每一个,一些实施例最多具有一个区域查询。因此,dbscan的平均运行时间复杂度是o(n*log n)。标记为噪声(noise)的clid(clusterld)可以稍后改变,如果它们从数据库的某个其他点密度可达。这针对集的边界点发生。那些点未被添加到种子列表中,因为一些实施例已经知道具有噪声clld的点不是核心点。将那些点添加到种子将仅导致附加的区域查询,这将不产生新的答案。如果两个集c1和c2彼此非常接近,则可能发生某个点p属于c1和c2两者。那么p必须是两个集中的边界点,因为否则c1将等于c2,因为一些实施例使用全局参数。在这种情况下,点p将被分配给首先发现的集。除了这些罕见情况之外,db扫描的结果与由于引理2访问数据库点的顺序无关。
[0498]
为了确定参数eps和minpts,一些实施例使用启发式来确定数据库中“最薄”集的参数eps和minpts。该启发式基于以下观察。让d是点p到其第k个最近邻居的距离,那么p的d邻域准确地包含针对几乎所有点p的k+i个点。只有当几个点与p具有完全相同的距离d时,p的d邻域才包含超过k+1个点,这是不太可能的。此外,改变集中的点的k不导致d的大变化。只有当p fork=i,2,3,...的第k个最近邻居近似位于直线上时才发生这种情况,这对于集中的点通常不是真的。对于给定k,一些实施例将从数据库d到实数来定义函数k-dist,将每个点映射到距其第k个最近邻居的距离。当以其k-dist值的递减顺序对数据库的点进行排序时,该函数的图给出了关于数据库中的密度分布的一些提示。该图可以称为排序的k-dist图。如果选择任意点p,则一些实施例将参数eps设置为k-dist(p)并将参数minpts设置为k,具有相等或较小k-dist值的所有点将是核心点。如果在d的“最薄”集中存在具有最大k-dist值的阈值点,则可以获得期望的参数值。阈值点是排序的k-dist图的第一个“谷”中的第一个点。具有较高k-dist值(阈值的左边)的所有点被认为是噪声,所有其他点(阈值的右边)被分配给某个集。
[0499]
通常,自动检测到第一个“谷”可能是困难的,但是对于用户以图形表示看到该谷是相对简单的。因此,一些实施例遵循用于确定阈值点的交互式方法。dbscan需要两个参数,eps和minpts。然而,实验表明,k-dist图叉(graph fork)》4与4-dist图没有显著不同,并且,此外,它们需要相当更多的计算。因此,这些实施例通过对于所有数据库(对于二维数据)将参数minpts设置为4来消除参数minpts。
[0500]
在一些实施例中,由dbscan引入的模型在半径ε内基于邻居数量minpts的阈值(具有任意距离度量)使用简单的最小密度级别估计。在此半径内(包括查询点)具有多于minpts邻居的对象被认为是核心点。dbscan的直觉是到满足该最小密度并且由较低密度的区域分离的那些区域。出于效率原因,dbscan不执行点之间的密度估计。相反,核心点的ε半径内的所有邻居被认为是与核心点相同的集的一部分(被称为直接密度可达)。如果这些邻居中的任何一个再次是核心点,则它们的邻域被传递包括(密度可达)。该集合中的非核心点被称为边界点,并且同一集合内的所有点是密度连接的。从任何核心点密度不可达的点被认为是噪声并且不属于任何集。
[0501]
dbscan模型进一步根据上述模型计算集(除了属于多个集的边界点仅被分配
给其中一个之外)。在该算法中,对数据库进行线性扫描用于尚未处理的对象。非核心点被分配给噪声,并且当发现核心点时,它的邻居被迭代扩展并添加到集中。当由线性扫描稍后遇到时,然后将跳过已分配给集的对象。该基本算法是计算关系的传递闭包的标准方法,仅需扩展核心点即可进行最小修改。然而,如果使用数据库索引,则这可以产生相当有效的算法。算法1给出了用于该dbscan算法的简化伪代码。dbscan模型通常具有以下特性:(i)仅对标记为未定义的点执行邻域查询。(ii)如果对点执行邻域查询,该点随后会被标记为集标签或噪声。(iii)点被重新标记的唯一时间是它的标签在第11行从噪声变为集标签时。一些实施例对数据库中的每个点准确地执行一个邻域查询。如果第中的种子集迭代被充分实现,则该循环最多对数据库中的每个点执行一次,并且这些实施例获得运行时复杂度o(c+n
×
q+∑
iri
),其中q是函数rangequery的复杂度并且ri是第i个查询的结果大小。如果数据尚未存储在索引数据库中,则一些实施例可能需要考虑索引构建时间c,其产生总运行时复杂度o(c+n
×
q+∑
iri
)。索引可能还需要附加的存储,因此这些实施例具有空间复杂度o(n+i)来存储集标签和索引。
[0502]
然而,如果它是支持范围查询(在其它查询中)的“通用”索引(诸如r*树),则索引可以跨算法的多次运行被共享,并且不同的算法可以受益于相同的索引。使用线性扫描实现范围查询产生q∈θ(n
·
d),计算两点距离的成本为d,然后dbscan运行时复杂度为θ(n2·
d)。对于维数d的欧几里德空间,这是θ(n2·
d),但是当使用昂贵的距离函数(诸如共享最近邻居距离)时,复杂度甚至可以是o(n3)。dbscan从未被限制使用欧几里德距离或rd中的点,但总是打算也与地理数据、多边形和其他数据类型一起使用。
[0503]
利用在1508g处执行的聚类,可以至少通过从对应的房间投票和/或墙壁投票回溯一个或多个房间标签和/或一个或多个墙壁标签到对应的种子点来在1510g处生成分配。在1512g处,至少可以通过对房间点集合和墙壁点集合执行相交来确定墙壁点的列表。
[0504]
图15h示出了一些实施例中的关于用于生成场景的平面图的图15f所示的流程图的更多细节。更具体地,图15h示出了关于在图15f的1512f处估计房间周边的更多细节。在这些实施例中,可以在1502h处识别房间点集合和用于房间的一个或多个墙壁点集合。可以在1504h处,通过获得对室内环境布局的理解和对诸如扩展现实、场景理解等技术领域中的空间的远程几何形状的理解来确定单独房间周边。在一些实施例中,可以在1504h处,至少通过使用上文参考图15e所描述的深度周边模块来确定单独的房间周边。
[0505]
在1506h处,房间点中的点和用于房间的墙壁点中的点可以投射到平面。例如,可以将这些点投射到水平平面,诸如x-y平面,其中z方向表示重力方向。通过使用场景分析或场景理解模块,可以在1508h处为一个或多个墙壁点集合中的点预测二维(2d)线段。在一些实施例中,可以通过使用随机样本一致性(ransac)模型在1508h处针对墙壁点预测2d线段。
[0506]
为将模型拟合到实验数据而开发的随机样本一致性(ransac)模型可用于场景分析和自动制图。所讨论的应用,位置确定问题(lop)以超出ransac范例的使用的仅有示例的水平的水平来处理;描述了关于可以解决ldp的条件的新的基本发现,并且描述了一些实施例预期将具有近期实际应用的解决该问题的综合方法。在很大程度上,场景分析(并且,实际上,通常科学)涉及根据一组预定义模型解释感测数据。在概念上,解释涉及两个不同的活动:首先,存在在数据与可用模型中的一个之间到最佳匹配的问题(分类问题);其次,存在计算所选择模型的自由参数的最佳值的问题(参数估计问题)。实际上,这两个问题不
是独立的-常常需要解决参数估计问题来解决分类问题。用于参数估计的经典技术(诸如最小二乘法)优化(根据指定的目标函数)功能描述(模型)对所有呈现数据的拟合。这些技术没有用于检测和拒绝严重误差的内部机制。它们是依赖于假设(平滑假设)的平均技术,即来自假设模型的任何数据的最大预期偏差是数据集的大小的直接函数,并且因此不管数据集的大小如何,将总是存在足够的好值来平滑出任何总偏差。
[0507]
在许多实际的参数估计问题中,平滑假设不成立;例如,数据包含未补偿的总误差(gross error)。为了处理这种情况,已经提出了几种启发式方法。通常采用的技术是以下一些变化:首先使用所有数据导出模型参数,然后定位最远离与实例化模型一致的数据,假设它是总误差,删除它,并迭代该过程直到最大偏差小于某个预设阈值或直到没有足够的数据继续。可以容易地示出,与一组好的数据混合的单个总误差(“中毒点”)可能导致上述启发式失败(例如,参见图13a)。采用平均的传统方法可能不是适用于未经验证的数据集的合适技术。
[0508]
在一些实施例中,ransac模型平滑包括显著百分比的总误差的数据。该模型也适用于场景分析,因为经常出错的局部特征检测器是提供给解释算法的数据源。局部特征检测器产生两类误差——分类误差和测量误差。当特征检测器错误地将图像的一部分识别为特征的出现时,发生分类误差。当特征检测器正确识别特征时发生测量误差,但稍微错误计算其参数之一(例如,其图像位置)。测量误差通常遵循正态分布,并且因此平滑假设适用于它们。然而,分类误差是总误差,具有比测量误差显著更大的影响,并且不平均。ransac模型可用于解决位置确定问题“给定一组“界标(landmark)”(“控制点”),这些“界标”的位置在一些坐标系中是已知的,确定从其获得界标的图像的该点在空间中的位置(相对于界标的坐标系)”。
[0509]
响应于ransac要求,根据获得解决方案需要的最小界标数量导出了一些新的结果,并且然后提出了用于以封闭形式计算这些最小界标解决方案的算法。(传统技术是迭代的,并且需要良好的初始猜测以确保收敛。)这些结果形成了用于在严格的观看和分析条件下可以解决ldp的自动系统的基础。特别地,即使由于低可见性、地形变化或图像分析误差,大量的界标不正确地定位,系统也适当地执行。呈现实现细节和实验结果以完成ldp应用的描述。
[0510]
ransac模型中的过程与传统平滑技术的过程相反:ransac不是使用尽可能多的数据来获得初始解决方案,并且然后尝试消除无效数据点,而是使用尽可能小的初始数据集,并在可能的情况下用一致的数据扩大该集。例如,给定将圆的弧拟合到二维点集合的任务,ransac方法将是选择三个点集合(因为需要三个点来确定圆),计算隐含圆的中心和半径,并且计算距离该圆足够近的点数以建议它们与其兼容(例如,它们的偏差足够小以测量误差)。如果存在足够的兼容点,ransac将采用诸如最小二乘法的平滑技术,以便在识别了一组相互一致的点之后,计算圆参数的改进估计。ransac范式更正式地表述如下:
[0511]
给定需要最少n个数据点以实例化其自由参数的模型,以及一组数据点p,使得p中的点数大于n[#(p)2≥n],从p中随机选择n个数据点的子集s1并实例化模型。使用实例化的模型m1来确定p中在m1的某个误差容限内的点的子集s1*。集合s1*被称为si的共识集合。
[0512]
如果#(s1*)大于某个阈值t(它是p中总误差数量的估计的函数),则使用sl*计算(可能使用最小二乘法)新模型m1*。如果#(s1*)小于t,则随机选择新子集s2并且重复以上
过程。如果在一些预定数量的试验之后,没有到与t或更多成员的共识集合,要么用到的最大共识集合求解模型,要么以失败终止。
[0513]
存在由ransac模型对上述算法的两个明显改进:首先,如果存在用于选择点以形成s的问题相关的基本原理,则使用确定性选择过程而不是随机选择过程;其次,一旦到适合的共识集合s*并实例化模型m*,则从p添加与m*一致的任何新点到s*,并且根据该更大的集合计算新模型。ransac范例包括三个未指定的参数:(1)用于确定点是否与模型兼容的误差容限,(2)要尝试的子集的数量,以及(3)阈值t,这是用于暗示已到正确模型的兼容点的数量。在以下小节中讨论了用于计算这些参数的合理值的方法。
[0514]
用于建立数据(datum)/模型兼容性的误差容限:数据与模型的偏差是与数据相关联的误差和与模型相关联的误差的函数(其部分是与用于实例化模型的数据相关联的误差的函数)。如果模型是数据点的简单函数,则用分析方法建立合理的误差容限范围可能是实际的。然而,该简单的方法通常是不能工作的;对于这样的情况,通常用实验方法估计误差容限的范围是可能的。样本偏差可以通过扰动数据、计算模型和测量隐含误差来产生。然后可以将误差容限设置为超出测量的平均误差一或两个标准偏差。数据与假设模型的预期偏差通常是数据的函数,因此误差容限对于每个数据应该不同。然而,与总误差的大小相比较,误差容限的变化通常相对小。因此,用于所有数据的单一误差容限通常是足够的。
[0515]
到共识集合的最大尝试次数:停止选择p的新子集的决定可以基于选择n个好数据点的子集所需的预期试验次数k。让w是任何选择数据点在模型误差容限内的概率。然后,这些实施例具有:
[0516]
e(k)=b+2*(1-b)*b+3*(1-b)2*b...+i*(l-b)i-l*b+...,
[0517]
e(k)=b*[l+2*a+3*a2…
+i*a
i-l
+...],
[0518]
其中,e(k)是k的期望值,b=wn,以及a=(1-b)。
[0519]
几何级数之和的恒等式是a/(1-a)=a+a2+a3...+ai+...。
[0520]
将上述恒等式相对于a进行微分,这些实施例具有:
[0521]
1/(1-a)2=l+2*a+3*a2…
+i*a
i-1
+....
[0522]
因此,e(k)=l/b=w-n
[0523]
一些实施例可以在过程终止之前超过e(k)试验一或两个标准偏差。注意,k的标准偏差sd(k)由下式给出:
[0524]
sd(k)=sqrt[e(k2)-e(k)2,
[0525]
然后
[0526][0527]
但是(使用几何级数恒等式和两个微分:
[0528][0529]
因此,
[0530]
e(k2)=(2-b)/(b2)
[0531]
并且
[0532]
sd(k)=[sqrt(1-wn)]*(1/wn).
[0533]
应注意,通常sd(k)将近似等于e(k);因此,例如,如果(w=0.5)和(n=4),那么e(k)=16并且sd(k)=15.5。这意味着人们可能想要尝试两到三倍由k所暗示的随机选择的预期数量(如上文制表的),以获得多于t个成员的共识集合。从稍微不同的观点,如果一些实施例将以概率z确保随机选择中的至少一个是n个数据点的无错误集合,那么这些实施例必须期望进行至少k个选择(每个选择n个数据点),其中(i-b)k=(l-z),
[0534]
k=[log(l-z)]/[log(l-b)]。
[0535]
例如,如果(w=0.5)并且(n=4),那么(b=1/16)。为了获得进行至少一个无误差选择的90%保证,
[0536]
k=log(o.l)/log(l5/16)=35.7。
[0537]
注意,如果wn《《l,那么k~log(l-z)e(k)。因此,如果z=0.90并且wn《《1,那么k~2.3e(k);如果z=0.95并且wn《《1,那么k~3.0e(k)。
[0538]
关于可接受的共识集合的大小的下限:阈值t是ransac范例的形式陈述中未指定的参数,它被用作确定已到p的n个子集的基础,该子集暗示足够大的共识集合以允许算法终止。因此,t必须选择足够大以满足两个目的:已经为数据到正确模型,以及已经到足够数量的相互一致的点以满足最终平滑过程(其计算用于模型参数的改进估计)的需要。为了确保最终共识集合与不正确模型兼容的可能性,并且假设y是任何给定数据点在不正确模型的误差容限内的概率,一些实施例希望y
t-n
非常小。虽然不存在精确确定y的一般方式,但是假设它小于w(例如,w是给定数据点在正确模型的误差容限内的先验概率)当然是合理的。假设y《0.5,t-n的值等于5将提供优于95%概率,即将不发生与不正确模型的兼容性。为了满足最终平滑过程的需要,必须指定要使用的特定过程。如果要使用最小二乘平滑,则在许多情况下可以调用正式方法来确定产生期望精度所需的点数。
[0539]
一些实施例将ransac应用于图13a中所描述的示例。等于0.85的w值(任何选择的数据点在模型的误差容限内的概率)与数据一致,并且提供0.8个单位的容限(以建立数据/模型兼容性)作为问题陈述的一部分。ransac提供的模型将被接受,无需最终共识集合的外部平滑;因此,一些实施例可以获得包括所有七个数据点的共识集合。由于这些点中的一个是总误差,因此明显一些实施例将不到期望大小的共识集合,并且因此这些实施例将以这些实施例能够到的最大集合终止。先前提出的理论表明,如果一些实施例一次获取两个数据点,计算通过两个数据点的线,测量剩余点与该线的偏差,则这些实施例应该期望在两个或三个试验内到适合的共识集合;然而,由于有限的数据量,一些实施例可以尝试所有21种组合来到最大的共识集合。在任一情况下,一些实施例可以容易地到包含六个有效数据点和它们暗示的线的共识集合。
[0540]
位置确定问题(ldp):图像分析中的基本问题是在给定场景的元素的两个表示之间建立对应关系。该问题的一个变化,特别是在制图学中重要,是通过识别图像中出现的一组界标(控制点)来确定空间中从其获得图像或照片的位置(这不同地被称为确定元素的外部相机取向、或相机校准问题、或图像到数据库对应问题)。它通常使用最小二乘技术[11,8]与人类操作者交互地建立图像点与对应控制点的三维坐标之间的关联来解决。然而,在全自动化系统中,其中,对应关系必须基于边缘能力(competent)特征检测器的决策,最小二乘法常常不能够处理可能导致的总误差;在第ii节中详细讨论的这种考虑在第iv节中呈
现的示例中的ldp进行了说明。在本节中,基于ransac范例提出了ldp的新解决方案,该范例在容忍输入数据中的总误差的能力方面是唯一的。一些实施例将首先检查ldp的解决方案可能的条件并描述关于该问题的新结果;然后,这些实施例呈现了基于ransac的算法的完整描述,并且最后描述了通过使用算法获得的实验结果。
[0541]
ldp可以正式定义如下:给定m个控制点集合,其三维坐标在一些坐标系中是已知的,并且给定其中它们控制点中的某个子集是可见的图像,确定从其获得图像的位置(相对于控制点的坐标系)。一些实施例将初始假设这些实施例知道n个图像点与控制点之间的对应关系;一些其他实施例考虑这些对应关系中的一些对应关系是无效的情况。一些实施例还将假设图像平面中的主要点(其中相机的光轴穿透图像平面)和成像系统的焦距(从透视中心到图像平面中的主要点的距离)是已知的;因此(参见图13b)一些实施例可以从透视中心(cp)容易地计算到任何一对控制点的角度。最后,一些实施例假设相机驻留在包围控制点的凸包的外部和上方。如果一些实施例可以计算从cp到控制点中的三个的光线长度,那么这些实施例可以直接求解cp的位置(以及如果期望的话,图像平面的取向)。因此,ldp的等效但数学上更简洁的陈述是给定n个控制点的相对空间位置,并且给定从称为透视中心(cp)的附加点到每对控制点的角度,到将cp连接到每个控制点的线段(“边”)的长度。这可以被称为“透视n点(perspective-n-point)”问题(pnp)。为了应用ransac范例,一些实施例可以确定解决pnp问题可能的n的最小值。
[0542]
透视n点问题的解决方案:pip问题(n=i)不提供约束信息,因此无限的解是可能的。图13c中所示的p2p问题(n=2)还承认了无限的解;cp可以位于直径rab/sin(oab)的圆上的任何位置,围绕连接两个控制点a和b的弦(线)在空间中旋转。p3p问题(n=3)需要一些实施例确定四面体的三条边的长度,给定相对的三面角的基本尺寸和面角(参见图13d)。该问题的解由三个方程[a*]暗示:
[0543][0544]
众所周知,在n个未知数中,n个独立多形式方程的解不能多于它们各自阶次的乘积[2]。因此,系统a*最多可以有八个解。然而,由于系统a*中的每个项是常数或二次值,因此对于每个实际的正解,存在几何同构的负解。因此,存在a*的最多四个正解,并且在图13e-(a)至13e-(c)中,一些实施例证明了证明四个解的上限可达到的示例。
[0545]
一些实施例导出用于系统a*的显式代数解。这通过以下来实现:将a*减少为表示四面体的两条边的比率的一个未知数中的双二次(四次)多项式,并且然后直接求解该方程(一些实施例还可以呈现用于从给定问题数据中获得解的非常简单的迭代方法)。
[0546]
对于情况n=4,当所有四个控制点位于共同平面中(不包含cp,并且使得不超过两个控制点位于任何单个线上),一些实施例提供将总是产生唯一解的技术。出人意料地,当所有四个控制点不位于相同平面上时,不能总是确保唯一解;例如,图13f-(a)至13f-(c)示出了对于具有“一般位置”的控制点的p4p问题,至少两个解是可能的。为了求解在四个非平面控制点的情况下cp的位置,一些实施例可以在一次取三个的控制点的两个不同子集上使用该算法;两个子集共同的(一个或多个)解将cp定位在给定信息固有的模糊范围内。用于构建图13f-(a)至13f-(c)所示的示例的方法可以扩展到任何数量的附加点。
[0547]
它基于图13c中描绘的原理;如果cp和任何数量的控制点位于同一个圆上,那么任何一对控制点与cp之间的角度将与cp的圆上的位置无关(并且因此cp的位置无法确定)。因此,一些实施例能够构造图13g中所示的示例,其中一般位置的五个控制点暗示psp问题的两个解。虽然相同的技术适用于六个或更多控制点,但是这些点中的四个或更多个现在必须位于同一平面内,并且因此不再处于一般位置。为了证明一般位置的六个(或更多)控制点将总是产生p6p问题的唯一解,可以注意到,对于这种情况,一些实施例可以总是求解指定从3空间到2空间的映射(在齐次坐标中)的3x 4矩阵t的12个系数;六个对应关系中的每一个提供了三个新方程并引入了一个附加的未知数(齐次坐标尺度因子)。因此,对于六个控制点,一些实施例具有18个线性方程来求解18个未知数(实际上,可以显示,最多17个未知数是独立的)。给定变换矩阵t,一些实施例构造位于具有给定控制点中的三个控制点的共同平面中的附加(合成)控制点,并计算其在图像平面中的位置;并且可以获得唯一的解。
[0548]
考虑图13e-(a)中的四面体。底部(base)abc是等边三角形,并且“边”(例如,la、lb和lc)全部相等。因此,l处的三个面角(例如,《alb、《alc和《blc)全部相等。通过余弦定理,可以建立以下内容:cos(α)=5/8。该四面体定义了p3p问题的一个解。在图13e-(b)中示出了第二个解。它是通过将l关于bc旋转从第一个获得的。需要验证l'a的长度可以是1,给定刚性三角形abc和角度α。根据余弦定理,可以建立以下内容:
[0549][0550]
其减少到:
[0551]
(l

a-1)*(l

a-4)=0
[0552]
因此,l'a可以是1或4。fig.13e-(a)示出了l'a=4的情况,并且fig.13e-(b)示出了l'a=1的情况。注意,重新定位底部三角形,使得其顶点移动到边上的不同位置相当于重新定位l。图13e-(c)示出了对应于第二个解的底部三角形的位置。由于图13e-(a)中的四面体是三重旋转对称的,因此通过将三角形关于ab和ac旋转可以获得另外两个解。
[0553]
ransac/ld算法ransac/ld算法接受以下数据作为输入:(1)m个6元组(tuple)的列表l-每个6元组包含控制点的3-d空间坐标,其对应的2-d图像平面坐标,以及给定图像平面中的给定位置的预期误差(以像素为单位)的可选数字。(2)成像系统的焦距和主点的像平面坐标。(3)6元组包括严重不匹配的概率(1-w)。(4)“置信度”数字g,其用于设置内部阈值,用于接受有助于解的中间结果。一的置信度数对算法实施非常保守的行为;零的置信度数将几乎任何东西称为有效解。
[0554]
ransac(随机样本一致性)/ld(位置确定)算法产生以下信息作为输出:(1)透镜中心的3-d空间坐标(例如,透视中心),以及对应误差的估计。(2)图像平面的空间取向。
[0555]
ransac/ld算法操作如下:(i)通过确保用于对应控制点的合理空间分布的准随机方法从列表l中选择三个6元组。该初始选择被称为si。(2)对应于选择si的cp(被称为cpi)使用闭式解来确定;处理多个解,就好像它们是从以下步骤的单独选择中获得的一样。(3)通过扰乱三个选择的控制点的给定图像平面坐标(由6元组中指定的量或由一个像素的默认值),并且重新计算这将对cpi的位置产生的影响,估计cpi的导出位置中的误差。(4)给定用于cpi的误差估计,一些实施例使用[i]中描述的技术来针对列表l中指定的每个控制点,确定图像平面中的误差椭圆(基于所提供的置信数的尺寸);如果相关联的图像坐标位于对
应的误差椭圆内,那么6元组被附加到共识集合si/cpi。(5)如果si/cpi的大小等于或超过某个阈值t(名义上等于7与mw之间的值),那么共识集合si/cpi被提供给最小二乘例程用于最终确定cp位置和图像平面取向。1否则,上述步骤以新随机选择s2,s3,...,等进行重复。(6)如果上述步骤的迭代次数超过k=[log(i-g)]/[log(l-w3)],那么到目前为止到的最大共识集合用于计算最终解(或者如果该最大共识集合包括少于六个成员,则以失败终止)。
[0556]
利用在1508h处预测的2d线段,可以至少部分地基于一个或多个标准,在1510h处移除一个或多个线段。例如,在一些实施例中,如上文所描述的,可以在1510h处移除具有斜率之间的差≤θ
min
的线段中的至少一个。至少通过执行例如修改的2-opt算法沿着点或节点在1512h处为估计的房间周边创建闭合路径,该算法提供了如上文所描述的指数时间旅行商问题的解决方案。
[0557]
图16a-i示出了一个或多个实施例中的微型投影仪阵列的一些非限制性示例配置以及显示将微型投影仪阵列与光学系统耦合的示意图。参考图16g,在离散波前显示配置中,多个入射子束(11332)中的每一个通过相对于眼睛1158的小出瞳(11330)。参考图16h,子束组(11332)的子集(11334)可以用匹配的颜和强度水平来驱动,以被感知为好像它们是相同的较大尺寸射线的一部分(粗体子集(11334)可以被视为“聚合光束”)。在这种情况下,子束的子集彼此平行,表示来自光学无限远的准直聚合光束(诸如来自远山的光)。眼睛被调节到无限远,使得子束子集被眼睛的角膜和晶状体偏转,基本上都落在视网膜的相同位置上,并且被感知为包括单个聚焦像素。
[0558]
图16i示出了另一子束子集,表示从用户的眼睛58的视场的右侧进入的聚合准直光束(11336),在眼睛1158从上方以冠状式平面视图观看的情况下。另外,眼睛被示出为调节到无限远,因此子束落在视网膜的同一点上,并且像素被感知为聚焦。相反,如果选择不同的子束子集作为发散的光线扇形到达眼睛,则这些子束将不会落在视网膜的同一位置(并被感知为聚焦),直到眼睛位移调节到与该射线扇形的几何原点相匹配的近点。
[0559]
关于子束与眼睛的解剖瞳孔的交叉点的图案(例如,出瞳的图案),可以将交叉点组织成诸如横截面有效的六角晶格或方格或其他二维阵列之类的构造。此外,可以创建出瞳的三维阵列,以及出瞳的时变阵列。
[0560]
离散聚合波前可以使用几种配置来创建,诸如与观察光学器件的出瞳光学共轭放置的微型显示器或微型投影仪阵列、耦合到直接视场基板(诸如眼镜镜片)的微型显示器或微型投影仪阵列,以便它们直接将光投射到眼睛,无需额外的中间观察光学器件、连续空间光调制阵列技术或波导技术。
[0561]
参考图16a,在一个实施例中,可以通过捆绑一组小型投影仪或显示单元(诸如扫描光纤显示器)来创建立体(例如,三维)或四维或五维光场。图16a示出了六边形晶格投影束11338,其例如可以创建7mm直径的六角阵列,其中每个光纤显示器输出一个子图像(11340)。如果这样的阵列具有放置在其前面的光学系统,诸如透镜,使得该阵列与眼睛的入瞳光学共轭,这将在眼睛的瞳孔处产生该阵列的图像,如图16b所示.基本上提供了与图16g的实施例相同的光学布置。
[0562]
配置的每个小出瞳由束11338中的专用小显示器创建,诸如扫描光纤显示器。在光学上,在一些实施例中,就好像整个六角阵列11338被正好定位在解剖瞳孔1145中。这样的
实施例可用于将不同的子图像驱动到眼睛的较大解剖入瞳1145内的不同的小出瞳,包括具有多个入射角和与眼睛瞳孔的交叉点的子束的超集。每个单独的投影仪或显示器可以用稍微不同的图像驱动,从而可以创建子图像,这些子图像提取不同的光线集,以不同的光强度和颜驱动。
[0563]
在一个实施例中,可以创建严格的图像共轭,如在图16b的实施例中,其中,存在阵列11338与瞳孔1145的直接一一映射。在另一变型中,可以改变阵列中的显示器和光学系统(图16b中的透镜11342)之间的间距,使得代替将阵列的共轭映射接收到眼睛瞳孔,而是眼睛瞳孔在某个其他距离处捕获来自阵列的光线。使用这样的配置,人们仍然可以获得光束的角度分集,通过这些光束人们可以创建离散的聚合波前表示,但是关于如何驱动哪条射线以及以何种功率和强度驱动的数学运算会变得更加复杂(尽管另一方面,从观察光学器件的角度来看,这种配置可能被认为更简单)。与光场图像捕获有关的数学运算可用于这些计算。
[0564]
参考图16c,示出了另一光场创建实施例,其中,微型显示器或微型投影仪的阵列11346可以被耦接到框架(11344),诸如眼镜框架。这种配置可以被定位在眼睛1158的前面。所描绘的配置是非共轭布置,其中,在阵列显示器11346(例如,扫描光纤显示器)和眼睛1158之间没有插入大型光学元件。可以想象一副眼镜,以及多个显示器,诸如扫描光纤引擎,与这些眼镜耦接,显示器与眼镜表面正交地定位,并且都向内倾斜,因此指向用户的瞳孔。每个显示器可以被配置为创建一组射线,该组射线表示子束超集的不同元素。
[0565]
使用这种配置,在解剖瞳孔1145处,用户可以接收到与参考图16g讨论的实施例中接收到的结果相似的结果,在图16g中,用户瞳孔处的每个点接收来自不同显示器的具有多个入射角和交叉点的光线。图16d示出了类似于图16c的非共轭构造,只是图16d的实施例具有反射表面(11348)特征以便于将显示器阵列11346从眼睛58的视场中移开,同时还允许通过反射表面(11348)观察真实世界11144。
[0566]
提出了用于创建离散聚合波前显示的角度分集的另一配置。为了优化这样的配置,显示器的尺寸可以被最大程度上减小。可用作显示器的扫描光纤显示器可以具有1mm范围内的基线直径,但外壳和投影透镜硬件的精简可将此类显示器的直径减小至大约0.5mm或更小,这样减少对用户的干扰。在光纤扫描显示器阵列的情况下,可以通过将准直透镜(例如,其可以包括梯度折射率或“grin”透镜、常规曲面透镜或衍射透镜)直接耦合到扫描光纤本身的尖端来实现另一尺寸缩小的几何细化。例如,参考图16e,grin(梯度折射率)透镜(11354)被示为熔合到单模光纤的末端。诸如压电致动器之类的致动器11350可以被耦合到光纤11352并且可用于扫描光纤尖端。
[0567]
在另一实施例中,可以使用光纤的弯曲抛光处理将光纤的末端成形为半球形以产生透镜效应。在另一实施例中,可以使用粘合剂将标准折射透镜耦合到每个光纤的末端。在另一实施例中,透镜可以由少量透射聚合材料或玻璃制成,诸如环氧树脂。在另一实施例中,光纤的末端可以被熔化以产生用于透镜效应的曲面。
[0568]
图16f示出了一个实施例,其中,显示器配置(例如,具有grin透镜的扫描光纤显示器,图16e的放大图所示)可以通过单个透明基板11356耦合在一起,该基板优选地具有与光纤11352的包层紧密匹配的折射率,使得光纤本身对于通过所描绘的组件观察外部世界而言基本是不可见的。应当理解,如果包层的折射率匹配被精确地完成,则较大的包层/外壳
变得透明,并且只有优选地为大约三(3)微米直径的小芯将阻碍观察。在一个实施例中,显示器矩阵11358可以全部向内倾斜,因此指向用户的解剖瞳孔(在另一实施例中,它们可以保持彼此平行,但是这样的配置效率较低)。
[0569]
应当理解,上述各种实施例的特征和方面可以组合以提供进一步的实施例。根据以上详细描述,可以对实施例进行这些和其他改变。一般而言,在以下权利要求中,所使用的术语不应被解释为将权利要求限制为说明书和权利要求中公开的特定实施例,而应被解释为包括所有可能的实施例以及这些权利要求享有权利的全部范围的等价物。
[0570]
本文描述了本公开的各种示例实施例。以非限制性的方式参考这些示例。提供它们是为了说明本公开的更广泛适用的方面。在不背离本公开的真实精神和范围的情况下,可以对所描述的公开进行各种改变并且可以替换等同物。此外,可以进行许多修改以使特定情况、材料、物质组成、过程、一个或多个处理动作或一个或多个步骤适应本公开的目标、精神或范围。此外,如本领域技术人员将理解的,在此描述和图示的每个单独的变体都具有离散的部件和特征,它们可以容易地与其他几个实施例的特征分离或与其他几个实施例中的任一者的特征相结合,而不背离本公开的范围或精神。所有这些修改都旨在落入与本公开相关联的权利要求的范围内。
[0571]
本公开包括可以使用主题设备执行的方法。该方法可以包括提供这种合适的设备的动作。这种提供可以由终端用户执行。换言之,“提供”动作仅要求终端用户获得、访问、接近、定位、设置、激活、加电或以其他动作提供主题方法中的必要设备。在此列举的方法可以以逻辑上可能的所列举事件的任何顺序以及以所列举的事件顺序来执行。
[0572]
本公开的示例方面,连同关于材料选择和制造的细节已经在上面阐述。至于本公开的其他细节,可以结合上面引用的专利和公开来理解,可以是本领域技术人员通常已知或理解的。对于本公开的基于方法的方面,就如通常或逻辑上采用的附加动作而言,这同样适用。
[0573]
此外,虽然本公开已经参考可选地结合各种特征的几个示例进行了描述,但是本公开不限于关于本公开的每个变体所描述或指示的内容。在不背离本公开的真实精神和范围的情况下,可以对所描述的公开进行各种改变并且可以替换等同物(无论是在本文中列举的还是为了简洁起见未包括在内)。此外,在提供数值范围的情况下,应当理解,该范围的上限和下限之间的每个中间值,以及所述范围内的任何其他所述的值或中间值都包含在本公开内。
[0574]
此外,可以构想,所描述的本发明变体的任何可选特征可以独立地,或者与本文描述的任何一个或多个特征组合地阐述和要求保护。对单数项目的引用包括存在多个相同项目的可能性。更具体地,如在本文和与本文相关联的权利要求中使用的,单数形式“一”、“一个”、“所述”和“该”包括复数指示物,除非另有明确说明。换言之,冠词的使用允许上述描述以及与本公开相关联的权利要求中的“至少一个”主题项目。还应注意,可以起草此类权利要求以排除任何可选要素。因此,本声明旨在作为结合权利要求要素的叙述使用“唯一”、“仅”等之类排他性术语,或者使用“否定”限制的先行基础。
[0575]
在不使用此类排他性术语的情况下,与本公开相关联的权利要求中的术语“包括”应允许包含任何附加要素—无论在此类权利要求中是否列举了给定数量的要素,或者,一个特征的添加可以被认为是改变了在这些权利要求中提出的要素的性质。除非本文特别定
义,否则在此使用的所有技术和科学术语应被赋予尽可能广泛的普遍理解的含义,同时保持权利要求的有效性。
[0576]
本公开的广度不限于所提供的示例和/或主题说明书,而是仅受限于与本公开相关联的权利要求语言的范围。
[0577]
以上对所示实施例的描述并不旨在穷举或将实施例限制为所公开的精确形式。尽管本文出于说明性目的描述了特定实施例和示例,但是如相关领域的技术人员将认识到的,在不背离本公开的精神和范围的情况下可以进行各种等效修改。此处提供的各种实施例的教导可以应用于实现vr、ar、mr、xr或混合系统和/或采用用户界面的其他设备,不一定是上面一般描述的示例光学系统或xr设备。
[0578]
例如,前述详细描述已经经由使用框图、示意图和示例阐述了设备和/或过程的各种实施例。就此类框图、示意图和示例包含一个或多个功能和/或操作而言,本领域技术人员将理解,可以通过各种硬件、软件、固件或它们的几乎任何组合单独和/或集体地实现此类框图、流程图或示例中的每个功能和/或操作。
[0579]
在一个实施例中,本主题可以经由专用集成电路(asic)来实现。然而,本领域技术人员将认识到,本文公开的实施例全部或部分可以等效地在标准集成电路中实现为由一个或多个计算机执行的一个或多个计算机程序(例如,作为在一个或多个计算机系统上运行的一个或多个程序)、由一个或多个控制器(例如,微控制器)执行的一个或多个程序、由一个或多个处理器(例如,微处理器)执行的一个或多个程序、固件,或上述的几乎任何组合,并且将认识到,根据本公开的教导,设计电路和/或编写软件和/或固件的代码将完全在本领域普通技术人员的技能范围内。
[0580]
当逻辑被实现为软件并存储在存储器中时,逻辑或信息可以存储在任何计算机可读介质上以供任何处理器相关系统或方法使用或与其结合使用。在本公开的上下文中,存储器是计算机可读介质,其是包含或存储计算机和/或处理器程序的电、磁、光或其他物理设备或装置。逻辑和/或信息可以体现在任何计算机可读介质中,以供指令执行系统、装置或设备使用或与其结合使用,诸如基于计算机的系统、包含处理器的系统或可以从指令执行系统、装置或设备获取指令并执行与逻辑和/或信息相关联的指令的其他系统。
[0581]
在本说明书的上下文中,“计算机可读介质”可以是能够存储与逻辑和/或信息相关联的程序以供指令执行系统、装置和/或设备使用或与其结合使用的任何元件。计算机可读介质可以是例如但不限于电、磁、光、电磁、红外线或半导体系统、装置或设备。计算机可读介质的更具体示例(非详尽列表)将包括以下项:便携式计算机软盘(磁盘、紧凑型闪存卡、安全数字等)、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom、eeprom或闪存)、便携式光盘只读存储器(cdrom)、数字磁带和其他非暂时性介质。
[0582]
在此描述的许多方法可以通过变体来执行。例如,许多方法可以包括附加动作,省略一些动作,和/或以不同于所示或描述的顺序执行动作。
[0583]
可以组合上述各种实施例以提供进一步的实施例。只要不与本文的具体教导和定义不一致,所有美国专利、美国专利申请公开、美国专利申请、外国专利、外国专利申请和非专利公开均在本说明书中提及和/或在申请书资料表中列出。如果需要,可以修改实施例的方面以采用各种专利、申请和公开的系统、电路和概念来提供更进一步的实施例。
[0584]
根据以上详细描述,可以对实施例进行这些和其他改变。一般而言,在以下权利要
求中,所使用的术语不应被解释为将权利要求限制为说明书和权利要求中公开的特定实施例,而应被解释为包括所有可能的实施例以及这些权利要求享有权利的全部范围的等同物。因此,权利要求不受本公开的限制。
[0585]
此外,可以组合上述各种实施例以提供进一步的实施例。如果需要,可以修改实施例的方面以采用各种专利、申请和公开的概念来提供更进一步的实施例。
[0586]
根据以上详细描述,可以对实施例进行这些和其他改变。一般而言,在以下权利要求中,所使用的术语不应被解释为将权利要求限制为说明书和权利要求中公开的特定实施例,而应被解释为包括所有可能的实施例以及这些权利要求享有权利的全部范围的等同物。因此,权利要求不受本公开的限制。

技术特征:


1.一种用于生成室内场景的平面图的方法,包括:根据室内场景的输入图像来确定房间的房间分类和用于所述房间的墙壁的墙壁分类;以及至少部分地基于所述房间分类和所述墙壁分类来确定平面图,而不限制所述室内场景中的房间的总数或所述房间的大小。2.根据权利要求1所述的方法,其中,确定所述房间的所述房间分类和所述墙壁的所述墙壁分类包括:识别所述输入图像,其中,所述输入图像包括来自所述室内场景的三维扫描的一个图像或图像序列;以及确定用于所述输入图像的输入点云。3.根据权利要求2所述的方法,其中,确定所述房间的所述房间分类和所述墙壁的所述墙壁分类还包括:识别所述输入点云的子集;以及至少用合成数据集来训练深度网络。4.根据权利要求3所述的方法,其中,确定所述房间的所述房间分类和所述墙壁的所述墙壁分类还包括:在深度网络处,生成用于在所述子集中表示的一个或多个顶点的一个或多个房间集标签和用于所述墙壁的墙壁集标签。5.根据权利要求4所述的方法,其中,生成所述一个或多个房间集标签和所述墙壁集标签包括:至少部分地基于与所述室内场景相关的距离度量,对点集执行嵌套分区以将所述点集划分为多个重叠的局部区域;以及至少通过对经嵌套分区的点集递归地执行语义特征提取来提取捕获所述室内场景中的几何结构的局部特征。6.根据权利要求5所述的方法,其中,生成所述一个或多个房间集标签和墙壁集标签包括:将所述局部特征抽象为更高级别的特征或表示;以及以多个不同的尺度或分辨率对多个局部特征进行自适应加权。7.根据权利要求6所述的方法,其中,生成所述一个或多个房间集标签和墙壁集标签包括:以多个不同的尺度或分辨率组合所述多个局部特征;至少部分地基于所述距离度量,将所述一个或多个房间集标签和所述墙壁集标签分配给用于所述室内场景的度量空间。8.一种用于生成室内场景的平面图的系统,包括:处理器;以及存储器,其操作地耦接到所述处理器并存储指令序列,所述指令序列在由所述处理器执行时使得所述处理器执行一组动作,所述一组动作包括:根据室内场景的输入图像来确定房间的房间分类和用于所述房间的墙壁的墙壁分类;以及
至少部分地基于所述房间分类和所述墙壁分类来确定平面图,而不限制所述室内场景中的房间的总数或所述房间的大小。9.根据权利要求8所述的系统,其中,包括在由所述处理器执行时使得所述处理器执行确定所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少使用所述房间分类和所述墙壁分类生成用于所述房间的形状,其中,所述房间分类包括被分配给所述房间的或与所述房间相关联的房间集标签,以及所述墙壁分类包括被分配给所述房间的一个或多个墙壁的或与所述房间的一个或多个墙壁相关联的一个或多个墙壁集标签,并且所述一个或多个墙壁包括所述墙壁;至少部分地基于所述形状,至少通过聚合或集成相对于全局坐标系所估计的房间周边来生成所述平面图,其中,所述形状包括深度周边类型的多边形。10.根据权利要求9所述的系统,其中,包括在由所述处理器执行时使得所述处理器执行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:对所述室内场景的所述输入图像的rgb(红绿蓝)帧执行深度估计;以及至少通过使用多视图深度估计网络和分割模块来生成深度图和墙壁分割掩模,其中,所述分割模块至少部分地基于pspnet(金字塔场景解析网络)和resnet(残差网络)。11.根据权利要求10所述的系统,其中,包括在由所述处理器执行时使得所述处理器执行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过使用步进立方体算法将一个或多个掩模深度图像与姿势轨迹相融合来提取墙壁点云;至少通过训练深度分割网络来隔离对应于所述墙壁点云的深度预测;以及将所述深度预测投射到三维3d点云。12.根据权利要求11所述的系统,其中,包括在由所述处理器执行时使得所述处理器执行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过在所述深度分割网络处检测属于同一平面实例的一个或多个点,将所述3d点云聚类为多个集;以及将所述多个集转换为形成用于所述平面图的周边布局的平面集合。13.根据权利要求9所述的系统,其中,包括所在由所述处理器执行时使得所述处理器执行生成所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:根据所述室内环境的扫描来识别房间实例和墙壁实例;以及估计用于所述房间实例的闭合周边。14.根据权利要求13所述的系统,其中,包括在由所述处理器执行时使得所述处理器执行生成所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过使用投票架构来预测集的数量;以及
至少通过执行房间或墙壁回归来提取多个特征,所述房间或墙壁回归以一个或多个尺度来计算所述多个特征。15.一种用于生成室内场景的平面图的可穿戴扩展现实设备,包括;光学系统,其具有微型显示器或微型投影仪的阵列以向用户的眼睛呈现数字内容;处理器,其被耦接到所述光学系统;以及存储器,其操作地耦接到所述处理器并存储指令序列,所述指令序列在由所述处理器执行时使得所述处理器执行一组动作,所述一组动作包括:根据室内场景的输入图像来确定房间的房间分类和用于所述房间的墙壁的墙壁分类;以及至少部分地基于所述房间分类和所述墙壁分类来确定平面图,而不限制所述室内场景中的房间的总数或所述房间的大小。16.根据权利要求15所述的可穿戴扩展现实设备,其中,包括在由所述处理器执行时使得所述处理器执行确定所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少使用所述房间分类和所述墙壁分类来生成用于所述房间的形状,其中,所述房间分类包括被分配给所述房间的或与所述房间相关联的房间集标签,以及所述墙壁分类包括被分配给所述房间的一个或多个墙壁的或与所述房间的一个或多个墙壁相关联的一个或多个墙壁集标签,并且所述一个或多个墙壁包括所述墙壁;以及至少部分地基于所述形状,至少通过聚合或集成相对于全局坐标系所估计的房间周边来生成所述平面图,其中,所述形状包括深度周边类型的多边形。17.根据权利要求16所述的可穿戴扩展现实设备,其中,包括在由所述处理器执行时使得所述处理器执行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:对所述室内场景的所述输入图像的rgb(红绿蓝)帧执行深度估计;以及至少通过使用多视图深度估计网络和分割模块来生成深度图和墙壁分割掩模,其中,所述分割模块至少部分地基于pspnet(金字塔场景解析网络)和resnet(残差网络)。18.根据权利要求17所述的可穿戴扩展现实设备,其中,包括在由所述处理器执行时使得所述处理器执行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过使用步进立方体算法将一个或多个掩模深度图像与姿势轨迹相融合来提取墙壁点云;至少通过训练深度分割网络来隔离对应于所述墙壁点云的深度预测;以及将所述深度预测投射到三维3d点云。19.根据权利要求18所述的可穿戴扩展现实设备,其中,包括在由所述处理器执行时使得所述处理器执行生成所述形状的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:至少通过在所述深度分割网络处检测属于同一平面实例的一个或多个点,将所述3d点云聚类为多个集;以及将所述多个集转换为形成用于所述平面图的周边布局的平面集合。
20.根据权利要求16所述的可穿戴扩展现实设备,其中,包括在由所述处理器执行时使得所述处理器执行生成所述平面图的所述指令序列的所述存储器还包括在由所述处理器执行时使得所述处理器执行所述一组动作的指令,所述一组动作还包括:根据所述室内环境的扫描来识别房间实例和墙壁实例;以及估计用于所述房间实例的闭合周边。

技术总结


提供了用于生成室内场景的平面图的方法、系统和可穿戴扩展现实设备。可以从室内场景的输入图像确定房间的房间分类和用于房间的墙壁的墙壁分类。可以至少部分地基于房间分类和墙壁分类确定平面图,而不限制室内场景中的房间的总数或房间的大小。间的总数或房间的大小。间的总数或房间的大小。


技术研发人员:

A

受保护的技术使用者:

奇跃公司

技术研发日:

2021.03.03

技术公布日:

2022/12/23

本文发布于:2024-09-21 05:29:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/47231.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   多个   房间   墙壁
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议