当前位置:首页 » 操作系统 » 点云填充算法

点云填充算法

发布时间: 2024-04-04 07:26:42

㈠ 标题 点云数据三种采集方法的优缺点

格点采样、均匀采样、几何采样。
1.格点采样:优点:效率非常高。采样点分布比较均匀,但是均匀性没有均价采样高,可以通过格点的尺寸控制点间距。缺点:不能精确控制采样点个数。
2.均匀采样:优点:采样点分布均匀。缺点:算法时间复杂度有些高,因为每次采样一个点,都要计算集合到集合之间的距离。
3.几何采样:优点:计算效率高,采样点局部分布是均匀的,稳定性高:通过几何特征区域的划分,使得采样结果抗噪性更强。
点云数据(point cloud data)是指在一个三维坐标系统中的一组向量的集合。扫描资料以点的形式记录,每一个点包含有三维坐标,有些可能含有颜色信息(RGB)或反射强度信息。

㈡ 点云滤波相关

复制于:https://zhuanlan.hu.com/p/102748557

介绍

主要方法

直通滤波(PassThrough 滤波)

VoxelGrid滤波器对点云进行下采样

均匀采样

增采样

statisticalOutlierRemoval滤波器移除离群点

使用参数化模型投影点云

ConditionalRemoval

RadiusOutlinerRemoval 移除离群点

从一个点云中提取索引 根据点云索引提取对应的点云

介绍

点云滤波,顾名思义,就是滤掉噪声。原始采集的点云数据往往包含大量散列点、孤立点,在获取点云数据时 ,由于设备精度,操作者经验环境因素带来的影响,以及电磁波的衍射性,被测物体表面性质变化和数据拼接配准操作过程的影响,点云数据中讲不可避免的出现一些噪声。在点云处理流程中滤波处理作为预处理的第一步,对后续的影响比较大,只有在滤波预处理中将噪声点 ,离群点,孔洞,数据压缩等按照后续处理定制,才能够更好的进行配准,特征提取,曲面重建,可视化等后续应用处理。其类似于信号处理中的滤波,

点云滤波方法主要有:

1. 直通滤波器pcl::PassThrough<pcl::PointXYZ> pass

2. 体素格滤波器pcl::VoxelGrid<pcl::PCLPointCloud2> sor;

3. 统计滤波器    pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;

4. 半径滤波器    pcl::RadiusOutlierRemoval<pcl::PointXYZ> outrem;

5. 双边滤波  pcl::BilateralFilter<pcl::PointXYZ> bf;

      该类的实现利用的并非XYZ字段的数据进行,而是利用强度数据进行双边滤波算法的实现,所以在使用该类时点云的类型必须有强度字段,否则无法进行双边滤波处理,双边滤波算法是通过取临近采样点和加权平均来修正当前采样点的位置,从而达到滤波效果,同时也会有选择剔除与当前采样点“差异”太大的相邻采样点,从而保持原特征的目的 。

6. 高斯滤波    pcl::filters::GaussianKernel< PointInT, PointOutT > 

    是基于高斯核的卷积滤波实现  高斯滤波相当于一个具有平滑性能的低通滤波器

7. 立方体滤波 pcl::CropBox< PointT>   

  过滤掉在用户给定立方体内的点云数据

8. 封闭曲面滤波 pcl::CropHull< PointT> 

    过滤在给定三维封闭曲面或二维封闭多边形内部或外部的点云数据       

9. 空间剪裁:

        pcl::Clipper3D<pcl::PointXYZ>

        pcl::BoxClipper3D<pcl::PointXYZ>

        pcl::CropBox<pcl::PointXYZ>

        pcl::CropHull<pcl::PointXYZ> 剪裁并形成封闭曲面   

10. 卷积滤波:实现将两个函数通过数学运算产生第三个函数,可以设定不同的卷积核

        pcl::filters::Convolution<PointIn, PointOut>

        pcl::filters::ConvolvingKernel<PointInT, PointOutT> 

11. 随机采样一致滤波

    等,

    通常组合使用完成任务。

PCL中点云滤波的方案

点云数据密度不规则需要平滑

因为遮挡等问题造成离群点需要去除

大量数据需要下采样

噪声数据需要去除

对应的方案如下

按照给定的规则限制过滤去除点

通过常用滤波算法修改点的部分属性

对数据进行下采样

去除噪音

直通滤波(PassThrough 滤波)

最简单的一种滤波器,它的作用是过滤掉在指定维度方向上取值不在给定值域内的点。直通滤波器的实现原理如下:首先,指定一个维度以及该维度下的值域,其次,遍历点云中的每个点,判断该点在指定维度上的取值是否在值域内,删除取值不在值域内的点,最后,遍历结束,留下的点即构成滤波后的点云。直通滤波器简单高效,适用于消除背景等操作。

#include <pcl/filters/passthrough.h>

  如果使用线结构光扫描的方式采集点云,必然物体沿z向分布较广,

  但x,y向的分布处于有限范围内。

  此时可使用直通滤波器,确定点云在x或y方向上的范围,

  可较快剪除离群点,达到第一步粗处理的目的。

结果:

VoxelGrid滤波器对点云进行下采样

使用体素化网格方法实现下采样,即减少点的数量 减少点云数据,并同时保存点云的形状特征,在提高配准,曲面重建,形状识别等算法速度中非常实用,PCL是实现的VoxelGrid类通过输入的点云数据创建一个三维体素栅格,容纳后每个体素内用体素中所有点的重心来近似显示体素中其他点,这样该体素内所有点都用一个重心点最终表示,对于所有体素处理后得到的过滤后的点云,这种方法比用体素中心(注意中心和重心)逼近的方法更慢,但是对于采样点对应曲面的表示更为准确。

在网格内减少点数量保证重心位置不变

下采样 同时去除 NAN点

  如果使用高分辨率相机等设备对点云进行采集,往往点云会较为密集。

  过多的点云数量会对后续分割工作带来困难。

  体素格滤波器可以达到向下采样同时不破坏点云本身几何结构的功能。

  点云几何结构 不仅是宏观的几何外形,也包括其微观的排列方式,

  比如横向相似的尺寸,纵向相同的距离。

  随机下采样虽然效率比体素滤波器高,但会破坏点云微观结构.

  使用体素化网格方法实现下采样,即减少点的数量 减少点云数据,

  并同时保存点云的形状特征,在提高配准,曲面重建,形状识别等算法速度中非常实用,

  PCL是实现的VoxelGrid类通过输入的点云数据创建一个三维体素栅格,

  容纳后每个体素内用体素中所有点的重心来近似显示体素中其他点,

  这样该体素内所有点都用一个重心点最终表示,对于所有体素处理后得到的过滤后的点云,

  这种方法比用体素中心(注意中心和重心)逼近的方法更慢,但是对于采样点对应曲面的表示更为准确。

结果:

结果不太明显,换一个:

均匀采样 pcl::UniformSampling

这个类基本上是相同的,但它输出的点云索引是选择的关键点,是在计算描述子的常见方式。

  原理同体素格 (正方体立体空间内 保留一个点(重心点))

  而 均匀采样:半径求体内 保留一个点(重心点)

  #include <pcl/filters/uniform_sampling.h>//均匀采样

增采样 setUpsamplingMethod

增采样是一种表面重建方法,当你有比你想象的要少的点云数据时,

  增采样可以帮你恢复原有的表面(S),通过内插你目前拥有的点云数据,

  这是一个复杂的猜想假设的过程。所以构建的结果不会百分之一百准确,

  但有时它是一种可选择的方案。

  所以,在你的点云云进行下采样时,一定要保存一份原始数据!

statisticalOutlierRemoval滤波器移除离群点

作用是去除稀疏离群噪点。在采集点云的过程中,由于测量噪声的影响,会引入部分离群噪点,它们在点云空间中分布稀疏。在估算点云局部特征(例如计算采样点处的法向量和曲率变化率)时,这些噪点可能导致错误的计算结果,从而使点云配准等后期处理失败。统计滤波器的主要思想是假设点云中所有的点与其最近的k个邻居点的平均距离满足高斯分布,那么,根据均值和方差可确定一个距离阈值,当某个点与其最近k个点的平均距离大于这个阈值时,判定该点为离群点并去除。统计滤波器的实现原理如下:首先,遍历点云,计算每个点与其最近的k个邻居点之间的平均距离;其次,计算所有平均距离的均值μ与标准差σ,则距离阈值dmax可表示为dmax=μ+α×σ,α是一个常数,可称为比例系数,它取决于邻居点的数目;最后,再次遍历点云,剔除与k个邻居点的平均距离大于dmax的点。

#include <pcl/filters/statistical_outlier_removal.h>

  统计滤波器用于去除明显离群点(离群点往往由测量噪声引入)。

  其特征是在空间中分布稀疏,可以理解为:每个点都表达一定信息量,

  某个区域点越密集则可能信息量越大。噪声信息属于无用信息,信息量较小。

  所以离群点表达的信息可以忽略不计。考虑到离群点的特征,

  则可以定义某处点云小于某个密度,既点云无效。计算每个点到其最近的k(设定)个点平均距离

  。则点云中所有点的距离应构成高斯分布。给定均值与方差,可剔除n个∑之外的点

  激光扫描通常会产生密度不均匀的点云数据集,另外测量中的误差也会产生稀疏的离群点,

  此时,估计局部点云特征(例如采样点处法向量或曲率变化率)时运算复杂,

  这会导致错误的数值,反过来就会导致点云配准等后期的处理失败。

  解决办法:对每个点的邻域进行一个统计分析,并修剪掉一些不符合标准的点。

  具体方法为在输入数据中对点到临近点的距离分布的计算,对每一个点,

  计算它到所有临近点的平均距离(假设得到的结果是一个高斯分布,

  其形状是由均值和标准差决定),那么平均距离在标准范围之外的点,

  可以被定义为离群点并从数据中去除。

使用参数化模型投影点云

使用参数化模型投影点云

  如何将点投影到一个参数化模型上(平面或者球体等),

  参数化模型通过一组参数来设定,对于平面来说使用其等式形式。

  在PCL中有特定存储常见模型系数的数据结构。

投影前的Z轴都不为0 ,投影之后,打印的结果表明,xy的值都没有改变,z都变为0。所以该投影滤波类就是输入点云和投影模型,输出为投影到模型上之后的点云。

ConditionalRemoval 或 RadiusOutlinerRemoval 移除离群点

ConditionalRemoval 滤波器的理解

可以一次删除满足对输入的点云设定的一个或多个条件指标的所有的数据点

删除点云中不符合用户指定的一个或者多个条件的数据点

RadiusOutlierRemoval移除离群点

一个比较简单常用的方法就是根据空间点半径范围临近点数量来滤波,对应的类名是 RadiusOutlinerRemoval,这个很容易理解,它的滤波思想非常直接,就是在点云数据中,设定每个点一定半径范围内周围至少有足够多的近邻,不满足就会被删除。比如你指定了一个半径d,然后指定该半径内至少有1个邻居,那么下图中只有黄色的点将从点云中删除。如果指定了半径内至少有2个邻居,那么黄色和绿色的点都将从点云中删除。

  球半径滤波器与统计滤波器相比更加简单粗暴。

  以某点为中心画一个球计算落在该球内的点的数量,当数量大于给定值时,

  则保留该点,数量小于给定值则剔除该点。

  此算法运行速度快,依序迭代留下的点一定是最密集的,

  但是球的半径和球内点的数目都需要人工指定。

㈢ 点云数据处理

三维计算视觉研究内容包括:

(1)三维匹配:两帧或者多帧点云数据之间的匹配,因为激光扫描光束受物体遮挡的原因,不可能通过一次扫描完成对整个物体的三维点云的获取。因此需要从不同的位置和角度对物体进行扫描。三维匹配的目的就是把相邻扫描的点云数据拼接在一起。三维匹配重点关注匹配算法,常用的算法有 最近点迭代算法 ICP 和各种全局匹配算法。

(2)多视图三维重建:计算机视觉中多视图一般利用图像信息,考虑多视几何的一些约束,相关研究目前很火,射影几何和多视图几何是视觉方法的基础。在摄影测量中类似的存在共线方程,光束平差法等研究。这里也将点云的多视匹配放在这里,比如人体的三维重建,点云的多视重建不仅强调逐帧的匹配,还需要考虑不同角度观测产生误差累积,因此也存在一个优化或者平差的过程在里面。通常是通过观测形成闭环进行整体平差实现,多视图重建强调整体优化。可以只使用图像,或者点云,也可以两者结合(深度图像)实现。重建的结果通常是Mesh网格。

(3)3D SLAM:点云匹配(最近点迭代算法 ICP、正态分布变换方法 NDT)+位姿图优化( g2o 、LUM、ELCH、Toro、SPA);实时3D SLAM算法 (LOAM);Kalman滤波方法。3D SLAM通常产生3D点云,或者Octree Map。基于视觉(单目、双目、鱼眼相机、深度相机)方法的SLAM,比如orbSLAM,lsdSLAM...

(4)目标识别:无人驾驶汽车中基于激光数据检测场景中的行人、汽车、自行车、以及道路和道路附属设施(行道树、路灯、斑马线等)。

(5)形状检测与分类:点云技术在逆向工程中有很普遍的应用。构建大量的几何模型之后,如何有效的管理,检索是一个很困难的问题。需要对点云(Mesh)模型进行特征描述,分类。根据模型的特征信息进行模型的检索。同时包括如何从场景中检索某类特定的物体,这类方法关注的重点是模型。

(6)语义分类:获取场景点云之后,如何有效的利用点云信息,如何理解点云场景的内容,进行点云的分类很有必要,需要为每个点云进行Labeling。可以分为基于点的方法,基于分割的分类方法。从方法上可以分为基于监督分类的技术或者非监督分类技术,深度学习也是一个很有希望应用的技术。

(7)立体视觉与立体匹配 ZNCC

(8)SFM(运动恢复结构)

1、点云滤波方法(数据预处理):

双边滤波、高斯滤波、条件滤波、直通滤波、随机采样一致性滤波。

VoxelGrid

2、关键点

ISS3D、Harris3D、NARF

SIFT3D、

3、特征和特征描述

法线和曲率计算 NormalEstimation 、特征值分析Eigen-Analysis、 EGI

PFH、FPFH、3D Shape Context、Spin Image

4、 点云匹配

ICP 、稳健ICP、point to plane ICP、Point to line ICP、MBICP、GICP

NDT 3D 、Multil-Layer NDT

FPCS、KFPCS、SAC-IA

Line Segment Matching 、ICL

5、点云分割与分类

分割:区域生长、Ransac线面提取、NDT-RANSAC、

K-Means、Normalize Cut(Context based)

3D Hough Transform(线、面提取)、连通分析、

分类:基于点的分类,基于分割的分类;监督分类与非监督分类

6、SLAM图优化

g2o 、LUM、ELCH、Toro、SPA

SLAM方法:ICP、MBICP、IDC、likehood Field、 Cross Correlation 、NDT

7、目标识别、检索

Hausdorff 距离计算(人脸识别)

8、变化检测

基于八叉树的变化检测

9. 三维重建

泊松重建、Delaunay triangulations

表面重建,人体重建,建筑物重建,树木重建。

实时重建:重建植被或者农作物的4D(3D+时间)生长态势;人体姿势识别;表情识别;

10.点云数据管理

点云压缩,点云索引(KD、Octree),点云LOD(金字塔),海量点云的渲染

点云驱动的计算机图形学主要研究应用

http://vcc.szu.e.cn/research/2015/Points/

㈣ 提取平面点云的轮廓

一. 基于凸包的凹点挖掘算法:

    1. 提取点云的凸包

    2. 计算凸包每条边的顶点的点密度(即该点 K 个临近点到该点的距离平均值)

    3. 如果顶点点密度大于所在边的长度的 X 倍,则删除该边,并从内部点中选择出一个满足夹角最大的点,插入边界边,形成两条新的边界边

    4. 迭代 2 和 3,一直到全部边界边的 X 倍小于其端点的点密度,算法结束

二. 基于 Delaunay 三角网的轮廓提取算法:

A. 不使用辅助点:

    1. 首先对点云进行 Delaunay 三角构网

   2. 同上,判断每条网格边长度的X倍和其端点的点密度之间的大小关系,并删除长的网格边

   3. 提取只属于一个三角形的边界,作为边界边

   4. 分类排序,得到有顺序关系的内外轮廓

B. 使用辅助点:

   1. 手动在点云的边界附近选点

   2. Delaunay构网

   3. 判断每个三角形,如果其中一个点是辅助点,而另外两个点是点云中的点,则连接这两个点做为边界边

   4. 分类排序,得到有顺序关系的内外轮廓

总体来说,由于构网算法的时间复杂度较高,因此可以有选择的使用上面两种算法,比如只有在确定要提取内轮廓的情况下,可以选择第二种轮廓提取算法

㈤ 点云数据UDP数据包解析算法举例

# fill pcl msg

fields = [PointField('x', 0, PointField.FLOAT32, 1),

             PointField('y', 4, PointField.FLOAT32, 1),

             PointField('z', 8, PointField.FLOAT32, 1),

              PointField('intensity', 12, PointField.FLOAT32, 1)]

包括激光点的三维坐标、多次回波信息、强度信息、扫描角度、分类信息、飞行航带信息、飞行姿态信息、项目信息、GPS信息、数据点颜色信息等

C–class(所属类)

F一flight(航线号)

T一time(GPS时间)

I一intensity(回波强度)

R一return(第几次回波)

N一number of return(回波次数)

A一scan angle(扫描角)

RGB一red green blue(RGB颜色值)

点云数据UDP数据包解析算法举例

以某一个UDP数据包中Block 3中的Channel 5为例,具体的线束分布请参考附录I:

1)由附录I可知,Channel 5对应的水平角度偏移量为-1.042°,垂直角度为3.04°。

2)水平角度为转子此时的角度加上水平角度偏移量=(Azimuth Angle 3+(-1.042))度

(注意 我们定义从上往下看时,顺时针为水平角度正方向)。

3)解析UDP包Channel 5 Unit 3的值,其高位2个bytes构成的距离值乘以4mm即可得到以毫米为单位的真实世界的测距值。

至此,这一个测距点表示的测距方向和测距距离都得到了解析,可以在极坐标系或者直角坐标系中画出此次测距对应的障碍物点位置。对每个UDP包中所有的测距数据都做这样的解析,即可画出实时的激光雷达测距点云。

3.2 GPS数据UDP包

每一个GPS数据包都含有42 bytes以太网包头及512 bytes UDP数据。所有的多字节值均为小端字节序Little Endian。GPS数据包每秒被触发一次,端

口10110。

在接收到GPS数据前,激光雷达内部的1Hz的信号上升沿会触发一个GPS数据包。GPS数据包中的初始时间为000101000000(yymmddhhmmss,年,

月,日,时,分,秒)。如果GPRMC信息在开始时没有被提供,此非真实的GPS时间会随着内部1Hz信号更新。如果雷达接收到PPS信号和GPRMC数

据,本地的1Hz信号会被锁定到PPS信号。GPS数据包还是通过内部1Hz信号上升沿触发。同时,GPS数据包中的时间会被更新为GPRMC信息中的真实

时间。

GPS模块首先会发送PPS信号,再发送GPRMC信息。雷达可以从中提取出UTC信息,并把6 bytes的UTC时间(年:月:日:时:分:秒)输入到点云

数据包中。用户可以通过相加点云数据包中4 bytes的时间戳和6 bytes的UTC时间来获得此数据包的绝对时间。

一旦雷达获取到GPS信号,数据包中的GPS时间就会根据接收到的GPRMC信息进行更新。如果GPS模块停止发送数据,雷达依然会根据内部1Hz信号上

升沿触发GPS数据包,并且数据包中GPS时间会根据之前得到的真实GPS时间计时。

㈥ 激光点云预处理研究概述

       3D点云数据的预处理是利用有效点云信息进行三维重建及障碍物感知的基础,是3D点云配准、3D点云拼接环节的前提。一般的 3D 点云预处理工作包括地面点云去除、点云滤波和点云分割。在三维点云数据处理过程中,点云数据离群点、噪声点的剔除以及点云数据的配准不仅是点云数据处理中的重要环节,也是后期对点云数据进行特征提取完成检测环节的基础。

        在进行目标物体分割时,将离散的三维数据点聚类的判断依据为点与点之间距离是否接近,而在激光雷达点云数据中,有很大一部分数据属于地面点数据,并且地面点云呈现为纹理状,这对后续障碍物点云的分类,识别带来干扰,如果不将这些地面点数据去除,在进行目标物体分割时会导致分割算法失效,因此需要先进行过滤。所以,地面点云数据去除是减少数据量以及提高分割算法准确度的有效手段。

       因此为了提高去除地面点云算法的准确性和鲁棒性,许多学者提出了大量研究方法,这些方法主要有以下两类:基于栅格图方法的地面去除研究、基于三维激光雷达原始扫描线数据的地面去除研究。

       通过激光雷达扫描得到的点云包含大部分地面点,常用的栅格图方法地面滤除点云方法有栅格高度差法、法向量方法和高度法。栅格高度法首先根据栅格大小生成网格,计算每个网格最低点与最高点的高度差,比较h与预设高度差阈值大小,对网格进行分类,最后根据网格对网格内的点进行分类。法向量法是基于计算出地面法向量为竖直向下或向上的假设,即地面点法向量值为(0,0,1)或(0,0,-1)。方法过程是计算点法向量并设定点分类的法向量阈值。高度法去除地面点云,是最常用且耗时最小的方法。根据激光雷达安装位置与姿态,可以根据设定阈值直接将点云分为地面点和障碍物点。

       基于栅格图的点云处理方式是通过将三维点云数据投影到地面,建立多个栅格单元,采用连通区域标记算法或者邻域膨胀策略对目标进行聚类,这类方法被广泛应用在激光雷达三维建模中。一是因为三维点云向二维平面投影过程极大地压缩了数据量,能够提高算法处理的实时性;二是因为点云向栅格图的映射,将复杂的三维点云处理问题转化为图像处理问题,可以使用成熟的图像处理相关算法,提高了算法处理的时间效率。栅格法简单可靠、计算效率高,但是栅格单元参数固定且往往凭经验确定,远距离目标点云较为稀疏往往会出现过分割,而近距离目标点云较为稠密又会出现欠分割,算法严重依赖于阈值参数的选择,且往往需要逐帧进行分析,必然损失部分实时性。

       由于三维激光雷达的原始三维数据包含了详细的空间信息,所以也可以用来进行相关点云数据处理。激光扫描线在地面和障碍物形成的角度值存在显着的不同,可作为分离地面点的重要依据。激光雷达中的多个激光器水平扫描周围环境中的物体,在两个相邻物体之间形成的角度很小,而同一物体的角度值很大。这启示了我们可以充分利用这一特性,大于角度阈值可认为这两点是同一物体,较好地处理了相邻目标欠分割的问题。通过将非地面点云分割为不同物体,然后进行目标物体的识别,可以为无人车提供更加详细的车辆、行人等障碍物信息,在运动中避免与不同类型的障碍物发生碰撞并进行及时避让。地面点云欠分割会导致目标漏检,过分割又会对后续的识别等操作带来影响。利用激光雷达产生点云的几何特性,研究人员提出了多种特征构建的方法,基于三维激光雷达原始扫描线数据的地面去除研究属于其中较为常用的方法。

       激光雷达在采集三维点云数据的过程中,会受到各类因素的影响,所以在获取数据时,就会出现一些噪声。其实在实际工作中除了自身测量的误差外,还会受到外界环境的影响如被测目标被遮挡,障碍物与被测目标表面材质等影响因素;另外,一些局部大尺度噪声由于距离目标点云较远,无法使用同一种方法对其进行滤波。

       噪声就是与目标信息描述没有任何关联的点,对于后续整个三维场景的重建起不到任何用处的点。但是在实际的点云数据处理算法中,把噪声点和带有特征信息的目标点区别开来是很不容易的,去噪过程中由于许多外在因素总是不可避免的伴随着一些特征信息的丢失。一个好的点云滤波算法不仅实时性要求高,而且在去噪的同时也要很好的保留模型的特征信息[88]。就需要把点云数据的噪声点特征研究透彻,才能够提出效果更好的去噪算法。

       点云数据是一种非结构化的数据格式,激光雷达扫描得到的点云数据受物体与雷达距离的影响,分布具有不均匀性,距离雷达近的物体点云数据分布密集,距离雷达远的物体点云数据分布稀疏。此外,点云数据具有无序和非对称的特征,这就导致点云数据在数据表征时缺乏明确统一的数据结构,加剧了后续点云的分割识别等处理的难度。神经网络作为一种端到端的网络结构,往往处理的数据是常规的输入数据,如序列、图像、视频和3D数据等,无法对点集这样的无序性数据直接进行处理,在用卷积操作处理点云数据时,卷积直接将点云的形状信息舍弃掉,只对点云的序列信息进行保留。

       点云滤波是当前三维重建技术领域的研究热点,同时也是许多无人驾驶应用数据处理过程中至关重要的一步。3D点云滤波方法主要可以分为以下三类,主要包括基于统计滤波、基于邻域滤波以及基于投影滤波。

       由于统计学概念特别符合点云的特性,因此,许多国内外学者都将统计学方法引用到点云滤波技术中,Kalogerakis 等人将一种稳健统计模型框架运用到点云滤波中,取得了非常好的滤波效果。在这个统计模型框架中,通过使用最小二乘迭代方法来估计曲率张量,并在每次迭代的时候根据每个点周围的领域来为样本分配权重,从而细化每个点周围的每一个邻域。然后利用计算获得的曲率以及统计权重来重新校正正态分布。通过全局能量的最小化并通过计算出的曲率和法线来把离群点去掉,并且能较好的保持点云的纹理特征。

       基于邻域的点云滤波技术,就是通过使用一种相似性度量的方法来度量点和其他周围邻域对滤波效率与结果影响比较大点的相似性,从而来确定滤波点的位置。一般来说,可以通过点云的位置、法线和区域位置来度量其相似性。1998年,Tomasi等人将双边滤波器扩展到 3D 模型去噪,由于双边滤波器具有维持边缘平滑的特点,所以在除去点云数据噪声的同时也能较好的保持细节。但是,由于该方法是通过一个网格生成的过程来去噪的,而在生成网格的过程就会引入额外的噪声。相比较于规则格网、不规则三角网等数据结构,体元是真3D的结构并且隐含有邻域关系,能够有效的防止生成网格的过程中引入噪声,但该方法的需要设置的参数比较多,不能满足实际工业运用。

       基于投影滤波技术通过不同的投影测量来调整点云中每个点的位置,从而实现噪声点云的去除。但是,如果输入的点云特别不均匀,经过局部最优投影处理后的点云将变得更散乱。孙渡等人提出了一种基于多回波及 Fisher 判别的滤波算法。首先结合格网划分思想划分点云网格,在每个网格内,通过点云数据的回波次数和强度进行划分,分出待定的样本;其次,利用Fisher判别的分析法将点云投影到一维空间内,通过判定临界值将植被点云与地面点云分离,实现陡坡点云的滤波,但是,该方法只针对点云中含有回波强度的属性才有效,对于不包含回波强度信息的点云,该方法失去作用。

       为弥补点云本身的无序性、不对称性、非结构化和信息量不充分等缺陷,在对点云进行特征识别及语义分割等操作之前,需先对点云进行数据形式的变换操作。常用的点云形式变换方法有网格化点云、体素化点云、将点云进行球面映射等。

       体素化是为了保持点云表面的特征点的同时滤除不具备特征的冗余的点云数据。由于常用的法向量计算取决于相邻点的数量,并且两个云点的分辨率也不同。所以具有相同体素大小的体素化就是为了在两个不同分辨率的点云中生成等效的局部区域。在实际进行点云配准算法的过程中,由于用于配准的源点云数据与目标点云数据的数量比较庞大、点云密集,并且这些原始点云数据中含有许多点云对于描述物体形状特征没有任何作用的点,如果使用算法直接对源点云与目标点云进行配置的话,整个过程将耗费大量时间,所以必须对点云进行下采样的同时仍保留住可以体现形状轮廓特征的那部分点云。

       由于点云本身的稀疏性、无序性和非均匀分布的特点,在利用深度全卷积神经网络结构对激光雷达点云数据进行语义分割时,端到端的卷积神经网络无法直接对无序排布点云进行操作。为使端到端的神经网络在无序性分布的点云数据上具有通用性,需先对点云数据进行映射,常见的投影方式有基于平面的投影、基于圆柱面的投影以及基于球面的点云投影方式。

参考:

周天添等(基于深度神经网络的激光雷达点云语义分割算法研究)

李宏宇(激光雷达的点云数据处理研究)

范小辉(基于激光雷达的行人目标检测与识别)

热点内容
电脑主机做服务器下载快不 发布:2024-11-28 00:32:40 浏览:386
冷冻存储盒 发布:2024-11-28 00:21:04 浏览:127
达内幼儿编程 发布:2024-11-28 00:21:02 浏览:320
我的世界下100层是什么服务器 发布:2024-11-28 00:16:50 浏览:548
怎么改配置密码 发布:2024-11-28 00:16:44 浏览:113
服务器芯片v几是什么 发布:2024-11-28 00:15:37 浏览:599
家庭麦克需要什么配置才能用 发布:2024-11-28 00:05:28 浏览:384
c语言then是什么意思 发布:2024-11-27 23:54:07 浏览:195
提升访问 发布:2024-11-27 23:41:39 浏览:821
为什么学习编程 发布:2024-11-27 23:41:37 浏览:942