电力建设集团网站,wordpress 固定链接 id,wordpress footer插件,杭州互联网企业排名击上方“新机器视觉”#xff0c;选择加星标或“置顶”重磅干货#xff0c;第一时间送达基于点云的3D障碍物检测主要有以下步骤#xff1a;点云数据的处理基于点云的障碍物分割障碍物边框构建点云到图像平面的投影点云数据的处理KITTI数据集KITTI数据集有四个相… 击上方“新机器视觉”选择加星标或“置顶”重磅干货第一时间送达基于点云的3D障碍物检测主要有以下步骤点云数据的处理基于点云的障碍物分割障碍物边框构建点云到图像平面的投影点云数据的处理KITTI数据集KITTI数据集有四个相机主要使用第三个相机(序号为02)拍摄的图片、标定参数和标签文件。点云数据一般表示为N行至少三列的numpy数组。每行对应一个单独的点所以使用至少3个值的空间位置点(X, Y, Z)来表示。 在KITTI数据中有一个附加值“反射率”这是衡量激光光束在那个位置被反射回来了多少。所以在KITTI数据中其点云数据就是N*4的矩阵。三维点云的可视化在MATLAB中可视化三维点云如下图。 额外的工作三维点云的可视化可使用python中的mayavi来实现它是一个专门画3D图的python工具。另外在有的论文中常常用到点云的鸟瞰图和前视图(包含360度的全景柱面图)。高精地图ROI指定从高精地图检索到包含路面、路口的可驾驶区域。以下点云数据处理在高精地图的基础上进行点云处理默认去除路边建筑物和树木等背景对象。额外的工作百度Apollo使用了高精地图ROI过滤器建立了网格对网格中的点云数据特征进行CNN学习来实现障碍物分割聚类之后使用了MinBox构建障碍物边框。去除地平面找到地面平面并移除地面平面点使用RANSAC(随机采样一致)算法检测和匹配地面平面最后结果如下图。 基于点云的障碍物分割对点云数据进行预处理后只留下路面上障碍物的点云其余的背景障碍物以及地面已被移除。障碍物分割主要检测和划分单独的障碍物将单独的车辆、行人等障碍物分割出来。由于只是在二维图像中画出3D目标框所以保留车辆前面的点(取x5)。在剩下的点云中使用栅格法构建俯视图(即投影到x-y平面)2D网格网格大小由点云的大小来决定。通过建立网格可以得到以下统计量网格中的点云个数网格中的点云的最大、最小和平均高度网格中的点云序号基于以上统计量寻找每个格子附近(3*9)领域的连通区域每个连通区域为一个障碍物达到了分割障碍物的目的。额外的工作使用KITTI的标签label文件来得到二维图像上的障碍物边界框在此边界框中进行聚类分割前景障碍物和背景。障碍物边框构建从以上得到每个障碍物点云后就需要画出每个障碍物的边界框。在这里使用最小凸包法求出包围点云的最小面积多边形边界框如下图。 基于最小凸包法得到障碍物周围的点在这些点的基础上求出包围最小面积的矩形如下图。 可以看到黄色部分的点云求最小面积矩形边界框会因为点云的稀疏使得边界框不精确。额外的工作根据点云的x, y坐标找到x, y的最大值和最小值的点(共有4个点)根据这4个点画出矩形框。很显然这样做是不行的但是如果知道车辆的朝向以朝向为轴找到距离轴最大最小的点此方法画出的边界框更加精确。点云到图像平面的投影点云到图像平面的投影需要读取标定参数文件得到三个参数(相机的内参矩阵、基于相机0的旋转矩阵、外参矩阵)三个参数的乘积也就是点云到图像的投影矩阵结果如下图。 转自https://blog.csdn.net/qq_33801763/article/details/79283017 End 声明部分内容来源于网络仅供读者学习、交流之目的。文章版权归原作者所有。如有不妥请联系删除。