一种点云模型修复方法、装置及计算设备的制造方法

文档序号:10665945阅读:197来源:国知局
一种点云模型修复方法、装置及计算设备的制造方法
【专利摘要】本发明实施例提供一种点云模型修复方法、装置及计算设备,其中方法包括:确定待修复点云模型;遍历所述点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域;若所遍历的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域,则在待处理邻域的无散乱点区域内确定插入点;根据所确定的插入点修复所述点云模型。本发明可使得点云模型的空洞减小,提高点云模型的真实度。
【专利说明】
一种点云模型修复方法、装置及计算设备
技术领域
[0001]本发明涉及三维模型处理技术领域,具体涉及一种点云模型修复方法、装置及计算设备。
【背景技术】
[0002]点云模型是对一个对象(包括任意实体,如街道楼面,树木等)进行三维建模后的三维模型,主要由点云探测设备所探测的对象的散乱点构成;目前在点云模型的构建过程中,主要采用LiDar (Light Detect1n And Ranging,光探测与测量)设备进行对象的散乱点探测,LiDar设备为点云探测设备的一种,LiDar设备所测得的数据为对象的DSM(Digital Surface Model,数字表面模型)的离散点表示,所测得的数据中含有对象的空间三维信息和激光强度信息等。
[0003]本发明的发明人在研究过程中发现,在点云探测设备对对象的散乱点进行探测的过程中,由于其他实体的遮挡、或者光影投射角度的影响,最后通过所探测的对象的散乱点所构建的对象点云模型存在大量的空洞,这些空洞将极大的影响所构建的对象点云模型的真实度;以街景点云模型为例,在车载LiDar设备探测建筑物的散乱点的过程中,由于车载LiDar设备使用的激光穿透玻璃墙面以及其他物体的遮挡,将引起最后构建的建筑物点云模型存在大量的空洞。图1示出了存在空洞的建筑物点云模型的示意图,可以看出,所构建的建筑物点云模型的窗户,玻璃墙面,楼顶等部分存在大量的空洞,建筑物点云模型的真实度较低。
[0004]因此,如何对存在空洞的点云模型进行修复,解决发明人发现的现有构建的点云模型存在大量的空洞,真实度较低的问题,成为本领域技术人员亟需解决的问题。

【发明内容】

[0005]有鉴于此,本发明实施例提供一种点云模型修复方法、装置及计算设备,以对存在空洞的对象点云模型进行修复,解决现有构建的对象点云模型存在大量的空洞,真实度较低的问题。
[0006]为实现上述目的,本发明实施例提供如下技术方案:
[0007]—种点云模型修复方法,包括:
[0008]确定待修复点云模型;
[0009]遍历所述点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域;
[0010]若所遍历的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域,则在待处理邻域的无散乱点区域内确定插入点;
[0011]根据所确定的插入点修复所述点云模型。
[0012]本发明实施例还提供一种点云模型修复装置,包括:
[0013]模型确定模块,用于确定待修复点云模型;
[0014]邻域确定模块,用于遍历所述点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域;
[0015]插入点确定模块,用于若所遍历的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域,则在待处理邻域的无散乱点区域内确定插入点;
[0016]修复模块,用于根据所确定的插入点修复所述点云模型。
[0017]本发明实施例还提供一种计算设备,包括上述所述的点云模型修复装置。
[0018]基于上述技术方案,本发明实施例提供的点云模型修复方法,在确定待修复点云模型后,可遍历所述点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域;若所遍历的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域,则在待处理邻域的无散乱点区域内确定插入点;根据所确定的插入点修复所述点云模型。本发明实施例通过遍历点云模型的各散乱点,在各散乱点对应的邻域中,寻找散乱点密度低于密度阈值的待处理邻域,从而在待处理邻域的无散乱点区域内确定插入点,得到多个插入点,通过所得到的多个插入点修复点云模型的空洞,可使得点云模型的空洞减小,提高点云模型的真实度。
【附图说明】
[0019]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0020]图1为存在空洞的建筑物点云模型的不意图;
[0021]图2为本发明实施例提供的点云模型修复方法的流程图;
[0022]图3为本发明实施例提供的点云模型修复方法的另一流程图;
[0023]图4为本发明实施例提供的确定插入点的方法流程图;
[0024]图5为本发明实施例提供的插入点确定示意图;
[0025]图6为本发明实施例提供的确定插入点的另一方法流程图;
[0026]图7为本发明实施例提供的另一插入点确定不意图;
[0027]图8为本发明实施例提供的根据所确定的插入点修复点云模型的方法流程图;
[0028]图9为本发明实施例提供的点云模型修复方法的再一流程图;
[0029]图10为本发明实施例提供的点云模型修复方法的又一流程图;
[0030]图11为本发明实施例提供的点云模型修复装置的结构框图;
[0031]图12为本发明实施例提供的插入点确定模块的结构框图;
[0032]图13为本发明实施例提供的插入点确定执行单元的结构框图;
[0033]图14为本发明实施例提供的插入点确定执行单元的另一结构框图;
[0034]图15为本发明实施例提供的修复模块的结构框图;
[0035]图16为本发明实施例提供的点云模型修复装置的另一结构框图;
[0036]图17为本发明实施例提供的点云模型修复装置的再一结构框图;
[0037]图18为本发明实施例提供的计算设备的硬件结构框图。
【具体实施方式】
[0038]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0039]图2为本发明实施例提供的点云模型修复方法的流程图,该方法可应用于具有数据处理能力的可对点云模型进行数据处理的计算设备,如智能手机、PC(个人计算机)等用户设备,或服务器等网络侧设备;采用本发明实施例提供的点云模型修复方法,可对任意的独立对象的点云模型存在的空洞进行修复;参照图2,该方法可以包括:
[0040]步骤S100、确定待修复点云模型;
[0041]待修复点云模型可以为任意的存在空洞的点云模型,不限于独立对象的初始点云模型,还有可能是进行过空洞修复处理,但仍存在空洞的点云模型。
[0042]步骤S110、遍历所述点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域;
[0043]点云模型具有多个散乱点,在一次遍历中,本发明实施例可遍历点云模型的每一个散乱点,确定出所遍历的每一个散乱点对应的邻域;
[0044]可选的,本发明实施例可设定邻域范围,对于点云模型的每一个散乱点,可确定出包含所遍历的散乱点,且大小为设定邻域范围的邻域;优选的,可以所遍历的散乱点为中心,确定出大小为设定邻域范围的邻域;
[0045]进一步,所确定的领域的形状可以为规则的,如球形,长方体,立方体等形状;邻域内的散乱点(即所遍历的散乱点对应的邻域点)可由KNNGc-NearestNeighbor,邻近算法)算法得到。
[0046]在确定所遍历的每一个散乱点对应的邻域后,可得出与所述点云模型的散乱点数量对应的邻域,一个散乱点对应一个邻域。
[0047]步骤S120、若所遍历的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域,则在待处理邻域的无散乱点区域内确定插入点;
[0048]对于各个邻域,本发明实施例可判断邻域内的散乱点密度是否低于设定的密度阈值,若邻域内的散乱点密度低于密度阈值,则该邻域为待处理邻域,可从该待处理邻域中确定修复空洞的插入点;邻域的散乱点密度可通过邻域内的散乱点个数,除以邻域面积得到;
[0049]设定密度阈值可以认为是点云模型在不存在空洞情况下的散乱点密度,具体数值可视实际应用情况设定;
[0050]无散乱点区域为待处理邻域中的小区域,无散乱点区域的面积小于待处理邻域的面积;无散乱点区域可以认为是待处理邻域中散乱点分布稀疏的区域;可选的,无散乱点区域的大小可以认为是点云模型在不存在空洞情况下,一个散乱点平均所占据的面积,无散乱点区域的面积大小可以视实际应用情况设定;
[0051]可选的,一个待处理邻域所确定的插入点数量可选为I个,显然,也不限于此值。
[0052]步骤S130、根据所确定的插入点修复所述点云模型。
[0053]可选的,在所确定的插入点正确的情况下,如所确定的插入点与所述点云模型的形态特征相匹配,则可用所确定的插入点修复点云模型的空洞。
[0054]本发明实施例提供的点云模型修复方法,在确定待修复点云模型后,可遍历所述点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域;若所遍历的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域,则在待处理邻域的无散乱点区域内确定插入点;根据所确定的插入点修复所述点云模型。本发明实施例通过遍历点云模型的各散乱点,在各散乱点对应的邻域中,寻找散乱点密度低于密度阈值的待处理邻域,从而在待处理邻域的无散乱点区域内确定插入点,得到多个插入点,通过所得到的多个插入点修复点云模型的空洞,可使得点云模型的空洞减小,提高点云模型的真实度。
[0055]可以看出,通过一次遍历点云模型的每一个散乱点,可确定出多个插入点修复点云模型的空洞,使得点云模型的空洞减小,提高点云模型的真实度;因此可选的,本发明实施例可多次遍历点云模型的每一个散乱点,通过确定多次插入点的方式修复点云模型的空洞,使得点云模型趋于无空洞,进一步提升点云模型的真实度,其中,下一次遍历的点云模型为根据上一次遍历的点云模型的每一个散乱点所确定的插入点修复的点云模型;遍历次数可根据实际应用情况设定。
[0056]图3为本发明实施例提供的点云模型修复方法的另一流程图,参照图3,该方法可以包括:
[0057]步骤S200、判断当前遍历点云模型的每一个散乱点的次数,是否大于设定次数,若否,执行步骤S210,若是,执行步骤S250 ;
[0058]步骤S210、将根据上一次遍历的点云模型的每一个散乱点所确定的插入点修复的点云模型,作为待修复点云模型;
[0059]可选的,根据上一次遍历点云模型的每一个散乱点所确定的插入点修复点云模型的过程可以参照图2所示,即若在上一次遍历的点云模型的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域时,则在待处理邻域的无散乱点区域内确定插入点,根据所确定的插入点进行点云模型修复;其实质处理过程与图2 —致;
[0060]可选的,若当前点云模型为初始遍历的,则不存在上一次遍历点云模型的每一个散乱点的情况,可将当前点云模型直接作为待修复点云模型,执行后续流程。
[0061]步骤S220、遍历待修复点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域;
[0062]步骤S230、若所遍历的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域,则在待处理邻域的无散乱点区域内确定插入点;
[0063]步骤S240、根据所确定的插入点修复待修复点云模型;
[0064]步骤S250、结束流程。
[0065]值得注意的是,本发明实施例在进行点云模型的修复过程中,并不是通过寻找点云模型的空洞区域来修复空洞,而是通过点云模型各散乱点的邻域密度进行插入点的确定,从而在点云模型的散乱点分布稀疏区域补插入点,通过散乱点的邻域密度控制点云模型的空洞修复;相比寻找点云模型的空洞区域来修复空洞的方式,本发明不需要寻找点云模型的空洞区域,计算量大幅减小,且修复准确度更高(点云模型的空洞区域的寻找计算量极大,且涉及的判断逻辑极为复杂,受限条件较多,极易出现空洞区域判断错误的情况)。
[0066]可选的,为提高待处理邻域的无散乱点区域内插入点的确定准确度,本发明实施例可设定无散乱点区域的面积大小,具体的可以设定面积作为无散乱点区域的面积大小;对应的,无散乱点区域为待处理邻域中不存在散乱点的设定面积的区域,设定面积小于待处理邻域的面积;在待处理邻域的无散乱点区域内确定插入点的过程可以为,在待处理邻域中不存在散乱点的设定面积的区域内确定插入点。
[0067]优选的,设定面积可以选取点云模型在不存在空洞情况下,一个散乱点平均所占据的面积,具体数值可视实际应用情况设定。
[0068]图4示出了本发明实施例提供的在待处理邻域中不存在散乱点的设定面积的区域内确定插入点的方法流程图,该方法主要根据邻域内各散乱点,与对应的所遍历的散乱点的位置关系,约束插入点的位置,使得所确定的插入点位于无散乱点区域内;参照图4,该方法可以包括:
[0069]步骤S300、确定待处理邻域的各散乱点,到对应的所遍历的散乱点的中点集合;
[0070]步骤S310、对于中点集合的各点,选取中点集合的点到待处理邻域的各散乱点的距离中符合第一条件的一距离,得到符合第一条件的距离集合;
[0071]本发明实施例可从中点集合的一点到待处理邻域的各散乱点的距离中,选取出符合第一条件的一距离,对中点集合的各点均作此处理,则可得到符合第一条件的距离集合;
[0072]可选的,符合第一条件的距离可以为最小距离,具体的,本发明实施例可选取中点集合的点到待处理邻域的各散乱点的距离最小值,得到最小距离集合;显然,第一条件也可以是第二最小距离,或第三最小距离等,主要以最小距离的设定排序作为第一条件的确定策略。
[0073]步骤S320、将符合第一条件的距离集合中符合第二条件的一距离所对应的中点集合的点确定为插入点。
[0074]可选的,符合第二条件的距离可以为最大距离,具体的,本发明实施例可将符合第一条件的距离集合中的距离最大值所对应的中点集合的点确定为插入点;显然,第二条件也可以为第二最大距离,或第三最大距离等,主要以最大距离的设定排序作为第二条件的确定策略。
[0075]可选的,在待处理邻域中不存在散乱点的设定面积的区域内确定插入点的方式可以为:确定待处理邻域的各散乱点,到对应的所遍历的散乱点的中点集合;对于中点集合的各点,确定中点集合的点到待处理邻域的各散乱点的距离最小值,得到最小距离集合;将最小距离集合中的距离最大值所对应的中点集合的点确定为插入点。以此为例,图5示出了对应的插入点确定示意图。
[0076]参照图5,以邻域形状为球形为例,为便于示例,图5以圆形平面表示球形情况;实点V为所遍历的散乱点,以点V为中心的设定半径大小的球形邻域内具有多个散乱点N (V),即图中除点V外的其他实点;可得出球形邻域内的散乱点N(V)中,各散乱点到点V的中点的集合Mid (V,N(V)),如图中空心点所示;对于的各空心点,计算空心点至球形邻域内的散乱点N(V)的距离最小值,得到最小距离集合;将最小距离集合中的距离最大值所对应的空心点作为插入点,即空心点m为最后确定的插入点。
[0077]可选的,在确定待处理邻域中不存在散乱点的设定面积的区域后,可将待处理邻域中不存在散乱点的设定面积的区域的中心点作为插入点,也可以是随机的在不存在散乱点的设定面积的区域内确定插入点。
[0078]优选的,在待处理邻域中不存在散乱点的设定面积的区域内确定插入点的方式,可以通过对待处理邻域进行设定面积的区域划分实现,在寻找到不存在散乱点的划分区域后,则在该不存在散乱点的划分区域内确定插入点。
[0079]图6示出了本发明实施例提供的在待处理邻域中不存在散乱点的设定面积的区域内确定插入点的另一方法流程图,参照图6,该方法可以包括:
[0080]步骤S400、以设定面积对待处理邻域进行划分,得到多个具有设定面积的划分区域;
[0081]参照图7,以邻域形状为球形为例,为便于示例,图7以圆形平面表示球形情况;实点V为所遍历的散乱点,以点V为中心的设定半径大小的球形邻域内具有多个散乱点N(V);本发明实施例可以设定面积为所划分的单区域大小,对邻域进行区域划分,如图7,得出多个划分区域,各划分区域的面积大小为设定面积。
[0082]步骤S410、若存在不存在散乱点的划分区域,则在不存在散乱点的划分区域内确定插入点。
[0083]对于存在散乱点的划分区域,则本发明实施例可忽略,不作插入点的确定;对于不存在散乱点的划分区域,可将该不存在散乱点的划分区域的中心,或随机选取的点确定为插入点;可选的,不存在散乱点的划分区域可能有多个,本发明实施例可仅在所确定的一个不存在散乱点的划分区域中确定插入点,得到一个插入点;显然,也可在多个不存在散乱点的划分区域中分别确定插入点,得到多个插入点。
[0084]参照图7,在对邻域进行区域划分后,阴影部分为不存在散乱点的划分区域,则可在不存在散乱点的划分区域内确定插入点,如图7所示菱形点。
[0085]上文示出了多种在待处理邻域的无散乱点区域内确定插入点的方式,值得注意的是,上文所示方式仅为可选方式,对于其他的通过邻域密度控制策略,在待处理邻域的无散乱点区域内确定插入点的方式,均在本发明的保护范围内。
[0086]可选的,在待处理邻域的无散乱点区域内确定插入点后,本发明实施例可根据所确定的插入点修复点云模型,对点云模型进行补点,使得点云模型的散乱点数量增多,提升点云模型的真实度。
[0087]进一步,为保证所确定的插入点与点云模型的形态特征相匹配,本发明实施例可通过插入点的法向方向判断是否采用所确定的插入点对点云模型作修复。图8示出了本发明实施例提供的根据所确定的插入点修复点云模型的方法流程图,参照图8,该方法可以包括:
[0088]步骤S500、对于所确定的各插入点,确定所确定的插入点的邻域;
[0089]可选的,确定插入点的邻域的方式,可与前文确定所遍历的散乱点的邻域的方式类似,可参照;为简化计算流程,本发明实施例可以直接以所确定的插入点对应的所遍历散乱点的邻域,作为该插入点的邻域。
[0090]步骤S510、判断所确定的插入点的法向,与所确定的插入点的邻域的法向是否相同,若是,执行步骤S520,若否,执行步骤S530 ;
[0091]步骤S520、保留所确定的插入点,将所确定的插入点作为所述点云模型中的新加入散乱点;
[0092]通过将所确定的插入点作为点云模型中的散乱点,可对点云模型进行补点,提升点云模型的散乱点数量。
[0093]步骤S530、丢弃所确定的插入点。
[0094]下面提供一种优选的点云模型修复方法流程,图9为本发明实施例提供的点云模型修复方法的再一流程图,参照图9,该方法可以包括:
[0095]步骤S600、判断当前遍历点云模型的每一个散乱点的次数,是否大于设定次数,若否,执行步骤S610,若是,执行步骤S690 ;
[0096]步骤S610、将根据上一次遍历点云模型的每一个散乱点所确定的插入点修复的点云模型,作为待修复点云模型;
[0097]若当前点云模型为初始遍历的,则不存在上一次遍历点云模型的每一个散乱点的情况,可将当前点云模型(可能为待修复对象的初始点云模型)直接作为待修复点云模型,执行后续流程。
[0098]步骤S620、遍历待修复点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域;
[0099]步骤630、判断是否存在散乱点密度低于密度阈值的待处理邻域,若是,执行步骤S640,若否,执行步骤S690 ;
[0100]步骤S640、对于各待处理邻域,确定待处理邻域的各散乱点,到对应的所遍历的散乱点的中点集合,对于中点集合的各点,确定中点集合的点到待处理邻域的各散乱点的距离最小值,得到最小距离集合,将最小距离集合中的距离最大值所对应的中点集合的点确定为插入点;
[0101]其中,一个待处理邻域可确定出一个插入点。
[0102]步骤S650、对于所确定的各插入点,确定所确定的插入点的邻域;
[0103]步骤S660、判断所确定的插入点的法向,与所确定的插入点的邻域的法向是否相同,若是,执行步骤S670,若否,执行步骤S680 ;
[0104]步骤S670、保留所确定的插入点,将所确定的插入点作为所述点云模型中的新加入散乱点;
[0105]步骤S680、丢弃所确定的插入点;
[0106]步骤S690、结束流程。
[0107]上文描述的点云模型修复方法可适用于任意的需对点云模型进行补点的阶段。
[0108]进一步,在对点云模型进行补点时,本发明实施例可分为补洞阶段和加密阶段,补洞阶段和加密阶段的处理逻辑与前文描述的点云模型修复方法的处理逻辑类似,不同之处在于补洞阶段所选取的邻域范围,大于加密阶段所选取的邻域范围。
[0109]图10为本发明实施例提供的点云模型修复方法的又一流程图,参照图10,该方法可以包括:
[0110]步骤S700、确定待修复点云模型;
[0111]步骤S710、遍历待修复点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的补洞邻域;
[0112]步骤S720、若所遍历的每一个散乱点对应的补洞邻域中,存在散乱点密度低于密度阈值的待处理补洞邻域,则在待处理补洞邻域的无散乱点区域内确定插入点;
[0113]步骤S730、根据所确定的插入点对待修复点云模型进行补洞;
[0114]值得注意的是,步骤S700?步骤S730为补洞阶段,补洞阶段确定待修复点云模型的方式可以为:将待修复的初始点云模型确定为所述点云模型;或者,若已遍历待修复点云模型的每一个散乱点的次数未达到设定次数,则将根据上一次遍历的点云模型的每一个散乱点所确定的插入点修复的点云模型,作为当前的待修复点云模型;其中,下一次遍历的点云模型为,根据上一次遍历的点云模型的每一个散乱点确定的插入点所修复的点云模型。
[0115]步骤S740、确定待加密点云模型;
[0116]所确定的待加密点云模型可以为补洞阶段,已遍历待修复点云模型的每一个散乱点的次数达到设定次数时,所对应的点云模型;或,补洞阶段,所遍历的每一个散乱点对应的补洞邻域的散乱点密度均不低于密度阈值时,所对应的点云模型。
[0117]步骤S750、遍历待加密点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的加密邻域,其中,加密邻域的范围小于补洞邻域的范围;
[0118]可选的,若邻域为规则形状,如球形等,则加密邻域的半径需小于补洞邻域的半径。
[0119]步骤S760、若所遍历的每一个散乱点对应的加密邻域中,存在散乱点密度低于密度阈值的待处理加密邻域,则在待处理加密邻域的无散乱点区域内确定插入点;
[0120]步骤S770、根据所确定的插入点修复所述待加密点云模型。
[0121]可以看出,步骤S740?步骤S760为加密阶段,是对步骤S700?步骤S730补洞后的点云模型进行加密,补洞阶段和加密阶段的处理逻辑基本一致,两者的结果均可认为是对点云模型进行补点;可参照前文图2?图9部分的描述。补洞阶段和加密阶段的区别在于:补洞阶段所选取的邻域范围较大,先在较大范围内通过邻域密度控制确定插入点,以进行补点;而加密阶段所选取的邻域范围较小,在补洞阶段后,进一步在较小的范围内通过邻域密度控制确定插入点,以提升补点的数量。
[0122]本发明实施例提供的点云模型修复方法的一个应用为,对街景点云模型中的建筑物点云模型进行空洞修复。街景点云模型主要由建筑物点云模型和近地点云模型构成,本发明实施例可在从街景点云模型中分割出建筑物点云模型后,对分割出的独立建筑物点云模型进行空洞修复;修复方式可参照前文图2?图9部分的描述,显然也可采用补洞和加密结合的方式进行空洞修复。
[0123]下面以采用补洞和加密结合的方式,对建筑物点云模型的修复过程进行介绍:
[0124]1、从街景点云模型中分割出建筑物点云模型,所分割出的建筑物点云模型应是独立的;具体的,可确定街景点云模型中的建筑物点云模型,将不同高度的建筑物点云模型进行分割,将相同高度的建筑物点云模型相聚类,得到至少一个独立的建筑物点云模型;
[0125]2、在分割出独立的建筑物点云模型后,可遍历建筑物点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的补洞邻域;可选的,可以设定第一半径确定每一个散乱点对应的球形补洞邻域,设定第一半径可以选取建筑物楼层高度的一半,显然,具体数值也可视实际使用情况而定;
[0126]3、若所遍历的每一个散乱点对应的补洞邻域中,存在散乱点密度低于密度阈值的待处理补洞邻域,则在待处理补洞邻域的无散乱点区域内确定插入点;可选确定方式可如图4或图6所示;
[0127]4、将插入点的法向与其邻域法向进行比对,保留与所确定的插入点的邻域的法向相同的插入点,通过所保留的插入点进行补洞;
[0128]5、循环执行上述2?4步骤,直至遍历建筑物点云模型的每一个散乱点的次数达到设定次数时,或者,所遍历的每一个散乱点对应的补洞邻域的散乱点密度均不低于密度阈值时,进入步骤6;需要注意的是,下一次遍历的建筑物点云模型为,根据上一次遍历的建筑物点云模型的每一个散乱点确定的插入点进行补洞后的建筑物点云模型;
[0129]6、将执行步骤5所得到的补洞后的建筑物点云模型,作为待加密建筑物点云模型;
[0130]7、遍历待加密点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的加密邻域,其中,加密邻域的范围小于补洞邻域的范围;可选的,可以设定第二半径确定每一个散乱点对应的球形加密邻域,设定第二半径小于设定第一半径,设定第二半径可以选取
0.5米,显然,具体数值也可视实际使用情况而定;
[0131]8、若所遍历的每一个散乱点对应的加密邻域中,存在散乱点密度低于密度阈值的待处理加密邻域,则在待处理加密邻域的无散乱点区域内确定插入点;可选确定方式可如图4或图6所示;
[0132]9、将插入点的法向与其邻域法向进行比对,保留与所确定的插入点的邻域的法向相同的插入点,通过所保留的插入点进行加密;
[0133]10、循环执行上述7?9步骤,直至遍历建筑物点云模型的每一个散乱点的次数达到设定次数时,或者,所遍历的每一个散乱点对应的加密邻域的散乱点密度均不低于密度阈值时,得到修复后的建筑物点云模型;需要注意的是,下一次遍历的建筑物点云模型为,根据上一次遍历的建筑物点云模型的每一个散乱点确定的插入点进行加密后的建筑物点云模型;
[0134]11、由于近地点云模型的物体分布特别复杂,主要有树木、行人、车辆、广告牌以及各种交通标识牌等对象;这部分数据大部分都比较完整,不过由于采集车运行的速度不均匀会造成近地点云模型的散乱点分布不均匀;因此可在步骤10后,对近地点云模型进行加密处理,提高街景点云模型的质量;对近地点云模型进行加密的过程,与对建筑物点云模型进行加密的过程类似,可相参照。
[0135]本发明实施例通过遍历点云模型的各散乱点,在各散乱点对应的邻域中,寻找散乱点密度低于密度阈值的待处理邻域,从而在待处理邻域的无散乱点区域内确定插入点,得到多个插入点,通过所得到的多个插入点修复点云模型的空洞,可使得点云模型的空洞减小,提高点云模型的真实度;同时,本发明通过散乱点的邻域密度控制点云模型的空洞修,不需要寻找点云模型的空洞区域,计算量大幅减小,且修复准确度更高。
[0136]下面对本发明实施例提供的点云模型修复装置进行介绍,下文描述的点云模型修复装置可与上文描述的点云模型修复方法相互对应参照。
[0137]图11为本发明实施例提供的点云模型修复装置的结构框图,该装置可应用于具有数据处理能力的可对点云模型进行数据处理的计算设备;参照图11,该装置可以包括:
[0138]模型确定模块100,用于确定待修复点云模型;
[0139]邻域确定模块200,用于遍历所述点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域;
[0140]插入点确定模块300,用于若所遍历的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域,则在待处理邻域的无散乱点区域内确定插入点;
[0141]修复模块400,用于根据所确定的插入点修复所述点云模型。
[0142]可选的,无散乱点区域可以为待处理邻域中不存在散乱点的设定面积的区域;所述设定面积小于待处理邻域的面积;图12示出了本发明实施例提供的插入点确定模块300的一种可选结构,参照图12,插入点确定模块300可以包括:
[0143]插入点确定执行单元310,用于在待处理邻域中不存在散乱点的设定面积的区域内确定插入点。
[0144]可选的,图13示出了本发明实施例提供的插入点确定执行单元310的一种可选结构,参照图13,插入点确定执行单元310可以包括:
[0145]中点集合确定子单元3101,用于确定待处理邻域的各散乱点,到对应的所遍历的散乱点的中点集合;
[0146]选取子单元3102,用于对于中点集合的各点,选取中点集合的点到待处理邻域的各散乱点的距离中符合第一条件的一距离,得到符合第一条件的距离集合;
[0147]可选的,符合第一条件的距离可以为最小距离。
[0148]插入点选取子单元3103,用于将符合第一条件的距离集合中符合第二条件的一距离所对应的中点集合的点确定为插入点;
[0149]可选的,符合第二条件的距离可以为最大距离。
[0150]可选的,图14示出了本发明实施例提供的插入点确定执行单元310的另一种可选结构,参照图14,插入点确定执行单元310可以包括:
[0151]划分子单元3111,用于以设定面积对待处理邻域进行划分,得到多个具有设定面积的划分区域;
[0152]划分区域内确定子单元3112,用于若存在不存在散乱点的划分区域,则在不存在散乱点的划分区域内确定插入点。
[0153]可选的,图15示出了本发明实施例提供的修复模块400的一种可选结构,参照图15,修复模块400可以包括:
[0154]插入点邻域确定单元410,用于对于所确定的各插入点,确定所确定的插入点的邻域;
[0155]法向判断单元420,用于判断所确定的插入点的法向,与所确定的插入点的邻域的法向是否相同;
[0156]保留单元430,用于若所确定的插入点的法向,与所确定的插入点的邻域的法向相同,则保留所确定的插入点,将所确定的插入点作为所述点云模型中的新加入散乱点;
[0157]丢弃单元440,用于若所确定的插入点的法向,与所确定的插入点的邻域的法向不同,则丢弃所确定的插入点。
[0158]可选的,模型确定模块100确定待修复点云模型的过程可以为具体:若当前遍历点云模型的每一个散乱点的次数未达到设定次数,则将根据上一次遍历点云模型的每一个散乱点所确定的插入点修复的点云模型,作为待修复点云模型。显然,若当前点云模型为初始遍历的,则不存在上一次遍历点云模型的每一个散乱点的情况,可将当前点云模型直接作为待修复点云模型。
[0159]可选的,本发明实施例可采用补洞结合加密的方式,对点云模型进行修复。图11所示功能模块可以执行补洞阶段;具体的,修复模块400可根据所确定的插入点对所述点云模型进行补洞,对应的,邻域为补洞邻域;模型确定模块100所确定的待修复点云模型可以为,待修复的初始点云模型,或者,已遍历待修复点云模型的每一个散乱点的次数未达到设定次数时,根据上一次遍历的点云模型的每一个散乱点所确定的插入点修复的点云模型;其中,下一次遍历的点云模型为,根据上一次遍历的点云模型的每一个散乱点确定的插入点所修复的点云模型。在此基础上,图16示出了本发明实施例提供的点云模型修复装置的另一结构框图,参照图16,该装置还可以包括:
[0160]待加密点云模型确定模块500,用于确定待加密点云模型;
[0161]可选的,待加密点云模型可以为在对所述点云模型进行补洞的阶段,已遍历待修复点云模型的每一个散乱点的次数达到设定次数时,所对应的点云模型,或,在对所述点云模型进行补洞的阶段,所遍历的每一个散乱点对应的补洞邻域的散乱点密度均不低于密度阈值时,所对应的点云模型。
[0162]加密邻域确定模块600,用于遍历待加密点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的加密邻域,其中,加密邻域的范围小于补洞邻域的范围
[0163]加密插入点确定模块700,用于若所遍历的每一个散乱点对应的加密邻域中,存在散乱点密度低于密度阈值的待处理加密邻域,则在待处理加密邻域的无散乱点区域内确定插入点;
[0164]加密修复模块800,用于根据所确定的插入点修复所述待加密点云模型。
[0165]可选的,加密插入点确定模块700的结构可与插入点确定模块300的结构类似,可相参照;加密修复模块800的结构可与图15所示修复模块400的结构类似,可相参照。
[0166]可选的,本发明实施例提供的点云模型修复装置可应用于对街景点云模型中的建筑物点云模型进行空洞修复;本发明实施例可在建筑物点云模型由街景点云模型中分割出后,对独立的建筑物点云模型进行空洞修复。图17示出了本发明实施例提供的点云模型修复装置的再一结构框图,结合图11和图17所示,该装置还可以包括:
[0167]分割模块900,用于确定街景点云模型中的建筑物点云模型,将不同高度的建筑物点云模型进行分割,将相同高度的建筑物点云模型相聚类,得到至少一个建筑物点云模型;
[0168]所得到的建筑物点云模型可通过图11所示点云模型修复装置进行空洞修复,也可通过图16所示点云模型修复装置,使用补洞结合加密的方式。
[0169]进一步,在对建筑物点云模型进行修复后,本发明实施例还可对近地点云模型进行加密处理。
[0170]本发明实施例还提供一种计算设备,该计算设备可以包括上述所述的点云模型修复装置;该计算设备在进行点云模型修复时,可通过遍历点云模型的各散乱点,在各散乱点对应的邻域中,寻找散乱点密度低于密度阈值的待处理邻域,从而在待处理邻域的无散乱点区域内确定插入点,得到多个插入点,通过所得到的多个插入点修复点云模型的空洞,可使得点云模型的空洞减小,提高点云模型的真实度;同时,该计算设备通过散乱点的邻域密度控制点云模型的空洞修,不需要寻找点云模型的空洞区域,计算量大幅减小,且修复准确度更高。
[0171]图18为本发明实施例提供的计算设备的硬件结构框图,计算设备可以如智能手机、PC(个人计算机)等用户设备,或服务器等网络侧设备;参照图18,计算可以包括:处理器I,通信接口 2,存储器3和通信总线4 ;
[0172]其中处理器1、通信接口 2、存储器3通过通信总线4完成相互间的通信;
[0173]可选的,通信接口 2可以为通信模块的接口,如GSM模块的接口 ;
[0174]处理器I,用于执行程序;
[0175]存储器3,用于存放程序;
[0176]程序可以包括程序代码,所述程序代码包括计算机操作指令。
[0177]处理器I可能是一个中央处理器CPU,或者是特定集成电路ASIC(Applicat1nSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0178]存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
[0179]其中,程序可具体用于:
[0180]确定待修复点云模型;
[0181]遍历所述点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域;
[0182]若所遍历的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域,则在待处理邻域的无散乱点区域内确定插入点;
[0183]根据所确定的插入点修复所述点云模型。
[0184]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0185]专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0186]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程R0M、电可擦除可编程R0M、寄存器、硬盘、可移动磁盘、CD-R0M、或技术领域内所公知的任意其它形式的存储介质中。
[0187]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种点云模型修复方法,其特征在于,包括: 确定待修复点云模型; 遍历所述点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域;若所遍历的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域,则在待处理邻域的无散乱点区域内确定插入点; 根据所确定的插入点修复所述点云模型。2.根据权利要求1所述的点云模型修复方法,其特征在于,所述无散乱点区域为待处理邻域中不存在散乱点的设定面积的区域;所述设定面积小于待处理邻域的面积; 所述在待处理邻域的无散乱点区域内确定插入点包括: 在待处理邻域中不存在散乱点的设定面积的区域内确定插入点。3.根据权利要求2所述的点云模型修复方法,其特征在于,所述在待处理邻域中不存在散乱点的设定面积的区域内确定插入点包括: 确定待处理邻域的各散乱点,到对应的所遍历的散乱点的中点集合; 对于中点集合的各点,选取中点集合的点到待处理邻域的各散乱点的距离中符合第一条件的一距离,得到符合第一条件的距离集合; 将符合第一条件的距离集合中符合第二条件的一距离所对应的中点集合的点确定为插入点。4.根据权利要求2所述的点云模型修复方法,其特征在于,所述在待处理邻域中不存在散乱点的设定面积的区域内确定插入点包括: 以设定面积对待处理邻域进行划分,得到多个具有设定面积的划分区域; 若存在不存在散乱点的划分区域,则在不存在散乱点的划分区域内确定插入点。5.根据权利要求1-4任一项所述的点云模型修复方法,其特征在于,所述根据所确定的插入点修复所述点云模型包括: 对于所确定的各插入点,确定所确定的插入点的邻域; 判断所确定的插入点的法向,与所确定的插入点的邻域的法向是否相同; 若所确定的插入点的法向,与所确定的插入点的邻域的法向相同,则保留所确定的插入点,将所确定的插入点作为所述点云模型中的新加入散乱点; 若所确定的插入点的法向,与所确定的插入点的邻域的法向不同,贝1J丢弃所确定的插入点。6.根据权利要求1所述的点云模型修复方法,其特征在于,所述确定待修复点云模型包括: 若当前遍历点云模型的每一个散乱点的次数未达到设定次数,则将根据上一次遍历点云模型的每一个散乱点所确定的插入点修复的点云模型,作为待修复点云模型。7.根据权利要求1所述的点云模型修复方法,其特征在于,所述根据所确定的插入点修复所述点云模型包括: 根据所确定的插入点对所述点云模型进行补洞,其中,所述邻域为补洞邻域; 所述确定待修复点云模型包括: 将待修复的初始点云模型确定为当前的待修复点云模型; 或,若已遍历待修复点云模型的每一个散乱点的次数未达到设定次数,则将根据上一次遍历的点云模型的每一个散乱点所确定的插入点修复的点云模型,作为当前的待修复点云模型;其中,下一次遍历的点云模型为,根据上一次遍历的点云模型的每一个散乱点确定的插入点所修复的点云模型; 所述方法还包括: 确定待加密点云模型;其中,所述待加密点云模型为在对所述点云模型进行补洞的阶段,已遍历待修复点云模型的每一个散乱点的次数达到设定次数时,所对应的点云模型,或,在对所述点云模型进行补洞的阶段,所遍历的每一个散乱点对应的补洞邻域的散乱点密度均不低于密度阈值时,所对应的点云模型; 遍历待加密点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的加密邻域,其中,加密邻域的范围小于补洞邻域的范围; 若所遍历的每一个散乱点对应的加密邻域中,存在散乱点密度低于密度阈值的待处理加密邻域,则在待处理加密邻域的无散乱点区域内确定插入点; 根据所确定的插入点修复所述待加密点云模型。8.根据权利要求1所述的点云模型修复方法,其特征在于,所述点云模型为建筑物点云模型;所述建筑物点云模型由街景点云模型中分割出,所述街景点云模型包括:建筑物点云模型和近地点云模型; 所述由街景点云模型中分割出建筑物点云模型的过程包括: 确定街景点云模型中的建筑物点云模型; 将不同高度的建筑物点云模型进行分割,将相同高度的建筑物点云模型相聚类,得到至少一个建筑物点云模型。9.一种点云模型修复装置,其特征在于,包括: 模型确定模块,用于确定待修复点云模型; 邻域确定模块,用于遍历所述点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的邻域; 插入点确定模块,用于若所遍历的每一个散乱点对应的邻域中,存在散乱点密度低于密度阈值的待处理邻域,则在待处理邻域的无散乱点区域内确定插入点; 修复模块,用于根据所确定的插入点修复所述点云模型。10.根据权利要求9所述的点云模型修复装置,其特征在于,所述无散乱点区域为待处理邻域中不存在散乱点的设定面积的区域;所述设定面积小于待处理邻域的面积;所述插入点确定t吴块包括: 插入点确定执行单元,用于在待处理邻域中不存在散乱点的设定面积的区域内确定插入点。11.根据权利要求10所述的点云模型修复装置,其特征在于,所述插入点确定执行单元包括: 中点集合确定子单元,用于确定待处理邻域的各散乱点,到对应的所遍历的散乱点的中点集合; 选取子单元,用于对于中点集合的各点,选取中点集合的点到待处理邻域的各散乱点的距离中符合第一条件的一距离,得到符合第一条件的距离集合; 插入点选取子单元,用于将符合第一条件的距离集合中符合第二条件的一距离所对应的中点集合的点确定为插入点。12.根据权利要求10所述的点云模型修复装置,其特征在于,所述插入点确定执行单元包括: 划分子单元,用于以设定面积对待处理邻域进行划分,得到多个具有设定面积的划分区域; 划分区域内确定子单元,用于若存在不存在散乱点的划分区域,则在不存在散乱点的划分区域内确定插入点。13.根据权利要求9-12任一项所述的点云模型修复装置,其特征在于,所述修复模块包括: 插入点邻域确定单元,用于对于所确定的各插入点,确定所确定的插入点的邻域;法向判断单元,用于判断所确定的插入点的法向,与所确定的插入点的邻域的法向是否相同; 保留单元,用于若所确定的插入点的法向,与所确定的插入点的邻域的法向相同,则保留所确定的插入点,将所确定的插入点作为所述点云模型中的新加入散乱点; 丢弃单元,用于若所确定的插入点的法向,与所确定的插入点的邻域的法向不同,则丢弃所确定的插入点。14.根据权利要求9所述的点云模型修复装置,其特征在于,所述修复模块具体用于根据所确定的插入点对所述点云模型进行补洞;所述邻域为补洞邻域; 所述模型确定模块具体用于将待修复的初始点云模型确定为当前的待修复点云模型;或,若已遍历待修复点云模型的每一个散乱点的次数未达到设定次数,则将根据上一次遍历的点云模型的每一个散乱点所确定的插入点修复的点云模型,作为当前的待修复点云模型;其中,下一次遍历的点云模型为,根据上一次遍历的点云模型的每一个散乱点确定的插入点所修复的点云模型; 所述点云模型修复装置还包括: 待加密点云模型确定模块,用于确定待加密点云模型;其中,所述待加密点云模型为在对所述点云模型进行补洞的阶段,已遍历待修复点云模型的每一个散乱点的次数达到设定次数时,所对应的点云模型,或,在对所述点云模型进行补洞的阶段,所遍历的每一个散乱点对应的补洞邻域的散乱点密度均不低于密度阈值时,所对应的点云模型; 加密邻域确定模块,用于遍历待加密点云模型的每一个散乱点,并确定所遍历的每一个散乱点对应的加密邻域,其中,加密邻域的范围小于补洞邻域的范围 加密插入点确定模块,用于若所遍历的每一个散乱点对应的加密邻域中,存在散乱点密度低于密度阈值的待处理加密邻域,则在待处理加密邻域的无散乱点区域内确定插入占.V, 加密修复模块,用于根据所确定的插入点修复所述待加密点云模型。15.一种计算设备,其特征在于,包括权利要求9-14任一项所述的点云模型修复装置。
【文档编号】G06T17/00GK106033620SQ201510111559
【公开日】2016年10月19日
【申请日】2015年3月13日
【发明人】冯路, 马腾
【申请人】腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1