超体素分割(过分割)详细过程

参考:《Voxel Cloud Connectivity Segmentation - Supervoxels for Point Clouds》和《基于超体素区域增长的点云分割算法研究》

超体素分割的目的:

将具有相似特征属性的点云或体素聚类成一个区域,从而减少啥三维空间中对三维数据操作的计算量。可作为在三维空间中后续操作的预处理过程。

流程概括:

首先,将无组织的点云体素化处理得到具有固定分辨率的体素云,在体素空间内考虑体素之间的 26 邻域建立邻接关系图。利用邻接图,从种子体素开始向外逐层遍历相邻体素,计算邻接体素与当前超体素的相似性距离,利用流约束的聚类算法将体素聚类得到均匀光滑、依附于目标边界的超体素。

其次,通过平面拟合所有的超体素计算得到对应的残差值,用残差值近似曲率来确定初始的种子超体素,残差值最小的超体素被选为初始种子,并且设定固定的阈值来筛选其他的种子超体素。然后,对每个超体素提取衡量表面几何特征和光滑程度的特征向量,通过归一化距离值来测量相邻超体素之间的相似性。

其中必要概念词解释:

(1)体素云:

每个立方体内(体素)的中心点或者质心点来表达相应的体素立方体,所有中心点或者质心点形成的数据集即为体素云数据。(一个体素中可能含有多个原始的点云数据,然后再利用体素云的概念,可以实现对原始大量点云的下采样,在实现大量减少点云数据的同时,保持点云数据的表面形状特征和几何结构,能够加快系统对点云数据的处理速度)

(2)超体素数据(supervoxel):

(类似于超像素)是一种将具有相似特征属性的体素数据聚类成一个区域的数据。超体素的获取过程即体素数据的聚类过程,其基本原理是对局部范围内满足相似性约束的体素数据的融合,根据纹理、颜色、法线等相似属性将体素云数据划分为相应的超体素,用于研究体素簇之间的关系,便于相应的后续操作。可以作为三维体素空间后续许多任务的预处理阶段任务。

(3)体素空间内的集中拓扑结构:

点云数据经过体素化处理后,在空间内存在三种拓扑结构:6邻接、18邻接和26邻接。

在这里插入图片描述

从左至右依次是6、18和26邻接。

(4)快速点特征直方图(FPFH):

FPFH 是一种几何特征描述符,考虑局部范围内所有点之间的位置影响和法线关系,描述局部范围内数据的几何特征,具有位置信息不变性的特点。

快速点特征直方图的计算过程如下:

首先确定中心点P与邻域点之间的法线偏差。法线偏差可以用法线之间的角度值进行表示,该步骤的结果为简化的点特征直方图(Simplified Point Feature Histogram,SPFH) 。然后,根据相同的方法,查找中心点所有邻域点的邻域范围,计算每个邻域点邻域范围内的 SPFH,则中心点 P 的 FPFH 的计算方式:
在这里插入图片描述

其中,k表示权值, 可以利用中心点距离邻域点的空间距离来近似表示权值。

(简单概况就是首先计算中心点的法线偏差,然后再计算中心点的邻域点的法线偏差,在根据公式计算得出中心点的FPFH)

在其他三维任务前加上超体素分割的优点:

(1)有效的降低噪声点电荷异常值对后续算法的干扰。

(2)过分割处理得到的超体素具有良好的边界依附性,在此基础上再进行物体的语义分割等任务更加容易(对于相连的物体来说边界更加明显)。

过分割(超体素分割)的详细流程:

在这里插入图片描述

该方法首先对点云数据进行体素化处理得到体素云, 并且在体素空间下利用网格化处理来筛选种子体素,为后续聚类算法进行初始化。然后,通过考虑体素数据的空间位置和特征属性,设计邻接体素之间的距离度量。最后,利用基于流约束的聚类算法将体素云过分割得到超体素。(注:为什么叫流约束,因为其整个过程是从中心的种子体素开始逐渐向外流动遍历和生成聚类的,同那种基于K-mean均值聚类的方法相区分开)**

(1)体素化处理:将整个点云空间按照一个一个体素进行分割,(其中每个体素中可能包含多个原始点云),然后再生成体素云(体素空间的几何中心或者质心的点)。此时体素化可能会产生一个分辨率(即体素的长宽高的数值)

(2)网格化筛选:利用网格化操作来筛选种子体素,为聚类算法进行初始化。(此时网格化也产生了一个网格化的分辨率,)数值网格化分辨率,选择网格内最接近中心的体素作为初始化种子体素。对于初始的候选种子体素进行过滤去噪处理,删除体素空间下孤立的种子点,保留位于物体表面上的种子体素,对于每个体素种子,建立一个半径为Rsearch的搜索区域,计算该种子点在该邻域半径Rsearch下的体素数目,删除表面与搜索范围内香蕉区域内体素数目小于固定阈值的种子体素。

注:网格的分辨率大小与超体素的大小成正比关系。

(3)特征与距离度量:

在上述初始化的基础上,综合考虑点云数据的边缘属性、几何特征和空间距离来衡量体素之间的相似性,在 37 维的特征空间下对体素数据进行聚类,其中包括曲率值、XYZ 三维空间和 33 维的点特征空间。体素数据在 37 维特征空间下的特征向量定义为:

在这里插入图片描述

其中,x, y ,z 是空间三维坐标;c 表示体素数据的曲率值;FPFH1…33为快速点特征直方图(Fast Point Feature Histograms,FPFH) ,该直方图是由 33 个浮点数组成的特征向量。

这些特征主要是应用于对这个距离的计算,因为下面迭代的时候,我们要选择该距离最短的的点作为标记对象。

距离度量:(除了利用上述的特征之外,在聚类的过程中还将体素之间的距离考虑进来)

其中有一个新的距离的计算公式,见下表。

(4)超体素聚类分割:(最终得到超体素)

利用流约束的聚类算法对体素数据进行过分割处理。

(a) 依据邻接关系图确定邻接体素之间的遍历顺序, 从距离聚类中心最近的体素向外搜素。
在这里插入图片描述

(b) 利用(3-3)距离公式计算邻接体素与种子体素之间的相似性距离, 并对距离最近的体素进行标记。
(c) 将邻接体素添加到遍历列表中,逐层向外搜索邻接体素。计算邻接体素与聚类中心内所有体素的距离均值,对平均距离最近的体素进行标记。然后将标记后的体素的邻接体素添加到所搜队列中,然后继续到下一个超体素。
(d) 重复步骤(c) ,向外逐层搜索并处理下个体素,直到搜索到达当前超体素的网格边界,使得从中心向外的所有体素均得到遍历,迭代停止。
(e) 聚类算法的终止条件为:邻接图中的所有体素均得到遍历,或者遍历列表中的体素均不满足被标记条件。
(f) 当所有体素的邻接图搜索结束后, 对上述执行过程中的聚类中心进行更新,直到聚类中心稳定或者达到最大迭代次数为止。
需要注意的是,聚类过程中的相似性距离值,是指当前邻接体素与已经标记为超体素内的所有体素之间相似性距离的均值。
在上述聚类过程中,所有标记过程都是从超体素的中心点,即该超体素的种子体素开始,按照相同的速率由内向外逐层进行遍历。将邻接关系图转化为树形结构,在流约束的聚类过程中,按照广度优先遍历的顺序对体素数据进行遍历。

点云数据的超体素过分割算法流程:

在这里插入图片描述

  • 17
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值