Surface Normal表面法向量
surface normal on 3D point cloud
-
选择一个点P
-
找点P的领域定义表面(领域半径大:法向量平滑 但会被无关点影响 领域半径小:精确描述 但受噪声影响)
-
PCA
-
寻找特征值最小的向量(法向量即每个点投影上去都是0)
-
计算曲率
deep learing about surface normal
-
Nesti-Net CVPR2019:
- 选取不同大小的领域
Filter
- 噪声去除
- 下采样(比如某个物体只需要10个点描述 原来有100个 就可以下采样减少计算量)
- 上采样(图像不能被点云填满 需要上采样将点云变得稠密(双边滤波))
噪声去除
Radius Outlier Removal
- 选择一个点 指定领域半径r
- 如果领域里的点少于一定值则去除这个点
Statistical Outlier Removal
- 取领域
- 计算领域里的点到这点的距离 假设服从高斯分布 并算出平均值和方差
- 通过统计去除点
下采样
Voxel Grid Downsampling
- 区域内均值或者随机选点
- 均值
- 随机选点
-
伪代码:
-
1定义最大值
-
2定义分辨率 r 即小框框
-
3计算每个维度的格子数
-
4计算每个点落在哪个区域 计算h
-
根据h排序
-
Farthest Point Sampling(FPS)
- 取点并使之与其他已选点距离最远
- 目的是降低稠密不分的密度
Normal Space Sampling(NSS)
- 防止细节丢失 注重不同方向的法向量的点 用于点云对齐
- 1 建立一堆不用方向法向量的容器
- 2 点丢进容器
- 3 每一个容器都采用一定的点下采样
Learing to Sample
- 通过下采样的点依旧能被分类器分类出来的思想训练
三种方法效果对比
- 计算准确率
- NRE
上采样
Gaussian Filter
-
高斯模糊
-
选定一个像素
-
取领域的rgb值加权平均并替换所选像素的rgb值
-
权值即为高斯核
-
双向滤波 Bilateral Filter
- 采用两个高斯核
- 综合考虑颜色Gor和距离Gos的影响
点云上采样
- 让点云变得稠密
- 分别是使用双边滤波 中值滤波和均值滤波的效果