发明内容
本发明实施例所要解决的一个技术问题是:提供多点云平面融合方法及装置,解决现有技术房源三维模型构建过程中,室内三维点云平面数量繁多等、无法有效融合的问题。
根据本发明的一个方面,提供了一种多点云平面融合方法,包括:
对室内场景进行三维扫描,获取室内三维点云平面;
将所述室内三维点云平面根据预设条件进行分组;所述预设条件包括:所述室内三维点云平面的法向量的朝向夹角小于预设角度或所述室内三维点云平面的质心在其法向量均值的投影小于预设距离;
对每个所述分组内的室内三维点云平面分别计算交叉面积和交叉面积比;
将每个所述分组内的所述交叉面积和交叉面积比分别大于预设阈值的所述室内三维点云平面重投影,得到室内三维点云融合平面。
可选地,在本发明多点云平面融合方法的任一实施例中,所述室内三维点云平面根据如下方法获取:
将根据室内深度全景图得到的室内三维点云中的所有点分别划分到各自所属的点集中;
分别将所述点集中的点根据其法向量和相互距离进行合并,形成所述点集对应的室内三维点云平面,将所述点集内每个点的法向量均值作为所述室内三维点云平面的法向量。
可选地,在本发明多点云平面融合方法的任一实施例中,所述将室内三维点云平面根据预设条件进行分组,包括:
将所述室内三维点云平面根据法向量方向分为水平平面分组和竖直平面分组。
可选地,在本发明多点云平面融合方法的任一实施例中,所述竖直平面分组,包括:
对于室内三维点云平面P
v,其法向量为(N
v0,N
v1,N
v2);设置法向量阈值β,若所述室内三维点云平面的法向量满足
则将所述室内三维点云平面划分至竖直平面分组中。
可选地,在本发明多点云平面融合方法的任一实施例中,对于所述竖直平面分组,所述将室内三维点云平面根据预设条件进行分组,包括:
将各个所述室内三维点云平面的法向量的角度按照0度-360度升序排列;
将角度差距在5度以内的所述室内三维点云平面分至一个第一竖直分组,共有M1个第一竖直分组;
在每组所述M1个第一竖直分组中,计算所有所述室内三维点云平面的法向量均值Navg;
计算平面质心Centoridi在所述法向量均值Navg上的投影Di;
将所述Di从小到大依次排列,将质心距离差距在预设距离以内的平面分在一个第二竖直分组,此时共有M2个第二竖直分组。
可选地,在本发明多点云平面融合方法的任一实施例中,对于所述竖直平面分组,包括:
如果所述室内三维点云平面的Nv0<Nv2,将其投影至XOY平面;如果所述室内三维点云平面的Nv0>NV2,将其投影至YOZ平面。
可选地,在本发明多点云平面融合方法的任一实施例中,对于所述竖直平面分组,对每个所述分组内的室内三维点云平面分别计算交叉面积和交叉面积比,包括:
将所述室内三维点云平面在所述XOY平面或YOZ平面上的投影划分为边长为a的若干个网格;
计算室内三维点云平面A和室内三维点云平面B的公共部分C的面积,所述公共部分C的面积等于公共部分C占用所述网格的个数×a2;
计算最大交叉面积比,所述最大交叉面积比等于max(SC/SA,SC/SB),其中SA、SB、SC分别为室内三维点云平面A、室内三维点云平面B、公共部分C的区域面积。
可选地,在本发明多点云平面融合方法的任一实施例中,对每个所述分组内的室内三维点云平面分别计算交叉面积,包括:
所述交叉面积除以余弦相似度cos(θ)得到投影之前的交叉面积,其中:
可选地,在本发明多点云平面融合方法的任一实施例中,所述水平平面分组,包括:
对于室内三维点云平面Ph,法向量为Nh;法向量Nh与Y轴之间的夹角为ε;设置阈值α,若cos(ε)≥α,将其分至天花板平面分组中;若cos(ε)≤-α,将其分至地面分组中。
可选地,在本发明多点云平面融合方法的任一实施例中,对于所述水平平面分组,包括:
计算所述水平平面分组内所述室内三维点云平面两两之间的距离、交叉面积和最大交面积比;
所述距离为两个所述室内三维点云平面的差的绝对值;所述交叉面积为将两个所述室内三维点云平面投影在XOY平面上的交叉区域的大小。
可选地,在本发明多点云平面融合方法的任一实施例中,对于所述水平平面分组,对每个所述分组内的室内三维点云平面分别计算交叉面积和交叉面积比,包括:
将所述室内三维点云平面在所述XOZ平面上的投影划分为边长为a的若干个网格;
计算室内三维点云平面A和室内三维点云平面B的公共部分C的面积,所述公共部分C的面积等于公共部分C占用所述网格的个数×a2;
计算最大交叉面积比,所述最大交叉面积比等于max(SC/SA,SC/SB),其中SA、SB、SC分别为室内三维点云平面A、室内三维点云平面B、公共部分C的区域面积。
可选地,在本发明多点云平面融合方法的任一实施例中,所述将每个所述分组内的所述交叉面积和交叉面积比分别大于预设阈值的所述室内三维点云平面重投影,包括:
将每个所述分组内的所述交叉面积和交叉面积比分别大于预设阈值的所述室内三维点云平面划分为一个分组;
将所述一个分组的所有所述室内三维点云平面对应的所有点云汇聚在一起,重新计算对应平面的参数。
可选地,在本发明多点云平面融合方法的任一实施例中,所述重新计算对应平面的参数,包括:
平面的质心C为(Cx,Cy,Cz);
设定所述点云一共有N个点,点坐标为(xi,yi,zi),计算如下:
所述平面的质心:
平面的法向量根据如下方式获取:
获取所有点的法向量;
对获取到的所有点的法向量进行算术平均,得到算术平均向量;
将所述算术平均向量作为平面的法向量。
可选地,在本发明多点云平面融合方法的任一实施例中,所述重新计算对应平面的参数,包括:
参数dnew为所述对应平面与原点O的距离,根据如下方式获取:
设定所述点云一共有N个点,点坐标为(xi,yi,zi),计算如下:
dnew=-Nnew·(Cx,Cy,Cz);其中,所述Nnew为对应平面的法向量。
可选地,在本发明多点云平面融合方法的任一实施例中,所述将每个所述分组内的所述交叉面积和交叉面积比分别大于预设阈值的所述室内三维点云平面重投影,包括:
将所有的点全部投影到所述对应平面上,包括:
设定投影前的点为P,投影后的点为Pz,则:
根据本发明的另一个方面,提供了一种多点云平面融合装置,包括分组单元、计算单元和重投影单元,其中,
所述分组单元,用于将室内三维点云平面根据预设条件进行分组;所述预设条件包括:所述室内三维点云平面的法向量的朝向夹角小于预设角度或所述室内三维点云平面的质心在其法向量均值的投影小于预设距离;
所述计算单元,用于对每个所述分组内的室内三维点云平面分别计算交叉面积和交叉面积比;
所述重投影单元,用于将每个所述分组内的所述交叉面积和交叉面积比分别大于预设阈值的所述室内三维点云平面重投影,得到室内三维点云融合平面。
可选地,在本发明多点云平面融合装置的任一实施例中,所述装置还包括平面获取单元,用于将根据室内深度全景图得到的室内三维点云中的所有点分别划分到各自所属的点集中;分别将所述点集中的点根据其法向量和相互距离进行合并,形成所述点集对应的室内三维点云平面,将所述点集内每个点的法向量均值作为所述室内三维点云平面的法向量。
根据本发明的另一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行任一上述所述的方法。
根据本发明的另一个方面,提供了一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现任一上述所述的方法。
基于本发明上述实施例提供的多点云平面融合方案,主要包括如下有益效果:
将室内三维点云平面根据其法向量的朝向夹角小于预设角度或质心在其法向量均值的投影小于预设距离进行分组,然后分别计算每个所述分组内的室内三维点云平面相互的交叉面积和交叉面积比;将每个所述分组内的所述交叉面积和交叉面积比分别大于预设阈值的所述室内三维点云平面重投影,得到室内三维点云融合平面。融合后的融合平面数量相对于室内三维点云平面有极大下降,属于同一平面的点云数据被融合到同一平面中,极大的提高了室内三维模型的展示效果。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
重建三维场景的时候,一般是将各个点位拍摄到深度图转为点云,而后估计每个空间点的法向量,再将法向量接近的点归为同一个平面,最后再将各个点位的平面综合起来。在法向量估计和平面检测的过程中,大的平面也会被分割为多个小平面。为了使得被重复拍摄到的平面不再冗余,使得被分割开来的若干个小平面可以融合为一个完整的大平面,本发明的方案被提出。在引入本发明方案之后,平面数减少,平面不再冗余。同时,平面更加完整和规整,得到一个更加简洁平整的三维点云。
本发明中,对于每个相机点位拍摄得到的点云数据,通过plane_segmentation得到许多小的单独平面,每个平面有自己的法向量。然后将所有点位的平面集中起来,就是整个三维模型的所有平面,这些平面是由一个个空间点组成的。
如图1所示,为本实施例提供的多点云平面融合方法原理流程示意图,其中,
步骤11,对室内场景进行三维扫描,获取室内三维点云平面。
在室内场景3D扫描过程中,常常需要进行多个不同点位的拍摄。此时,同一个平面(比如天花板,墙面)会被不同点位的相机拍到,大的平面有时候会被分割为若干个小平面。
重建三维场景的时候,一般是将各个点位拍摄到深度图转为点云,而后估计每个空间点的法向量,再将法向量接近的点归为同一个平面,最后再将各个点位的平面综合起来,得到室内三位点云平面。
室内三维点云平面,通常是通过深度相机获得的深度全景图是大量离散的点数据融合而来,由于种种原因,这种融合后的室内三维点云平面仍然数量较多,无法有效反应实际的平面效果。
步骤12,将室内三维点云平面根据预设条件进行分组。
在本发明的一个实施例中,所述室内三维点云平面根据如下方法获取:
将根据室内深度全景图得到的室内三维点云中的所有点分别划分到各自所属的点集中;分别将所述点集中的点根据其法向量和相互距离进行合并,形成所述点集对应的室内三维点云平面,将所述点集内每个点的法向量均值作为所述室内三维点云平面的法向量。
在本发明的一个实施例中,预设条件可以包含筛选室内三维点云平面是否能够合并的初步条件,例如,可以包括室内三维点云平面的法向量的朝向夹角是否小于预设角度,还可以包括所述室内三维点云平面的质心在其法向量均值的投影是否小于预设距离。法向量均值,即为室内三维点云平面的法向量均值,可以由多边形平面和某一顶点所决定的锥面及其对应侧面的法向量均值给出多边形平面法向量均值。或者,由室内三维点云平面和某一顶点所决定的锥面及其对应侧面的法向量均值计算室内三维点云平面法向量均值。对于多边形平面法向量均值的计算,是现有技术常规方案,此处不再赘述。这一步的目的在于将大量室内三维点云平面分为各个组,保证组内的室内三维点云平面两两之间十分接近(根据其法向量朝向或者质心投影的距离)。
步骤13,对每个所述分组内的室内三维点云平面分别计算交叉面积和交叉面积比。
在本发明的一个实施例中,通过计算室内三维点云平面分别计算交叉面积和交叉面积比来判断是否具备融合条件。距离是两个平面d的差的绝对值,交叉面积是将两个平面投影在XOY平面或YOZ平面上的交叉区域的大小。
在本发明的一个实施例中,所采用的坐标系与通常的三维坐标系不同,其中,X轴、Z轴为平面坐标轴,Y轴为垂直向下的坐标轴。本申请各个实施例均采用此种坐标系。其中XOY平面或YOZ平面为竖直平面,XOZ平面为水平平面。
在本发明的一个实施例中,当交叉面积和交叉面积比大于预设的阈值时,认为两个室内三维点云平面具备融合的条件。
在本发明的一个实施例中,需要遍历所有的室内三维点云平面来确定是否互相具备融合条件。
在本发明的一个实施例中,在最终融合时,可以是室内三维点云平面两两的融合,然后逐级融合成为更大的平面,也可以是多个具备融合条件的室内三维点云平面同时进行融合。
步骤14,将每个所述分组内的所述交叉面积和交叉面积比分别大于预设阈值的所述室内三维点云平面重投影,得到室内三维点云融合平面。
将符合条件的室内三维点云平面融合,使符合条件的平面合并成同一个平面,减少平面数,使得平面更加规整。
在本发明的一个实施例中,将分为一组的所有室内三维点云平面的所有点云都汇聚在一起,重新计算新平面的参数。
本发明实施例的方案,可以融合接近1/3的室内三维点云平面,使平面变得更加的简洁和规整。
在本发明的一个实施例中,将所述室内三维点云平面根据法向量方向分为水平平面分组和竖直平面分组。由于水平平面和竖直平面的融合方法计算过程存在差异,因而,需要将二者区别对待。
在本发明的一个实施例中,对于室内三维点云平面P
v,其法向量为(N
v0,N
v1,N
v2);设置法向量阈值β,若所述室内三维点云平面的法向量满足
则将所述室内三维点云平面划分至竖直平面分组中。
如图2所示,为竖直平面融合原理流程图,其中,将各个所述室内三维点云平面的法向量的角度按照0度-360度升序排列;
将角度差距在5度以内的所述室内三维点云平面分至一个第一竖直分组,共有M1个第一竖直分组;
在每组所述M1个第一竖直分组中,计算所有所述室内三维点云平面的法向量均值Navg;
计算平面质心Centoridi在所述法向量均值Navg上的投影Di;
将所述Di从小到大依次排列,将质心距离差距在预设距离以内的平面分在一个第二竖直分组,此时共有M2个第二竖直分组。
如果所述室内三维点云平面的Nv0<Nv2,将其投影至XOY平面;如果所述室内三维点云平面的Nv0>NV2,将其投影至YOZ平面。
将所述室内三维点云平面在所述XOY平面或YOZ平面上的投影划分为边长为a的若干个网格;
计算室内三维点云平面A和室内三维点云平面B的公共部分C的面积等于公共部分C占用所述网格的个数×a2;
计算最大交叉面积比等于max(SC/SA,SC/SB),其中SA、SB、SC分别为室内三维点云平面A、室内三维点云平面B、公共部分C的区域面积。
所述交叉面积除以cos(θ)得到投影之前的交叉面积,所述cos(θ)为余弦相似度,是通过计算两个平面的法向量的夹角余弦值来评估他们的相似度;θ为公共部分C和XOY平面或YOZ平面的法向量的夹角。其中:
具体的,如图2所示,在本发明的一个实施例中,包括如下步骤:
步骤201,计算所有N个竖直平面的法向量角度Ni并根据大小对其进行排序。
步骤202,判断所有竖直平面的法向量角度差是否小于等于5°。也即,判断是否Ni-Nj≤5°。其中,i、j为竖直平面的数量编号,j=i-1。
在本发明一个实施例中,5°是一个经验值,可以根据需要设定和调整。
步骤203,若是两个竖直平面的法向量角度差小于等于5°,则将两个竖直平面划分为一个分组,否则,将差别较大的竖直平面划分到新的分组。
步骤204,遍历所有的竖直平面,直到所有的竖直平面都得到分组。此时,一共有M1个分组。计算M1个分组中所有所述室内三维点云平面的法向量均值Navg;计算各个竖直平面的平面质心Centoridi在所述法向量均值Navg上的投影Di。
步骤205,判断所述Di之间的距离。也即,判断是否Di-Dj≤0.15m,其中,i、j为竖直平面的数量编号,j=i-1。
步骤206,若是两个竖直平面的质心在法向量的投影距离小于等于0.15米,则将该竖直平面划分到当前分组,否则,重新划分分组。
在本发明一个实施例中,这里的0.15米是一个经验值,可以根据需要设定和调整。
步骤207,遍历所有的竖直平面,直到所有的竖直平面都得到分组。此时,一共有M2个分组。分别获取M2个分组中各个平面的法向量(Nv0,Nv1,Nv2)。
步骤208,判断是否Nv0<Nv2。
步骤209,若是,则将所述竖直平面投影到XOY平面,否则,投影到YOZ平面。
步骤210,计算竖直平面相互的交叉面积和交叉面积比。
步骤211,判断交叉面积和交叉面积比是否大于设定的阈值。这个阈值可以根据需要设定,并可以调整。
步骤212,若是,则将所述竖直平面划分到当前分组,否则,重新划分分组。
步骤213,遍历所有的竖直平面,得到M3个竖直平面的分组。分别对这些分组进行重投影。
在本发明的一个实施例中,对水平平面(诸如天花板和地面)的融合如图3所示,其中,
对于室内三维点云平面Ph,其平面方程为Ax+By+Cz+d=0,法向量为Nh;法向量Nh与Y轴之间的夹角为ε;设置阈值α,若cos(ε)≥α,将其分至天花板平面分组中;若cos(ε)≤-α,将其分至地面分组中。
在本发明的一个实施例中,α一般取值为0.985。
计算所述水平平面分组内所述室内三维点云平面两两之间的距离、交叉面积和最大交面积比;
所述距离为两个所述室内三维点云平面d的差的绝对值;所述交叉面积为将两个所述室内三维点云平面投影在XOZ平面上的交叉区域的大小。
将所述室内三维点云平面在所述XOZ平面上的投影划分为边长为a的若干个网格;
计算室内三维点云平面A和室内三维点云平面B的公共部分C的面积等于公共部分C占用所述网格的个数×a2;
计算最大交叉面积比等于max(SC/SA,SC/SB),其中SA、SB、SC分别为室内三维点云平面A、室内三维点云平面B、公共部分C的区域面积。
具体的,在本发明一个具体实施例中,水平平面融合方法具体过程如图3所示,其中,
步骤301,将每个水平平面的相互距离d进行从小到大的排列。
步骤302,判断是否di-dj≤0.15m。
步骤303,若是,则将所述水平平面划分为一个分组,否则,划分新的分组。
步骤304,遍历所有的水平平面,直到所有的水平平面都进入某个分组。此时,得到M2个分组。
将M2个分组中各个水平平面分别投影到XOZ平面。
步骤305,分别计算两两水平平面的交叉面积和交叉面积比。
步骤306,判断交叉面积和交叉面积比是否大于设定的阈值。这个阈值可以根据需要设定,并可以调整。
步骤307,若是,则将所述水平平面划分到当前分组,否则,重新划分分组。
步骤308,遍历所有的水平平面,得到M3个水平平面的分组。分别对这些分组进行重投影。
在本发明的一个实施例中,上述实施例中对于交叉面积和交叉面积比的计算,可以参见图4,A为平面1的点云在XOZ(XOY/YOZ)的投影,B为平面2的点云在XOZ(XOY/YOZ)的投影。我们将其划分为边长为a的若干个网格。C为A和B的公共部分。因此,交叉面积等于C的面积,即公共网格的个数×a2。而最大交叉面积比等于max(SC/SA,SC/SB),其中S代表区域面积。
在本发明的一个实施例中,对于竖直平面,所述交叉面积除以余弦相似度cos(θ)得到投影之前的交叉面积,其中:
在本发明的一个实施例中,上述各个实施例对于重投影的方案包括如下过程:
新平面的质心C为(Cx,Cy,Cz),法向量Nnew以及参数dnew。其中,参数dnew为新平面与原点O的距离,可以通过原点O在新平面上的投影点与原点O的距离获取。
将每个所述分组内的所述交叉面积和交叉面积比分别大于预设阈值的所述室内三维点云平面划分为一个分组;
将所述一个分组的所有所述室内三维点云平面对应的所有点云汇聚在一起,重新计算对应平面的参数。
重新计算对应平面的参数,包括:
平面的质心C为(Cx,Cy,Cz);
设定所述点云一共有N个点,点坐标为(xi,yi,zi),计算如下:
所述平面的质心:
所述平面的法向量根据如下方式获取:
获取所有点的法向量;
对获取到的所有点的法向量进行算术平均,得到算术平均向量;
将所述算术平均向量作为平面的法向量。
所述参数dnew根据如下方式获取:
设定所述点云一共有N个点,点坐标为(xi,yi,zi),计算如下:
dnew=-Nnew·(Cx,Cy,Cz)。
将所有的点全部投影到所述对应平面上,包括:
设定投影前的点为P,投影后的点为Pz,则:
在本发明的一个实施例中,提供了一种多点云平面融合装置,如图5所示,其中包括分组单元51、计算单元52和重投影单元53,其中,
所述分组单元51,用于将室内三维点云平面根据预设条件进行分组;所述预设条件包括:所述室内三维点云平面的法向量的朝向夹角小于预设角度或所述室内三维点云平面的质心在其法向量均值的投影小于预设距离;
所述计算单元52,用于对每个所述分组内的室内三维点云平面分别计算交叉面积和交叉面积比;
所述重投影单元53,用于将每个所述分组内的所述交叉面积和交叉面积比分别大于预设阈值的所述室内三维点云平面重投影,得到室内三维点云融合平面。
进一步的,所述装置还包括平面获取单元54,用于将根据室内深度全景图得到的室内三维点云中的所有点分别划分到各自所属的点集中;分别将所述点集中的点根据其法向量和相互距离进行合并,形成所述点集对应的室内三维点云平面,将所述点集内每个点的法向量均值作为所述室内三维点云平面的法向量。
在本发明的一个实施例中,还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述的方法。
在本发明的一个实施例中,还提供了一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述的方法。
基于本发明上述实施例提供平面标定板方案,主要包括如下有益效果:
将室内三维点云平面根据其法向量的朝向夹角小于预设角度或质心在其法向量均值的投影小于预设距离进行分组,然后分别计算每个所述分组内的室内三维点云平面相互的交叉面积和交叉面积比;将每个所述分组内的所述交叉面积和交叉面积比分别大于预设阈值的所述室内三维点云平面重投影,得到室内三维点云融合平面。融合后的融合平面数量相对于室内三维点云平面有极大下降,属于同一平面的点云数据被融合到同一平面中,极大的提高了室内三维模型的展示效果。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。