具体实施方式
本公开描述了用于使用计算装置执行与基于建筑物的房间的自动确定的形状来确定建筑物内部内的图像的采集位置相关的自动操作的技术,并且用于随后以一种或多种其他自动方式使用所确定的图像采集位置信息。待分析的图像可以包括在多房间建筑物(例如,房屋、办公室等)的内部的采集位置处获取的全景图像或其他图像(例如,直线立体图像),在本文中统称为“目标图像”,并且用于这样的目标图像所确定的图像采集位置信息至少包括建筑物的平面图上的位置,并且在一些情况下还包括用于目标图像的至少部分的取向或其他方向信息。此外,在至少一些这样的实施方式中,在不具有或不使用来自任何深度传感器或其它距离测量装置的关于从目标图像的采集位置到周围建筑物中的墙壁或其它对象的距离的信息的情况下,进一步执行图像采集位置的自动确定。为建筑物获取的一个或更多个目标图像的确定的图像采集位置信息可以在各种实施方式中以各种方式进一步使用,例如结合对应的建筑物平面图和/或用于建筑物的其它生成的与映射相关的信息,包括用于控制移动装置(例如,自动驾驶汽车)的导航,用于在对应的GUI(图形用户界面)中的一个或更多个客户端装置上通过计算机网络显示或其它呈现等。下面包括关于图像采集位置信息的自动确定和使用的附加细节,并且在至少一些实施方式中,可以经由图像位置确定管理器(“ILDM”)系统的自动操作来执行本文中描述的一些或全部技术,如下面进一步讨论的。
如上所述,ILDM系统的自动操作可以包括通过使用自动地确定的关于建筑物的房间的形状(或作为图像的采集位置的候选的多个其他限定的形状)的信息来确定在房屋或其他建筑物(或在其他限定区域中)的房间中捕获的目标图像的采集位置和任选地取向。目标图像的采集位置和取向的组合在本文中有时被称为目标图像的“采集位置”或仅称为“位置”。例如,在自动确定建筑物内目标图像的采集位置的至少一些实施方式中,可以使用具有用于建筑物的房间的相关联的房间形状信息的建筑物平面图,在至少一些这样的情况下,在平面图(或其它限定的区域)上显示的房间的2D和/或3D房间形状可能已经预先自动确定(如下面进一步讨论的),而在其它情况下,房间的一些或全部房间形状(或限定的区域的其它形状)可以以其它方式来确定(例如,在确定目标图像的采集位置时同时自动确定、至少部分地基于一个或更多个用户的手动输入来预先或同时确定等)。具有相关联的房间形状信息的建筑物平面图在各种实施方式中可以具有各种形式,诸如,建筑物的2D(二维)平面图(例如,不包括或显示高度信息的示意性楼层图的正投影顶视图或其它俯视图)和/或显示高度信息的建筑物的3D(三维)或2.5D(二维半)楼层图模型。在至少一些实施方式中,对多房间建筑物内的目标图像的采集位置的自动确定通常可以包括:为建筑物的房间的一些或全部检索确定的房间形状,以及识别其所确定的房间形状与目标图像的房间形状最匹配的那些房间中的一个,该房间形状是从目标图像的视觉内容估计的并且被放置(例如,调整大小和旋转)以匹配所识别的房间的确定的房间形状,包括将目标图像的视觉内容的方面与所识别房间的确定的房间形状进行比较,以至少确定识别房间内的获取目标图像的位置。
作为用于至少部分地基于目标图像的视觉内容来识别包含目标图像的房间的估计房间形状的自动操作的一部分,在至少一些实施方式中,描述的技术可以包括使用一个或更多个经过训练的神经网络或其它技术来估计目标图像中所示的3D房间形状。作为非排他性示例,这种3D房间形状估计可以包括以下中的一个或更多个:使用经过训练的卷积神经网络或其他分析技术来将目标图像作为输入,并且从目标图像的视觉内容来估计封闭房间的墙壁和其他表面的3D点云,和/或从目标图像的视觉内容来估计封闭房间的3D墙壁和其他平面表面;使用经过训练的神经网络或其它分析技术将目标图像作为输入,并且从目标图像的视觉内容估计封闭房间的线框结构线(例如,用于显示墙壁之间的一个或更多个边界、墙壁与天花板之间的边界、墙壁与地板之间的边界、门道的轮廓和/或其它内房间墙壁开口、窗户的轮廓等的结构线);使用经过训练的神经网络或其它分析技术来检测目标图像的视觉内容中的墙壁结构元素(例如,窗户和/或天窗;进入和/或离开房间的通道,诸如,在墙壁、楼梯、走廊等中的门道和其它开口;相邻墙壁之间的边界;墙壁与地板之间的边界;墙壁与天花板之间的边界;至少三个表面或平面相遇的拐角(或立体几何顶点);等等),并且可选地检测其它固定结构元素(例如,台面、浴盆、水槽、岛、壁炉等),并且生成用于检测元素的3D边界框,并且可选地进一步确定用于那些元素的对象类型标签(例如,窗户、门道等);使用经过训练的神经网络或其它分析技术从目标图像的视觉内容确定用于封闭房间(例如,起居室、卧室、浴室、厨房等)的房间类型标签;使用经过训练的深度神经网络或其他分析技术来生成嵌入矢量,嵌入矢量对关于封闭房间的元素和其他特征的信息进行编码,例如元素类型和位置、房间类型和形状和大小等(例如,以人类读者不易辨别的简明格式);等等。在一些实施方式中,用于目标图像的获取元数据可以进一步用作确定包含目标图像的房间的估计的房间形状的部分,诸如,通过使用来自获取相机或其他关联装置上的IMU(内部测量单元)传感器的数据作为执行SLAM(同时定位和映射)和/或SfM(来自运动的结构)和/或MVS(多视图立体视觉)分析的部分,如下面进一步讨论的。下面包括关于ILDM系统在至少一些实施方式中可以执行的用于至少部分地基于目标图像的视觉内容来识别包含目标图像的房间的估计房间形状自动操作的附加细节。
一旦自动识别了封闭房间的目标图像的估计房间形状,就可以将其与其它候选房间形状(例如,建筑物的一些或所有房间的先前确定的房间形状)进行比较,以便从与目标图像的估计房间形状最匹配的候选中自动确定房间形状,具有这种匹配的确定的房间形状的房间在本文中被称为建筑物内的“目标”房间,在该建筑物中出现目标图像的采集位置。确定一个或更多个潜在匹配的候选房间形状,包括目标图像的估计房间形状相对于候选房间形状的特定布置(即,位置和旋转),可以包括考虑和评估多个替代形状匹配,每个替代形状匹配具有目标图像的估计房间形状相对于一个或更多个候选房间形状的不同这种布置。例如,在至少一些实施方式中,目标图像的估计房间形状的一个或更多个拐角可以连续地或同时地与候选房间形状的一个或更多个拐角匹配(例如,以分别地将目标图像的估计房间形状的每个拐角与每个候选房间形状的每个拐角匹配,以分别地将目标图像的估计房间形状的每对两个拐角与每个候选房间形状的每对另外两个拐角匹配等),连同使用用于目标图像和候选房间形状(或在该候选房间形状内具有指定位置的现有图像)的消失线角度信息来确定具有匹配拐角的两个房间形状的墙壁对准选项,因此,如果考虑目标图像的估计房间形状和特定候选房间形状的所有替代方案,并且在目标图像的估计房间形状中存在M个预测的房间拐角,以及在候选房间形状中存在N个房间拐角,以及在目标图像和候选房间形状(或对于在该候选房间形状内具有指定位置的现有图像)中的每个中存在2个消失线角,将存在M*N*4个形状匹配备选,用于目标图像的估计的房间形状和该候选房间形状,每个形状匹配备选根据该形状匹配备选为目标图像提供可能的采集位置和任选地取向,其中这种形状匹配备选还被考虑用于每个候选房间形状。
此外,在至少一些实施方式中,可以执行额外的自动操作以确定一个或更多个优选的候选房间形状,从而与目标图像的估计的房间形状进行比较(例如,通过对一些或所有候选房间形状进行排序,并且在一些实施方式中,在其他非优选候选之前或替代其他非优选候选,将优选候选与目标图像的估计的房间形状进行比较),诸如,通过使用一种或多种类型的信息来识别优选的候选,如下:将用于目标图像的估计的房间形状的确定的房间类型标签与用于候选房间形状的房间类型标签进行匹配;通过使用与在目标图像之前和/或之后在建筑物中连续获取的一个或多个其它图像相关联的一个或更多个平面图房间的信息,以将平面图中的相同或相邻房间识别为目标图像的可能采集位置;通过将目标图像的视觉内容成对地与在平面图的房间形状内具有指定位置的现有图像的视觉内容进行比较(例如,通过经过训练的神经网络),以便确定成对的图像中的匹配特征,匹配特征使得能够相对于成对的现有图像的指定位置来确定目标图像的位置(例如,具有超过第一定义的匹配阈值的匹配度);通过将整个目标图像的视觉内容成对地与在平面图的房间形状内具有指定位置的整个现有图像的视觉内容进行比较(例如,通过经过训练的神经网络),以便从成对的图像中的共同可视区域确定相似性,从而能够相对于成对的现有图像的指定位置(例如,具有超过第二定义的匹配阈值的相似度)来确定目标图像的位置;通过使用目标图像的相机的运动跟踪信息(例如,使用SLAM)来确定目标图像的空间关系信息,诸如,周围环境的近似3D形状信息、周围环境中的近似3D平面表面、封闭房间中的相机行进路径信息等;通过使用目标图像的相机的移动信息(例如,来自相机的一个或更多个IMU传感器或相关装置)来确定,相对于目标图像的视觉内容与在平面图的房间形状内具有指定位置的现有图像的视觉内容的成对比较(例如,通过经过训练的神经网络),成对的图像之间的多个方向以帮助确定目标图像相对于成对的现有图像的指定位置(例如,在多个方向上具有超过第三定义的匹配阈值的相似度)的位置,等等。
为了在用于目标图像的估计的房间形状和至少一个候选的房间形状的形状匹配替换方案之间进行选择,对于每个形状匹配备选方案,可以考虑并组合一个或更多个匹配分数(如果考虑多于一个),诸如,通过加权或经过训练的用于组合的机器学习模型,这种匹配分数的非排他性示例包括以下:对用于目标图像的估计的房间形状和用于该形状匹配备选的候选的房间形状的每个拐角的位置之间的距离进行评分,将目标图像的估计房间形状的特定位置用于该形状匹配备选,并且在将候选房间形状再投影到目标图像空间中之后,并且以更小距离识别更好匹配;对目标图像的估计房间形状的线框结构线与该形状匹配备选的候选房间形状的线框结构线之间的距离进行评分,将目标图像的估计房间形状的特定位置用于该形状匹配备选,并在将候选房间形状的线框结构线再投影到目标图像空间后,使用更小的距离识别更好的匹配;对目标图像的估计房间形状的每个对象3D边界框的位置和该形状匹配备选方案的候选房间形状的位置之间的距离进行评分,将目标图像的估计房间形状的特定布置用于该形状匹配备选方案并且在将候选房间形状的对象3D边界框再投影到目标图像空间之后,诸如,通过使用交叉跨越联合距离测量,并且以更小距离识别更好匹配;对目标图像的估计房间形状的结构墙壁的位置和该形状匹配备选的候选房间形状的结构墙壁的位置之间的距离进行评分,使用该形状匹配备选的目标图像的估计房间形状的特定布置,并且在将候选房间形状的结构墙壁再投影到目标图像空间之后,并且以更小距离识别更好匹配;对该形状匹配备选的目标图像的采集位置与候选房间形状中的现有图像的指定位置之间的方向/角度的两次确定之间的差异进行评分,例如通过使用该形状匹配备选的采集位置相对于现有图像的指定位置的确定的位置和方向作为第一方向/角度,并且使用目标图像与现有图像的视觉内容比较(例如,使用SfM分析;利用经过训练的卷积神经网络的结果;等)提供第二方向/角度,并且以较小的差异识别更好匹配;使用该形状匹配备选的候选房间形状对目标图像和房间中的另一图像的总视觉内容之间的差异进行评分(例如,在房间中与目标图像同时获取的附加图像,例如在几分钟和/或几小时的定义时间段内;先前在该房间中获取的并且在该房间中具有指定位置的现有图像等,并且如通过经过训练的卷积神经网络或以另一种方式所确定的),并且以较小差异识别更好匹配;对目标图像的第一生成图像嵌入矢量和房间中的另一图像的第二生成图像嵌入矢量之间的差异进行评分,其中具有该形状匹配备选的候选房间形状(例如,在几分钟和/或几小时的定义时间段内在该房间中获取的附加图像;先前在该房间中获取的并且在该房间中具有指定位置的现有图像等),以较小差异识别更好匹配等。
此外,在以上述方式为每个形状匹配备选确定目标图像的初始采集位置之后,至少一些实施方式包括执行一个或更多个附加的自动操作以更新和细化一个或更多个形状匹配备选(例如,所有形状匹配备选;根据匹配分数的组合,或如果仅使用一个匹配分数则基于单个匹配分数的一个或更多个最佳匹配;等)的初始采集位置,例如一个或更多个以下非排他性列表:使用目标图像的估计房间形状的每个拐角的位置与该形状匹配备选的候选房间形状之间的评分距离,使用该形状匹配备选的目标图像的估计房间形状的特定布置,诸如,通过识别在第一定义距离阈值内的两个房间形状的拐角对(在本文中称为“拐角内点”)并且使用加权最小二乘回归来细化目标图像的采集位置(例如,使用为每个拐角内点生成的置信度分数,诸如,通过经过训练的神经网络,作为回归的权重);使用目标图像的估计房间形状的线框结构线的位置和该形状匹配备选的候选房间形状的线框结构线的位置之间的评分距离,使用该形状匹配备选的目标图像的估计房间形状的特定布置,诸如,通过识别在第二定义距离阈值内的两个房间形状的水平结构线对(本文称为“线内点”),并且使用加权最小二乘回归来细化目标图像的采集位置(例如,使用为每个线内点生成的置信度得分,例如通过经过训练的神经网络,作为回归的权重);使用图像法线/正交方向预测执行可区分的呈现优化,通过使用该形状匹配备选的初始采集位置呈现目标图像的估计的房间形状的像素级表面法线信息(例如,通过使用经过训练的神经网络),并且将那些呈现的像素级表面法线值与在候选房间形状中具有指定位置的现有图像估计的其他像素级表面法线值进行比较,以确定基于差异的代价值,诸如,通过迭代直到代价值达到局部最小值;等等。
此外,在至少一些实施方式中,目标图像的所确定的初始和/或更新的采集位置可以结合在建筑物中获取的其它目标图像的其它所确定的采集位置来进一步细化,诸如实现所有这些目标图像的全局优化(包括可选地使用关于一些或所有这些目标图像之间的相对方向和/或位置的附加信息,诸如,可以由所生成的目标间图像链接反映的那些,如本文中别处更详细讨论的)。下面包括关于自动操作的附加细节,在至少一些实施方式中,自动操作可以由ILDM系统执行,用于将封闭房间的目标图像的估计的房间形状与其他候选房间形状进行比较,以便确定建筑物的一个或更多个匹配目标房间(例如,单个最佳匹配目标房间),包括确定目标图像在匹配目标房间的每个内的采集位置。
此外,在一些实施方式中,图像的估计的房间形状可以与其它房间形状匹配,而不使用平面图。例如,在至少一些实施方式中,使用在一个或更多个建筑物中获取的其它图像的估计房间形状生成候选房间形状,诸如,在与目标图像相同的建筑物中同时捕获(例如,在定义的时间段内,诸如,一或多分钟或一或多小时)的其它附加图像。在这样的实施方式中,可以相对于一个或更多个其它附加图像的位置来确定目标图像的位置,包括在一些实施方式中,在捕获目标图像和附加图像的同时动态地这样做,包括使用估计的目标图像和其它附加图像的房间形状来自动地生成建筑物的部分或完整平面图。
此外,在一些实施方式中,对于在除房间之外的限定区域中捕获的图像,该限定区域的图像的估计形状可以以各种方式与其他限定区域的形状相匹配。例如,在至少一些实施方式中,目标图像(以及可选的附加图像)可以在一个或更多个建筑物外部获取,诸如,在一个或更多个属性(例如,房屋、花园、庭院、甲板、后院、侧院、前院、游泳池、车场、码头等)的多个单独区域中的一个中获取,每个属性都具有先前或同时确定的区域形状(例如,3D形状、2D形状等),如果是的话,则目标图像(以及可选的附加图像)的采集位置可以类似地使用这样的其它定义的区域的形状作为候选“房间”形状来自动确定。
在一些实施方式中,由ILDM系统自动确定房间中的目标图像的采集位置还可以包括附加操作,并且下面包括相应的附加细节,包括图2A-图2W的示例及其相关描述。
描述的技术在各种实施方式中提供了各种益处,包括允许多房间建筑物和其他结构的平面图自动增加有关在建筑物或其他结构中获取图像的采集位置的信息,包括不具有或不使用来自深度传感器或其它距离测量装置的关于从图像的采集位置到周围建筑物或其它结构中的墙壁或其它对象的距离的信息。此外,这种自动技术允许比先前已有的技术更快地确定这种图像采集位置信息,并且在至少一些实施方式中,具有更高的精确度,包括通过使用从实际建筑环境(而不是从关于建筑物应该如何在理论上被构造的计划)获取的信息,以及能够捕获在建筑物最初被构造之后发生的对结构元素的改变。这种描述的技术还提供了至少部分地基于确定的图像采集位置来允许通过移动装置(例如,半自主或全自主车辆)对建筑物的改进的自动导航的益处,包括显著降低用于尝试以其他方式了解建筑物布局的计算能力和时间。此外,在一些实施方式中,描述的技术可以用于提供改进的GUI,其中用户可以更准确和快速地获取关于建筑物内部的信息(例如,用于在该内部导航),包括响应于搜索请求,作为向用户提供个性化信息的一部分,作为向用户提供价值估计和/或关于建筑物的其它信息的一部分等。通过描述的技术还提供了各种其它益处,其中一些益处在本文中别处进一步描述。
如上所述,在至少一些实施方式和情形中,获取的建筑物的一些或全部图像可以是全景图像,全景图像每个都在建筑物内或建筑物周围的多个采集位置之一处获取,诸如,根据在采集位置处捕获的一个或更多个视频(例如,从用户在该采集位置处转动所持有的智能电话或其它移动装置拍摄的360°视频)在每个这样的采集位置处生成全景图像,或从采集位置在多个方向上捕获的多个图像(例如,从用户在该采集位置转动所持有的智能电话或其它移动装置;来自在该采集位置处的装置的自动旋转,诸如,在该采集位置处的三脚架上;等),或同时捕获特定采集位置的所有图像信息(例如,使用一个或更多个鱼眼透镜)等。应当理解,这种全景图像在一些情况下可以在球面坐标系中表示,并且围绕水平和/或垂直轴(例如,沿着水平面和围绕垂直轴的360°覆盖)提供高达360°的覆盖范围,而在其他实施方式中,所获取的全景图像或其他图像可以包括小于360°的垂直覆盖范围(例如,对于宽度和高度的比例超过典型纵横比的图像,诸如,达到或超过21:9或16:9或3:2或7:5或4:3或5:4或1:1,包括所谓的“超宽”镜头和由此产生的超宽图像)。此外,应当理解,观看这样的全景图像(或具有足够水平和/或垂直覆盖范围的其他图像,使得在任何给定时间仅显示图像的部分)的用户可以将全景图像内的观看方向朝向不同的取向以导致在全景图像内待呈现的不同的子集图像(或“视图”),并且在一些情况下,这样的全景图像可以在球面坐标系中表示(包括如果全景图像在球面坐标系中表示并且正在呈现特定视图,则将正在呈现的图像转换为平面坐标系,例如在显示之前的立体图像视图)。此外,可以以各种方式获取和使用关于捕获这种全景图像的获取元数据,诸如,当移动装置由用户携带或在采集位置之间移动时,从IMU(惯性测量单元)传感器或移动装置的其它传感器获取的数据,这种获取元数据的非排他性示例可以包括一个或更多个获取时间;采集位置,诸如,GPS坐标或其它位置指示;获取方向和/或取向;建筑物获取的或以其它方式相关联的多个图像的相对或绝对获取顺序,等等,并且在至少一些实施方式和情况下,这样的获取元数据还可以可选地用作确定图像的采集位置的部分,如下面进一步讨论的。下面包括关于实现图像捕获和分析(ICA)系统的装置的自动操作的附加细节,图像捕获和分析系统涉及获取图像和可选地获取元数据,包括关于图1A-图1B和图2A-图2D。
还如上所述,在各种实施方式中,可以以各种方式自动地确定建筑物的房间的形状,包括在建筑物内特定图像的采集位置的自动确定之前的时间。例如,在至少一些实施方式中,映射信息生成管理器(MIGM)系统可以分析在建筑物中和建筑物周围获取的各种图像,从而自动地确定建筑物的房间的房间形状(例如,3D房间形状、2D房间形状等)并自动地生成建筑物的平面图。作为一个示例,如果在特定房间内获取多个图像,则可以分析这些图像以确定建筑物中的房间的3D形状(例如,反映建筑物的周围结构元素的几何形状),分析可以包括例如自动操作以将图像的相机位置“套准”在公共参考系中,从而“对准”图像并且估计房间中的对象的3D位置和形状,诸如,通过确定在这种图像的内容中可见的特征(例如,当采集装置拍摄特定图像时,确定采集装置的方向和/或取向,采集装置穿过房间行进的路径等,诸如,通过使用用于多个视频帧图像的SLAM技术和/或用于“密集”的图像集的其他SfM技术,该图像集最多相隔一个定义的距离(例如6英尺),以生成房间的3D点云,房间包括沿着房间的墙壁以及房间的天花板和地板中的至少一些的3D点,以及可选地与房间中的其他对象相对应的3D点等)和/或通过确定和聚集关于检测到的特征的平面和与那些平面的法向(正交)方向的信息,以识别房间的墙壁和其他表面的可能位置的平面表面并且连接各种可能的墙壁位置(例如,使用一个或更多个约束,诸如,在墙壁之间和/或在墙壁和地板之间具有90°角,作为所谓的“曼哈顿世界假设(Manhattan world assumption)”的部分),并且形成房间的估计房间形状。在确定建筑物中的房间的估计的房间形状之后,在至少一些实施方式中,自动操作还可以包括将多个房间形状定位在一起以形成建筑物的平面图和/或其它相关的映射信息,诸如通过连接各种房间形状。下面包括关于实现MIGM系统的装置的自动操作的附加细节,MIGM系统涉及确定房间形状和组合房间形状以生成平面图,包括关于图1A-图1B和图2E-图2M以及本文中的其它地方。
为了说明的目的,下面描述一些实施方式,其中特定类型的信息是对于特定类型的结构并且通过使用特定类型的装置以特定方式获取、使用和/或呈现的。然而,将理解,描述的技术可以在其它实施方式中以其它方式使用,并且因此发明不限于所提供的示例性细节。作为一个非排他性的示例,尽管可以为不包括特定房间或整个房屋的详细测量的房屋生成平面图,但是应当理解,在其它实施方式中,可以类似地生成其它类型的平面图或其它映射信息,包括与房屋分开的建筑物(或其它结构或布局)。作为另一个非排他性的示例,尽管房屋或其它建筑物的平面图可以用于显示以帮助观看者在建筑物中导航,但是在其它实施方式中可以以其它方式使用所生成的映射信息。此外,术语“建筑物”在本文中是指任何部分或完全封闭的结构,通常但不一定包括一个或更多个在视觉上地或以其它方式分隔该结构的内部空间的房间。这种建筑物的非限制性示例包括房屋、公寓建筑或其中的单独公寓、公寓、办公建筑、商业建筑或其它批发和零售结构(例如,购物商场、百货商店、仓库等)。本文中所用的关于建筑物内部、采集位置或其它位置(除非上下文另外清楚地指示)的术语“获取”或“捕获”可以指媒体的任何记录(recording)、存储或记录(logging)、传感器数据和/或与空间相关的其他信息和/或视觉特性和/或建筑物内部或其子集的其它可感知特性,例如,通过记录装置或通过从记录装置接收信息的另一装置。如本文所使用的,术语“全景图像”可以指基于、包括或可分离成多个离散分量图像的视觉表示,多个离散分量图像源自在不同方向上基本上相似的物理位置,并且视觉表示描述比单独描绘的任何离散分量图像更大的视场,该离散分量图像包括从物理位置具有足够广角视角的图像,以包括超过在单个方向上从人的凝视可感知的角度(例如,大于120°或150°或180°等)。如本文中所用,术语采集位置的“顺序”通常是指两个或更多个采集位置,每个采集位置以相应的顺序至少被访问一次,无论在它们之间是否访问其它非采集位置,以及无论对采集位置的访问是否在单个连续的时间段期间发生、或在多个不同的时间期间发生、或由单个用户和/或装置,或由多个不同的用户和/或装置发生。此外,出于示例性目的,在附图和文本中提供了各种细节,但并不旨在限制本发明的范围。例如,附图中的元件的尺寸和相对位置不必按比例绘制,其中省略了一些细节和/或提供了更大的突出(例如,通过尺寸和定位)以增强易读性和/或清晰度。此外,在附图中可以使用相同的附图标记来识别类似的元件或动作。
图1A是在一些实施方式中可以参与所描述的技术的各种计算装置和系统的示例框图。具体而言,在图1A中示出了全景图像165,其已经由内部捕获和分析(“ICA”)系统160生成,在该示例中,系统160在一个或更多个服务器计算系统180上执行,例如关于一个或更多个建筑物或其它结构,并且已经为至少一些成对的图像生成了内造影(inter-image)取向链接。图1B示出了用于特定房屋198的这种链接的全景图像采集位置210的一个示例,如下面进一步讨论的,并且与ICA系统的自动操作相关的附加细节被包括在本文中的其它地方,包括关于图4。在至少一些实施方式中,ICA系统中的至少一些可以部分地在移动图像采集装置185上执行(不管是在一个或更多个服务器计算系统180上是ICA系统160的补充还是替代),如关于图1B进一步讨论的。MIGM(映射信息生成管理器)系统160进一步在图1A中的一个或更多个服务器计算系统180上执行,以基于全景图像165的使用和可选地关于它们的获取和链接的相关联的元数据来生成和提供建筑物平面图155和/或其它映射相关信息。图2M到图2O(为清楚起见,在本文中称为“2-O”)示出了这种平面图的示例。如下面进一步讨论的,与MIGM系统的自动操作相关的附加细节被包括在本文中的其它地方,包括关于图5A-图5B。
图1A还示出了ILDM(图像位置确定管理器(Image Location DeterminationManager))系统140,其在一个或更多个服务器计算系统180上执行以确定在一个或更多个建筑物房间中获取的其他目标图像145(例如,全景图像)的采集位置,例如关于相应的平面图155。在至少一些实施方式和情形中,ILDM客户端计算装置105的一个或更多个用户可以进一步通过网络170与ILDM系统140交互,诸如帮助ILDM系统的一些自动操作至少部分地基于对图像内容的分析来确定图像的采集位置,和/或随后以一种或多种其它自动方式使用所确定的图像采集位置信息。与ILDM系统的自动操作相关的额外细节包括在本文中的其它地方,包括关于图2P-图2W和图6A-图6B。在一些实施方式中,ICA系统和/或MIGM系统和/或ILDM系统140可以在相同的一个或更多个服务器计算系统上执行,诸如,如果这些系统中的多个或全部由单个实体操作,或以其他方式相互协调地执行(例如,这些系统的一些或全部功能被集成在一起到更大的系统中),而在其他实施方式中,ILDM系统可以取而代之地从一个或更多个外部源获取平面图信息和/或其他图像(例如,目标图像、其它附加图像等),并且可选地将它们与ILDM系统一起本地存储(未示出),以便进一步分析和使用。
一个或更多个客户端计算装置175的一个或更多个用户(未示出)还可以通过一个或更多个计算机网络170与ILDM系统140以及可选地与ICA系统和/或MIGM系统交互,诸如,以帮助确定一个或更多个目标图像的采集位置并且获取相应的确定的采集位置信息,和/或获取并且可选地与在其上已经定位了一个或更多个附加图像的生成的平面图交互,和/或获取并且可选地与诸如一个或更多个相关联的现有图像的附加信息交互(例如,在平面图内或平面图附近的采集位置处在平面视图和特定图像的视图之间改变;以改变显示全景图像的相应视图的水平和/或垂直观看方向,诸如,确定当前用户观看方向所指向的全景图像的一部分等)。此外,虽然在图1A中未示出,但平面图(或其一部分)可以链接到或以其他方式与一个或更多个其他类型的信息相关联,包括用于多层或其他多层建筑物的平面图,以具有用于互连(例如,经由连接楼梯通道)的不同楼层或层的多个相关联的子平面图,将建筑物的二维(“2D”)平面图链接到或以其他方式与建筑物的三维(“3D”)呈现平面图等相关联。此外,虽然在图1A中未示出,但是在一些实施方式中,客户端计算装置175(或其它装置,未示出)可以以另外的方式接收和使用所确定的图像采集位置信息(可选地结合所生成的平面图和/或其它所生成的与映射相关的信息),诸如,通过那些装置(例如,通过自主车辆或其它装置)以控制或辅助自动导航活动,不管是代替显示生成的信息还是除了显示生成的信息之外。
在图1A所示的计算环境中,网络170可以是一个或更多个公开可访问的链接网络,可能由各种不同主体(例如,因特网)操作。在其它实现中,网络170可以具有其它形式,诸如,专用网络(例如,非特权用户完全或部分不可访问的公司网络或大学网络)。在其它实现中,网络170可以包括专用网络和公共网络,其中一个或更多个专用网络可以访问和/或来自一个或更多个公共网络。此外,网络170可以在各种情况下包括各种类型的有线和/或无线网络。此外,客户端计算装置175和服务器计算系统180可以包括各种硬件组件和存储的信息,如下面关于图3更详细地讨论的。
在图1A的示例中,ICA系统160可以在多个相关联的采集位置(例如,在建筑物或其它结构内的多个房间或其它位置中,并且可选地在建筑物或其它结构的一些或全部外部周围)执行涉及生成多个全景图像(例如,每个是围绕垂直轴的360度全景)的自动操作,诸如,用于生成和提供建筑物或其它结构的内部的表示。该技术还可以包括分析信息以确定两个或更多个采集位置中的每个之间的相对位置/方向,基于确定的位置/方向在全景中创建到一个或更多个其它全景中的每个的全景间位置/方向链接,并且然后提供信息以显示或以其它方式呈现建筑物内的各种采集位置的多个链接的全景图像。
图1B描绘了示例性建筑物内部环境的框图,在该环境中已经生成了链接的全景图像,并且准备好用于生成和提供相应的建筑物平面图,以及用于向用户呈现链接的全景图像。特别地,图1B包括具有内部的建筑物198(在该示例中,房屋198),该内部至少部分地通过多个全景图像来捕获,例如由携带具有图像获取能力的移动装置185的用户(未示出)通过建筑物内部到一系列多个采集位置210来捕获。ICA系统的实施方式(例如,服务器计算系统180上的ICA系统160;在用户的移动装置上执行的ICA系统的一些或全部的副本,诸如,在装置185上的存储器152中执行的ICA应用系统155;等)可以自动地执行或帮助捕获表示建筑物内部的数据,以及在一些实施方式中进一步分析所捕获的数据以生成提供建筑物内部的可视表示的链接的全景图像。尽管用户的移动装置可以包括各种硬件组件,例如一个或更多个摄像机或其它成像系统135、一个或更多个传感器148(例如,陀螺仪148a、加速度计148b、磁力计或其它罗盘148c等,诸如,移动装置的一个或更多个IMU或惯性测量单元的部分;高度计;光检测器等)、GPS接收机、一个或更多个硬件处理器132、存储器152、显示器142、麦克风、一个或更多个外部灯等,在至少一些实施方式中,移动装置不能访问或使用装置来测量建筑物中对象相对于移动装置的位置的深度,从而可以基于不同图像中的匹配元素和/或通过使用来自其他列出的硬件组件的信息,而不使用来自任何这种深度传感器的任何数据,来部分或整体地确定不同全景图像与它们的采集位置之间的关系。此外,尽管提供方向指示器109用于观众的参考,但是在至少一些实施方式中,移动装置和/或ICA系统可以不使用这种绝对方向信息,例如,不考虑实际的地理位置或方向的情况下,代替确定全景图像210之间的相对方向和距离。
在操作中,与移动装置相关联的用户到达建筑物内部的第一房间内的第一采集位置210A(在该示例中,从外部门190-1到起居室的入口通道),并且当移动装置围绕第一采集位置处的垂直轴旋转时(例如,当用户将移动装置相对于用户的身体保持静止时,将他或她的身体在一个圆圈内转动),捕获从该采集位置210A可见的建筑物内部的部分(例如,第一房间的一些或全部,以及可选地一个或更多个其他邻近或附近房间的小部分,诸如,通过门道、厅、楼梯或来自第一房间的其它连接通道)的视图。用户和/或移动装置的动作可以通过使用在移动装置上执行的一个或更多个程序来控制或促进,诸如,ICA应用系统155和/或可选的查看器162、控制系统147,以管理装置185的I/O(输入/输出)和/或通信和/或网络(例如,从用户接收指令并向用户呈现信息),等等,并且可以通过在位置210A处记录视频和/或在位置210A处拍摄一连串的一个或更多个图像来执行视图捕获,包括捕获视觉信息,视觉信息描绘了从采集位置捕获的图像(例如,视频帧)中可能可见的许多对象或其它元素(例如,结构细节)。在图1B的示例中,这样的对象或其它元素包括在结构上是房屋的房间的墙壁(或“墙壁元素”)的部分的各种元素,诸如,门道190和197以及它们的门(例如,具有摆动门和/或滑动门)、窗196、墙壁间边界(例如,拐角或边缘)195(包括房屋198的西北拐角中的拐角195-1、在第一房间的东北拐角中的拐角195-2,以及在第一房间的西南拐角中的拐角195-3)。此外,在图1B的示例中的这种对象体或其它元素还可以包括房间内的其它元素,诸如,家具191-193(例如,躺椅191;椅子192;桌子193;等),图片或绘画或电视或悬挂在墙壁上的其它对象194(诸如,194-1和194-2)、灯具等。用户还可以可选地提供要与采集位置相关联的文本或听觉识别符,诸如,采集位置210A的“入口”或采集位置210B的“起居室”,然而在其它实施方式中,ICA系统可以自动地生成这样的识别符(例如,通过自动地分析建筑物的视频和/或其它记录的信息以执行相应的自动确定,诸如通过使用机器学习)或可以不使用识别符。
在第一采集位置210A已经被充分捕获(例如,通过移动装置的完全旋转)之后,用户和/或装置185可以前进到下一采集位置(诸如采集位置210B),可选地在采集位置之间的移动期间记录移动数据,诸如来自硬件组件(例如,来自一个或更多个IMU、来自照相机等)的视频和/或其它数据。在下一个采集位置,移动装置可以类似地从该采集位置捕获一个或更多个图像。该过程可以从建筑物的一些或所有房间重复,并且可选地在建筑物外部重复,如对于采集位置210C-210M所示。每个采集位置的获取的视频和/或其它图像被进一步分析以生成采集位置210A-210M的每个的全景图像,包括在一些实施方式中将多个组成图像拼接在一起以创建全景图像和/或匹配不同图像中的对象和其它元素。除了生成这种全景图像之外,还可以在至少一些实施方式中执行进一步的分析,以便将至少一些全景及其采集位置“链接”在一起(为了说明起见,示出了示例采集位置210A-210C之间的一些相应的线215),诸如,确定彼此可见的成对的采集位置之间的相对位置信息,以存储相应的全景间(inter-panorama)链接(例如,分别在采集位置210A和210B、210B和210C,以及210A和210C之间的链接215-AB、215-BC和215-AC),并且在一些实施方式和情况下进一步链接至少一些彼此不可见的采集位置(例如,采集位置210B和210E之间的链接215-BE,未示出)。
提供了关于图1A-图1B的各种细节,但是应当理解,所提供的细节是出于说明的目的而包括的非排他性示例,并且可以以其它方式执行其它实施方式,而没有一些或全部这样的细节。
图2A-图2W示出了基于在建筑物内部拍摄的图像,诸如,基于在图1B中讨论的建筑物198内捕获的一个或更多个目标图像的自动确定的采集位置,自动生成和呈现关于建筑物的平面图的信息的示例。特别地,图2A示出了示例图像250a,诸如在从图1B的房屋198的起居室中的采集位置210B的东北方向上拍摄的非全景立体图像(或从该采集位置拍摄并且以直线方式格式化的360度全景图像的面向东北的子集视图),在该示例中进一步显示方向指示器109a以示出在其中拍摄图像的东北方向。在所示示例中,显示的图像包括内置元素(例如,灯具130a)、家具(例如,椅子192-1)、两个窗户196-1以及悬挂在起居室的北墙壁上的图片194-1。在该图像中看不见进入或离开起居室(例如,门道或其它墙壁开口)的房间间通道。然而,在图像250a中可见多个房间边界,包括起居室的北墙壁的可见部分与起居室的天花板和地板之间的水平边界、起居室的东墙壁的可见部分与起居室的天花板和地板之间的水平边界以及北墙壁与东墙壁之间的墙壁间垂直边界195-2。
图2B继续图2A的示例,并且示出了从图1B的房屋198的起居室中的采集位置210B沿西北方向拍摄的附加立体图像250b,进一步显示方向指示器109b以示出拍摄图像的西北方向。在该示例图像中,窗户196-1中的一个的一小部分以及窗户196-2的部分和新的照明器材130b继续是可见的。此外,在图像250b中以类似于图2A的方式可见水平和垂直房间边界。
图2C继续图2A-图2B的示例,并且示出了在图1B的房屋198的起居室中以西南方向(诸如,从采集位置210B)拍摄的第三立体图像250c,进一步显示方向指示器109c以示出拍摄图像的西南方向。在该示例图像中,窗户196-2的部分继续可见,如同以类似于图2A和图2B的方式的躺椅191和视觉水平和垂直房间边界。该示例图像还示出了起居室的房间间通道,在该示例中,房间间通道是进入和离开起居室的门道190-1(图1B识别为到房屋外部的门)。应当理解,可以从采集位置210B和/或其它采集位置获取各种其它立体图像,并且以类似的方式显示。
图2D示出了图1B的房屋198的部分的进一步信息255d,包括起居室和起居室东侧的其他的房间的部分。如关于图1B和图2A-图2C所讨论的,在一些实施方式中,可以在房屋内部的不同位置处捕获全景图像,诸如,在起居室中的位置210A和210B,随后将这些图像的相应视觉内容用于确定起居室的房间形状。此外,在至少一些实施方式中,可以捕获附加图像,诸如,当装置185(未示出)在移动通过房屋内部时是否正在捕获视频或其它系列的连续或接近连续的图像。在该示例中,示出了图1B所示的路径115的部分的信息,并且特别地示出了沿着该路径的一系列位置215,当移动装置185时,在该路径处可以捕获(例如,如果正在捕获视频数据)房屋的周围内部的一个或更多个视频帧图像(或其它系列的连续或接近连续的图像)。这种位置的示例包括捕获位置240a、240b和240c,以及与从图2E-图2J中所示的那些位置捕获的视频帧图像有关的进一步信息。在该示例中,沿着路径的位置215被示出为相隔短距离(例如,英尺、英寸、几分之一英寸等),但是应当理解,视频捕获可以是基本上连续的。因此,在至少一些实施方式中,可以仅选择这种捕获的视频帧图像的子集(或来自一系列连续或近似连续图像的其它图像),并将其用于进一步分析。诸如,由这样的距离分开的图像和/或由在它们的捕获之间的短时间段(例如,秒、几分之一秒、多秒等)分开的图像,和/或基于其它标准分开的图像。
图2E-图2J继续图2A-图2D的示例,并且示出了关于起居室和关于分析来自沿着路径155捕获的视频的360°图像帧的附加信息,以便确定房间的可能形状。尽管在这些图中未示出,但是可以对在采集位置210A、210B和210C中的两个或更多个处捕获的全景图像执行类似的技术,无论是代替分析还是补充分析图2D中所示的附加图像帧。特别地,图2E包括信息255e,信息255e示出了从位置240b拍摄的360°图像帧将与从位置240a拍摄的360°图像帧共享关于各种特征的信息,尽管为了简单起见,这些特征仅在图2E中示出起居室的部分。在图2E中,示出了从位置240b到房间中各种示例性特征的示例性视线228,并且示出了从位置240a到相应特征的类似的示例性视线227,其示出了在显著隔开的捕获位置处的视图之间的差异程度。因此,使用SLAM和/或MVS和/或SfM技术对与图2A的位置215相对应的图像序列的分析可以提供关于起居室的特征的各种信息,包括关于特征的相关平面和来自这些平面的法线正交方向的信息,如进一步参照图2F-图2I所示。
特别地,图2F示出了关于在从位置240a和240b拍摄的360°图像帧的子集中可见的起居室的东北部分的信息255f,并且图2G示出了关于在从位置240a和240b拍摄的360°图像帧的其它子集中可见的起居室的西北部分的信息255g,其中起居室的那些部分中的各种特征在两个360°图像帧(例如,拐角195-1和195-2,窗户196-1和196-2等)中均可见。作为使用SLAM和/或MVS和/或SfM技术的360°图像帧的自动分析的部分,关于与起居室的北墙壁的部分相对应的面286e和286f的信息可以根据检测到的特征来确定,并且关于起居室的东墙壁和西墙壁的部分的信息287e和285f可以类似地根据在图像中识别的相应特征来确定。除了识别检测的特征的这种面信息(例如,对于来自图像分析的所确定的稀疏3D点云中的每个点)之外,SLAM和/或MVS和/或SfM技术还可以确定关于来自捕获位置240a的一个或多个图像的可能位置和取向/方向220以及来自捕获位置240b的一个或多个图像的可能位置和取向/方向222(例如,分别是图2F中捕获位置240a和240b的位置220g和222g,以及图2F所示图像子集的可选方向220e和222e;以及分别在图2G中捕获位置240a和240b的对应位置220g和222g,以及图2G中所示的图像子集的可选的方向220f和222f)。虽然在图2F和图2G中仅示出了起居室的部分的特征,但是应当理解,可以以类似的方式来分析对应于起居室的其它部分的360°图像帧的其它部分,以确定关于房间的各种墙壁以及起居室中的其它特征(未示出)的可能平面的可能信息。此外,可以在被选择使用的起居室中的位置215处的一些或所有其它图像之间执行类似的分析,从而根据可能对应于房间的墙壁的各种图像分析产生各种确定的特征平面。
图2H继续图2A-图2G的示例,并且通过对在位置240a和240b处捕获的360°图像帧的分析,示出了关于可能对应于起居室的西墙壁和北墙壁的各种确定的特征平面的信息255h。图示的平面信息包括确定的靠近或在北墙壁处的平面286g(以及相应的北墙壁的可能位置),以及确定的靠近或在西墙壁处的平面285g(以及相应的西墙壁的可能位置)。正如所预期的那样,从在两个360°图像帧的分析中检测到的不同特征,诸如,位置、角度和/或长度的差异,在北墙壁和西墙壁的不同确定的平面中存在许多变化,从而导致关于每个墙壁的实际精确位置和角度的不确定性。尽管在图2H中未示出,但是将会理解,将类似地检测到起居室的其它墙壁的类似的确定的特征平面,以及与不沿着墙壁的特征(例如,家具)相对应的确定的特征平面。
图2I继续图2A-图2H的示例,并且示出了关于可以对应于起居室的西墙壁和北墙壁的附加确定的特征平面的信息255i,来自对从起居室中沿着路径115的附加位置215选择的各种附加360°图像帧的分析。正如预期的,在该示例中,对其它图像的分析在北墙壁和西墙壁的不同确定的平面中提供了甚至更大的变化。图2I还示出了附加的确定的信息,其用于聚集关于各种确定的特征平面的信息以便识别西墙壁和北墙壁的可能位置295a和295b,如图2J的信息255j所示。特别地,图2I示出了关于对应于西墙壁的一些确定的特征平面的法线正交方向的信息291a,以及关于那些确定的特征平面的附加信息290a。在示例性实施方式中,对所确定的特征平面进行聚类以表示西墙壁的假定墙壁位置,并且将关于假定墙壁位置的信息进行组合以确定可能的墙壁位置295a,诸如,通过加权来自各种聚类和/或下面所确定的特征平面的信息。在至少一些实施方式中,通过使用机器学习技术来分析假设的墙壁位置和/或法线信息,以确定最终的可能的墙壁位置,可选地通过进一步应用假设或其它约束(诸如,90°拐角,如图2H的信息282中所示,和/或具有平坦的墙壁)作为机器学习分析或分析结果的部分。可以使用关于相应的确定的特征平面的信息290b和关于对于那些确定的特征平面中的至少一些确定的特征平面的导致法线正交方向的附加信息291b对北墙壁执行类似的分析。图2J分别示出了导致起居室的西墙壁和北墙壁的可能的墙壁位置295a和295b。
尽管在图2I中未示出,但是应当理解,类似地将检测和分析起居室的其它墙壁的类似的确定的特征平面和相应的法线方向,以确定它们的可能位置,从而得到起居室的估计的总体房间形状。此外,对建筑物的房间的每个进行类似的分析,提供房间的每个的估计的房间形状。
图2K继续图2A-图2J的示例,并且示出了关于附加信息的信息255K,信息255K可以从房间中的图像生成,并且在至少一些实施方式中以一种或多种方式使用。特别地,可以分析在房屋198的起居室中捕获的图像(例如,视频帧),以便确定起居室的3D形状,诸如,从在视频帧(例如,使用SLAM和/或SfM和/或MVS技术)中检测到的特征的3D点云来确定起居室的3D形状。在该示例中,信息255K以类似于图2C的图像250c的方式反映起居室的这种点云的示例部分,诸如在该示例中对应于起居室的西北部分(例如,包括起居室的西北拐角195-1,以及窗户196-1)。这种点云可以被进一步分析以确定平面区域,诸如,对应于墙壁、天花板、地板等,以及在一些情况下检测特征,诸如,窗户、门道和其它房间间开口等。在该示例中,识别与起居室的北墙壁对应的第一平面区域298,进一步识别与窗户196-1对应的第二平面区域299。应当理解,在起居室和房屋198的其它房间中,各种其它墙壁和其它特征可能被认为是相似的。
图2L示出了附加信息255l,其对应于,在为房屋198的所示楼层的房间确定了估计的房间形状之后,至少部分地基于在房间之间连接房间间通道和在相邻房间之间匹配房间形状信息,将房间的估计的房间形状相对于彼此定位。在至少一些实施方式中,这种信息可以作为对房间的定位的约束来处理,并且对于这些约束确定最优的或另外优选的方案。图2L中的这种约束的示例包括匹配231连接相邻房间的通道信息(例如,在关于图2E-图2J讨论的自动图像分析中检测到的通道),使得这些通道的位置共处一地,以及匹配相邻房间的232个形状,以便连接这些形状(例如,如房间229d和229e所示)。无论基于通道的约束和/或基于房间形状的约束,还是替代基于通道的约束和/或基于房间形状的约束,在其它实施方式中可以使用各种其它类型的信息,诸如,房屋的整体尺寸的精确或近似尺寸(例如,基于关于建筑物的可用的其他元数据,来自建筑物外部的一个或更多个捕获位置的图像的分析等)。房屋外部信息233还可以被识别并用作约束(例如,至少部分地基于对与建筑物外部(诸如,窗户)相对应的通道和其它特征的自动识别),诸如,以防止另一房间被放置在已经被识别为建筑物的外部的位置处。
图2M到图2-O继续图2A-图2L的示例,并且示出了可以从图2A-图2L中讨论的分析类型生成的映射信息。特别地,图2M示出了可以基于估计的房间形状的定位而构造的示例性平面图230m,在该示例中,平面图230m包括墙壁以及门道和窗户的指示。在一些实施方式中,这样的平面图可以具有所示的进一步信息,诸如,关于由图像分析自动检测和/或由一个或更多个用户随后添加的其它特征。例如,图2N示出了修改的平面图230n,其包括各种类型的附加信息,例如可以通过图像分析自动识别并添加到平面图230m,包括一个或更多个以下类型的信息:房间标签(例如,用于起居室的“起居室”)、房间尺寸、固定装置或电器或其它内置特征的视觉指示、附加类型的相关和链接信息的位置的视觉指示(例如,在指定位置获取的现有的全景图像和/或立体图像,终端用户可以选择全景图像和/或立体图像用于进一步显示;终端用户可以选择用于进一步呈现的音频注释和/或录音等)、门道和窗户的视觉指示等。在其它实施方式和情形中,一些或所有这种类型的信息可以替代地由一个或更多个MIGM系统运营商用户和/或ICA系统运营商用户提供。此外,当向终端用户显示平面图230m和/或230n时,可以添加一个或更多个用户可选择的控件,以提供作为GUI(图形用户界面)屏幕255n的部分的交互功能,从而指示所显示的当前楼层,从而允许终端用户选择要显示的不同楼层等,在该示例中,将相应的示例用户可选择的控件228添加到GUI中。在一些实施方式中,楼层或其它层中的变化也可以直接从所显示的平面图进行,诸如通过选择相应的连接通道(例如,到不同楼层的楼梯),并且可以通过选择相应的所显示的用户可选择的控件(例如,选择对应于特定位置处的特定图像的控件,并且接收该图像的显示,不管是替代还是附加于从其中选择图像的平面图的先前显示),可以直接从所显示的平面图进行其它视觉变化。此外,在一些实施方式中,多个楼层(例如,所有楼层)的信息将同时显示(无论是作为用于单独的楼层的单独的子平面图,还是通过将所有房间和楼层的房间连接信息集成到一次一起示出的单个平面图中)。应当理解,在一些实施方式中可以添加各种其它类型的信息,在一些实施方式中,可以不提供所示类型的信息中的一些,并且在其它实施方式中可以以其它方式显示和选择所链接的和相关联的信息的视觉指示和用户选择。
图2-O继续图2A-图2N的示例,并且示出了可以从本文中公开的自动分析技术生成的附加信息265,在该示例中,附加信息265是房屋的2.5D或3D模型平面图。这种模型265可以是基于平面图230m和/或230n生成的附加的与映射相关的信息,其中示出了关于高度的附加信息,以便示出诸如窗户和门的特征的墙壁中的视觉位置。虽然在图2-O中未示出,但是在一些实施方式中,可以将附加信息添加到所显示的墙壁,诸如,来自在视频捕获期间拍摄的图像(例如,以呈现和示出来自呈现的模型265上的房屋的实际油漆、墙纸或其它表面),和/或可以以其它方式用于将指定颜色、纹理或其它视觉信息添加到墙壁或其它表面上。
图2P-图2R继续图2A到图2-O的示例,其中图2P示出了示出图1B的房屋198的起居室的进一步信息230p,以及附加目标图像的采集位置的指示289p,尽管在该示例中,采集位置还没有通过ILDM系统的自动操作建立。在该示例中,目标图像与图1B的图像分开获取(图1B的图像在采集位置210处被捕获以用于生成建筑物198的平面图,并且在不同位置处获取目标图像),并且在该示例中是在生成建筑物198的平面图之后的时间。在该示例中,目标图像是360°全景图像,如图2Q的图像250q所示,使用球形格式来同时显示目标图像的视觉内容的所有360°水平(采集位置在起居室的西北象限中,并且全景图像的开始获取方向朝向西并在360°水平圆上连续)。在其它实施方式中,这样的目标图像可以具有其它形式(例如,180°全景图像,诸如以直线格式在图2R的示例图像255r中示出;立体图像,诸如对应于图2R的示例图像250d,其在该示例中被示为图像255r的子集;等等)。在提供目标图像和可选地与其捕获相关的获取元数据之后,ILDM系统可以执行各种自动操作以使用目标图像的视觉内容(以及可选地获取元数据)来确定目标图像的采集位置,包括确定目标图像在起居室(而不是在建筑物198的另一个房间中,或在一些情况下,在其他建筑物的其他房间中)中被捕获并且确定起居室内目标图像的具体采集位置和取向,具有这样确定的目标图像的采集位置随后以类似于图2P的方式覆盖在所显示的建筑物的平面图上。
如图2S所示,ILDM系统的自动操作可以通过分析目标图像250q的视觉内容以及可选地分析其相关联的获取元数据来确定目标图像的3D房间形状信息和相关联的信息,其中在图像255s及其相关联的信息中示出了示例结果。特别地,作为对目标图像的分析的部分,ILDM系统可以至少生成对应于包含目标图像的房间的墙壁的3D点云271,其可以用作目标图像的估计的3D房间形状的一些或全部。尽管在图2S的示例中未示出,但是在至少一些实施方式和情况下,这种3D点云还可以包括房间中的天花板和/或地板和/或其它结构元素的一些或全部。此外,ILDM系统还可以生成至少与墙壁(以及可选地天花板和地板)相对应的平面表面的估计位置,无论是添加还是替代3D点云,并且在目标图像的一些或全部的估计的3D房间形状处使用估计的平面表面位置。图2T的信息238t示出了目标图像的封闭房间的墙壁估计的2D房间形状信息,其可以从这样的3D点云和/或平面表面产生。ILDM系统还可以生成封闭房间(例如,至少与其它墙壁和天花板/地板的墙壁边界)的线框结构线272,无论是除了3D点云还是代替3D点云,并且可以进一步使用线框结构线作为目标图像的估计的3D房间形状的至少一些。此外,图2S还示出了由ILDM系统进行的自动分析可以识别诸如窗户和门道被识别的结构墙壁元素的3D边界框273,其中示出了北墙壁上的窗户和从起居室通向走廊的门道的示例边界框,但是应当理解,其它窗户和门道(以及可选的其它结构壁元素)也可以类似地生成3D边界框。此外,在至少一些实施方式中,ILDM系统还可以生成标签,以对应于封闭房间的确定的房间类型和/或对应于在房间中识别的结构墙壁元素的确定的对象类型,诸如,在该示例中示出的房间类型标签274和对象类型标签276。此外,在该示例中示出的房间类型标签274具有相关联的置信度水平,并且在一些情况下,可以为具有不同置信度水平的给定房间或对象生成多个房间类型标签和/或对象类型标签。此外,在至少一些实施方式中,ILDM系统的自动操作还可以包括生成嵌入矢量,该嵌入矢量以简明的格式对关于房间的元素和/或特征的信息进行编码以供以后使用,诸如图2S中所示的嵌入矢量275(尽管在该示例中未示出特定嵌入矢量的细节)。在各种实施方式中,可以以各种方式执行ILDM系统的各种自动操作,以生成目标图像的估计的房间形状信息,如本文中别处更详细讨论的。
图2T-图2W继续图2A-图2S的示例,并且示出了ILDM系统在自动确定图2P和图2Q所示的目标图像的采集位置的进一步自动操作的方面。具体地,图2T示出了与建筑物198中确定的房间形状的信息有关的信息255T,用于ILDM系统用作自动匹配目标图像的封闭房间的估计房间形状的候选对象(并且可选地在其它情况下检索多个建筑物的房间的确定的房间形状,诸如,如果ILDM系统进一步执行确定在哪个建筑物中获取目标图像)。获取的确定的房间形状可以是,例如,先前为建筑物中的其他房间指定的和/或根据建筑物的平面图上的2D房间形状轮廓自动生成的确定的2D和/或3D房间形状,和/或在建筑物198中获取的附加图像估计的确定的2D和/或3D房间形状,诸如在与目标图像的获取相同的时间段期间,并且在与生成目标图像的估计的房间形状相同或相似的时间动态地生成所确定的房间形状。在该示例中,图2T示出信息239a和239b以及239c对应于用于表示目标图像的估计的房间形状的可选方式,其中信息239a对应于图2S的结果图像255s中所示的3D房间形状(例如,示出了至少墙壁边界的结构线框线并且示出诸如窗户和门道以及其它墙壁开口的墙壁结构元素的位置,但是没有示出可以被确定和用于3D房间形状的一些细节,诸如3D点云、边界框等的存在),以及与用于封闭房间的2D房间形状对应的信息239b,其示出了墙壁和结构元素(诸如,窗户、门道和其他房间间墙壁开口)的估计位置,以及与封闭房间的3D房间形状对应的信息239c,以类似于信息239b的方式但是示出了墙壁高度。在各种实施方式中,可以使用类型239a和/或239b和/或239c的房间形状信息来执行形状匹配。应当理解,目标图像的封闭房间的估计的房间的形状信息可以与实际的封闭房间稍微不同,例如具有稍微不同长度的相对墙壁,具有以不同于90°的角度相交的墙壁等。除了用于目标图像的封闭房间的估计的房间形状信息之外,图2T还示出了建筑物198的三个示例房间的确定的房间形状信息,例如与建筑物的平面图相关联的先前确定的房间形状。在该示例中,示出了三种备选类型的信息,对于走廊的确定的房间形状(即,确定的房间形状信息236a的类型类似于估计的房间形状信息239a,确定的房间形状信息236b的类型类似于估计的房间形状信息239b,和确定的房间形状信息236c的类型类似于估计的房间形状信息239c),对于起居室的确定的房间形状(即,确定的房间形状信息237a、237b和237c的类型分别类似于估计的房间形状信息239a、239b和239c),以及对于卧室1的确定的房间形状(即,确定的房间形状信息238a、238b和238c的类型分别类似于估计的房间形状信息239a、239b和239c)。尽管在图2T中未示出,可以为建筑物198的一些或所有其他房间(以及可选地为一个或更多个其他建筑物,诸如,同一房产上的其他结构,其他地理区域中的其他建筑物等)检索类似的确定的房间形状信息。尽管在图2T中未示出,但是在其它实施方式中,一些或所有候选房间形状可以替代为其它附加图像(例如,在相同建筑物中的相同或相似时间帧期间获取的其它全景图像)确定,例如通过估计那些其它附加图像的房间形状,并使用那些估计的房间形状作为目标图像的候选房间形状。
图2U还示出了关于如何将目标图像的封闭房间的估计的房间形状可以与候选对象的确定的房间形状信息进行比较以识别一个或更多个最佳匹配的示例信息255u,该最佳匹配在该示例中包括基于如图2T所示的起居室的确定的房间形状信息237b的最佳匹配242。在该示例中,图2U示出了使用建筑物198的房间的确定的房间形状信息作为候选对象的全部可能的备选形状匹配的一小部分。例如,图2U中的顶行示出了目标图像的估计房间形状与走廊的确定的房间形状的少量可能匹配(如使用图2T的信息236b所示)。特别地,顶行的示例的每个涉及将目标图像的估计的房间形状的右下拐角与走廊的确定的房间形状的一个拐角进行匹配237,包括使用消失线角度信息(例如,如图2R中所示257,但在图2U中未示出)来将估计的和确定的房间形状的墙壁在确定的房间形状的不同布置中对齐,以用于不同的备选形状匹配,以及改变特定替代形状匹配的估计的房间形状和确定的房间形状中的至少一个的大小以适合另一个。在该示例中,顶行(从左至右)的第一、第五和第六可选形状匹配涉及走廊的确定的房间形状(其东南拐角)的单个拐角与估计的房间形状的单个拐角匹配,但是使用消失线角度来对齐确定的房间形状的不同可能的布置,尽管估计的房间形状和走廊的确定的房间形状(在该示例中未示出)之间的其它可选形状匹配将会使用其它可能的布置将走廊的确定的房间形状的其它拐角与估计的房间形状的相同的右下拐角相匹配,并且在估计的房间形状与走廊的确定的房间形状(在该示例中未示出)之间的其它形状匹配将使估计的房间形状的其它拐角与走廊的确定的房间形状的一些或全部拐角相匹配,并且在至少一个实施方式中,仍然使用ILDM系统进一步分析这些可能的替代形状匹配中的一些或全部。以与顶行类似的方式,中间行包括将目标图像的估计的房间形状与起居室的确定的房间形状信息237b相匹配的示例,如同走廊一样,仅示出了估计的房间形状和起居室的确定的房间形状之间的可能的备选形状匹配的小部分,这些示例中的每个都涉及将估计的房间形状的右下拐角与起居室的确定的房间形状的拐角相匹配,对于中间行(从左到右)的第一可选形状和第五可选形状匹配,涉及起居室的确定房间形状的单个拐角(它的东南拐角)与估计的房间形状的相同拐角匹配,但是使用用于对准的消失线角度的确定的房间形状的不同可能的布置,以及改变特定替代形状匹配的估计的房间形状和确定的房间形状中的至少一个的大小以适合另一个,并且在起居室的确定的房间形状中的估计房间形状之间具有多种其他可能的替代形状匹配,虽然在此示例中未示出,但是然而至少在一些实施方式中由ILDM系统进一步分析。图2T中所示的底行包括类似于顶行和中间行的信息,但是估计的房间形状与卧室1的确定的房间形状信息238b相匹配。尽管ILDM系统将进一步分析一些或全部备选形状匹配,以确定目标图像的估计的房间形状的一个或更多个最佳匹配,如关于图2V进一步讨论的,但是图2U的所示备选形状匹配242对应于将被确定的最佳匹配。
特别地,图2V还示出了信息255v,其示出了当评估图2U的备选形状匹配242时ILDM系统的一些进一步的自动操作。如本文别处更详细讨论的,可以使用各种匹配标准来确定目标图像的估计的房间形状和具有相对于估计的房间形状的指定布置的候选对象的特定确定的房间形状之间的拟合,包括可选地生成和组合不同匹配标准的不同匹配得分。作为一个示例,可以测量估计的房间形状和确定的房间形状的一个或更多个(例如,所有的)匹配拐角之间的距离,诸如对于左上(西北)拐角中的两个拐角所示的234b,其中距离越小反映了匹配越好(并且在一些实施方式中,匹配分数越高),虽然在该示例中其他拐角未示出。可以类似地测量和评估它们匹配拐角的距离。作为另一个实例,可以测量估计的房间形状和确定的房间形状的一个或更多个(例如,所有的)对应的线框结构线之间的距离,诸如对应于北墙壁到地板的边界的两个线框所示的234c,具有越小的距离反映越好的匹配(并且在一些实施方式中,匹配分数越高),而该示例中的其它结构线未示出,可以类似地测量和评估它们在相应线之间的距离。作为又一个实例,可以测量估计的房间形状和确定的房间形状的对象的一个或更多个(例如,所有的)对应的3D边界框之间的距离,诸如,对于房间的左下侧的两个门道所示的234a,并且距离越小反映匹配越好(并且在一些实施方式中,匹配分数越高),尽管在其它实施方式中可以比较整个边界框区域(例如,使用交叉跨越联合距离测量),虽然在该示例中未示出其它结构元素对象,但是可以类似地测量和评估它们在相应的边界框部分之间的距离。作为另一个示例,可以测量估计的房间形状和确定的房间形状的一个或更多个(例如,所有的)对应的墙壁之间的距离,例如在房间形状的顶侧上的两个墙壁所示的234d,其中距离越小反映匹配越好(并且在一些实施方式中,匹配分数越高),尽管在该示例中其他墙壁未示出,但是可以类似地测量和评估它们在对应的墙壁之间的距离。可以访问和使用各种其它标准,无论补充或替代所示标准的一些或全部,如本文中别处更详细讨论的。在对于至少一些候选房间形状的备选形状匹配来评估一个或更多个标准之后,选择至少一个最佳匹配备选形状匹配以进一步用于目标图像的采集位置确定,诸如,根据最佳匹配备选形状匹配布置的相对位置,确定目标图像在估计的房间形状内的位置在确定的房间形状内出现的位置,从而对应于图2V所示的用于所示备选形状匹配的采集位置289v的位置。此外,一旦为这样的目标图像确定了采集位置,就可以在建筑物的平面图的更新版本上显示它,诸如,图2W的信息255w中的更新的平面图230v和265v所示。
已经参考图2A-图2W提供了各种细节,但是应当理解,所提供的细节是出于说明的目的而包括的非排他性示例,并且可以以其它方式执行其它实施方式,而没有一些或全部这样的细节。
作为非排他的示例性实施方式,ILDM系统的自动操作可以包括以下动作。从具有RGB视觉数据(但没有单独的深度数据)的一个或更多个目标图像开始,可选地从具有一个或更多个目标图像的进一步采集元数据开始,其可以包括图像捕获时间戳、相机IMU信号、基于相机SLAM的跟踪数据和/或图像房间标签(例如,由捕获其封闭房间的目标图像的用户提供)。此外,从使用矢量格式的2D或3D中的平面图开始,并且可选地在指定位置处以及在与任何目标图像的投影不同的图像投影中具有现有图像,和/或从与任何目标图像的图像投影不同的图像投影中的附加图像开始,目标图像具有相同类型的可选的进一步采集元数据。
自动操作可以包括对目标图像以及可选的附加图像以及可选的现有图像进行预处理,以在需要时解决相机内在和外在的问题,诸如,检测图像消失线和消失点,提取(如果立体图像)相机焦距和视场角,解决相对于图像中呈现的消失线的相机的偏航角角度,并且将图像再投影到球面空间中(新的摄像机姿态相对于地面平面是水平的)。
自动操作还可以包括为每个目标图像以及可选地为每个附加图像以及可选地为每个现有图像生成几何形状预测,包括以下:估计照相机所在的室内结构的房间形状几何形状(例如,使用基于卷积神经网络的房间形状估计器,诸如,地平线网(HorizonNet)和杜拉网(DuLaNet),以将房间形状几何形状近似为具有均匀房间高度的3D形状,相机可以在该形状的原点找到);可选地使用图像结构线框估计器(例如,LCNN)来预测图像结构线,并且在图像3D空间中投影这些线作为房间拐角候选对象;利用图像上的对象检测算法生成具有标签和对象图像描述符的2D对象边界框,然后将2D图像边界框射线投射到先前估计的3D房间形状上,并且生成3D对象的足迹,以表示它们的对象的空间信息,并利用3D边界框生成算法;可选地生成图像嵌入矢量(例如,使用深度神经网络模型),用于稍后在比较图像内容相似性和图像重叠中使用;以及可选地用一个或更多个房间类型(例如,卧室、厨房等)标记图像。
自动操作还可以包括生成每个目标图像与一个或更多个附加图像和/或现有图像之间的图像-图像关系,包括以下:可选地使用成对的图像之间的基于特征的图像匹配算法,例如SfM,来解决图像角度连接或成对图像位置信息(例如,图像A中的哪个方向连接到图像B中的哪个方向);以及可选地使用成对的图像之间的基于深度学习的图像共可见性算法来确定图像内容相似性(例如,用于稍后使用,假设共享高共可见性分数的图像具有在空间上彼此接近的高机会)。
自动操作还可以包括检索一组房间形状候选对象,在房间形状候选对象上试图定位每个目标图像以便确定目标图像的精确采集位置,房间形状候选对象可以从与平面图相关联的现有房间形状和/或为一组空间相关的附加图像估计的房间形状中获取。可以使用各种试探法来在目标图像对和附加图像之间或在目标图像和现有平面图中的区域之间产生二进制关系,包括以下:使用目标图像和成对图像/区域(如果可用,诸如通过自动图像分类算法和/或摄影者和/或后续注释器创建)的房间类型标签之间的相似性/重叠来聚集优选候选房间形状的列表;使用图像之间的时间关系(如果图像捕获时间戳元数据可用)来检索一组时间上相关的附加图像;使用基于特征匹配的图像对准算法来生成成对的或分组的图像相关性(例如,图像相对角度或二进制图像相关性);利用基于神经网络的图像比较算法生成成对图像到图像的相关性;使用在图像捕获过程期间收集的IMU元数据(如果可用)来给出图像角度连接;并且使用基于SLAM的相机跟踪算法(如果SLAM数据可用)产生图像空间关系。
自动操作还可以包括:对每个目标图像执行几何匹配到一个或更多个候选房间形状,以将目标图像的估计房间形状匹配到平面图上的房间的相应确定的房间形状或匹配到附加图像的相应估计的房间形状,以及将目标图像定位到单个房间形状(例如,产生目标图像的一个或更多个相机姿态采集位置,可选地连同每个相机姿态的置信度分数)。自动操作通常包括以下步骤:提出多个形状匹配选项(其基于候选房间形状空间中的目标图像相机姿态);计算提议的相机姿态的每个(提议的形状匹配位置)的分数;选择分数最高的相机姿态或使用阈值,获取多个相机姿态;以及细化所选择的一个或更多个相机姿态。
各种形状匹配选项的提议可以包括假设如果两个房间形状由同一相机在相同高度捕获(诸如,对于一个或更多个目标图像和在相同时间段期间同时捕获的一个或更多个附加图像),则它们具有相同的比例。房间形状的拐角被用于在目标图像的现有房间形状和候选房间形状之间产生具有不同形状取向的拐角拍摄选项(备选形状匹配)的集合。形状取向是通过将目标图像的水平消失角拍摄到成对的附加或现有图像或候选房间形状的消失角来产生的。因此,如果在目标图像中存在M个预测的房间拐角,在候选房间形状中存在N个房间拐角,并且从目标图像和成对的附加或现有图像有4个消失方向,则对于目标图像提出M*N*4个相机姿态。当以不一致的相机高度捕获2个图像时,可以通过从每个形状中选择2个控制拐角,并且使用该控制拐角来产生提议的比例和xyz,并且使用消失角对准用于校正提议的相机角度。
对于提议的相机姿态(提议的形状匹配位置)中的每一者计算分数可包括根据提议的相机姿态组合多个单独的分数(例如,取得每个单独的分数的加权和,从这些项中的每个提取描述符并使用机器学习模型来产生最终分数等)。单独的分数可以包括以下各项中的一个或更多个:拐角再投影得分,其中将候选房间形状再投影到目标图像空间中,将来自候选房间形状的经投影的房间拐角与来自原始目标图像现有房间形状的房间拐角进行比较,并且每个目标房间拐角与其最近的候选房间形状拐角匹配,使用每个匹配拐角对的距离和匹配的数量来生成拐角再投影分数(例如,匹配越近,分数越高);线框结构线再投影分数,其中候选房间形状的结构线被再投影到目标图像空间中,来自候选房间形状的投影的结构线与来自目标图像估计的房间形状的结构线相比较,并且每个目标图像结构线与其最近的候选房间形状结构线相匹配,使用每个匹配的结构线对的距离和匹配的数目来生成线框结构线再投影分数(例如,匹配越接近,得分越高);结构墙壁元素对象再投影分数,其中,来自候选房间形状的候选房间形状的3D对象边界框被再投影到目标图像估计的房间空间中,来自候选房间形状的投影对象边界框与来自目标图像估计房间形状的对象边界框相比较,并且每个目标图像对象边界框与其最近的候选房间形状对象边界框相匹配;基于交叉跨越联合和对象类型标签的一致性,使用每个匹配对象边界框对的距离;图像角度分数,其中生成从目标图像开始到附加/现有图像的离去角/着陆角,其中还使用不同的技术(例如,SfM、卷积神经网络等)为每对图像生成单独的离去角/着陆角,并且其中通过比较这两组角度计算分数(例如,差异越大,该分数的惩罚越多);图像内容匹配分数,其中生成给定图像对的图像内容相似性(例如,使用卷积神经网络);以及基于形状的边界交叉分数,其中候选房间形状的结构墙壁在目标图像的3D空间中再投影,并且投影的房间形状的结构墙壁与目标图像估计的房间形状的结构墙壁之间的失配被用于评估所提出的相机姿态。
一个或更多个选择的相机姿态的细化可以包括使用来自先前操作的目标图像的初始相机姿态(例如,使用拐角点匹配),以及使用一个或更多个步骤的组合来细化相机姿态。所述步骤可以包括以下步骤中的一个或更多个:使用拐角内点执行对准,其中距离阈值用于过滤来自特定再投影图像距离内的先前拐角匹配操作的所有匹配对(其中所得到的拐角对被称为拐角内点),并且加权最小二乘用于找到最佳相机位置xyz,来自目标图像估计房间形状(例如,由神经网络模型生成)的预测拐角的置信度分数用作加权最小二乘回归中的权重以生成比之前的相机姿态更准确的相机位置;使用目标图像和候选房间形状(例如,在地板上的水平线之间)的线框结构线预测的线匹配来执行对准,诸如,使用用于在某个再投影图像距离内从先前的线匹配操作中滤除所有匹配线的距离阈值(其中所得到的线对被称为线内点),以及使用用于找到最佳相机位置xyz的加权最小二乘法,来自目标图像的估计房间形状(例如,由神经网络模型生成)的预测结构线的置信度分数用作加权最小二乘法回归中的权重以生成比之前的相机姿态更准确的相机位置;以及执行使用图像法线预测的可区分的呈现优化方法,其中通过从初始相机姿态猜测开始在目标图像空间中呈现候选房间形状的像素级表面法线信息,将呈现的表面法线与从其图像空间中的目标图像估计的表面法线进行比较(例如,使用诸如任务分类法(Taskonomy)的基于神经网络的方法),对于较低代价函数值优化照相机姿态;计算代价值,迭代优化像机姿态,直至代价值达到局部最小值。
已经对于该示例性非排他性实施方式提供了各种细节,但是应当理解,所提供的细节是出于说明性目的而包括在内,并且可以以没有一些或所有这些细节的其它方式来执行其它实施方式。
图3是示出执行ILDM系统340的实现的一个或更多个服务器计算系统300以及执行ICA系统387和MIGM系统388的实现的一个或更多个服务器计算系统380的实施方式的框图。服务器计算系统和ILDM系统可以使用形成电子电路的多个硬件组件来实现,多个硬件组件适于并且配置为:当在组合操作中时,执行本文中描述的至少一些技术。在所示实施方式中,每个服务器计算系统300包括一个或更多个硬件中央处理单元(“CPU”)或其它硬件处理器305、各种输入/输出(“I/O”)组件310、存储(storage)320和存储器(memory)330,所示I/O组件包括显示器311、网络连接312、计算机可读介质驱动器313和其它I/O装置315(例如,键盘、鼠标或其他指点装置、麦克风、扬声器、GPS接收器等)。每个服务器计算系统380可以包括类似于服务器计算系统300的硬件组件,包括一个或更多个硬件CPU处理器381、各种I/O组件382、存储(storage)385和存储器386,但是为了简洁起见,在服务器380中省略了服务器300的一些细节。
服务器计算系统300和执行ILDM系统340可以经由一个或更多个网络399(例如,因特网,一个或更多个蜂窝电话网络等)与其他计算系统和装置通信,诸如,用户客户端计算装置390(例如,用于查看平面图、相关图像和/或其他相关信息)、ICA和MIGM服务器计算系统380、一个或更多个移动图像采集装置360,可选地接收和使用平面图和确定的图像采集位置的其他可导航装置395,以及可选地其他生成的用于导航目的的信息(例如,由半自主或完全自主的车辆或其他装置使用),以及可选地未示出的其他计算系统(例如,用于存储和提供与建筑物相关的附加信息;用于捕获建筑物内部数据;用于存储和向客户端计算装置提供信息,诸如,与图像及其所包含的建筑物或其它周围环境相关联的附加补充信息;等)。
在所示实施方式中,ILDM系统340的实施方式在存储器330中执行,以便执行至少一些所描述的技术,诸如,通过使用处理器305以配置处理器305和计算系统300以执行实现那些所描述的技术的自动操作的方式来执行系统340的软件指令。ILDM系统的所示实施方式可以包括未示出的一个或更多个组件,以各自执行ILDM系统的功能的部分,并且存储器还可以可选地执行一个或更多个其他程序335。作为一个具体示例,在至少一些实施方式中,ICA和/或MIGM系统的副本可以作为其他程序335之一执行,诸如,代替服务器计算系统上的ICA系统387和MIGM系统388或除了服务器计算系统上的ICA系统387和MIGM系统388之外,执行ICA和/或MIGM系统的副本。ILDM系统340还可以在其操作期间在存储器320上(例如,在一个或更多个数据库或其它数据结构中)存储和/或检索各种类型的数据,诸如各种类型的平面图信息和其它建筑物映射信息326(例如,生成并保存的2D平面图和那些平面图上的墙壁元素和其它元素的位置,生成并保存2.5D和/或3D模型平面图,包括高度信息、与相关平面图一起使用的建筑物和房间尺寸、具有指定位置的现有图像、注释信息等)、关于其采集位置将被确定的目标图像的信息321以及关于这样确定的采集位置的相关联的信息325、关于目标图像的估计的3D房间形状的信息323以及墙壁元素信息(例如,如由ILDM系统在其自动操作期间生成的)、关于客户端计算装置390的用户和/或与ILDM交互的移动装置360的运营商用户的用户信息328,以及可选地各种其它类型的附加信息329。ICA系统387和/或MIGM系统388可以类似地在存储385(例如,在一个或更多个数据库或其它数据结构中)的操作期间在存储385上存储和/或检索各种类型的数据,并且向ILDM系统340提供一些或所有这样的信息以供其使用(无论以推和/或拉方式),诸如图像393(例如,所获取的360°全景图像)和由ICA系统生成并且被MIGM系统使用以生成平面图的图像间取向链接信息396、由MIGM系统生成的最终平面图信息和可选的其他建筑物映射信息391(例如,类似于或与信息326相同)、由MIGM系统生成的作为生成平面图的一部分的附加信息,诸如所确定的房间形状392和图像位置信息394,以及可选地各种类型的附加信息397(例如,与由ICA系统捕获的一个或更多个建筑物内部或其他环境的展示或其他用途相关的各种分析信息)。
用户客户端计算装置390(例如,移动装置)、移动图像采集装置360、其他可导航装置395和其他计算系统中的一些或全部可以类似地包括对于服务器计算系统300和380所示的相同类型的组件中的一些或全部。作为一个非限制性示例,移动图像采集装置360每个被示出为包括一个或更多个硬件CPU361、I/O组件362、存储365、成像系统364、IMU硬件传感器369和存储器367,查看器和在存储器367内执行的一个或更多个客户端应用程序368(例如,专用于ILDM系统和/或ICA系统的应用程序)中的一个或两个,诸如,参加与ILDM系统340、ICA系统387和/或其它计算系统的通信。虽然没有对于其它可导航装置395或客户端计算系统390示出特定组件,但将了解,它们可以包含类似和/或附加组件。
还应当理解,图3中包括的计算系统300和380以及其它系统和装置仅仅是说明性的,而不是要限制本发明的范围。系统和/或装置可以替代地每个都包括多个交互计算系统或装置,并且可以连接到未具体示出的其他装置,包括经由蓝牙通信或其他直接通信,经由一个或更多个网络,诸如因特网、经由网站、或经由一个或更多个专用网络(例如,移动通信网络等)。更一般地,装置或其它计算系统可以包括硬件的任何组合,其可以交互和执行描述类型的功能,可选地当用特定软件指令和/或数据结构编程或以其它方式配置时,包括但不限于台式计算机或其它计算机(例如,平板电脑、平板等)、数据库服务器、网络存储装置和其它网络装置、智能电话和其它蜂窝电话、消费电子装置、可穿戴装置、数字音乐播放器装置、手持游戏装置、PDA、无线电话、因特网装置和包括适当通信能力的各种其它消费产品。此外,在一些实施方式中,由所示ILDM系统340提供的功能可以分布在各种组件中,可以不提供ILDM系统340的一些所述功能,和/或可以提供其它附加功能。
还应当理解,尽管各种项目示出为在使用时被存储在存储器中或被存储在存储中,但是出于存储器管理和数据完整性的目的,可以在存储器和其它存储装置之间传送这些项目或它们的部分。或在其它实施方式中,软件组件和/或系统中的一些或全部可在另一装置上的存储器中执行,并经由计算机间通信与所示的计算系统通信。因此,在一些实施方式中,当由一个或更多个软件程序(例如,由在服务器计算系统300上执行的ILDM系统340)和/或数据结构配置时,例如通过执行一个或更多个软件程序的软件指令和/或通过存储这样的软件指令和/或数据结构,以及诸如执行如在流程图和本文中其他公开中描述的算法,可以由包括一个或更多个处理器和/或存储器和/或存储的硬件装置来执行所描述的技术中的一些或全部。此外,在一些实施方式中,系统和/或组件中的一些或全部可以以其它方式来实现或提供,诸如,通过由在固件和/或硬件(例如,而不是由配置特定CPU或其它处理器的软件指令整体或部分实现的装置)中部分或全部实现的一个或更多个装置组成,包括但不限于一个或更多个专用集成电路(ASIC)、标准集成电路、控制器(例如,通过执行适当的指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑装置(CPLD)等。组件、系统和数据结构中的一些或全部也可以存储(例如,作为软件指令或结构化数据)在诸如硬盘或闪存驱动器或其它非易失性存储装置、易失性或非易失性存储器(例如,RAM或闪存RAM)、网络存储装置或便携式介质制品(例如,DVD盘、CD盘、光盘、闪存装置等)将由适当的驱动器或经由适当的连接来读取。在一些实施方式中,系统、组件和数据结构还可以经由生成的数据信号(例如,作为载波或其它模拟或数字传播信号的一部分)在各种计算机可读传输介质上传输,计算机可读传输介质包括基于无线和基于有线/电缆的介质,并且可以采取各种形式(例如,作为单个或多路复用模拟信号的一部分,或作为多个离散数字包或帧)。在其它实施方式中,这种计算机程序产品也可以采用其它形式。因此,本公开的实施方式可以用其它计算机系统配置来实现。
图4示出了ICA系统例程400的实施方式的示例流程图。该例程可以由例如图1A的ICA系统160、图3的ICA系统387和/或如本文另外描述的ICA系统执行,诸如以获取360°全景图像和/或建筑物或其它结构内的其它图像(例如,用于随后生成相关的平面图和/或其它映射信息,诸如通过MIGM系统例程的实施方式,使用关于图5A-图5B所示的这种例程的一个示例)。尽管关于在特定位置处获取特定类型的图像来讨论示例例程400的部分,但是将理解,可以使用该例程或类似例程来获取视频或其它数据(例如,音频)和/或不是全景的其它类型的图像,无论是代替这种全景图像或除了这种全景图像之外的其它类型的图像。此外,虽然所示的实施方式从目标建筑物的内部获取和使用信息,但是应当理解,其它实施方式可以对其它类型的数据执行类似的技术,包括对非建筑物结构和/或对一个或更多个感兴趣的目标建筑物外部的信息。此外,可以在用户用来获取图像信息的移动装置上和/或由远离这种移动装置的系统执行一些或全部例程。
例程的所示实施方式在框405处开始,在框405处接收指令或信息。在框410,例程确定所接收的指令或信息是否指示获取表示建筑物内部的数据,并且如果不是,则继续到框490。否则,例程进行到框412以接收指示(例如,来自移动图像采集装置的用户)以在第一采集位置开始图像获取过程。在框412之后,例程进行到框415,以便执行采集位置图像获取活动,以便获取感兴趣的目标建筑物内部中的采集位置的360°全景图像,诸如提供围绕垂直轴的至少360°的水平覆盖。该例程还可以可选地从用户获取关于采集位置和/或周围环境的注释和/或其它信息,诸如用于稍后在呈现关于采集位置和/或周围环境的信息中使用。
在框415完成之后,例程继续到框420,以确定是否存在更多的获取图像的采集位置,例如基于由移动装置的用户所提供的相应信息。如果是,则例程继续到框422,以便在移动装置沿着远离当前采集位置的行进路径并朝向建筑物内部内的下一个采集位置移动期间,可选地启动链接信息(诸如加速度数据、可视数据等)的捕获。如本文中别处所述,捕获的链接信息可以包括在这种移动期间记录的附加传感器数据(例如,来自移动装置或由用户携带的其他装置上的一个或更多个IMU或惯性测量单元)和/或附加视觉信息(例如,全景图像、其它类型的图像、全景或非全景视频等)。可以响应于来自移动装置的用户的显式指示或基于从移动装置记录的信息的一个或更多个自动分析来执行启动对这种链接信息的捕获。此外,在一些实施方式中,在移动到下一个采集位置期间,该例程还可以可选地监视移动装置的运动,并且向用户提供关于移动装置的运动、传感器数据和/或被捕获的视觉信息的质量、关联的照明/环境条件、捕获下一个采集位置的可取性以及捕获链接信息的任何其他合适方面的一个或更多个引导提示。类似地,例程可以可选地从用户获取关于行进路径的注释和/或其它信息,诸如,用于稍后在呈现关于该行进路径的信息或由此产生的全景图像间连接链接中使用。在框424,例程确定移动装置已经到达下一个采集位置(例如,基于来自用户的指示,基于用户停止至少预定时间量的向前移动等),用作新的当前采集位置,并且返回到框415,以便执行对于新的当前采集位置的采集位置图像采集活动。
如果在框420中确定没有任何获取当前建筑物或其它结构的图像信息的更多的采集位置,则例程进行到框425,以可选地分析建筑物或其它结构的采集位置信息,诸如识别可能在建筑物内部获取的附加覆盖范围(和/或其它信息)。例如,ICA系统可以向用户提供关于在捕获多个采集位置期间获取的信息和可选地相应的链接信息的一个或更多个通知,诸如,如果它确定所记录的信息的一个或更多个段具有不充分的或不期望的质量,或看起来没有提供建筑物的完整覆盖范围。在框425之后,例程继续到框435,以在360°全景图像随后用于生成相关的映射信息(例如,将它们置于球形格式中,确定图像的消失线和消失点等)之前,可选地对所获取的360°全景图像进行预处理。在框477中,图像和任何相关的生成或获取的信息被存储以供以后使用。
如果在框410中确定在框405中陈述的指令或其它信息不是要获取呈现建筑物内部的图像和其它数据,则例程改为继续到框490以适当执行任何其它指示的操作,诸如任何内务处理任务,以配置要在系统的各种操作中使用的参数(例如,至少部分地基于由系统的用户指定的信息,诸如捕获一个或更多个建筑物内部的移动装置的用户、ICA系统的运营商用户等),以获取并存储关于系统用户的其它信息,以响应对所生成和所存储的信息的请求等。
在框477或490之后,例程进行到框495以确定是否继续,诸如直到接收到终止的明确指示,或仅在接收到要继续的明确指示时才进行。如果确定继续,则例程返回到框405以等待额外的指令或信息,并且如果不是,则前进到步骤499并结束。
图5A-图5B示出了映射信息生成管理器(MIGM)系统例程500的流程图的示例性实施方式。例如,可以通过执行图1A的MIGM系统160、图3的MIGM系统388和/或如本文中别处描述的MIGM系统来执行该例程,诸如至少部分地基于所定义区域的图像来为所定义区域生成平面图和可选的其他映射信息。在图5A-图5B的示例中,所生成的映射信息包括建筑物(诸如,房屋)的2D平面图和3D计算机模型平面图,但是在其他实施方式中,可以为其他类型的建筑物确定和生成其他类型的映射信息并以其他方式使用,如本文中别处所讨论的。
例程的所示实施方式在框505处开始,在框505处接收信息或指令。例程继续到框510,以确定在框505中接收到的指令是否指示为所指示的建筑物生成映射信息,并且如果是,则例程继续执行框515-588以这样做,否则继续到框590。
在框515中,例程确定图像信息是否已经可用于建筑物,或是否需要获取这样的信息。如果在框515中确定需要获取信息,则例程继续到框520以获取这样的信息,可选地等待一个或更多个用户或装置在整个建筑物中移动并且在建筑物的多个房间中的多个采集位置处获取全景或其他图像,并且可选地进一步分析关于它们的采集的图像和/或元数据信息以互连图像,如本文中别处更详细地讨论的。图4提供用于执行这样的图像采集的ICA系统例程的一个示例实施方式。如果在框515中确定不需要获取图像,则例程继续到框530,以从建筑物的多个房间中的多个采集位置获取现有的全景或其它图像,可选地连同图像的互连信息以及与采集位置之间的移动相关的元数据信息的采集,诸如在某些情况下可能连同相应的指令一起在框505中已经被提供。
在框520或530之后,例程继续到框535以任选地获取关于建筑物的附加信息,诸如来自在采集和可选地分析图像的期间执行的活动和/或来自一个或更多个外部源(例如,在线数据库、由一个或更多个终端用户提供的信息等),这种附加信息可以包括例如建筑物的外部尺寸和/或形状、与建筑物内的特定位置(可选地,对于与获取的全景图像或其它图像的采集位置不同的位置)对应的获取的附加图像和/或注释信息、与建筑物外部等的特定位置(例如,建筑物周围)对应的获取的附加图像和/或注释信息。
在框535之后,例程继续到框550,对于建筑物内具有一个或更多个采集位置和相关联的获取图像的每个房间,诸如以自动方式根据房间内拍摄的图像中的数据以及可选地其采集位置的房间内的指定位置来确定房间的房间形状。框550的操作还可以包括使用图像中的视觉数据和/或用于它们的采集元数据来为建筑物中的每个房间确定进出房间的任何连接通道(例如,以自动方式),以及房间中的任何墙壁元素及其位置(例如,以自动方式),诸如窗户、墙壁间边界等。框550的操作还包括使用在框550中确定的一些或全部其它信息来确定房间的估计房间形状。在框550之后,例程继续到框565,在框565中,其使用所确定的房间形状来创建初始2D平面图,诸如通过连接它们各自的房间中的房间间通道,通过可选地围绕图像的确定的采集位置定位房间形状(例如,如果采集位置是相互连接的),以及通过可选地应用一个或更多个约束或优化。这种平面图可以包括例如用于各种房间的相对位置和形状信息,而不提供用于各个房间或建筑物作为整体的任何实际尺寸信息,并且还可以包括建筑物的多个链接或相关联的子图(例如,以反映不同的楼层、层、截面等)。该例程还将门、墙壁开口和其它识别的墙壁元素在平面图上的位置相关联。
在框565之后,例程可选地执行一个或更多个步骤575-580,以确定附加信息并将附加信息与平面图相关联。在框575中,该例程可选地估计一些或所有房间的尺寸,诸如从图像和/或它们的采集元数据的分析或从建筑物的外部获取的总体尺寸信息中估计尺寸,并且将估计的尺寸与平面图相关联。应当理解,如果足够详细的尺寸信息可用,则可以从平面图生成建筑图、蓝色印刷品等。在框575之后,例程继续到框580,以可选地将进一步的信息与平面图(例如,与建筑物内的特定房间或其它位置)相关联,诸如具有指定位置和/或注释信息的附加现有图像。在框585中,该例程进一步估计一些或所有房间中的墙壁的高度,例如从图像的分析和图像中已知对象的可选尺寸,以及当获取图像时关于相机的高度信息,并且进一步使用这些信息来生成建筑物的3D计算机模型平面图,其中2D和3D平面图彼此相关联。
在框585之后,例程继续到框588,以存储所生成的映射信息和可选的其他所生成的信息,并且可选地进一步使用所生成的映射信息,诸如以提供所生成的2D平面图和/或3D计算机模型平面图,以便在一个或更多个客户端装置上显示,将所生成的信息提供给一个或更多个其他装置,以便在这些装置和/或相关联的车辆或其他实体等的自动导航中使用。
如果在框510中确定在框505中接收的信息或指令不是要为所指示的建筑物生成映射信息,则例程继续到框590以适当执行一个或更多个其它所指示的操作。这样的其它操作可以包括例如接收和响应先前生成的平面图和/或其它生成的信息的请求(例如,请求ILDM系统使用此类信息,请求在一个或更多个客户端装置上显示这种信息,请求提供这种信息以将其提供给一个或更多个其它装置以在自动导航中使用等),获取和存储有关建筑物的信息以供后续操作使用(例如,有关尺寸、房间数量或类型、总平方英尺、相邻或附近的其他建筑物、相邻或附近的植被、外部图像等的信息等)等。
在框588或590之后,例程继续到框595,以确定是否继续,诸如直到接收到要终止的明确指示,或仅在接收到要继续的明确指示时才继续。如果确定继续,则例程返回到框505以等待并接收附加指令或信息,并且否则继续到框599并结束。
图6A-图6B示出了用于图像位置确定管理器(ILDM)系统例程600的流程图的示例性实施方式。该例程可以通过例如执行图1A的ILDM系统140、图3的ILDM系统340和/或参照图2P-图2W和本文中其它地方描述的ILDM系统来执行,诸如以至少部分地基于对图像内容的分析并使用相关联的房间形状来执行与图像的确定的采集位置有关的自动操作,以及随后以一种或多种自动方式使用所确定的采集位置信息。在图6A-图6B的示例中,相对于建筑物(诸如房屋)的平面图来确定采集位置,但是在其它实施方式中,其它类型的映射信息可以用于其它类型的结构或用于非结构位置,并且所确定的采集位置信息可以以不同于关于例程600所讨论的其它方式来使用,如本文中别处所讨论的。
例程的所示实施方式在框605处开始,在框605处接收信息或指令。例程继续到框610以确定在框605中接收的指令是否指示确定所指示的建筑物的目标图像的采集位置,并且如果是,则例程继续执行框612-688以这样做,否则继续到框690。
在框612中,例程确定是从建筑物的平面图还是从为建筑物获取的附加图像(例如,在与目标图像相同的时间段内同时发生)来使用房间形状。如果从附加图像中,例程继续进行到框617,以检索那些多个附加图像,并将它们添加到图像组中,用于随后的3D房间形状估计确定(除非已经为附加图像估计了房间形状,在这种情况下,检索那些估计的房间形状),否则继续进行到框615,以检索建筑物的平面图,该平面图具有关于房间的3D房间形状和房间类型的关联信息(并且可选地包括关于墙壁结构元素的3D边界框和/或的对象类型,和/或关于房间形状的线框结构线等),以及可选地关于在平面图上具有指定位置的现有关联图像的信息,并且选择房间形状作为包含目标图像的采集位置的候选对象。
在框615或617之后,例程继续到框619,在框619中,其获取目标图像并且可选地获取目标图像的元数据(例如,获取时间、关于为建筑物获取的其它图像的采集顺序、IMU数据、基于SLAM的跟踪数据、房间类型标签等中的一个或更多个),诸如以在框605中接收信息或以其它方式检索存储的信息。并且将目标图像添加到图像组以用于估计的房间形状确定。在框620中,例程然后分析图像组中的每个图像的视觉内容,以确定那些图像的消失线和消失点信息,并且如果还没有执行,则对平面图上具有指定位置的任何现有图像也同样如此。在框625中,例程然后分析图像组中的每个图像的视觉内容以估计包含图像的房间的3D房间形状几何形状,包括确定结构墙壁元素特征的3D边界框,可选地估计线框结构房间边界线,可选地生成房间类型标签,可选地生成结构墙壁元素的对象类型标签,以及可选地生成图像嵌入矢量以编码关于图像特征和/或图像属性的信息。
在框625之后,例程继续到框640,以确定候选房间形状是来自附加图像还是来自平面图,并且如果前者进行到框645,以选择来自框625的附加图像的估计的房间形状,以用作用于包含目标图像的采集位置的候选对象。在框645之后,或如果在框640中确定候选房间形状来自平面图,则例程继续到框650,其中,如果图像组包括附加图像和/或如果在平面图上存在具有指定位置的现有图像,则它可选地执行包括确定每对目标图像与那些其它图像之一的关系的操作,诸如以使用该对图像的视觉内容的特征匹配来确定图像之间的角度连接,和/或使用图像的共视元素来确定用户的图像的整体图像相似性。在框650之后,例程继续到框655,在框655,它可选地使用目标图像的采集元数据来识别一个或更多个优选的房间形状候选对象,诸如基于房间类型标签匹配、目标图像获取顺序等中的一个或更多个。在框660中,例程然后提议将目标图像的估计房间形状与一个或更多个房间形状候选对象的匹配(如果可用,则使用优选候选对象,诸如在其他候选对象之前或替代其他候选对象),包括匹配拐角并且使用消失线来为每个房间形状候选对象生成具有不同候选房间形状布置的多个可能的备选形状匹配。在框665中,然后,例程为每个提议的匹配生成匹配分数,诸如通过使用一个或更多个评分标准,并且如果使用多个评分标准,则组合它们的分数,其中评分标准可选地基于拐角再投影、对象边界框再投影、图像角度信息、图像相似性和基于形状的边界交叉中的一个或更多个,其中一个或更多个最佳匹配是基于分数选择的,并且用于在一个或更多个最佳匹配的房间形状内生成目标图像采集位置(例如,采集位置和可选的取向)的初始确定。
在框670中,例程然后生成对一个或更多个最佳匹配的房间形状内的目标图像采集位置的更新的确定,诸如通过使用基于拐角内点的对准、基于线框结构线内点的对准以及使用图像正常信息的可区分的呈现中的一个或更多个。在框685中,例程随后可选地结合对于为建筑物采集的其他图像的其他相关采集位置确定来优化一个或更多个最佳匹配的房间形状内的目标图像采集位置的更新的确定,诸如使用与图像之间的关系有关的附加信息来调整它们的最终采集位置。在框685之后,例程继续到框688,以存储在框612-685中确定和生成的信息,并且可选地在平面图(或平面图摘录)上显示图像在其封闭房间中的确定的图像采集位置信息,尽管在其它实施方式中,所确定的信息可以以其它方式使用(例如,用于一个或更多个装置的自动导航)。
如果在框610中确定在框605中接收的信息或指令不是要确定目标图像的采集位置,则例程转而继续到框690,以适当执行一个或更多个其它指示的操作。这样的其他操作可以包括例如接收和响应对先前确定的图像采集位置信息和/或对相关联的目标图像的请求(例如,请求在一个或更多个客户端装置上显示这种信息,请求这种信息以将这种信息提供给一个或更多个其他装置以便在自动导航中使用等),获取和存储有关建筑物的信息以在稍后的操作中使用(例如,有关平面图和平面图中的房间的相关的墙壁元素位置的信息等)等。
在框688或690之后,例程继续到框695,以确定是否继续,诸如直到接收到要终止的明确指示,或仅在接收到明确继续指示时才继续。如果确定继续,则例程返回到框605以等待并接收附加指令或信息,否则继续到框699并结束。
图7示出了建筑物映射查看器例程700的流程图的示例性实施方式。该例程可以通过例如执行图1A的映射查看器用户客户端计算装置175及其软件系统(未示出)、图3的客户端计算装置390和/或如本文中别处所述的映射信息查看器或呈现系统来执行,诸如以接收和显示用于包括一个或更多个确定的图像采集位置的视觉指示的限定区域的映射信息(例如,2D或3D平面图),以及可选地显示与映射信息中的特定位置相关联的附加信息(例如,图像)。在图7的示例中,所呈现的映射信息是对于建筑物(诸如房屋)的内部的,但是在其它实施方式中,可以对于其它类型的建筑物或环境呈现其它类型的映射信息,并且以其它方式使用,如本文中别处所讨论的。
例程的所示的实施方式在框705处开始,在框705处接收指令或信息。在框710,例程确定所接收的指令或信息是否指示显示或以其它方式呈现表示建筑物内部的信息,并且如果不是,则继续到框790。否则,例程进行到框712以检索建筑物的平面图和/或其它生成的映射信息,以及可选地检索建筑物内部和/或建筑物外部的周围位置的相关联的链接信息的指示,并选择所检索的信息的初始视图(例如,平面图的视图)。在框715中,例程然后显示或以其他方式呈现所检索的信息的当前视图,并且在框717中等待用户选择。在框717中的用户选择之后,如果在框720中确定用户选择对应于当前建筑物区域(例如,以改变当前视图),则例程继续到框722,以根据用户选择更新当前视图,并且然后返回到框715,以相应地更新所显示的或以其他方式所呈现的信息。用户选择和当前视图的相应更新可以包括例如显示或以其他方式呈现用户选择的一条关联的链接信息(例如,与确定的采集位置的所显示的视觉指示相关联的特定图像),改变当前视图的显示方式(例如,放大或缩小;若合适,则旋转信息;选择要显示或以其它方式呈现的平面图的新部分,诸如新部分的一些或所有在先前不可见,或代之以新部分是先前可见信息的子集;等)。
如果在框710中确定在框705中接收的指令或其它信息不是要呈现表示建筑物内部的信息,则例程改为继续到框790以适当执行任何其它指示的操作,诸如任何内务处理任务,以配置要在系统的各种操作中使用的参数(例如,至少部分地基于由系统的用户指定的信息,诸如捕获一个或更多个建筑物内部的移动装置的用户、ILDM系统的运营商用户等),以获取并存储关于系统的用户的其它信息,以响应对所生成和存储的信息的请求等。
在框790之后,或如果在框720中确定用户选择不对应于当前建筑物区域,则例程进行到框795以确定是否继续,诸如直到接收到要终止的明确指示,或仅在接收到要继续的明确指示时才进行。如果确定继续(例如,如果用户在框717中做出与要呈现的新位置相关的选择),则例程返回到框705以等待附加指令或信息(或如果用户在框717中做出与要呈现的新位置相关的选择,则继续进行到框712),并且如果不是,则进行到步骤799并结束。
在以下条款中进一步描述了本文描述的非排他性示例性实施方式。
A01.一种计算机实现的方法,包括:
由一个或更多个计算系统接收在具有多个房间的建筑物中获取的目标图像,其中,所述目标图像是具有多个周围墙壁的视觉覆盖的全景图像;
由所述一个或更多个计算系统在所述建筑物的平面图上确定所述目标图像的采集位置,包括:
由所述一个或更多个计算系统获取所述多个房间的确定的三维(“3D”)房间形状;
由所述一个或更多个计算系统并且至少部分地基于分析所述目标图像的视觉内容,生成在所述目标图像中可见的估计的3D房间形状以及所述目标图像的所述估计的3D房间形状内的指示位置;
由所述一个或更多个计算系统至少部分地基于为选择的一个备选形状匹配确定的匹配度来为所述估计的3D房间形状选择多个备选形状匹配中的一个备选形状匹配,其中,所述多个备选形状匹配各自包括所确定的3D房间形状中的一个相对于所述估计的3D房间形状的布置,并且具有至少部分地基于所述一个确定的3D房间形状与所述估计的3D房间形状的所述布置的拟合的确定的匹配度,并且其中,所述选择的一个备选形状匹配的所述一个确定的3D房间形状是所述多个房间中的识别的房间;
由所述一个或更多个计算系统,并且通过使用所述确定的3D房间形状相对于所述估计的3D房间形状的所述选择的一个备选形状匹配的所述布置,在所述估计的3D房间形状内定位关于所述布置的所述指示位置,并且基于所述识别的房间内所述定位的指示位置,在所述平面图上识别所述目标图像的所述采集位置;以及
由所述一个或更多个计算系统提供关于所述识别的房间中所述目标图像的所述确定的采集位置的信息,以使得能够在所述建筑物的所述平面图上显示所述确定的采集位置。
A02.根据条款A01所述的计算机实现的方法,其中,在所述平面图上确定所述目标图像的所述采集位置包括由所述一个或更多个计算系统确定所述目标图像在所述确定的采集位置处的取向,所述取向识别至少从所述确定的采集位置开始的起始视图的至少两个维度上的方向,并且其中,所述提供所述信息包括由所述一个或更多个计算系统并且在客户端装置上呈现所述建筑物的所述平面图的至少一些的显示,所述显示包括所述识别的房间并且覆盖所述确定的采集位置的视觉指示和所述确定的取向的视觉指示。
A03.根据条款A01-A02中任一项所述的计算机实现的方法,其中,生成所述估计的3D房间形状包括:
由所述一个或更多个计算系统确定围绕所述目标图像的所述采集位置的周围房间的房间形状信息,所述房间形状信息包括对所述周围房间的至少一些墙壁建模的3D点云、或表示所述周围房间的所述至少一些墙壁的平面表面或表示所述周围房间的所述至少一些墙壁的边界的线框结构线中的至少一个,并且还包括所述周围房间的结构墙壁元素,所述结构墙壁元素包括至少窗户、门道和非门道墙壁开口,以及
使用所述估计的3D房间形状的所述确定的房间形状信息。
A04.如条款A03所述的计算机实现的方法,其中,生成所述估计的3D房间形状包括使用关于所述目标图像的获取时间的信息,并且还包括由所述一个或更多个计算系统确定附加的房间形状信息,所述附加的房间形状信息包括以下中的至少一个:围绕所述结构墙壁元素的3D边界框、或所述周围房间的至少一个房间类型标签、或所述结构墙壁元素中的每个的至少一个对象类型标签、或由经过训练的神经网络为所述目标图像生成的用于对关于所述周围房间的特征的信息进行编码的至少一个嵌入矢量。
A05.如条款A03-A04中任一项所述的计算机实现的方法,其中,所述确定所述周围房间的所述房间形状信息包括由所述一个或更多个计算系统并且使用一个或更多个经过训练的神经网络来分析所述目标图像的所述视觉内容。
A06.如条款A01-A05中任一项所述的计算机实现的方法,其中,所述确定所述目标图像的所述采集位置还包括由所述一个或更多个计算系统确定所述估计的3D房间形状的所述多个备选形状匹配,包括:
由所述一个或更多个计算系统选择所述确定的3D房间形状中的一个或更多个作为用于与所述估计的3D房间形状相匹配的候选房间形状;以及
由所述一个或更多个计算系统并且对于所述选择的候选房间形状中的每个,对于所述一个或更多个备选形状匹配中的每个备选形状匹配,通过将所述选择的备选形状的一个或更多个拐角与所述估计的3D房间形状的一个或更多个角相匹配,并且通过使用所述目标图像的消失线角度信息将所述选择的候选房间形状的一个或更多个墙壁与所述估计的3D房间形状的一个或更多个墙壁对齐,并且通过调整所述估计的3D房间形状或所述选择的候选房间形状中的至少一个的尺寸以相互反映,确定所述选择的候选房间形状相对于所述估计的3D房间形状的布置来生成所述多个备选形状匹配中的一个或更多个备选形状匹配。
A07.根据条款A06所述的计算机实现的方法,其中,所述选择所述一个或更多个确定的3D房间形状包括使用关于所述目标图像的获取时间的信息,并且还包括由所述一个或更多个计算系统识别所述确定的3D房间形状的优选子集以用作所述选择的候选房间形状,包括使用以下中的至少一个:
所述估计的3D房间形状与所述选择的候选房间形状的匹配的房间类型标签;或
所述建筑物的一个或更多个房间的与所述建筑物中所述目标图像之前和/或之后获取的一个或更多个附加图像相关联的一个或更多个确定的3D房间形状;或
所述建筑物的一个或更多个房间的与具有高于第一定义的匹配阈值与所述目标图像的特征相匹配的特征的一个或更多个附加图像相关联的一个或更多个确定的3D房间形状;或
所述建筑物的一个或更多个房间的与通过高于第二定义的匹配阈值匹配的共同可见区域与所述目标图像具有整体相似性的一个或更多个附加图像相关联的一个或更多个确定的3D房间形状;或
所述建筑物的一个或更多个房间的与一个或更多个附加图像相关联的一个或更多个确定的3D房间形状,其中每对所述目标图像之间的多个确定方向和所述附加图像中的一个匹配高于第三定义的匹配阈值,其中每对之间的所述多个确定的方向中的一个基于该对图像的视觉内容,并且每对之间的所述多个确定的方向中的另一个至少部分地基于来自采集所述目标图像的采集元数据。
A08.如条款A06-A07中任一项所述的计算机实现的方法,其中,所述选择所述一个或更多个确定的3D房间形状包括选择所述确定的3D房间形状中的每个作为候选房间形状,并且其中,为所述选择的候选房间形状中的每个生成所述一个或更多个备选形状匹配包括为所述选择的候选房间形状的拐角与所述估计的3D房间形状的拐角和所述目标图像的消失线角度的每个组合生成单独的备选形状匹配。
A09.如条款A06-A08中任一项所述的计算机实现的方法,其中,所述至少部分地基于为所述选择的一个备选形状匹配的确定的匹配度来为所述估计的3D房间形状选择所述多个备选形状匹配中的一个包括:由所述一个或更多个计算系统并且对于所述选择的一个备选形状匹配,基于一个或更多个匹配标准,确定在所述选择的一个备选形状匹配的所述布置中所述选择的一个备选形状匹配的所述估计的3D房间形状与所述确定的3D房间形状之间的匹配分数,其中所述一个或更多个匹配标准包括以下中的至少一个:
在所述布置中所述估计的3D房间形状与所述确定的3D房间形状的匹配的拐角之间的确定的距离;或
在所述布置中所述估计的3D房间形状与所述确定的3D房间形状的匹配的结构墙壁位置之间的确定的距离;或
在所述布置中所述估计的3D房间形状与所述确定的3D房间形状的匹配的线框结构线之间的确定的距离;或
在所述布置中所述估计的3D房间形状与所述确定的3D房间形状中的结构墙壁元素的匹配的3D边界框之间的确定的距离;或
在所述布置中所述估计的3D房间形状与所述确定的3D房间形状中的地板元素的匹配的3D边界框之间的确定的距离。
A10.如条款A09所述的计算机实现的方法,其中,所述匹配分数的确定进一步对于所述多个备选形状匹配中的每个执行并且包括组合多个匹配标准的单独分数,并且其中对所述估计的3D房间形状的备选形状匹配中的一个的选择还至少部分地基于所述选择的具有最高确定的匹分数的一个备选形状匹配。
A11.如条款A09-A10中任一项所述的计算机实现的方法,还包括由所述一个或更多个计算系统基于以下中的至少一个来更新所述一个确定的3D房间形状相对于所述估计的3D房间形状的所述选择的一个备选形状匹配的布置:
使用最小二乘回归来减小所述选择的一个备选形状匹配的所述估计的3D房间形状与所述确定的3D房间形状的所述匹配拐角之间的确定的距离;或
使用最小二乘回归来减小所述选择的一个备选形状匹配的所述估计的3D房间形状与所述确定的3D房间形状的所述匹配结构墙壁位置之间的确定的距离;或
使用最小二乘回归来减小所述选择的一个备选形状匹配的所述估计的3D房间形状与所述确定的3D房间形状的所述匹配的线框结构线之间的确定的距离;或
使用最小二乘回归来减小所述选择的一个备选形状匹配的所述估计的3D房间形状与所述确定的3D房间形状中的结构墙壁元素的所述匹配3D边界框之间的确定的距离;或
使用最小二乘回归来减小所述选择的一个备选形状匹配的所述估计的3D房间形状与所述确定的3D房间形状中的地板元素的所述匹配3D边界框之间的确定的距离;或
对所述估计的3D房间形状的预测像素级表面法线信息与所述识别的房间中具有指定位置的现有图像估计的其它像素级表面法线信息之间的差异执行可区分的呈现优化;或
对所述估计的3D房间形状的预测的像素级表面片段信息与所述识别的房间中具有指定位置的现有图像估计的其它像素级表面片段值之间的差异执行可区分的呈现优化,其中基于片段表面法线信息、或片段表面深度映射信息、或卷积神经网络的输出中的至少一个来预测所述估计的3D房间形状的所述像素级表面片段信息。
A12.根据条款A01-A11中任一项所述的计算机实现的方法,其中,确定所述目标图像的所述采集位置还包括:由所述一个或更多个计算系统,为所述估计的3D房间形状生成所述多个备选形状匹配,对于所述确定的3D房间形状中的一个或更多个中的每个,为所述确定的3D房间形状生成所述多个备选形状匹配中的一个或更多个,对于一个或更多个备选形状匹配中的每个,执行以下至少一项:
至少部分地基于将所述确定的3D房间形状的墙壁上的一个或更多个第一对象的一个或更多个第一边界框与所述估计的3D房间形状的墙壁上的一个或更多个第二对象的一个或更多个第二边界框相匹配来确定所述确定的3D房间形状相对于所述估计的3D房间形状的布置;或
至少部分地基于将所述确定的3D房间形状的地板上的一个或更多个第三对象的一个或更多个第三边界框与所述估计的3D房间形状的地板上的一个或更多个第四对象的一个或更多个第四边界框相匹配来确定所述确定的3D房间形状相对于所述估计的3D房间形状的布置;或
至少部分地基于将所述确定的3D房间形状的一个或更多个第一平坦表面与所述估计的3D房间形状的一个或更多个第二平坦表面相匹配来确定所述确定的3D房间形状相对于所述估计的3D房间形状的布置;或
至少部分地基于将所述确定的3D房间形状的第一3D点与所述估计的3D房间形状的第二3D点相匹配来确定所述确定的3D房间形状相对于所述估计的3D房间形状的布置。
A13.根据条款A01-A12中任一项所述的计算机实现的方法,其中,至少部分地基于所述估计的3D房间形状的确定的匹配度来选择所述估计的3D房间形状的所述备选形状匹配中的一个包括由所述一个或更多个计算系统并且对于所述选择的一个备选形状匹配基于一个或更多个匹配标准确定匹配分数,其中所述一个或更多个匹配标准包括以下中的至少一个:
在所述目标图像和与所述选择的一个备选形状的确定的3D房间形状相关联的附加图像之间的多个确定的方向的第一定义的匹配阈值之上的匹配,其中所述多个确定的方向中的一个基于所述目标图像和所述附加图像的视觉内容,并且其中所述多个确定的方向中的另一个至少部分地基于来自采集所述目标图像的采集元数据;或
在基于所述目标图像的视觉内容的目标图像的第一估计取向和至少部分基于来自采集所述目标图像的采集元数据的所述目标图像的第二估计取向之间的高于第二定义的匹配阈值的匹配;或
在基于所述目标图像的视觉内容获取的所述目标图像的第一估计位置和至少部分地基于来自采集目标图像的采集元数据获取的所述目标图像的第二估计位置之间的高于第三定义匹配阈值的匹配;或
在基于所述目标图像的视觉内容获取的所述目标图像的第三估计位置和打算采集的所述目标图像的第四估计位置之间的高于第四定义匹配阈值的匹配。
A14.根据条款A01-A13中任一项所述的计算机实现的方法,其中,所述目标图像是在所述建筑物中具有不同采集位置并且各自包括围绕垂直轴的360度水平视觉覆盖的多个目标图像中的一个,并且其中,所述方法还包括:
由所述一个或更多个计算系统确定所述多个目标图像中的每个在所述平面图上的采集位置,包括执行对于所述多个目标图像中的每个的所述估计的3D房间形状的生成,而不使用来自从所述目标图像的所述采集位置到周围表面的距离的任何深度感测传感器的任何深度信息;以及
根据与多个目标图像之间的关系有关的附加信息,通过对所述多个目标图像的所述确定的采集位置执行全局优化来更新所述多个目标图像中的至少一些目标图像的所述确定的采集位置。
A15.一种计算机实现的方法,包括一个或更多个计算装置的自动操作,至少包括:
对于在具有多个房间的建筑物中获取的目标图像,确定所述建筑物中所述目标图像的采集位置,包括:
对于所述多个房间中的一个或更多个的每个,获取所述房间的确定的房间形状;
至少部分地基于分析所述目标图像的视觉内容来生成所述目标图像的估计的房间形状;
至少部分地基于为选择的一个备选形状匹配确定的匹配度来选择所述估计的房间形状的多个备选形状匹配中的一个,其中,所述多个备选形状匹配各自包括所述多个房间中的一个房间的所述获取的确定的房间形状中的一个相对于所述估计的房间形状的布置,并且具有至少部分地基于所述估计的房间形状与那个获取的确定的房间形状的布置的拟合的确定的匹配度;
基于所述选择的一个备选形状匹配的布置,并且利用所述估计的房间形状内的所述目标图像的信息,在获取的确定的房间形状用于所述选择的一个备选形状匹配的一个房间内,定位所述一个房间内的目标图像的采集位置;以及
提供关于在所述建筑物的所述一个房间中的所述目标图像的所述确定的采集位置的信息,获取的确定的房间形状被用于所述选择的一个备选形状匹配。
A16.根据条款A01-A15中任一项所述的计算机实现的方法,其中,所述确定所述建筑物中的所述目标图像的所述采集位置包括确定所述目标图像在所述确定的采集位置处的取向,所述取向识别至少从所述确定的采集位置起的起始视图的至少两个维度上的方向,并且其中,所述提供所述信息包括在客户端装置上呈现所述建筑物的至少一些的显示,所述建筑物包括所述识别的房间并且覆盖有所述确定的采集位置和所述确定的取向的视觉指示。
A17.根据条款A01-A16中任一项所述的计算机实现的方法,其中,对于所述一个或更多个房间中的每个,获取所述一个或更多个房间中的每个的所述确定的房间形状包括:
获取在所述房间中采集的至少一个附加全景图像;以及
至少部分地基于分析在所述房间中获取的所述至少一个附加全景图像的视觉内容为所述房间生成所述确定的房间形状。
A18.一种计算机实现的方法,包括一个或更多个计算装置的自动操作,所述自动操作至少包括:
由所述一个或更多个计算系统接收在具有多个房间的建筑物中获取的目标图像和多个附加图像,其中,所述目标图像和所述多个附加图像中的每个都是具有多个周围墙壁的视觉覆盖的全景图像;
由所述一个或更多个计算系统确定所述建筑物中所述目标图像的采集位置,包括:
由所述一个或更多个计算系统获取所述多个附加图像确定的三维(“3D”)房间形状,其中对于所述多个附加图像中相关联的一个,每个确定的3D房间形状至少识别在周围房间中可见的墙壁和拐角;
由所述一个或更多个计算系统并且至少部分地基于分析所述目标图像的视觉内容,生成估计的3D房间形状以及所述估计的3D房间形状内所述目标图像的指示位置,所述估计的3D房间形状至少包括在所述目标图像中可见的墙壁和拐角;
由所述一个或更多个计算系统至少部分地基于为所述选择的一个备选形状匹配确定的匹配度来为所述估计的3D房间形状选择多个备选形状匹配中的一个,其中所述多个备选形状匹配各自包括所述确定的3D房间形状中的一个相对于所述估计的3D房间形状的布置,并且具有确定的匹配度,所述确定的匹配度至少部分地基于使用所述备选形状匹配的所述估计的3D房间形状的所述墙壁和拐角与所述备选形状匹配的一个确定的3D房间形状的墙壁和拐角的布置的拟合;
由所述一个或更多个计算系统并且在所述周围房间内,对于与所述选择的一个备选形状匹配的所述一个确定的3D房间形状相关联的所述附加图像,使用所述选择的一个备选形状匹配的所述布置来定位所述估计的3D房间形状内的所述指示位置,并且基于在所述周围房间内所述定位的指示位置来识别所述建筑物内所述目标图像的所述采集位置;以及
由所述一个或更多个计算系统提供关于所述确定的目标图像在所述周围房间内的采集位置的信息,以使得能够利用关于所述建筑物的信息来显示所述确定的采集位置。
A19.根据条款A01-A18中任一项所述的计算机实现的方法,其中,所述确定所述建筑物中所述目标图像的所述采集位置包括由所述一个或更多个计算系统确定所述目标图像在所述确定的采集位置处的取向,所述取向识别至少从所述确定的采集位置开始的起始视图的至少两个维度上的方向,并且其中,所述提供所述信息包括由所述一个或更多个计算系统并且在客户端装置上呈现所述建筑物的至少一些的显示,所述显示包括所述周围房间并且覆盖有所述确定的采集位置的视觉指示和所述确定的取向的视觉指示。
A20.根据条款A01-A19中任一项所述的计算机实现的方法,其中,所述获取所述确定的3D房间形状包括,对于所述建筑物中的一个或更多个房间中的每个,通过分析在所述房间中获取的所述多个附加图像中的至少一个的视觉内容来生成所述房间的所述确定的3D房间形状,其中,在获取所述目标图像时动态地执行所述目标图像的采集位置的确定,并且其中,所述提供所述信息包括由所述一个或更多个计算系统并且在获取所述目标图像时呈现所述建筑物的至少一些的包括所述周围房间的显示。
A21.根据条款A01-A20中任一项所述的计算机实现的方法,其中,至少部分地基于所述选择的一个备选形状匹配的确定的匹配度来为所述估计的3D房间形状选择所述备选形状匹配中的一个包括:由所述一个或更多个计算系统并且对于所述选择的一个备选形状匹配,基于一个或更多个匹配标准,确定在所述选择的一个备选形状匹配的所述布置中所述选择的一个备选形状匹配的所述估计的3D房间形状与所述确定的3D房间形状之间的匹配分数,其中所述一个或更多个匹配标准包括以下中的至少一个:
在所述布置中所述估计的3D房间形状与所述确定的3D房间形状的匹配的拐角之间的距离;或
在所述布置中所述估计的3D房间形状与所述确定的3D房间形状的匹配的结构墙壁之间的距离;或
在所述布置中所述估计的3D房间形状与所述确定的3D房间形状的匹配的线框结构线之间的距离;或
在所述布置中所述估计的3D房间形状与所述确定的3D房间形状中的结构墙壁元素的匹配的3D边界框之间的距离;或
在所述布置中所述估计的3D房间形状与所述确定的3D房间形状中的地板元素的匹配的3D边界框之间的距离;或
对于所述选择的一个备选形状匹配的所述确定的3D房间形状,所述目标图像的视觉内容和与所述周围房间相关联的一个附加图像的视觉内容之间的差异;或
在所述目标图像和所述一个附加图像之间的方向的两个测量之间的差异,所述两个测量包括基于所述目标图像的所述视觉内容和所述一个附加图像的所述视觉内容的第一测量以及至少部分基于来自采集所述目标图像和所述一个附加图像的采集元数据的第二测量。
A22.根据条款A01-A21中任一项所述的计算机实现的方法,其中,至少部分地基于所述估计的3D房间形状的确定的匹配度来选择所述估计的3D房间形状的所述备选形状匹配中的一个包括由所述一个或更多个计算系统并且对于所述选择的一个备选形状匹配基于一个或更多个匹配标准确定匹配分数,其中所述一个或更多个匹配标准包括以下中的至少一个:
在基于所述目标图像的视觉内容的目标图像的第一估计取向和至少部分基于来自采集所述目标图像的采集元数据的所述目标图像的第二估计取向之间的高于第一定义的匹配阈值的匹配;或
在基于所述目标图像的视觉内容获取的所述目标图像的第一估计位置和至少部分地基于来自采集目标图像的采集元数据获取的所述目标图像的第二估计位置之间的高于第二定义匹配阈值的匹配;或
在基于所述目标图像的视觉内容获取的所述目标图像的第三估计位置和打算采集的所述目标图像的第四估计位置之间的高于第三定义匹配阈值的匹配。
A23.根据条款A01-A22中任一项所述的计算机实现的方法,其中,至少部分地基于为所述选择的一个备选形状匹配的确定的匹配度来为所述估计的3D房间形状选择所述多个备选形状匹配中的一个包括由所述一个或更多个计算系统并且对于所述选择的一个备选形状匹配至少部分地基于将所述目标图像的第一生成图像嵌入矢量和与所述选择的一个备选形状匹配的所述确定的3D房间形状的所述周围房间相关联的所述一个附加图像的第二生成图像嵌入矢量进行比较来确定所述匹配度,其中,所述第一生成图像嵌入矢量对关于所述目标图像的一个或更多个特征和/或属性的信息进行编码,并且其中,所述第二生成图像嵌入矢量对关于所述一个附加图像的一个或更多个特征和/或属性的信息进行编码。
A24.一种计算机实现的方法,包括:
由一个或更多个计算系统接收在具有多个房间的建筑物中获取的目标图像,其中,所述目标图像是包括围绕垂直轴的360度水平视觉覆盖的全景图像;
由所述一个或更多个计算系统在所述建筑物的平面图上确定所述目标图像的采集位置,包括:
由所述一个或更多个计算系统确定所述多个房间的三维(“3D”)房间形状,其中,每个确定的3D房间形状至少识别所述多个房间中相关联的一个的墙壁和拐角;
由所述一个或更多个计算系统并且至少部分地基于分析所述目标图像的视觉内容,生成所述目标图像的估计的3D房间形状,所述估计的3D房间形状至少识别在所述目标图像中可见的墙壁和拐角,以及所述目标图像的所述估计的3D房间形状内的指示位置,以及关于所述目标图像的消失线角的信息,所述消失线角至少部分地基于在所述目标图像中可见的墙壁;
由所述一个或更多个计算系统确定所述估计的3D房间形状的多个备选形状匹配,所述多个备选形状匹配各自包括所述确定的3D房间形状之一相对于所述估计的3D房间形状的布置,所述放置使用所述目标图像的消失线角和与所述一个确定的3D房间形状相关联的附加消失线角以将所述估计的3D房间形状的至少一个墙壁和拐角与所述一个确定的3D房间形状的至少一个其它墙壁和拐角相匹配;
通过所述一个或更多个计算系统,至少部分地基于所述估计的3D房间形状的墙壁和拐角的所述选择的一个备选形状匹配与其一个使用所述选择的一个备选形状匹配的布置的确定的3D房间形状的墙壁和拐角的拟合的测量,选择多个备选形状匹配中的一个,并且识别多个房间中的房间,其确定的房间形状是所述选择的一个备选形状匹配的一个确定的3D房间形状;
由所述一个或更多个计算系统并且在所述识别的房间内,通过使用所述一个确定的3D房间形状相对于所述估计的3D房间形状的所述选择的一个备选形状匹配的布置,在所述布置上的所述估计的3D房间形状内定位所述指示的位置,并且基于在在所述识别的房间内所述定位的指示的位置来识别所述平面图上的所述目标图像的所述采集位置;以及
由所述一个或更多个计算系统用所述确定的目标图像在所述识别的房间中的采集位置的可视指示来显示所述建筑物的平面图。
A25.根据条款A01-A24中任一项所述的计算机实现的方法,其中,确定所述多个房间的3D房间形状包括从所述建筑物的平面图获取所述多个房间的二维(“2D”)轮廓,并且至少部分地基于所述获取的2D轮廓和关于所述多个房间的墙壁高度的信息来生成所述多个房间的3D房间形状。
A26.根据条款A01-A25中任一项所述的计算机实现的方法,其中,所述确定所述目标图像在所述平面图上的采集位置包括由所述一个或更多个计算系统确定所述目标图像在所述确定的采集位置处的取向,所述取向识别至少从所述确定的采集位置开始的起始视图的至少两个维度上的方向,并且其中,所述平面图的显示还包括由所述一个或更多个计算系统并且在客户端装置上在所述确定的采集位置处显示所述确定的取向的视觉指示。
A27.一种计算机实现的方法,包括执行自动操作的多个步骤,所述自动操作实现基本上如本文中所公开的技术。
B01.一种具有存储的可执行软件指令和/或其它存储内容的非暂时性计算机可读介质,所述存储的可执行软件指令和/或其它存储内容使得一个或更多个计算系统执行实现条款A01-A27中任一项的方法的自动操作。
B02.一种具有存储的可执行软件指令和/或其它存储的内容的非暂时性计算机可读介质,所述存储的可执行软件指令和/或其它存储的内容使得一个或更多个计算系统执行实现基本上如本文中所公开的所述技术的自动操作。
C01.一个或更多个计算系统,包括一个或更多个硬件处理器和具有存储指令的一个或更多个存储器,所述存储指令在由所述一个或更多个硬件处理器中的至少一个执行时使所述一个或更多个计算系统执行实现条款A01-A27中的任一个的方法的自动操作。
C02.一个或更多个计算系统,包括一个或更多个硬件处理器和具有存储指令的一个或更多个存储器,所述存储指令在由所述一个或更多个硬件处理器中的至少一个执行时使所述一个或更多个计算系统执行实现基本上如本文中所公开的所述技术的自动操作。
D01.一种计算机程序,适于当所述计算机程序在计算机上运行时执行条款A01-A27中的任一个的方法。
在本文中参考根据本公开的实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本公开的方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。将进一步理解,在一些实现中,可以以替代的方式来提供由上面讨论的例程提供的功能,例如在更多例程之间进行拆分或合并成更少的例程。类似地,在一些实现中,所示例程可以提供比所描述的更多或更少的功能,例如当其他所示例程分别缺少或包括这样的功能时,或当所提供的功能量改变时。此外,虽然可以将各种操作示出为以特定方式(例如,串行或并行,或同步或异步)和/或以特定顺序执行,但是在其他实现中,可以以其他顺序和其他方式执行操作。上面讨论的任何数据结构也可以以不同的方式构造,例如通过将单个数据结构分成多个数据结构和/或通过将多个数据结构合并成单个数据结构。类似地,在一些实现中,所示的数据结构可以存储比所描述的更多或更少的信息,诸如,当其他所示的数据结构分别缺少或包括这样的信息时,或当存储的信息量或类型改变时。
从上文可以理解,尽管本文为了说明的目的描述了特定的实施方式,但是在不脱离本发明的精神和范围的情况下可以进行各种修改。因此,除了相应的权利要求和那些权利要求记载的要素之外,本发明不受限制。此外,虽然本发明的某些方面可以在某些时间以某些权利要求的形式呈现,但是发明人以任何可用的权利要求的形式考虑了本发明的各个方面。例如,虽然本发明的仅一些方面可以被叙述为在特定时间体现在计算机可读介质中,但其他方面同样可以如此体现。