CN117830198A - 一种基于三维点云的平面检测方法、装置、设备及存储介质 - Google Patents
一种基于三维点云的平面检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117830198A CN117830198A CN202211212898.XA CN202211212898A CN117830198A CN 117830198 A CN117830198 A CN 117830198A CN 202211212898 A CN202211212898 A CN 202211212898A CN 117830198 A CN117830198 A CN 117830198A
- Authority
- CN
- China
- Prior art keywords
- plane
- point
- points
- planes
- candidate
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 107
- 238000003860 storage Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000005070 sampling Methods 0.000 claims abstract description 17
- 238000005457 optimization Methods 0.000 claims description 74
- 238000012545 processing Methods 0.000 claims description 59
- 230000002159 abnormal effect Effects 0.000 claims description 21
- 238000012216 screening Methods 0.000 claims description 15
- 239000013598 vector Substances 0.000 claims description 15
- 238000003780 insertion Methods 0.000 claims description 13
- 230000037431 insertion Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 238000001914 filtration Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 20
- 238000013461 design Methods 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000011218 segmentation Effects 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种基于三维点云的平面检测方法、装置、设备及存储介质,相关实施例可应用于地图、智慧交通等各种场景,用于提高平面检测效率。该方法包括:将待处理三维稀疏点集划分为候选点子集和多个待插入点子集,若待插入点子集中的点数大于第一点数量阈值,则采用随机抽样生成临时平面,对平面参数进行迭代更新,得到更新平面,将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面,若更新后的候选点总集中的点数大于第二点数量阈值,且当前合并更新平面的总数小于平面阈值,则基于更新后的候选点总集中的点生成候选平面,将全部候选平面、合并更新平面以及剩余未合并的更新平面进行汇总为目标平面集合。
Description
技术领域
本申请实施例涉及图像处理技术领域,尤其涉及一种基于三维点云的平面检测方法、装置、设备及存储介质。
背景技术
随着互联网技术的快速发展,基于网络技术的增强现实(Augmented Reality,AR)技术在越来越多的领域被广泛应用,例如应用于各个短视频、游戏、UI交互、机械组装、设备维修以及结构展示等领域,其中,AR虚拟物体放置作为新的交互方式被多个应用采用,而平面检测功能作为AR能力中的重要能力,因此,如何更精确快速地进行平面检测是目前研究的热点问题。
目前的平面检测方案多数为基于RGB图像或者RGB-D图像的平面检测方案,而RGB图像平面检测利用图像分割、深度学习等算法对二维图像进行平面检测分割,得到像素级平面表示,RGB-D图像平面检测由于有深度D信息,可以在三维空间进行平面检测,结合2D像素信息辅助进行平面分割检测,得到当前图像帧的三维平面。
但是,RGB图像平面检测只能对二维信息进行处理,平面仅在像素空间,无法直接在AR场景中,而RGB-D图像平面检测的检测要求有RGB-D相机,在实际的检测中是很难满足硬件条件,通用性不强。
发明内容
本申请实施例提供了一种基于三维点云的平面检测方法、装置、设备及存储介质,用于基于待处理三维稀疏点集,采用随机抽样算法,实现对待处理三维稀疏点集在场景中可能形成的平面的充分获取,能够直接并广泛应用于直接在AR场景中的平面检测,且无需对二维图像进行平面检测分割或深度学习等复杂的计算,从而可以快速高效地进行平面检测。
本申请实施例一方面提供了一种基于三维点云的平面检测方法,包括:
获取待处理三维稀疏点集,其中,待处理三维稀疏点集中包括多个点以及每个点对应的空间坐标;
基于每个点对应的空间坐标,将待处理三维稀疏点集划分为候选点子集和多个待插入点子集,其中,每个待插入点子集用于描述可插入平面的点的集合,候选点子集用于描述不能插入平面的点的集合;
针对每个待插入点子集,若待插入点子集中的点数大于第一点数量阈值,则采用随机抽样生成临时平面,对插入了待插入点子集的当前平面的平面参数进行迭代更新,得到更新平面;
将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面;
将候选点子集更新至候选点总集,若更新后的候选点总集中的点数大于第二点数量阈值,且当前合并更新平面的总数小于平面阈值,则基于更新后的候选点总集中的点生成候选平面;
将全部候选平面、合并更新平面以及剩余未合并的更新平面进行汇总,得到待处理三维稀疏点集对应的目标平面集合。
本申请另一方面提供了一种基于三维点云的平面检测装置,包括:
获取单元,用于获取待处理三维稀疏点集,其中,待处理三维稀疏点集中包括多个点以及每个点对应的空间坐标;
处理单元,用于基于每个点对应的空间坐标,将待处理三维稀疏点集划分为候选点子集和多个待插入点子集,其中,每个待插入点子集用于描述可插入平面的点的集合,候选点子集用于描述不能插入平面的点的集合;
处理单元,还用于针对每个待插入点子集,若待插入点子集中的点数大于第一点数量阈值,则采用随机抽样生成临时平面,对插入了待插入点子集的当前平面的平面参数进行迭代更新,得到更新平面;
处理单元,还用于将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面;
处理单元,还用于将候选点子集更新至候选点总集,若更新后的候选点总集中的点数大于第二点数量阈值,且当前合并更新平面的总数小于平面阈值,则基于更新后的候选点总集中的点生成候选平面;
确定单元,用于将全部候选平面、合并更新平面以及剩余未合并的更新平面进行汇总,得到待处理三维稀疏点集对应的目标平面集合。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
对插入了待插入点子集的当前平面,每次迭代随机抽取三个点生成当前迭代对应的临时平面;
分别计算当前平面的全部点中的每个点与当前迭代对应的临时平面之间的第一距离;
基于第一距离,确定当前迭代对应的临时平面的内点集合;
基于当前迭代对应的临时平面的内点集合,对当前平面的平面参数进行迭代更新,得到更新平面。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
基于当前迭代对应的临时平面的内点集合,进行平面拟合处理,得到临时平面对应的平面拟合参数;
对平面拟合参数进行迭代优化,得到临时平面对应的对应的临时优化平面;
基于每次迭代对应的临时优化平面对应的优化平面内点数量,从全部的临时优化平面中筛选更新平面。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
分别计算当前平面的全部点的中每个点与临时优化平面之间的第二距离;
将小于或等于距离阈值的第二距离对应的点,确定为临时优化平面对应的优化平面内点,以统计得到临时优化平面对应的优化平面内点数量;
将数值最大的优化平面内点数量对应的临时优化平面,确定为更新平面。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
获取临时优化平面中的全部优化平面内点,投影在临时优化平面上的最大外轮廓多边形;
计算多边形的顶点中心以及全部优化平面内点在临时优化平面上的投影中心;
基于顶点中心以及投影中心,从多边形的全部顶点中筛选出异常顶点,并剔除异常顶点,得到更新平面以及更新平面的优化顶点集合;
基于优化顶点集合,重新计算更新平面对应的优化外轮廓多边形和优化外轮廓多边形的面积,以及计算更新平面对应的平面信息,其中,平面信息至少包括平面法向量。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
计算任意两个更新平面分别对应的平面法向量之间的夹角;
基于每个更新面积对应的优化外轮廓多边形和优化外轮廓多边形的面积,计算任意两个更新平面相互投影后的外轮廓多边形的重叠面积以及面积交并比;
当平面合并条件为夹角小于夹角阈值、重叠面积大于面积阈值且面积交并比大于交并比阈值时,将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
处理单元,还用于计算每个合并更新平面对应的外轮廓多边形的面积;
处理单元,还用于将每个合并更新平面对应的外轮廓多边形的面积,以及剩余未合并的更新平面对应的优化外轮廓多边形的面积,分别与第二面积阈值进行比较;
处理单元,还用于将面积小于第二面积阈值的合并更新平面或剩余未合并的更新平面进行剔除,得到最优更新平面集合;
确定单元,还用于将全部候选平面以及最优更新平面集合进行汇总,得到待处理三维稀疏点集对应的目标平面集合。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,确定单元具体可以用于:
将符合平面合并条件的任意两个更新平面上的所有点进行合并,得到合并平面点集;
基于合并平面点集,进行平面拟合处理,得到合并平面拟合参数;
对合并平面拟合参数进行迭代优化,得到合并更新平面。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
确定单元,还用于针对于更新平面,将大于距离阈值的第二距离对应的点,确定为更新平面对应的外点,以汇总得到更新平面对应的外点集合;
处理单元,还用于将外点集合添加至候选点总集,以更新候选点总集。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
将小于或等于距离阈值的第一距离对应的点,确定为当前迭代对应的临时平面对应的内点;
将当前迭代对应的临时平面对应的内点进行汇总,得到当前迭代对应的临时平面的内点集合。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
从更新后的候选点总集中,每次迭代随机抽取三个点生成临时候选平面;
分别计算更新后的候选点总集中的全部候选点中的每个候选点与临时候选平面之间的第四距离;
基于第四距离,确定临时候选平面的内点集合;
基于每次迭代对应的临时候选平面的内点集合,筛选内点数量最大的临时候选平面;
若内点数量最大的临时候选平面的内点总数大于内点阈值,则将内点数量最大的临时候选平面确定为有效候选平面;
对有效候选平面进行平面参数的迭代优化,得到候选平面。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
若当前的平面数量不为零,则分别计算待处理三维稀疏点集中的每个点与每个当前平面之间的第三距离;
基于第三距离,从待处理三维稀疏点集中筛选每个当前平面的插入点,得到候选点子集以及每个当前平面对应的待插入点子集。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
将每个点与每个当前平面之间的第三距离与距离阈值进行比较,得到比较结果;
若比较结果为大于距离阈值,则将第一距离对应的点确定为候选点,并将全部的候选点进行汇总,得到候选点子集;
若比较结果为小于或等于距离阈值,则将第三距离对应的点确定为当前平面的插入点,以获取每个当前平面对应的待插入点子集。
本申请另一方面提供了一种计算机设备,包括:存储器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序时实现如上述各方面的方法;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
从以上技术方案可以看出,本申请实施例具有以下有益效果:
通过获取待处理三维稀疏点集,基于每个点对应的空间坐标,将待处理三维稀疏点集划分为候选点子集和多个待插入点子集,进而,如果当待插入点子集中的点数大于第一点数量阈值时,采用随机抽样生成临时平面,对插入了待插入点子集的当前平面的平面参数进行迭代更新,以获取到更新平面,并将符合平面合并条件的任意两个更新平面进行合并,以获取到合并更新平面,然后,将候选点子集更新至候选点总集,如果当更新后的候选点总集中的点数大于第二点数量阈值,且当前合并更新平面的总数小于平面阈值时,基于更新后的候选点总集中的点生成候选平面,并将全部候选平面、合并更新平面以及剩余未合并的更新平面进行汇总,以获取到待处理三维稀疏点集对应的目标平面集合。通过上述方式,能够基于待处理三维稀疏点集,采用随机抽样生成临时平面,对平面参数进行迭代更新,以获取到更新平面,并结合平面合并条件进行平面合并,来进一步更新平面,并基于更新后的候选点总集中的点生成候选平面,实现对待处理三维稀疏点集在场景中可能形成的平面的充分获取,能够直接并广泛应用于直接在AR场景中的平面检测,且无需对二维图像进行平面检测分割或深度学习等复杂的计算,从而可以快速高效地进行平面检测。
附图说明
图1是本申请实施例中图像数据控制系统的一个架构示意图;
图2是本申请实施例中基于三维点云的平面检测方法的一个实施例流程图;
图3是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图4是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图5是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图6是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图7是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图8是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图9是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图10是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图11是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图12是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图13是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图14是本申请实施例中基于三维点云的平面检测方法的另一个实施例流程图;
图15是本申请实施例中基于三维点云的平面检测方法的一个原理流程示意图;
图16是本申请实施例中基于三维点云的平面检测方法的一个平面异常远点剔除示意图;
图17是本申请实施例中基于三维点云的平面检测装置的一个实施例示意图;
图18是本申请实施例中计算机设备的一个实施例示意图。
具体实施方式
本申请实施例提供了一种基于三维点云的平面检测方法、装置、设备及存储介质,用于基于待处理三维稀疏点集,采用随机抽样算法,实现对待处理三维稀疏点集在场景中可能形成的平面的充分获取,能够直接并广泛应用于直接在AR场景中的平面检测,且无需对二维图像进行平面检测分割或深度学习等复杂的计算,从而可以快速高效地进行平面检测。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解,先对本申请实施例涉及到的一些术语或概念进行解释。
1、增强现实(Augmented Reality,AR):是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体、三维建模、实时检测及注册、智能交互、传感等多种技术手段,将计算机生成的文字、图像、三维模型、音乐、视频等虚拟信息模拟仿真后,应用到真实世界中,两种信息互为补充,从而实现对真实世界的“增强”。
可以理解的是,在本申请的具体实施方式中,涉及到稀疏三维点集、平面阈值等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
可以理解的是,如本申请所公开的基于三维点云的平面检测方法,涉及云技术(Cloud technology),下面进一步地对云技术进行介绍。云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
而云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的事务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
其次,云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
其次,云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和事务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
应理解的是,本申请提供的基于三维点云的平面检测方法可应用于各种场景,包括但不限于人工智能、云技术、地图、智慧交通等,用于通过稀疏的三维点云集进行平面检测以获取场景中存在的平面,以应用于如室内设计场景、室外建筑设计场景、游戏布景设计场景,智能地图导航等场景。
为了解决上述问题,本申请提出了一种基于三维点云的平面检测方法,该方法应用于图1所示的图像数据控制系统,请参阅图1,图1为本申请实施例中图像数据控制系统的一个架构示意图,如图1所示,通过服务器通过获取终端设备提供的待处理三维稀疏点集,基于每个点对应的空间坐标,将待处理三维稀疏点集划分为候选点子集和多个待插入点子集,进而,如果当待插入点子集中的点数大于第一点数量阈值时,采用随机抽样生成临时平面,对插入了待插入点子集的当前平面的平面参数进行迭代更新,以获取到更新平面,并将符合平面合并条件的任意两个更新平面进行合并,以获取到合并更新平面,然后,将候选点子集更新至候选点总集,如果当更新后的候选点总集中的点数大于第二点数量阈值,且当前合并更新平面的总数小于平面阈值时,基于更新后的候选点总集中的点生成候选平面,并将全部候选平面、合并更新平面以及剩余未合并的更新平面进行汇总,以获取到待处理三维稀疏点集对应的目标平面集合。通过上述方式,能够基于待处理三维稀疏点集,采用随机抽样生成临时平面,对平面参数进行迭代更新,以获取到更新平面,并结合平面合并条件进行平面合并,来进一步更新平面,并基于更新后的候选点总集中的点生成候选平面,实现对待处理三维稀疏点集在场景中可能形成的平面的充分获取,能够直接并广泛应用于直接在AR场景中的平面检测,且无需对二维图像进行平面检测分割或深度学习等复杂的计算,从而可以快速高效地进行平面检测。
可以理解的是,图1中仅示出了一种终端设备,在实际场景中可以由更多种类的终端设备参与到数据处理的过程中,终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等,具体数量和种类因实际场景而定,具体此处不做限定。另外,图1中示出了一个服务器,但在实际场景中,也可以有多个服务器的参与,特别是在多模型训练交互的场景中,服务器的数量因实际场景而定,具体此处不做限定。
需要注意的是,本实施例中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdelivery network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,终端设备以及服务器可以连接组成区块链网络,本申请在此不做限制。
结合上述介绍,下面将对本申请中基于三维点云的平面检测方法进行介绍,请参阅图2,本申请实施例中基于三维点云的平面检测方法一个实施例包括:
在步骤S101中,获取待处理三维稀疏点集,其中,待处理三维稀疏点集中包括多个点以及每个点对应的空间坐标;
在本实施例中,当需要对目标场景进行平面检测时,可以获取当前目标场景中的一批三维稀疏点,即待处理三维稀疏点集,以使后续可以基于待处理三维稀疏点集进行平面还原。
其中,待处理三维稀疏点集是在场景中检测到的一批稀疏点三维点云。点云(point cloud)是空间中点的数据集,可以表示三维形状或对象,通常由三维扫描仪获取。点云中每个点的位置都由一组笛卡尔坐标(X,Y,Z)描述,有些可能含有色彩信息(R,G,B)或物体反射面强度(Intensity)信息。稀疏点三维点云指的是通常使用三维坐标测量机所得到的点数量比较少、点与点的间距也比较大的海量点集合。目标场景具体可以表现为AR动画制作场景、AR游戏环境或地图布景设计、建筑设计或智能地图导航设计等等场景,还可以表现为其他场景,此处不作具体限制。其中,待处理三维稀疏点集中包括多个点以及每个点对应的空间坐标,点对应的空间坐标即一组笛卡尔坐标(X,Y,Z)。
具体地,获取待处理三维稀疏点集具体可以是通过基于视觉的同步定位与地图构建系统(VSLAM/VISLAM,Visual(Inertial)Simultaneous Localization and Mapping)对目标场景(如一个AR室内地面的平面检测场景)进行扫描,输出一批稀疏点三维点云,即待处理三维稀疏点集。
在步骤S102中,基于每个点对应的空间坐标,将待处理三维稀疏点集划分为候选点子集和多个待插入点子集,其中,每个待插入点子集用于描述可插入平面的点的集合,候选点子集用于描述不能插入平面的点的集合;
在本实施例中,在获取到待处理三维稀疏点集后,可以基于每个点对应的空间坐标,可以先初步判断待处理三维稀疏点集中可以插入平面的点和不可插入平面的点,其中,可以插入平面的点指的是可能属于当前平面的点,即可以将待处理三维稀疏点集划分为候选点子集和多个待插入点子集,以使后续可以基于待插入点子集对已检测到的平面进行更新,从而更加准确地检测到目标场景中存在的平面,提高平面检测的精度。
其中,每个待插入点子集用于描述可插入平面的点的集合,即可能属于平面的点的集合。候选点子集用于描述不能插入平面的点的集合,即不属于平面的点的集合。
具体地,在获取到待处理三维稀疏点集后,可以先检测或判断当前的平面数量是否为零,如果为零,可以理解为当前是初次进行平面检测,还未检测到平面,即可以插入平面的点为空,即待插入点子集为空,故可以将待处理三维稀疏点集作为候选点子集。
进一步地,若当前的平面数量不为零,如图15所示,则判断待处理三维稀疏点集是否有可以插入现有平面的点,如果有,则可以将可插入现有平面的点确定为当前平面的插入点,并将不可插入现有平面的点确定为候选点,即将待处理三维稀疏点集划分为候选点子集和多个待插入点子集;如果没有,则可以认为待插入点子集为空,即将待处理三维稀疏点集确定为候选点子集。
进一步地,确定待处理三维稀疏点集可以插入现有平面的点,具体可以是通过点到面的距离公式,分别计算待处理三维稀疏点集中的每个点与每个当前平面之间的距离,并基于该距离,从待处理三维稀疏点集中筛选每个当前平面的插入点,以获取到每个当前平面对应的待插入点子集,然后,将剩余的点作为候选点,以获取到候选点子集。
其中,平面一般方程如下公式(1)所示:
Ax+By+Cz+D=0 (1);
其中,A、B、C和D为已知常数,是平面的平面参数,并且A、B和C不同时为零。
其中,点到面的距离公式具体可以如下公式(2)所示:
其中,(x0,y0,z0)为点的空间坐标。
在步骤S103中,针对每个待插入点子集,若待插入点子集中的点数大于第一点数量阈值,则采用随机抽样生成临时平面,对插入了待插入点子集的当前平面的平面参数进行迭代更新,得到更新平面;
在本实施例中,当待插入点子集不为空,且待插入点子集中的点数大于第一点数量阈值时,可以采用随机抽样生成临时平面,然后可以基于临时平面,对插入了待插入点子集的当前平面的平面参数进行迭代更新,以获取到更新平面,从而更加准确地检测到目标场景中存在的平面,提高平面检测的精度。
其中,第一点数量阈值是根据实际应用需求进行设置的,用于判断插入现有平面的点数的是否引起了当前平面的状态变化,从而确定插入了待插入点子集的当前平面是否需要进行更新。
具体地,当待插入点子集不为空,且待插入点子集中的点数大于第一点数量阈值时,可以理解为插入了待插入点子集的当前平面的平面高度或大小可能发生了变化,故为了能够检测到更加准确地平面状态,本实施例可以基于如图15所示意的平面更新模块,对插入了待插入点子集的当前平面的平面参数进行迭代更新,具体可以是针对插入了待插入点子集的当前平面,按照预设的迭代次数,进行迭代更新,每次迭代随机抽取当前平面的全部点中的三个点,由于不共线的三个点确定空间中的一个平面,故在抽取到随机的三个点后,可以先判断抽取到的三个点是否共线,如果共线则停止进入下一次迭代,如果不共线,则将抽取到的三个点的空间坐标,代入上述公式(1)中进行计算,以获取到抽取到的三个点对应的临时平面。
进一步地,可以按照上述公式(2),分别计算当前平面的全部点中的每个点与当前迭代对应的临时平面之间的距离,进而可以基于该距离,判断归属于该临时平面的点,即临时平面的内点,然后,汇总得到临时平面的内点集合,进一步地,可以基于当前迭代对应的临时平面的内点集合,对当前平面的平面参数进行迭代更新,完成所有迭代次数后,确定更新平面、更新平面的平面参数以及属于该更新平面的内点。
在步骤S104中,将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面;
在本实施例中,由于平面状态发生变化即更新后的多个更新平面,可能会归属于一个平面,故在获取到所有的更新平面后,可以将符合平面合并条件的任意两个更新平面进行合并,以获取合并更新平面,能够进一步对更新平面进行更新维护,从而提高平面检测的精度。
其中,平面合并条件是根据实际应用需求进行设置的,本实施例中可以设置为两平面法向量夹角小于夹角阈值,且平面1的外轮廓多边形到另一平面2的投影得到的多边形,与平面2的外轮廓多边形的重叠面积大于面积阈值,且面积交并比大于交并比阈值,且平面2到平面1投影的多边形也需要满足上述条件。
具体地,如图15所示,在获取到所有的更新平面后,可以基于如图15所示意的多平面维护模块,对所有的平面进行遍历,判断遍历到的任意的两个平面的平面信息是否符合上述平面合并条件,如果不符合,则不能进行合并;如果符合,即该两个平面归属于一个平面,则可以进行合并,以此类推,直到将符合上述平面合并条件的平面都合并后,以获取到所有的合并更新平面,以及不能合并的剩余的更新平面。
在步骤S105中,将候选点子集更新至候选点总集,若更新后的候选点总集中的点数大于第二点数量阈值,且当前合并更新平面的总数小于平面阈值,则基于更新后的候选点总集中的点生成候选平面;
在本实施例中,将候选点子集添加至候选点总集中,以更新候选点总集,如果更新后的候选点总集中的点数大于第二点数量阈值,且当前的合并更新平面以及剩余未合并的更新平面的总数小于平面阈值时,则可以对更新后的候选点总集中的点进行新平面检测,以获取到新的平面,即候选平面。
其中,平面阈值是根据实际应用需求进行设置的,此处不作具体限制,用于判断对待处理三维稀疏点集进行平面检测的平面数量是否充足。第二点数量阈值根据实际应用需求进行设置的,此处不作具体限制,用于判断候选点总集中的点是否足够生成一个平面。
具体地,如图15所示,在获取到合并更新平面以及剩余未合并的更新平面后,可以先判断合并更新平面以及剩余未合并的更新平面的总数,是否达到最大平面数量,如果已达到,则候选平面为空;如果没有达到,则判断更新后的候选点总集中的点是否大于第二点数量阈值,如果小于,则候选平面为空;如果大于,则可以基于如图15所示意的初始平面检测模块进行新平面生成,即可以对更新后的候选点总集中的点,采用上述随机抽样生成平面的算法,生成候选平面。
在步骤S106中,将全部候选平面、合并更新平面以及剩余未合并的更新平面进行汇总,得到待处理三维稀疏点集对应的目标平面集合。
具体地,在获取到全部候选平面、合并更新平面以及剩余未合并的更新平面后,则可以将全部候选平面、合并更新平面以及剩余未合并的更新平面进行汇总,以获取到基于待处理三维稀疏点集检测到的目标平面集合。
需要说明的是,在获取到全部候选平面、合并更新平面以及剩余未合并的更新平面后,本实施例还可以进行过期三维点清理,统计剩余的三维点云,即生成候选平面后候选点总集中剩余的点,并获取这些剩余的点中每个点的最新更新时间,然后,分别计算这些剩余的点中每个点的最新更新时间与当前时间之间的差值,如果该差值大于时间阈值,可以理解为该点已过期,则删除该三维点。
在本申请实施例中,提供了一种基于三维点云的平面检测方法,通过上述方式,能够基于待处理三维稀疏点集,采用随机抽样生成临时平面,对平面参数进行迭代更新,以获取到更新平面,并结合平面合并条件进行平面合并,来进一步更新平面,并基于更新后的候选点总集中的点生成候选平面,实现对待处理三维稀疏点集在场景中可能形成的平面的充分获取,能够直接并广泛应用于直接在AR场景中的平面检测,且无需对二维图像进行平面检测分割或深度学习等复杂的计算,从而可以快速高效地进行平面检测。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图3所示,步骤S103若待插入点子集中的点数大于第一点数量阈值,则采用随机抽样生成临时平面,对插入了待插入点子集的当前平面的平面参数进行迭代更新,得到更新平面,包括:
在步骤S301中,对插入了待插入点子集的当前平面,每次迭代随机抽取三个点生成当前迭代对应的临时平面;
在步骤S302中,分别计算当前平面的全部点中的每个点与当前迭代对应的临时平面之间的第一距离;
在步骤S303中,基于第一距离,确定当前迭代对应的临时平面的内点集合;
在步骤S304中,基于当前迭代对应的临时平面的内点集合,对当前平面的平面参数进行迭代更新,得到更新平面。
在本实施例中,在获取到每个当前平面对应的待插入点子集之后,可以将待插入点子集归属到当前平面,然后,可以对该当前平面进行迭代更新,每次迭代随机抽取三个点生成当前迭代对应的临时平面,并分别计算当前平面的全部点中的每个点与当前迭代对应的临时平面之间的第一距离,然后,可以基于第一距离,确定当前迭代对应的临时平面的内点集合,并基于当前迭代对应的临时平面的内点集合,对当前平面的平面参数进行迭代更新,以获取到更新平面,从而更加准确地检测到目标场景中存在的平面,提高平面检测的精度。
具体地,在获取到每个当前平面对应的待插入点子集之后,如果待插入点子集不为空,则可以将待插入点子集归属到当前平面,如果待插入点子集中的点数大于第一点数量阈值时,可以理解为插入了待插入点子集的当前平面的平面高度或大小可能发生了变化,故为了能够检测到更加准确地平面状态,本实施例可以基于如图15所示意的平面更新模块,对插入了待插入点子集的当前平面的平面参数进行迭代更新,具体可以是按照预设的迭代次数,对插入了待插入点子集的当前平面进行迭代更新,每次迭代随机抽取当前平面的全部点中的三个点,由于不共线的三个点确定空间中的一个平面,故在抽取到随机的三个点后,可以先判断抽取到的三个点是否共线,如果共线则停止进入下一次迭代,如果不共线,则将抽取到的三个点的空间坐标,代入上述公式(1)中进行计算,以获取到抽取到的三个点对应的临时平面。其中,迭代次数是根据实际应用需求进行设置的,此处不作具体限制。
进一步地,可以按照上述公式(2),分别计算当前平面的全部点中的每个点与当前迭代对应的临时平面之间的距离,即第一距离,进而,可以基于该第一距离,判断能够归属于该临时平面的点,即临时平面的内点,以汇总得到临时平面的内点集合,进一步地,可以基于当前迭代对应的临时平面的内点集合,进行平面拟合处理,以获取到临时平面对应的平面拟合参数,来对平面拟合参数进行迭代优化,以获取到临时平面对应的对应的临时优化平面,然后,完成所有迭代次数后,可以基于每次迭代对应的临时优化平面对应的优化平面内点数量,从全部的临时优化平面中筛选更新平面,并确定更新平面、更新平面的平面参数以及属于该更新平面的内点。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图4所示,步骤S304基于当前迭代对应的临时平面的内点集合,对当前平面的平面参数进行迭代更新,得到更新平面,包括:
在步骤S401中,基于当前迭代对应的临时平面的内点集合,进行平面拟合处理,得到临时平面对应的平面拟合参数;
在步骤S402中,对平面拟合参数进行迭代优化,得到临时平面对应的对应的临时优化平面;
在步骤S403中,基于每次迭代对应的临时优化平面对应的优化平面内点数量,从全部的临时优化平面中筛选更新平面。
在本实施例中,在获取到当前迭代对应的临时平面的内点集合之后,为了能够更好地确定当前平面的高度或大小的变化,以更准确地检测平面的状态,本实施例可以基于当前迭代对应的临时平面的内点集合,进行平面拟合处理,以获取到临时平面对应的平面拟合参数,来对平面拟合参数进行迭代优化,以获取到临时平面对应的对应的临时优化平面,然后,可以基于每次迭代对应的临时优化平面对应的优化平面内点数量,从全部的临时优化平面中筛选更新平面,从而更加准确地检测到目标场景中存在的平面,提高平面检测的精度。
具体地,在获取到当前迭代对应的临时平面的内点集合之后,可以利用最小二乘法,对当前迭代对应的临时平面的内点集合中的内点,进行平面拟合处理,以获取到临时平面对应的平面拟合参数(如平面的一般方程中的A、B、C和D的参数值),来对平面拟合参数进行迭代优化,具体可以是利用优化算法(例如,随机梯度下降等),迭代优化平面参数,以获取到临时平面对应的对应的临时优化平面,然后,完成所有迭代次数后,可以基于每次迭代对应的临时优化平面对应的优化平面内点数量,从全部的临时优化平面中筛选优化平面内点数量最多的平面,作为更新平面,并确定更新平面、更新平面的平面参数以及属于该更新平面的内点。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图5所示,步骤S403基于每次迭代对应的临时优化平面对应的优化平面内点数量,从全部的临时优化平面中筛选更新平面,包括:
在步骤S501中,分别计算当前平面的全部点的中每个点与临时优化平面之间的第二距离;
在步骤S502中,将小于或等于距离阈值的第二距离对应的点,确定为临时优化平面对应的优化平面内点,以统计得到临时优化平面对应的优化平面内点数量;
在步骤S503中,将数值最大的优化平面内点数量对应的临时优化平面,确定为更新平面。
在本实施例中,在获取到临时平面对应的对应的临时优化平面之后,可以分别计算当前平面的全部点的中每个点与临时优化平面之间的第二距离,并将小于或等于距离阈值的第二距离对应的点,确定为临时优化平面对应的优化平面内点,以统计得到临时优化平面对应的优化平面内点数量,然后,将数值最大的优化平面内点数量对应的临时优化平面,确定为更新平面,从而更加准确地检测到目标场景中存在的平面,提高平面检测的精度。
具体地,在获取到临时平面对应的对应的临时优化平面之后,可以按照上述公式(2),分别计算当前平面的全部点中的每个点与临时优化平面之间的距离,即第二距离,进而,可以基于该第二距离,判断能够归属于该临时优化平面的点,具体可以是将小于或等于距离阈值的第二距离对应的点,确定为临时优化平面对应的优化平面内点,以汇总得到临时平面的内点集合,从而统计得到临时优化平面对应的优化平面内点数量,然后,可以将数值最大的优化平面内点数量对应的临时优化平面,确定为更新平面。其中,距离阈值是根据实际应用需求进行设置的,此处不作具体限制。
可以理解的是,在获取到更新平面,并确定更新平面的平面参数以及属于该更新平面的内点之后,可以将大于距离阈值的第二距离对应的点,确定为该更新平面对应的外点,以汇总得到更新平面的外点集合,则可以将该外点集合更新至候选点总集,以使后续可以基于候选点总集生成候选平面。
可选地,在上述图5对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图6所示,步骤S503将数值最大的优化平面内点数量对应的临时优化平面,确定为更新平面,包括:
在步骤S601中,获取临时优化平面中的全部优化平面内点,投影在临时优化平面上的最大外轮廓多边形;
在步骤S602中,计算多边形的顶点中心以及全部优化平面内点在临时优化平面上的投影中心;
在步骤S603中,基于顶点中心以及投影中心,从多边形的全部顶点中筛选出异常顶点,并剔除异常顶点,得到更新平面以及更新平面的优化顶点集合;
在步骤S604中,基于优化顶点集合,重新计算更新平面对应的优化外轮廓多边形和优化外轮廓多边形的面积,以及计算更新平面对应的平面信息,其中,平面信息至少包括平面法向量。
在本实施例中,在获取到数值最大的优化平面内点数量对应的临时优化平面之后,可以将临时优化平面中的全部优化平面内点投影在临时优化平面上,以获取到最大外轮廓多边形,进而,计算多边形的顶点中心以及全部优化平面内点在临时优化平面上的投影中心,并基于顶点中心以及投影中心,从多边形的全部顶点中筛选出异常顶点,并剔除异常顶点,以获取到更新平面以及更新平面的优化顶点集合,然后,可以基于优化顶点集合,重新计算更新平面对应的优化外轮廓多边形和优化外轮廓多边形的面积,以及计算更新平面对应的平面信息,能够通过筛选临时优化平面中距离平面内点中心即投影中心较远的点,即异常顶点进行剔除,以防止异常顶点(即噪声点)将平面面积增大,从而在一定程度上提高平面检测的精度。
其中,平面信息包括平面法向量以及当前平面几何中心。
具体地,在获取到数值最大的优化平面内点数量对应的临时优化平面之后,可以将临时优化平面中的全部优化平面内点投影在临时优化平面上,并基于凸包算法(ConvexHull Algorithm),或者其他轮廓计算方法,此处不作具体限制,计算投影在临时优化平面的最大外轮廓多边形(如图16左边所示意的多边形)。
进一步地,在获取到最大外轮廓多边形之后,可以基于最大外轮廓多边形中的每个顶点在空间中的空间坐标,进行求和取平均,以获取到多边形的顶点中心Cout,同时,获取投影在临时优化平面上的点,即投影点(如图16左边所示意的多边形的顶点以及内点),可获取投影点的坐标,进行求和取平均,以获取到投影中心Call。
进一步地,可以基于顶点中心以及投影中心,从多边形的全部顶点中筛选出异常顶点,具体可以通过判断最大外轮廓多边形中的每个顶点Ci是否满足如下异常条件:
1)顶点与左右相邻的两点之间夹角的角度均小于角度阈值;
2)每个顶点Ci满足dis(Ci,Cout)>tw*dis(Ci,Call);
其中,角度阈值是根据实际应用需求进行设置的,此处不作具体限制。Dis表示两点之间的欧氏距离,即dis(Ci,Cout)为每个顶点Ci与顶点中心Cout之间的欧氏距离,dis(Ci,Call)表示每个顶点Ci与投影中心Call之间的欧氏距离。其中,tw表示预设的距离阈值,具体是根据实际应用需求进行设置的,通常可以设置为1.5,或其他具体数值,此处不作具体限制。
进一步地,如果最大外轮廓多边形中的顶点满足上述两个条件,可以理解为,该顶点离临时优化平面的内点中心较远,为异常顶点,需要剔除该异常顶,在所有顶点判断完成后,得到更新平面(如图16右边所示意的多边形对应的平面)以及更新平面的优化顶点集合(如图16右边所示意的多边形上的全部顶点)。
进一步地,在获取到更新平面以及更新平面的优化顶点集合之后,可以重新计算更新平面对应的优化外轮廓多边形(如图16右边所示意的多边形)和优化外轮廓多边形的面积,以及计算更新平面对应的平面信息。其中,计算优化外轮廓多边形的面积,具体可以是采用鞋带公式(Shoelace formula),或者,采用三角剖分算法+海伦公式,还可以是采用其他算法,此处不作具体限制。其中,计算更新平面对应的平面信息,具体可以是基于优化顶点集合中每个顶点的空间坐标,根据几何中心的数学定义以及法向量的数学定义,可以计算平面几何中心和平面法向量。
可选地,在上述图6对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图7所示,步骤S104将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面,包括:
在步骤S701中,计算任意两个更新平面分别对应的平面法向量之间的夹角;
在步骤S702中,基于每个更新面积对应的优化外轮廓多边形和优化外轮廓多边形的面积,计算任意两个更新平面相互投影后的外轮廓多边形的重叠面积以及面积交并比;
在步骤S703中,当平面合并条件为夹角小于夹角阈值、重叠面积大于面积阈值且面积交并比大于交并比阈值时,将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面。
在本实施例中,在获取到所有的更新平面后,计算任意两个更新平面分别对应的平面法向量之间的夹角,并基于每个更新面积对应的优化外轮廓多边形和优化外轮廓多边形的面积,计算任意两个更新平面相互投影后的外轮廓多边形的重叠面积以及面积交并比,来筛选符合平面合并条件为夹角小于夹角阈值、重叠面积大于面积阈值且面积交并比大于交并比阈值的两个平面,然后,将符合平面合并条件的任意两个更新平面进行合并,以获取到合并更新平面。
具体地,如图15所示,在获取到所有的更新平面后,可以基于如图15所示意的多平面维护模块,对所有的平面进行遍历,判断遍历到的任意的两个平面的平面信息是否符合上述平面合并条件,其中,平面合并条件是根据实际应用需求进行设置的,本实施例中可以设置为两平面法向量夹角小于夹角阈值,且平面1的外轮廓多边形到另一平面2的投影得到的多边形,与平面2的外轮廓多边形的重叠面积大于面积阈值,且面积交并比大于交并比阈值,且平面2的外轮廓多边形到平面1投影的多边形与平面1的外轮廓多边形的重叠面积大于面积阈值,且面积交并比大于交并比阈值。
进一步地,根据常规的夹角计算公式,计算任意两个平面分别对应的平面法向量之间的夹角,同时,将任意两个平面(如平面1和平面2)的优化外轮廓多边形进行相互投影,以获取到平面1的优化外轮廓多边形到另一平面2的投影的多边形,以及平面2的优化外轮廓多边形到平面1投影的多边形,并基于鞋带公式(Shoelace formula),分别计算平面1的优化外轮廓多边形到另一平面2的投影的多边形,与平面2的外轮廓多边形的重叠面积和面积交并比,以及平面2的优化外轮廓多边形到平面1投影的多边形,与平面1的外轮廓多边形的重叠面积和面积交并比。
进一步地,分别将计算得到的夹角与夹角阈值进行比较、将重叠面积与面积阈值进行比较以及将面积交并比与交并比阈值进行比较,如果比较结果不满足上述平面合并条件,则可以认为这两个平面不归属于一个平面,不能进行合并;如果比较结果满足上述平面合并条件,则可以认为这两个平面归属于一个平面,可以进行合并,以此类推,直到将符合上述平面合并条件的平面都合并后,以获取到所有的合并更新平面,以及不能合并的剩余的更新平面。
可选地,在上述图7对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图8所示,步骤S703当平面合并条件为夹角小于夹角阈值、重叠面积大于面积阈值且面积交并比大于交并比阈值时,将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面之后,该方法还包括:步骤S801至步骤S803;以及步骤S106包括:步骤S804;
在步骤S801中,计算每个合并更新平面对应的外轮廓多边形的面积;
在步骤S802中,将每个合并更新平面对应的外轮廓多边形的面积,以及剩余未合并的更新平面对应的优化外轮廓多边形的面积,分别与第二面积阈值进行比较;
在步骤S803中,将面积小于第二面积阈值的合并更新平面或剩余未合并的更新平面进行剔除,得到最优更新平面集合;
在步骤S804中,将全部候选平面以及最优更新平面集合进行汇总,得到待处理三维稀疏点集对应的目标平面集合。
在本实施例中,在获取到所有的合并更新平面后,可以计算每个合并更新平面对应的外轮廓多边形的面积,并将每个合并更新平面对应的外轮廓多边形的面积,以及剩余未合并的更新平面对应的优化外轮廓多边形的面积,分别与第二面积阈值进行比较,然后,将面积小于第二面积阈值的合并更新平面或剩余未合并的更新平面进行剔除,得到最优更新平面集合,并将全部候选平面以及最优更新平面集合进行汇总,以获取到待处理三维稀疏点集对应的目标平面集合,能够通过将面积过小的平面进行剔除,以避免噪声平面的干扰。
具体地,在获取到所有的合并更新平面后,针对于每个合并更新平面,可以获统计每个合并更新平面的内点,并合并更新平面的内点投影到合并更新平面上,得到合并更新平面对应的外轮廓多边形,进而可以基于采用鞋带公式(Shoelace formula),计算每个合并更新平面对应的外轮廓多边形的面积。
进一步地,将每个合并更新平面对应的外轮廓多边形的面积,以及剩余未合并的更新平面对应的优化外轮廓多边形的面积,分别与第二面积阈值进行比较,如果比较结果为面积大于或等于第二面积阈值,则可以认为该合并更新平面或剩余未合并的更新平面是有效平面,并进行保留,以获取到最优更新平面集合;反之,如果比较结果为面积小于第二面积阈值,则可以认为该合并更新平面或剩余未合并的更新平面是无效平面,并该合并更新平面或剩余未合并的更新平面进行剔除,并剔除属于该合并更新平面或剩余未合并的更新平面的三维点云,然后,可以将全部候选平面以及最优更新平面集合进行汇总,以获取到待处理三维稀疏点集对应的目标平面集合。其中,第二面积阈值是根据实际应用需求进行设置的,此处不作具体限制。
可以理解的是,如果当前平面长时间没有新的三维点插入,即当前平面长时间没有获取到对应的待插入点子集,则可以认为当前平面是无效平面,并该当前平面进行剔除,并剔除属于该当前平面的三维点云。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图9所示,步骤S104将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面,包括:
在步骤S901中,将符合平面合并条件的任意两个更新平面上的所有点进行合并,得到合并平面点集;
在步骤S902中,基于合并平面点集,进行平面拟合处理,得到合并平面拟合参数;
在步骤S903中,对合并平面拟合参数进行迭代优化,得到合并更新平面。
在本实施例中,如果任意两个更新平面符合平面合并条件,则可以将该任意两个更新平面上的所有点进行合并,以获取到合并平面点集,并基于合并平面点集,进行平面拟合处理,以获取到合并平面拟合参数,来对合并平面拟合参数进行迭代优化,以获取到合并更新平面,以确保获取到准确地合并更新平面的平面状态,从而可以在一定程度上提高平面检测精度。
具体地,如果任意两个更新平面符合平面合并条件,则可以将该任意两个更新平面上的所有点进行合并,以获取到合并平面点集,并基于合并平面点集,可以利用最小二乘法,对合并平面点集中的点,进行平面拟合处理,以获取到合并平面拟合参数(如平面的一般方程中的A、B、C和D的参数值),来对合并平面拟合参数进行迭代优化,具体可以是利用优化算法(例如,随机梯度下降等),迭代优化平面参数,以获取到合并更新平面。
可选地,在上述图5对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图10所示,步骤S503将数值最大的优化平面内点数量对应的临时优化平面,确定为更新平面之后,该方法还包括:
在步骤S1001中,针对于更新平面,将大于距离阈值的第二距离对应的点,确定为更新平面对应的外点,以汇总得到更新平面对应的外点集合;
在步骤S1002中,将外点集合添加至候选点总集,以更新候选点总集。
在本实施例中,在获取到更新平面之后,可以针对于更新平面,将大于距离阈值的第二距离对应的点,确定为更新平面对应的外点,以汇总得到更新平面对应的外点集合,并将外点集合添加至候选点总集,以更新候选点总集,以使后续可以基于新候选点总集生成候选平面。
具体地,在获取到更新平面,并确定更新平面的平面参数以及属于该更新平面的内点之后,可以将大于距离阈值的第二距离对应的点,确定为该更新平面对应的外点,以汇总得到更新平面的外点集合,然后,可以将该外点集合更新至候选点总集,以使后续可以基于候选点总集生成候选平面。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图11所示,步骤S303基于第一距离,确定当前迭代对应的临时平面的内点集合,包括:
在步骤S1101中,将小于或等于距离阈值的第一距离对应的点,确定为当前迭代对应的临时平面对应的内点;
在步骤S1102中,将当前迭代对应的临时平面对应的内点进行汇总,得到当前迭代对应的临时平面的内点集合。
具体地,在获取到每个点与当前迭代对应的临时平面之间的第一距离之后,可以将第一距离与距离阈值进行比较,然后,可以将小于或等于距离阈值的第一距离对应的点,认为是当前迭代对应的临时平面的点,即可以确定为当前迭代对应的临时平面对应的内点,并将当前迭代对应的临时平面对应的内点进行汇总,以获取到当前迭代对应的临时平面的内点集合。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图12所示,步骤S105基于更新后的候选点总集中的点生成候选平面,包括:
在步骤S1201中,从更新后的候选点总集中,每次迭代随机抽取三个点生成临时候选平面;
在步骤S1202中,分别计算更新后的候选点总集中的全部候选点中的每个候选点与临时候选平面之间的第四距离;
在步骤S1203中,基于第四距离,确定临时候选平面的内点集合;
在步骤S1204中,基于每次迭代对应的临时候选平面的内点集合,筛选内点数量最大的临时候选平面;
在步骤S1205中,若内点数量最大的临时候选平面的内点总数大于内点阈值,则将内点数量最大的临时候选平面确定为有效候选平面;
在步骤S1206中,对有效候选平面进行平面参数的迭代优化,得到候选平面。
在本实施例中,在获取到更新后的候选点总集之后,可以从更新后的候选点总集中,每次迭代随机抽取三个点生成临时候选平面,再分别计算更新后的候选点总集中的全部候选点中的每个候选点与临时候选平面之间的第四距离,并基于第四距离,确定临时候选平面的内点集合,进而基于每次迭代对应的临时候选平面的内点集合,筛选内点数量最大的临时候选平面,然后,如果内点数量最大的临时候选平面的内点总数大于内点阈值,则将内点数量最大的临时候选平面确定为有效候选平面,并对有效候选平面进行平面参数的迭代优化,以获取到候选平面。
具体地,如图15所示,在获取到合并更新平面以及剩余未合并的更新平面后,可以先判断合并更新平面以及剩余未合并的更新平面的总数,是否达到最大平面数量,如果已达到,则候选平面为空;如果没有达到,则判断更新后的候选点总集中的点是否大于第二点数量阈值,如果小于,则候选平面为空;如果大于,则可以基于如图15所示意的初始平面检测模块进行新平面生成,即可以对更新后的候选点总集中的点,按照预设的迭代次数,每次迭代随机抽取候选点总集中的三个点,由于不共线的三个点确定空间中的一个平面,故在抽取到随机的三个点后,可以先判断抽取到的三个点是否共线,如果共线则停止进入下一次迭代,如果不共线,则将抽取到的三个点的空间坐标,代入上述公式(1)中进行计算,以获取到抽取到的三个点对应的临时候选平面。其中,迭代次数是根据实际应用需求进行设置的,此处不作具体限制。
进一步地,可以按照上述公式(2),分别计算更新后的候选点总集中的全部候选点中的每个候选点与临时候选平面之间的距离,即第四距离,可以基于该第四距离,判断能够归属于该临时候选平面的点,即临时候选平面的内点,以汇总得到临时候选平面的内点集合。
进一步地,迭代完成后,记录迭代中临时候选平面的内点集合中内点数量最多的平面,即内点数量最大的临时候选平面,如果内点数量最大的临时候选平面的内点数量大于内点阈值,则认为内点数量最大的临时候选平面是有效的,即将内点数量最大的临时候选平面确定为有效候选平面。
进一步地,可以对该有效候选平面进行最小二乘优化,来更新平面参数,并采用有优化算法来迭代优化参数,以获取到有效候选平面对应的对应的候选优化平面,然后,分别计算候选点总集的中每个点与候选优化平面之间的距离,并将小于或等于距离阈值的距离对应的点,确定为候选优化平面对应的内点,即可以统计候选优化平面对应的内点数量,同时,将大于距离阈值的距离对应的点,确定为候选优化平面对应的外点,并放回候选点总集。
进一步地,在获取到候选优化平面以及候选优化平面对应的内点之后,可以将候选优化平面中的全部内点投影在候选优化平面上,并基于凸包算法(Convex HullAlgorithm),或者其他轮廓计算方法,此处不作具体限制,计算投影在候选优化平面的最大外轮廓多边形。
进一步地,在获取到最大外轮廓多边形之后,可以基于最大外轮廓多边形中的每个顶点在空间中的空间坐标,进行求和取平均,以获取到多边形的顶点中心,同时,获取投影在候选优化平面上的点,即投影点,可获取投影点的坐标,进行求和取平均,以获取到投影中心。
进一步地,可以基于顶点中心以及投影中心,从多边形的全部顶点中筛选出异常顶点,具体可以通过判断最大外轮廓多边形中的每个顶点是否满足上述异常条件,如果最大外轮廓多边形中的顶点满足上述异常条件,可以理解为,该顶点离候选优化平面的内点中心较远,为异常顶点,需要剔除该异常顶,在所有顶点判断完成后,以获取到待验证候选平面以及待验证候选平面的候选顶点集合。
进一步地,在获取到待验证候选平面以及待验证候选平面的候选顶点集合之后,可以重新计算待验证候选平面对应的外轮廓多边形和外轮廓多边形的面积,以及计算待验证候选平面对应的平面信息,然后,可以计算得到外轮廓多边形的面积与面积阈值进行比较,如果比较结果为外轮廓多边形的面积大于面积阈值,可以认为该待验证候选平面为有效平面,则可以将待验证候选平面确定为候选平面,进一步地,可以重新对该候选平面进行异常顶点检测并剔除,以维护候选平面的检测精度;反之,如果比较结果为外轮廓多边形的面积小于面积阈值,可以认为该待验证候选平面为无效平面,即没有候选平面生成。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图13所示,步骤S102基于每个点对应的空间坐标,将待处理三维稀疏点集划分为候选点子集和多个待插入点子集,包括:
在步骤S1301中,若当前的平面数量不为零,则分别计算待处理三维稀疏点集中的每个点与每个当前平面之间的第三距离;
在步骤S1302中,基于第三距离,从待处理三维稀疏点集中筛选每个当前平面的插入点,得到候选点子集以及每个当前平面对应的待插入点子集。
在本实施例中,如果当前的平面数量不为零,则分别计算待处理三维稀疏点集中的每个点与每个当前平面之间的第三距离,并基于第三距离,从待处理三维稀疏点集中筛选每个当前平面的插入点,来将待处理三维稀疏点集划分为候选点子集以及每个当前平面对应的待插入点子集。
具体地,在获取到待处理三维稀疏点集后,可以先检测或判断当前的平面数量是否为零,如果为零,可以理解为当前是初次进行平面检测,还未检测到平面,即可以插入平面的点为空,即待插入点子集为空,故可以将待处理三维稀疏点集作为候选点子集,并更新至候选点总集,以使后续可以基于候选点总集中的点进行新平面检测。
进一步地,若当前的平面数量不为零,如图15所示,则判断待处理三维稀疏点集是否有可以插入现有平面的点,具体可以是通过分别计算待处理三维稀疏点集中的每个点与每个当前平面之间的第三距离,进而,如果第三距离小于或等于距离阈值,则可以认为该点归属于当前平面,即有可以插入当前平面的点,故可以将这些点从待处理三维稀疏点集中划分出来,作为每个当前平面对应的待插入点子集;如果第三距离大于距离阈值,则可以认为该点不归属于当前平面,故可以将这些点从待处理三维稀疏点集中划分出来,作为候选点子集。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测方法另一个可选实施例中,如图14所示,步骤S1302基于第三距离,从待处理三维稀疏点集中筛选每个当前平面的插入点,得到候选点子集以及每个当前平面对应的待插入点子集,包括:
在步骤S1401中,将每个点与每个当前平面之间的第三距离与距离阈值进行比较,得到比较结果;
在步骤S1402中,若比较结果为大于距离阈值,则将第一距离对应的点确定为候选点,并将全部的候选点进行汇总,得到候选点子集;
在步骤S1403中,若比较结果为小于或等于距离阈值,则将第三距离对应的点确定为当前平面的插入点,以获取每个当前平面对应的待插入点子集。
在本实施例中,若当前的平面数量不为零,如图15所示,则判断待处理三维稀疏点集是否有可以插入现有平面的点,具体可以是通过分别计算待处理三维稀疏点集中的每个点与每个当前平面之间的第三距离,进而,将每个点与每个当前平面之间的第三距离与距离阈值进行比较,如果比较结果为第三距离大于距离阈值,则可以认为该点不归属于当前平面,故可以将这些点从待处理三维稀疏点集中划分出来,以汇总得到候选点子集;反之,如果比较结果为第三距离小于或等于距离阈值,则可以认为该点归属于当前平面,即有可以插入当前平面的点,故可以将这些点从待处理三维稀疏点集中划分出来,以汇总得到每个当前平面对应的待插入点子集。
下面对本申请中的基于三维点云的平面检测装置进行详细描述,请参阅图17,图17为本申请实施例中基于三维点云的平面检测装置的一个实施例示意图,基于三维点云的平面检测装置20包括:
获取单元201,用于获取待处理三维稀疏点集,其中,待处理三维稀疏点集中包括多个点以及每个点对应的空间坐标;
处理单元202,用于基于每个点对应的空间坐标,将待处理三维稀疏点集划分为候选点子集和多个待插入点子集,其中,每个待插入点子集用于描述可插入平面的点的集合,候选点子集用于描述不能插入平面的点的集合;
处理单元202,还用于针对每个待插入点子集,若待插入点子集中的点数大于第一点数量阈值,则采用随机抽样生成临时平面,对插入了待插入点子集的当前平面的平面参数进行迭代更新,得到更新平面;
处理单元202,还用于将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面;
处理单元202,还用于将候选点子集更新至候选点总集,若更新后的候选点总集中的点数大于第二点数量阈值,且当前合并更新平面的总数小于平面阈值,则基于更新后的候选点总集中的点生成候选平面;
确定单元203,用于将全部候选平面、合并更新平面以及剩余未合并的更新平面进行汇总,得到待处理三维稀疏点集对应的目标平面集合。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,处理单元202具体可以用于:
对插入了待插入点子集的当前平面,每次迭代随机抽取三个点生成当前迭代对应的临时平面;
分别计算当前平面的全部点中的每个点与当前迭代对应的临时平面之间的第一距离;
基于第一距离,确定当前迭代对应的临时平面的内点集合;
基于当前迭代对应的临时平面的内点集合,对当前平面的平面参数进行迭代更新,得到更新平面。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,处理单元202具体可以用于:
基于当前迭代对应的临时平面的内点集合,进行平面拟合处理,得到临时平面对应的平面拟合参数;
对平面拟合参数进行迭代优化,得到临时平面对应的对应的临时优化平面;
基于每次迭代对应的临时优化平面对应的优化平面内点数量,从全部的临时优化平面中筛选更新平面。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,处理单元202具体可以用于:
分别计算当前平面的全部点的中每个点与临时优化平面之间的第二距离;
将小于或等于距离阈值的第二距离对应的点,确定为临时优化平面对应的优化平面内点,以统计得到临时优化平面对应的优化平面内点数量;
将数值最大的优化平面内点数量对应的临时优化平面,确定为更新平面。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,处理单元202具体可以用于:
获取临时优化平面中的全部优化平面内点,投影在更新平面上的最大外轮廓多边形;
计算多边形的顶点中心以及全部优化平面内点在更新平面上的投影中心;
基于顶点中心以及投影中心,从多边形的全部顶点中筛选出异常顶点,并剔除异常顶点,得到更新平面以及更新平面的优化顶点集合;
基于优化顶点集合,重新计算更新平面对应的优化外轮廓多边形和优化外轮廓多边形的面积,以及计算更新平面对应的平面信息,其中,平面信息至少包括平面法向量。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,处理单元202具体可以用于:
计算任意两个更新平面分别对应的平面法向量之间的夹角;
基于每个更新面积对应的优化外轮廓多边形和优化外轮廓多边形的面积,计算任意两个更新平面相互投影后的外轮廓多边形的重叠面积以及面积交并比;
当平面合并条件为夹角小于夹角阈值、重叠面积大于面积阈值且面积交并比大于交并比阈值时,将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,
处理单元202,还用于计算每个合并更新平面对应的外轮廓多边形的面积;
处理单元202,还用于将每个合并更新平面对应的外轮廓多边形的面积,以及剩余未合并的更新平面对应的优化外轮廓多边形的面积,分别与第二面积阈值进行比较;
处理单元202,还用于将面积小于第二面积阈值的合并更新平面或剩余未合并的更新平面进行剔除,得到最优更新平面集合;
确定单元203,还用于将全部候选平面以及最优更新平面集合进行汇总,得到待处理三维稀疏点集对应的目标平面集合。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,确定单元203具体可以用于:
将符合平面合并条件的任意两个更新平面上的所有点进行合并,得到合并平面点集;
基于合并平面点集,进行平面拟合处理,得到合并平面拟合参数;
对合并平面拟合参数进行迭代优化,得到合并更新平面。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,
确定单元203,还用于针对于更新平面,将大于距离阈值的第二距离对应的点,确定为更新平面对应的外点,以汇总得到更新平面对应的外点集合;
处理单元202,还用于将外点集合添加至候选点总集,以更新候选点总集。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,处理单元202具体可以用于:
将小于或等于距离阈值的第一距离对应的点,确定为当前迭代对应的临时平面对应的内点;
将当前迭代对应的临时平面对应的内点进行汇总,得到当前迭代对应的临时平面的内点集合。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,处理单元202具体可以用于:
从更新后的候选点总集中,每次迭代随机抽取三个点生成临时候选平面;
分别计算更新后的候选点总集中的全部候选点中的每个候选点与临时候选平面之间的第四距离;
基于第四距离,确定临时候选平面的内点集合;
基于每次迭代对应的临时候选平面的内点集合,筛选内点数量最大的临时候选平面;
若内点数量最大的临时候选平面的内点总数大于内点阈值,则将内点数量最大的临时候选平面确定为有效候选平面;
对有效候选平面进行平面参数的迭代优化,得到候选平面。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,处理单元202具体可以用于:
若当前的平面数量不为零,则分别计算待处理三维稀疏点集中的每个点与每个当前平面之间的第三距离;
基于第三距离,从待处理三维稀疏点集中筛选每个当前平面的插入点,得到候选点子集以及每个当前平面对应的待插入点子集。
可选地,在上述图17对应的实施例的基础上,本申请实施例提供的基于三维点云的平面检测装置的另一实施例中,处理单元202具体可以用于:
将每个点与每个当前平面之间的第三距离与距离阈值进行比较,得到比较结果;
若比较结果为大于距离阈值,则将第一距离对应的点确定为候选点,并将全部的候选点进行汇总,得到候选点子集;
若比较结果为小于或等于距离阈值,则将第三距离对应的点确定为当前平面的插入点,以获取每个当前平面对应的待插入点子集。
本申请另一方面提供了另一种计算机设备示意图,如图18所示,图18是本申请实施例提供的一种计算机设备结构示意图,该计算机设备300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)310(例如,一个或一个以上处理器)和存储器320,一个或一个以上存储应用程序331或数据332的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器320和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备300中的一系列指令操作。更进一步地,中央处理器310可以设置为与存储介质330通信,在计算机设备300上执行存储介质330中的一系列指令操作。
计算机设备300还可以包括一个或一个以上电源340,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口360,和/或,一个或一个以上操作系统333,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述计算机设备300还用于执行如图2至图14对应的实施例中的步骤。
本申请的另一方面提供了一种计算机可读存储介质,其上存储有计算机程序,当计算机程序被处理器执行时实现如图2至图14所示实施例描述的方法中的步骤。
本申请的另一方面提供了一种包含计算机程序的计算机程序产品,当计算机程序被处理器执行时实现如图2至图14所示实施例描述的方法中的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (17)
1.一种基于三维点云的平面检测方法,其特征在于,包括:
获取待处理三维稀疏点集,其中,所述待处理三维稀疏点集中包括多个点以及每个点对应的空间坐标;
基于每个所述点对应的空间坐标,将所述待处理三维稀疏点集划分为候选点子集和多个待插入点子集,其中,每个所述待插入点子集用于描述可插入平面的点的集合,候选点子集用于描述不能插入平面的点的集合;
针对每个所述待插入点子集,若所述待插入点子集中的点数大于第一点数量阈值,则采用随机抽样生成临时平面,对插入了所述待插入点子集的当前平面的平面参数进行迭代更新,得到更新平面;
将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面;
将所述候选点子集更新至候选点总集,若更新后的候选点总集中的点数大于第二点数量阈值,且当前所述合并更新平面的总数小于平面阈值,则基于所述更新后的候选点总集中的点生成候选平面;
将全部所述候选平面、所述合并更新平面以及剩余未合并的更新平面进行汇总,得到所述待处理三维稀疏点集对应的目标平面集合。
2.根据权利要求1所述的方法,其特征在于,所述若所述待插入点子集中的点数大于第一点数量阈值,则采用随机抽样生成临时平面,对插入了所述待插入点子集的当前平面的平面参数进行迭代更新,得到更新平面,包括:
对插入了所述待插入点子集的当前平面,每次迭代随机抽取三个点生成当前迭代对应的临时平面;
分别计算所述当前平面的全部点中的每个点与所述当前迭代对应的临时平面之间的第一距离;
基于所述第一距离,确定所述当前迭代对应的临时平面的内点集合;
基于所述当前迭代对应的临时平面的内点集合,对所述当前平面的平面参数进行迭代更新,得到所述更新平面。
3.根据权利要求2所述的方法,其特征在于,所述基于所述当前迭代对应的临时平面的内点集合,对所述当前平面的平面参数进行迭代更新,得到所述更新平面,包括:
基于所述当前迭代对应的临时平面的内点集合,进行平面拟合处理,得到所述临时平面对应的平面拟合参数;
对所述平面拟合参数进行迭代优化,得到所述临时平面对应的对应的临时优化平面;
基于每次迭代对应的所述临时优化平面对应的优化平面内点数量,从全部的临时优化平面中筛选所述更新平面。
4.根据权利要求3所述的方法,其特征在于,所述基于每次迭代对应的所述临时优化平面对应的优化平面内点数量,从全部的临时优化平面中筛选所述更新平面,包括:
分别计算所述当前平面的全部点的中每个点与所述临时优化平面之间的第二距离;
将小于或等于所述距离阈值的第二距离对应的点,确定为所述临时优化平面对应的优化平面内点,以统计得到所述临时优化平面对应的优化平面内点数量;
将数值最大的优化平面内点数量对应的临时优化平面,确定为所述更新平面。
5.根据权利要求4所述的方法,其特征在于,所述将数值最大的优化平面内点数量对应的临时优化平面,确定为所述更新平面,包括:
获取所述临时优化平面中的全部优化平面内点,投影在所述临时优化平面上的最大外轮廓多边形;
计算所述多边形的顶点中心以及所述全部优化平面内点在所述临时优化平面上的投影中心;
基于所述顶点中心以及所述投影中心,从所述多边形的全部顶点中筛选出异常顶点,并剔除所述异常顶点,得到所述更新平面以及所述更新平面的优化顶点集合;
基于所述优化顶点集合,重新计算所述更新平面对应的优化外轮廓多边形和所述优化外轮廓多边形的面积,以及计算所述更新平面对应的平面信息,其中,所述平面信息至少包括平面法向量。
6.根据权利要求5所述的方法,其特征在于,所述将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面,包括:
计算任意两个所述更新平面分别对应的平面法向量之间的夹角;
基于每个所述更新面积对应的优化外轮廓多边形和所述优化外轮廓多边形的面积,计算任意两个所述更新平面相互投影后的外轮廓多边形的重叠面积以及面积交并比;
当平面合并条件为所述夹角小于夹角阈值、所述重叠面积大于面积阈值且所述面积交并比大于交并比阈值时,将所述符合平面合并条件的任意两个更新平面进行合并,得到所述合并更新平面。
7.根据权利要求6所述的方法,其特征在于,所述当平面合并条件为所述夹角小于夹角阈值、所述重叠面积大于面积阈值且所述面积交并比大于交并比阈值时,将所述符合平面合并条件的任意两个更新平面进行合并,得到所述合并更新平面之后,所述方法还包括:
计算每个所述合并更新平面对应的外轮廓多边形的面积;
将每个所述合并更新平面对应的外轮廓多边形的面积,以及剩余未合并的更新平面对应的所述优化外轮廓多边形的面积,分别与第二面积阈值进行比较;
将面积小于所述第二面积阈值的合并更新平面或剩余未合并的更新平面进行剔除,得到最优更新平面集合;
所述将全部所述候选平面、所述合并更新平面以及剩余未合并的更新平面进行汇总,得到所述待处理三维稀疏点集对应的目标平面集合,包括:
将所述全部所述候选平面以及最优更新平面集合进行汇总,得到所述待处理三维稀疏点集对应的目标平面集合。
8.根据权利要求1所述的方法,其特征在于,所述将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面,包括:
所述将符合平面合并条件的任意两个更新平面上的所有点进行合并,得到合并平面点集;
基于所述合并平面点集,进行平面拟合处理,得到合并平面拟合参数;
对所述合并平面拟合参数进行迭代优化,得到所述合并更新平面。
9.根据权利要求4所述的方法,其特征在于,所述将数值最大的优化平面内点数量对应的临时优化平面,确定为所述更新平面之后,所述方法还包括:
针对于所述更新平面,将大于所述距离阈值的第二距离对应的点,确定为所述更新平面对应的外点,以汇总得到所述更新平面对应的外点集合;
将所述外点集合添加至所述候选点总集,以更新所述候选点总集。
10.根据权利要求2所述的方法,其特征在于,所述基于所述第一距离,确定所述当前迭代对应的临时平面的内点集合,包括:
将小于或等于所述距离阈值的第一距离对应的点,确定为所述当前迭代对应的临时平面对应的内点;
将所述当前迭代对应的临时平面对应的内点进行汇总,得到所述当前迭代对应的临时平面的内点集合。
11.根据权利要求1所述的方法,其特征在于,所述基于所述更新后的候选点总集中的点生成候选平面,包括:
从所述更新后的候选点总集中,每次迭代随机抽取三个点生成临时候选平面;
分别计算所述更新后的候选点总集中的全部候选点中的每个候选点与所述临时候选平面之间的第四距离;
基于所述第四距离,确定所述临时候选平面的内点集合;
基于每次迭代对应的所述临时候选平面的内点集合,筛选内点数量最大的临时候选平面;
若所述内点数量最大的临时候选平面的内点总数大于内点阈值,则将所述内点数量最大的临时候选平面确定为有效候选平面;
对所述有效候选平面进行平面参数的迭代优化,得到所述候选平面。
12.根据权利要求1所述的方法,其特征在于,所述基于每个所述点对应的空间坐标,将所述待处理三维稀疏点集划分为候选点子集和多个待插入点子集,包括:
若当前的平面数量不为零,则分别计算所述待处理三维稀疏点集中的每个点与每个所述当前平面之间的第三距离;
基于所述第三距离,从所述待处理三维稀疏点集中筛选每个所述当前平面的插入点,得到所述候选点子集以及每个所述当前平面对应的所述待插入点子集。
13.根据权利要求12所述的方法,其特征在于,所述基于所述第三距离,从所述待处理三维稀疏点集中筛选每个所述当前平面的插入点,得到所述候选点子集以及每个所述当前平面对应的所述待插入点子集,包括:
将每个点与每个所述当前平面之间的第三距离与距离阈值进行比较,得到比较结果;
若所述比较结果为大于距离阈值,则将所述第一距离对应的点确定为所述候选点,并将全部的所述候选点进行汇总,得到所述候选点子集;
若所述比较结果为小于或等于距离阈值,则将所述第三距离对应的点确定为所述当前平面的插入点,以获取每个所述当前平面对应的所述待插入点子集。
14.一种基于三维点云的平面检测装置,其特征在于,包括:
获取单元,用于获取待处理三维稀疏点集,其中,所述待处理三维稀疏点集中包括多个点以及每个点对应的空间坐标;
处理单元,用于基于每个所述点对应的空间坐标,将所述待处理三维稀疏点集划分为候选点子集和多个待插入点子集,其中,每个所述待插入点子集用于描述可插入平面的点的集合,候选点子集用于描述不能插入平面的点的集合;
所述处理单元,还用于针对每个所述待插入点子集,若所述待插入点子集中的点数大于第一点数量阈值,则采用随机抽样生成临时平面,对插入了所述待插入点子集的当前平面的平面参数进行迭代更新,得到更新平面;
所述处理单元,还用于将符合平面合并条件的任意两个更新平面进行合并,得到合并更新平面;
所述处理单元,还用于将所述候选点子集更新至候选点总集,若更新后的候选点总集中的点数大于第二点数量阈值,且当前所述合并更新平面的总数小于平面阈值,则基于所述更新后的候选点总集中的点生成候选平面;
确定单元,用于将全部所述候选平面、所述合并更新平面以及剩余未合并的更新平面进行汇总,得到所述待处理三维稀疏点集对应的目标平面集合。
15.一种计算机设备,包括存储器、处理器以及总线系统,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至13中任一项所述的方法的步骤;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
17.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211212898.XA CN117830198A (zh) | 2022-09-30 | 2022-09-30 | 一种基于三维点云的平面检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211212898.XA CN117830198A (zh) | 2022-09-30 | 2022-09-30 | 一种基于三维点云的平面检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117830198A true CN117830198A (zh) | 2024-04-05 |
Family
ID=90523519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211212898.XA Pending CN117830198A (zh) | 2022-09-30 | 2022-09-30 | 一种基于三维点云的平面检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117830198A (zh) |
-
2022
- 2022-09-30 CN CN202211212898.XA patent/CN117830198A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10029622B2 (en) | Self-calibration of a static camera from vehicle information | |
CN113424224B (zh) | 识别并保留优选点的合并点云的方法 | |
Jancosek et al. | Exploiting visibility information in surface reconstruction to preserve weakly supported surfaces | |
US10417821B2 (en) | Method of simplifying a geometry model | |
Silberman et al. | A contour completion model for augmenting surface reconstructions | |
JP2017509972A (ja) | ビュー非依存色等化3dシーンテクスチャ処理 | |
JP2012530323A (ja) | 3次元シーンの区分的平面再構成 | |
EP3367334B1 (en) | Depth estimation method and depth estimation apparatus of multi-view images | |
CN110648363A (zh) | 相机姿态确定方法、装置、存储介质及电子设备 | |
CN115439607A (zh) | 一种三维重建方法、装置、电子设备及存储介质 | |
CN111583381A (zh) | 游戏资源图的渲染方法、装置及电子设备 | |
Pintore et al. | Automatic modeling of cluttered multi‐room floor plans from panoramic images | |
CN113298708A (zh) | 三维房型的生成方法、装置及设备 | |
US10956649B2 (en) | Semiconductor package metal shadowing checks | |
Park et al. | Segmentation of Lidar data using multilevel cube code | |
CN113628343B (zh) | 三维网格的合并处理方法和装置、存储介质 | |
CN114359231A (zh) | 一种停车位的检测方法、装置、设备及存储介质 | |
Palma et al. | Detection of geometric temporal changes in point clouds | |
CN114820910A (zh) | 一种渲染方法及装置 | |
US8847954B1 (en) | Methods and systems to compute 3D surfaces | |
CN116912817A (zh) | 三维场景模型拆分方法、装置、电子设备和存储介质 | |
CN117830198A (zh) | 一种基于三维点云的平面检测方法、装置、设备及存储介质 | |
Ito et al. | PM-MVS: PatchMatch multi-view stereo | |
CN116681857A (zh) | 一种空间碰撞检测方法、装置及电子设备 | |
CN114092663A (zh) | 面向城市信息模型建筑三维重建方法、装置、设备及介质 |
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 |