CN107341804B - 点云数据中平面的确定方法及装置、图像叠加方法及设备 - Google Patents
点云数据中平面的确定方法及装置、图像叠加方法及设备 Download PDFInfo
- Publication number
- CN107341804B CN107341804B CN201610283896.8A CN201610283896A CN107341804B CN 107341804 B CN107341804 B CN 107341804B CN 201610283896 A CN201610283896 A CN 201610283896A CN 107341804 B CN107341804 B CN 107341804B
- Authority
- CN
- China
- Prior art keywords
- plane
- data
- planes
- point cloud
- global
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Abstract
本发明公开了一种点云数据中平面的确定方法及装置、图像叠加方法及设备,所述点云数据中平面的确定方法包括:将点云数据按坐标分割为多个子数据集;为所述多个子数据集中的每个子数据集确定一个局部平面;融合所有子数据集对应的局部平面,确定所述点云数据中的全局平面,所述全局平面包括至少一个平面。由于不需要对点云数据进行多平面检测就能够确定出点云数据中的全局平面,从而节省了对点云数据进行多平面检测这一步骤所花费的时间,提高了从点云数据中确定平面的处理速度。
Description
技术领域
本发明涉及空间数据处理领域,尤其涉及一种点云数据中平面的确定方法及装置、图像叠加方法及设备。
背景技术
点云数据(point cloud data)是指利用三维坐标测量机、照相式扫描仪或激光扫描仪等仪器对三维场景进行扫描后获取的数据集,数据集中每个点都包括该点的三维坐标数据,还可以包括颜色信息、激光反射强度信息等等。
随着机器人定位导航、场景分析和增强现实(英文:Augmented Reality;简称:AR)等等技术对三维场景中平面的需求,从点云数据中确定出平面的方法得到了越来越多的研究。例如,现有技术中通常通过最小二乘法或特征值法来从点云数据中确定出平面,但无论是最小二乘法还是特征值法,计算时均需要以整个点云数据为基础进行运算,由于需要预先对整个点云数据进行多平面检测,且处理时需要同时进行计算的数据量较大,所以处理时需要花费的时间较多,处理速度较慢。
因此,现有技术中从点云数据中确定平面存在处理速度较慢的技术问题。
发明内容
本发明的目的是提供一种点云数据中平面的确定方法以及装置、图像叠加方法及设备,解决现有技术中存在的从点云数据中确定平面的方法存在处理速度较慢的技术问题,可以节省从点云数据中确定平面时花费的时间。
为了实现上述发明目的,本发明第一方面提供了一种点云数据中平面的确定方法,包括:
将点云数据按坐标分割为多个子数据集;
为所述多个子数据集中的每个子数据集确定一个局部平面;
融合所有子数据集对应的局部平面,确定所述点云数据中的全局平面,所述全局平面包括至少一个平面。
优选地,所述将点云数据按坐标分割为多个子数据集,具体包括:
将所述点云数据通过八叉树结构,采用递归的方法进行预设级数的分割后,获得所述多个子数据集。
优选地,所述融合所有子数据集对应的局部平面,具体为:从所述八叉树结构的最底层,按预设条件逐级并行向上融合。
优选地,所述预设条件具体为:
当两个局部平面分别属于两个相邻的子数据集,且所述两个局部平面的法向量夹角小于第一预设值,且所述两个局部平面的偏移量小于第二预设值时,融合所述两个局部平面。
优选地,所述融合所述两个局部平面,具体为:
以所述两个局部平面内的数据点进行拟合,获得融合后的平面。
优选地,对每一个子数据集,按以下步骤确定其对应的局部平面:
S1:从一个子数据集中随机抽取样本数据点;
S2:根据所述样本数据点进行平面检测,获得第一拟合平面;
S3:计算所述子数据集中的所有数据点到所述第一拟合平面的距离,将与所述第一拟合平面的距离小于第一设定阈值的数据点设为内点;
S4:根据所述内点重新进行平面检测,获得第二拟合平面;
S5:将S1-S4循环执行N次,获得N个所述第二拟合平面,将N个所述第二拟合平面中内点数目最多的平面确定为所述局部平面,N为正整数。
优选地,所述根据所述样本数据点,获得第一拟合平面,具体包括:
根据所述样本数据点建立样本矩阵;
对所述样本矩阵进行奇异值分解,获得最小奇异值对应的奇异向量;
代入所述样本数据点的质心坐标,获得所述第一拟合平面的平面方程。
优选地,在N个所述第二拟合平面中存在内点数目相同的多个平面时,将所述内点到各自对应的所述第二拟合平面的平均距离最小的平面确定为所述局部平面。
优选地,在所述确定所述点云数据中的全局平面之后,所述方法还包括:
获得所述点云数据中不属于所述全局平面的自由数据点;
计算所述自由数据点距离所述全局平面中每一个平面的距离;
在所述自由数据点距离所述全局平面中第一平面的距离小于第二设定阈值时,将所述自由数据点加入到所述第一平面中。
优选地,在所述确定所述点云数据中的全局平面之后,所述方法还包括:
删除所述全局平面中数据点少于第三预设值的第二类平面,所述第二类平面包括一个所述全局平面或者多个所述全局平面;
计算所述第二类平面中的数据点距离所述全局平面中每一个平面的距离;
在所述第二类平面中的第一数据点距离所述全局平面中第三平面的距离小于第三设定阈值时,将所述第一数据点加入到所述第三平面中。
本发明第二方面提供了一种用于增强现实的图像叠加方法,包括:
获得一空间实体的点云数据,并通过如第一方面所述的确定方法计算所述点云数据的全局平面;
在所述空间实体的环境光线进入摄像机时,计算所述摄像机相对于所述全局平面的相对位姿;
根据所述相对位姿,将待叠加的虚拟图像叠加到所述全局平面上。
本发明第三方面提供了一种点云数据中平面的确定装置,其特征在于,包括:
分割单元,用于将点云数据按坐标分割为多个子数据集;
确定单元,用于为所述多个子数据集中的每个子数据集确定一个局部平面;
融合单元,用于融合所有子数据集对应的局部平面,确定所述点云数据中 的全局平面,所述全局平面包括至少一个平面。
优选地,所述分割单元具体用于将所述点云数据通过八叉树结构,采用递归的方法进行预设级数的分割后,获得所述多个子数据集。
优选地,所述融合单元具体用于从所述八叉树结构的最底层,按预设条件逐级并行向上融合。
优选地,所述预设条件具体为:
当两个局部平面分别属于两个相邻的子数据集,且所述两个局部平面的法向量夹角小于第一预设值,且所述两个局部平面的偏移量小于第二预设值时,融合所述两个局部平面。
优选地,所述融合单元具体用于以所述两个局部平面内的数据点进行拟合,获得融合后的平面。
优选地,所述确定单元具体用于对每一个子数据集,按以下步骤确定其对应的局部平面:
S1:从一个子数据集中随机抽取样本数据点;
S2:根据所述样本数据点进行平面检测,获得第一拟合平面;
S3:计算所述子数据集中的所有数据点到所述第一拟合平面的距离,将与所述第一拟合平面的距离小于第一设定阈值的数据点设为内点;
S4:根据所述内点重新进行平面检测,获得第二拟合平面;
S5:将S1-S4循环执行N次,获得N个所述第二拟合平面,将N个所述第二拟合平面中内点数目最多的平面确定为所述局部平面,N为正整数。
优选地,所述确定单元具体用于根据所述样本数据点建立样本矩阵,并对所述样本矩阵进行奇异值分解,获得最小奇异值对应的奇异向量,并代入所述样本数据点的质心坐标,获得所述第一拟合平面的平面方程。
优选地,所述确定单元在N个所述第二拟合平面中存在内点数目相同的多个平面时,将所述内点到各自对应的所述第二拟合平面的平均距离最小的平面确定为所述局部平面。
优选地,所述确定装置还包括自由点处理单元,所述自由点处理单元用于 在所述确定所述点云数据中的全局平面之后,获得所述点云数据中不属于所述全局平面的自由数据点,并计算所述自由数据点距离所述全局平面中每一个平面的距离,并在所述自由数据点距离所述全局平面中第一平面的距离小于第二设定阈值时,将所述自由数据点加入到所述第一平面中。
优选地,所述确定装置还包括平面处理单元,所述平面处理单元用于在所述确定所述点云数据中的全局平面之后,删除所述全局平面中数据点少于第三预设值的第二类平面,所述第二类平面包括一个所述全局平面或者多个所述全局平面;,并计算所述第二类平面中的数据点距离所述全局平面中每一个平面的距离,并在所述第二类平面中的第一数据点距离所述全局平面中第三平面的距离小于第三设定阈值时,将所述第一数据点加入到所述第三平面中。
本发明第四方面提供了一种用于增强现实的图像叠加设备,包括:
如第三方面所述的确定装置,用于获得一空间实体的点云数据,并计算所述点云数据的全局平面;
计算装置,用于在所述空间实体的环境光线进入摄像机时,计算所述摄像机相对于所述全局平面的相对位姿;
叠加装置,用于根据所述相对位姿,将待叠加的虚拟图像叠加到所述全局平面上。
与现有技术相比,本发明具有如下有益效果:
1、由于采用了将点云数据按坐标分割为多个子数据集,并为多个子数据集中的每个子数据集确定一个局部平面,并融合所有子数据集对应的局部平面,确定点云数据中的全局平面的技术方案,不需要对点云数据进行多平面检测就能够确定出点云数据中的全局平面,从而节省了对点云数据进行多平面检测这一步骤所花费的时间,提高了从点云数据中确定平面的处理速度。
2、由于采用了获得一空间实体的点云数据,并通过本实施例提供的确定方法计算点云数据的全局平面,并在空间实体的环境光线进入摄像机时,计算摄像机相对于全局平面的相对位姿,并根据相对位姿,将待叠加的虚拟图像叠加到全局平面上的技术方案,使得调整后的虚拟图像叠加到全局平面上后,避免 虚拟图像悬浮在空间中而不是贴合在空间实体的表面上的情况,能够更加符合人们的观测习惯,保证了虚拟图像叠加在空间实体上的真实性,继而提高了增强现实技术给用户的体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图:
图1为本发明实施例提供的点云数据中平面的确定方法的流程图;
图2A为本发明实施例提供的将点云数据通过八叉树结构进行分割的示意图;
图2B为本发明实施例提供的融合所有子数据集对应的局部平面的示意图;
图3为本实施例提供的通过随机抽样一致算法进行平面检测的流程图;
图4为本发明实施例提供的确定装置的模块示意图;
图5为本发明实施例提供的用于增强现实的图像叠加方法的流程图;
图6为本发明实施例二提供的摄像机相对于全局平面的光轴的相对位姿为θ的光路示意图;
图7为本发明实施例提供的增强现实的图像叠加设备的模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供一种点云数据中平面的确定方法,包括:
将点云数据按坐标分割为多个子数据集;具体来讲,可以将点云数据按照 坐标,在x、y和z三个轴上同时进行分割,从而将整个点云数据分割为多个子数据集,也就是说,将整个点云数据对应的空间分割为大小均匀的多个子空间,每个子空间对应一个子数据集;
为多个子数据集中的每个子数据集确定一个局部平面;具体来讲,由于每个子数据集对应的子空间是整个点云数据对应的空间的一小部分,所以可以近似地认为该子数据集中仅有一个平面,因此,通过对该子数据集中的数据点进行平面拟合,即能够为该子数据集确定出局部平面;
融合所有子数据集对应的局部平面,确定点云数据中的全局平面,全局平面包括至少一个平面;具体来讲,将所有子数据集对应的局部平面进行融合,属于同一个平面的局部平面即能够融合到一个平面,而不属于同一个平面的局部平面即无法融合到一个平面,从而确定出点云数据的全局平面,可以预料的是,若点云数据为一个平面的点云数据,则融合之后的全局平面即为一个平面,若点云数据为多个平面的点云数据,则融合之后的全局平面为多个平面。
可以看出,由于采用了将点云数据按坐标分割为多个子数据集,并为多个子数据集中的每个子数据集确定一个局部平面,并融合所有子数据集对应的局部平面,确定点云数据中的全局平面的技术方案,不需要对点云数据进行多平面检测就能够确定出点云数据中的全局平面,从而节省了对点云数据进行多平面检测这一步骤所花费的时间,提高了从点云数据中确定平面的处理速度。
为了详细地介绍上述技术方案,在接下来的部分中,将结合附图来进行举例介绍。
请参考图1,图1为本发明实施例提供的点云数据中平面的确定方法的流程图,如图1所示,该方法包括:
S1:将点云数据按坐标分割为多个子数据集;
S2:为多个子数据集中的每个子数据集确定一个局部平面;
S3:融合所有子数据集对应的局部平面,确定点云数据中的全局平面,全局平面包括至少一个平面。
在S1中,将点云数据按坐标分割为多个子数据集,具体来讲,在本实施例中,可以是将点云数据通过八叉树结构,采用递归的方法进行预设级数的分割后,获得多个子数据集。
请参考图2A,图2A是本发明实施例提供的将点云数据通过八叉树结构进 行分割的示意图,如图2A所示,点云数据对应的空间可以看做如图2A中左一所示的平行六面体空间,将其按照八叉树的结构,也即在x、y和z三个轴上分别取半进行分割一次之后,即能够将图2A中左一所示的六面体空间均匀地分割为图2A中左二所示的八个较小的空间,采用递归的方法进行下一级的分割后,即能够获得图2A中右二所示的结构,然后再采用递归的方法进行下一级的分割后,就能够获得图2A中右一所示的结构,以此类推,即可以对点云数据对应的空间进行多级分割,从而将点云数据分割为多个子数据集。
在本实施例中,按照上述方式,将点云数据按照八叉树的结构,采用递归的方法进行预设级数的分割后,例如分割20次之后,就能够将点云数据分割为足够小的多个子数据集,使得每个子数据集能够近似地看做仅包含有一个平面。
在实际应用中,也可以将点云数据按照十六叉树的结构,采用递归的方法进行预设级数的分割,使得每个子数据集能够近似地看做仅包含有一个平面,还可以直接将点云数据分别在x、y和z三个轴直接进行均匀地分割,从而将点云数据分割为预设的子数据集,例如可以按x、y和z三个轴分别分割100万次等,使得每个子数据集能够近似地看做仅包含有一个平面,在实际应用中,x、y和z三个轴上的分割次数可以相同也可以不相同,在此不做限制。
通过本实施例的介绍,本领域所属的技术人员能够根据实际情况,选择合适的分割方式,以满足实际情况的需要,在此就不再赘述了。
在本申请的另一个实施例中,可以为子数据集中的数据点数目设置一个下限值,例如,该下限值可以为10、20、50等,在此不做限制,若分割后的数据点数目最少的子数据集中的数据点数目小于该下限值,或者分割后的数据点数目最多的子数据集中的数据点数目小于该下限值,则停止进行分割,否则继续对点云数据进行分割。下限值可以由本领域所属的技术人员根据点云数据的时间情况进行设置,以满足实际情况的需要,在此就不再赘述了。
当然,需要说明的是,对于平行六面体的八个端点分别对应的子数据集来说,其中的每个子数据集始终都会包括三个相邻平面的数据点,将这八个子数据集都看做仅包含一个平面肯定会损失一些数据点,但相对于这三个相邻平面来说,一方面由于该子数据集中会损失的数据点数量相对较少,另一方面本实施例在后续的处理过程会针对这些会损失的数据点进行重新计算一次,所以这 八个端点分别对应的子数据集不会对本方案最后获得的全局平面造成影响。
在通过S1将点云数据按坐标分割为多个子数据集之后,本发明实施例提供的点云数据中平面的确定方法进入S2,也即:为多个子数据集中的每个子数据集确定一个局部平面。
在S2中,对由点云数据分割而成的每一个子数据集,在本实施例中,具体是通过随机抽样一致(英文:RANdom Sample Consensus;简称:RANSAC)算法来进行平面检测,请参考图3,图3为本实施例提供的通过随机抽样一致算法进行平面检测的流程图,如图3所示,具体可以通过如下的S21-S25来确定其对应的局部平面:
S21:从一个子数据集中随机抽取样本数据点;具体来讲,可以是从待处理的子数据集中随机抽取一定数目的样本数据点,例如抽取5个或10个样本点等等,在本实施例中,设定抽取的样本数据点的数目为m个。
在实际应用中,在通过S21从子数据集中随机抽取m个样本数据点之后,在通过S22对样本数据点进行处理之前,可以先求出这m个样本数据点的质心,然后进行将每个样本数据点的坐标减去质心的坐标这样的变换,使得变换后的m个样本数据点分布在以原点为中心的四周,从而减少后续步骤的计算量,在此就不再赘述了。
S22:根据样本数据点进行平面检测,获得第一拟合平面;具体来讲,每个样本数据点包括三维坐标,则可以建立一个m*3的样本矩阵,在本实施例中,设定该样本矩阵为Am*3,然后对Am*3进行奇异值分解,即能够将矩阵Am*3分解为A=UΣVT,其中U是一个m*m的方阵,Σ是m*3的矩阵,Σ矩阵中对角线上的元素称为奇异值,除了奇异值外其他元素都为0,VT是一个3*3的方阵,称为奇异向量,最小奇异值对应的奇异向量就是该第一拟合平面的法向量,代入上述任意一个样本数据点即能够获得第一拟合平面的平面方程,第一拟合平面的平面方程具体可以为Ax+By+Cz+D=0。
当然,为了进一步提高第一拟合平面的平面方程的准确性,可以先计算出抽取的样本数据点的质心坐标,然后将其代入到第一拟合平面的法向量中,从而获得更精确的平面方程,在此就不再赘述了。
S23:计算子数据集中的所有数据点到第一拟合平面的距离,将与第一拟合平面的距离小于第一设定阈值的数据点设为内点;具体来讲,再通过S22获 得第一拟合平面的平面方程后,即能够计算该子数据集中的所有数据点到该第一拟合平面的距离,以该子数据集内的一点Pj(Xj,Yj,Zj)为例,Pj到第一拟合平面的距离为:
然后将与第一拟合平面的距离小于第一设定阈值的数据点设为内点,将与第一拟合平面的距离大于等于第一设定阈值的数据点设为自由点,自由点会在后续进行处理,本步骤中不做处理。
S24:根据内点优化第一拟合平面,获得第二拟合平面;具体来讲,即是以第一拟合平面的内点作为一个数据点集合重新进行平面检测,获得第二拟合平面,由于本次平面检测的基础为第一拟合平面的内点,所以获得的第二拟合平面的精准度更高。
具体如何根据第一拟合平面的内点重新检测而获得第二拟合平面,具体过程与从该子数据集中进行平面检测而获得第一拟合平面的过程类似,先从第一拟合平面的内点中抽取样本数据点,再根据从第一拟合平面的内点中抽取的样本数据点进行平面检测,从而获得第二拟合平面,第二拟合平面的平面方程具体可以为A’x+B’y+C’z+D=0,在此为了说明书的简洁,就不再赘述了。
当然,此时还可以再次计算该子数据集内所有数据点到第二拟合平面的距离,将与第二拟合平面的距离小于第一设定阈值的数据点设为内点,且统计该子数据集中属于第二拟合平面的内点数目,并计算该子数据集内所有数据点到第二拟合平面的平均距离为
S25:将S21-S24循环执行N次,获得N个第二拟合平面,将N个第二拟合平面中内点数目最多的平面确定为局部平面,N为正整数;具体来讲,在将S21-S24循环执行N次的过程中,由于S21中每次随机抽取的样本数据点均不一致,所以每次循环最终获得的第二拟合平面均会存在一定的差异,一般说来,每次循环获得的第二拟合平面的内点数目都是不相同的,因此,此时可以将N个第二拟合平面中内点数目最多的平面确定为局部平面,也即该局部平面能够在最大程度上适用于该子数据集内的所有数据点。
若存在有多个第二拟合平面的内点数目相同,则可以选择该子数据集内所有数据点到第二拟合平面的平均距离最小的平面,若还是存在有多个第二拟合平面满足条件,则可以选择该子数据集内所有数据点到第二拟合平面的距离的 方差最小的平面,当然,通过本实施例的介绍,本领域所属的技术人员还能够实际情况,选择其他合适的方法来选择第二拟合平面,在此就不再赘述了。
需要说明的是,如果设定N的值越大,则最后获得的局部平面的准确性也就越高,但是N的值如果过大,循环次数过多,就会导致计算量增大,从而会增加计算时间,因此本领域所属的技术人员在实际应用中,能够根据实际情况,设定N为一个合适数值,以满足实际情况的需要,在此就不再赘述了。
可以看出,对由点云数据分割而成的多个子数据集来说,任意两个子数据集都是离散的,因此在执行上述S21-S25时,可以采用并行计算的方式,来进一步节省时间,提高计算速度。
在实际应用中,能够并行计算的子数据集的个数与处理器的线程有关系,例如,若处理器有8个线程,则为多个子数据集中每个子数据集确定局部平面这一过程所花费的时间即会缩短为1/8。
当然了,在其他实施例中,也可以通过最小二乘法、特征值法等来为多个子数据集中每个子数据集确定局部平面,在此就不再赘述了。
在通过S2为多个子数据集中的每个子数据集确定一个局部平面之后,本发明实施例提供的确定方法进入S3,即:融合所有子数据集对应的局部平面,确定点云数据中的全局平面,全局平面包括至少一个平面。
在本实施例中,由于对点云数据进行分割时是通过八叉树的结构,采用递归的方法进行预设级数的划分,所以S3中融合所有子数据集对应的局部平面可以是从八叉树结构的最底层,按预设条件逐级并行向上融合。
请参考图2B,图2B为本发明实施例提供的融合所有子数据集对应的局部平面的示意图,如图2B所示,即将图2A所示的分割过程进行逆向处理,该预设条件具体为:当两个局部平面分别属于两个相邻子数据集时,且两个局部平面的法向量夹角小于第一预设值,且两个局部平面的偏移量小于第二预设值时,即能够将两个局部平面融合成一个局部平面。
当然,需要说明的是,图2B所示的融合过程仅仅是一个示意图,某些小空间若没有平面,则无需与周围的其他空间进行平面融合。
在具体实施过程中,在判断两个局部平面是否分别属于两个相邻子数据集时,在将点云数据分割为多个子数据集时,即可以为每个子数据集进行编号,所以此时可以根据子数据集的编号来判断两个局部平面是否分别属于两个相 邻的子数据集,若判断结果表明两个局部平面分别属于两个相邻的子数据集,则进行融合,否则不进行融合,这样能够自然地将满足其他条件但实际不属于同一平面的两个局部平面分开,例如,在一张办公桌上并排放置的两块电脑平面(两块电脑屏幕之间存在间隙),这两块电脑平面对应的两个局部平面之间的夹角很小,相对于原点的偏移量也很小,但由于这两个局部平面不属于相邻的子数据集,所以这两个局部平面不会融合在一起。
在判断两个局部平面的法向量夹角时,在前述步骤中能够获得局部平面的法向量,因此,设定两个局部平面的法向量分别为和 则可知这两个局部平面的法向量之间的夹角θ的余弦 若该余弦值小于第一预设值,例如该第一预设值为0.9962,对应5°夹角,则表明该两个局部平面的法向量之间的夹角大于5°,不应该进行融合,若余弦值大于该第一预设值,则表明局部平面的法向量之间的夹角小于5°,应该进行融合,在此就不再赘述了。
在判断两个局部平面的偏移量是否小于第二预设值时,可以通过计算分别到两个平面的距离来判断,原点到平面的距离公式为分别将两个局部平面的平面方程代入,则可以计算出原点到两个平面的距离d1和d2,如果|d1-d2|小于第二预设值,则表明两个局部平面之间的距离很小,应该进行融合,如果|d1-d2|大于于第二预设值,则表明两个局部平面之间的距离很大,不应该进行融合,在此就不再赘述了。
在实际应用中,第二预设值可以根据点云数据的实际情况来进行设定,例如,点云数据对应的空间同时在x、y和z方向上均超过了100米,则可以将第二预设值设定为相对较大的数值,如可以为0.1米,若点云数据对应的空间本身比较小,例如在x、y和z方向中跨度最大的方向才1米,则可以将第二预设值设定为相对较大的数值,如可以为0.1毫米,通过本实施例的介绍,本领域所属的技术人员能够根据实际情况,将第二预设值设置为合适的数值,以满足实际情况的需要,在此就不再赘述了。
当然了,通过本实施例的介绍,本领域所属的技术人员还能够根据实际情况,设置其他合适的条件来判断两个局部平面是否应该融合,以满足实际情况的需要,在此就不再赘述了。
在本实施例中,在融合两个局部平面时,可以是以两个局部平面内的数据点进行拟合,也即以两个局部平面的内点进行拟合,具体的过程可以采用前述 介绍的随机抽样一致算法来进行平面检测,从而获得两个局部平面融合而成的平面,在此不再详述,需要说明的是,由于随机抽样一致算法的计算量只和迭代的次数相关,而与作为采样基础的数据集的规模无关,也即与数据集中数据点的数量无关,所以以两个局部平面的内点进行拟合时不会增加额外的计算量。
在本实施例中,由于是从八叉树结构的最底层,按预设条件逐级向上融合,所以在融合两个局部平面时,在八叉树结构上,不位于这两个局部平面的上层的其他局部平面可以进行并行处理,从而能够减少计算过程中耗费的时间,进一步加快融合的速度,在此就不再赘述了。
当然了,在另一实施例中,在融合两个局部平面时,也可以是将该两个局部平面对应的两个子数据集内的所有点来进行拟合,从而获得融合的平面,在此就不再赘述了。
这样,按八叉树结构,依次逐级向上进行融合之后,就能够获得点云数据的全局平面,同时可以看出,在本实施例中,按上述方法融合之后,获得的平面能够自然地形成点云数据中对应的全局平面,而不需要预先对点云数据进行多平面检测。
在另一实施例中,若采用直接将点云数据按x、y和z三个轴分别分割100万次的方式,则融合局部平面时同样可以先将两个相邻的局部平面进行融合,融合之后再对获得的多个平面继续进行融合,以此类推,最后获得点云数据的全局平面,在此就不再赘述了。
为了提高本实施例提供的点云数据中平面的确定方法的精确性,在获得点云数据的全局平面之后,本实施例提供的方法还包括:获得点云数据中不属于全局平面的自由数据点,并计算自由数据点距离全局平面中每一个平面的距离,并在自由数据点距离全局平面中第一平面的距离小于第二设定阈值时,将自由数据点加入到第一平面中。
具体来讲,在前述部分计算每个子数据集对应的局部平面时,会有一部分数据点没有被纳入局部平面中,也即没有作为局部平面的内点,这部分数据点可以被称作自由数据点,但这部分自由数据点又确实属于点云数据,直接舍弃的话会造成全局平面中损失一部分面积,因此,在获得点云数据的全局平面之后,可以计算每个自由数据点距离全局平面中每一个平面的距离,以全局平面 中的第一平面为例,若某一自由数据点距离第一平面的举例小于第二设定阈值,则将该自由数据点加入到第一平面中,作为第一平面的内点。
第二设定阈值与第一设定阈值的作用都是将距离平面一定距离内的数据点作为该平面的内点,因此,第二设定阈值和第一设定阈值可以相同,也可以不相同,本领域所属的技术人员能够根据实际情况进行设置,以满足实际情况的需要,在此不做限制。
另外,针对全局平面中一些数据点较少的第二类平面,也即内点数目少于第三预设值的第二类平面,删除第二类平面,并重新计算第二类平面中的数据点距离全局平面中每一个平面的距离,以第二类平面中的第一数据点、全局平面中的第三平面为例,在第一数据点距离第三平面的距离小于第三设定阈值时,则将第一数据点加入到第三平面中,使得第一数据点称为第三平面内点,这样,能够避免因对每个子数据集确定一个局部平面时因巧合而形成的一个局部平面的情况,巧合情况是指将点云数据分割为多个子数据集,并对每个子数据集确定一个局部平面后,该局部平面在后续的融合过程中没有任何其他的局部平面或者融合了较少的局部平面,从而能够进一步提高本实施例提供的点云数据中平面的确定方法的精确性。
第三预设值例如可以是10、20、50等等,本领域所属的技术人员能够根据实际情况进行设置,以满足实际情况的需要,在此不做限制。
第三设定阈值与第一设定阈值的作用都是将距离平面一定距离内的数据点作为该平面的内点,因此,第三设定阈值和第一设定阈值可以相同,也可以不相同,本领域所属的技术人员能够根据实际情况进行设置,以满足实际情况的需要,在此不做限制。
通过上述部分可以看出,由于采用了首先将点云数据按坐标分割为多个子数据集,然后为多个子数据集中的每个子数据集确定一个局部平面,最后融合所有子数据集对应的局部平面,确定点云数据中的全局平面的技术方案,不需要对点云数据进行多平面检测就能够确定出点云数据中的全局平面,从而节省了对点云数据进行多平面检测这一步骤所花费的时间,提高了从点云数据中确定平面的处理速度。
基于同一发明构思,本发明实施例还提供一种点云数据中平面的确定装置,请参考图4,图4为本发明实施例提供的确定装置的模块示意图,如图4 所示,包括:
分割单元401,用于将点云数据按坐标分割为多个子数据集;
确定单元402,用于为多个子数据集中的每个子数据集确定一个局部平面;
融合单元403,用于融合所有子数据集对应的局部平面,确定点云数据中的全局平面,全局平面包括至少一个平面。
在具体实施过程中,分割单元401具体用于将点云数据通过八叉树结构,采用递归的方法进行预设级数的分割后,获得多个子数据集。
在具体实施过程中,融合单元403具体用于从八叉树结构的最底层,按预设条件逐级并行向上融合。
在具体实施过程中,预设条件具体为:
当两个局部平面分别属于两个相邻的子数据集,且两个局部平面的法向量夹角小于第一预设值,且两个局部平面的偏移量小于第二预设值时,融合两个局部平面。
在具体实施过程中,融合单元403具体用于以两个局部平面内的数据点进行拟合,获得融合后的平面。
在具体实施过程中,确定单元402具体用于对每一个子数据集,按以下步骤确定其对应的局部平面:
S1:从一个子数据集中随机抽取样本数据点;
S2:根据样本数据点进行平面检测,获得第一拟合平面;
S3:计算子数据集中的所有数据点到第一拟合平面的距离,将与第一拟合平面的距离小于第一设定阈值的数据点设为内点;
S4:根据内点重新进行平面检测,获得第二拟合平面;
S5:将S1-S4循环执行N次,获得N个第二拟合平面,将N个第二拟合平面中内点数目最多的平面确定为局部平面,N为正整数。
在具体实施过程中,确定单元402具体用于根据样本数据点建立样本矩阵,并对样本矩阵进行奇异值分解,获得最小奇异值对应的奇异向量,并代入样本数据点的质心坐标,获得第一拟合平面的平面方程。
在具体实施过程中,确定单元402在N个第二拟合平面中存在内点数目相同的多个平面时,将内点到各自对应的第二拟合平面的平均距离最小的平面确定为局部平面。
在具体实施过程中,确定装置还包括自由点处理单元404,自由点处理单元404用于在确定点云数据中的全局平面之后,获得点云数据中不属于全局平面的自由数据点,并计算自由数据点距离全局平面中每一个平面的距离,并在自由数据点距离全局平面中第一平面的距离小于第二设定阈值时,将自由数据点加入到第一平面中。
在具体实施过程中,确定装置还包括平面处理单元405,平面处理单元405用于在确定点云数据中的全局平面之后,删除全局平面中数据点少于第三预设值的第二类平面,第二类平面包括一个全局平面或者多个全局平面;,并计算第二类平面中的数据点距离全局平面中每一个平面的距离,并在第二类平面中的第一数据点距离全局平面中第三平面的距离小于第三设定阈值时,将第一数据点加入到第三平面中。
本实施例提供的确定装置与前述部分介绍的确定方法是同一发明构思下的两个方面,在前述部分已经详细介绍了确定方法的情况下,本领域所属的技术人员能够清楚地了解到确定装置的具体结构以及运行过程,在此为了说明书的简洁,就不再赘述了。
本发明实施例中的一个或者多个技术方案,至少具有如下技术效果:
由于采用了将点云数据按坐标分割为多个子数据集,并为多个子数据集中的每个子数据集确定一个局部平面,并融合所有子数据集对应的局部平面,确定点云数据中的全局平面的技术方案,不需要对点云数据进行多平面检测就能够确定出点云数据中的全局平面,从而节省了对点云数据进行多平面检测这一步骤所花费的时间,提高了从点云数据中确定平面的处理速度。
实施例二
基于同一发明构思,本发明实施例还提供一种用于增强现实的图像叠加方法,在实际应用中,本发明实施例提供的图像叠加方法可以应用于智能手机、平板电脑等移动设备,也可以应用于头戴式可视显示设备或智能眼镜等等,在此不做限制。
请参考图5,图5为本发明实施例提供的用于增强现实的图像叠加方法的流程图,如图5所示,该方法包括:
S51:获得一空间实体的点云数据,并通过实施例一的确定方法计算点云 数据的全局平面;
具体来讲,空间实体例如可以是桌面、墙面等等,可以通过三维坐标测量机、照相式扫描仪或激光扫描仪等仪器来获得该空间实体的点云数据,三维坐标测量机、照相式扫描仪或激光扫描仪等仪器可以设置在移动设备、头戴式可视显示设备或智能眼镜上,也可以与移动设备、头戴式可视显示设备或智能眼镜分体设置,在此不做限制;
然后,通过实施例一提供的确定方法来计算该点云数据的全局平面,在实施例一中已经详细介绍了确定方法的具体处理过程,在此就不再赘述了。
S52:在空间实体的环境光线进入摄像机时,计算摄像机相对于全局平面的相对位姿;
增强现实就是将虚拟图像叠加到真实环境的图像上,为了保证虚拟图像叠加时的准确性,因此,在空间实体的环境光线进入摄像机时,需要计算摄像机相对于全局平面的相对位姿,位姿是指位置信息和姿态信息,,位置例如可以包括x、y和z轴的坐标等等,姿态信息例如包括相对角度等等。
在本实施例,具体来讲,可以通过拍照等方式,将空间实体所处环境转换为图像,并从该图像中提取出空间实体的图像,从而计算出摄像机相对于空间实体上的全局平面的相对位姿。
在另一实施例中,还可以是在空间实体上设置定位装置或者定位图像,根据获取到的定位装置或者定位图像的信息,来计算出摄像机相对于空间实体上的全局平面的相对位姿,在此就不再赘述了。
当然,在实际应用中,一个空间实体上的全局平面可以包括多个,因此,可以计算摄像机相对于需要叠加的平面的相对位姿即可,而无需计算不需要进行叠加的平面的信息。
S53:根据所述相对位姿,将待叠加的虚拟图像叠加到全局平面上。
在本实施例中,具体来讲,在通过S52获得全局平面相对于摄像机的相对位姿后,即将虚拟图像根据相对位姿进行调整,例如,请参考图6,图6为本发明实施例二提供的摄像机相对于全局平面的光轴的相对角度为θ的光路示意图,如图6所示,该全局平面60相对于摄像机的相对角度为θ,θ一般为一锐角,则此时可以将虚拟图像62按照cos(90°-θ)进行调整,使得调整后的虚拟图像叠加到全局平面上后,能够更加符合人们的观测习惯,保证了虚拟 图像叠加在在空间实体上的真实性,继而提高了增强现实技术给用户的体验。
当然,本实施例介绍的将虚拟图像以相对角度进行调整仅仅是一个方向的调整,在实际应用中,通过本实施例的介绍,本领域所属的技术人员能够根据实际情况,例如,根据在平面上设置的特征点等信息,对虚拟图像的任意方向进行调整,以满足实际情况的需要,在此就不再赘述了。
基于同一发明构思,本实施例还提供一种用于增强现实的图像叠加设备,请参考图7,图7为本发明实施例提供的增强现实的图像叠加设备的模块示意图,如图7所示,该图像叠加设备包括:
如实施例一提供的确定装置701,用于获得一空间实体的点云数据,并计算点云数据的全局平面;
计算装置705,用于在空间实体的环境光线进入摄像机时,计算摄像机相对于全局平面的相对位姿;
叠加装置703,用于根据所述相对位姿,将待叠加的虚拟图像叠加到所述全局平面上。
本实施例提供的图像叠加设备与前述部分介绍的图像叠加方法是同一发明构思下的两个方面,在前述部分已经详细介绍了图像叠加方法的情况下,本领域所属的技术人员能够清楚地了解到图像叠加装置的具体结构以及运行过程,在此为了说明书的简洁,就不再赘述了。
本发明实施例中的一个或者多个技术方案,至少具有如下技术效果:
由于采用了获得一空间实体的点云数据,并通过本实施例提供的确定方法计算点云数据的全局平面,并在空间实体的环境光线进入摄像机时,计算全局平面相对于摄像机的相对位姿,并将待叠加的虚拟图像叠加到全局平面上的技术方案,使得调整后的虚拟图像叠加到全局平面上后,避免虚拟图像悬浮在空间中而不是贴合在空间实体的表面上的情况,能够更加符合人们的观测习惯,保证了虚拟图像叠加在空间实体上的真实性,继而提高了增强现实技术给用户的体验。
本发明实施例公开如下技术方案:
A1.一种点云数据中平面的确定方法,其特征在于,包括:
将点云数据按坐标分割为多个子数据集;
为所述多个子数据集中的每个子数据集确定一个局部平面;
融合所有子数据集对应的局部平面,确定所述点云数据中的全局平面,所述全局平面包括至少一个平面。
A2、如A1所述的确定方法,其特征在于,所述将点云数据按坐标分割为多个子数据集,具体包括:
将所述点云数据通过八叉树结构,采用递归的方法进行预设级数的分割后,获得所述多个子数据集。
A3、如A2所述的确定方法,其特征在于,所述融合所有子数据集对应的局部平面,具体为:从所述八叉树结构的最底层,按预设条件逐级并行向上融合。
A4、如A3所述的确定方法,其特征在于,所述预设条件具体为:
当两个局部平面分别属于两个相邻的子数据集,且所述两个局部平面的法向量夹角小于第一预设值,且所述两个局部平面的偏移量小于第二预设值时,融合所述两个局部平面。
A5、如A4所述的确定方法,其特征在于,所述融合所述两个局部平面,具体为:
以所述两个局部平面内的数据点进行拟合,获得融合后的平面。
A6、如A1所述的确定方法,其特征在于,对每一个子数据集,按以下步骤确定其对应的局部平面:
S1:从一个子数据集中随机抽取样本数据点;
S2:根据所述样本数据点进行平面检测,获得第一拟合平面;
S3:计算所述子数据集中的所有数据点到所述第一拟合平面的距离,将与所述第一拟合平面的距离小于第一设定阈值的数据点设为内点;
S4:根据所述内点重新进行平面检测,获得第二拟合平面;
S5:将S1-S4循环执行N次,获得N个所述第二拟合平面,将N个所述第二拟合平面中内点数目最多的平面确定为所述局部平面,N为正整数。
A7、如A6所述的确定方法,其特征在于,所述根据所述样本数据点,获得第一拟合平面,具体包括:
根据所述样本数据点建立样本矩阵;
对所述样本矩阵进行奇异值分解,获得最小奇异值对应的奇异向量;
代入所述样本数据点的质心坐标,获得所述第一拟合平面的平面方程。
A8、如A6所述的确定方法,其特征在于,在N个所述第二拟合平面中存在内点数目相同的多个平面时,将所述内点到各自对应的所述第二拟合平面的平均距离最小的平面确定为所述局部平面。
A9、如A1-8中任一项所述的确定方法,其特征在于,在所述确定所述点云数据中的全局平面之后,所述方法还包括:
获得所述点云数据中不属于所述全局平面的自由数据点;
计算所述自由数据点距离所述全局平面中每一个平面的距离;
在所述自由数据点距离所述全局平面中第一平面的距离小于第二设定阈值时,将所述自由数据点加入到所述第一平面中。
A10、如A1-8中任一项所述的确定方法,其特征在于,在所述确定所述点云数据中的全局平面之后,所述方法还包括:
删除所述全局平面中数据点少于第三预设值的第二类平面,所述第二类平面包括一个所述全局平面或者多个所述全局平面;
计算所述第二类平面中的数据点距离所述全局平面中每一个平面的距离;
在所述第二类平面中的第一数据点距离所述全局平面中第三平面的距离小于第三设定阈值时,将所述第一数据点加入到所述第三平面中。
B11、一种用于增强现实的图像叠加方法,其特征在于,包括:
获得一空间实体的点云数据,并通过如A1-10中任一权项所述的确定方法计算所述点云数据的全局平面;
在所述空间实体的环境光线进入摄像机时,计算所述摄像机相对于所述全局平面的相对位姿;
根据所述相对位姿,将待叠加的虚拟图像叠加到所述全局平面上。
C12、一种点云数据中平面的确定装置,其特征在于,包括:
分割单元,用于将点云数据按坐标分割为多个子数据集;
确定单元,用于为所述多个子数据集中的每个子数据集确定一个局部平面;
融合单元,用于融合所有子数据集对应的局部平面,确定所述点云数据中的全局平面,所述全局平面包括至少一个平面。
C13、如C12所述的确定装置,其特征在于,所述分割单元具体用于将所述点云数据通过八叉树结构,采用递归的方法进行预设级数的分割后,获得所 述多个子数据集。
C14、如C13所述的确定装置,其特征在于,所述融合单元具体用于从所述八叉树结构的最底层,按预设条件逐级并行向上融合。
C15、如C14所述的确定装置,其特征在于,所述预设条件具体为:
当两个局部平面分别属于两个相邻的子数据集,且所述两个局部平面的法向量夹角小于第一预设值,且所述两个局部平面的偏移量小于第二预设值时,融合所述两个局部平面。
C16、如C15所述的确定装置,其特征在于,所述融合单元具体用于以所述两个局部平面内的数据点进行拟合,获得融合后的平面。
C17、如C12所述的确定装置,其特征在于,所述确定单元具体用于对每一个子数据集,按以下步骤确定其对应的局部平面:
S1:从一个子数据集中随机抽取样本数据点;
S2:根据所述样本数据点进行平面检测,获得第一拟合平面;
S3:计算所述子数据集中的所有数据点到所述第一拟合平面的距离,将与所述第一拟合平面的距离小于第一设定阈值的数据点设为内点;
S4:根据所述内点重新进行平面检测,获得第二拟合平面;
S5:将S1-S4循环执行N次,获得N个所述第二拟合平面,将N个所述第二拟合平面中内点数目最多的平面确定为所述局部平面,N为正整数。
C18、如C17所述的确定装置,其特征在于,所述确定单元具体用于根据所述样本数据点建立样本矩阵,并对所述样本矩阵进行奇异值分解,获得最小奇异值对应的奇异向量,并代入所述样本数据点的质心坐标,获得所述第一拟合平面的平面方程。
C19、如C17所述的确定装置,其特征在于,所述确定单元在N个所述第二拟合平面中存在内点数目相同的多个平面时,将所述内点到各自对应的所述第二拟合平面的平均距离最小的平面确定为所述局部平面。
C20、如C12-19中任一项所述的确定装置,其特征在于,所述确定装置还包括自由点处理单元,所述自由点处理单元用于在所述确定所述点云数据中的全局平面之后,获得所述点云数据中不属于所述全局平面的自由数据点,并计算所述自由数据点距离所述全局平面中每一个平面的距离,并在所述自由数据点距离所述全局平面中第一平面的距离小于第二设定阈值时,将所述自由数据 点加入到所述第一平面中。
C21、如C12-19中任一项所述的确定装置,其特征在于,所述确定装置还包括平面处理单元,所述平面处理单元用于在所述确定所述点云数据中的全局平面之后,删除所述全局平面中数据点少于第三预设值的第二类平面,所述第二类平面包括一个所述全局平面或者多个所述全局平面;,并计算所述第二类平面中的数据点距离所述全局平面中每一个平面的距离,并在所述第二类平面中的第一数据点距离所述全局平面中第三平面的距离小于第三设定阈值时,将所述第一数据点加入到所述第三平面中。
D22、一种用于增强现实的图像叠加设备,其特征在于,包括:
如C12-21中任一权项所述的确定装置,用于获得一空间实体的点云数据,并计算所述点云数据的全局平面;
计算装置,用于在所述空间实体的环境光线进入摄像机时,计算所述摄像机相对于所述全局平面的相对位姿;
叠加装置,用于根据所述相对位姿,将待叠加的虚拟图像叠加到所述全局平面上。
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (20)
1.一种点云数据中平面的确定方法,其特征在于,包括:
将点云数据的坐标按空间划分树的方法,递归地对所述点云数据进行预设级数的分割,获得多个子数据集;
为所述多个子数据集中的每个子数据集确定一个局部平面;
从所述空间划分树的最底层,按照预设条件逐级并行向上融合所有子数据集对应的局部平面,确定所述点云数据中的全局平面,所述全局平面包括至少一个平面;其中,所述预设条件具体为:当两个局部平面分别属于两个相邻的子数据集,且所述两个局部平面的法向量夹角小于第一预设值,且所述两个局部平面的偏移量小于第二预设值时,融合所述两个局部平面。
2.如权利要求1所述的确定方法,其特征在于,所述将点云数据的坐标按空间划分树的方法,递归地对所述点云数据进行预设级数的分割,获得多个子数据集,具体包括:
将所述点云数据通过八叉树结构或十六叉树结构,采用递归的方法进行预设级数的分割后,获得所述多个子数据集。
3.如权利要求2所述的确定方法,其特征在于,所述融合所有子数据集对应的局部平面,具体为:从所述八叉树结构或所述十六叉树结构的最底层,按预设条件逐级并行向上融合。
4.如权利要求3所述的确定方法,其特征在于,所述融合所述两个局部平面,具体为:
以所述两个局部平面内的数据点进行拟合,获得融合后的平面。
5.如权利要求1所述的确定方法,其特征在于,对每一个子数据集,按以下步骤确定其对应的局部平面:
S1:从一个子数据集中随机抽取样本数据点;
S2:根据所述样本数据点进行平面检测,获得第一拟合平面;
S3:计算所述子数据集中的所有数据点到所述第一拟合平面的距离,将与所述第一拟合平面的距离小于第一设定阈值的数据点设为内点;
S4:根据所述内点重新进行平面检测,获得第二拟合平面;
S5:将S1-S4循环执行N次,获得N个所述第二拟合平面,将N个所述第二拟合平面中内点数目最多的平面确定为所述局部平面,N为正整数。
6.如权利要求5所述的确定方法,其特征在于,所述根据所述样本数据点,获得第一拟合平面,具体包括:
根据所述样本数据点建立样本矩阵;
对所述样本矩阵进行奇异值分解,获得最小奇异值对应的奇异向量;
代入所述样本数据点的质心坐标,获得所述第一拟合平面的平面方程。
7.如权利要求5所述的确定方法,其特征在于,在N个所述第二拟合平面中存在内点数目相同的多个平面时,将所述内点到各自对应的所述第二拟合平面的平均距离最小的平面确定为所述局部平面。
8.如权利要求1-7中任一项所述的确定方法,其特征在于,在所述确定所述点云数据中的全局平面之后,所述方法还包括:
获得所述点云数据中不属于所述全局平面的自由数据点;
计算所述自由数据点距离所述全局平面中每一个平面的距离;
在所述自由数据点距离所述全局平面中第一平面的距离小于第二设定阈值时,将所述自由数据点加入到所述第一平面中。
9.如权利要求1-7中任一项所述的确定方法,其特征在于,在所述确定所述点云数据中的全局平面之后,所述方法还包括:
删除所述全局平面中数据点少于第三预设值的第二类平面,所述第二类平面包括一个所述全局平面或者多个所述全局平面;
计算所述第二类平面中的数据点距离所述全局平面中每一个平面的距离;
在所述第二类平面中的第一数据点距离所述全局平面中第三平面的距离小于第三设定阈值时,将所述第一数据点加入到所述第三平面中。
10.一种用于增强现实的图像叠加方法,其特征在于,包括:
获得一空间实体的点云数据,并通过如权利要求1-9中任一权项所述的确定方法计算所述点云数据的全局平面;
在所述空间实体的环境光线进入摄像机时,计算所述摄像机相对于所述全局平面的相对位姿;
根据所述相对位姿,将待叠加的虚拟图像叠加到所述全局平面上。
11.一种点云数据中平面的确定装置,其特征在于,包括:
分割单元,用于将点云数据的坐标按空间划分树的方法,递归地对所述点云数据进行预设级数的分割,获得多个子数据集;
确定单元,用于为所述多个子数据集中的每个子数据集确定一个局部平面;
融合单元,用于从所述空间划分树的最底层,按照预设条件逐级并行向上融合所有子数据集对应的局部平面,确定所述点云数据中的全局平面,所述全局平面包括至少一个平面;其中,所述预设条件具体为:当两个局部平面分别属于两个相邻的子数据集,且所述两个局部平面的法向量夹角小于第一预设值,且所述两个局部平面的偏移量小于第二预设值时,融合所述两个局部平面。
12.如权利要求11所述的确定装置,其特征在于,所述分割单元具体用于将所述点云数据通过八叉树结构或十六叉树结构,采用递归的方法进行预设级数的分割后,获得所述多个子数据集。
13.如权利要求12所述的确定装置,其特征在于,所述融合单元具体用于从所述八叉树结构或所述十六叉树结构的最底层,按预设条件逐级并行向上融合。
14.如权利要求13所述的确定装置,其特征在于,所述融合单元具体用于以所述两个局部平面内的数据点进行拟合,获得融合后的平面。
15.如权利要求11所述的确定装置,其特征在于,所述确定单元具体用于对每一个子数据集,按以下步骤确定其对应的局部平面:
S1:从一个子数据集中随机抽取样本数据点;
S2:根据所述样本数据点进行平面检测,获得第一拟合平面;
S3:计算所述子数据集中的所有数据点到所述第一拟合平面的距离,将与所述第一拟合平面的距离小于第一设定阈值的数据点设为内点;
S4:根据所述内点重新进行平面检测,获得第二拟合平面;
S5:将S1-S4循环执行N次,获得N个所述第二拟合平面,将N个所述第二拟合平面中内点数目最多的平面确定为所述局部平面,N为正整数。
16.如权利要求15所述的确定装置,其特征在于,所述确定单元具体用于根据所述样本数据点建立样本矩阵,并对所述样本矩阵进行奇异值分解,获得最小奇异值对应的奇异向量,并代入所述样本数据点的质心坐标,获得所述第一拟合平面的平面方程。
17.如权利要求15所述的确定装置,其特征在于,所述确定单元在N个所述第二拟合平面中存在内点数目相同的多个平面时,将所述内点到各自对应的所述第二拟合平面的平均距离最小的平面确定为所述局部平面。
18.如权利要求11-17中任一项所述的确定装置,其特征在于,所述确定装置还包括自由点处理单元,所述自由点处理单元用于在所述确定所述点云数据中的全局平面之后,获得所述点云数据中不属于所述全局平面的自由数据点,并计算所述自由数据点距离所述全局平面中每一个平面的距离,并在所述自由数据点距离所述全局平面中第一平面的距离小于第二设定阈值时,将所述自由数据点加入到所述第一平面中。
19.如权利要求11-17中任一项所述的确定装置,其特征在于,所述确定装置还包括平面处理单元,所述平面处理单元用于在所述确定所述点云数据中的全局平面之后,删除所述全局平面中数据点少于第三预设值的第二类平面,所述第二类平面包括一个所述全局平面或者多个所述全局平面,并计算所述第二类平面中的数据点距离所述全局平面中每一个平面的距离,并在所述第二类平面中的第一数据点距离所述全局平面中第三平面的距离小于第三设定阈值时,将所述第一数据点加入到所述第三平面中。
20.一种用于增强现实的图像叠加设备,其特征在于,包括:
如权利要求11-19中任一权项所述的确定装置,用于获得一空间实体的点云数据,并计算所述点云数据的全局平面;
计算装置,用于在所述空间实体的环境光线进入摄像机时,计算所述摄像机相对于所述全局平面的相对位姿;
叠加装置,用于根据所述相对位姿,将待叠加的虚拟图像叠加到所述全局平面上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610283896.8A CN107341804B (zh) | 2016-04-29 | 2016-04-29 | 点云数据中平面的确定方法及装置、图像叠加方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610283896.8A CN107341804B (zh) | 2016-04-29 | 2016-04-29 | 点云数据中平面的确定方法及装置、图像叠加方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107341804A CN107341804A (zh) | 2017-11-10 |
CN107341804B true CN107341804B (zh) | 2020-11-06 |
Family
ID=60221735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610283896.8A Active CN107341804B (zh) | 2016-04-29 | 2016-04-29 | 点云数据中平面的确定方法及装置、图像叠加方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107341804B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108876906A (zh) * | 2018-06-06 | 2018-11-23 | 链家网(北京)科技有限公司 | 基于点云的全局平面优化建立虚拟三维模型的方法及装置 |
CN110458805B (zh) * | 2019-03-26 | 2022-05-13 | 华为技术有限公司 | 一种平面检测方法、计算设备以及电路系统 |
CN110243390B (zh) * | 2019-07-10 | 2021-07-27 | 北京华捷艾米科技有限公司 | 位姿的确定方法、装置及里程计 |
CN110660053A (zh) * | 2019-09-23 | 2020-01-07 | 北京华捷艾米科技有限公司 | 点云数据的平面检测方法及装置 |
CN111639682A (zh) * | 2020-05-13 | 2020-09-08 | 北京三快在线科技有限公司 | 基于点云数据的地面分割方法及装置 |
CN112365575B (zh) * | 2020-11-10 | 2022-06-21 | 广州极飞科技股份有限公司 | 地平面数据测量方法、装置、可移动设备和可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103310481B (zh) * | 2013-05-20 | 2016-08-10 | 东南大学 | 一种基于模糊熵迭代的点云精简方法 |
CN103793939A (zh) * | 2013-07-29 | 2014-05-14 | 北京正安融翰技术有限公司 | 大规模点云数据的局部增长式曲面重建方法 |
US9098754B1 (en) * | 2014-04-25 | 2015-08-04 | Google Inc. | Methods and systems for object detection using laser point clouds |
CN105046688B (zh) * | 2015-06-23 | 2017-10-10 | 北京工业大学 | 一种三维点云中的多平面自动识别方法 |
CN105354829A (zh) * | 2015-10-08 | 2016-02-24 | 西北农林科技大学 | 一种自适应的点云数据分割方法 |
-
2016
- 2016-04-29 CN CN201610283896.8A patent/CN107341804B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107341804A (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341804B (zh) | 点云数据中平面的确定方法及装置、图像叠加方法及设备 | |
US11562498B2 (en) | Systems and methods for hybrid depth regularization | |
CN110135455B (zh) | 影像匹配方法、装置及计算机可读存储介质 | |
US10373380B2 (en) | 3-dimensional scene analysis for augmented reality operations | |
JP6760957B2 (ja) | 3次元モデリング方法及び装置 | |
WO2018119889A1 (zh) | 三维场景定位方法和装置 | |
CN107798702B (zh) | 一种用于增强现实的实时图像叠加方法以及装置 | |
CN112733820B (zh) | 障碍物信息生成方法、装置、电子设备和计算机可读介质 | |
CN115439543B (zh) | 孔洞位置的确定方法和元宇宙中三维模型的生成方法 | |
CN108028904B (zh) | 移动设备上光场增强现实/虚拟现实的方法和系统 | |
EP3998582A1 (en) | Three-dimensional model generation method and three-dimensional model generation device | |
CN108109148A (zh) | 图像立体分配方法、移动终端 | |
CN113129352A (zh) | 一种稀疏光场重建方法及装置 | |
CN114332125A (zh) | 点云重建方法、装置、电子设备和存储介质 | |
CN113686314A (zh) | 船载摄像头的单目水面目标分割及单目测距方法 | |
CN115690382A (zh) | 深度学习模型的训练方法、生成全景图的方法和装置 | |
CN113724391A (zh) | 三维模型构建方法、装置、电子设备和计算机可读介质 | |
CN114627244A (zh) | 三维重建方法及装置、电子设备、计算机可读介质 | |
WO2020151078A1 (zh) | 一种三维重建的方法和装置 | |
CN117372647A (zh) | 一种建筑用三维模型的快速构建方法及系统 | |
CN113643328B (zh) | 标定物的重建方法、装置、电子设备及计算机可读介质 | |
KR101454692B1 (ko) | 객체 추적장치 및 그 방법 | |
CN116091871B (zh) | 一种针对目标检测模型的物理对抗样本生成方法及装置 | |
EP4064206A1 (en) | Three-dimensional model generation method and three-dimensional model generation device | |
US20230316574A1 (en) | Matching objects in images |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |