本公开整体涉及生成物理环境的二维和三维几何表示,并且具体地,涉及基于在物理环境中检测到的信息生成几何表示的系统、方法和设备。
背景技术:
平面图在设计、理解和重塑室内空间中起到重要作用。平面图通常有效地传达物理环境的几何和语义信息。例如,用户可查看平面图以快速识别房间范围、墙结构和拐角、门和窗的位置以及对象布置。
提供基于计算机的系统以基于传感器数据自动生成平面图、房间测量或对象测量存在许多障碍。获取的关于物理环境的传感器数据(例如,图像和深度数据)可能是不完整的或不足以提供准确的平面图和测量。例如,室内环境通常包含各种对象,诸如灯、桌子、椅子等,这些对象可能隐藏了房间的建筑线条,而这些建筑线条可用于检测房间的边缘以构建准确的平面图。又如,图像和深度数据通常缺少语义信息,并且在没有此类数据的情况下生成的平面图和测量可能缺乏准确性。
现有技术不允许使用移动设备自动、准确且有效地生成平面图和测量,例如,基于用户在房间内走动时捕获照片或视频或其他传感器数据。此外,现有技术可能无法实时提供足够准确和有效的平面图和测量(例如,扫描期间立即的平面图/测量)环境。
技术实现要素:
本文所公开的各种具体实施包括使用物理环境的三维(3d)表示来生成平面图和测量的设备、系统和方法。可基于传感器数据诸如图像和深度传感器数据来生成物理环境的3d表示。在一些具体实施中,使用物理环境的语义标记的3d表示来促进平面图和测量的生成。一些具体实施执行物理环境的3d点云的语义分割和标记。本文所公开的技术可通过使用编码到二维(2d)侧向域上的语义3d表示(诸如语义标记的3d点云)来实现各种优点。在2d侧向域中使用语义3d表示可促进有效识别用于生成平面图或测量的结构。
能够以各种格式提供平面图。在一些具体实施中,平面图包括房间的2d俯视图。平面图可图形化地描绘出房间的边界,例如,通过使用线条或其他图形特征图形化地描绘墙、屏障或房间范围的其他限制。平面图可图形化地描绘出墙特征(诸如墙边缘、门和窗)的位置和几何形状。平面图可图形化地描绘出房间内的对象,诸如沙发、桌子、椅子、器具等。平面图可包括标识房间中的边界、墙、门、窗和对象的标识符,例如包括标识此类元素的文本标签或参考数字。平面图可包括对房间中的边界、墙边缘、门、窗和对象的测量的指示,例如包括指定墙的长度、桌子的直径、窗的宽度等的数字。
根据一些具体实施,基于用户执行房间扫描(例如,移动某移动设备以捕获房间中用户周围的图像和深度数据)来创建平面图。一些具体实施在房间扫描期间提供初步2d平面图的预览。例如,当用户在捕获传感器数据的房间四处走动时,用户的设备可显示正在生成的初步2d平面图的预览。该预览是“实时的”,即在用于生成初步2d平面图的传感器数据流或传感器数据组的持续捕获期间提供该预览。为了启用初步2d平面图的实时预览,可以(至少初始地)与最终扫描后平面图不同地生成预览。在一个示例中,在没有用于生成最终扫描后平面图的某些后处理技术(例如,微调、拐角校正等)的情况下生成预览。在其他示例中,实时预览可使用比用于生成最终扫描后平面图的计算密度更低的神经网络。2d语义数据的使用(例如,针对房间的不同层)还可促进使预览确定对于实时显示足够有效。
在一些具体实施中,可基于单独识别墙结构(例如,墙边缘、门和窗)以及检测对象(例如,家具、器具等)的边界框来生成平面图。可单独检测墙结构和对象,并且因此使用不同的技术和结果进行组合以生成表示墙结构和对象两者的平面图。
在一些具体实施中,平面图创建过程基于在多个层中编码3d语义数据的2d表示来识别墙结构(例如,墙边缘)。例如,3d语义数据可被分割成用于识别房间的墙边缘位于何处的多个水平层。
示例性方法还涉及获取基于在实时相机馈送的显示期间获取的深度数据和光强度数据而生成的物理环境的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位置,第一层可以是最常见语义标签。
本公开的一些具体实施涉及生成和显示2d平面图的示例性方法。该示例性方法首先涉及获取物理环境的3d表示,该物理环境的3d表示基于在扫描过程期间获取的深度数据和光强度图像数据而生成。例如,可基于在房间扫描期间与图像同时接收到的深度相机信息来生成3d点云。例如,算法可用于室内场景的3d点云的语义分割和标记,其中点云中的对象可具有显著变化和复杂配置。
该示例性方法还涉及基于3d表示来检测墙结构在物理环境中的位置。例如,可通过以下方式识别墙:生成2d语义数据(例如,在层中),使用该2d语义数据来使用神经网络生成边缘地图,以及确定矢量参数以使3d归一化平面图中的边缘地图标准化。可基于rgb图像和深度数据来识别墙属性或墙属性(例如,门/窗)以生成多边形边界。这种用于门和窗的技术提供了优点,尤其是由于窗的透明度可能会在深度数据中产生噪声/误差。
该示例性方法还涉及基于3d表示生成对应于物理环境中的对象的边界框。例如,3d边界框可提供房间中的每件家具和器具的位置、方位(例如,位置和取向)和形状。可使用rgb数据和新型多网络调节技术(例如,用于低查准/高查全和高查准/低查全的2阶段神经网络微调)来细化边界框。
示例性方法还涉及显示提供物理环境的视图(例如,俯视)的2d平面图。在一些具体实施中,基于对应于对象的墙结构和边界框的位置来确定2d平面图。
本公开的一些具体实施涉及基于2d语义数据提供平面图的示例性方法。该示例性方法首先涉及获取物理环境的3d语义数据,该物理环境的3d语义数据基于在扫描过程期间获取的深度数据和光强度图像数据而生成。例如,可基于在房间扫描期间与图像同时接收到的深度相机信息来生成3d点云。例如,算法可用于室内场景的3d点云的语义分割和标记,其中点云中的对象可具有显著变化和复杂配置。
该示例性方法还涉及基于3d语义数据生成物理环境的多个水平层的2d语义数据。例如,每个层为z值范围提供x、y语义,例如,对于z值范围为0-10的每个x、y位置,第一层可以是最常见语义标签。
该示例性方法还涉及基于使用2d语义数据生成边缘地图来提供平面图,其中该平面图提供物理环境的视图(例如,俯视)。在一些具体实施中,生成边缘地图可涉及确定参数表示和/或矢量参数以标准化3d归一化平面图中的边缘地图。
在一些具体实施中,提供平面图还包括通过基于多个水平层的2d语义数据识别物理环境中的墙来生成边缘地图,通过基于3d语义数据识别物理环境中的墙属性(例如,门和窗)来更新边缘地图,通过基于3d语义数据识别物理环境中的对象来更新边缘地图,以及基于包括所识别的墙、所识别的墙属性以及所识别的对象的所更新的边缘地图来生成平面图。
在一些具体实施中,通过识别对象来更新边缘地图包括基于3d语义数据生成对应于物理环境中的所识别的对象的3d边界框,以及生成该3d边界框的2d表示(例如,家具图标或平面2d边界框)。在一些具体实施中,这些边界框是细化的边界框,并且生成对象的细化的边界框包括使用第一神经网络生成建议的边界框,以及通过使用第二神经网络(例如,低查准/高查全以生成对象的特征)识别对象的特征并且基于所识别的特征使用第三神经网络细化所建议的边界框(例如,高查准/低查全以细化所生成特征的准确性并输出细化的边界框)来生成细化的边界框。
该示例性方法还涉及基于物理环境的光强度图像(例如,rgb图像)来生成物理环境中的墙属性(例如,门和窗)的2d边界。
该示例性方法还涉及基于3d表示生成对应于物理环境中的对象的3d边界框。例如,3d边界框可提供房间中的每件家具和器具的位置、方位(例如,位置和取向)和形状。可使用rgb数据和新型多网络调节技术来细化边界框。
该示例性方法还涉及提供对表示对应对象的测量结果的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边界框的测量的示例性生成的系统流程图,该边界框表示对应对象的测量。
根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的系统、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。
具体实施方式
在一些具体实施中,服务器110被配置为管理和协调用户体验。在一些具体实施中,服务器110包括软件、固件和/或硬件的合适组合。下文参考图2更详细地描述服务器110。在一些具体实施中,服务器110是相对于物理环境105位于本地或远程位置的计算设备。在一个示例中,服务器110是位于物理环境105内的本地服务器。在另一个示例中,服务器110是位于物理环境105之外的远程服务器(例如,云服务器、中央服务器等)。在一些具体实施中,服务器110经由一个或多个有线或无线通信信道(例如,蓝牙、ieee802.11x、ieee802.16x、ieee802.3x等)与设备120通信地耦接。
在一些具体实施中,设备120被配置为向用户呈现环境。在一些具体实施中,设备120包括软件、固件和/或硬件的合适组合。下文参考图3更详细地描述设备120。在一些具体实施中,服务器110的功能由设备120提供和/或与该设备结合。
在一些具体实施中,所述一条或多条通信总线204包括互连系统部件和控制系统部件之间的通信的电路。在一些具体实施中,一个或多个i/o设备206包括键盘、鼠标、触控板、操纵杆、一个或多个麦克风、一个或多个扬声器、一个或多个图像传感器、一个或多个显示器等中的至少一种。
存储器220包括高速随机存取存储器,诸如动态随机存取存储器(dram)、静态随机存取存储器(sram)、双倍数据速率随机存取存储器(ddrram)或者其他随机存取固态存储器设备。在一些具体实施中,存储器220包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器220任选地包括远离所述一个或多个处理单元202定位的一个或多个存储设备。存储器220包括非暂态计算机可读存储介质。在一些具体实施中,存储器220或存储器220的非暂态计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集,包括可选的操作系统230以及一个或多个应用程序240。
应用程序240包括3d表示单元242、实时预览单元244、平面图单元246和测量单元248。3d表示单元242、实时预览单元244、平面图单元246和测量单元248可组合成单个应用程序或单元,或者分成一个或多个附加应用程序或单元。
实时预览单元244被配置有指令,该指令能够由处理器执行以使用本文所公开的技术中的一种或多种技术来基于物理环境的3d表示(例如,3d点云、3d网格重建、语义3d点云等)生成并显示物理环境的2d平面图的实时预览。然后将2d平面图预览覆盖到实时相机馈送上以用于在设备上的画中画显示。例如,实时预览单元244从光强度相机获取光强度图像序列(例如,实时相机馈送)、从3d表示单元242生成的语义3d表示(例如,语义3d点云)以及其他物理环境信息源(例如,来自相机的同时定位与建图(slam)系统的相机定位信息)以输出利用光强度图像序列迭代地更新的2d平面图图像。为了生成2d平面图,实时预览单元244被配置有指令,该指令能够由处理器执行以基于语义3d表示生成在光强度图像序列中识别的墙的边缘地图并使用线拟合算法执行后处理。实时预览单元244被进一步配置有指令,该指令能够由处理器执行以基于语义3d表示来识别光强度图像序列中的墙属性(例如,门和窗)并使用本文进一步所公开的微调算法技术来执行后处理。
实时预览单元244还可被配置有指令,该指令能够由处理器执行以基于语义3d表示来识别光强度图像序列中的对象(例如,家具、器具等),为每个所识别的对象生成边界框,并且使用本文进一步所公开的微调算法技术来执行后处理。
实时预览单元244使用本文进一步所公开的一个或多个过程从边缘地图、所识别的墙属性的边界以及所识别的对象的边界框生成2d平面图。
在一些具体实施中,平面图单元246被进一步配置有指令,该指令能够由处理器执行以使用本文进一步所公开的一个或多个过程生成基于在边缘地图上所识别的墙的3d表示的测量数据、所识别的墙属性的边界的测量数据,以及所识别的对象的边界框的测量数据。
尽管这些元件被示出为驻留在单个设备(例如,服务器110)上,但应当理解,在其他具体实施中,元件的任何组合可位于单独的计算设备中。此外,图2更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图2中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。
在一些具体实施中,一个或多个显示器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、ddrram或其他随机存取固态存储器设备。在一些具体实施中,存储器320包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器320任选地包括远离所述一个或多个处理单元302定位的一个或多个存储设备。存储器320包括非暂态计算机可读存储介质。在一些具体实施中,存储器320或存储器320的非暂态计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集,包括可选的操作系统330以及一个或多个应用程序340。
实时预览单元344被配置有指令,该指令能够由处理器执行以使用本文所公开的技术中的一种或多种技术来基于物理环境的3d表示(例如,3d点云、3d网格重建、语义3d点云等)生成并显示物理环境的2d平面图的实时预览。然后将2d平面图覆盖到实时相机馈送上以用于画中画显示。例如,实时预览单元344从光强度相机获取光强度图像序列(例如,实时相机馈送)、从3d表示单元342生成的语义3d表示(例如,语义3d点云)以及其他物理环境信息源(例如,来自相机的同时定位与建图(slam)系统的相机定位信息)以输出利用光强度图像序列迭代地更新的2d平面图图像。为了生成2d平面图,实时预览单元344被配置有指令,该指令能够由处理器执行以基于语义3d表示生成在光强度图像序列中识别的墙的边缘地图并使用本文进一步所公开的线拟合算法技术执行后处理。实时预览单元344被进一步配置有指令,该指令能够由处理器执行以基于语义3d表示来识别光强度图像序列中的墙属性(例如,门和窗)并使用本文进一步所公开的微调算法技术来执行后处理。
实时预览单元344还可被配置有指令,该指令能够由处理器执行以基于语义3d表示来识别光强度图像序列中的对象(例如,家具、器具等),为每个所识别的对象生成边界框,并且使用本文进一步所公开的微调算法技术来执行后处理。
实时预览单元344使用本文进一步所公开的一个或多个过程从边缘地图、所识别的墙属性的边界以及所识别的对象的边界框生成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表示的测量数据、所识别的墙属性的边界的测量数据,以及所识别的对象的边界框的测量数据。
尽管这些元件被示出为驻留在单个设备(例如,设备120)上,但应当理解,在其他具体实施中,元件的任何组合可位于单独的计算设备中。此外,图3更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图3中单独示出的一些功能模块(例如,应用程序340)可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。
图4是示例性环境400的系统流程图,其中系统可基于在物理环境中检测到的深度和光强度图像信息使用3d数据和语义分割数据来生成语义3d表示。在一些具体实施中,示例性环境400的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。示例性环境400的系统流程可显示在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上,诸如头戴式显示器(hmd)。在一些具体实施中,示例性环境400的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境400的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。
在一个示例性具体实施中,环境400包括采集或获取物理环境的数据(例如,来自图像源的图像数据)的图像合成流水线。示例性环境400是采集多个图像帧的图像数据(例如,光强度数据和深度数据)的示例。图像源可包括采集物理环境的深度数据404的深度相机402,以及采集光强度图像数据408(例如,rgb图像帧序列)的光强度相机406(例如,rgb相机)。
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由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。
在框502处,方法500显示包括物理环境的图像序列的实时相机馈送。例如,当用户在房间四处走动时捕获视频以从多个视角捕获房间的不同部分的图像时,这些图像被实时显示在移动设备上,使得用户看到他/她正在捕获的内容。
在框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位置,第一层可以是最常见语义标签。
图6是示例性环境600的系统流程图,其中系统可以基于物理环境的3d表示(例如,3d点云、3d网格重建、语义3d点云等)生成并显示该物理环境的初步2d平面图的实时预览。在一些具体实施中,示例性环境600的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。示例性环境600的系统流程可显示在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上,诸如头戴式显示器(hmd)。在一些具体实施中,示例性环境600的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境600的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。
在平面图预览整合单元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的平面图创建过程。
在框704处,方法700基于3d表示来检测墙结构在物理环境中的位置。例如,可通过以下方式识别墙:生成2d语义数据(例如,在层中),使用该2d语义数据来使用神经网络生成边缘地图,以及确定矢量参数以使3d归一化平面图中的边缘地图标准化。可基于rgb图像和深度数据来识别墙属性或墙属性(例如,门/窗)以生成多边形边界。这种用于门和窗的技术提供了优点,尤其是由于窗的透明度在深度数据中产生了噪声/误差。
在框706处,方法700基于3d表示生成对应于物理环境中的对象的边界框。例如,3d边界框可提供房间中的每件家具和器具的位置、方位(例如,位置和取向)和形状。可使用rgb数据和新型多网络调节技术(例如,用于低查准/高查全和高查准/低查全的2阶段神经网络微调)来细化边界框。
在框708处,方法700显示提供物理环境的视图(例如,俯视)的2d平面图。在一些具体实施中,基于对应于对象的墙结构和边界框的位置来确定2d平面图。例如,2d平面图在设备(例如,图1和图3的设备120)上显示。
图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。
对象检测单元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的平面图创建过程。
在框904处,方法900基于3d语义数据生成物理环境的多个水平层的2d语义数据。例如,每个层为z值范围提供x、y语义,例如,对于z值范围为0-10的每个x、y位置,第一层可以是最常见语义标签。
在框906处,方法900基于使用2d语义数据生成边缘地图来提供平面图,其中该平面图提供物理环境的视图(例如,俯视)。在一些具体实施中,生成边缘地图可涉及确定参数表示和/或矢量参数以标准化3d归一化平面图中的边缘地图。
根据一些具体实施,方法900还包括通过基于多个水平层的2d语义数据识别物理环境中的墙来生成边缘地图,通过基于3d语义数据识别物理环境中的墙属性(例如,门和窗)来更新边缘地图,通过基于3d语义数据识别物理环境中的对象来更新边缘地图,以及基于包括所识别的墙、所识别的墙属性以及所识别的对象的所更新的边缘地图来生成平面图。
根据一些具体实施,对于方法900,所识别的墙是地板到天花板墙(例如,不是隔间墙),其中基于多个水平层的2d语义数据来识别地板到天花板墙包括识别具有该多个水平层的最低水平的物理环境的地板,识别具有该多个水平层的最高水平的物理环境的天花板,基于特定的所识别的墙不满足与天花板的高度相比的高度阈值而确定该特定的所识别的墙不是地板到天花板墙(例如,隔间墙),以及通过从边缘地图移除该特定的所识别的墙来更新边缘地图。
在一些具体实施中,方法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处的其他物理环境信息源(例如,相机定位信息)。
在平面图定稿单元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表示的测量数据、所识别的墙属性的边界的测量数据,以及所识别的对象的边界框的测量数据。
方法1100是创建物理空间(例如,物理环境105)的墙属性(例如,门和窗)和对象的测量数据的过程。方法1100针对所识别的墙结构(例如,墙边缘、门、窗)生成边界,并且针对房间中的所检测到的对象(例如,家具、器具等)生成边界框,然后基于所生成的边界和边界框提供测量数据。参考图12示出了方法1100的测量数据创建过程。
在框1104处,方法1100基于物理环境的光强度图像来生成该物理环境中的墙属性的2d边界。例如,相对于所识别的墙边缘(例如,地板)来分析所有所识别的墙属性(诸如门和窗),以基于光强度图像(例如,rgb)来针对每个所识别的门和窗生成2d边界。在示例性具体实施中,由于可能提供不准确的深度数据的窗的透明度,利用光强度图像来代替基于深度数据生成的深度数据或3d表示(例如,3d点云447)。
在框1108处,方法1100基于3d表示生成对应于物理环境中的对象的3d边界框。例如,3d边界框可提供房间中的每件家具和器具的位置、方位(例如,位置和取向)和形状。可使用rgb数据和新型多网络调节技术来细化边界框。
在框1110处,方法1100提供对表示对应对象的测量结果的3d边界框的测量。例如,边界框的长度、宽度、高度对应于对象的长度、宽度和高度。
图12a是示例性环境1200a的系统流程图,其中墙属性单元1210可针对物理环境的墙属性生成细化的2d边界,并且平面图测量单元1250可提供对所述2d边界的测量。在一些具体实施中,示例性环境1200a的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。在一些具体实施中,示例性环境1200a的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境1200a的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。
存在若干具体实施,其中边界框测量结果可被示出为覆盖在合成图像中,例如通过示出边界体积的边缘和顶点和/或通过示出边界体积的表面部分透明,从而使得对象和边界框同时可见。在示例性实施方案中,将边界框的空间特性(例如,长度、高度和宽度)自动显示给用户。另选地,在用户与边界框进行交互(例如,在屏幕上选择边界框图标或其他可选图标)之后提供空间属性。
在一些具体实施中,图像合成流水线可包括针对扩展现实(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空间中的对象相对于彼此的检测、跟踪和表示来定位虚拟对象。
本文阐述了许多具体细节以提供对要求保护的主题的全面理解。然而,本领域的技术人员将理解,可以在没有这些具体细节的情况下实践要求保护的主题。在其他实例中,没有详细地介绍普通技术人员已知的方法、设备或系统,以便不使要求保护的主题晦涩难懂。
除非另外特别说明,否则应当理解,在整个说明书中,利用诸如“处理”、“计算”、“计算出”、“确定”和“识别”等术语的论述是指计算设备的动作或过程,诸如一个或多个计算机或类似的电子计算设备,其操纵或转换表示为计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的物理电子量或磁量的数据。
本文论述的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括部件的提供以一个或多个输入为条件的结果的任何合适的布置。合适的计算设备包括基于多用途微处理器的计算机系统,其访问存储的软件,该软件将计算系统从通用计算设备编程或配置为实现本发明主题的一种或多种具体实施的专用计算设备。可以使用任何合适的编程、脚本或其他类型的语言或语言的组合来在用于编程或配置计算设备的软件中实现本文包含的教导内容。
本文所公开的方法的具体实施可以在这样的计算设备的操作中执行。上述示例中呈现的框的顺序可以变化,例如,可以将框重新排序、组合和/或分成子块。某些框或过程可以并行执行。
本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。本文包括的标题、列表和编号仅是为了便于解释而并非旨在为限制性的。
还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重命名。第一节点和第二节点都是节点,但它们不是同一个节点。
如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。
本发明的前述描述和概述应被理解为在每个方面都是例示性和示例性的,而非限制性的,并且本文所公开的本发明的范围不仅由例示性具体实施的详细描述来确定,而是根据专利法允许的全部广度。应当理解,本文所示和所述的具体实施仅是对本发明原理的说明,并且本领域的技术人员可以在不脱离本发明的范围和实质的情况下实现各种修改。