三维点云处理:5滤波:降采样

一、序:

我们收集到的点云信息往往包含很多实际上并不存在的点,这些点会很大程度上影响我们对于点云的处理。因此需要我们设计不同的滤波器来去噪。

二、去噪:

三维点云处理:5滤波:降采样_第1张图片
Ps:BF双边滤波,MED 中值滤波,AVE均值滤波

2.1 Radius Outlier removel(离群值清除):
思想:**如果不是噪声,那么它的附近将会有不少的点,而噪声附近点的数量应该明显少于有用点附近点的数量。**所以有:

1、对于每个点,取其邻域;
2、如果邻域内的点小于K(自己设定一个K值),删除这个点。
三维点云处理:5滤波:降采样_第2张图片

2.2 Statistical Outlier Removal(统计离群值清除):
Statistical Outlier Removal是Outlier Removal的升级版本,不再根据数量的多少,而是依据邻域内每个点到其他距离的信息来确定是否予以删除。
1、对于每个点,取其邻域;
2、计算这个点到它邻域内每个点的距离。dij
3、计算均值和方差
4三维点云处理:5滤波:降采样_第3张图片
结果:图中噪声被去除,每个点到它附近点的数据也比较平缓了。三维点云处理:5滤波:降采样_第4张图片

三、几种降采样方法:

A: Voxel Grid Downsampling
目的:降低点的数量
思想:
1、划分为若干个均等的格子
2、每个格子中取一个点保留,或者随机取,这种办法可以更快,但是精度低;或者取平均值,有的点不可以取均值,比如人和牛的点,对于这种点,我们可以进行投票等操作,这种办法可以更加精确,但是更慢。
流程:
1、找一个“巨大”的、能将所有点都框在内的网格;
2、选出每个小格子的大小;
3、计算每个方向上被划分出了多少个小格子;
4、计算每个点会落在哪个格子中;
5、依据第四步中的每个格子中点的数量多少进行排序;
6、在每个格子中取一个点保留。
三维点云处理:5滤波:降采样_第5张图片
排序复杂度:
在这里插入图片描述
然而点云分布稀疏,数量众多,百万千万级别的点云也是有的,对其进行排序花费时间空间都很大。此时,我们可以用哈希表将点映射到100个容器中去。
方法:
前四步和降采样是一样的:
1、找一个“巨大”的、能将所有点都框在内的网格;
2、选出每个小格子的大小;
3、计算每个方向上被划分出了多少个小格子;
4、计算每个点会落在哪个格子中;
5、使用哈希表将每个点映射到不同的容器中;
6、保留一个点。
三维点云处理:5滤波:降采样_第6张图片
此处的哈希冲突:
不同的点映射到同一个容器中,极有可能会被丢弃掉。
解决办法:
1、先将原先的点释放,随机选一个点进行输出;
2、清空容器,新来的进入容器。
B: Farthest Point Sampling(FPS)
1、随机挑选一个点作为初始点;
2、迭代出我们想要的点:计算距离已选点的距离之和最远的点,将其选入FPS集合。
三维点云处理:5滤波:降采样_第7张图片
C:Normal Space Sampling(NSS):
法向量上面的降采样,为了保持其局部的特征,针对于点云的对齐而采用。
三维点云处理:5滤波:降采样_第8张图片
1、先在法向量的空间里建一堆容器;
2、依据平面法向量将所有点放入容器中;
3、在每个容器中都挑选出同等数量的点。
D:使用 深度学习降采样
通过语义分析实现降采样的点,而不是几何分析。
输入→神经网络→输出降采样的点→输入分类网络
三维点云处理:5滤波:降采样_第9张图片
三维点云处理:5滤波:降采样_第10张图片
通过给予一点过的几何意义上的限制,使得降采样后的点具有和降采样之前相似的几何状态:
三维点云处理:5滤波:降采样_第11张图片
参考文献:在这里插入图片描述
这种办法用于分类的准确率大大高于前两种,尤其是在最后的点数较少的情况下。
应用:Normalized Reconstructed Error (降采样后的重构差异)
三维点云处理:5滤波:降采样_第12张图片

四、上采样:

Bilateral Filter–Gaussion Filter
三维点云处理:5滤波:降采样_第13张图片
将红心点附近点的RGB信息的加权平均它替换为红心点的RGB信息:距离红心点更近的点就给一个更大的权重。三维点云处理:5滤波:降采样_第14张图片
参考文献:在这里插入图片描述
以上公式和图片基本来自于老师上课PPT,小部分参考别的博主,仅作为存稿、学习,交流使用,不得进行商业化活动。
觉得有用记得下面点赞呀~

你可能感兴趣的:(三维点云处理学习笔记+代码,人工智能,算法)