3D感知(数据处理)
数据滤波与过滤:
滤波:叠加噪声数据的值进行修正,不去出噪声
过滤:去除噪声
3D数据滤波的方式:
基于深度图的滤波:
这里主要应用的是2D的CV算法,但是深度图对物体表面的采样是非均匀的(这是深度图的缺陷),所以传统的2D滤波对他们是不均匀的,并且在前后交界处失真会对后续处理带来影响
(在深度图滤波是针对相邻像素的,像素映射到点云空间中,会有距离不均匀的问题,所以说物体采样是非均匀的)
但是由于在深度图上操作比较简单,所以对上面的缺点,会采取一些处理来缓和带来的影响。
其一,针对边界的情况不进行滤波处理;
其二,根据曲面的局部法向量修改滤波核
下面是深度图的空域滤波(就是传统滤波),这里要求滤波模板的加权系数和==1
右图是滤波过后的。
还有中值和双边滤波,效果各有不同。类似二维图像处理。
对于差异加权项,可以采用不同的方案
以上是空域滤波对应的还有时域滤波的方法。
一般的有时域平均滤波,时域FIR滤波,IIR滤波(有损滤波器,结合当前输入的深度图和之前的深度图,通过遗忘因子,来控制滤波的效果,这个滤波会有拖尾现象)
还有是结合空域和时域的方法,叫做时空滤波。(可以滤波,并且解决拖尾现象)
点云滤波:
直接在点云上滤波,由于缺少了类似像素这样的结构,所以可以通过三角化来引入邻域,再选择合适的滤波。
常见的如Laplacian平滑(类似卷积核的操作)
对此也有相应的变体。
还有一个是基于移动最小二乘的方法。(对待平滑的点,利用它的邻域点云拟合光滑曲面,并用曲面上的点作为平滑结果)
依次类比3D的情况。这里会有一个问题,再映射的时候是基于x,y,z坐标系的那么,会有下面的情况:
对此改进措施:
再点云上具体的操作步骤,可以有一下步骤:
基于深度图的噪声点过滤
深度图转化成点云后,再边界处经常会有飞边出现:
对此,采用基于深度图的噪声点的过滤方法有
1.深度图边缘检测核切割,类似形态学处理的思想:
2.基于深度图邻域像素值的方差的过滤:
再点云层次上滤波,可以用统计滤波的方式,对于这种离散点效果最好了。
点云降采样:
体像素格点降采样,类似于PCL的包围盒降采样算法。
最远距离点抽取算法
最远距离点抽取算法:
这个是基于三角网格的采样方法。