点云聚类(点云聚类再计算NDT)
本篇文章给大家谈谈点云聚类,以及点云聚类再计算NDT对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
【Autoware】配置镭神激光雷达lslidar-c16并完成点云聚类检测
因为小车用的激光雷返激达是镭神lslidar-c16,而Autoware默认支持的是velodyne,因此需要修改lslidar-c16的源码配置,来完成对Autoware的适配漏哗袜。
首先需要将lslidar-c16连接好电源,并采用网络端口连接到主机上,具体配置到Ubuntu的ROS环境可以参考我之前写过的另一个笔记: 镭神激光雷达lslidar-c16的驱动安装与ros下rviz点云显示
前往lslidar-c16的目录下src中lslidar_c16_decoder下的launch文件夹,修改其中的lslidar_c16.launch文件,将其中的原先frame_id的值“laser_link”修改为autoware中能用的velodyne, param name="frame_id" value="velodyne"/ ,再增加一个 remap from="lslidar_point_cloud" to="/points_raw" / 用于Autoware接收的点云话题/芦春points_raw(注意不要少了s)
打开右下角的rviz,并且加载刚才修改过的lslidar_c16的launch文件, /home/clark/Workspace/catkin_ws_lslidar/src/lslidar_C16/lslidar_c16_decoder/launch 。
可以看到左上角Global Options中的Fixed Frame默认设置成了velodyne,右侧显示出激光雷达lslidar-c16的扫描数据。
[img]matlab那个版本可以进行点云
一、读写保存
matlab处理las点云(1)--las/laz格式解析
matlab处理las点云(2)-- 从LAS或LAZ文件中读取点云数据
matlab 读取txt点云并可视化
matlab 移除点云中无效的点
matlab 点云合并
matlab 保存点云
matlab 生成自定义点云
matlab 点云随机赋色
matlab 点云按高程进行赋色
matlab 打开文件选择对话框
matlab 使用文件选择对话框添加点云
二、KD树
matlab KD树的使用
matlab 点云的圆柱形邻域搜索
matlab 计算点云平均密度
matlab 查找点云指定区域内的点
matlab 根据索引提取点云
三、点云滤波
1、空友常用滤波器
matlab 点云均值、中值、高斯滤波
matlab 点云体素下采样(详细过程版)
matlab 点云统计滤波
matlab 点云中值滤波
matlab 点云下采样
matlab 快速均匀采样
matlab 点云随机采样到固定点数
matlab 半径滤波
matlab 直通滤波
matlab 获取指定高程的所有点
matlab 点云方框滤波
matlab 点云双边滤波
matlab 点云添加高斯噪声并保存
matlab 点云添加均匀分布的随机噪声
2、数据平滑
matlab 对含噪声的数据进行平滑处理
matlab 数据平滑--smooth函数
matlab 五点三次平滑算法
四、拟合分割
1、点云拟合
matlab 最小二乘拟合空间球
matlab 最小二乘拟合二次曲面
matlab 点云最小二乘拟合平面(SVD法)
matlab 点云最小二乘拟合平面(PCA法)
matlab 点云投影到平面
matlab 点云投影到球面
matlab 点云投影到直线
matlab 计算点到平面的距离
matlab 最小二乘拟合二维直线
matlab 点云最小二乘拟合空间直线
matlab 点云最小二乘拟合多项式曲线
matlab RANSAC拟合平面
matlab RANSAC拟合直线
matlab RANSAC拟合空间球
matlab RANSAC拟合空间直线
matlab RANSAC拟合圆柱
2、点云分割
matlab 稀疏点云在线分割
matlab 基于欧氏距离的点云聚类分割
matlab 简单形态滤波(SMRF)算法地面逗庆分割
matlab 点云k均值聚类
matlab 点云密度聚类
matlab 点云沿坐标轴进行等距切片
matlab 基于投影点密度的建筑物立面提取
五、 点云重建
matlab 显示曲面网格
matlab 泊松曲面重建法
matlab 球旋转曲面重建法
matlab 二维或三维三角剖分
matlab 将三角剖分结果保存为STL文件
matlab 点云构建Delaunay三角网
matlab 受约束的 Delaunay 三角剖分
matlab Delaunay 三角剖分内的查询点
matlab 点云alphaShape曲面重构
matlab 计算点云凸包
matlab 点云边界提取
六、点云配准
1、粗配准
matlab 点云粗配准(1)-- 计算FPFH并可视化
matlab 点云粗配准(2)-- 根据FPFH特征查找匹配点对(Fast Global Registration算法的部分实现)
matlab 点云粗配准(3)-- 可视化匹配点对
matlab 点云粗配准(4)-- 根据FPFH特征实现点云粗配准
matlab 点云粗配准(5)-- 利用ISS关键点与FPFH特征的点云配准
matlab 点云粗配准(6)-- FGR快速全局配准
matlab 点云配准--相位相关法实现点云配准
2、精配准
matlab ICP实现点云精配准
matlab NDT实现点云精配准
matlab CPD算法实现点云精配准
matlab 点云精配准(1)--point to point ICP(点到点的ICP)
matlab 点云精配准(2)--point to plane ICP(点到面的ICP)
matlab 点云精配准(3)--Trimmed ICP
matlab 点云精配准(4)--基于ISS关键点的ICP配准算法
matlab 三维点云配准与拼接
3、计算配准精度
matlab 点云配准--计算配准精度
4、点云变换
matlab 点云配准--点云变换
matlab 点云配准--三维变换
matlab 点云配准--SVD分解求变换矩阵
matlab 点云配斗指槐准--四元数法求变换矩阵
matlab 点云配准--自定义旋转矩阵
matlab 大场景点云水平面校准
matlab 点云镜像变换
5、特征、描述
matlab 二进制形状描述子
matlab 计算点云法向量并可视化
matlab 角度制与弧度制的相互转换
matlab 构建点云的AABB包围盒
matlab PCA构建点云OBB包围盒
matlab 计算点云的面状指数
matlab ISS关键点提取
七、 点云与图像
matlab 将图像信息融合到激光雷达点云
matlab 检测点云中指定尺寸的矩形平面
matlab 将激光雷达点云数据投影到图像坐标系上
matlab 点云转二值图像
matlab 点云轮廓边缘检测
matlab 使用点云创建数字地面模型DSM
matlab 使用点云创建数字高程模型DEM
matlab 格网法计算点云的占地面积
matlab 计算机载点云的密度
八、 点云可视化
matlab 点云可视化(1)--pcshow()函数可视化单个点云
matlab 点云可视化(2)--pcshowpair()可视化两点云之间的差异
matlab 点云可视化(3)--动态可视化点云
matlab 点云可视化(4)--可视化点云包围框
matlab 点云可视化(5)--可视化多个点云
九、 点云深度学习
matlab点云深度学习(1)-- 无序点云转有序点云
十、 基础操作
matlab 计算点云的质心
matlab 点云去质心
matlab 计算点云的曲率
matlab 计算点云的面状指数
激光点云预处理研究概述
3D点云数据的预处理是利用有效点云信息进行三维重建及障碍物感知的基础,是3D点云配准、3D点云拼接环节的前提。一般的 3D 点云预处理工作包括地面点云去除、点云滤波和点云分割。在三维点云数据处理过程中,点云数据离群点、噪声点的剔除以及点云数据的配准不仅是点云数据处理中的重要环节,也是后期对点云数据进行特征提取完成检测环节的基础。
在进行目标物体分割时,将离散的三维数据点聚类的判断依据为点与点之间距离是否接近,而在激光雷达点云数据中,有很大一部分数据属于地面点数据,并且地面点云呈现为纹理状,这对后续障碍物点云的分类,识别带来干扰,如果不将这些地面点数据去除,在进行目标物体分割时会导致分贺橡割算法失效,因此需要先进行过滤。所以,地面点云数据去除是减少数据量以及提高分割算法准确度的有效手段。
因此为了提高去除地面点云算法的准确性和鲁棒性,许多学者提出了大量研究方法,这些方法主要有以下两类:基于栅格图方法的地面去除研究、基于三维激光雷达原始扫描线数据的地面去除研究。
通过激光雷达扫描得到的点云包含大部分地面点,常用的栅格图方法地面滤除点云方法有栅格高度差法、法向量方法和高度法。栅格高度法首先根据栅格大小生成网格,计算每个网格最低点与最高点的高度差,比较h与预设高度差阈值大小,对网格进行分类,最后根据网格对网格内的点进行分类。法向量法是基于计算出地面法向量为竖直向下或向上的假设,即地面点法向量值为(0,0,1)或(0,0,-1)。方法过程是计算点法向量并设定点分类的法向量阈值。高度法去除地面点云,是最常用且耗时最小的方法。根据激光雷达安装位置与姿态,可以根据设定阈值直接将点云分为地面点和障碍物点。
基于栅格图的点云处理方式是通过将三维点云数据投影到地面,建立多个栅格单元,采用连通区域标记算法或者邻域膨胀策略对目标进行聚类,这类方法被广泛应用在激光雷达三维建模中。一是因为三维点云向二维平面投影过程极大地压缩了数据量,能够提高算法处理的实时性;二是因为点云向栅格图的映射,将复杂的三维点云处理问题转化为图像处理问题,可以使用成熟的图像处理相关算法,提高了算法处理的时间效率。栅格法简单可靠、计算效率高,但是栅格单元参数固定且往往凭经验确定,远距离目标点云较为稀疏往往会出现过分割,而近距离目标点云较为稠密又会出现欠分割,算法严重依赖于阈值参数的选择,且往往需要逐帧进行分析,必然损失部分实时性。
由于三维激光雷达的原始三维数据包含了详细的空间信息,所以也可以用来进行相关点云数据处理。激光扫描线在地面和障碍物形成的角度值存在显著的不同,可作为分离地面点的重要依据。激光雷达中的多个激光器水平扫描周围环境中的物体,在两个相邻物体之间形成的角度很小,而同一物体的角度值很大。这启示了我们可以充分利用这一特性,大于角度阈值可认为这禅州旁两点是同一物体,较好地处理了相邻目标欠分割的问题。通过将非地面点云分割为不同物体,然后进行目标物体的识别,可以为无人车提供更加详细的车辆、行人等障碍物信息,在运动中避免与不同类型的障碍物发生碰撞并进行及时避让。地面点云欠分割会导致目标漏检,过分割又会对后续的识别等操作带来影响。利用激光雷达产生点云的几何特性,研究人员提出了多种特征构建的方法,基于三维激光雷达原始扫描线数据的地面去除研究属于其中较为常用的方法。
激光雷达在采集三维点云数据的过程中,会受到各类因素的影响,所以在获取数据时,就会出现一些噪声。其实在实际工作中除了自身测量的误差外,还会受到外界环境的影响如被测目标被遮挡,障碍物与被测目标表面材质等影响因素;另外,一些局部大尺度噪声由于距离目标点云较远,无法使用同一种方法对其进行滤波。
噪声就是与目标信息描述没有任何关联的点,对于后续整个三维场景的重建起不到任何用处的点。但是在实际的点云数据处理算法中,把噪声点和带有迹枯特征信息的目标点区别开来是很不容易的,去噪过程中由于许多外在因素总是不可避免的伴随着一些特征信息的丢失。一个好的点云滤波算法不仅实时性要求高,而且在去噪的同时也要很好的保留模型的特征信息[88]。就需要把点云数据的噪声点特征研究透彻,才能够提出效果更好的去噪算法。
点云数据是一种非结构化的数据格式,激光雷达扫描得到的点云数据受物体与雷达距离的影响,分布具有不均匀性,距离雷达近的物体点云数据分布密集,距离雷达远的物体点云数据分布稀疏。此外,点云数据具有无序和非对称的特征,这就导致点云数据在数据表征时缺乏明确统一的数据结构,加剧了后续点云的分割识别等处理的难度。神经网络作为一种端到端的网络结构,往往处理的数据是常规的输入数据,如序列、图像、视频和3D数据等,无法对点集这样的无序性数据直接进行处理,在用卷积操作处理点云数据时,卷积直接将点云的形状信息舍弃掉,只对点云的序列信息进行保留。
点云滤波是当前三维重建技术领域的研究热点,同时也是许多无人驾驶应用数据处理过程中至关重要的一步。3D点云滤波方法主要可以分为以下三类,主要包括基于统计滤波、基于邻域滤波以及基于投影滤波。
由于统计学概念特别符合点云的特性,因此,许多国内外学者都将统计学方法引用到点云滤波技术中,Kalogerakis 等人将一种稳健统计模型框架运用到点云滤波中,取得了非常好的滤波效果。在这个统计模型框架中,通过使用最小二乘迭代方法来估计曲率张量,并在每次迭代的时候根据每个点周围的领域来为样本分配权重,从而细化每个点周围的每一个邻域。然后利用计算获得的曲率以及统计权重来重新校正正态分布。通过全局能量的最小化并通过计算出的曲率和法线来把离群点去掉,并且能较好的保持点云的纹理特征。
基于邻域的点云滤波技术,就是通过使用一种相似性度量的方法来度量点和其他周围邻域对滤波效率与结果影响比较大点的相似性,从而来确定滤波点的位置。一般来说,可以通过点云的位置、法线和区域位置来度量其相似性。1998年,Tomasi等人将双边滤波器扩展到 3D 模型去噪,由于双边滤波器具有维持边缘平滑的特点,所以在除去点云数据噪声的同时也能较好的保持细节。但是,由于该方法是通过一个网格生成的过程来去噪的,而在生成网格的过程就会引入额外的噪声。相比较于规则格网、不规则三角网等数据结构,体元是真3D的结构并且隐含有邻域关系,能够有效的防止生成网格的过程中引入噪声,但该方法的需要设置的参数比较多,不能满足实际工业运用。
基于投影滤波技术通过不同的投影测量来调整点云中每个点的位置,从而实现噪声点云的去除。但是,如果输入的点云特别不均匀,经过局部最优投影处理后的点云将变得更散乱。孙渡等人提出了一种基于多回波及 Fisher 判别的滤波算法。首先结合格网划分思想划分点云网格,在每个网格内,通过点云数据的回波次数和强度进行划分,分出待定的样本;其次,利用Fisher判别的分析法将点云投影到一维空间内,通过判定临界值将植被点云与地面点云分离,实现陡坡点云的滤波,但是,该方法只针对点云中含有回波强度的属性才有效,对于不包含回波强度信息的点云,该方法失去作用。
为弥补点云本身的无序性、不对称性、非结构化和信息量不充分等缺陷,在对点云进行特征识别及语义分割等操作之前,需先对点云进行数据形式的变换操作。常用的点云形式变换方法有网格化点云、体素化点云、将点云进行球面映射等。
体素化是为了保持点云表面的特征点的同时滤除不具备特征的冗余的点云数据。由于常用的法向量计算取决于相邻点的数量,并且两个云点的分辨率也不同。所以具有相同体素大小的体素化就是为了在两个不同分辨率的点云中生成等效的局部区域。在实际进行点云配准算法的过程中,由于用于配准的源点云数据与目标点云数据的数量比较庞大、点云密集,并且这些原始点云数据中含有许多点云对于描述物体形状特征没有任何作用的点,如果使用算法直接对源点云与目标点云进行配置的话,整个过程将耗费大量时间,所以必须对点云进行下采样的同时仍保留住可以体现形状轮廓特征的那部分点云。
由于点云本身的稀疏性、无序性和非均匀分布的特点,在利用深度全卷积神经网络结构对激光雷达点云数据进行语义分割时,端到端的卷积神经网络无法直接对无序排布点云进行操作。为使端到端的神经网络在无序性分布的点云数据上具有通用性,需先对点云数据进行映射,常见的投影方式有基于平面的投影、基于圆柱面的投影以及基于球面的点云投影方式。
参考:
周天添等(基于深度神经网络的激光雷达点云语义分割算法研究)
李宏宇(激光雷达的点云数据处理研究)
范小辉(基于激光雷达的行人目标检测与识别)
关于点云聚类和点云聚类再计算NDT的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。