掌桥专利:专业的专利平台
掌桥专利
首页

三维点云的处理方法、装置、计算机设备和存储介质

文献发布时间:2024-04-18 19:44:28


三维点云的处理方法、装置、计算机设备和存储介质

技术领域

本申请涉及三维扫描技术领域,特别是涉及三维点云的处理方法、装置、计算机设备和存储介质。

背景技术

从三维激光扫描仪获取的三维点云,由于光照、计算误差、设备误差等因素的影响,导致获取的三维点云包含大量离群点,而这些离群点的存在将极大地影响后续三维点云的处理精度。因此在进行后续三维点云的处理之前,需要先对三维点云中的离群点进行剔除。

目前三维点云的处理方法为在三维扫描过程中,遍历每一帧图像对应的三维点云确定相关离群点,再剔除相关离群点;如果某一帧的三维点云对应的离群点无法确定,则会影响整体扫描进程。

针对相关技术中存在单帧遍历的方式,导致计算效率低下,影响整体扫描进程的问题,目前还没有提出有效的解决方案。

发明内容

在本实施例中提供了一种三维点云的处理方法、装置、计算机设备和存储介质,以解决相关技术中单帧遍历的方式,导致计算效率低下,影响整体扫描进程的问题。

第一个方面,在本实施例中提供了一种三维点云的处理方法,包括:

基于三维扫描仪获取多帧的三维点云;所述三维点云包括线数据;

逐帧将所述三维点云输入过滤器中,在所述过滤器的滤波通道中以线数据中的段数据为过滤单位,对每一帧所述三维点云中的段数据进行过滤,得到目标点云;所述过滤器的一个滤波通道对应一条所述线数据。

在其中的一些实施例中,所述滤波通道的一个缓冲层对应一段所述段数据。

在其中的一些实施例中,所述方法还包括:

在基于三维扫描仪获取多帧的三维点云之后,以所述段数据的长度为筛选条件,筛选出每条线数据中预设数量的所述段数据。

在其中的一些实施例中,所述逐帧将所述三维点云输入过滤器中,在所述过滤器的滤波通道中以所述线数据中的段数据为过滤单位,对每一帧所述三维点云中的段数据进行过滤,得到目标点云,包括:

以第一帧所述三维点云中所述线数据对应的段数据初始化所述过滤器中所述滤波通道对应的缓冲层;

在所述过滤器的滤波通道中以所述线数据中的段数据为过滤单位,将后续每一帧所述三维点云中的段数据与对应的缓冲层进行迭代配对,得到配对结果;

根据配对结果,得到目标点云。

在其中的一些实施例中,所述在所述过滤器的滤波通道中以所述线数据中的段数据为过滤单位,将后续每一帧所述三维点云中的段数据与对应的缓冲层进行迭代配对,得到配对结果,包括:

在所述过滤器的滤波通道中以所述线数据中的段数据为过滤单位,将后续每一帧所述三维点云中的段数据与对应的缓冲层进行配对;

在所述段数据与一个所述缓冲层存在唯一交叉区域时;

若差距满足预设阈值,则以当前所述线数据初始化所述缓冲层属性,并设置对应缓冲层的状态为第一状态;所述差距为在相同极限编号下由当前的所述线数据的中心点和所述缓冲层属性中的Z值确定;

若差距不满足预设阈值,则以当前所述线数据初始化所述缓冲层属性,并设置对应缓冲层的状态为第二状态;

在所述段数据与多个所述缓冲层存在交叉区域时;

将交叉区域最大的所述线数据的差距与预设阈值进行比较,并设置剩余交叉区域对应的缓冲层的状态为第三状态;

在所述段数据与所有所述缓冲层不存在交叉区域时;

则新增缓冲层,以当前所述线数据初始化新增的缓冲层,并设置对应缓冲层的状态为第二状态;

遍历所述过滤器中所有缓冲层,设置未命中的缓冲层的状态为第四状态。

在其中的一些实施例中,所述根据配对结果,得到目标点云包括:

清除所有为第三状态所对应的缓冲层,并按预设优先级从状态为第一状态、第二状态以及第四状态的缓冲层中筛选出目标点云。

在其中的一些实施例中,所述方法还包括:

对至少两帧所述目标点云中所述段数据进行邻域判断,显示具有交叉区域的目标点云。

第二个方面,在本实施例中提供了一种三维点云的处理装置,包括:获取模块和过滤模块;

所述获取模块,用于基于三维扫描仪获取多帧的三维点云;所述三维点云包括线数据;

所述过滤模块,用于逐帧将所述三维点云输入过滤器中,在所述过滤器的滤波通道中以所述线数据中的段数据为过滤单位,对每一帧所述三维点云中的段数据进行过滤,得到目标点云;所述过滤器的一个滤波通道对应一条所述线数据。

第三个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的三维点云的处理方法。

第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的三维点云的处理方法。

与相关技术相比,在本实施例中提供的三维点云的处理方法、装置、计算机设备和存储介质,通过基于三维扫描仪获取多帧的三维点云;三维点云包括线数据;逐帧将三维点云输入过滤器中,在过滤器的滤波通道中以线数据中的段数据为过滤单位,对每一帧三维点云中的段数据进行过滤,得到目标点云;过滤器的一个滤波通道对应一条线数据,解决了相关技术中单帧遍历的方式,导致计算效率低下,影响整体扫描进程的问题,实现了提高计算效率,加快整体扫描进程。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本申请一实施例提供的三维点云的处理方法的终端设备的硬件结构框图;

图2是本申请一实施例提供的三维点云的处理方法的流程图;

图3是图2中步骤S220的流程图;

图4是本申请一实施例提供的三维点云的处理装置的结构框图。

图中:102、处理器;104、存储器;106、传输设备;108、输入输出设备;210、获取模块;220、过滤模块。

具体实施方式

为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。

除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。

在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的三维点云的处理方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器SoC或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的三维点云的处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种三维点云的处理方法,图2是本实施例的三维点云的处理方法的流程图,如图2所示,该流程包括如下步骤:

步骤S210,基于三维扫描仪获取多帧的三维点云;三维点云包括线数据;

步骤S220,逐帧将三维点云输入过滤器中,在过滤器的滤波通道中以线数据中的段数据为过滤单位,对每一帧三维点云中的段数据进行过滤,得到目标点云;过滤器的一个滤波通道对应一条线数据。

需要说明的是,三维扫描仪为非接触式的激光扫描仪;其包括但不限于双目视觉的手持式结构光扫描仪、跟踪式扫描仪或者级联式扫描仪等。示例性的,双目视觉的手持式结构光扫描仪包括:至少两个图像获取装置、至少一个激光投影器以及处理器。其中,图像获取装置可以为相机、摄像头、扫描器等;其中,激光投影器可以为一个激光投影器或多个激光投影器;每个激光投影器均可以同时投射激光线;这两条激光线相互平行或相交;每条激光线可以是直线或曲线。

通过上述三维扫描仪,由激光投影器投射激光线到目标物体上,再由至少两个图像获取装置同步获取带有激光线的图像,将图像输入到处理器中处理,得到多帧的三维点云。每一帧三维点云可以认为是两个图像获取装置同步获取的图像单独处理后得到的,两帧相连的三维点云可以认为是两个图像获取装置获取的。每一帧三维点云包含一个图像获取装置获取到的点云数据;每一帧三维点云均包括线数据。比如:激光投影器投射32条激光线到目标物体上;那么其中一个图像获取装置对应的一帧三维点云中包括32条线数据(laser_line)。线数据(laser_line)中有一个或多个段数据(segment),表示他们在空间上是一组连续的点,表征空间中的点集之间的连续性;段数据(segment)中有一系列点数据(point),可以认为是三维点,point是所有组成元素中最基本的元素。

每一帧三维点云均需要经过滤波器的校验,提高计算效率,加快整体扫描进程;具体为:逐帧将三维点云输入过滤器中,在过滤器的滤波通道中以线数据中的段数据为过滤单位,对每一帧三维点云中的段数据进行过滤,得到目标点云。

其中,过滤器具有多个滤波通道;滤波通道与线数据的数量对应,每个滤波通道之间相互独立,相互之间不干扰。比如:可以预先对线数据和滤波通道进行关联编号,从而确定线数据对应的滤波通道;那么在逐帧将三维点云输入过滤器中时,可以按关联编号将线数据输入到过滤器对应的滤波通道中,以滤波通道的属性为依据对每一帧三维点云中的段数据进行过滤,最终得到目标点云,极大提升三维点云的处理效率。其中,滤波通道的属性可以由用户预先设置,也可以是由目标点云来确定,对此并不进行限制。

在相关技术中,需要在三维扫描过程中,遍历每一帧图像对应的三维点云确定相关离群点,再剔除相关离群点;如果某一帧的三维点云对应的离群点无法确定,则会影响整体扫描进程。而本申请基于三维扫描仪获取多帧的三维点云;三维点云包括线数据;直接获取多帧的三维点云,降低对三维扫描仪扫描过程的影响,再逐帧将三维点云输入过滤器中,在过滤器的滤波通道中以线数据中的段数据为过滤单位,对每一帧三维点云中的段数据进行过滤,得到目标点云;过滤器的一个滤波通道对应一条线数据;在过滤器中以段数据为过滤单位,降低点数据对过滤的影响,以快速完成过滤;从而解决相关技术中单帧遍历的方式,导致计算效率低下,影响整体扫描进程的问题,实现了提高计算效率,加快整体扫描进程。

在其中的一些实施例中,滤波通道的一个缓冲层对应一段段数据。

具体的,滤波通道对应一条线数据(laser_line);滤波通道中包括多个缓冲层;缓冲层的数量和段数据的数量相同,缓冲层的数量和段数据的数量均可以预先设置;比如设置缓冲层的数量为15,那么会从一条线数据(laser_line)中选取出15条段数据。如果设置段数据的数量为15,那么会匹配设置15个缓冲层。当然缓冲层的数量也可以是其他数量,比如缓冲层的数量为10、6等,对此并不进行限制。

在本实施例中,利用缓冲层来对应段数据,节省缓冲层与段数据的匹配流程,来提高段数据的过滤效率。

在其中的一些实施例中,三维点云的处理方法,还包括如下步骤:

在基于三维扫描仪获取多帧的三维点云之后,以段数据的长度为筛选条件,筛选出每条线数据中预设数量的段数据。

具体的,每条线数据中段数据的预设数量与滤波通道的缓冲层的数量相同。可以利用各类筛选条件筛选出每条线数据中预设数量的段数据。比如:预设数量为15;以段数据的长度为筛选条件,那么可以将每条线数据中段数据按长度进行排序(顺序),再选取出前15的线数据。以段数据的清晰度为筛选条件,选取出清晰度靠前15的线数据。在其他实施例中,筛选条件可以是其他筛选条件、组合条件等,组合条件可以是清晰度高和长度长的组合条件,对比并一一举例说明。

在本实施例中,以长度为筛选条件确定预设数量的线数据,来降低过滤量级,在保障准确率的前提下,能够进一步加快过滤效率。

在其中的一些实施例中,如图3所示,步骤S220中的逐帧将三维点云输入过滤器中,在过滤器的滤波通道中以线数据中的段数据为过滤单位,对每一帧三维点云中的段数据进行过滤,得到目标点云,包括如下步骤:

步骤S221,以第一帧三维点云中线数据对应的段数据初始化过滤器中滤波通道对应的缓冲层;

步骤S222,在过滤器的滤波通道中以线数据中的段数据为过滤单位,将后续每一帧三维点云中的段数据与对应的缓冲层进行迭代配对,得到配对结果;

步骤S223,根据配对结果,得到目标点云。

具体的,过滤器(filter)中滤波通道对应的缓冲层(cushion)在初始化之前,可以认为过滤器(filter)是空的,滤波通道是空的,缓冲层(cushion)是空的;在初始化时,将第一帧三维点云中线数据对应的段数据设置到过滤器中滤波通道对应的缓冲层中;再将后续每一帧三维点云中的段数据与对应的缓冲层进行迭代配对,比如第二帧三维点云中的段数据会与缓冲层中的数据(第一帧三维点云中的线数据)进行迭代配对,配对结果设置到对应的缓冲层中;第三帧三维点云中的段数据会与缓冲层中的数据(上次迭代配对的配对结果)进行迭代配对,配对结果设置到对应的缓冲层中,持续迭代直到完成所有三维点云中段数据的迭代配对,得到最终的配对结果;进而根据配对结果和状态对应的预置策略,得到目标点云。

在本实施例中,利用过滤器的缓冲层,快速完成所有三维点云中线数据的迭代配对,进而能够根据配对结果,得到准确的目标点云。

在其中的一些实施例中,步骤S222中的在过滤器的滤波通道中以线数据中的段数据为过滤单位,将后续每一帧三维点云中的段数据与对应的缓冲层进行迭代配对,得到配对结果,包括如下步骤:

在过滤器的滤波通道中以线数据中的段数据为过滤单位,将后续每一帧三维点云中的段数据与对应的缓冲层进行配对;

在段数据与一个缓冲层存在唯一交叉区域时;

若差距满足预设阈值,则以当前线数据初始化缓冲层属性,并设置对应缓冲层的状态为第一状态;差距为在相同极限编号下由当前的线数据的中心点和缓冲层属性中的Z值确定;

若差距不满足预设阈值,则以当前线数据初始化缓冲层属性,并设置对应缓冲层的状态为第二状态;

在段数据与多个缓冲层存在交叉区域时;

将交叉区域最大的线数据的差距与预设阈值进行比较,并设置剩余交叉区域对应的缓冲层的状态为第三状态;

在段数据与所有缓冲层不存在交叉区域时;

则新增缓冲层,以当前线数据初始化新增的缓冲层,并设置对应缓冲层的状态为第二状态;

遍历过滤器中所有缓冲层,设置未命中的缓冲层的状态为第四状态。

具体的,缓冲层(cushion)的属性包括:上端极线编号(up),下端极线标号(down),上一次的中心位置的z坐标,z变化斜率(slope)以及缓冲层的状态(cushion_flag)。

其中,slope=(z_up-z_down)/(up-down)。

式中,z_up表示上端极线编号的z坐标值;z_down表示下端极限编号的z坐标值;其中,对于极线编号需要说明的是:基于极限约束原理对图像获取装置同步获取的二维的图像(第一图像和第二图像)中的段数据之间进行极限约束的匹配,确定段数据对;其中,第一图像中的一个二维点x1对应第二图像中的一条极限x2以及对应一个三维点x3;该极限x2,与第二图像的上端交点坐标即为上端极线编号,与第二图像的下端交点坐标即为下端极线编号;上端极线编号与二维点x1三维重建后即可确定上端极线编号的z坐标值;下端极线编号与二维点x1三维重建后即可确定下端极线编号的z坐标值。

其中,缓冲层的状态分为第一状态(KEEP)、第二状态(CHANGE)、第三状态(OVER_WRITE)、第四状态(DORMANT)以及初始状态(EMPTY);初始状态(EMPTY):缓冲层为空;第一状态(KEEP):持续命中,上一次的位置状态与这一次的位置状态保持一致。第二状态(CHANGE):上一次的位置状态与这一次的位置状态差别较大;第三状态(OVER_WRITE):此次命中了,但是并不是真正的候选,后续会被覆盖掉;第四状态(DORMANT)这一次的位置没有出现。

在初始状态,过滤器为空,缓冲层为空;输入第一帧三维点云到过滤器中;根据线数据中的段数据对应初始化缓冲层的属性。由段数据的属性(包括上端极限编号和下端极限编号)对应缓冲层中的上端极限编号和下端极限编号;由上端极限编号和下端极限编号确定z坐标和z变化斜率。在进入后续每一帧三维点云中的段数据,每条段数据与缓冲层去做配对,配对结果有一下几种情况:

第一种情况:在段数据与一个缓冲层存在唯一交叉区域时;比如:段数据的起始坐标如果为【1,5】,缓冲层的起始坐标如果为【2,6】,那么段数据与缓冲层有唯一交叉区域,唯一交叉区域为【2,5】。可以认为该缓冲层为唯一与该段数据配对的缓冲层,确定段数据中心点与缓冲层中记录的z值在相同极线标号下的差距,即z_diff=z_cushion-((p_segment-p_cushion)*slope+z_segment);其中,p_segment表示段数据中中心点的极线编号;p_cushion表示缓冲层中记录的中心点的极线编号;slope表示缓冲层中记录的斜率;z_segment表示段数据中中心点的z坐标;z_cushion表示缓冲层中记录的上一次的中心点的z坐标。

若差距z_diff满足预设阈值z_thresh,则以当前线数据初始化缓冲层属性,并设置对应缓冲层的状态为第一状态(KEEP);

若差距z_diff不满足预设阈值z_thresh,则以当前线数据初始化缓冲层属性,并设置对应缓冲层的状态为第二状态(CHANGE);

第二种情况:在段数据与多个缓冲层存在交叉区域时;比如:段数据的起始坐标如果为【1,5】,第一个缓冲层的起始坐标如果为【2,6】,第二个缓冲层的起始坐标如果为【0,3】,第三个缓冲层的起始坐标如果为【4,7】,那么段数据与这些缓冲层均存在交叉区域;其中,交叉范围最大的是与第一个缓冲层的交叉范围【2,5】,第一缓冲层为该线数据对应的缓冲层,再按第一种情况来计算差距;进而将差距与预设阈值进行比较,并设置剩余交叉区域对应的缓冲层的状态为第三状态OVER_WRITE。

第三种情况:在段数据与所有缓冲层不存在交叉区域时;

则新增缓冲层,以当前线数据初始化新增的缓冲层,并设置对应缓冲层的状态为第二状态(CHANGE);

遍历过滤器中所有缓冲层,设置未命中的缓冲层的状态为第四状态(DORMANT)。

在本实施例中,根据不同的配对情况,准确的分配每帧三维点云中的段数据所对应缓冲层的状态,方便后续飞点的剔除。

在其中的一些实施例中,步骤S223中的根据配对结果,得到目标点云包括如下步骤:

清除所有为第三状态所对应的缓冲层,并按预设优先级从状态为第一状态、第二状态以及第四状态的缓冲层中筛选出目标点云。

具体的,步骤S222至步骤S223可以重复执行。通过前后帧三维点云之间的数据对比,判断出哪些段数据是连续的,哪些段数据突变的(对应第三状态),对于突变的段数据可以直接剔除,完成多帧信息融合,从而在源头上有效减少了飞线的发生。

在其中的一些实施例中,三维点云的处理方法,还包括如下步骤:

对至少两帧目标点云中段数据进行邻域判断,显示具有交叉区域的目标点云。

具体的,在得到目标点云后,通过实时融合的邻域判断的方式,去除飞点,只显示具有交叉区域的目标点云。其中,邻域判断指的是查找邻域信息的过程;以其中一帧作为整体点云;以另外一帧的线数据中的点数据,来判断另外一帧与整体点云是否有交叉区域,如果没有则不参与显示。

下面举例说明:以起始帧的三维点云作为整体点云(在其他实施例中,也可以采用现有的点云作为整体点云);后续帧需要插入到点云容器整体点云中;

步骤S41,遍历后续帧中段数据中的点数据,判断点数据与整体点云否有交叉区域;步骤S42,如果段数据的每一个点数据都无法与现有的点云有交叉区域,那么该段数据加入到整体点云的数据中,但是不参与显示。步骤S42,如果有一个段数据中的点数据,与整体点云有较大交叉区域(大于一个给定的阈值),这个段数据可以显示给用户。

在其中的一些实施例中,整体点云的存储方式不同,具体执行过程也会存在差异。下面以空间分块存储整体点云的方式为例,对显示具有交叉区域的目标点云进行说明:

步骤S51,将后续帧的三维点云A插入到整体点云B中;其中,三维点云A和整体点云B均执行过步骤S210和步骤S220;可以认为三维点云A和整体点云B都经过过滤器的过滤。

步骤S52,定位到三维点云A中的某一个段数据,交叉区域长度清零。

步骤S53,按顺序查找该段数据中的点数据在空间中所对应的分块序列,并判断此分块空间中,是否已经有整体点云B的点数据。

步骤S54,如果没有,转向与该分块空间临近的分块空间,并查询临近的分块空间中是否有整体点云B的点数据。

步骤S55,如果查询失败,转向三维点云A所包含的此段数据中的下一个点数据;再执行步骤S52。如果查询到有整体点云B的点数据,标记此点数据被周围信息支持,交叉区域长度+1,如果已查询到点数据的数量已经大于设定阈值,则跳出循环进入步骤S56。

步骤S56,如果段数据中所有点数据遍历结束,交叉区域长度还无法达到阈值;那么将这些点数据,存入整体点云B所对应的空间中,并刷新空间分块的存储信息,参与下一帧的遍历过程,但是不显示这些点数据,且这一步新增的点数据在之后的流程中也不参与显示。

步骤S57,界面新增显示当前段数据中的点数据。

步骤S58,遍历下一个三维点云A中的段数据,进入步骤S52,直至遍历所有三维点云A中的段数据。

在本实施例中,在整体点云的管理上,通过查找邻域信息的邻域判断,来判断是否存在交叉区域来切换显示,达到是否隐藏飞点的目的。

需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在本实施例中还提供了一种三维点云的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是本实施例的三维点云的处理装置的结构框图,如图4所示,该装置包括:获取模块210和过滤模块220;

获取模块210,用于基于三维扫描仪获取多帧的三维点云;三维点云包括线数据;

过滤模块220,用于逐帧将三维点云输入过滤器中,在过滤器的滤波通道中以线数据中的段数据为过滤单位,对每一帧三维点云中的段数据进行过滤,得到目标点云;过滤器的一个滤波通道对应一条线数据。

通过上述装置,解决了相关技术中单帧遍历的方式,导致计算效率低下,影响整体扫描进程的问题,实现了提高计算效率,加快整体扫描进程。

在其中的一些实施例中,滤波通道的一个缓冲层对应一段段数据。

在其中的一些实施例中,三维点云的处理装置,还包括筛选模块;

筛选模块,用于在基于三维扫描仪获取多帧的三维点云之后,以段数据的长度为筛选条件,筛选出每条线数据中预设数量的段数据。

在其中的一些实施例中,过滤模块220,还用于以第一帧三维点云中线数据对应的段数据初始化过滤器中滤波通道对应的缓冲层;

在过滤器的滤波通道中以线数据中的段数据为过滤单位,将后续每一帧三维点云中的段数据与对应的缓冲层进行迭代配对,得到配对结果;

根据配对结果,得到目标点云。

在其中的一些实施例中,过滤模块220,还用于在过滤器的滤波通道中以线数据中的段数据为过滤单位,将后续每一帧三维点云中的段数据与对应的缓冲层进行配对;

在段数据与一个缓冲层存在唯一交叉区域时;

若差距满足预设阈值,则以当前线数据初始化缓冲层属性,并设置对应缓冲层的状态为第一状态;差距为在相同极限编号下由当前的线数据的中心点和缓冲层属性中的Z值确定;

若差距不满足预设阈值,则以当前线数据初始化缓冲层属性,并设置对应缓冲层的状态为第二状态;

在段数据与多个缓冲层存在交叉区域时;

将交叉区域最大的线数据的差距与预设阈值进行比较,并设置剩余交叉区域对应的缓冲层的状态为第三状态;

在段数据与所有缓冲层不存在交叉区域时;

则新增缓冲层,以当前线数据初始化新增的缓冲层,并设置对应缓冲层的状态为第二状态;

遍历过滤器中所有缓冲层,设置未命中的缓冲层的状态为第四状态。

在其中的一些实施例中,过滤模块220,还用于清除所有为第三状态所对应的缓冲层,并按预设优先级从状态为第一状态、第二状态以及第四状态的缓冲层中筛选出目标点云。

在其中的一些实施例中,三维点云的处理装置,还包括判断显示模块;

判断显示模块,用于对至少两帧目标点云中段数据进行邻域判断,显示具有交叉区域的目标点云。

需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。

在本实施例中还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述计算机设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,基于三维扫描仪获取多帧的三维点云;三维点云包括线数据;

S2,逐帧将三维点云输入过滤器中,在过滤器的滤波通道中以线数据中的段数据为过滤单位,对每一帧三维点云中的段数据进行过滤,得到目标点云;过滤器的一个滤波通道对应一条线数据。

需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。

此外,结合上述实施例中提供的三维点云的处理方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种三维点云的处理方法。

应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。

显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。

“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

技术分类

06120116298088