掌桥专利:专业的专利平台
掌桥专利
首页

基于房间扫描的平面图生成

文献发布时间:2023-06-19 11:54:11


基于房间扫描的平面图生成

技术领域

本公开整体涉及生成物理环境的二维和三维几何表示,并且具体地,涉及基于在物理环境中检测到的信息生成几何表示的系统、方法和设备。

背景技术

平面图在设计、理解和重塑室内空间中起到重要作用。平面图通常有效地传达物理环境的几何和语义信息。例如,用户可查看平面图以快速识别房间范围、墙结构和拐角、门和窗的位置以及对象布置。

提供基于计算机的系统以基于传感器数据自动生成平面图、房间测量或对象测量存在许多障碍。获取的关于物理环境的传感器数据(例如,图像和深度数据)可能是不完整的或不足以提供准确的平面图和测量。例如,室内环境通常包含各种对象,诸如灯、桌子、椅子等,这些对象可能隐藏了房间的建筑线条,而这些建筑线条可用于检测房间的边缘以构建准确的平面图。又如,图像和深度数据通常缺少语义信息,并且在没有此类数据的情况下生成的平面图和测量可能缺乏准确性。

现有技术不允许使用移动设备自动、准确且有效地生成平面图和测量,例如,基于用户在房间内走动时捕获照片或视频或其他传感器数据。此外,现有技术可能无法实时提供足够准确和有效的平面图和测量(例如,扫描期间立即的平面图/测量)环境。

发明内容

本文所公开的各种具体实施包括使用物理环境的三维(3D)表示来生成平面图和测量的设备、系统和方法。可基于传感器数据诸如图像和深度传感器数据来生成物理环境的3D表示。在一些具体实施中,使用物理环境的语义标记的3D表示来促进平面图和测量的生成。一些具体实施执行物理环境的3D点云的语义分割和标记。本文所公开的技术可通过使用编码到二维(2D)侧向域上的语义3D表示(诸如语义标记的3D点云)来实现各种优点。在2D侧向域中使用语义3D表示可促进有效识别用于生成平面图或测量的结构。

能够以各种格式提供平面图。在一些具体实施中,平面图包括房间的2D俯视图。平面图可图形化地描绘出房间的边界,例如,通过使用线条或其他图形特征图形化地描绘墙、屏障或房间范围的其他限制。平面图可图形化地描绘出墙特征(诸如墙边缘、门和窗)的位置和几何形状。平面图可图形化地描绘出房间内的对象,诸如沙发、桌子、椅子、器具等。平面图可包括标识房间中的边界、墙、门、窗和对象的标识符,例如包括标识此类元素的文本标签或参考数字。平面图可包括对房间中的边界、墙边缘、门、窗和对象的测量的指示,例如包括指定墙的长度、桌子的直径、窗的宽度等的数字。

根据一些具体实施,基于用户执行房间扫描(例如,移动某移动设备以捕获房间中用户周围的图像和深度数据)来创建平面图。一些具体实施在房间扫描期间提供初步2D平面图的预览。例如,当用户在捕获传感器数据的房间四处走动时,用户的设备可显示正在生成的初步2D平面图的预览。该预览是“实时的”,即在用于生成初步2D平面图的传感器数据流或传感器数据组的持续捕获期间提供该预览。为了启用初步2D平面图的实时预览,可以(至少初始地)与最终扫描后平面图不同地生成预览。在一个示例中,在没有用于生成最终扫描后平面图的某些后处理技术(例如,微调、拐角校正等)的情况下生成预览。在其他示例中,实时预览可使用比用于生成最终扫描后平面图的计算密度更低的神经网络。2D语义数据的使用(例如,针对房间的不同层)还可促进使预览确定对于实时显示足够有效。

在一些具体实施中,可基于单独识别墙结构(例如,墙边缘、门和窗)以及检测对象(例如,家具、器具等)的边界框来生成平面图。可单独检测墙结构和对象,并且因此使用不同的技术和结果进行组合以生成表示墙结构和对象两者的平面图。

在一些具体实施中,平面图创建过程基于在多个层中编码3D语义数据的2D表示来识别墙结构(例如,墙边缘)。例如,3D语义数据可被分割成用于识别房间的墙边缘位于何处的多个水平层。

根据一些具体实施,可使用不同的技术来采集对房间的墙属性(例如,墙体、门和窗)和对象(例如,家具、器具等)的测量。例如,对于墙属性,诸如门和窗,作为深度数据的补充或替代,可利用光强度图像(例如,RGB图像)来生成边界(2D多边形形状)。这可提供各种优点,例如,在深度数据可能由于窗和可能包括窗的门的透明度而偏斜的情况下。在从光强度图像确定2D多边形形状之后,接着可使用基于深度数据的深度数据或3D表示(例如,3D语义点云)来确定门或窗的特定测量。在一些具体实施中,通过以下方式来测量对象:首先基于深度数据生成对象的3D边界框,使用本文所述的各种神经网络和细化算法细化边界框,以及基于细化的边界框和用于相应边界框的相关联的3D数据点来采集测量。

本公开的一些具体实施涉及生成和显示初步2D平面图的实时预览的示例性方法。该示例性方法首先涉及在具有处理器(例如,智能电话)的电子设备处显示包括物理环境的图像序列的实时相机图像馈送(例如,实时视频)。例如,当用户在房间四处走动时捕获视频以从多个视角捕获房间的不同部分的图像时,这些图像被实时显示在移动设备上,使得用户看到他/她正在捕获的内容。

示例性方法还涉及获取基于在实时相机馈送的显示期间获取的深度数据和光强度数据而生成的物理环境的3D表示。例如,可基于与图像同时接收到的深度相机信息来生成3D点云。

示例性方法还涉及基于物理环境的3D表示来生成物理环境的初步2D平面图的实时预览。例如,语义信息可包括在3D点云中或与之相关联,并且2D语义数据(例如,在层中)可从3D点云语义生成。另外,2D语义数据可用于识别墙和墙属性或特征(例如,门和窗)以进行实时预览。此外,可基于使用3D点云确定的3D边界框来生成实时预览中的对象的表示。

该示例性方法还涉及与实时相机馈送同时显示初步2D平面图的实时预览。例如,当用户正在观看房间环境的实时相机馈送时,具有2D平面图的另一查看窗口在生成时可覆盖在该实时相机馈送的顶部上(例如,画中画(PIP))。

在一些具体实施中,该示例性方法还涉及基于3D表示生成物理环境的最终2D平面图,其中生成最终2D平面图使用与生成初步2D平面图的实时预览不同的过程。例如,不同的过程可使用具有微调(例如,拐角校正)等的计算密度更高的神经网络。在一些具体实施中,不同的过程包括基于3D表示使用计算密度更高的神经网络划分出拐角和小墙,基于所划分的拐角和小墙生成过渡2D平面图,使用标准化算法确定针对过渡2D平面图的细化方案,以及基于针对过渡2D平面图的所确定的细化方案来生成物理环境的最终2D平面图。

在一些具体实施中,该示例性方法还涉及通过基于3D表示识别物理环境中的墙来生成边缘地图,通过基于3D表示识别物理环境中的墙属性(例如,门和窗)来更新边缘地图,通过基于3D表示识别物理环境中的对象来更新边缘地图,以及基于包括所识别的墙、所识别的墙属性以及所识别的对象的所更新的边缘地图来生成初步2D平面图的实时预览来生成初步2D平面图的实时预览。在一些具体实施中,生成2D平面图的实时预览包括基于3D表示生成物理环境的多个水平层的2D语义数据,以及使用2D语义数据生成2D平面图。例如,每个层为z值范围提供x、y语义,例如,对于z值范围为0-10的每个x、y位置,第一层可以是最常见语义标签。

在一些具体实施中,通过识别墙来生成边缘地图还包括使用线拟合算法来确定边缘地图的参数细化线,以及基于该参数细化线来更新边缘地图。在一些具体实施中,通过识别墙属性来更新边缘地图包括使用墙属性神经网络和实时相机馈送的图像序列(例如,透明窗的RGB数据)来确定所识别的墙属性的边界,以及使用多边形启发式算法基于与所识别的墙属性相关联的3D表示来生成细化的边界。在一些具体实施中,通过识别对象来更新边缘地图包括基于3D表示生成对应于物理环境中的所识别的对象的3D边界框,以及生成该3D边界框的2D表示(例如,家具图标或平面2D边界框)。

在一些具体实施中,3D表示与包括3D点云的3D语义数据相关联,该3D点云包括与该3D点云内的3D点的至少一部分相关联的语义标签。另外,在一些具体实施中,语义标签标识物理环境的墙、墙属性(例如,门和窗)、对象和对象的划分。

本公开的一些具体实施涉及生成和显示2D平面图的示例性方法。该示例性方法首先涉及获取物理环境的3D表示,该物理环境的3D表示基于在扫描过程期间获取的深度数据和光强度图像数据而生成。例如,可基于在房间扫描期间与图像同时接收到的深度相机信息来生成3D点云。例如,算法可用于室内场景的3D点云的语义分割和标记,其中点云中的对象可具有显著变化和复杂配置。

该示例性方法还涉及基于3D表示来检测墙结构在物理环境中的位置。例如,可通过以下方式识别墙:生成2D语义数据(例如,在层中),使用该2D语义数据来使用神经网络生成边缘地图,以及确定矢量参数以使3D归一化平面图中的边缘地图标准化。可基于RGB图像和深度数据来识别墙属性或墙属性(例如,门/窗)以生成多边形边界。这种用于门和窗的技术提供了优点,尤其是由于窗的透明度可能会在深度数据中产生噪声/误差。

该示例性方法还涉及基于3D表示生成对应于物理环境中的对象的边界框。例如,3D边界框可提供房间中的每件家具和器具的位置、方位(例如,位置和取向)和形状。可使用RGB数据和新型多网络调节技术(例如,用于低查准/高查全和高查准/低查全的2阶段神经网络微调)来细化边界框。

示例性方法还涉及显示提供物理环境的视图(例如,俯视)的2D平面图。在一些具体实施中,基于对应于对象的墙结构和边界框的位置来确定2D平面图。

在一些具体实施中,基于3D表示检测物理环境中墙结构的位置包括基于3D表示从墙结构识别物理环境的墙和墙属性(例如,门和窗),以及基于3D表示生成所识别的墙和墙属性的边缘地图,其中2D平面图基于所生成的包括所识别的墙和所识别的墙属性的边缘地图。在一些具体实施中,该示例性方法还涉及基于3D表示使用计算密度更高的神经网络划分出拐角和小墙,基于所划分的拐角和小墙生成过渡2D平面图,使用标准化算法确定针对过渡2D平面图的细化方案,以及基于针对过渡2D平面图的所确定的细化方案来生成物理环境的最终2D平面图。在一些具体实施中,该示例性方法还涉及使用在扫描过程期间获取的墙结构神经网络和光强度图像数据(例如,RGB数据)来确定所识别的墙结构的边界,以及使用多边形启发式算法基于与所识别的墙属性相关联的3D语义数据来生成细化的边界。

在一些具体实施中,这些边界框是细化的边界框,并且该示例性方法还涉及通过使用第一神经网络生成建议的边界框来生成对象的细化的边界框,以及通过使用第二神经网络(例如,低查准/高查全以生成对象的特征)识别对象的特征并且基于所识别的特征使用第三神经网络细化所建议的边界框(例如,高查准/低查全以细化所生成特征的准确性并输出细化的边界框)来生成细化的边界框。在一些具体实施中,第一神经网络基于与对象相关联的3D表示来生成所建议的边界框。在一些具体实施中,第二神经网络基于与对象相关联的3D表示和在扫描过程期间获取的光强度图像数据(例如,RGB数据)来识别对象的特征。在一些具体实施中,训练第三神经网络以细化来自第二神经网络的所识别特征的准确性,并且基于与对象相关联的3D表示以及在扫描过程期间获取的光强度图像数据(例如,RGB数据)来输出细化的边界框。在一些具体实施中,边界框提供物理环境中对象的位置信息、方位信息(例如,位置和取向信息)以及形状信息。

在一些具体实施中,3D表示与包括3D点云的3D语义数据相关联,该3D点云包括与该3D点云内的3D点的至少一部分相关联的语义标签。另外,在一些具体实施中,语义标签标识物理环境的墙、墙属性(例如,门和窗)、对象和对象的划分。

本公开的一些具体实施涉及基于2D语义数据提供平面图的示例性方法。该示例性方法首先涉及获取物理环境的3D语义数据,该物理环境的3D语义数据基于在扫描过程期间获取的深度数据和光强度图像数据而生成。例如,可基于在房间扫描期间与图像同时接收到的深度相机信息来生成3D点云。例如,算法可用于室内场景的3D点云的语义分割和标记,其中点云中的对象可具有显著变化和复杂配置。

该示例性方法还涉及基于3D语义数据生成物理环境的多个水平层的2D语义数据。例如,每个层为z值范围提供x、y语义,例如,对于z值范围为0-10的每个x、y位置,第一层可以是最常见语义标签。

该示例性方法还涉及基于使用2D语义数据生成边缘地图来提供平面图,其中该平面图提供物理环境的视图(例如,俯视)。在一些具体实施中,生成边缘地图可涉及确定参数表示和/或矢量参数以标准化3D归一化平面图中的边缘地图。

在一些具体实施中,提供平面图还包括通过基于多个水平层的2D语义数据识别物理环境中的墙来生成边缘地图,通过基于3D语义数据识别物理环境中的墙属性(例如,门和窗)来更新边缘地图,通过基于3D语义数据识别物理环境中的对象来更新边缘地图,以及基于包括所识别的墙、所识别的墙属性以及所识别的对象的所更新的边缘地图来生成平面图。

在一些具体实施中,所识别的墙是地板到天花板墙(例如,不是隔间墙),其中基于多个水平层的2D语义数据来识别地板到天花板墙包括识别具有该多个水平层的最低水平的物理环境的地板,识别具有该多个水平层的最高水平的物理环境的天花板,基于特定的所识别的墙不满足与天花板的高度相比的高度阈值而确定该特定的所识别的墙不是地板到天花板墙(例如,隔间墙),以及通过从边缘地图移除该特定的所识别的墙来更新边缘地图。在一些具体实施中,通过识别墙来生成边缘地图还包括使用线拟合算法来确定边缘地图的参数细化线,以及基于该参数细化线来更新边缘地图。在一些具体实施中,通过识别墙属性来更新边缘地图包括使用墙属性神经网络和在扫描过程期间获取的光强度图像(例如,透明窗的RGB数据)来确定所识别的墙属性的边界,以及使用多边形启发式算法基于与所识别的墙属性相关联的3D语义数据来生成细化的边界。

在一些具体实施中,通过识别对象来更新边缘地图包括基于3D语义数据生成对应于物理环境中的所识别的对象的3D边界框,以及生成该3D边界框的2D表示(例如,家具图标或平面2D边界框)。在一些具体实施中,这些边界框是细化的边界框,并且生成对象的细化的边界框包括使用第一神经网络生成建议的边界框,以及通过使用第二神经网络(例如,低查准/高查全以生成对象的特征)识别对象的特征并且基于所识别的特征使用第三神经网络细化所建议的边界框(例如,高查准/低查全以细化所生成特征的准确性并输出细化的边界框)来生成细化的边界框。

在一些具体实施中,3D语义数据包括与物理环境的3D点云表示内的3D点的至少一部分相关联的语义标签。在一些具体实施中,语义标签标识物理环境的墙、墙属性(例如,门和窗)、对象和对象的划分。

本公开的一些具体实施涉及提供物理环境内的对象和墙结构的测量数据的示例性方法。该示例性方法首先涉及获取基于在扫描过程期间获取的深度数据而生成的物理环境的3D表示。例如,可基于与图像同时接收到的深度相机信息来生成3D点云。在一些具体实施中,3D表示与3D语义数据相关联。例如,算法可用于室内场景的3D点云的语义分割和标记,其中点云中的对象可具有显著变化和复杂配置。

该示例性方法还涉及基于物理环境的光强度图像(例如,RGB图像)来生成物理环境中的墙属性(例如,门和窗)的2D边界。

该示例性方法还涉及基于2D边界和3D表示提供对墙属性的测量。例如,3D表示用于确定墙属性诸如门或窗被赋予与墙属性相关联的2D多边形形状的深度和/或宽度。

该示例性方法还涉及基于3D表示生成对应于物理环境中的对象的3D边界框。例如,3D边界框可提供房间中的每件家具和器具的位置、方位(例如,位置和取向)和形状。可使用RGB数据和新型多网络调节技术来细化边界框。

该示例性方法还涉及提供对表示对应对象的测量结果的3D边界框的测量。例如,边界框的长度、宽度、高度对应于对象的长度、宽度和高度。

在一些具体实施中,这些边界框是细化的边界框,并且该示例性方法还涉及通过使用第一神经网络生成建议的边界框来生成对象的细化的边界框,以及通过使用第二神经网络(例如,低查准/高查全以生成对象的特征)识别对象的特征并且基于所识别的特征使用第三神经网络细化所建议的边界框(例如,高查准/低查全以细化所生成特征的准确性并输出细化的边界框)来生成细化的边界框。在一些具体实施中,第一神经网络基于与对象相关联的3D表示来生成所建议的边界框。在一些具体实施中,第二神经网络基于与对象相关联的3D表示和在扫描过程期间获取的光强度图像数据(例如,RGB数据)来识别对象的特征。在一些具体实施中,训练第三神经网络以细化来自第二神经网络的所识别特征的准确性,并且基于与对象相关联的3D表示以及在扫描过程期间获取的光强度图像数据(例如,RGB数据)来输出细化的边界框。在一些具体实施中,边界框提供物理环境中对象的位置信息、方位信息(例如,位置和取向信息)以及形状信息。

在一些具体实施中,该示例性方法还涉及使用多边形启发式算法基于与墙属性相关联的3D语义数据来生成墙属性的细化的边界。在一些具体实施中,墙属性包括门或窗。

在一些具体实施中,对与特定墙属性的测量结果相关联的边界的测量包括该特定墙属性的长度、宽度和高度。例如,门的长度、宽度和高度。在一些具体实施中,针对特定对象的3D边界框的测量包括对应于特定对象的长度、宽度和高度的长度、宽度和高度。例如,针对房间中的桌子或椅子生成的边界框的长度、宽度和高度。

在一些具体实施中,3D表示包括3D点云,并且相关联的3D语义数据包括与3D点云内的3D点的至少一部分相关联的语义标签。在一些具体实施中,语义标签标识物理环境的墙、墙属性(例如,门和窗)、对象和对象的划分。

根据一些具体实施,一种设备包括一个或多个处理器、非暂态存储器以及一个或多个程序;该一个或多个程序被存储在非暂态存储器中并且被配置为由一个或多个处理器执行,并且该一个或多个程序包括用于执行或使得执行本文所述方法中的任一种的指令。根据一些具体实施,一种非暂态计算机可读存储介质中存储有指令,这些指令在由设备的一个或多个处理器执行时使该设备执行或使执行本文所述方法中的任一种。根据一些具体实施,一种设备包括:一个或多个处理器、非暂态存储器以及用于执行或使执行本文所述方法中的任一种的装置。

附图说明

因此,本公开可被本领域的普通技术人员理解,更详细的描述可参考一些例示性具体实施的方面,其中一些具体实施在附图中示出。

图1是根据一些具体实施的示例性操作环境的框图。

图2是根据一些具体实施的示例性服务器的框图。

图3是根据一些具体实施的示例性设备的框图。

图4是根据一些具体实施的基于深度和光强度图像信息使用3D数据和语义分割的语义三维(3D)表示的示例性生成的系统流程图。

图5是根据一些具体实施的基于物理环境的3D表示生成并显示物理环境的二维(2D)平面图的实时预览的示例性方法的流程图表示。

图6是根据一些具体实施的基于物理环境的3D表示的物理环境的2D平面图的实时预览的示例性生成的系统流程图。

图7是根据一些具体实施的生成并显示物理环境的2D平面图的示例性方法的流程图表示。

图8A至图8D是示出根据一些具体实施的物理环境的2D平面图的示例性生成的系统流程图。

图9是根据一些具体实施的基于使用2D语义数据生成边缘地图来生成并提供物理环境的平面图的示例性方法的流程图表示。

图10是根据一些具体实施的基于使用2D语义数据生成边缘地图的物理环境的平面图的示例性生成的系统流程图。

图11是根据一些具体实施的示例性方法的流程图表示,该方法基于2D边界和3D表示以及3D边界框的测量来生成并提供对墙结构的测量,该3D边界框表示对应对象的测量。

图12A是根据一些具体实施的基于2D边界和3D表示的墙结构的测量的示例性生成的系统流程图。

图12B是根据一些具体实施的3D边界框的测量的示例性生成的系统流程图,该边界框表示对应对象的测量。

根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的系统、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。

具体实施方式

描述了许多细节以便提供对附图中所示的示例具体实施的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不应被视为限制。本领域的普通技术人员将理解,其他有效方面和/或变体不包括本文所述的所有具体细节。此外,没有详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。

图1是根据一些具体实施的示例性操作环境100的框图。在该示例中,示例性操作环境100示出了包括墙130、132、134、椅子140、桌子142、门150以及窗152的示例性物理环境105。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,操作环境100包括服务器110和设备120。在示例性具体实施中,操作环境100不包括服务器110,并且本文所述的方法在设备120上执行。

在一些具体实施中,服务器110被配置为管理和协调用户体验。在一些具体实施中,服务器110包括软件、固件和/或硬件的合适组合。下文参考图2更详细地描述服务器110。在一些具体实施中,服务器110是相对于物理环境105位于本地或远程位置的计算设备。在一个示例中,服务器110是位于物理环境105内的本地服务器。在另一个示例中,服务器110是位于物理环境105之外的远程服务器(例如,云服务器、中央服务器等)。在一些具体实施中,服务器110经由一个或多个有线或无线通信信道(例如,蓝牙、IEEE 802.11x、IEEE802.16x、IEEE 802.3x等)与设备120通信地耦接。

在一些具体实施中,设备120被配置为向用户呈现环境。在一些具体实施中,设备120包括软件、固件和/或硬件的合适组合。下文参考图3更详细地描述设备120。在一些具体实施中,服务器110的功能由设备120提供和/或与该设备结合。

在一些具体实施中,设备120是被配置为向用户呈现内容的手持式电子设备(例如,智能电话或平板电脑)。在一些具体实施中,用户将设备120穿戴在他/她的头上。设备120可包括被提供用于显示内容的一个或多个显示器。例如,设备120可包围用户的视野。在一些具体实施中,用被配置为呈现内容的腔室、外壳或室替代设备120,其中用户不穿戴或手持该设备120。

图2是根据一些具体实施的服务器110的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,服务器110包括一个或多个处理单元202(例如,微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、中央处理单元(CPU)、处理内核等)、一个或多个输入/输出(I/O)设备206、一个或多个通信接口208(例如,通用串行总线(USB)、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、全球移动通信系统(GSM)、码分多址(CDMA)、时分多址(TDMA)、全球定位系统(GPS)、红外(IR)、蓝牙、ZIGBEE和/或类似类型的接口)、一个或多个编程(例如,I/O)接口210、存储器220以及用于互连这些部件和各种其他部件的一条或多条通信总线204。

在一些具体实施中,所述一条或多条通信总线204包括互连系统部件和控制系统部件之间的通信的电路。在一些具体实施中,一个或多个I/O设备206包括键盘、鼠标、触控板、操纵杆、一个或多个麦克风、一个或多个扬声器、一个或多个图像传感器、一个或多个显示器等中的至少一种。

存储器220包括高速随机存取存储器,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双倍数据速率随机存取存储器(DDR RAM)或者其他随机存取固态存储器设备。在一些具体实施中,存储器220包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器220任选地包括远离所述一个或多个处理单元202定位的一个或多个存储设备。存储器220包括非暂态计算机可读存储介质。在一些具体实施中,存储器220或存储器220的非暂态计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集,包括可选的操作系统230以及一个或多个应用程序240。

操作系统230包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些具体实施中,应用程序240被配置为管理和协调一个或多个用户的一个或多个体验(例如,一个或多个用户的单个体验,或一个或多个用户的相应群组的多个体验)。

应用程序240包括3D表示单元242、实时预览单元244、平面图单元246和测量单元248。3D表示单元242、实时预览单元244、平面图单元246和测量单元248可组合成单个应用程序或单元,或者分成一个或多个附加应用程序或单元。

3D表示单元242被配置有指令,该指令能够由处理器执行以获取图像数据(例如,光强度数据、深度数据等)并使用本文所公开的技术中的一种或多种技术整合(例如,融合)图像数据。例如,3D表示单元242将来自光强度相机的RGB图像与来自深度相机(例如,飞行时间传感器)和其他物理环境信息源的稀疏深度图融合,以输出密集的深度点云信息。另外,3D表示单元242被配置有指令,该指令能够由处理器执行以获取光强度图像数据(例如,RGB)并执行语义分割算法以使用本文所公开的技术中的一种或多种技术将语义标签分配给图像数据中的识别特征并生成语义图像数据(例如,RGB-S)。3D表示单元242被进一步配置有指令,该指令能够由处理器执行以获取光强度图像数据(例如,RGB)和深度图像数据,并且使用本文所公开的技术中的一种或多种技术来生成语义3D表示(例如,具有相关联语义标签的3D点云)。在一些具体实施中,3D表示单元242包括独立单元,诸如用于生成3D点云数据的整合单元、用于基于光强度数据进行语义分割的语义单元(例如,RGB-S),以及用于生成语义3D表示的语义3D单元,如本文参考图4进一步所述。

实时预览单元244被配置有指令,该指令能够由处理器执行以使用本文所公开的技术中的一种或多种技术来基于物理环境的3D表示(例如,3D点云、3D网格重建、语义3D点云等)生成并显示物理环境的2D平面图的实时预览。然后将2D平面图预览覆盖到实时相机馈送上以用于在设备上的画中画显示。例如,实时预览单元244从光强度相机获取光强度图像序列(例如,实时相机馈送)、从3D表示单元242生成的语义3D表示(例如,语义3D点云)以及其他物理环境信息源(例如,来自相机的同时定位与建图(SLAM)系统的相机定位信息)以输出利用光强度图像序列迭代地更新的2D平面图图像。为了生成2D平面图,实时预览单元244被配置有指令,该指令能够由处理器执行以基于语义3D表示生成在光强度图像序列中识别的墙的边缘地图并使用线拟合算法执行后处理。实时预览单元244被进一步配置有指令,该指令能够由处理器执行以基于语义3D表示来识别光强度图像序列中的墙属性(例如,门和窗)并使用本文进一步所公开的微调算法技术来执行后处理。

实时预览单元244还可被配置有指令,该指令能够由处理器执行以基于语义3D表示来识别光强度图像序列中的对象(例如,家具、器具等),为每个所识别的对象生成边界框,并且使用本文进一步所公开的微调算法技术来执行后处理。

实时预览单元244使用本文进一步所公开的一个或多个过程从边缘地图、所识别的墙属性的边界以及所识别的对象的边界框生成2D平面图。

在一些具体实施中,实时预览单元244包括独立单元,诸如用于识别墙并生成和微调边缘地图的边缘建图单元和相关联的后处理单元、用于识别和微调所识别的每个墙属性的边界的墙属性单元和相关联的后处理单元、用于识别和微调所识别的每个对象的边界框的对象检测单元和相关联的后处理单元,以及如本文参考图6进一步所述用于生成2D平面图的平面图预览单元。

平面图单元246被配置有指令,该指令能够由处理器执行以使用本文所公开的技术中的一种或多种技术来基于物理环境的3D表示(例如,3D点云、3D网格重建、语义3D点云等)生成并显示物理环境的2D平面图。例如,平面图单元246从光强度相机获取光强度图像序列(例如,实时相机馈送)、从3D表示单元242生成的语义3D表示(例如,语义3D点云)以及其他物理环境信息源(例如,来自相机的SLAM系统的相机定位信息)以输出定稿的2D平面图像(例如,标准化和归一化的平面图)。另外,平面图单元246基于语义3D表示生成在光强度图像序列中识别的墙的边缘地图,并且使用线拟合算法技术和使用本文进一步所公开的小墙神经网络的拐角微调来执行后处理。实时预览单元244被进一步配置有指令,该指令能够由处理器执行以识别光强度图像序列中的墙属性(例如,门和窗)并基于本文进一步所公开的语义3D表示使用微调算法技术来执行后处理。平面图单元246也被配置有指令,该指令能够由处理器执行以基于语义3D表示来识别光强度图像序列中的对象(例如,家具、器具等),为每个所识别的对象生成边界框,并且使用本文进一步所公开的2阶段微调神经网络技术来执行后处理。平面图单元246被进一步配置有指令,该指令能够由处理器执行以使用本文进一步所公开的一个或多个过程从边缘地图、所识别的墙属性的边界以及所识别的对象的边界框生成定稿的2D平面图。

在一些具体实施中,平面图单元246被进一步配置有指令,该指令能够由处理器执行以使用本文进一步所公开的一个或多个过程生成基于在边缘地图上所识别的墙的3D表示的测量数据、所识别的墙属性的边界的测量数据,以及所识别的对象的边界框的测量数据。

在一些具体实施中,平面图单元246包括独立单元,诸如用于识别墙并生成和微调具有小墙和拐角的边缘地图的边缘建图单元和相关联的后处理单元、用于识别和微调所识别的每个墙属性的边界的墙属性单元和相关联的后处理单元、用于识别和微调所识别的每个对象的边界框的对象检测单元和相关联的后处理单元、用于生成标准化2D平面图的平面图定稿单元,以及用于生成测量数据的测量单元,如本文参考图8和图12进一步所述。

测量单元248被配置有指令,该指令能够由处理器执行以使用本文所公开的一种或多种技术生成基于在边缘地图上所识别的墙的3D表示(例如,3D点云、3D网格重建、语义3D点云等)的测量数据、所识别的墙属性的边界的测量数据,以及所识别的对象的边界框的测量数据。例如,测量单元248从平面图单元244获取墙的定稿的边缘地图和相关联的深度数据、所识别的墙属性的2D轮廓和相关联的深度数据,以及所识别的对象的边界框(例如,细化的边界框)。测量单元248被配置有指令,该指令能够由处理器执行以使用本文参考图8和图12进一步所公开的一个或多个过程生成基于在边缘地图上所识别的墙的3D表示的测量数据、所识别的墙属性的边界的测量数据,以及所识别的对象的边界框的测量数据。

尽管这些元件被示出为驻留在单个设备(例如,服务器110)上,但应当理解,在其他具体实施中,元件的任何组合可位于单独的计算设备中。此外,图2更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图2中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。

图3是根据一些具体实施的设备120的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,设备120包括一个或多个处理单元302(例如,微处理器、ASIC、FPGA、GPU、CPU、处理核心等)、一个或多个输入/输出(I/O)设备和传感器306、一个或多个通信接口308(例如,USB、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE802.11x、IEEE 802.16x、GSM、CDMA、TDMA、GPS、IR、BLUETOOTH、ZIGBEE、SPI、I2C和/或相似类型的接口)、一个或多个编程(例如,I/O)接口310、一个或多个AR/VR显示器312、一个或多个面向内部和/或面向外部的图像传感器314、存储器320以及用于互连这些部件和各种其他部件的一条或多条通信总线304。

在一些具体实施中,一条或多条通信总线304包括互连和控制系统部件之间的通信的电路。在一些具体实施中,该一个或多个I/O设备和传感器306包括以下中的至少一者:惯性测量单元(IMU)、加速度计、磁力计、陀螺仪、温度计、一个或多个生理传感器(例如,血压监测仪、心率监测仪、血氧传感器、血糖传感器等)、一个或多个传声器、一个或多个扬声器、触觉引擎、一个或多个深度传感器(例如,结构光、飞行时间等)等。

在一些具体实施中,一个或多个显示器312被配置为向用户呈现体验。在一些具体实施中,一个或多个显示器312对应于全息、数字光处理(DLP)、液晶显示器(LCD)、硅上液晶(LCoS)、有机发光场效应晶体管(OLET)、有机发光二极管(OLED)、表面传导电子发射器显示器(SED)、场发射显示器(FED)、量子点发光二极管(QD-LED)、微机电系统(MEMS)和/或相似显示器类型。在一些具体实施中,一个或多个显示器312对应于衍射、反射、偏振、全息等波导显示器。例如,设备120包括单个显示器。又如,设备120包括针对用户的每只眼睛的显示器。

在一些具体实施中,该一个或多个图像传感器系统314被配置为获取对应于物理环境105的至少一部分的图像数据。例如,该一个或多个图像传感器系统314包括一个或多个RGB相机(例如,具有互补金属氧化物半导体(CMOS)图像传感器或电荷耦合器件(CCD)图像传感器)、单色相机、红外相机、基于事件的相机等。在各种具体实施中,该一个或多个图像传感器系统314还包括发射光的照明源,诸如闪光灯。在各种具体实施中,该一个或多个图像传感器系统314还包括相机上图像信号处理器(ISP),该相机上图像信号处理器被配置为对图像数据执行多个处理操作,该多个处理操作包括本文所述的过程和技术中的至少一部分。

存储器320包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备。在一些具体实施中,存储器320包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器320任选地包括远离所述一个或多个处理单元302定位的一个或多个存储设备。存储器320包括非暂态计算机可读存储介质。在一些具体实施中,存储器320或存储器320的非暂态计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集,包括可选的操作系统330以及一个或多个应用程序340。

操作系统330包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些具体实施中,应用程序340被配置为管理和协调一个或多个用户的一个或多个体验(例如,一个或多个用户的单个体验,或一个或多个用户的相应群组的多个体验)。应用程序340包括3D表示单元342、实时预览单元344、平面图单元346和测量单元348。3D表示单元342、实时预览单元344、平面图单元346和测量单元348可组合成单个应用程序或单元,或者分成一个或多个附加应用程序或单元。

3D表示单元342被配置有指令,该指令能够由处理器执行以获取图像数据(例如,光强度数据、深度数据等)并使用本文所公开的技术中的一种或多种技术整合(例如,融合)图像数据。例如,3D表示单元342将来自光强度相机的RGB图像与来自深度相机(例如,飞行时间传感器)和其他物理环境信息源的稀疏深度图融合,以输出密集的深度点云信息。另外,3D表示单元342被配置有指令,该指令能够由处理器执行以获取光强度图像数据(例如,RGB)并执行语义分割算法以使用本文所公开的技术中的一种或多种技术将语义标签分配给图像数据中的识别特征并生成语义图像数据(例如,RGB-S)。3D表示单元342被进一步配置有指令,该指令能够由处理器执行以获取光强度图像数据(例如,RGB)和深度图像数据,并且使用本文所公开的技术中的一种或多种技术来生成语义3D表示(例如,具有相关联语义标签的3D点云)。在一些具体实施中,3D表示单元342包括独立单元,诸如用于生成3D点云数据的整合单元、用于基于光强度数据进行语义分割的语义单元(例如,RGB-S),以及用于生成语义3D表示的语义3D单元,如本文参考图4进一步所述。

实时预览单元344被配置有指令,该指令能够由处理器执行以使用本文所公开的技术中的一种或多种技术来基于物理环境的3D表示(例如,3D点云、3D网格重建、语义3D点云等)生成并显示物理环境的2D平面图的实时预览。然后将2D平面图覆盖到实时相机馈送上以用于画中画显示。例如,实时预览单元344从光强度相机获取光强度图像序列(例如,实时相机馈送)、从3D表示单元342生成的语义3D表示(例如,语义3D点云)以及其他物理环境信息源(例如,来自相机的同时定位与建图(SLAM)系统的相机定位信息)以输出利用光强度图像序列迭代地更新的2D平面图图像。为了生成2D平面图,实时预览单元344被配置有指令,该指令能够由处理器执行以基于语义3D表示生成在光强度图像序列中识别的墙的边缘地图并使用本文进一步所公开的线拟合算法技术执行后处理。实时预览单元344被进一步配置有指令,该指令能够由处理器执行以基于语义3D表示来识别光强度图像序列中的墙属性(例如,门和窗)并使用本文进一步所公开的微调算法技术来执行后处理。

实时预览单元344还可被配置有指令,该指令能够由处理器执行以基于语义3D表示来识别光强度图像序列中的对象(例如,家具、器具等),为每个所识别的对象生成边界框,并且使用本文进一步所公开的微调算法技术来执行后处理。

实时预览单元344使用本文进一步所公开的一个或多个过程从边缘地图、所识别的墙属性的边界以及所识别的对象的边界框生成2D平面图。

在一些具体实施中,实时预览单元344包括独立单元,诸如用于识别墙并生成和微调边缘地图的边缘建图单元和相关联的后处理单元、用于识别和微调所识别的每个墙属性的边界的墙属性单元和相关联的后处理单元、用于识别和微调所识别的每个对象的边界框的对象检测单元和相关联的后处理单元,以及如本文参考图6进一步所述用于生成2D平面图的平面图预览单元。

平面图单元346被配置有指令,该指令能够由处理器执行以使用本文所公开的技术中的一种或多种技术来基于物理环境的3D表示(例如,3D点云、3D网格重建、语义3D点云等)生成并显示物理环境的2D平面图。例如,平面图单元346从光强度相机获取光强度图像序列(例如,实时相机馈送)、从3D表示单元342生成的语义3D表示(例如,语义3D点云)以及其他物理环境信息源(例如,来自相机的SLAM系统的相机定位信息)以输出定稿的2D平面图像(例如,标准化和归一化的平面图)。另外,平面图单元346被配置有指令,该指令能够由处理器执行以基于语义3D表示生成在光强度图像序列中识别的墙的边缘地图,并且使用线拟合算法技术和使用本文进一步所公开的小墙神经网络的拐角微调来执行后处理。实时预览单元344也被配置有指令,该指令能够由处理器执行以识别光强度图像序列中的墙属性(例如,门和窗)并基于本文进一步所公开的语义3D表示使用微调算法技术来执行后处理。

平面图单元346也被配置有指令,该指令能够由处理器执行以基于语义3D表示来识别光强度图像序列中的对象(例如,家具、器具等),为每个所识别的对象生成边界框,并且使用本文进一步所公开的2阶段微调神经网络技术来执行后处理。

平面图单元346被进一步配置有指令,该指令能够由处理器执行以使用本文进一步所公开的一个或多个过程从边缘地图、所识别的墙属性的边界以及所识别的对象的边界框生成定稿的2D平面图。

在一些具体实施中,平面图单元346被进一步配置有指令,该指令能够由处理器执行以使用本文进一步所公开的一个或多个过程生成基于在边缘地图上所识别的墙的3D表示的测量数据、所识别的墙属性的边界的测量数据,以及所识别的对象的边界框的测量数据。

在一些具体实施中,平面图单元346包括独立单元,诸如用于识别墙并生成和微调具有小墙和拐角的边缘地图的边缘建图单元和相关联的后处理单元、用于识别和微调所识别的每个墙属性的边界的墙属性单元和相关联的后处理单元、用于识别和微调所识别的每个对象的边界框的对象检测单元和相关联的后处理单元、用于生成标准化2D平面图的平面图定稿单元,以及用于生成测量数据的测量单元,如本文参考图8和图12进一步所述。

测量单元348被配置有指令,该指令能够由处理器执行以使用本文所公开的一种或多种技术生成基于在边缘地图上所识别的墙的3D表示的测量数据、所识别的墙属性的边界的测量数据,以及所识别的对象的边界框的测量数据。例如,测量单元348从平面图单元344获取墙的定稿的边缘地图和相关联的深度数据、所识别的墙属性的2D轮廓和相关联的深度数据,以及所识别的对象的边界框(例如,细化的边界框)。测量单元348被配置有指令,该指令能够由处理器执行以使用本文参考图8和图12进一步所公开的一个或多个过程生成基于在边缘地图上所识别的墙的3D表示的测量数据、所识别的墙属性的边界的测量数据,以及所识别的对象的边界框的测量数据。

尽管这些元件被示出为驻留在单个设备(例如,设备120)上,但应当理解,在其他具体实施中,元件的任何组合可位于单独的计算设备中。此外,图3更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图3中单独示出的一些功能模块(例如,应用程序340)可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。

图4是示例性环境400的系统流程图,其中系统可基于在物理环境中检测到的深度和光强度图像信息使用3D数据和语义分割数据来生成语义3D表示。在一些具体实施中,示例性环境400的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。示例性环境400的系统流程可显示在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上,诸如头戴式显示器(HMD)。在一些具体实施中,示例性环境400的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境400的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。

示例性环境400的系统流程采集物理环境(例如,图1的物理环境105)的图像数据,并且3D表示单元410(例如,图2的3D表示单元242和/或图3的3D表示单元342)使用具有相关联的语义标签的3D点云来生成表示3D环境中的表面的语义3D表示445。在一些具体实施中,语义3D表示445是使用基于在物理环境中检测到的深度信息的网格化算法的3D重建网格,该深度信息被整合(例如,融合)以重建物理环境。网格化算法(例如,双行进立方体网格化算法、泊松网格化算法、四面体网格化算法等)可用于生成表示房间(例如,物理环境105)和/或房间内的对象(例如,墙130、门150、椅子140、桌子142等)的网格。在一些具体实施中,对于使用网格的3D重建,为了有效地减少在重建过程中使用的存储器的量,使用了体素散列方法,其中3D空间被分成体素块,由散列表使用其3D位置作为键来引用。体素块仅围绕对象表面构造,从而释放原本将用于存储空余空间的存储器。体素散列方法也比当时的竞争方法(诸如基于八叉树的方法)更快。此外,它支持GPU和CPU之间的数据流,在GPU中,存储器通常是有限的,在CPU中,存储器更丰富。

在一个示例性具体实施中,环境400包括采集或获取物理环境的数据(例如,来自图像源的图像数据)的图像合成流水线。示例性环境400是采集多个图像帧的图像数据(例如,光强度数据和深度数据)的示例。图像源可包括采集物理环境的深度数据404的深度相机402,以及采集光强度图像数据408(例如,RGB图像帧序列)的光强度相机406(例如,RGB相机)。

3D表示单元410包括整合单元420,该整合单元被配置有指令,该指令能够由处理器执行以使用一种或多种已知技术获取图像数据(例如,光强度数据408、深度数据404等)并整合(例如,融合)图像数据。例如,图像整合单元420从图像源(例如,光强度相机406和深度相机402)接收深度图像数据404和强度图像数据408,并且整合图像数据并生成3D数据422。3D数据422可包括发送到语义3D单元440的密集的3D点云424(例如,对象周围的多个图像帧的不完美深度图和相机方位)。3D点云424中的不同尺寸的灰点表示在深度数据内检测到的不同深度值。例如,图像整合单元422将来自光强度相机的RGB图像与来自深度相机(例如,飞行时间传感器)和其他物理环境信息源的稀疏深度图融合,以输出密集的深度点云信息。3D数据422也可被体素化,如体素化3D点云426所表示的,其中每个体素上的不同阴影表示不同的深度值。

3D表示单元410还包括语义单元430,该语义单元被配置有指令,该指令能够由处理器执行以使用一种或多种已知技术来获取光强度图像数据(例如,光强度数据408)和语义分割墙结构(墙、门、窗等)以及对象类型(例如,桌子、茶壶、椅子、花瓶等)。例如,语义单元430从图像源(例如,光强度相机406)接收强度图像数据408,并且生成语义分割数据432(例如,RGB-S数据)。例如,语义分割434示出了图1中的物理环境105的语义标记的图像。在一些具体实施中,语义单元430使用机器学习模型,其中语义分割模型可被配置为识别图像数据的像素或体素的语义标签。在一些具体实施中,机器学习模型是神经网络(例如,人工神经网络)、决策树、支持向量机、贝叶斯网络等。

3D表示单元410还包括语义3D单元440,该语义3D单元被配置有指令,该指令能够由处理器执行以从整合单元420获取3D数据422(例如,3D点云数据424)并且从语义单元430获取语义分割数据432(例如,RGB-S数据),以及使用一种或多种技术生成语义3D表示445。例如,语义表示单元440通过使用融合3D数据和语义标签的语义3D算法采集3D点云数据424和语义分割434来生成语义标记的3D点云447。一些具体实施中,每个语义标签包括置信度值。例如,可将特定点标记为对象(例如,桌子),并且数据点将包括x、y、z坐标和十进制值的置信度值(例如,0.9表示语义标签已正确地划分出特定数据点的90%的置信度)。在一些具体实施中,可生成3D重建的网格作为语义3D表示445。

图5是根据一些具体实施的基于物理环境的3D表示生成并显示物理环境的初步2D平面图的实时预览的示例性方法500的流程图表示。在一些具体实施中,方法500由设备(例如,图1至图3的服务器110或设备120)执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。方法500可以在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上执行,诸如头戴式显示器(HMD)。在一些具体实施中,方法500由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法500由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。

方法500是创建在房间扫描期间(例如,当带着设备诸如智能电话或平板电脑四处走动时)显示的初步平面图的实时预览的过程。为了启用初步平面图的实时预览,可以(至少初始地)与最终扫描后平面图不同地生成预览(例如,用于微调的附加后处理技术、用于测量数据的提高的准确度等)。例如,实时预览可使用计算密度更低的神经网络,或者在没有微调(例如,拐角校正技术)的情况下提供初始平面图。2D语义数据的使用(例如,针对房间的不同层)还可促进使预览确定对于实时显示有效。根据一些具体实施,初步平面图创建过程包括基于单独识别墙结构(例如,墙边缘、门和窗)以及检测对象(例如,家具、器具等)的边界框的房间的2D俯视图。除此之外或另选地,用于实时预览和/或后处理的初步平面图创建过程提供了基于识别墙结构(墙边缘)的房间的2D俯视图,其中识别墙结构基于在多个层中编码3D语义数据的2D表示。参考图6示出了方法500的初步平面图创建过程的实时预览。

在框502处,方法500显示包括物理环境的图像序列的实时相机馈送。例如,当用户在房间四处走动时捕获视频以从多个视角捕获房间的不同部分的图像时,这些图像被实时显示在移动设备上,使得用户看到他/她正在捕获的内容。

在框504处,方法500获取物理环境的3D表示,该物理环境的3D表示基于在实时相机馈送的显示期间获取的深度数据和光强度图像数据而生成。深度数据可包括来自视点的像素深度值以及传感器位置和取向数据。在一些具体实施中,使用一个或多个深度相机获取深度数据。例如,该一个或多个深度相机可基于结构光(SL)、无源立体(PS)、有源立体(AS)、飞行时间(ToF)等采集深度。可以应用各种技术来采集深度图像数据以分配图像的每个部分(例如,在像素级)。例如,体素数据(例如,3D网格上的光栅图形,具有长度、宽度和深度的值)还可包含多个标量值,诸如不透明度、颜色和密度。在一些具体实施中,从传感器或图像内容的3D模型获取深度数据。图像的一些或所有内容可基于真实环境,例如描绘设备120周围的物理环境105。图像传感器可捕获物理环境105的图像以包括在关于物理环境105的图像和深度信息中。在一些具体实施中,设备120上的深度传感器(例如,深度相机402)确定基于由设备120上的图像传感器捕获的图像确定的体素的深度值。可基于一个或多个值对用户周围的物理环境105进行3D建模(例如,3D点云424),并且可基于模型和相机位置信息(例如,SLAM信息)来确定在物理环境的后续图像中描绘的对象的后续深度。

在框506处,方法500基于物理环境的3D表示生成物理环境的初步2D平面图的实时预览。例如,可生成物理环境105的初步平面图的2D俯视图,该2D俯视图包括房间中所识别的结构(例如,墙、桌子、门、窗等)。在一些具体实施中,2D语义数据的使用(例如,针对房间的不同层)还可促进使预览确定对于实时显示有效。根据一些具体实施,初步平面图创建过程包括基于单独识别墙结构(例如,墙边缘、门和窗)以及检测对象(例如,家具、器具等)的边界框的房间的2D俯视图。除此之外或另选地,用于实时预览和/或后处理的初步平面图创建过程提供了基于识别墙结构(墙边缘)的房间的2D俯视图,其中识别墙结构基于在多个层中编码3D语义数据的2D表示。

在框508处,方法500与实时相机馈送同时显示初步2D平面图的实时预览。例如,当实时相机馈送被示出为主视频时,可在设备(例如,图1和图3的设备120)的显示器上示出画中画显示,并且当系统在用户采集更多图像数据序列(例如,在房间四处移动)时构建平面图时,示出初步2D平面图的图像。例如,当用户正在观看房间环境(例如,房间环境105)的实时相机馈送时,具有初步2D平面图的另一查看窗口在生成时覆盖在该实时相机馈送的顶部上(例如,画中画(PIP))。参考图6示出了覆盖实时预览显示。

根据一些具体实施,方法500还包括基于3D表示生成物理环境的最终2D平面图,其中生成最终2D平面图使用与生成初步2D平面图的实时预览不同的过程。例如,不同的过程使用具有微调(例如,拐角校正)等的计算密度更高的神经网络。在一些具体实施中,不同的过程包括基于3D表示使用计算密度更高的神经网络划分出拐角和小墙,基于所划分的拐角和小墙生成过渡2D平面图,使用标准化算法确定针对过渡2D平面图的细化方案,以及基于针对过渡2D平面图的所确定的细化方案来生成物理环境的最终2D平面图。

根据一些具体实施,方法500还包括通过基于3D表示识别物理环境中的墙来生成边缘地图,通过基于3D表示识别物理环境中的墙属性(例如,门和窗)来更新边缘地图,通过基于3D表示识别物理环境中的对象来更新边缘地图,以及基于包括所识别的墙、所识别的墙属性以及所识别的对象的所更新的边缘地图来生成初步2D平面图的实时预览来生成初步2D平面图的实时预览。在一些具体实施中,生成2D平面图的实时预览包括基于3D表示生成物理环境的多个水平层的2D语义数据,以及使用2D语义数据生成初步2D平面图。例如,每个层为z值范围提供x、y语义,例如,对于z值范围为0-10的每个x、y位置,第一层可以是最常见语义标签。

根据一些具体实施,方法500还包括通过识别墙来生成边缘地图,其中这包括使用线拟合算法来确定边缘地图的参数细化线,以及基于该参数细化线来更新边缘地图。在一些具体实施中,通过识别墙属性来更新边缘地图包括使用墙属性神经网络和实时相机馈送的图像序列(例如,透明窗的RGB数据)来确定所识别的墙属性的边界,以及使用多边形启发式算法基于与所识别的墙属性相关联的3D表示来生成细化的边界。在一些具体实施中,通过识别对象来更新边缘地图包括基于3D表示生成对应于物理环境中的所识别的对象的3D边界框,以及生成该3D边界框的2D表示(例如,家具图标或平面2D边界框)。

图6是示例性环境600的系统流程图,其中系统可以基于物理环境的3D表示(例如,3D点云、3D网格重建、语义3D点云等)生成并显示该物理环境的初步2D平面图的实时预览。在一些具体实施中,示例性环境600的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。示例性环境600的系统流程可显示在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上,诸如头戴式显示器(HMD)。在一些具体实施中,示例性环境600的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境600的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。

示例性环境600的系统流程采集物理环境(例如,图1的物理环境105)的图像数据(例如,来自光强度相机406的实时相机馈送)、来自语义3D单元440的语义3D表示(例如,语义3D表示445),以及在平面图实时预览单元610(例如,图2的实时预览单元244和/或图3的实时预览单元344)处的其他物理环境信息源(例如,相机定位信息)。本公开的一些具体实施可包括SLAM系统(例如,SLAM单元602)。该SLAM系统可包括独立于GPS并且提供实时同时定位与建图的多维(例如,3D)激光扫描和范围测量系统。该SLAM系统可生成并管理由来自环境中对象的激光扫描的反射而产生的非常准确的点云数据。随着时间推移,准确地跟踪点云中的任何点的移动,使得SLAM系统可使用点云中的点作为位置的参考点,在其行进通过环境时保持对其位置和取向的精确理解。

平面图实时预览单元610包括边缘建图单元612、线拟合单元613、墙属性单元614、后/调谐单元615、对象检测单元616、后/调谐单元617以及平面图预览整合单元618。边缘建图单元612和线拟合单元613用于使用本文所公开的技术中的一种或多种技术基于所识别的墙的语义3D表示来生成和细化边缘地图。例如,边缘建图单元612从语义3D单元440获取所识别的语义标记的墙的3D数据(例如,语义3D表示445),并且生成所识别的墙的初始2D边缘地图,并且线拟合单元613使用线拟合算法生成细化的2D边缘地图。墙属性单元614和后/调谐单元615用于使用本文所公开的一种或多种技术基于所识别的墙属性(例如,门和窗)的语义3D表示来生成和细化墙属性边界。例如,墙属性单元614获取所识别的语义标记的门和窗的光强度图像数据(例如,来自光强度数据408的关键帧),并且生成所识别的门和窗的2D边界。线拟合单元613从语义3D单元440获取所识别的语义标记的门和窗的3D数据(例如,语义3D表示445),并且使用一个或多个后处理和微调算法针对每个所识别的门和窗生成具有相关联深度数据的细化的边界。对象检测单元616和后/调谐单元617用于使用本文所公开的技术中的一种或多种技术基于所识别的对象的语义3D表示来生成和细化边界框。例如,对象检测单元616从语义3D单元440获取所识别的语义标记的对象的3D数据(例如,语义3D表示445),并且生成所识别的对象的初始边界框,并且后/调谐单元617使用一种或多种后处理和微调算法生成细化的边界框。

在平面图预览整合单元618从线拟合单元613获取细化的边缘地图、从后/调谐单元614获取细化的边界以及从后/调谐单元617获取细化的边界框时,平面图预览整合单元618迭代地生成并更新初步2D平面图预览馈送。例如,当用户利用设备的相机扫描房间时,所采集的图像数据正在连续更新,因此可利用更新的图像数据的每次迭代来连续更新对象的边缘地图、墙属性边界和边界框。平面图预览单元610将初步2D平面图预览馈送(例如,预览2D平面图630)和实时相机馈送发送到设备显示器312。设备显示器312可显示实时视图(例如,光强度图像数据408)和包括预览2D平面图630的画中画(PIP)显示器620。预览2D平面图630包括边缘地图墙632a、632b、632c(例如,分别表示墙134、130、132)、边界634a(例如,表示门150)、边界634b(例如,表示窗152)、边界框636a(例如,表示桌子142)以及边界框636b(例如,表示椅子140)。在一些具体实施中,标准化图标用于所识别的对象(例如,如果在3D表示数据中识别出桌子,则“桌子”图标代替边界框或2D框显示,如图6中针对边界框636a所示)。

图7是根据一些具体实施的生成并显示物理环境的2D平面图的示例性方法700的流程图表示。在一些具体实施中,方法700由设备(例如,图1至图3的服务器110或设备120)执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。方法700可以在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上执行,诸如头戴式显示器(HMD)。在一些具体实施中,方法500由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法700由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。

方法700是创建物理空间(例如,物理环境105)的平面图的过程。方法700提供平面图,该平面图包括房间的2D俯视图,该2D俯视图基于单独识别房间中的墙结构(墙边缘、门、窗户)以及生成所检测到的对象(例如,家具、器具等)的边界框。除此之外或另选地,平面图创建过程提供了基于识别墙结构(墙边缘)的房间的2D俯视图,其中识别墙结构基于在多个层中编码3D语义数据的2D表示。参考图8A至图8D示出了方法700的平面图创建过程。

在框702处,方法700获取物理环境的3D表示,该物理环境的3D表示基于在扫描过程期间获取的深度数据和光强度图像数据而生成。例如,可基于在房间扫描期间与图像同时接收到的深度相机信息来生成3D点云。在一些具体实施中,3D表示与包括3D点云的3D语义数据相关联,该3D点云包括与该3D点云(例如,语义3D点云447)内的3D点的至少一部分相关联的语义标签。另外,在一些具体实施中,语义标签标识物理环境的墙、墙属性(例如,门和窗)、对象和对象的划分。

在框704处,方法700基于3D表示来检测墙结构在物理环境中的位置。例如,可通过以下方式识别墙:生成2D语义数据(例如,在层中),使用该2D语义数据来使用神经网络生成边缘地图,以及确定矢量参数以使3D归一化平面图中的边缘地图标准化。可基于RGB图像和深度数据来识别墙属性或墙属性(例如,门/窗)以生成多边形边界。这种用于门和窗的技术提供了优点,尤其是由于窗的透明度在深度数据中产生了噪声/误差。

在框706处,方法700基于3D表示生成对应于物理环境中的对象的边界框。例如,3D边界框可提供房间中的每件家具和器具的位置、方位(例如,位置和取向)和形状。可使用RGB数据和新型多网络调节技术(例如,用于低查准/高查全和高查准/低查全的2阶段神经网络微调)来细化边界框。

在框708处,方法700显示提供物理环境的视图(例如,俯视)的2D平面图。在一些具体实施中,基于对应于对象的墙结构和边界框的位置来确定2D平面图。例如,2D平面图在设备(例如,图1和图3的设备120)上显示。

根据一些具体实施,方法700还包括基于3D表示检测物理环境中墙结构的位置,包括基于3D表示从墙结构识别物理环境的墙和墙属性(例如,门和窗),以及基于3D表示生成所识别的墙和墙属性的边缘地图,其中2D平面图基于所生成的包括所识别的墙和所识别的墙属性的边缘地图。在一些具体实施中,示例性方法还涉及使用计算密度更高的神经网络划分出拐角和小墙,基于所划分的拐角和小墙来更新2D平面图,以及基于所更新的2D平面图使用标准化算法来确定细化的最终2D平面图。在一些具体实施中,该示例性方法还涉及使用在扫描过程期间获取的墙结构神经网络和光强度图像数据(例如,RGB数据)来确定所识别的墙结构的边界,以及使用多边形启发式算法基于与所识别的墙属性相关联的3D语义数据来生成细化的边界。

根据一些具体实施,这些边界框是细化的边界框,并且方法700还涉及通过使用第一神经网络生成建议的边界框来生成对象的细化的边界框,以及通过使用第二神经网络(例如,低查准/高查全以生成对象的特征)识别对象的特征并且基于所识别的特征使用第三神经网络细化所建议的边界框(例如,高查准/低查全以细化所生成特征的准确性并输出细化的边界框)来生成细化的边界框。在一些具体实施中,第一神经网络基于与对象相关联的3D表示来生成所建议的边界框。在一些具体实施中,第二神经网络基于与对象相关联的3D表示和在扫描过程期间获取的光强度图像数据(例如,RGB数据)来识别对象的特征。在一些具体实施中,训练第三神经网络以细化来自第二神经网络的所识别特征的准确性,并且基于与对象相关联的3D表示以及在扫描过程期间获取的光强度图像数据(例如,RGB数据)来输出细化的边界框。在一些具体实施中,边界框提供物理环境中对象的位置信息、方位信息(例如,位置和取向信息)以及形状信息。

图8A是示例性环境800A的系统流程图,其中系统可以基于物理环境的3D表示(例如,3D点云、3D网格重建、语义3D点云等)生成并显示该物理环境的2D平面图。在一些具体实施中,示例性环境800A的系统流程可显示在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上,诸如头戴式显示器(HMD)。在一些具体实施中,示例性环境800A的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境800A的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。

示例性环境800A的系统流程采集物理环境(例如,图1的物理环境105)的图像数据(例如,来自光强度相机406的实时相机馈送)、来自语义3D单元440的语义3D表示(例如,语义3D表示445),以及在平面图定稿单元850(例如,图2的平面图单元246和/或图3的实时平面图346)处的其他物理环境信息源(例如,相机定位信息)。本公开的一些具体实施可包括SLAM系统(例如,SLAM单元602)。

平面图单元802包括墙结构单元810、对象检测单元840(在图8D中示出)和平面图定稿单元850。墙结构单元810包括墙单元820(在图8B中示出)和墙属性单元830(在图8C中示出)。在平面图定稿单元850从墙单元820获取细化的边缘地图、从墙属性单元830获取细化的边界以及从对象检测单元840获取细化的边界框时,平面图定稿单元850生成2D平面图定稿数据。平面图定稿单元850将2D平面图(例如,2D平面图860)发送到设备显示器(例如,显示器312或设备120)。2D平面图860包括边缘地图墙862a、862b、862c(例如,分别表示墙134、130、132)、边界864a(例如,表示门150)、边界864b(例如,表示窗152)、边界框866a(例如,表示桌子142)以及边界框866b(例如,表示椅子140)。

在一些具体实施中,平面图定稿单元850包括使用标准化算法细化2D平面图的标准化单元。例如,在行业中使用的建筑平面图具有满足标准平面图的共同特征或元素,从而使读取平面图更加容易和高效。一些标准包括使用通用图标来代替识别的对象,诸如家具、器具等,以代替边界框。测量数据仍将反映细化的边界框x、y、z测量,但可使用表示对象的图标。

在一些具体实施中,平面图定稿单元850包括测量单元以使用本文进一步所公开的一个或多个过程生成基于在边缘地图上所识别的墙的3D表示的测量数据、所识别的墙属性的边界的测量数据,以及所识别的对象的边界框的测量数据。

图8B是示例性环境800B的系统流程图,其中墙单元820可基于物理环境的3D表示生成细化的边缘地图。在一些具体实施中,示例性环境800B的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。在一些具体实施中,示例性环境800B的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境800B的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。

墙单元820包括边缘地图神经网络822、线拟合单元826以及小墙神经网络828。示例性环境800B的系统流程开始于边缘地图神经网络822采集语义3D表示(例如,语义3D表示445),其包括所识别的墙的3D数据。边缘地图神经网络822生成所识别的墙的初始边缘地图823,并且划分出拐角824a至拐角824g(本文称为拐角824)。然后由线拟合单元826使用线拟合算法来细化边缘地图823以生成线拟合边缘地图827。然后通过小墙神经网络828进一步细化线拟合边缘地图827,该小墙神经网络进一步划分和区分每个拐角以生成细化的边缘地图829。例如,拐角824a和824e通过所采集的数据被初始地识别为标准拐角,但是训练小墙神经网络828以识别实际上可以是支柱或凹入拐角的拐角,使得定稿的平面图应反映准确性和完整性。另外,拐角824d实际上可以是到相邻房间的开放通路,而不是初始由边缘地图所指示的墙。然后将细化的边缘地图829发送到平面图定稿单元850。

图8C是示例性环境800C的系统流程图,其中墙属性单元830可以基于物理环境的光强度图像(例如,关键RGB帧)和3D表示生成具有相关联深度数据的细化的2D边界。在一些具体实施中,示例性环境800C的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。在一些具体实施中,示例性环境800C的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境800C的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。

墙属性单元830包括墙属性神经网络832和后处理单元834。示例性环境800C的系统流程开始于墙属性单元830在墙属性神经网络832处采集光强度图像(例如,光强度图像数据408),该墙属性神经网络生成所识别的墙属性的初始边界833a和边界833b(例如,分别表示门150和窗152的边界)。然后由后处理单元834细化边界833a、833b,该后处理单元获取包括所识别的墙属性的3D数据的语义3D表示(例如,语义3D表示445),并且使用多边形启发式算法并生成具有相关联深度数据的细化的2D边界835a、835b。然后将细化的2D边界835a、835b发送到平面图定稿单元850。

图8D是示例性环境800D的系统流程图,其中对象检测单元840可基于物理环境的3D表示针对相关联的所识别的对象生成细化的边界框。在一些具体实施中,示例性环境800D的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。在一些具体实施中,示例性环境800D的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境800D的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。

对象检测单元840包括对象检测神经网络842和微调单元844,该微调单元包括微调阶段1神经网络846和微调阶段2神经网络848。示例性环境800D的系统流程开始于对象检测单元840在对象检测神经网络842处采集包括所识别的对象的3D数据的语义3D表示(例如,语义3D表示445),该对象检测神经网络生成所识别的对象的建议的边界框843a和843b(例如,分别为桌子142和椅子140)。然后由微调单元844使用两阶段神经网络来细化所建议的边界框843a和843b。微调阶段1神经网络846采集语义3D表示数据、光强度图像数据(例如,光强度图像数据408)以及所建议的边界框843a和843b,并且生成阶段1输出。微调阶段1神经网络846使用神经网络使用低查准/高查全网络来识别对象的特征以生成对象的特征。3D数据、光强度图像数据、建议的边界框843a、843b和阶段1输出由微调阶段2神经网络848获取,该微调阶段2神经网络使用高查准/低查全神经网络生成细化的边界框,以细化所生成的特征的准确性并输出细化的边界框845a和845b(例如,分别为桌子142和椅子140)。如图8D中所示,细化的边界框845a和845b分别比边界框843a和843b更准确。然后将细化的边界框845a和845b发送到平面图定稿单元850。

图9是根据一些具体实施的基于使用2D语义数据生成边缘地图来生成并提供物理环境的平面图的示例性方法900的流程图表示。在一些具体实施中,方法900由设备(例如,图1至图3的服务器110或设备120)执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。方法900可以在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上执行,诸如头戴式显示器(HMD)。在一些具体实施中,方法900由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法900由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。

方法900是基于2D语义数据创建物理空间(例如,物理环境105)的平面图的过程。方法900提供了平面图,该平面图包括基于根据所接收的语义3D语义数据生成多个水平层的2D语义数据的房间的2D俯视图。参考图10示出了方法900的平面图创建过程。

在框902处,方法900获取物理环境的3D语义数据,该物理环境的3D语义数据基于在扫描过程期间获取的深度数据和光强度图像数据而生成。例如,可基于在房间扫描期间与图像同时接收到的深度相机信息来生成3D点云。在一些具体实施中,3D语义数据包括3D点云,该3D点云包括与物理环境的3D点云(例如,语义3D点云447)表示内的3D点的至少一部分相关联的语义标签。另外,在一些具体实施中,语义标签标识物理环境的墙、墙属性(例如,门和窗)、对象和对象的划分。

在框904处,方法900基于3D语义数据生成物理环境的多个水平层的2D语义数据。例如,每个层为z值范围提供x、y语义,例如,对于z值范围为0-10的每个x、y位置,第一层可以是最常见语义标签。

在框906处,方法900基于使用2D语义数据生成边缘地图来提供平面图,其中该平面图提供物理环境的视图(例如,俯视)。在一些具体实施中,生成边缘地图可涉及确定参数表示和/或矢量参数以标准化3D归一化平面图中的边缘地图。

根据一些具体实施,方法900还包括通过基于多个水平层的2D语义数据识别物理环境中的墙来生成边缘地图,通过基于3D语义数据识别物理环境中的墙属性(例如,门和窗)来更新边缘地图,通过基于3D语义数据识别物理环境中的对象来更新边缘地图,以及基于包括所识别的墙、所识别的墙属性以及所识别的对象的所更新的边缘地图来生成平面图。

根据一些具体实施,对于方法900,所识别的墙是地板到天花板墙(例如,不是隔间墙),其中基于多个水平层的2D语义数据来识别地板到天花板墙包括识别具有该多个水平层的最低水平的物理环境的地板,识别具有该多个水平层的最高水平的物理环境的天花板,基于特定的所识别的墙不满足与天花板的高度相比的高度阈值而确定该特定的所识别的墙不是地板到天花板墙(例如,隔间墙),以及通过从边缘地图移除该特定的所识别的墙来更新边缘地图。

在一些具体实施中,方法900还包括通过识别墙来生成边缘地图,还包括使用线拟合算法来确定边缘地图的参数细化线,以及基于该参数细化线来更新边缘地图。在一些具体实施中,通过识别墙属性来更新边缘地图包括使用墙属性神经网络和在扫描过程期间获取的光强度图像(例如,透明窗的RGB数据)来确定所识别的墙属性的边界,以及使用多边形启发式算法基于与所识别的墙属性相关联的3D语义数据来生成细化的边界。

在一些具体实施中,方法900还包括通过识别对象来更新边缘地图包括基于3D语义数据生成对应于物理环境中的所识别的对象的3D边界框,以及生成该3D边界框的2D表示(例如,家具图标或平面2D边界框)。在一些具体实施中,这些边界框是细化的边界框,并且生成对象的细化的边界框包括使用第一神经网络生成建议的边界框,以及通过使用第二神经网络(例如,低查准/高查全以生成对象的特征)识别对象的特征并且基于所识别的特征使用第三神经网络细化所建议的边界框(例如,高查准/低查全以细化所生成特征的准确性并输出细化的边界框)来生成细化的边界框。

图10是示例性环境1000的系统流程图,其中系统可以基于物理环境的3D表示(例如,3D点云、3D网格重建、语义3D点云等)生成并提供该物理环境的2D平面图。在一些具体实施中,示例性环境1000的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。示例性环境1000的系统流程可显示在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上,诸如头戴式显示器(HMD)。在一些具体实施中,示例性环境1000的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境1000的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。

示例性环境1000的系统流程采集物理环境(例如,图1的物理环境105)的图像数据(例如,来自光强度相机406的实时相机馈送)、来自语义3D单元440的语义3D表示(例如,语义3D表示445),以及在平面图单元1010处的其他物理环境信息源(例如,相机定位信息)。

平面图单元1010包括语义层分割单元1020、边缘建图单元1030、线拟合单元1032、墙属性单元1040、后/调谐单元1042、对象检测单元1050、后/调谐单元1052以及平面图定稿单元1060。语义层分割单元1020获取图像数据和语义3D表示(例如,体素化3D点云1022),并且将3D点云的语义置信度值和定位数据(例如,全球坐标)编码成3D语义层(例如,3D语义层1024)。语义层分割单元1020然后针对每个3D语义层生成2D表示(例如,2D语义层1026)。语义层分割单元1020然后生成2D语义层的高度图。例如,2D语义高度图1028可用于基于所识别的高度阈值与所识别的天花板高度进行比较来确定语义识别的墙是否为应当包括在平面图中的地板到天花板墙,或者语义识别的墙是否未达到天花板的高度(例如,隔间墙),然后系统(例如,平面图单元1010)可确定在边缘地图和相关联的平面图中不包括该特定的墙。例如,如果将墙高度阈值设定为天花板高度的90%(例如,对于10英尺天花板,将存在9英尺高度阈值),并且基于2D语义层确定所识别的墙的高度为6英尺,则所识别的墙将由平面图单元1010标记为隔墙并且将不与边缘地图相关联。在一些具体实施中,不满足天花板高度的墙(例如,隔间墙)可被指定为划分对象,并且可以使用本文描述的用于对象检测的技术来生成相关联的边界框(例如,对象检测单元1050)。

边缘建图单元1030和线拟合单元1032用于使用本文所公开的技术中的一种或多种技术基于分层2D语义层1028来生成和细化边缘地图。例如,边缘建图单元612从语义3D单元440获取所识别的语义标记的墙的编码3D数据(例如,2D语义层1028),并且生成所识别的墙的初始2D边缘地图,并且线拟合单元1032使用线拟合算法生成细化的2D边缘地图。墙属性单元1040和后/调谐单元1042用于使用本文所公开的一种或多种技术基于所识别的墙属性(例如,门和窗)的2D语义层1028来生成和细化墙属性边界。例如,墙属性单元1040获取所识别的语义标记的门和窗的光强度图像数据(例如,来自光强度数据408的关键帧),并且生成所识别的门和窗的2D边界。后/调谐单元1042从语义3D单元440获取所识别的语义标记的门和窗的3D数据(例如,语义3D表示445、2D语义层1028等),并且使用一个或多个后处理和微调算法针对每个所识别的门和窗生成具有相关联深度数据的细化的边界。对象检测单元1050和后/调谐单元1052用于使用本文所公开的一种或多种技术基于所识别的对象的2D语义层1028来生成并细化边界框。例如,对象检测单元1050从语义3D单元440获取所识别的语义标记的对象的3D数据(例如,语义3D表示445、2D语义层1028等),并且生成所识别的对象的初始边界框,并且后/调谐单元1052使用一种或多种后处理和微调算法生成细化的边界框。

在平面图定稿单元1060从边缘建图单元1030和后/调谐单元1032获取细化的边缘地图、从墙属性单元1040和后/调谐单元1042获取细化的边界以及从对象检测单元1050和后/调谐单元1052获取细化的边界框时,平面图定稿单元1060生成2D平面图定稿数据。平面图定稿单元1060将2D平面图(例如,2D平面图1062)发送到设备显示器(例如,显示器312或设备120)。2D平面图1062包括边缘地图墙(例如,表示图1的墙134、130、132)、墙属性边界(例如,表示图1的门150和窗152)以及边界框(例如,表示图1的桌子142和椅子140)。

在一些具体实施中,平面图定稿单元1060包括使用标准化算法细化2D平面图的标准化单元。例如,在行业中使用的建筑平面图具有满足标准平面图的共同特征或元素,从而使读取平面图更加容易和高效。一些标准包括使用通用图标来代替识别的对象,诸如家具、器具等,以代替边界框。测量数据仍将反映细化的边界框x、y、z测量,但可使用表示对象的图标。

在一些具体实施中,平面图定稿单元1060包括测量单元以使用本文进一步所公开的一个或多个过程生成基于在边缘地图上所识别的墙的3D表示的测量数据、所识别的墙属性的边界的测量数据,以及所识别的对象的边界框的测量数据。

图11是根据一些具体实施的生成并提供墙结构和3D边界框的测量结果的示例性方法1100的流程图表示,该测量结果与物理环境中的对象相关联。在一些具体实施中,方法1100由设备(例如,图1至图3的服务器110或设备120)执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。方法1100可以在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上执行,诸如头戴式显示器(HMD)。在一些具体实施中,方法1100由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法1100由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。

方法1100是创建物理空间(例如,物理环境105)的墙属性(例如,门和窗)和对象的测量数据的过程。方法1100针对所识别的墙结构(例如,墙边缘、门、窗)生成边界,并且针对房间中的所检测到的对象(例如,家具、器具等)生成边界框,然后基于所生成的边界和边界框提供测量数据。参考图12示出了方法1100的测量数据创建过程。

在框1102处,方法1100获取基于在扫描过程期间获取的深度数据生成的物理环境的3D表示。例如,可基于与图像同时接收到的深度相机信息来生成3D点云。在一些具体实施中,3D表示与3D语义数据相关联。在一些具体实施中,3D表示与包括3D点云的3D语义数据相关联,该3D点云包括与该3D点云(例如,语义3D点云447)内的3D点的至少一部分相关联的语义标签。另外,在一些具体实施中,语义标签标识物理环境的墙、墙属性(例如,门和窗)、对象和对象的划分。例如,算法可用于室内场景的3D点云的语义分割和标记,其中点云中的对象可具有显著变化和复杂配置。

在框1104处,方法1100基于物理环境的光强度图像来生成该物理环境中的墙属性的2D边界。例如,相对于所识别的墙边缘(例如,地板)来分析所有所识别的墙属性(诸如门和窗),以基于光强度图像(例如,RGB)来针对每个所识别的门和窗生成2D边界。在示例性具体实施中,由于可能提供不准确的深度数据的窗的透明度,利用光强度图像来代替基于深度数据生成的深度数据或3D表示(例如,3D点云447)。

在框1106处,方法1100基于2D边界和3D表示提供对墙属性的测量。在框1104处仅利用光强度图像创建边界之后,系统然后使用2D边界和3D表示(例如,3D点云447)生成测量数据。例如,3D表示用于确定墙属性诸如门或窗被赋予与墙属性相关联的2D多边形形状的深度和/或宽度。

在框1108处,方法1100基于3D表示生成对应于物理环境中的对象的3D边界框。例如,3D边界框可提供房间中的每件家具和器具的位置、方位(例如,位置和取向)和形状。可使用RGB数据和新型多网络调节技术来细化边界框。

在框1110处,方法1100提供对表示对应对象的测量结果的3D边界框的测量。例如,边界框的长度、宽度、高度对应于对象的长度、宽度和高度。

根据一些具体实施,该边界框是细化的边界框,并且方法1100还包括通过使用第一神经网络生成建议的边界框来生成对象的细化的边界框,以及通过使用第二神经网络(例如,低查准/高查全以生成对象的特征)识别对象的特征并且基于所识别的特征使用第三神经网络细化所建议的边界框(例如,高查准/低查全以细化所生成特征的准确性并输出细化的边界框)来生成细化的边界框。在一些具体实施中,第一神经网络基于与对象相关联的3D表示来生成所建议的边界框。在一些具体实施中,第二神经网络基于与对象相关联的3D表示和在扫描过程期间获取的光强度图像数据(例如,RGB数据)来识别对象的特征。在一些具体实施中,训练第三神经网络以细化来自第二神经网络的所识别特征的准确性,并且基于与对象相关联的3D表示以及在扫描过程期间获取的光强度图像数据(例如,RGB数据)来输出细化的边界框。在一些具体实施中,边界框提供物理环境中对象的位置信息、方位信息(例如,位置和取向信息)以及形状信息。

根据一些具体实施,方法1100还包括使用多边形启发式算法基于与墙属性相关联的3D语义数据来生成墙属性的细化的边界。在一些具体实施中,墙属性包括门或窗。

根据一些具体实施,对与特定墙属性的测量结果相关联的边界的测量包括对应于该特定墙属性的长度、宽度和高度的长度、宽度和高度。例如,门的长度、宽度和高度。在一些具体实施中,针对特定对象的3D边界框的测量包括对应于特定对象的长度、宽度和高度的长度、宽度和高度。例如,针对房间中的桌子或椅子生成的边界框的长度、宽度和高度。

图12A是示例性环境1200A的系统流程图,其中墙属性单元1210可针对物理环境的墙属性生成细化的2D边界,并且平面图测量单元1250可提供对所述2D边界的测量。在一些具体实施中,示例性环境1200A的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。在一些具体实施中,示例性环境1200A的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境1200A的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。

墙属性单元1210包括墙属性神经网络1212和后处理单元1214。示例性环境1200A的系统流程开始于墙属性单元1210在墙属性神经网络1212处采集光强度图像(例如,光强度图像数据408),该墙属性神经网络生成所识别的墙属性的初始边界1213a和边界1213b(例如,分别表示门150和窗152的边界)。然后由后处理单元1214细化边界1213a、1213b,该后处理单元获取包括所识别的墙属性的3D数据的语义3D表示(例如,语义3D表示445),并且使用多边形启发式算法生成具有相关联深度数据的细化的2D边界1215a、1215b。然后将细化的2D边界1215a、1215b发送到平面图测量单元1250(例如,图2的测量单元248和/或图3的测量单元348)。平面图测量单元1250获取相关联边界的语义3D表示(例如,语义3D表示445),并且确定对与特定墙属性相关联的边界(例如,边界1252a和1252b)的测量包括对应于该特定墙属性的长度、宽度和高度的长度、宽度和高度。例如,门或窗的长度、宽度和高度。

图12B是示例性环境1200B的系统流程图,其中对象检测单元1220可基于物理环境的3D表示针对相关联的所识别的对象生成细化的边界框,并且平面图测量单元1250可提供对所述边界框的测量。在一些具体实施中,示例性环境1200B的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。在一些具体实施中,示例性环境1200B的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境1200B的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。

对象检测单元1220包括对象检测神经网络1222和对象微调单元1230,该对象微调单元包括微调阶段1神经网络1232和微调阶段2神经网络1234。示例性环境1200B的系统流程开始于对象检测单元1220在对象检测神经网络1222处采集包括所识别的墙的3D数据的语义3D表示(例如,语义3D表示445),该对象检测神经网络生成所识别的对象的建议的边界框1225a和1225b(例如,分别为桌子142和椅子140)。然后由对象微调单元1230使用两阶段神经网络来细化所建议的边界框1225a和1225b。微调阶段1神经网络1232采集语义3D表示数据、光强度图像数据(例如,光强度图像数据408)以及所建议的边界框1225a和1225b,并且生成阶段1输出。微调阶段1神经网络1234使用神经网络使用低查准/高查全网络来识别对象的特征以生成对象的特征。3D数据、光强度图像数据、建议的边界框1225a、1225b和阶段1输出由微调阶段2神经网络1234获取,该微调阶段2神经网络使用高查准/低查全神经网络生成细化的边界框,以细化所生成的特征的准确性并输出细化的边界框1235a和1235b(例如,分别为桌子142和椅子140)。如图12B中所示,细化的边界框1235a和1235b分别比边界框1225a和1225b更准确。然后将细化的边界框1235a和1235b发送到平面图测量单元1250(例如,图2的测量单元248和/或图3的测量单元348)。平面图测量单元1250获取相关联边界框的语义3D表示(例如,语义3D表示445),并且确定对与特定对象相关联的每个所接收的边界框(例如,边界框1262a和1262b)的测量包括对应于该特定对象的长度、宽度和高度的长度、宽度和高度。例如,桌子(例如,桌子142)或椅子(例如,椅子140)的长度、宽度和高度。

存在若干具体实施,其中边界框测量结果可被示出为覆盖在合成图像中,例如通过示出边界体积的边缘和顶点和/或通过示出边界体积的表面部分透明,从而使得对象和边界框同时可见。在示例性实施方案中,将边界框的空间特性(例如,长度、高度和宽度)自动显示给用户。另选地,在用户与边界框进行交互(例如,在屏幕上选择边界框图标或其他可选图标)之后提供空间属性。

在一些具体实施中,图像合成流水线可包括针对扩展现实(XR)环境生成的虚拟内容(例如,放置在图1中的桌子135上的虚拟框)。在一些具体实施中,操作系统230、330包括内置XR功能,例如包括XR环境应用程序或被配置为从一个或多个应用程序240、340调用以在用户界面内显示XR环境的查看器。例如,本文所述的系统可包括XR单元,该XR单元被配置有能够由处理器执行以提供XR环境的指令,该XR环境包括对包括真实物理对象和虚拟内容的物理环境的描述。XR单元可生成虚拟深度数据(例如,虚拟内容的深度图像)和虚拟强度数据(例如,虚拟内容的光强度图像(例如,RGB))。例如,用于服务器110的应用程序240或用于设备120的应用程序340中的一者可包括XR单元,该XR单元被配置有能够由处理器执行以提供XR环境的指令,该XR环境包括对包括真实对象或虚拟对象的物理环境的描述。例如,可使用本文所公开的技术中的一种或多种技术基于真实对象和虚拟对象的存储的3D模型,基于3D空间中的对象相对于彼此的检测、跟踪和表示来定位虚拟对象。

本文阐述了许多具体细节以提供对要求保护的主题的全面理解。然而,本领域的技术人员将理解,可以在没有这些具体细节的情况下实践要求保护的主题。在其他实例中,没有详细地介绍普通技术人员已知的方法、设备或系统,以便不使要求保护的主题晦涩难懂。

除非另外特别说明,否则应当理解,在整个说明书中,利用诸如“处理”、“计算”、“计算出”、“确定”和“识别”等术语的论述是指计算设备的动作或过程,诸如一个或多个计算机或类似的电子计算设备,其操纵或转换表示为计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的物理电子量或磁量的数据。

本文论述的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括部件的提供以一个或多个输入为条件的结果的任何合适的布置。合适的计算设备包括基于多用途微处理器的计算机系统,其访问存储的软件,该软件将计算系统从通用计算设备编程或配置为实现本发明主题的一种或多种具体实施的专用计算设备。可以使用任何合适的编程、脚本或其他类型的语言或语言的组合来在用于编程或配置计算设备的软件中实现本文包含的教导内容。

本文所公开的方法的具体实施可以在这样的计算设备的操作中执行。上述示例中呈现的框的顺序可以变化,例如,可以将框重新排序、组合和/或分成子块。某些框或过程可以并行执行。

本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。本文包括的标题、列表和编号仅是为了便于解释而并非旨在为限制性的。

还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重命名。第一节点和第二节点都是节点,但它们不是同一个节点。

本文中所使用的术语仅仅是为了描述特定具体实施并非旨在对权利要求进行限制。如在本具体实施的描述和所附权利要求中所使用的那样,单数形式的“一个”和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。

如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。

本发明的前述描述和概述应被理解为在每个方面都是例示性和示例性的,而非限制性的,并且本文所公开的本发明的范围不仅由例示性具体实施的详细描述来确定,而是根据专利法允许的全部广度。应当理解,本文所示和所述的具体实施仅是对本发明原理的说明,并且本领域的技术人员可以在不脱离本发明的范围和实质的情况下实现各种修改。

相关技术
  • 基于房间扫描的平面图生成
  • 一种基于三维扫描点云的建筑物平面图生成方法
技术分类

06120113097668