点击上方“计算机视觉工坊”,选择“星标”
干货第一时间送达
本篇参考翻译林祥国、张继贤的《Segmentation-Based Filtering of Airborne LiDAR Point Clouds by Progressive Densification of Terrain Segments》,点击阅读原文查看该论文。
一、PTD经典算法的不足
在上一篇滤波算法简介中,我介绍了经典的PTD算法,链接在此。PTD算法在商用软件TerraSolid,Lidar360等激光雷达数据处理中被应用。
但是PTD算法有两个很大的局限,
(1)遇到陡坡或者陡坎的时候,通常就不能很好的保留陡坎上的点,如下图所示:
(2)贴近地面的物体的一定高度处会被视作为地面点,比如路面上的车,如下图所示:
二、如何解决PTD经典算法的不足
第一种方式:
激光雷达的数据是一个点一个点聚集起来的数据,里面包含丰富的数据信息:位置、强度,回波、RGB、入射角等信息。在一些研究当中,结合RGB信息可以有效的过滤植被信息,因为植被的NDVI值与地面点的NDVI值有很大的区别;亦或者结合回波信息,也可以过滤植被信息,因为激光雷达回波在植被区域的回波通常是多回波。
第二种方式:
上述方法虽然能把地面点提取准确度提高,但是它始终没有解决掉让我们头疼的两个问题:陡坡或者陡坎,低矮物体,因为他们本质上还是以点为对象考虑滤波。所以有学者就提出是否可以对象分割的方式对地面点进行提取。有实验研究表明:以分割为对象的地面点提取算法可以有效的提取斜坡或者陡坎处的点云。下图展示了激光雷达点云的分割效果。
国内的激光雷达数据软件“点云智绘”(以下点云智绘简称PCA)实现了以分割为对象的地面点提取算法,英文名称为Segmentation-Based Filtering of Airborne LiDAR Point Clouds by Progressive Densification of Terrain Segments,简称SBF。
三、SBF地面点提取步骤
SBF的步骤如下图所示,简单来讲分为4个步骤:
(1)孤立点去除
这里所谓的孤立点是指低点或者高于点云的点,特别是低点,本算法对低点十分敏感,因此需要提前去除。孤立点提取算法是以点为中心以一定的三维半径搜索临近点,如果点数少于指定的点,则就判断为孤立点。PCA中的算法界面如下:
(2)点云分割
这里点云分割采用的基于表面生长的点云分割,大致步骤如下:
① 首先利用 kd-tree求取其k个最临近点,然后利用特征值法求当前点及k 个邻近点构成点集的拟合平面方程,即可确定第i点的法向量φi 及其残差λi;
② 找到残差值最小的作为种子点,搜索d’半径内的点的临近点;
③ 判断当前点与种子点的法向量夹角和当前点当拟合平面的距离r,如果均小于设定值,则加入当前点至种子点队列,并作为新的种子点,继续判别其他的未处理点;
④ 处理完毕之后,同一个队列的种子点为一个分割号。清空,回到第②步。
(3)多回波分析
多回波发生在具有多次反射回波的地方(当然前提是你的激光雷达拥有记录多次回波信息的能力),比如树木。如下图,地面点大部分都是单次回波,而树木的回波有很多。
这就启发我们可以这样对树木进行处理:当把单个树木进行分割后,我们判断分割的点云中多次回波的个数,如果点数大于该分割单元点数量的50%,那么该分割的点云为标记为植被,并且接下来的PTD算法就不会把这些点参与运算判断了,可以节约我们的算法计算时间。
(4)PTD地面点提取
该步与经典的PTD算法相同,不同的地方在于经典的PTD算法是以点为处理单元,而SBF是以分割为单元。什么意思呢?SBF中我们还是以点的原则去判断某个点是否满足预设的阈值条件,但是判断该分割单元是否是地面点的原则是以地面点的与物体点数量多少来判断该分割单元是都是属于地面点还是物体点。
四、实验与评估
4.1 定性分析
4.1.1论文中的实验
实验数据来自ISPRS,总共7个数据集,点云间隔在1-3m。总共有15个参考分类区域对精度进行统计。7个区域采用PTD和SBF进行滤波,下图表1是每个区域采用的参数,表2是PTD与SBF算法识别的地面点与物体点的数量统计,表2 的“O”代表物体,“S”代表种子点,“G”代表地面点。
通过表2我们可以得出如下结论:
(1)SBF识别了更多的物体点;
(2)SBF识别了更多的地面点;
(3)更多的地面点也就带来更多的地面细节。
我们也可以从下图中看出来,左图(SBF方式)比右图(PTD)有着更多的地面点。
下图中(b)是参考DEM,(c)是PTD生产的DEM,(e)是SBF生产的DEM。我们可以发现SBF的地面点滤波效果较好,细节较多。
下图中,左图是PTD方法生成的DEM,右图是SBF生成的DEM。红圈处是车辆,我们可以发现SBF对其移除的效果较好。
4.1.2 我的实验
实验数据下载自https://opentopography.org/。区域位于美国,地形特征为丘陵,地形高差为200m,测区有山,居民地,树木,河流等。该数据我主要测试对陡坎的识别能力,图中红色框处。
使用Lidar 360(采用的是PTD方法)与PCA(采用的是SBF方法)进行滤波,地形角度,迭代角度,迭代距离参数一样。
采用Lidar 360效果(左)与PCA效果(右)。SBF在陡坎处的滤波效果更好。
4.1.3 SBF的不足
(1)对于贴近地面过小的物体过滤能力不足,比如矮小的房屋
(b)为参考DEM,(c)PTD提取的DEM,(e)SBF提取的DEM
(2)横跨地面的桥梁识别能力不足
(b)参考DEM,(c)PTD提取的DEM,(e)SBF提取的DEM。
(3)处理时间SBF基本是PTD的2-5倍,这与SBF多出了分割步骤有关。
4.2 定量分析
按照Type I 和Type II 和总误差来统计分类精度,得出表3。图中红色的代表某个误差值较小的算法类别。
由上表我们可以得出如下结论:
(1)Type I :SBF<PTD
I 类错误SBF较小的原因在于能够识别更多的种子点和地面点。
(2)Type II:SBF>PTD
II类错误,SBF较大的原因也在于识别出了更多的地面点(错误的也囊括进)。
(3)T:SBF<PTD
综合起来SBF算法滤波效果更好。
(4)人工编辑量
SBF<PTD。因为
I 类错误较小,意味着不用手动添加更多地面点;
T总误差较小,总工作量较小。
你可能会疑问II类错误SBF很大。其实编辑II类错误比编辑I类错误的难度小多了,毕竟II类错误很明显。
五、总结
SBF与PTD算法各有优劣,但是SBF算法总体精度好于PTD算法。特别是能够保留更多的地面点细节,尤其是在陡坎处。
本文仅做学术分享,如有侵权,请联系删文。
下载1
在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。
下载2
在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。
下载3
在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。
重磅!计算机视觉工坊-学习交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~