使用点云测量和分析3D场景
点云是三维空间中数据点的集合,其中每个点代表真实物体表面上某个位置的X、Y和z坐标,这些点共同映射出整个表面。点云通常由激光扫描仪、立体相机和飞行时间相机。
根据数据类型,点云可分为两类:
有组织的点云
- 像图像数据一样组织成行和列
- 格式:M x N x C,其中M为行数,N为列数,C为通道数
- 像立体相机和飞行时间相机这样的传感器通常会产生有组织的点云
- 包含关于相邻点之间关系的信息
无组织的点云
- 没有组织成行或列的
- 格式:MxC,其中M为点云中的点数,C为通道数
- 典型的激光雷达传感器产生无组织的点云
- 通过投影到球体上(例如使用MATLAB),可以将无组织的点云转换为有组织的点云pcorganize函数的转换)
常用的工作流程和MATLAB任务
读,写,流点云
MATLAB为pcd、ply、pcap、las/laz和ibeo数据容器等流行的文件格式提供了读取器。您还可以从Velodyne和Ouster激光雷达传感器流实时激光雷达数据。
创建合成激光雷达数据
创建合成的激光雷达数据,模拟实际的激光雷达传感器,并在部署到实际系统之前测试您的工作流程。
数据进行预处理
应用预处理算法,如下采样、中值滤波、变换、从3D点云中提取特征和对齐
校准激光雷达相机
在你的系统中找到相机和激光雷达之间的转换。然后,您可以使用这种转换将激光雷达数据投射到相机数据,反之亦然。
执行对象检测和语义分割
使用深度学习算法检测对象或分割点云。
建立地图和本地化车辆
使用一系列点云执行注册、地图构建和SLAM。
部署在cpu和gpu上
可以在目标硬件上以C/ c++或CUDA代码的形式部署激光雷达处理工作流
例子和如何
参见:三维图像处理,仿射变换,数字图像处理,图像分析,图像处理和计算机视觉,图像重建,图像配准,图像分割,图像阈值,图像变换,对象检测,RANSAC,立体视觉,同步定位和映射