一种删除房源虚拟三维模型中细小虚像的方法及系统转让专利

申请号 : CN201810573899.4

文献号 : CN109118594B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙鑫谢哲

申请人 : 贝壳找房(北京)科技有限公司

摘要 :

本发明提供一种删除房源虚拟三维模型中细小虚像的方法及系统,该方法包括:获取房源的三维点云并把所有的点数据均匀分割到三维数组中;计算每个元素对应的点位信息和点位信息的个数;若判断获知三维数组中的第一元素对应的点位信息个数为1,且从满足第一预设条件的点位信息发出的射线在到达第一元素之前经过的元素中都不包含点数据,则将第一元素标记为虚像节点;对每个第一元素做广度优先搜索,得到对应的联通元素;若判断获知联通元素满足第二预设条件,则将联通元素标记为虚像节点;将虚像节点中包含的点数据从三维点云中删除。该方法和系统可提高房源三维模型的展示效果。

权利要求 :

1.一种删除房源虚拟三维模型中细小虚像的方法,其特征在于,包括:获取房源的三维点云,并将所述三维点云中的点数据均匀分割到一个预设的三维数组中;

计算所述三维数组中的每个元素对应的点位信息和所述点位信息的个数;

若判断获知所述三维数组中的第一元素对应的点位信息的个数为1,且从满足第一预设条件的点位信息发出的射线在到达所述第一元素之前经过的元素中都不包含点数据,则将所述第一元素标记为虚像节点;其中,所述第一预设条件包括:所述点位信息到所述第一元素的距离小于预设距离,且所述点位信息不是所述第一元素对应的点位信息;

对所述三维数组中标记为虚像节点的每个所述第一元素做广度优先搜索,得到标记为虚像节点的每个所述第一元素的联通元素;

若判断获知所述联通元素满足第二预设条件,则将所述联通元素标记为虚像节点;其中,所述第二预设条件包括:所述联通元素的个数小于预设阈值,且大于预设比例的联通元素已经被标记为虚像节点;

将所有的虚像节点中包含的点数据从所述房源的三维点云中删除。

2.根据权利要求1所述的方法,其特征在于,所述将所述三维点云中的点数据均匀分割到一个预设的三维数组中,包括:获取所述三维点云对应的三维空间坐标中每个坐标分量的最大值和最小值;

根据所述三维点云中的每个点数据的三维空间坐标和所述每个坐标分量的最大值和最小值,将所述点数据映射到所述三维数组的元素中。

3.根据权利要求1所述的方法,其特征在于,所述计算所述三维数组中的每个元素对应的点位信息和所述点位信息的个数,包括:获取所述元素中的每个点数据对应的点位信息;

若判断获知,所述元素中的第一点数据对应的点位信息的个数最多,则将所述第一点数据对应的点位信息作为所述元素对应的点位信息,将所述第一点数据对应的点位信息的个数,作为所述元素对应的点位信息的个数。

4.根据权利要求1所述的方法,其特征在于,所述对每个所述第一元素做广度优先搜索,得到每个所述第一元素的联通元素,包括:以所述第一元素为中心,对所述第一元素沿着上、下、前、后、左、右六个方向做广度优先搜索,直到已搜索过的元素的周边元素中都不包含点数据。

5.一种删除房源虚拟三维模型中细小虚像的系统,其特征在于,包括:获取模块,用于获取房源的三维点云,并将所述三维点云中的点数据均匀分割到一个预设的三维数组中;

计算模块,用于计算所述三维数组中的每个元素对应的点位信息和所述点位信息的个数;

判断模块,用于若判断获知所述三维数组中的第一元素对应的点位信息个数为1,且从满足第一预设条件的点位信息发出的射线在到达所述第一元素之前经过的元素中都不包含点数据,则将所述第一元素标记为虚像节点;其中,所述第一预设条件包括:所述点位信息到所述第一元素的距离小于预设距离,且所述点位信息不是所述第一元素对应的点位信息;

搜索模块,用于对所述三维数组中标记为虚像节点的每个所述第一元素做广度优先搜索,得到标记为虚像节点的每个所述第一元素的联通元素;

标记模块,用于若判断获知所述联通元素满足第二预设条件,则将所述联通元素标记为虚像节点;其中,所述第二预设条件包括:所述联通元素的个数小于预设阈值,且大于预设比例的联通元素已经被标记为虚像节点;

删除模块,用于将所有的虚像节点中包含的点数据从所述房源的三维点云中删除。

6.根据权利要求5所述的系统,其特征在于,所述获取模块具体用于:获取所述三维点云对应的三维空间坐标中每个坐标分量的最大值和最小值;

根据所述三维点云中的每个点数据的三维空间坐标和所述每个坐标分量的最大值和最小值,将所述点数据映射到所述三维数组的元素中。

7.根据权利要求5所述的系统,其特征在于,所述计算模块具体用于:获取所述元素中的每个点数据对应的点位信息;

若判断获知,所述元素中的第一点数据对应的点位信息的个数最多,则将所述第一点数据对应的点位信息作为所述元素对应的点位信息,将所述第一点数据对应的点位信息的个数,作为所述元素对应的点位信息的个数。

8.根据权利要求5所述的系统,其特征在于,所述搜索模块具体用于:以所述第一元素为中心,对所述第一元素沿着上、下、前、后、左、右六个方向做广度优先搜索,直到已搜索过的元素的周边元素中都不包含点数据。

9.一种电子设备,其特征在于,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至4任一所述的方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一所述的方法。

说明书 :

一种删除房源虚拟三维模型中细小虚像的方法及系统

技术领域

[0001] 本发明涉及计算机技术领域,具体涉及一种删除房源虚拟三维模型中细小虚像的方法及系统。

背景技术

[0002] 在房源的室内三维模型构建过程中,需要使用深度相机进行数据采集,深度相机除了能拍出物体的平面图像外,还能测量出物体到相机所在位置的距离,从而实现三维成像。
[0003] 每个房源中可以包括多个功能间,比如可以包括:卧室、客厅、厨房、卫生间和阳台等功能间。在对一套房源进行拍摄的过程中,每个功能间中都会有拍摄点,可以拍摄到多个点数据,这些点数据生成该功能间的点云数据。在最终展示时,需要把这些独立的点云数据拼接成一个完整的房源的虚拟三维模型。
[0004] 但是,深度相机对房源进行拍摄的过程中,由于存在各种原因,比如光线、设备等原因,导致拍摄的点云数据中有很多噪点,这些噪点可能是实际中不存在的虚线点,也可能是虚像小物体中的点,这些噪点是无效的点数据,如果采用这些点数据构建房源的三维模型,会降低房源三维模型的展示效果。

发明内容

[0005] 针对现有技术的不足,本发明提供一种删除房源虚拟三维模型中细小虚像的方法及系统。
[0006] 第一方面,本发明实施例提供一种删除房源虚拟三维模型中细小虚像的方法,所述方法包括:
[0007] 获取房源的三维点云,并将所述三维点云中的点数据均匀分割到一个预设的三维数组中;
[0008] 计算所述三维数组中的每个元素对应的点位信息和所述点位信息的个数;
[0009] 若判断获知所述三维数组中的第一元素对应的点位信息的个数为1,且从满足第一预设条件的点位信息发出的射线在到达所述第一元素之前经过的元素中都不包含点数据,则将所述第一元素标记为虚像节点;其中,所述第一预设条件包括:所述点位信息到所述第一元素的距离小于预设距离,且所述点位信息不是所述第一元素对应的点位信息;
[0010] 对每个所述第一元素做广度优先搜索,得到每个所述第一元素的联通元素;
[0011] 若判断获知所述联通元素满足第二预设条件,则将所述联通元素标记为虚像节点;其中,所述第二预设条件包括:所述联通元素的个数小于预设阈值,且大于预设比例的联通元素已经被标记为虚像节点;
[0012] 将所有的虚像节点中包含的点数据从所述房源的三维点云中删除。
[0013] 第二方面,本发明实施例提供一种删除房源虚拟三维模型中细小虚像的系统,所述系统包括:
[0014] 获取模块,用于获取房源的三维点云,并将所述三维点云中的点数据均匀分割到一个预设的三维数组中;
[0015] 计算模块,用于计算所述三维数组中的每个元素对应的点位信息和所述点位信息的个数;
[0016] 判断模块,用于若判断获知所述三维数组中的第一元素对应的点位信息个数为1,且从满足第一预设条件的点位信息发出的射线在到达所述第一元素之前经过的元素中都不包含点数据,则将所述第一元素标记为虚像节点;其中,所述第一预设条件包括:所述点位信息到所述第一元素的距离小于预设距离,且所述点位信息不是所述第一元素对应的点位信息;
[0017] 搜索模块,用于对每个所述第一元素做广度优先搜索,得到每个所述第一元素的联通元素;
[0018] 标记模块,用于若判断获知所述联通元素满足第二预设条件,则将所述联通元素标记为虚像节点;其中,所述第二预设条件包括:所述联通元素的个数小于预设阈值,且大于预设比例的联通元素已经被标记为虚像节点;
[0019] 删除模块,用于将所有的虚像节点中包含的点数据从所述房源的三维点云中删除。
[0020] 第三方面,本发明实施例提供一种电子设备,所述设备包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述删除房源虚拟三维模型中细小虚像的方法。
[0021] 第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述删除房源虚拟三维模型中细小虚像的方法。
[0022] 本发明实施例提供的删除房源虚拟三维模型中细小虚像的方法及系统,通过获取房源的三维点云,并将三维点云中的点数据均匀分割到一个预设的三维数组中,计算三维数组中的每个元素对应的点位信息和点位信息的个数,若判断获知三维数组中的第一元素对应的点位信息的个数为1,且从满足第一预设条件的点位信息发出的射线在到达第一元素之前经过的元素中都不包含点数据,则将第一元素标记为虚像节点,对每个第一元素做广度优先搜索,得到每个第一元素的联通元素,若判断获知联通元素满足第二预设条件,则将联通元素标记为虚像节点,将所有的虚像节点中包含的点数据从房源的三维点云中删除。该方法和系统可以有效地删除在深度相机拍摄过程中采集到的无效点,提高了房源虚拟三维模型的展示效果。

附图说明

[0023] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024] 图1是本发明实施例提供的删除房源虚拟三维模型中细小虚像的方法流程图;
[0025] 图2是本发明实施例提供的删除房源虚拟三维模型中细小虚像的系统的结构示意图;
[0026] 图3是本发明实施例提供的电子设备的结构示意图。

具体实施方式

[0027] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 图1是本发明实施例提供的删除房源虚拟三维模型中细小虚像的方法流程图,如图1所示,所述方法包括:
[0029] 步骤10、获取房源的三维点云,并将所述三维点云中的点数据均匀分割到一个预设的三维数组中;
[0030] 步骤11、计算所述三维数组中的每个元素对应的点位信息和所述点位信息的个数;
[0031] 步骤12、若判断获知所述三维数组中的第一元素对应的点位信息的个数为1,且从满足第一预设条件的点位信息发出的射线在到达所述第一元素之前经过的元素中都不包含点数据,则将所述第一元素标记为虚像节点;其中,所述第一预设条件包括:所述点位信息到所述第一元素的距离小于预设距离,且所述点位信息不是所述第一元素对应的点位信息;
[0032] 步骤13、对每个所述第一元素做广度优先搜索,得到每个所述第一元素的联通元素;
[0033] 步骤14、若判断获知所述联通元素满足第二预设条件,则将所述联通元素标记为虚像节点;其中,所述第二预设条件包括:所述联通元素的个数小于预设阈值,且大于预设比例的联通元素已经被标记为虚像节点;
[0034] 步骤15、将所有的虚像节点中包含的点数据从所述房源的三维点云中删除。
[0035] 具体地,可以使用深度相机采集房源的点云,深度相机可以被放置在房源中的不同位置,深度相机所在的一个位置就是一个点位,系统可以在数据库中保存深度相机所在的点位信息以及深度相机在每个点位处采集到的点数据,深度相机在房源中的各个点位处采集到的点数据总和,构成了房源的三维点云。
[0036] 系统可以预先创建一个三维数组,比如可以创建一个octree[256][256][256],该三维数组中包括多个元素。然后,系统可以从数据库中获取房源的三维点云,并将三维点云中的点数据均匀分割到该三维数组中。分割完成之后,三维数组的一个元素中可以包含0个、1个或多个点数据。
[0037] 三维点云中的每个点数据都是深度相机在一个点位信息处采集到的,系统可以在数据库中保存点位信息与点数据之间的对应关系。对于三维数组中的任意一个元素,系统可以根据点位信息与点数据之间的对应关系以及该元素中包含的点数据,计算出该元素对应的点位信息和对应的点位信息的个数。一个元素可以对应0个、1个或多个点位信息。
[0038] 可以将三维数组中的一个元素记为第一元素,如果第一元素只对应1个点位信息,比如,第一元素只对应点位信息M,表示第一元素中包含的点数据只在点位信息M处被深度相机采集到。
[0039] 系统可以预先设定一个距离,预设距离可以根据深度相机的拍摄精度具体设定,比如,深度相机的拍摄精度约为4.5米,可以将预设距离设定为5米。
[0040] 如果存在另一个点位信息N,点位信息N到第一元素的距离小于预设距离,这表示深度相机在点位信息N处也应该可以采集到第一元素包含的点数据。系统可以从点位信息N处发出一条射线,这条射线经过第一元素,可以将这条射线记为射线l。射线l从点位信息N发出后,在到达第一元素之前,可以经过一个或多个其他的元素,如果射线l经过的所有元素中都不包含点数据,则说明深度相机在点位信息N处应该可以采集到第一元素中包含的点数据,但是由于第一元素只与点位信息M相对应,说明实际上在点位信息N中并没有采集到第一元素中包含的点数据。此时,可以将第一元素标记为虚像节点,第一元素包含的点数据都是虚像对应的点数据。
[0041] 系统可以按照上述方法,遍历三维数组中的元素,找出所有满足上述条件的第一元素,并将所有的第一元素标记为虚像节点。
[0042] 然后,系统可以对每个第一元素做广度优先搜索,找到与每个第一元素联通的包含点数据的元素,可以将查找到的元素记为第一元素的联通元素。
[0043] 每个第一元素的联通元素可以有多个,系统可以预先设定一个阈值,可以将预设阈值设定为50,系统还可以预先设定一个比例,可以将预设比例设定为25%。如果第一元素的联通元素个数小于50,且其中有大于25%的联通元素已经被标记为虚像节点,则系统可以将该第一元素的所有联通元素都标记为虚像节点。
[0044] 系统可以按照上述方法对每个第一元素的联通元素进行虚像节点标记。然后,将所有的虚像节点中包含的点数据从房源的三维点云中删除。
[0045] 本发明实施例提供的删除房源虚拟三维模型中细小虚像的方法,通过获取房源的三维点云,并将三维点云中的点数据均匀分割到一个预设的三维数组中,计算三维数组中的每个元素对应的点位信息和点位信息的个数,若判断获知三维数组中的第一元素对应的点位信息的个数为1,且从满足第一预设条件的点位信息发出的射线在到达第一元素之前经过的元素中都不包含点数据,则将第一元素标记为虚像节点,对每个第一元素做广度优先搜索,得到每个第一元素的联通元素,若判断获知联通元素满足第二预设条件,则将联通元素标记为虚像节点,将所有的虚像节点中包含的点数据从房源的三维点云中删除。该方法可以有效地删除在深度相机拍摄过程中采集到的无效点,提高了房源虚拟三维模型的展示效果。
[0046] 可选地,在上述实施例的基础上,所述将所述三维点云中的点数据均匀分割到一个预设的三维数组中,包括:
[0047] 获取所述三维点云对应的三维空间坐标中每个坐标分量的最大值和最小值;
[0048] 根据所述三维点云中的每个点数据的三维空间坐标和所述每个坐标分量的最大值和最小值,将所述点数据映射到所述三维数组的元素中。
[0049] 具体地,系统可以获取三维点云中的每个点数据的三维空间坐标,从中筛选出每个坐标分量的最大值和最小值,比如可以包括:x坐标分量的最大值rangeH_x、x坐标分量的最小值rangeL_x、y坐标分量的最大值rangeH_y、y坐标分量的最小值rangeL_y、z坐标分量的最大值rangeH_z和z坐标分量的最小值rangeL_z。
[0050] 然后,如果三维点云中的一个点数据对应的空间坐标为(x,y,z),则系统可以按照如下映射公式,将该点数据映射到三维数组中的一个元素(i,j,k)中。
[0051] i=256×(x-rangeL_x)/(rangeH_x-rangeL_x);
[0052] j=256×(y-rangeL_y)/(rangeH_y-rangeL_y);
[0053] k=256×(z-rangeL_z)/(rangeH_z-rangeL_z);
[0054] 系统可以按照上述方法,将房源三维点云中的每个点数据映射到三维数组中的一个元素中。
[0055] 本发明实施例提供的删除房源虚拟三维模型中细小虚像的方法,通过获取三维点云对应的三维空间坐标中每个坐标分量的最大值和最小值,根据三维点云中的每个点数据的三维空间坐标和每个坐标分量的最大值和最小值,将三维点云中的每个点数据映射到三维数组的元素中,这使得所述方法更加科学。
[0056] 可选地,在上述实施例的基础上,所述计算所述三维数组中的每个元素对应的点位信息和所述点位信息的个数,包括:
[0057] 获取所述元素中的每个点数据对应的点位信息;
[0058] 若判断获知,所述元素中的第一点数据对应的点位信息的个数最多,则将所述第一点数据对应的点位信息作为所述元素对应的点位信息,将所述第一点数据对应的点位信息的个数,作为所述元素对应的点位信息的个数。
[0059] 具体地,每个元素中可以包括0个、1个或多个点数据。点数据与点位信息之间存在对应关系,对于一个具体点数据,可以根据对应关系查找到深度相机在哪些点位信息处采集到了该点数据。一个点位数据可以对应一个或多个点位信息,如果只对应一个点位信息,说明深度相机只在一个点位信息处采集到该点数据,如果对应多个点位信息,则说明深度相机在多个点位信息处都采集到了该点数据。
[0060] 系统可以获取一个元素内的每个点数据对应的点位信息,筛选出对应的点位信息个数最多的点数据,可以将该点数据记为第一点数据,系统可以将第一点数据对应的点位信息作为元素对应的点位信息,将第一点数据对应的点位信息的个数作为元素对应的点位信息的个数。
[0061] 比如,一个元素中包含20个点数据,其中有一个点数据对应的点位信息最多,一共对应两个点位信息,分别为点位信息M和点位信息N,则系统可以将这个点数据记为第一点数据,并将第一点数据对应的点位信息M和点位信息N作为该元素对应的点位信息,且该元素对应的点位信息的个数为2。
[0062] 本发明实施例提供的删除房源虚拟三维模型中细小虚像的方法,通过获取元素中的每个点数据对应的点位信息,若判断获知,元素中的第一点数据对应的点位信息的个数最多,则将第一点数据对应的点位信息作为元素对应的点位信息,将第一点数据对应的点位信息的个数,作为元素对应的点位信息的个数,这使得所述方法更加科学。
[0063] 可选地,在上述实施例的基础上,所述对每个所述第一元素做广度优先搜索,得到每个所述第一元素的联通元素,包括:
[0064] 以所述第一元素为中心,对所述第一元素沿着上、下、前、后、左、右六个方向做广度优先搜索,直到已搜索过的元素的周边元素中都不包含点数据。
[0065] 具体地,在对第一元素做广度优先搜索时,系统可以以第一元素为中心,沿着上、下、前、后、左、右六个方向做广度优先搜索,搜索与第一元素联通的包含点数据的元素,直至已经搜索过的元素的周边元素中都不包含点数据,此时,停止广度优先搜索。
[0066] 系统可以按照上述方法对每个第一元素做广度优先搜索,找到每个第一元素对应的联通元素。
[0067] 本发明实施例提供的删除房源虚拟三维模型中细小虚像的方法,通过以第一元素为中心,对第一元素沿着上、下、前、后、左、右六个方向做广度优先搜索,直到已搜索过的元素的周边元素中都不包含点数据,这使得所述方法更加科学。
[0068] 图2是本发明实施例提供的删除房源虚拟三维模型中细小虚像的系统的结构示意图,如图2所示,所述系统包括:获取模块20、计算模块21、判断模块22、搜索模块23、标记模块24和删除模块25,其中:
[0069] 获取模块20用于获取房源的三维点云,并将所述三维点云中的点数据均匀分割到一个预设的三维数组中;计算模块21用于计算所述三维数组中的每个元素对应的点位信息和所述点位信息的个数;判断模块22用于若判断获知所述三维数组中的第一元素对应的点位信息个数为1,且从满足第一预设条件的点位信息发出的射线在到达所述第一元素之前经过的元素中都不包含点数据,则将所述第一元素标记为虚像节点;其中,所述第一预设条件包括:所述点位信息到所述第一元素的距离小于预设距离,且所述点位信息不是所述第一元素对应的点位信息;搜索模块23用于对每个所述第一元素做广度优先搜索,得到每个所述第一元素的联通元素;标记模块24用于若判断获知所述联通元素满足第二预设条件,则将所述联通元素标记为虚像节点;其中,所述第二预设条件包括:所述联通元素的个数小于预设阈值,且大于预设比例的联通元素已经被标记为虚像节点;删除模块25用于将所有的虚像节点中包含的点数据从所述房源的三维点云中删除。
[0070] 具体地,本发明实施例提供的删除房源虚拟三维模型中细小虚像的系统,可以包括:获取模块20、计算模块21、判断模块22、搜索模块23、标记模块24和删除模块25。
[0071] 获取模块20可以预先创建一个三维数组,比如可以创建一个octree[256][256][256],该三维数组中包括多个元素。然后,获取模块20可以从数据库中获取房源的三维点云,并将三维点云中的点数据均匀分割到该三维数组中。分割完成之后,三维数组的一个元素中可以包含0个、1个或多个点数据。
[0072] 三维点云中的每个点数据都是深度相机在一个点位信息处采集到的,可以在数据库中保存点位信息与点数据之间的对应关系。对于三维数组中的任意一个元素,计算模块21可以根据点位信息与点数据之间的对应关系以及该元素中包含的点数据,计算出该元素对应的点位信息和对应的点位信息的个数。一个元素可以对应0个、1个或多个点位信息。
[0073] 可以将三维数组中的一个元素记为第一元素,如果第一元素只对应1个点位信息,比如,第一元素只对应点位信息M,表示第一元素中包含的点数据只在点位信息M处被深度相机采集到。
[0074] 判断模块22可以预先设定一个距离,预设距离可以根据深度相机的拍摄精度具体设定,比如,深度相机的拍摄精度约为4.5米,可以将预设距离设定为5米。
[0075] 如果存在另一个点位信息N,点位信息N到第一元素的距离小于预设距离,这表示深度相机在点位信息N处也应该可以采集到第一元素包含的点数据。判断模块22可以从点位信息N处发出一条射线,这条射线经过第一元素,可以将这条射线记为射线l。射线l从点位信息N发出后,在到达第一元素之前,可以经过一个或多个其他的元素,如果射线l经过的所有元素中都不包含点数据,则说明深度相机在点位信息N处应该可以采集到第一元素中包含的点数据,但是由于第一元素只与点位信息M相对应,说明实际上在点位信息N中并没有采集到第一元素中包含的点数据。此时,判断模块22可以将第一元素标记为虚像节点,第一元素包含的点数据都是虚像对应的点数据。
[0076] 判断模块22可以按照上述方法,遍历三维数组中的元素,找出所有满足上述条件的第一元素,并将所有的第一元素标记为虚像节点。
[0077] 搜索模块23可以对每个第一元素做广度优先搜索,找到与每个第一元素联通的包含点数据的元素,可以将查找到的元素记为第一元素的联通元素。
[0078] 每个第一元素的联通元素可以有多个,标记模块24可以预先设定一个阈值,可以将预设阈值设定为50,标记模块24还可以预先设定一个比例,可以将预设比例设定为25%。如果第一元素的联通元素个数小于50,且其中有大于25%的联通元素已经被标记为虚像节点,则标记模块24可以将该第一元素的所有联通元素都标记为虚像节点。
[0079] 标记模块24可以按照上述方法对每个第一元素的联通元素进行虚像节点标记。删除模块25可以将所有的虚像节点中包含的点数据从房源的三维点云中删除。
[0080] 本发明实施例提供的删除房源虚拟三维模型中细小虚像的系统,其功能具体参照上述方法实施例,此处不再赘述。
[0081] 本发明实施例提供的删除房源虚拟三维模型中细小虚像的系统,通过获取房源的三维点云,并将三维点云中的点数据均匀分割到一个预设的三维数组中,计算三维数组中的每个元素对应的点位信息和点位信息的个数,若判断获知三维数组中的第一元素对应的点位信息的个数为1,且从满足第一预设条件的点位信息发出的射线在到达第一元素之前经过的元素中都不包含点数据,则将第一元素标记为虚像节点,对每个第一元素做广度优先搜索,得到每个第一元素的联通元素,若判断获知联通元素满足第二预设条件,则将联通元素标记为虚像节点,将所有的虚像节点中包含的点数据从房源的三维点云中删除。该系统可以有效地删除在深度相机拍摄过程中采集到的无效点,提高了房源虚拟三维模型的展示效果。
[0082] 可选地,在上述实施例的基础上,所述获取模块具体用于:
[0083] 获取所述三维点云对应的三维空间坐标中每个坐标分量的最大值和最小值;
[0084] 根据所述三维点云中的每个点数据的三维空间坐标和所述每个坐标分量的最大值和最小值,将所述点数据映射到所述三维数组的元素中。
[0085] 具体地,上述实施例中所述的获取模块可以获取三维点云中的每个点数据的三维空间坐标,从中筛选出每个坐标分量的最大值和最小值,比如可以包括:x坐标分量的最大值rangeH_x、x坐标分量的最小值rangeL_x、y坐标分量的最大值rangeH_y、y坐标分量的最小值rangeL_y、z坐标分量的最大值rangeH_z和z坐标分量的最小值rangeL_z。
[0086] 然后,如果三维点云中的一个点数据对应的空间坐标为(x,y,z),则获取模块可以按照如下映射公式,将该点数据映射到三维数组中的一个元素(i,j,k)中。
[0087] i=256×(x-rangeL_x)/(rangeH_x-rangeL_x);
[0088] j=256×(y-rangeL_y)/(rangeH_y-rangeL_y);
[0089] k=256×(z-rangeL_z)/(rangeH_z-rangeL_z);
[0090] 获取模块可以按照上述方法,将房源三维点云中的每个点数据映射到三维数组中的一个元素中。
[0091] 本发明实施例提供的删除房源虚拟三维模型中细小虚像的系统,通过获取三维点云对应的三维空间坐标中每个坐标分量的最大值和最小值,根据三维点云中的每个点数据的三维空间坐标和每个坐标分量的最大值和最小值,将三维点云中的每个点数据映射到三维数组的元素中,这使得所述系统更加科学。
[0092] 可选地,在上述实施例的基础上,所述计算模块具体用于:
[0093] 获取所述元素中的每个点数据对应的点位信息;
[0094] 若判断获知,所述元素中的第一点数据对应的点位信息的个数最多,则将所述第一点数据对应的点位信息作为所述元素对应的点位信息,将所述第一点数据对应的点位信息的个数,作为所述元素对应的点位信息的个数。
[0095] 具体地,每个元素中可以包括0个、1个或多个点数据。点数据与点位信息之间存在对应关系,对于一个具体点数据,可以根据对应关系查找到深度相机在哪些点位信息处采集到了该点数据。一个点位数据可以对应一个或多个点位信息,如果只对应一个点位信息,说明深度相机只在一个点位信息处采集到该点数据,如果对应多个点位信息,则说明深度相机在多个点位信息处都采集到了该点数据。
[0096] 计算模块可以获取一个元素内的每个点数据对应的点位信息,筛选出对应的点位信息个数最多的点数据,可以将该点数据记为第一点数据,计算模块可以将第一点数据对应的点位信息作为元素对应的点位信息,将第一点数据对应的点位信息的个数作为元素对应的点位信息的个数。
[0097] 比如,一个元素中包含20个点数据,其中有一个点数据对应的点位信息最多,一共对应两个点位信息,分别为点位信息M和点位信息N,则计算模块可以将这个点数据记为第一点数据,并将第一点数据对应的点位信息M和点位信息N作为该元素对应的点位信息,且该元素对应的点位信息的个数为2。
[0098] 本发明实施例提供的删除房源虚拟三维模型中细小虚像的系统,通过获取元素中的每个点数据对应的点位信息,若判断获知,元素中的第一点数据对应的点位信息的个数最多,则将第一点数据对应的点位信息作为元素对应的点位信息,将第一点数据对应的点位信息的个数,作为元素对应的点位信息的个数,这使得所述系统更加科学。
[0099] 可选地,在上述实施例的基础上,所述搜索模块具体用于:
[0100] 以所述第一元素为中心,对所述第一元素沿着上、下、前、后、左、右六个方向做广度优先搜索,直到已搜索过的元素的周边元素中都不包含点数据。
[0101] 具体地,在对第一元素做广度优先搜索时,搜索模块可以以第一元素为中心,沿着上、下、前、后、左、右六个方向做广度优先搜索,搜索与第一元素联通的包含点数据的元素,直至已经搜索过的元素的周边元素中都不包含点数据,此时,停止广度优先搜索。
[0102] 搜索模块可以按照上述方法对每个第一元素做广度优先搜索,找到每个第一元素对应的联通元素。
[0103] 本发明实施例提供的删除房源虚拟三维模型中细小虚像的系统,通过以第一元素为中心,对第一元素沿着上、下、前、后、左、右六个方向做广度优先搜索,直到已搜索过的元素的周边元素中都不包含点数据,这使得所述系统更加科学。
[0104] 图3为本发明实施例提供的电子设备的结构示意图,如图3所示,所述设备包括:处理器(processor)31、存储器(memory)32和总线33,其中:
[0105] 所述处理器31和所述存储器32通过所述总线33完成相互间的通信;所述处理器31用于调用所述存储器32中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取房源的三维点云,并将所述三维点云中的点数据均匀分割到一个预设的三维数组中;
计算所述三维数组中的每个元素对应的点位信息和所述点位信息的个数;若判断获知所述三维数组中的第一元素对应的点位信息的个数为1,且从满足第一预设条件的点位信息发出的射线在到达所述第一元素之前经过的元素中都不包含点数据,则将所述第一元素标记为虚像节点;其中,所述第一预设条件包括:所述点位信息到所述第一元素的距离小于预设距离,且所述点位信息不是所述第一元素对应的点位信息;对每个所述第一元素做广度优先搜索,得到每个所述第一元素的联通元素;若判断获知所述联通元素满足第二预设条件,则将所述联通元标记为虚像节点;其中,所述第二预设条件包括:所述联通元素的个数小于预设阈值,且大于预设比例的联通元素已经被标记为虚像节点;将所有的虚像节点中包含的点数据从所述房源的三维点云中删除。
[0106] 本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取房源的三维点云,并将所述三维点云中的点数据均匀分割到一个预设的三维数组中;计算所述三维数组中的每个元素对应的点位信息和所述点位信息的个数;若判断获知所述三维数组中的第一元素对应的点位信息的个数为1,且从满足第一预设条件的点位信息发出的射线在到达所述第一元素之前经过的元素中都不包含点数据,则将所述第一元素标记为虚像节点;其中,所述第一预设条件包括:所述点位信息到所述第一元素的距离小于预设距离,且所述点位信息不是所述第一元素对应的点位信息;对每个所述第一元素做广度优先搜索,得到每个所述第一元素的联通元素;若判断获知所述联通元素满足第二预设条件,则将所述联通元素标记为虚像节点;其中,所述第二预设条件包括:所述联通元素的个数小于预设阈值,且大于预设比例的联通元素已经被标记为虚像节点;将所有的虚像节点中包含的点数据从所述房源的三维点云中删除。
[0107] 本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取房源的三维点云,并将所述三维点云中的点数据均匀分割到一个预设的三维数组中;计算所述三维数组中的每个元素对应的点位信息和所述点位信息的个数;若判断获知所述三维数组中的第一元素对应的点位信息的个数为1,且从满足第一预设条件的点位信息发出的射线在到达所述第一元素之前经过的元素中都不包含点数据,则将所述第一元素标记为虚像节点;其中,所述第一预设条件包括:所述点位信息到所述第一元素的距离小于预设距离,且所述点位信息不是所述第一元素对应的点位信息;对每个所述第一元素做广度优先搜索,得到每个所述第一元素的联通元素;若判断获知所述联通元素满足第二预设条件,则将所述联通元素标记为虚像节点;其中,所述第二预设条件包括:所述联通元素的个数小于预设阈值,且大于预设比例的联通元素已经被标记为虚像节点;将所有的虚像节点中包含的点数据从所述房源的三维点云中删除。
[0108] 以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0109] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0110] 以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。