对房屋进行数据采集的方法、装置、电子设备和存储介质
技术领域
本发明实施例涉及虚拟三维(3D)建模技术领域,尤其是涉及对房屋进行数据采集的方法。
背景技术
对房屋进行虚拟三维建模的过程中,常常通过深度相机进行图像采集。深度相机为可以测量出各拍摄点与相机距离的设备。例如,通过结构光原理测量拍摄点与相机距离的相机。结构光技术的基本原理是在激光器外放置一个光栅,激光通过光栅进行投射成像时会发生折射,从而使得激光最终在物体表面上的落点产生位移。当物体距离激光投射器比较近的时候,折射而产生的位移就较小,当物体距离较远时,折射而产生的位移也就会相应的变大。使用一个摄像头来检测采集投射到物体表面上的图样,通过图样的位移变化,就能用算法计算出物体的位置和深度信息,进而复原整个虚拟三维空间。
为了更好地生成房屋的虚拟3D模型,在对于房屋进行数据采集的过程中,有可能需要在多个拍摄点位上进行数据采集。对于拍摄点位的选择,通常需要依赖于拍摄者的个人经验来进行。由此,可能会由于拍摄点位选择不当而造成采集的数据不完整,从而影响房屋的虚拟3D模型的生成质量,或者由于多次选择拍摄点位而导致数据采集的效率低下。
发明内容
本发明的一个目的是提供一种对房屋进行数据采集的方法。
根据本发明的一个方面,提供了一种对房屋进行数据采集的方法,包括:
针对所述房屋的至少一个功能间中的每一功能间,获取以所述功能间中的至少一个拍摄点位为中心、对所述功能间进行拍摄得到的所述至少一个拍摄点位的深度图像;
基于之前已进行拍摄的所述至少一个拍摄点位,预测下一拍摄点位所在的位置范围。
根据本发明的另一实施例,基于之前已进行拍摄的至少一个拍摄点位,预测下一拍摄点位所在的位置范围,包括:
从之前已进行拍摄的所述至少一个拍摄点位中选取拍摄点位;
基于之前已进行拍摄的所述至少一个拍摄点位的深度图像所对应的点云图像,重新生成所选取的拍摄点位的深度图像;
确定所选取的拍摄点位的重新生成的深度图像中是否存在满足预定条件的空洞;
如果存在满足预定条件的空洞,则从所述空洞的边缘上选取像素点,并基于所选取的像素点的位置以及所选取的拍摄点位的位置得到下一拍摄点位所在的位置范围。
根据本发明的另一实施例,基于之前已进行拍摄的所述至少一个拍摄点位的深度图像所对应的点云图像,重新生成所选取的拍摄点位的深度图像,包括:
从之前已进行拍摄的所述至少一个拍摄点位的深度图像所对应的点云图像中得到对应于所选取的拍摄点位的点云图像,并且从所述对应于所选取的拍摄点位的点云图像重新生成所选取的拍摄点位的所述深度图像。
根据本发明的另一实施例,从所述对应于所选取的拍摄点位的点云图像重新生成所选取的拍摄点位的所述深度图像,包括:
将所述对应于所选取的拍摄点位的点云图像中的每一个点映射到对应于所述深度图像的像素矩阵中;以及
如果存在与所述像素矩阵中的同一像素点相对应的多个深度值,则将所述多个深度值中的最小深度值作为该像素点的深度值。
根据本发明的另一实施例,基于所选取的像素点的位置以及所选取的拍摄点位的位置得到下一拍摄点位所在的位置范围,包括:
从所选取的像素点在所述对应于所选取的拍摄点位的点云图像中的三维坐标,得到所选取的像素点在所述功能间的地面所在的二维平面上的投影点的位置;以及
基于所述投影点的位置以及所选取的拍摄点位的位置,得到下一拍摄点位所在的位置范围。
根据本发明的另一实施例,所述预定条件包括:
所述空洞的面积大于预定的面积阈值;和/或
所述空洞的边缘上距所选取的拍摄点位最近的像素点处于距所选取的拍摄点位预定的阈值距离范围内。
根据本发明的另一实施例,所选取的像素点是所述空洞的边缘上距所选取的拍摄点位最近的像素点。
根据本发明的另一实施例,所选取的拍摄点位为所述至少一个之前已进行拍摄的拍摄点位中最新进行拍摄的拍摄点位。
根据本发明的另一方面,提供了一种对房屋进行数据采集的装置,包括:
获取模块,用于针对所述房屋的至少一个功能间中的每一功能间,获取以所述功能间中的至少一个拍摄点位为中心、对所述功能间进行拍摄得到的所述至少一个拍摄点位的深度图像;
预测模块,用于基于之前已进行拍摄的所述至少一个拍摄点位,预测下一拍摄点位所在的位置范围。
根据本发明的另一方面,提供了一种电子设备,包括:
至少一个处理器、至少一个存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述通信接口用于该电子设备和终端的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述方法。
根据本发明的又一方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述方法。
根据本发明的实施例,通过基于之前已进行拍摄的拍摄点位预测下一拍摄点位的位置范围,能够提高数据采集的完整性和/或数据采集的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明一个实施例的对房屋进行数据采集的方法的流程示意图;
图2是根据本发明另一个实施例的基于之前已进行拍摄的至少一个拍摄点位、预测下一拍摄点位所在的位置范围的示例性方法的流程示意图;
图3是示意性地示出如何基于点云图像生成深度图像的原理的空间坐标示意图;
图4是根据本发明另一个实施例的对房屋进行数据采集和模型生成的方法的流程示意图;
图5是根据本发明另一个实施例的对房屋进行数据采集的装置的结构框图;
图6是根据本发明另一个实施例的对房屋进行数据采集和模型生成的装置的结构框图;
图7是根据本发明另一个实施例的电子设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是根据本发明一个实施例的对房屋进行数据采集的方法的流程示意图,参见图1,该方法包括:
101:针对房屋的至少一个功能间中的每一功能间,获取以该功能间中的至少一个拍摄点位为中心、对该功能间进行拍摄得到的至少一个拍摄点位的深度图像;
102:基于之前已进行拍摄的至少一个拍摄点位,预测下一拍摄点位所在的位置范围。
本实施例提供的方法可以由能够执行上述方法的设备执行,例如,处理器或服务器。需要进行数据采集的房屋有可能包括一个或多个功能间。例如,房屋可以包括客厅、卧室、餐厅、厨房、卫生间等多个功能间。在对于包括多个功能间的房屋进行数据采集时,既可以对于多个功能间中的每一个功能间进行数据采集,也可以对于多个功能间中的仅一个功能间或部分功能间进行数据采集。例如,如果房屋包括客厅、卧室、餐厅、厨房、卫生间,可以仅对于客厅进行数据采集。可选地,也可以对于客厅和卧室这两者进行数据采集。当然,也可以对于房屋的所有功能间都进行数据采集。
深度图像可以通过利用深度相机对房屋进行采集而得到。可以将采集得到的深度图像转化成点云图像(也可以称为点云模型)。如果存在多个深度图像,还可以将多个深度图像转化得到的多个点云图像进行拼接融合。将深度图像转化成点云图像,以及对于多个点云图像进行拼接融合,都可以通过例如开源库中的对点云进行拼接融合的函数(例如,PCL)计算得到。
根据示例性的实施例,在上述步骤101中的至少一个拍摄点位,可以是预先确定的拍摄点位,也可以是拍摄者任意选取的拍摄点位。例如,在对房屋进行数据采集时,可以针对该房屋的某一功能间,预先确定要进行拍摄的拍摄点位A,然后获取以拍摄点位A为中心、对该功能间进行拍摄得到的拍摄点位A的深度图像。相应地,在步骤102中,基于之前已进行拍摄的拍摄点位A,预测下一拍摄点位所在的位置范围。当然,也可以针对房屋的某一功能间,由拍摄者任意选取要进行拍摄的拍摄点位A,然后获取以拍摄点位A为中心、对该功能间进行拍摄得到的拍摄点位A的深度图像,并基于之前已进行拍摄的拍摄点位A,预测下一拍摄点位所在的位置范围。
需要注意的是,上述步骤101中的至少一个拍摄点位的数目不限于一个,而是可以为两个或更多个。例如,在对房屋进行数据采集时,可以针对该房屋的某一功能间,预先确定或任意选取要进行拍摄的拍摄点位A、B、C,然后获取分别以拍摄点位A、B、C为中心、对该功能间进行拍摄得到的拍摄点位A、B、C的深度图像。相应地,在步骤102中,基于之前已进行拍摄的拍摄点位A、B、C,预测下一拍摄点位所在的位置范围。
在对房屋进行数据采集之后,可以根据采集的数据对房屋进行建模。由于在对于房屋进行建模时,可能需要房屋的全面信息来创建房屋的虚拟模型,因此,在功能间的某一拍摄点位上对于功能间进行拍摄时,例如可以以该拍摄点位为中心,对于功能间进行多角度的拍摄。例如,可以在每一拍摄点位上,以该拍摄点位为中心,对于功能间进行多角度的拍摄。比如,可以以该拍摄点位为中心,在0度、90度、180度和270度的角度上分别进行拍摄,或者也可以进行360度的连续环绕拍摄。由此,能够获取从各拍摄点位得到的房屋的各角度的信息。
在以某一拍摄点位为中心对于功能间进行多角度拍摄的情况下,可以得到对应于多个角度中每一角度的深度图像。因此,在这种情况下,该拍摄点位的深度图像可以包括分别对应于多个角度的多个深度图像。在进行数据处理时,可以将多个深度图像中的每一深度图像转化成点云图像,并将转化得到的多个点云图像进行拼接融合,从而得到该拍摄点位的深度图像所对应的点云图像。比如,以某一拍摄点位为中心,在0度、90度、180度和270度的角度上分别进行拍摄,可以得到分别对应于0度、90度、180度和270度的多个深度图像。可以将多个深度图像中的每一深度图像转化成点云图像,并将转化得到的多个点云图像进行拼接融合,从而得到该拍摄点位的深度图像所对应的点云图像。此外,还可以对多个拍摄点位的深度图像所对应的点云图像进行进一步的拼接融合。
如上所述,在对房屋进行数据采集之后,可以根据采集的数据对房屋进行建模。为了更好地生成房屋的虚拟3D模型,在对于房屋进行数据采集的过程中,有可能需要在多个拍摄点位上进行数据采集。对于拍摄点位的选择,通常需要依赖于拍摄者的个人经验来进行。由此,可能会由于拍摄点位选择不当而造成采集的数据不完整,从而影响房屋的虚拟3D模型的生成质量,或者由于多次选择拍摄点位而导致数据采集的效率低下。根据本发明的实施例,提供了一种对房屋进行数据采集的方法。通过基于之前已进行拍摄的拍摄点位预测下一拍摄点位所在的位置范围,能够提高数据采集的完整性和/或数据采集的效率。
根据本发明的另一个实施例,对房屋进行数据采集的方法,在基于之前已进行拍摄的至少一个拍摄点位,预测下一拍摄点位所在的位置范围之后,还可以包括:获取以从下一拍摄点位所在的位置范围内选取的下一拍摄点位为中心、对功能间进行拍摄得到的所述下一拍摄点位的深度图像。例如,在得到所预测的下一拍摄点位所在的位置范围之后,可以从中选取下一拍摄点位,并且获取以所选取的下一拍摄点位为中心、对功能间进行拍摄得到的该下一拍摄点位的深度图像。因此,通过预测下一拍摄点位所在的位置范围并从中选取下一拍摄点位再次进行拍摄,可以进一步完善所采集的房屋的数据。
图2是根据本发明另一个实施例的基于之前已进行拍摄的至少一个拍摄点位、预测下一拍摄点位所在的位置范围的示例性方法的流程示意图。
如图2所示,基于之前已进行拍摄的至少一个拍摄点位,预测下一拍摄点位所在的位置范围例如可以包括如下步骤。
在步骤201中,从之前已进行拍摄的至少一个拍摄点位中选取拍摄点位。
之前已进行拍摄的拍摄点位的数目可能是一个或多个。在该步骤中,从之前已进行拍摄的一个或多个拍摄点位中选取拍摄点位。
根据一个示例性的实施例,所选取的拍摄点位可以为之前已进行拍摄的至少一个拍摄点位中最新进行拍摄的拍摄点位。通过优先考虑最新进行拍摄的拍摄点位,有助于保持数据采集的连贯性,提高采集效率。当然,所选取的拍摄点位也可以是之前已进行拍摄的任意拍摄点位。
在步骤202中,基于之前已进行拍摄的至少一个拍摄点位的深度图像所对应的点云图像,重新生成所选取的拍摄点位的深度图像。
更具体而言,可以通过对之前已进行拍摄的至少一个拍摄点位中每一个拍摄点位的深度图像所对应的点云图像进行拼接融合,而得到之前已进行拍摄的至少一个拍摄点位的深度图像所对应的点云图像,并基于该点云图像,重新生成所选取的拍摄点位的深度图像。
例如,假设存在三个之前已进行拍摄的拍摄点位A、B、C。拍摄点位A的深度图像A1所对应的点云图像为A2。拍摄点位B的深度图像B1所对应的点云图像为B2。拍摄点位C的深度图像C1所对应的点云图像为C2。那么,通过对于点云图像A2,B2和C2进行拼接融合,就能够得到这三个之前已进行拍摄的拍摄点位的深度图像A1、B1、C1所对应的点云图像N。换言之,通过进行拼接融合而得到的点云图像N可以包括深度图像A1、B1、C1中的每一个所包含的深度信息。进一步假设从这三个之前已进行拍摄的拍摄点位A、B、C中选取了拍摄点位C,那么,可以基于这三个之前已进行拍摄的拍摄点位A、B、C的深度图像A1、B1、C1所对应的点云图像N,重新生成拍摄点位C的深度图像C12。
尽管对于所选取的拍摄点位而言,存在通过在该拍摄点位上进行拍摄而得到的该拍摄点位的原始深度图像,但由于某些因素,比如拍摄设备的影响、环境光的干扰等,有可能造成所得到的原始深度图像中的数据缺失。通过基于之前已进行拍摄的至少一个拍摄点位的深度图像所对应的点云图像来重新生成所选取的拍摄点位的深度图像,可以利用之前已进行拍摄的其它拍摄点位的数据对于原始深度图像中的数据进行补充。
仍以上文描述的拍摄点位A、B、C为例。所选取的拍摄点位C的原始深度图像C1可能由于某些因素而缺失数据,比如缺失功能间中某些位置的深度信息。例如,由于拍摄设备的视角的限制,有可能在拍摄设备的正上方或正下方的位置没有深度信息。由于基于三个之前已进行拍摄的拍摄点位A、B、C的深度图像A1、B1、C1所对应的点云图像N来重新生成拍摄点位C的深度图像C12,那么可以利用拍摄点位A和B的数据对于所选取的拍摄点位C的原始深度图像C1中的数据进行补充,从而有可能使重新生成的深度图像C12中包含更多的深度信息,这有利于进行后续数据分析以预测下一拍摄点位所在的位置范围。
在步骤203中,确定所选取的拍摄点位的重新生成的深度图像中是否存在满足预定条件的空洞。
即使有可能利用之前已进行拍摄的其它拍摄点位的数据对于所选取的拍摄点位的原始深度图像中的数据进行补充而重新生成所选取的拍摄点位的深度图像,但在重新生成的深度图像中,仍然有可能存在不包含任何深度信息的一个或多个空洞,这可能是由于某些因素导致的,比如拍摄设备的视角、拍摄设备的有效拍摄距离、光照条件等等。在步骤203中,确定所选取的拍摄点位的重新生成的深度图像中是否存在满足预定条件的空洞。例如,可以首先确定所选取的拍摄点位的重新生成的深度图像中是否存在空洞,并进一步确定所存在的空洞是否满足预定条件。
对于深度图像而言,其可以通过二维像素矩阵的方式来表示。该像素矩阵中的每个矩阵元素(像素点)的值表示相应的深度值,即,该矩阵元素(像素点)在三维空间中距拍摄点位的距离。可以通过确定深度图像的像素矩阵中深度值为0且在位置上相邻的矩阵元素(像素点)的集合,来得到该深度图像中的空洞。对于某一深度图像而言,有可能不存在任何空洞,也有可能存在一个或多个空洞。可以通过各种方式来得到深度图像中存在的空洞。根据一个示例性实施例,可以通过采用广度优先搜索或者深度优先搜索,来得到重新生成的深度图像中的空洞。
根据一个示例性的实施例,上述步骤中的预定条件可以包括:空洞的面积大于预定的面积阈值;和/或空洞的边缘上距所选取的拍摄点位最近的像素点处于距所选取的拍摄点位预定的阈值距离范围内。例如,对于所选取的拍摄点位的重新生成的深度图像中所存在的空洞,如果该空洞的面积大于预定的面积阈值,和/或该空洞的边缘上距所选取的拍摄点位最近的像素点处于距所选取的拍摄点位预定的阈值距离范围内,则将该空洞确定为满足预定条件的空洞。
空洞的面积可以用在深度图像的像素矩阵中该空洞所包含的像素点的数目来表示。空洞的边缘可以由深度图像的像素矩阵中与该空洞邻接的深度值不为0的像素点构成。
可以基于多种因素来确定空洞的面积阈值,比如拍摄设备的有效拍摄距离、拍摄设备的视角、拍摄设备的拍摄机制、光照条件等。例如,假设深度图像为1600×800,则可以将面积阈值选择为10000,即10000个像素点,并确定空洞的面积是否大于该面积阈值。应当注意的是,上述面积阈值仅仅是示例性的而非限制性的。可以根据需要来确定合适的面积阈值。
关于空洞的边缘上距所选取的拍摄点位最近的像素点距所选取的拍摄点位的阈值距离范围,也可以基于多种因素来确定,比如拍摄设备的有效拍摄距离、拍摄设备的视角等。例如,假设拍摄设备的有效拍摄距离为20厘米至6米,则可以将阈值距离范围确定为3米至6米,并确定空洞的边缘上距所选取的拍摄点位最近的像素点是否处于距所选取的拍摄点位3米至6米的范围内。应当注意的是,上述阈值距离范围仅仅是示例性的而非限制性的。可以根据需要来确定合适的阈值距离范围。
在步骤204中,如果存在满足预定条件的空洞,则从该空洞的边缘上选取像素点,并基于所选取的像素点的位置以及所选取的拍摄点位的位置得到下一拍摄点位所在的位置范围。
在这一步骤中,如果确定重新生成的深度图像中存在满足预定条件的空洞,则可以则从该空洞的边缘上选取像素点,并基于所选取的像素点的位置以及所选取的拍摄点位的位置,来得到下一拍摄点位所在的位置范围,从而使拍摄者可以在该位置范围内选择下一拍摄点位。如下文将会描述的,可以通过多种方式来得到下一拍摄点位所在的位置范围。
根据一个示例性的实施例,如果重新生成的深度图像中存在满足预定条件的多个空洞,则从每一空洞的边缘上选取像素点,并且基于所选取的像素点的位置以及所选取的拍摄点位的位置,可以得到下一拍摄点位所在的多个位置范围。在这种情况下,拍摄者可以根据需要从这多个位置范围中选择一个位置范围,并在所选择的位置范围内进一步选择下一拍摄点位。
根据一个示例性的实施例,从空洞的边缘上选取的像素点可以是空洞的边缘上距所选取的拍摄点位最近的像素点。空洞的边缘上距所选取的拍摄点位最近的像素点,一般是空洞的边缘上所有的像素点中,深度值最小的像素点。当然,也可以选择空洞的边缘上的其它像素点。例如,可以根据需要从满足预定条件的空洞的边缘上的所有像素点中选取像素点,以用于确定下一拍摄点位所在的位置范围。
确定所选取的拍摄点位的重新生成的深度图像中的空洞是否满足预定条件并基于满足预定条件的空洞而得到下一拍摄点位所在的位置范围,可以有助于提高数据处理的效率和/或改善数据分析的精确性。例如,通过对于面积大于预定的面积阈值的空洞进行处理而不处理面积过小的空洞,可以减少运算量以提高数据处理的效率。而通过对于其边缘上距所选取的拍摄点位最近的像素点处于预定的阈值距离范围内的空洞进行处理,可能有助于改善数据分析的准确性。例如,由于拍摄设备的有效拍摄距离,可能导致距所选取的拍摄点位相对较远的距离处存在空洞。而在某些情况下,由于房屋本身的结构原因、比如距所选取的拍摄点位比较近的距离范围内存在阳台,可能导致在该距离范围内存在大面积的空洞。这种距所选取的拍摄点位过远或过近的空洞,可能会对于进行准确的数据分析以得到下一拍摄点位的合理位置范围造成干扰。因此,通过设置距所选取的拍摄点位的阈值距离范围、并对于其边缘上距所选取的拍摄点位最近的像素点处于该阈值距离范围内的空洞进行处理,可以改善数据分析的准确性。
如上所述,在基于之前已进行拍摄的拍摄点位预测下一拍摄点位的过程中,可以基于之前已进行拍摄的至少一个拍摄点位的深度图像所对应的点云图像,重新生成所选取的拍摄点位的深度图像。可以根据需要通过多种方式来重新生成该深度图像。
根据一个示例性实施例,基于之前已进行拍摄的至少一个拍摄点位的深度图像所对应的点云图像,重新生成所选取的拍摄点位的深度图像,可以包括:从之前已进行拍摄的至少一个拍摄点位的深度图像所对应的点云图像中得到对应于所选取的拍摄点位的点云图像,并且从对应于所选取的拍摄点位的点云图像重新生成所选取的拍摄点位的深度图像。
仍以上文描述的之前已进行拍摄的拍摄点位A、B、C为例。假设存在三个之前已进行拍摄的拍摄点位A、B、C。拍摄点位A的深度图像A1所对应的点云图像为A2。拍摄点位B的深度图像B1所对应的点云图像为B2。拍摄点位C的深度图像C1所对应的点云图像为C2。那么,通过对于点云图像A2,B2和C2进行拼接融合,就能够得到这三个之前已进行拍摄的拍摄点位的深度图像A1、B1、C1所对应的点云图像N。进一步假设从这三个之前已进行拍摄的拍摄点位A、B、C中选取了拍摄点位C,那么,可以从这三个之前已进行拍摄的拍摄点位A、B、C的深度图像A1、B1、C1所对应的点云图像N中得到对应于所选取的拍摄点位C的点云图像C22,并且从对应于所选取的拍摄点位C的点云图像C22重新生成所选取的拍摄点位C的深度图像C12。
可以采用多种方式从点云图像中得到对应于所选取的拍摄点位的点云图像。根据一个示例性的实施例,从之前已进行拍摄的至少一个拍摄点位的深度图像所对应的点云图像中得到对应于所选取的拍摄点位的点云图像,可以包括:从之前已进行拍摄的至少一个拍摄点位的深度图像所对应的点云图像的所有点中挑选出满足预设条件的点的集合作为对应于所选取的拍摄点位的点云图像。
该预设条件例如可以是与距离相关联的条件。根据一个示例性的实施例,该预设条件可以是之前已进行拍摄的至少一个拍摄点位的深度图像所对应的点云图像中的点距所选取的拍摄点位小于预定距离。例如,可以遍历之前已进行拍摄的至少一个拍摄点位的深度图像所对应的点云图像的所有点,并将该点云图像的所有点中距所选取的拍摄点位小于预定距离的点所组成的集合作为对应于所选取的拍摄点位的点云图像。该预定距离例如可以是拍摄设备的有效拍摄距离或者小于该有效拍摄距离的某一距离。考虑到房屋的具体结构等因素,可以根据需要来确定该预定距离的具体数值。根据另一个示例性的实施例,该预设条件可以是之前已进行拍摄的至少一个拍摄点位的深度图像所对应的点云图像中的点位于以所选取的拍摄点位为中心、以预定长度为边长的正多面体的内部。
仍以上文描述的之前已进行拍摄的拍摄点位A、B、C为例。可以遍历拍摄点位A、B、C的深度图像A1、B1、C1所对应的点云图像N的所有点,并将点云图像N的所有点中距所选取的拍摄点位C小于预定距离的点所组成的集合作为对应于所选取的拍摄点位C的点云图像C22。
可以采用多种方式从对应于所选取的拍摄点位的点云图像重新生成所选取的拍摄点位的深度图像。例如,可以将对应于所选取的拍摄点位的点云图像中的每一个点映射到对应于所选取的拍摄点位的深度图像的像素矩阵中。
图3是示意性地示出如何基于点云图像生成深度图像的原理的空间坐标示意图。
如图3所示,由x轴、y轴和z轴所构成的直角坐标系的原点O是所选取的拍摄点位所在的位置。M是对应于所选取的拍摄点位的点云图像中的某一点,其在该直角坐标系中的三维坐标为(x',y',z')。
为了将点M映射到对应于所选取的拍摄点位的深度图像的像素矩阵中,首先计算如图3中所示的夹角φ(角度范围为-π/2至π/2)和θ(角度范围为0至2π)。其中,φ为点M和原点O的连线与x-z平面所呈的夹角,θ为点M在x-z平面上的投影点M’和原点O的连线与x轴所呈的夹角。
假设深度图像长为W个像素点,高为H个像素点,则可以通过如下方式计算点M在深度图像的像素矩阵中的坐标位置(p,q)。
p=(W*θ)/2π
q=(H*(φ+π/2))/π
对于计算得到的p和q的值进行四舍五入取整。p的范围在[0,W-1],q的范围在[0,H-1]。如果超过W-1或H-1,则忽略。换言之,将φ的角度范围-π/2至π/2映射到0至H,将θ的角度范围0至2π映射到0至W。已知点云图像中某点的φ和θ的值,即可以计算出该点在深度图像的像素矩阵中相应的坐标位置(p,q)。
点M在深度图像的像素矩阵中的坐标位置(p,q)处的深度值,可以通过计算点M和原点O之间的距离而得到。
应当注意的是,以上描述的从对应于所选取的拍摄点位的点云图像重新生成深度图像的方式仅仅是示意性地而非限制性的,也可以根据需要采用其它方式来得到深度图像。例如,可以利用PCL库的RangeImage模块从点云图像中获得深度图像。利用RangeImage,还可以从深度图像中获得每个像素对应的三维空间点坐标,进而获得点云图像。利用PCL库的ICP相关点云配准算法,可以进行点云图像的拼接。
如上所述,由于之前已进行拍摄的拍摄点位的深度图像所对应的点云图像有可能包括其它拍摄点位的数据,因此,从之前已进行拍摄的拍摄点位的深度图像所对应的点云图像中得到的对应于所选取的拍摄点位的点云图像,也有可能包括其它拍摄点位的数据,这可能导致在重新生成的深度图像的像素矩阵中,存在与同一像素点相对应的多个深度值,这些深度值来自不同的拍摄点位。
仍以图3所示的空间坐标示意图为例。假设在对应于所选取的拍摄点位的点云图像中包括了另一拍摄点位的数据,该数据导致在点M和原点O的连线沿着O-M方向的延长线上,存在另一个点。由于对应于该另一个点的夹角φ和θ的值与点M的相同,因此,在将该另一个点映射到深度图像的像素矩阵中时,该另一个点在深度图像的像素矩阵中的相应像素点的坐标位置(p,q)也与点M的相同。由此,存在与像素矩阵中的同一像素点相对应的多个深度值,这些深度值来自不同的拍摄点位。
与同一像素点相对应的多个深度值可能是由于除了所选取的拍摄点位之外的其它拍摄点位的冗余数据所导致的。为了减少或消除其它拍摄点位的冗余数据,根据一个示例性的实施例,在将对应于所选取的拍摄点位的点云图像中每一个点映射到对应于深度图像的像素矩阵中之后,如果存在与像素矩阵中的同一像素点相对应的多个深度值,则将多个深度值中的最小深度值作为该像素点的深度值。从空间遮挡关系的角度而言,距所选取的拍摄点位更近的点会遮挡住距该点位更远的点,因此,可以在深度图像的像素矩阵中选择最小的深度值。
如上所述,如果存在满足预定条件的空洞,则可以从该空洞的边缘上选取像素点,并基于所选取的像素点的位置以及所选取的拍摄点位的位置得到下一拍摄点位所在的位置范围。
可以通过多种方式来得到下一拍摄点位所在的位置范围。根据一个示例性的实施例,基于所选取的像素点的位置以及所选取的拍摄点位的位置,得到下一拍摄点位所在的位置范围,可以包括:从所选取的像素点在对应于所选取的拍摄点位的点云图像中的三维坐标,得到所选取的像素点在功能间的地面所在的二维平面上的投影点的位置;以及,基于投影点的位置以及所选取的拍摄点位的位置,得到下一拍摄点位所在的位置范围。
仍以图3所示的空间坐标示意图为例。假设选取了空洞边缘上的像素点M,其在对应于所选取的拍摄点位的点云图像中的三维坐标为(x',y',z')。假设功能间的地面所在的二维平面为x-z平面,则可以从点M的三维坐标(x',y',z')得到该点M在功能间的地面所在的二维平面(x-z平面)上的投影点M’的位置,该位置可以用点M’在x-z平面中的二维坐标(x',z')来表示。
在得到空洞的边缘上所选取的像素点在功能间的地面所在的二维平面上的投影点的位置之后,可以通过多种方式来基于投影点的位置以及所选取的拍摄点位的位置得到下一拍摄点位所在的位置范围。
例如,一种简单的方式是可以将该投影点与所选取的拍摄点位的连线的中点,作为下一拍摄点位所在的位置范围。由于房屋的功能间中可能存在物体,比如衣柜、床、餐桌等,因此某些情况下,投影点与所选取的拍摄点位的连线的中点不一定是可以进行拍摄的点位,比如该中点恰好位于衣柜所在的位置。因此,根据一个示例性实施例,可以将该投影点与所选取的拍摄点位的连线上的某一线段所在的位置范围,作为下一拍摄点位所在的位置范围。根据另一示例性实施例,可以分别以所选取的拍摄点位和投影点为圆心、以预定的半径值在功能间的地面所在的二维平面上分别画圆,将两个圆相交的部分作为下一拍摄点位所在的位置范围。可以根据需要来确定预定的半径值。例如,可以将拍摄设备的有效拍摄距离的一半作为预定的半径值。根据又一示例性实施例,可以分别以所选取的拍摄点位和投影点为中心、以预定的尺寸在功能间的地面所在的二维平面上分别画出其它形状的图形,并将两个图形相交的部分作为下一拍摄点位所在的位置范围。通过确定下一拍摄点位所在的位置范围而非精确的位置,有可能在一定程度上改善下一拍摄点位预测的合理性。
在某些情况下,在所选取的拍摄点位的重新生成的深度图像中可能不存在任何满足预定条件的空洞。在这样的情况下,可以从之前已进行拍摄的拍摄点位中再次选取拍摄点位,并对于该再次选取的拍摄点位执行如图2所示的步骤202、203和204。因此,根据本发明的一个示例性的实施例,基于之前已进行拍摄的拍摄点位预测下一拍摄点位还可以包括:如果不存在满足预定条件的空洞,则确定在之前已进行拍摄的至少一个拍摄点位中是否存在尚未选取的拍摄点位;以及,如果存在尚未选取的拍摄点位,则从之前已进行拍摄的至少一个拍摄点位中再次选取拍摄点位。因此,可以通过以上方式,对于所有之前已进行拍摄的拍摄点位进行遍历,直至遍历过的所有拍摄点位中,均不存在任何满足预定条件的空洞。对于之前已进行拍摄的拍摄点位进行的遍历,例如可以按照与拍摄的时间顺序相反的顺序来进行,即,从之前已进行拍摄的拍摄点位中最新进行拍摄的拍摄点位起直至最初进行拍摄的拍摄点位。
如上所述,在对房屋进行数据采集之后,可以根据采集的数据对房屋进行建模。例如,可以通过深度图像建立房屋的模型图。然而,在采集深度图像的过程中,有可能无法精细地采集到房屋的各个功能间的细节,导致用户无法对房屋的各功能间进行较为全面的了解。因此,根据本发明的另一实施例,可以将对房屋进行的数据采集与房屋的虚拟模型的生成相结合。
图4是根据本发明的另一个实施例的对房屋进行数据采集和模型生成的方法的流程示意图,参见图4,该方法包括:
401:获取预设房屋的至少一个功能间中的每一功能间采集的深度图像和每一功能间的照片;
402:根据至少一个功能间的深度图像,创建预设房屋的虚拟3D模型,并根据至少一个功能间中的每一功能间的照片,生成该功能间的全景图像;
403:若接收到显示预设房屋的请求信息,则根据请求信息发送预设房屋的虚拟3D模型或者发送与请求信息对应的目标功能间的全景图像。
本实施例提供的方法可以由能够执行上述方法的设备执行,例如,处理器或服务器。需要进行数据采集的房屋有可能包括一个或多个功能间。例如,房屋可以包括客厅、卧室、餐厅、厨房、卫生间等多个功能间。在对于包括多个功能间的房屋进行数据采集时,既可以对于多个功能间中的每一个功能间进行数据采集,也可以对于多个功能间中的仅一个功能间或部分功能间进行数据采集。例如,如果房屋包括客厅、卧室、餐厅、厨房、卫生间,可以仅对于客厅进行数据采集,从而得到客厅的深度图像和照片,并根据客厅的深度图像,创建包含客厅的房屋的虚拟3D模型,并根据客厅的照片,生成客厅的全景图像。可选地,也可以对于客厅和卧室这两者进行数据采集,从而根据客厅的深度图像和卧室的深度图像,得到包含客厅和卧室的房屋的虚拟3D模型,并根据客厅的照片生成客厅的全景图像,根据卧室的照片生成卧室的全景图像。当然,也可以对于房屋的所有功能间都进行数据采集,根据所有功能间的深度图像,创建包含所有功能间的房屋的虚拟3D模型,并根据每一功能间的照片,生成该功能间的全景图像。
深度图像可以通过利用深度相机对房屋进行采集而得到。照片可以通过利用普通相机对功能间进行拍照而获得。可以将采集得到的深度图像转化成点云图像(也可以称为点云模型)。如果存在多个深度图像,还可以将多个深度图像转化得到的多个点云图像进行拼接融合。将深度图像转化成点云图像,以及对于多个点云图像进行拼接融合,都可以通过例如开源库中的对点云进行拼接融合的函数(例如,PCL)计算得到。根据照片生成全景图像,可以通过图像拼接技术实现(例如,通过opencv将照片合成为全景图像)。当用户需要了解房屋的结构,则通过终端发送查看房屋的虚拟3D模型的请求信息,即可获取虚拟3D模型。当用户需要了解某一功能间的局部细节图,则可以通过终端发送相应的请求信息,即可通过终端了解这一功能间的局部细节。
本实施例提供了一种对房屋进行数据采集和模型生成的方法,该方法在建立房屋的虚拟模型时,不仅获取对房屋采集的深度图像,还获取对房屋进行拍照的照片。利用深度图像创建房屋的虚拟三维模型,利用照片生成各个功能间的全景图像。当用户需要了解房屋的结构时,可以查看根据深度图像创建的虚拟三维模型,当用户需要了解功能间的具体细节时,可以通过查看该功能间的全景图像进行了解。由此,能够在展示房屋结构的同时,展示房屋各功能间的细节,从而帮助用对房屋进行全面的了解。
进一步地,在上述实施例的基础上,所述预设房屋的至少一个功能间中的每一功能间的深度图像和每一功能间的照片的采集,可以包括:
针对每一功能间,分别以所述功能间中的多个拍摄点位为中心对所述功能间进行拍摄、以得到该功能间的深度图像和照片。
该功能间的深度图像例如可以通过深度相机拍摄得到。
在对于房屋进行建模时,可能需要根据获取的房屋的全面信息来创建房屋的虚拟模型。因此,在功能间的某一拍摄点位上对于功能间进行拍摄时,例如可以以该拍摄点位为中心,对于功能间进行多角度的拍摄。例如,可以在每一功能间中选取多个拍摄点位,在每一拍摄点位上,以该拍摄点位为中心,对于功能间进行多角度的拍摄。比如,可以以该拍摄点位为中心,在0度、90度、180度和270度的角度上分别进行拍摄,或者也可以进行360度的连续环绕拍摄。在拍摄时,可以不仅通过深度相机拍摄得到深度图像,还可以通过普通相机进行拍摄而得到照片。由此,能够获取从各拍摄点位得到的房屋的各角度的信息。
在以某一拍摄点位为中心对于功能间进行多角度拍摄的情况下,可以得到对应于多个角度中每一角度的深度图像。因此,在这种情况下,该拍摄点位的深度图像可以包括分别对应于多个角度的多个深度图像。在进行数据处理时,可以将多个深度图像中的每一深度图像转化成点云图像,并将转化得到的多个点云图像进行拼接融合,从而得到该拍摄点位的深度图像所对应的点云图像。比如,以某一拍摄点位为中心,在0度、90度、180度和270度的角度上分别进行拍摄,可以得到分别对应于0度、90度、180度和270度的多个深度图像。可以将多个深度图像中的每一深度图像转化成点云图像,并将转化得到的多个点云图像进行拼接融合,从而得到该拍摄点位的深度图像所对应的点云图像。此外,还可以对多个拍摄点位的深度图像所对应的点云图像进行进一步的拼接融合。
本实施例提供了一种对房屋进行数据采集和模型生成的方法。通过在多个拍摄点位中的每一拍摄点位上进行全方位的拍摄,可以为建模提供完整的信息。
进一步地,在上述各实施例的基础上,所述分别以所述功能间的多个拍摄点位为中心对所述功能间进行拍摄、以得到该功能间的深度图像和照片,包括:
将以当前拍摄点位为中心对所述功能间进行拍摄得到的深度图像所对应的点云图像与之前已进行拍摄的拍摄点位的深度图像所对应的点云图像进行拼接融合,若拼接融合后的点云图像覆盖了所述功能间的每一角落,则基于所述当前拍摄点位的深度图像和所述之前已进行拍摄的拍摄点位的深度图像得到该功能间的深度图像;
若拼接融合后的点云图像没有覆盖到所述功能间的每一角落,则以当前拍摄点位为中心进行补拍或者重新选定拍摄点位再次进行拍摄直到得到覆盖了所述功能间的每一角落的点云图像,并基于所有已进行拍摄的拍摄点位的深度图像得到该功能间的深度图像。
进一步地,在上述各实施例的基础上,所述分别以所述功能间的多个拍摄点位为中心对所述功能间进行拍摄、以得到该功能间的深度图像和照片,还包括:
以每一个已拍摄深度图像的拍摄点位为中心,对所述功能间进行拍照,以得到所述功能间的对应于每一个已拍摄深度图像的拍摄点位的照片。
本实施例提供了一种对房屋进行数据采集和模型生成的方法,在拍摄过程中,拍摄者可以实时根据拍摄的点云图像判断是否需要对拍摄点位进行调整,或者是否需要补拍,为后续能够通过房间完整的信息建立模型提供了基础。
进一步地,在上述各实施例的基础上,所述若接收到显示所述预设房屋的请求信息,则根据所述请求信息发送所述预设房屋的虚拟3D模型或者发送与所述请求信息对应的目标功能间的全景图像,包括:
若所述请求信息为显示所述预设房屋的虚拟3D模型,则将所述预设房屋的虚拟3D模型发送到所述请求信息对应的终端;
若所述请求信息为显示所述目标功能间的全景图像,则将预先设定的所述目标功能间对应的默认视角下的全景图像发送到所述终端。
需要说明的是,用户可以通过终端向服务器发送显示预设房屋的虚拟3D模型还是显示某一功能间的全景图像的请求信息。服务器接收到请求信息后,根据请求信息向终端发送相应的图像,以提供满足用户需求的图像。
例如,当用户在屏幕上点击显示预设房屋的虚拟3D模型的操作按键时,终端向服务器发送显示所述预设房屋的虚拟3D模型的请求信息,服务器接收到请求信息后,将预设房屋的虚拟3D模型发送到该终端,以向用户展示该房屋的结构。当用户在屏幕上点击选取该房屋的某一功能间时,则直接将该功能间默认视角下的图像发送到终端,后续用户可以对所显示的默认视角下的该功能间的图像进行调节。
本实施例提供了一种对房屋进行数据采集和模型生成的方法,可以对应于不同的用户请求信息显示相应的内容,以提供满足用户需要的房屋信息。
进一步地,在上述各实施例的基础上,所述若所述请求信息为显示所述目标功能间的全景图像,则将预先设定的所述目标功能间对应的默认视角下的全景图像发送到所述终端之后,还包括:
若接收到改变当前显示的视角的信息,则获取改变后的目标视角,将对应于所述目标视角下的全景图像发送到所述终端;
其中,改变当前显示的视角的信息包括对当前显示的视角进行移动调整或者缩放调整;所述移动调整通过在所述终端左右滑动屏幕实现,所述缩放调整通过在所述终端进行缩放操作实现。
在展示某一功能间的过程中,用户可以通过滑动屏幕或者对屏幕进行缩放操作查看功能间不同位置的图像。
本实施例提供了一种对房屋进行数据采集和模型生成的方法,用户可以通过对终端的操作对房屋的不同位置进行详细的了解。
进一步地,在上述各实施例的基础上,所述至少一个功能间包括多个功能间,并且,所述若所述请求信息为显示所述目标功能间的全景图像,则将预先设定的所述目标功能间对应的默认视角下的全景图像发送到所述终端之后,还包括:
若接收到跳转到另一功能间的信息,则将预先设定的另一功能间对应的默认视角下的全景图像发送到所述终端。
可理解的是,用户在查看预设房屋的全景图像时,可以从一个功能间跳转到另一个功能间,查看其想要了解的任一功能间的内部详尽信息。
本实施例提供了一种对房屋进行数据采集和模型生成的方法,用户可以通过终端进行功能间的切换或者在观看某一功能间的全景图时进行视角范围的切换。
作为具体的示例性实施例,提供了一种示例性方法(本示例性实施例提供的示例性方法例如适合于室内拍摄的深度精度在6米左右的情形),包括:
(1)用带有深度相机和普通彩色相机的硬件设备进行拍摄,每次拍摄可以同时拍摄360度的深度图像(信息),以及对应位置的彩色照片。
(2)在拍摄过程中,拍摄人员可以通过手持的移动设备接收到拍摄的数据。
(3)可以将已经拍摄出的深度图像所对应的点云图像,自动和已有的点云图像进行拼接融合,或者,可以由拍摄人员手动将已经拍摄出的深度图像所对应的点云图像和已有的点云图像进行拼接融合。
(4)拍摄人员可以根据需要在室内的多个拍摄点位上进行拍摄,并可以在手持设备或进行拍摄的硬件设备的屏幕上看到已拍摄的点云图像的覆盖。
(5)拍摄完成后,后台系统接收到数据,并对数据进行优化处理,以生成房屋的虚拟三维模型,并利用在每个拍摄点位拍摄的普通彩色照生成对应于每个拍摄点位的全景图像。
(6)展示的时候,用户可以选择房屋的虚拟三维模型从整体上查看房屋情况,如果对细节感兴趣,也可以选择查看对应于某个具体拍摄点位的全景图像。
本实施例提供的方法既能充分展示房屋的三维结构,又能有效解决近景情况下房屋三维模型精细度不够的问题。
根据本发明的另一个实施例,如图4所示的对房屋进行数据采集和模型生成的方法例如可以与如图1所示的对房屋进行数据采集的方法相结合。
例如,在如图4所示的步骤401中,获取对预设房屋的至少一个功能间中的每一功能间采集的深度图像和每一功能间的照片。所述预设房屋的至少一个功能间中的每一功能间的深度图像和每一功能间的照片的采集可以包括:针对每一功能间,分别以所述功能间中的多个拍摄点位为中心对所述功能间进行拍摄、以得到该功能间的深度图像和照片。而所述分别以所述功能间中的多个拍摄点位为中心对所述功能间进行拍摄、以得到该功能间的深度图像和照片可以包括:基于之前已进行拍摄的至少一个拍摄点位,预测下一拍摄点位所在的位置范围,并且以从所述下一拍摄点位所在的位置范围内选取的下一拍摄点位为中心、对所述功能间进行拍摄,以得到相应的深度图像和照片。
根据本发明的另一实施例,基于之前已进行拍摄的至少一个拍摄点位,预测下一拍摄点位所在的位置范围,可以包括:从之前已进行拍摄的所述至少一个拍摄点位中选取拍摄点位;基于之前已进行拍摄的所述至少一个拍摄点位的深度图像所对应的点云图像,重新生成所选取的拍摄点位的深度图像;确定所选取的拍摄点位的重新生成的深度图像中是否存在满足预定条件的空洞;如果存在满足预定条件的空洞,则从所述空洞的边缘上选取像素点,并基于所选取的像素点的位置以及所选取的拍摄点位的位置得到下一拍摄点位所在的位置范围。
图5是根据本发明另一个实施例的对房屋进行数据采集的装置的结构框图。参见图5,对房屋进行数据采集的装置可以包括获取模块501和预测模块502。其中:
获取模块501,用于针对房屋的至少一个功能间中的每一功能间,获取以该功能间中的至少一个拍摄点位为中心、对该功能间进行拍摄得到的至少一个拍摄点位的深度图像;
预测模块502,用于基于之前已进行拍摄的至少一个拍摄点位,预测下一拍摄点位所在的位置范围。
本实施例提供的对房屋进行数据采集的装置适用于上述实施例提供的对房屋进行数据采集的方法,在此不再赘述。
根据本发明的实施例,提供了一种对房屋进行数据采集的装置。该装置可以通过基于之前已进行拍摄的拍摄点位来预测下一拍摄点位所在的位置范围,从而能够提高数据采集的完整性和/或数据采集的效率。
图6是根据本发明另一个实施例的对房屋进行数据采集和模型生成的装置的结构框图。参见图6,该对房屋进行数据采集和模型生成的装置包括获取模块601、创建模块602和执行模块603。其中:
获取模块601,用于获取对预设房屋的至少一个功能间中的每一功能间采集的深度图像和每一功能间的照片;
创建模块602,用于根据至少一个功能间的深度图像,创建预设房屋的虚拟3D模型,并根据至少一个功能间中的每一功能间的照片,生成该功能间的全景图像;
执行模块603,用于若接收到显示预设房屋的请求信息,则根据请求信息发送预设房屋的虚拟3D模型或者发送与请求信息对应的目标功能间的全景图像。
本实施例提供的对房屋进行数据采集和模型生成的装置适用于上述实施例提供的对房屋进行数据采集和模型生成的方法,在此不再赘述。
本实施例提供了一种对房屋进行数据采集和模型生成的装置,该装置在建立房屋的虚拟模型时,不仅获取对房屋采集的深度图像,还获取房屋进行拍照的照片。利用深度图像创建房屋的虚拟三维模型,利用照片生成各个功能间的全景图像。当用户需要了解房屋的结构时,可以查看根据深度图像创建的虚拟三维模型,当用户需要了解功能间的具体细节时,可以通过查看该功能间的全景图像进行了解。由此,能够在展示房屋结构的同时,展示房屋各功能间的细节,帮助用对房屋进行全面的了解。
图7是根据本发明另一个实施例的电子设备的结构框图。
参照图7,所述电子设备包括:处理器(processor)701、存储器(memory)702、通信接口(Communications Interface)703和总线704。
处理器701、存储器702、通信接口703通过总线704完成相互间的通信。
通信接口703用于该电子设备和终端的通信设备之间的信息传输。
处理器701用于调用存储器702中的程序指令,以执行上述各方法实施例所提供的方法。根据一个示例性实施例,所述方法例如包括:针对房屋的至少一个功能间中的每一功能间,获取以该功能间中的至少一个拍摄点位为中心、对该功能间进行拍摄得到的至少一个拍摄点位的深度图像;以及,基于之前已进行拍摄的至少一个拍摄点位,预测下一拍摄点位所在的位置范围。根据另一个示例性实施例,所述方法例如包括:获取预设房屋的至少一个功能间中的每一功能间采集的深度图像和每一功能间的照片;根据至少一个功能间的深度图像,创建所述预设房屋的虚拟3D模型,并根据至少一个功能间中的每一功能间的照片,生成该功能间的全景图像;若接收到显示所述预设房屋的请求信息,则根据所述请求信息发送所述预设房屋的虚拟3D模型或者发送与所述请求信息对应的目标功能间的全景图像。
根据本发明的另一实施例,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。根据一个示例性实施例,所述方法例如包括:针对房屋的至少一个功能间中的每一功能间,获取以该功能间中的至少一个拍摄点位为中心、对该功能间进行拍摄得到的至少一个拍摄点位的深度图像;以及,基于之前已进行拍摄的至少一个拍摄点位,预测下一拍摄点位所在的位置范围。根据另一个示例性实施例,所述方法例如包括:获取预设房屋的至少一个功能间中的每一功能间采集的深度图像和每一功能间的照片;根据至少一个功能间的深度图像,创建所述预设房屋的虚拟3D模型,并根据至少一个功能间中的每一功能间的照片,生成该功能间的全景图像;若接收到显示所述预设房屋的请求信息,则根据所述请求信息发送所述预设房屋的虚拟3D模型或者发送与所述请求信息对应的目标功能间的全景图像。
根据本发明的另一实施例,提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。根据一个示例性实施例,所述方法例如包括:针对房屋的至少一个功能间中的每一功能间,获取以该功能间中的至少一个拍摄点位为中心、对该功能间进行拍摄得到的至少一个拍摄点位的深度图像;以及,基于之前已进行拍摄的至少一个拍摄点位,预测下一拍摄点位所在的位置范围。根据另一个示例性实施例,所述方法例如包括:获取预设房屋的至少一个功能间中的每一功能间采集的深度图像和每一功能间的照片;根据至少一个功能间的深度图像,创建所述预设房屋的虚拟3D模型,并根据至少一个功能间中的每一功能间的照片,生成该功能间的全景图像;若接收到显示所述预设房屋的请求信息,则根据所述请求信息发送所述预设房屋的虚拟3D模型或者发送与所述请求信息对应的目标功能间的全景图像。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。