常见点云滤波算法

姓名:张志文 学号:19021210649
【嵌牛观察】
目前点云处理的算法十分的多,不同的滤波算法有着不同的应用方向
【嵌牛鼻子】
点云;滤波
【嵌牛提问】
常见的点云滤波算法有哪些?
【嵌牛正文】

常见点云滤波

点云滤波作为常见的点云处理算法,一般是点云处理的第一步,对后续处理有很重要作用。滤波有很多方面也有很多种功能,比如去除噪声点、离群点、点云平滑以及空洞、数据压缩等。下面我们来列举一下,我们在开源项目中可以找到的滤波算法:

  • 直通滤波器
  • 体素滤波器
  • 统计滤波器
  • 条件滤波
  • 半径滤波器
  • 双边滤波
  • 高斯滤波
  • 均匀采样滤波
  • 移动最小二乘法光滑滤波
  • 基于权重局部优化投影 (WLOP) 简化算法
  • DoN算法
  • 以及各种通过规则进行点调整或者删除的都可以成为滤波算法
image

下面对上面列举出来的一部分进行解释。

滤波算法原理

  • 直通滤波器

直通滤波器就是根据点云的属性(属性比如x,y,z,颜色值等),在点的属性上设置范围,对点进行滤波,保留范围内的或保留范围外的。

举例:在一个rgbd数据中,只想保留深度值小于5米的数据,就可以通过直通滤波器来保留z属性小于5米的点云。

开源代码库:PCL

  • 体素滤波器

体素的概念类似于像素,使用AABB包围盒将点云数据体素化,根据体素中的点,计算出代表这个体素的点,达到下采样的目的。体素滤波器可以达到向下采样同时不破坏点云本身几何结构的功能,但是会移动点的位置。此外体素滤波器可以去除一定程度的噪音点及离群点。主要功能是用来进行降采样。

特点:可以将点云降采样至同一间距,初始密度影响不大,主要根据设置体素的大小。

image

开源代码库:PCL

  • 均匀采样滤波

均匀采样滤波基本上等同于体素滤波器,但是其不改变点的位置。下采样后,其点云分布基本均匀,但是其点云的准确度要好于体素滤波,因为没有移动点的位置。

开源代码库:PCL

  • 统计滤波器

统计滤波器用于去除明显离群点。离群点特征是在空间中分布稀疏。考虑到离群点的特征,则可以定义某处点云小于某个密度,既点云无效。计算每个点到其最近的k个点平均距离。则点云中所有点的距离应构成高斯分布。根据给定均值与方差,可剔除方差之外的点。即使方差之外的点是正确点,但是其太稀疏,带来的信息也是很少的。

特点:主要是根据密度去除离群点,对密度差异较大的离群点去除效果较好。

image

开源代码库:PCL

  • 条件滤波

条件滤波器通过设定滤波条件进行滤波,有点分段函数的味道,当点云在一定范围则留下,不在则舍弃。直通滤波器是一种较简单的条件滤波器。条件滤波器更像是一个不带有滤波核的工具。

开源代码库:PCL

  • 半径滤波器

半径滤波器与统计滤波器相比更加简单粗暴。以某点为中心画一个圆计算落在该圆中点的数量,当数量大于给定值时,则保留该点,数量小于给定值则剔除该点。此算法运行速度快,依序迭代留下的点一定是最密集的,但是圆的半径和圆内点的数目都需要人工指定。

主要还是用于去除离群点,在一定程度上可以用来筛选边缘点。

开源代码库:PCL

  • 高斯滤波

高斯滤波是一种非线性滤波器,采用加权平均的方式。在指定域内的权重是根据欧式距离的高斯分布,通过权重加权平均的方式得到当前点的滤波后的点。

特点:高斯滤波平滑效果较好但是边缘角点也会被较大的平滑。

开源代码库:PCL

pcl::PointCloud<pcl::PointXYZRGB>::Ptr inputCloud,cloud; 
pcl::filters::Convolution<pcl::PointXYZRGB, pcl::PointXYZRGB> convolution; 
Eigen::ArrayXf gaussian_kernel(5); 
gaussian_kernel << 1.f/16, 1.f/4, 3.f/8, 1.f/4, 1.f/16; 
convolution.setBordersPolicy(
       pcl::filters::Convolution<pcl::PointXYZRGB, pcl::PointXYZRGB>::BORDERS_POLICY_IGNORE); 
convolution.setDistanceThreshold (static_cast<float> (0.1)); 
convolution.setInputCloud (inputCloud); 
convolution.setKernel (gaussian_kernel); 
convolution.convolve(*cloud); 

  • 双边滤波

双边滤波是一种非线性滤波器,它可以达到保持边缘、降噪平滑的效果。一定程度上拟补了高斯滤波的缺点。双边滤波对高斯噪声效果比较好。

双边滤波从单纯的考虑空间域点的位置的高斯滤波上,又加上一个维度上的权重。在点云处理上,可以叫做为特征域,即当前点的法向量与临近点的法向量。通过改变两个域上的高斯滤波的方差来平衡平滑效果以及保持边缘的效果。具体的公式也需要一篇文章来解释。

开源代码库:CGAL,PCL(两个实现的方式不同,CGAL的效果更好)

  • 移动最小二乘法光滑滤波

移动最小二乘法光滑滤波思路很简单,就是根据点云,找到一个函数,这个函数有一系列的局部的函数组成(这个工作是通过移动最小二乘法完成的,可能需要一篇文章来解释移动最小二乘法),这个函数的特性是光滑的,然后将点投影到函数上,就完成了平滑的目的。

开源代码库:PCL、VCGLIB、CGAL

  • 基于权重局部优化投影 (WLOP) 简化算法

wlop是一种点云增强方法,可以消除噪声、删除外点并得到均匀的采样密度。这个原理比较复杂,暂时还没看懂其实现流程。先看一张效果图:

image.png

开源代码库:CGAL

  • DoN算法

DoN(Difference of Normal),利用了多尺度空间的思想,算法的目的是在去除点云低频滤波(或者保留高频信息),低频信息(例如建筑物墙面,地面)往往会对分割产生干扰,高频信息(例如建筑物窗框,路面障碍锥)往往尺度上很小,直接采用基于临近信息的滤波器会将此类信息合并至墙面或路面中。算法如下:

  1. 在小尺度上计算点云法线1
  2. 在大尺度上计算点云法线2
  3. 法线1-法线2
  4. 滤去3中值较小的点(低频信息,较平坦的部分,如墙面地面等)
  5. 欧式分割(将高频信息分开)

此算法的目的可以较好的分开高频信息和低频信息。

开源代码库:PCL(没有直接实现,很容易实现)

总结

所谓滤波器,其实主要通过局部计算的方式,获得一个响应值,然后根据响应值调整点云,比如位置调整,保留或删除某点。跟图像上的滤波器思想还是一样的,只不过在点云里面,存在无序点云罢了。

当没有一个滤波器能完整达到要求时,我们通过组装多个滤波器达到更复杂的功能。偏向应用的算法工程师可能完成一个需求要叠加很多个滤波器,其实CNN不也是一堆滤波器的组装嘛。

本文内容为转载,版权归作者所有

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,423评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,147评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,019评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,443评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,535评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,798评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,941评论 3 407
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,704评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,152评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,494评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,629评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,295评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,901评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,978评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,333评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,499评论 2 348

推荐阅读更多精彩内容

  • 本博客内容来源于网络以及其他书籍,结合自己学习的心得进行重编辑,因为看了很多文章不便一一标注引用,如图片文字等侵权...
    开飞机的乔巴阅读 7,964评论 0 10
  • 1. 需要进行滤波的4种情况 1 点云数据密度不规则2 离群点(比如由于遮挡等原因噪声的)3 下采样4 噪声 2....
    红缕鱼与绿缕鱼与驴阅读 7,330评论 0 3
  • 分成7步对 Lidar 的流程进行叙述: 1.坐标及格式转换 Apollo 使用了开源库Eigen进行高效的矩阵计...
    爱叫啥叫啥去阅读 9,873评论 1 2
  • 到目前为止,我能想到最浪漫的事,就是和他一起撑伞漫步雨中。 雨,是那种不大不小,密度刚刚好,打在伞上听上去“嗒叭嗒...
    窝窝的特殊时光阅读 314评论 0 0
  • 是从巧家出发,因为雨天,车速较慢,耗时4个小时才到四川大凉山州西昌市中心。途经西昌海拔最高地螺髻山,这里刚下过雪,...
    小巧人儿阅读 164评论 0 0