三维点云补全方法、装置和计算机可读存储介质与流程

文档序号:21412630发布日期:2020-07-07 14:49阅读:230来源:国知局
三维点云补全方法、装置和计算机可读存储介质与流程

本公开涉及计算机技术领域,尤其是一种三维点云补全方法、装置和计算机可读存储介质。



背景技术:

在一些情况下,人们通常需要对整个房屋的情况提前进行大致的了解。通常,可以通过房屋信息描述、三维场景漫游、三维模型以及户型图等来进行初步了解。由此可见,模型的准确度、完整度以及美观度皆是影响人们对房屋模型直观了解的一些因素。



技术实现要素:

本公开的实施例提供了一种三维点云补全方法、装置、计算机可读存储介质和三维点云补全设备。

本公开的实施例提供了一种三维点云补全方法,该方法包括:获取目标房间对应的三维点云,其中,三维点云包括顶面点云、地面点云和摆放物品点云;基于顶面点云,生成顶面点云投射图像,以及基于地面点云和摆放物品点云,生成地面点云投射图像;从顶面点云投射图像和地面点云投射图像中,确定至少一个待补全点云区域;对于至少一个待补全点云区域中的每个待补全点云区域,基于该待补全点云区域的位置,利用该待补全点云区域周围的点云,对该待补全点云区域进行补全。

在一些实施例中,基于顶面点云,生成顶面点云投射图像,以及基于地面点云和摆放物品点云,生成地面点云投射图像,包括:基于顶面点云包括的点的坐标,将顶面点云映射到预设尺寸、预设颜色的第一图像上,得到顶面点云投射图像;基于地面点云和其他点云的坐标,将地面点云和其他点云映射到预设尺寸、预设颜色的第二图像上,得到地面点云投射图像。

在一些实施例中,基于该待补全点云区域的位置,利用该待补全点云区域周围的点云,对该待补全点云区域进行补全,包括:基于预设的点间距,向该待补全点云区域内补充由多个待补全点组成的待补全点集;利用待补全点集附近的三维点云,确定待补全点集中的每个待补全点的高度;基于每个待补全点的高度,补全该待补全点云区域对应的三维空洞。

在一些实施例中,利用待补全点集附近的三维点云,确定待补全点集中的每个待补全点的高度,包括:响应于确定该待补全点云区域位于顶面,对于该待补全点云区域中的每个待补全点,确定顶面点云包括的点中的与该待补全点的距离最近的点;将所确定的点的高度确定为该待补全点的高度。

在一些实施例中,利用待补全点集附近的三维点云,确定待补全点集中的每个待补全点的高度,包括:响应于确定该待补全点云区域位于地面,对于该待补全点云区域包括的待补全点集中的每个待补全点,基于三维点云,确定该待补全点的预设范围内是否存在垂直平面;响应于确定存在垂直平面,对垂直平面进行划分,得到多个分块;将该待补全点投影至垂直平面,并将投影点所在的分块的高度确定为该待补全点的高度。

在一些实施例中,利用所述待补全点集附近的三维点云,确定待补全点集中的每个待补全点的高度,还包括:响应于确定该待补全点的预设范围内不存在垂直平面,将该待补全点云区域包括的待补全点集划分为至少一个待补全点子集;从至少一个待补全点子集中确定外围待补全点子集;对于外围待补全点子集中的每个待补全点,从三维点云中确定距离该待补全点最近的点,并将所确定的点的高度确定为该待补全点的高度;将确定高度后的外围待补全点子集确定为参照点集;从至少一个待补全点子集中重新确定外围待补全点子集,基于重新确定的外围待补全点子集,执行如下补全步骤:对于外围待补全点子集中的每个待补全点,确定该待补全点与参照点集中的每个点的距离权重,利用距离权重,对参照点集中的点的高度进行加权求和,得到该待补全点的高度;将该待补全点作为参照点加入参照点集;响应于确定至少一个待补全点子集中存在未进行补全的待补全点子集,从未进行补全的待补全点子集中重新确定外围待补全点子集,利用重新确定的外围待补全点子集,继续执行补全步骤。

在一些实施例中,将该待补全点云区域包括的待补全点集划分为至少一个待补全点子集,包括:执行如下划分步骤:对于该待补全点云区域包括的待补全点集中的每个待补全点,确定以该待补全点为圆心,以点间距为半径的圆内的待补全点的数量;将包含的待补全点的数量小于预设数量的圆的圆心对应的待补全点确定为外围待补全点;将所确定的各个外围待补全点确定为待补全点子集并从待补全点集中去除;确定去除待补全点子集后剩余的待补全点的数量是否为零;如果数量为零,结束划分步骤;如果数量不为零,将去除待补全点子集后剩余的待补全点作为新的待补全点集,继续执行划分步骤。

在一些实施例中,从顶面点云投射图像和地面点云投射图像中,确定至少一个待补全点云区域,包括:从顶面点云投射图像和地面点云投射图像中,确定至少一个候选待补全点云区域;将至少一个候选待补全点云区域中不符合预设条件的候选待补全点云区域滤除,得到至少一个待补全点云区域。

在一些实施例中,预设条件包括以下至少一种:候选待补全区域的外接矩形的长宽比处于预设比例范围内;候选待补全区域的面积处于预设面积范围内;候选待补全区域的面积与外接矩形的面积比大于或等于预设比例。

根据本公开实施例的另一个方面,提供了一种三维点云补全装置,该装置包括:获取模块,用于获取目标房间对应的三维点云,其中,三维点云包括顶面点云、地面点云和摆放物品点云;生成模块,用于基于顶面点云,生成顶面点云投射图像,以及基于地面点云和摆放物品点云,生成地面点云投射图像;确定模块,用于从顶面点云投射图像和地面点云投射图像中,确定至少一个待补全点云区域;补全模块,用于对于至少一个待补全点云区域中的每个待补全点云区域,基于该待补全点云区域的位置,利用该待补全点云区域周围的点云,对该待补全点云区域进行补全。

根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序用于执行上述三维点云补全方法。

根据本公开实施例的另一个方面,提供了一种三维点云补全设备,包括:至少一个处理器;存储器,与至少一个处理器连接;其中,存储器存储有能被至少一个处理器执行的指令,至少一个处理器通过执行存储器存储的指令实现上述三维点云补全方法。

基于本公开上述实施例提供的三维点云补全方法、装置、计算机可读存储介质和三维点云补全设备,通过生成顶面点云投射图像和地面点云投射图像,再从顶面点云投射图像和地面点云投射图像中,确定至少一个待补全点云区域,最后基于待补全点云区域的位置,利用待补全点云区域周围的点云,对待补全点云区域进行补全,从而有效地利用了待补全点云区域的位置特点,对待补全点云区域进行补全,提高了对三维点云中的空洞补全的准确性,以及增加了房屋模型的完整性和美观程度。

下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

附图说明

通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。

图1是本公开所适用的系统图。

图2是本公开一示例性实施例提供的三维点云补全方法的流程示意图。

图3是本公开的实施例的提供的顶面点云投射图像和地面点云投射图像的示例性示意图。

图4是本公开另一示例性实施例提供的三维点云补全方法的流程示意图。

图5是本公开另一示例性实施例提供的三维点云补全方法的流程示意图。

图6是本公开的实施例提供的将垂直平面进行划分的示例性示意图。

图7是本公开另一示例性实施例提供的三维点云补全方法的流程示意图。

图8是本公开的实施例提供的待补全点子集的示例性示意图。

图9是本公开另一示例性实施例提供的三维点云补全方法的流程示意图。

图10是本公开一示例性实施例提供的三维点云补全装置的结构示意图。

图11是本公开另一示例性实施例提供的三维点云补全装置的结构示意图。

图12是本公开一示例性实施例提供的三维点云补全设备的结构图。

具体实施方式

下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。

应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。

还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。

还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。

另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。

还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

申请概述

由于在三维点云的获取过程中,被扫描的对象往往会面临被其他对象遮挡或光照强度过大等原因造成的数据缺失,在视觉上表现为空洞区域。因此,为了使房屋模型更加完整和美观,需要对这些空洞区域进行补全。

示例性系统

图1示出了可以应用本公开的实施例的三维点云补全方法或三维点云补全装置的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101,网络102和服务器103。网络102用于在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如三维模型类应用、房屋设计类应用、网页浏览器应用等。

终端设备101可以是各种电子设备,包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。

服务器103可以是提供各种服务的服务器,例如对终端设备101上传的三维点云进行处理的后台点云处理服务器。后台点云处理服务器可以对接收到的三维点云进行处理,得到补全空洞区域后的三维点云。

需要说明的是,本公开的实施例所提供的三维点云补全方法可以由服务器103执行,也可以由终端设备101执行,相应地,三维点云补全装置可以设置于服务器103中,也可以设置于终端设备101中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。在三维点云不需要从远程获取的情况下,上述系统架构可以不包括网络,只包括服务器或终端设备。

示例性方法

图2是本公开一示例性实施例提供的三维点云补全方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101或服务器103)上,如图2所示,该方法包括如下步骤:

步骤201,获取目标房间对应的三维点云。

在本实施例中,电子设备可以从远程或从本地获取目标房间对应的三维点云。其中,目标房间可以是利用三维点云采集设备(例如激光雷达、立体相机等)对其进行三维扫描的房间。三维点云采集设备可以采集到三维点云,利用三维点云,可以构建目标房间的三维模型。三维点云包括顶面点云、地面点云和摆放物品点云。其中,顶面点云是用于表征目标房间的天花板的点云,地面点云是用于表征目标房间的地面的点云,摆放物品点云是用于表征目标房间内放置的各种物品的点云。通常,可以将目标房间的模型中,位于顶面的点云作为顶面点云,将位于地面的点云作为地面点云,将位于模型空间内部的点云作为摆放物品点云。需要说明的是,三维点云还可以包括垂直面点云,用于表征与顶面或地面垂直的平面,如墙面、摆放物品的垂直面等。

通常,可以设定坐标系y轴正向朝下,xoz平面为水平面,设各个平面的法向量为(nx,ny,nz)。则对于顶面,ny>tceil;对于地面,ny<tfloor;对于垂直面,nx2+nz2>twall,tceil可以取0.985,tfloor可以取-0.985,twall可以取0.985。

步骤202,基于顶面点云,生成顶面点云投射图像,以及基于地面点云和摆放物品点云,生成地面点云投射图像。

在本实施例中,电子设备可以基于顶面点云,生成顶面点云投射图像,以及基于地面点云和摆放物品点云,生成地面点云投射图像。作为示例,电子设备可以将顶面点云覆盖的区域投射到目标房间的模型的顶面所在的水平面上,再按照预设的比例,将水平面上的投射区域映射到预设大小的第一图像上。电子设备还可以将地面点云覆盖的区域和摆放物品点云覆盖的区域投射到目标房间的模型的地面所在的水平面上,再按照预设的比例,将水平面上的投射区域映射到预设大小的第二图像上。

在一些可选的实现方式中,步骤202可以如下执行:

首先,基于顶面点云包括的点的坐标,将顶面点云映射到预设尺寸、预设颜色的第一图像上,得到顶面点云投射图像。

然后,基于地面点云和其他点云的坐标,将地面点云和其他点云映射到预设尺寸、预设颜色的第二图像上,得到地面点云投射图像。

具体地,作为示例,电子设备可以初始化第一图像和第二图像,其中,第一图像和第二图像的大小为size*size,像素全为0(即黑色)。假设点云在x轴方向和z轴方向的宽度分别为wx和wz(单位:米),则size=max(m*wx+200,m*wz+200),单位为像素pixel。其中m是从点云到图像的映射系数,200是图像四周留有的余量。此后,按照式(1)进行点云(px,pz)到像素(r,c)的映射,得到顶面点云投射图像(如图3(a)所示)和地面点云投射图像(如图3(b)所示)。

其中,100是图像四周各留有的余量,minx和minz是点云x坐标和z坐标的最小值,m是从点云到图像的映射系数,这里取50,函数floor()为向下取整函数,因为点云坐标包含小数,像素坐标为整数,因此,这里将括号中的数值取整。

本可选的实现方式,通过将三维点云映射到预设尺寸、预设颜色的第一图像和第二图像上,从而可以得到标准化的顶面点云投射图像和地面点云投射图像,有助于通过比较顶面点云投射图像和地面点云投射图像,准确地得到待补全点云区域。

步骤203,从顶面点云投射图像和地面点云投射图像中,确定至少一个待补全点云区域。

在本实施例中,电子设备可以从顶面点云投射图像和地面点云投射图像中,确定至少一个待补全点云区域。具体地,作为示例,电子设备可以从顶面点云投射图像和地面点云投射图像中,将三维点云没有映射到的区域确定为待补全点云区域。

在一些可选的实现方式中,步骤203可以如下执行:

首先,从顶面点云投射图像和地面点云投射图像中,确定至少一个候选待补全点云区域。具体地,电子设备可以从顶面点云投射图像和地面点云投射图像中,将三维点云没有映射到的所有区域确定为候选待补全点云区域。

然后,将至少一个候选待补全点云区域中不符合预设条件的候选待补全点云区域滤除,得到至少一个待补全点云区域。不符合预设条件的候选待补全点云区域,通常是面积较小,或者表征墙体等设施的区域,这些区域通常不需要补全。本实现方式通过将不符合预设条件的候选待补全点云区域滤除,可以准确地得到需要补全的空洞区域,提高三维点云补全的精确性和模型的完整性。

在一些可选的实现方式中,上述预设条件包括以下至少一种:

条件一,候选待补全区域的外接矩形的长宽比处于预设比例范围内。

条件二,候选待补全区域的面积处于预设面积范围内。

条件三,候选待补全区域的面积与外接矩形的面积比大于或等于预设比例。

通过上述预设条件,可以实现将细长形状的候选待补全区域、面积较小的候选待补全区域、覆盖范围比较分散的候选待补全区域等,从各个候选待补全区域中滤除,从而可以提高得到待补全区域的准确性,有助于得到完整的、符合实际情况的房间模型。

步骤204,对于至少一个待补全点云区域中的每个待补全点云区域,基于该待补全点云区域的位置,利用该待补全点云区域周围的点云,对该待补全点云区域进行补全。

在本实施例中,对于至少一个待补全点云区域中的每个待补全点云区域,电子设备可以基于该待补全点云区域的位置,利用该待补全点云区域周围的点云,对该待补全点云区域进行补全。具体地,对于某个待补全点云区域,该待补全点云区域的位置可能位于目标房间的模型的顶面、地面或放置物品的表面,由于待补全点云区域的水平面坐标已知(例如x坐标、z坐标),因此,电子设备可以将该待补全点云区域附近的三维点云的高度(例如y坐标),赋予待补全点云区域中的各个点的高度,或者利用该待补全点云区域附近的三维点云的高度进行拟合,得到待补全点云区域中的各个点的高度。

本公开的上述实施例提供的方法,通过生成顶面点云投射图像和地面点云投射图像,再从顶面点云投射图像和地面点云投射图像中,确定至少一个待补全点云区域,最后基于待补全点云区域的位置,利用待补全点云区域周围的点云,对待补全点云区域进行补全,从而有效地利用了待补全点云区域的位置特点,对待补全点云区域进行补全,提高了对三维点云中的空洞补全的准确性,以及增加了房屋模型的完整性和美观程度。

进一步参考图4,示出了三维点云补全方法的又一个实施例的流程示意图。如图4所示,在上述图2所示实施例的基础上,对于至少一个待补全点云区域中的每个待补全点云区域,可以执行如下步骤:

步骤2041,基于预设的点间距,向该待补全点云区域内补充由多个待补全点组成的待补全点集。

具体地,电子设备可以按照点间距,均匀地向待补全点云区域内分布多个待补全点,由于待补全点云区域的水平面坐标已知,因此,待补全点集中的每个待补全点的水平面坐标可以确定。

步骤2042,利用待补全点集附近的三维点云,确定待补全点集中的每个待补全点的高度。

具体地,由于各个待补全点云区域可能位于目标房间的模型内的不同位置,因此,可以根据待补全点云区域所处的位置,对待补全点集进行不同方式的分析,得到每个待补全点的高度。

步骤2043,基于每个待补全点的高度,补全该待补全点云区域对应的三维空洞。

具体地,待补全点集中的每个待补全点的水平面坐标和高度确定后,即可以在三维点云中,按照每个待补全点的坐标,将待补全点云区域对应的三维空洞补全。

上述图4对应实施例提供的方法,通过向待补全点云区域填充待补全点集,然后利用待补全点集附近的三维点云,确定待补全点集中的每个待补全点的高度,进而将待补全点云区域对应的三维空洞补全,从而有效利用了待补全点附近的三维点云,确定待补全点的高度,即准确地确定每个待补全点的坐标,从而提高了三维点云补全的效准确性。

在一些可选的实现方式中,上述步骤2042可以包括如下步骤:

响应于确定该待补全点云区域位于顶面,对于该待补全点云区域中的每个待补全点,电子设备可以执行如下步骤:

首先,确定顶面点云包括的点中的与该待补全点的距离最近的点。

然后,将所确定的点的高度确定为该待补全点的高度。

在本实现方式中,利用了如下先验知识:由于顶面点云位于房间的顶面,因此,顶面点云包括的所有点的高度相同,因此,只需将每个待补全点的高度设置为周围的点的高度即可,从而有助于提高三维点云补全的效率和准确性。

在一些可选的实现方式中,如图5所示,上述步骤2042可以包括如下步骤:

步骤204201,响应于确定该待补全点云区域位于地面,对于该待补全点云区域包括的待补全点集中的每个待补全点,基于三维点云,确定该待补全点的预设范围内是否存在垂直平面。

其中,预设范围可以基于各种方式确定,例如,可以是以待补全点为圆形,以预设长度为半径的圆包含的范围,还可以是以待补全点为中心,以预设长度为边长的矩形包含的范围。上述垂直平面可以利用预先对三维点云进行划分得到的表征垂直平面的点云得到。

步骤204202,响应于确定存在垂直平面,对垂直平面进行划分,得到多个分块。

作为示例,如图6所示,其示出了一个垂直平面,该垂直平面被划分为多个分块,每个分块的宽度为w,高度分别为yi(i=1,2,3,…)。

步骤204203,将该待补全点投影至垂直平面,并将投影点所在的分块的高度确定为该待补全点的高度。

如图6所示,待补全点p1的投影点所在的分块的高度为y1,将待补全点p1的高度设置为y1,基于同样的方法,待补全点p2、p3的高度分别设置为y7和y14。

在本实现方式中,利用了如下先验知识:如果待补全点位于诸如灶台、桌子等物品对应的位置时,待补全点的高度与这些物品的高度一致。本实现方式实现了在待补全点附近存在垂直平面时,直接将垂直平面的高度赋予待补全点,提高了三维点云补全的效率和准确性。

在一些可选的实现方式中,如图7所示,在上述步骤204202之后,电子设备还可以执行如下步骤:

步骤204204,响应于确定该待补全点的预设范围内不存在垂直平面,将该待补全点云区域包括的待补全点集划分为至少一个待补全点子集。

具体地,电子设备可以按照由待补全点集的外围向内部的顺序,依次确定待补全点子集。例如,将待补全点云区域划分为多个相同宽度的闭环区域,每个闭环区域覆盖的待补全点即为一个待补全点子集。

步骤204205,从至少一个待补全点子集中确定外围待补全点子集。

其中,外围待补全点子集为位于待补全点集最外围的子集。如图8所示,编号为1的待补全点子集为外围待补全点子集。

步骤204206,对于外围待补全点子集中的每个待补全点,从三维点云中确定距离该待补全点最近的点,并将所确定的点的高度确定为该待补全点的高度。

步骤204207,将确定高度后的外围待补全点子集确定为参照点集。

执行本步骤后,如图8所示的编号为1的待补全点确定完高度后加入参照点集。

步骤204208,从至少一个待补全点子集中重新确定外围待补全点子集,基于重新确定的外围待补全点子集,执行补全步骤(即步骤204209)。

具体地,如图8所示,重新确定外围待补全点子集为编号为2的待补全点子集。

步骤204209,对于外围待补全点子集中的每个待补全点,确定该待补全点与参照点集中的每个点的距离权重,利用距离权重,对参照点集中的点的高度进行加权求和,得到该待补全点的高度;将该待补全点作为参照点加入参照点集。

其中,距离权重用于表征待补全点与参照点集中的每个点的距离对确定待补全点的高度的影响程度。即距离越近,影响程度越高,距离越远,影响程度越低。

作为示例,对于某个待补全点,可以利用如下公式(2)确定该待补全点的高度:

其中,hi表示待补全点i的高度,m为参照点集中的参照点的数量,j表示参照点的序号,λj为待补全点i与参照点j的距离权重,yj为参照点j的高度。其中,λj为点间距除以待补全点i与参照点j的距离所得的结果。

步骤204210,确定至少一个待补全点子集中是否存在未进行补全的待补全点子集。

步骤204211,响应于确定至少一个待补全点子集中存在未进行补全的待补全点子集,从未进行补全的待补全点子集中重新确定外围待补全点子集,利用重新确定的外围待补全点子集,继续执行补全步骤。

具体地,当第二次执行补全步骤时,外围待补全点子集为如图8所示的编号为3的待补全点子集,参照点集包括补全高度后的编号为1和2的待补全点子集。

应当理解,当至少一个待补全点子集中不存在未进行补全的待补全点子集时,退出循环。通过执行步骤204204-步骤204210,实现了在预设范围内不存在垂直平面时,利用待补全点集周围的三维点云,准层地确定待补全点的高度,在确定高度时,通过对周围点的高度加权的方式确定待补全点的高度,从而进一步提高了在待补全点云区域周围没有垂直平面时,对待补全点云区域进行补全的准确性,有利于进一步提高房建模型的完整性。

在一些可选的实现方式中,如图9所示,上述步骤204可以如下执行:

步骤a,对于该待补全点云区域包括的待补全点集中的每个待补全点,确定以该待补全点为圆心,以点间距为半径的圆内的待补全点的数量。

需要说明的是,如果待补全点位于圆上,则确定待补全点位于该圆内。

步骤b,将包含的待补全点的数量小于预设数量的圆的圆心对应的待补全点确定为外围待补全点。

其中,预设数量通常设置为4。如图8所示,以编号为1的各个待补全点为圆心(图中方块的中心),以点间距为半径的圆(如图中的圆),除去圆心对应的待补全点,位于圆内的待补全点小于4,因此,编号为1各个待补全点为外围待补全点。

步骤c,将所确定的各个外围待补全点确定为待补全点子集并从待补全点集中去除。

步骤d,确定去除待补全点子集后剩余的待补全点的数量是否为零。

步骤e,如果数量为零,结束划分步骤。

步骤f,如果数量不为零,将去除待补全点子集后剩余的待补全点作为新的待补全点集,继续执行划分步骤(步骤a-d)。

通过循环执行步骤a-步骤d,可以实现将待补全点集从外至内依次划分为多个待补全点子集,从而有助于提高由外向内确定待补全点的高度的准确性。

示例性装置

图10是本公开一示例性实施例提供的三维点云补全装置的结构示意图。本实施例可应用在电子设备上,如图10所示,三维点云补全装置包括:获取模块1001,用于获取目标房间对应的三维点云,其中,三维点云包括顶面点云、地面点云和摆放物品点云;生成模块1002,用于基于顶面点云,生成顶面点云投射图像,以及基于地面点云和摆放物品点云,生成地面点云投射图像;确定模块1003,用于从顶面点云投射图像和地面点云投射图像中,确定至少一个待补全点云区域;补全模块1004,用于对于至少一个待补全点云区域中的每个待补全点云区域,基于该待补全点云区域的位置,利用该待补全点云区域周围的点云,对该待补全点云区域进行补全。

在本实施例中,获取模块1001可以从远程或从本地获取目标房间对应的三维点云。其中,目标房间可以是利用三维点云采集设备(例如激光雷达、立体相机等)对其进行三维扫描的房间。三维点云采集设备可以采集到三维点云,利用三维点云,可以构建目标房间的三维模型。三维点云包括顶面点云、地面点云和摆放物品点云。其中,顶面点云是用于表征目标房间的天花板的点云,地面点云是用于表征目标房间的地面的点云,摆放物品点云是用于表征目标房间内放置的各种物品的点云。通常,可以将目标房间的模型中,位于顶面的点云作为顶面点云,将位于地面的点云作为地面点云,将位于模型空间内部的点云作为摆放物品点云。需要说明的是,三维点云还可以包括垂直面点云,用于表征与顶面或地面垂直的平面,如墙面、摆放物品的垂直面等。

通常,可以设定坐标系y轴正向朝下,xoz平面为水平面,设各个平面的法向量为(nx,ny,nz)。则对于顶面,ny>tceil;对于地面,ny<tfloor;对于垂直面,nx2+nz2>twall,tceil可以取0.985,tfloor可以取-0.985,twall可以取0.985。

在本实施例中,生成模块1002可以基于顶面点云,生成顶面点云投射图像,以及基于地面点云和摆放物品点云,生成地面点云投射图像。作为示例,生成模块1002可以将顶面点云覆盖的区域投射到目标房间的模型的顶面所在的水平面上,再按照预设的比例,将水平面上的投射区域映射到预设大小的第一图像上。生成模块1002还可以将地面点云覆盖的区域和摆放物品点云覆盖的区域投射到目标房间的模型的地面所在的水平面上,再按照预设的比例,将水平面上的投射区域映射到到预设大小的第二图像上。

在本实施例中,确定模块1003可以从顶面点云投射图像和地面点云投射图像中,确定至少一个待补全点云区域。具体地,作为示例,确定模块1003可以从顶面点云投射图像和地面点云投射图像中,将三维点云没有映射到的区域确定为待补全点云区域。

在本实施例中,对于至少一个待补全点云区域中的每个待补全点云区域,补全模块1004可以基于该待补全点云区域的位置,利用该待补全点云区域周围的点云,对该待补全点云区域进行补全。具体地,对于某个待补全点云区域,该待补全点云区域的位置可能位于目标房间的模型的顶面、地面或放置物品的表面,由于待补全点云区域的水平面坐标已知(例如x坐标、z坐标),因此,补全模块1004可以将该待补全点云区域附近的三维点云的高度(例如y坐标),赋予待补全点云区域中的各个点的高度,或者利用该待补全点云区域附近的三维点云的高度进行拟合,得到待补全点云区域中的各个点的高度。

参照图11,图11是本公开另一示例性实施例提供的三维点云补全装置的结构示意图。

在一些可选的实现方式中,生成模块1002可以包括:第一生成单元10021,用于基于顶面点云包括的点的坐标,将顶面点云映射到预设尺寸、预设颜色的第一图像上,得到顶面点云投射图像;第二生成单元10022,用于基于地面点云和其他点云的坐标,将地面点云和其他点云映射到预设尺寸、预设颜色的第二图像上,得到地面点云投射图像。

在一些可选的实现方式中,补全模块1004可以包括:补充单元10041,用于基于预设的点间距,向该待补全点云区域内补充由多个待补全点组成的待补全点集;第一确定单元10042,用于利用待补全点集附近的三维点云,确定待补全点集中的每个待补全点的高度;补全单元10043,用于基于每个待补全点的高度,补全该待补全点云区域对应的三维空洞。

在一些可选的实现方式中,第一确定单元10042可以进一步用于:响应于确定该待补全点云区域位于顶面,对于该待补全点云区域中的每个待补全点,确定顶面点云包括的点中的与该待补全点的距离最近的点;将所确定的点的高度确定为该待补全点的高度。

在一些可选的实现方式中,第一确定单元10042可以包括:第一确定子单元100421,用于响应于确定该待补全点云区域位于地面,对于该待补全点云区域包括的待补全点集中的每个待补全点,基于三维点云,确定该待补全点的预设范围内是否存在垂直平面;第一划分子单元100422,用于响应于确定存在垂直平面,对垂直平面进行划分,得到多个分块;第二确定子单元100423,用于将该待补全点投影至垂直平面,并将投影点所在的分块的高度确定为该待补全点的高度。

在一些可选的实现方式中,第一确定单元10042还可以包括:第二划分子单元100424,用于响应于确定该待补全点的预设范围内不存在垂直平面,将该待补全点云区域包括的待补全点集划分为至少一个待补全点子集;第三确定子单元100425,用于从至少一个待补全点子集中确定外围待补全点子集;第四确定子单元100426,用于对于外围待补全点子集中的每个待补全点,从三维点云中确定距离该待补全点最近的点,并将所确定的点的高度确定为该待补全点的高度;第五确定子单元100427,用于将确定高度后的外围待补全点子集确定为参照点集;补全子单元100428,用于从至少一个待补全点子集中重新确定外围待补全点子集,基于重新确定的外围待补全点子集,执行如下补全步骤:对于外围待补全点子集中的每个待补全点,确定该待补全点与参照点集中的每个点的距离权重,利用距离权重,对参照点集中的点的高度进行加权求和,得到该待补全点的高度;将该待补全点作为参照点加入参照点集;第六确定子单元100429,用于响应于确定至少一个待补全点子集中存在未进行补全的待补全点子集,从未进行补全的待补全点子集中重新确定外围待补全点子集,利用重新确定的外围待补全点子集,继续执行补全步骤。

在一些可选的实现方式中,第二划分子单元100424可以进一步用于:执行如下划分步骤:对于该待补全点云区域包括的待补全点集中的每个待补全点,确定以该待补全点为圆心,以点间距为半径的圆内的待补全点的数量;将包含的待补全点的数量小于预设数量的圆的圆心对应的待补全点确定为外围待补全点;将所确定的各个外围待补全点确定为待补全点子集并从待补全点集中去除;确定去除待补全点子集后剩余的待补全点的数量是否为零;如果数量为零,结束划分步骤;如果数量不为零,将去除待补全点子集后剩余的待补全点作为新的待补全点集,继续执行划分步骤。

在一些可选的实现方式中,确定模块1003可以包括:第二确定单元10031,用于从顶面点云投射图像和地面点云投射图像中,确定至少一个候选待补全点云区域;滤除单元10032,用于将至少一个候选待补全点云区域中不符合预设条件的候选待补全点云区域滤除,得到至少一个待补全点云区域。

在一些可选的实现方式中,预设条件可以包括以下至少一种:候选待补全区域的外接矩形的长宽比处于预设比例范围内;候选待补全区域的面积处于预设面积范围内;候选待补全区域的面积与外接矩形的面积比大于或等于预设比例。

本公开上述实施例提供的三维点云补全装置,通过生成顶面点云投射图像和地面点云投射图像,再从顶面点云投射图像和地面点云投射图像中,确定至少一个待补全点云区域,最后基于待补全点云区域的位置,利用待补全点云区域周围的点云,对待补全点云区域进行补全,从而有效地利用了待补全点云区域的位置特点,对待补全点云区域进行补全,提高了对三维点云中的空洞补全的准确性,以及增加了房屋模型的完整性和美观程度。

示例性计算机程序产品和计算机可读存储介质

除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的三维点云补全方法中的步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的三维点云补全方法中的步骤。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

示例性三维点云补全设备

下面,参考图12来描述根据本公开实施例的三维点云补全设备。该三维点云补全设备可以是如图1所示的终端设备101和服务器103中的任一个或两者、或与它们独立的单机设备,该单机设备可以与终端设备101和服务器103进行通信,以从它们接收所采集到的输入信号。

图12图示了根据本公开实施例的三维点云补全设备的框图。

如图12所示,三维点云补全设备1200包括一个或多个处理器1201和存储器1202。

处理器1201可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制三维点云补全设备1200中的其他组件以执行期望的功能。

存储器1202可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器1201可以运行程序指令,以实现上文的本公开的各个实施例的三维点云补全方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。

在一个示例中,三维点云补全设备1200还可以包括:输入装置1203和输出装置1204,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。

例如,在该三维点云补全设备是终端设备101或服务器103时,该输入装置1203可以是鼠标、键盘、激光雷达等设备,用于输入三维点云。在该三维点云补全设备是单机设备时,该输入装置1203可以是通信网络连接器,用于从终端设备101和服务器103接收所输入的三维点云。

该输出装置1204可以向外部输出各种信息,包括补全的三维点云。该输出设备1204可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图12中仅示出了该三维点云补全设备1200中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,三维点云补全设备1200还可以包括任何其他适当的组件。

以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。

还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。

提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1