KPConv点云输入方式
在KPconv中,有两种数据输入方式。一种是随机输入,一种是基于能量的输入方式。本文将介绍基于能量的输入方式,其类似一种泊松环的点云处理方式。
使用的实例数据集是isprs vaihingen3d 数据集
- 其主要是通过将原始点云O进行格网降采样为点云集合S,在点云S再次降采样为点云集合E,点云集合E的属性除了XYZ外还有能量值,每个点随机赋予0-0.001。
- 对点云S建立KD树。
- 针对E点云每次以E中能量最低的点,并加噪声偏移,以R为半径(isprs vaihingen15米)获取其内的点云集合e_sub;
- 将点云e_sub按球心坐标进行归一化,距离球心距离为r;
- 对e_sub集合中每个点E(i)的能量值进行累加能量值:E(i)+=(1-(r(i)/R)2)2
- 通过球心、借助采样点云S的Kdtree寻找在R半径内的点云集合s_sub;
- 将s_sub输入网络进行预测,但只保留更小球体(添加MASK)的点集预测结果:ratio*R eg.ratio=0.75
- 针对点云S的每一个点S(i)的预测结果,进行历史累加,E(i)=smooth*E(i)+(1-smooth)*E_new(i) smooth=0.95
- 选取E能量最低的点,循环上述操作,直至整个能量点集E中的最小值E(i)> 0.5停止
- 此时第一次采样点云S已经有预测结果,若想得到更稳妥的结果,可以控制E(i)的最小值阈值
- 将原始点云O通过采样后点云集合S的KD树,寻找最近的标签赋予O。