激光点云预处理方法手记/整理

这篇文章上次修改于 3 个月前,可能部分内容已经不适用,如有疑问可询问作者。

激光点云预处理方法手记/整理

Velodyne-HDL-64E激光雷达说明

激光雷达UDP数据包信息

数据大小(字节)数据内容
2头信息
2水平旋转角信息
96激光点强度与距离信息
2旋转圈数信息
4版本信息

雷达数据校正与解析

原始数据包含水平角度Rot,垂直角度Azu,和反射距离Dis来解析空间中点云的坐标位置。

由于Velodyne雷达的内部结构原因,旋转过程中其激光发射镜面与雷达底座中心有一定的距离偏移与角度偏差,故在数据解析过程中,需要对每束激光的距离与角度信息进行内部校正——将Velodyne激光雷达的64束扫描线所测量到的点的位置信息,统一到以雷达底部中心为原点的雷达坐标系中。(详细公式参考自己实验室文件了)

雷达点云数据接收与处理

Velodyne HDL-64E激光雷达数据实验,采用网口传输数据实验,雷达转速设定为为10HZ,大概100ms一圈数据,一圈数据量根据场景复杂度一般在7-10万个点。编写网口通信程序获取激光雷达数据时采用双缓冲并行机制,设定两个缓冲区1和缓冲区2,缓冲区1接受数据完毕处理数据时,缓冲区2开始接收数据,缓冲区2接受数据完毕处理数据时,缓冲区1开始接受数据,这样预留给数据处理的时间大概是200ms,写成这种机制可以给算法处理预留200ms。

融合预处理

存储N帧点云数据以及其对应的姿态信息,通过转台的运动角速度获取旋转角度进而得到变换矩阵作为粗校准矩阵,根据前N-1帧点云相对于第N帧点云的旋转矩阵对它们进行坐标变换,然后在运用最近邻迭代ICP算法进行精校准,使其融合到当前第N帧的点云数据中,提高当前帧点云数据的密度。

ICP:参考介绍-传送门

具体而言针对每一帧进行调整。

1.筛选点对:由P1中的点,在P2中搜索出其最近的点,组成一个点对;找出两个点集中所有的点对。点对集合相当于进行有效计算的两个新点集。

2.根据点集对,即两个新点集,计算两个重心。

3.由新点集,计算出下一步计算的旋转矩阵,和平移矩阵(其实来源于重心的差异)。

4.得到旋转矩阵和平移矩阵、,就可以计算点集进行刚体变换之后的新点集,由计算到的距离平方和,以连续两次距离平方和之差绝对值,作为是否收敛的依据。若小于阈值,就收敛,停止迭代。

5.重复1-4,直到收敛或达到既定的迭代次数。

点云滤波

黑点:阈值较高后出现的信号缺失,补全/采用原始点云有待场景需求进行商榷。

白点:得到的奇异点信号,适合中值滤波处理。

数据组织

二维规则格网:类似投影,像素。每一个格网对记录着坐落在其范围内的一个点云子集。

三角格网:网大小不一,格网分布不均匀等特点。Delaunay三角网是唯一的(任意四点不能共圆),在Delaunay三角形网中任一三角形的外接圆周围内不会有其它点存在。

三维规则格网:每一个格网对记录着坐落在其范围内的一个点云子集。与二维规则格网把点云投影到某一个平面再进行划分不同,三维规则格网是从空间的三个维度把整个空间划分为M×N×I个的空间格网(bins)。

Voxel Filter体素栅格化降采样滤波

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

简略:体素内取xyz均值(得到重心)

邻域点插值滤波

适用于单行(水平方向)插值,

垂直方向关联性较低,不适合使用。

简略:按水平方向的xy坐标值先排序,然后线性插值。

KNN数值统计离群点滤波

对比R领域:选取半径范围的孤立点滤除。

KNN:对于一个点,查询出该点对应的k个邻近点,并求出与这k个邻近点的空间距离,并对这k个空间距离求平均。如果该点对应的平均距离大于某个设定的距离阈值,则将其判定为异常点,否则判定为正常点。

目标分割

这边特指对地面点的分割和物体目标的分割,传统算法。

相对高度阈值滤除地面点

首先对点云在XY平面上进行栅格化,使其降为XY平面栅格地图,根据每个点的实际坐标位置,将其存储到对应的栅格内,然后遍历所有栅格,计算每个栅格内所有点的最大最小高度差值,最后通过与设定的高度差阈值进行比较,进而滤除地面栅格,提取非地面点。

Euclidean Cluster欧式聚类

搜索区域半径对最后的结果有很大影响,太小则容易出现过分割现象,可能把一个完整的目标分为多个区域,同时也容易出现过多的孤立点。太大则容易出现欠分割现象,可能将不同目标合并为一个目标。要根据所要检测的地面目标的尺寸进行选取,通常取最大地面目标宽度的一半左右。