米哈吉·帕拉卡帕·兰比尔·穆罕默德,MathWorks
了解如何使用PointPillars深度学习网络,使用lidar Toolbox™功能在激光雷达点云上进行3D物体检测。PointPillars网络解决了在训练健壮检测器方面的一些常见挑战,如每个对象的数据稀疏性、对象遮挡和传感器噪声。
大家好,在本视频中,我们将介绍如何将激光雷达数据的深度学习应用于目标检测和语义分割等任务。
深度学习通过识别和分类场景中的对象来帮助感知自主驾驶和机器人技术应用中的环境。
为了演示激光雷达的深度学习,我们将遵循MathWorks文档中的一个示例,该示例使用一个名为PointPillars的深度学习网络对点云数据进行3D对象检测。
PointPillars网络解决了在训练健壮检测器方面的一些常见挑战,如每个对象的数据稀疏性、对象遮挡和传感器噪声,通过使用一个编码器,该编码器可以学习在称为柱子的垂直列中组织的点云的表示。
下面是示例中遵循的工作流:
首先,我们加载数据,然后对其进行预处理,然后定义PointPillars网络,然后根据预处理的数据对网络进行训练,然后
最后,我们对网络进行测试,以评估其性能。
让我们从这个url下载点云数据集开始。
该数据集包含约1600个公路场景的有组织激光雷达点云扫描,以及汽车和卡车对象的相应地面真实值标签。
地面真实数据使用MATLAB的激光雷达Labeler应用程序进行标记。
您可以将点云数据加载到应用程序,定义对象周围的长方体边界框,使用内置或自定义自动算法自动标记。
标记好数据后,可以将其导出到MATLAB工作区。
我们将分3步对加载的数据进行预处理,
首先,我们将全视图点云裁剪为前视图点云或ego vehicle透视图。这将减少数据的大小,进而减少总体网络培训时间。
在第二步中,我们将把数据分成一个训练和测试集。
我们将使用fileDatastore管理点云。AfileDatastore是一个对象,用于帮助管理过大而无法放入内存的自定义格式文件集合。
然后,我们将创建另一个数据存储,用于加载带有3-D边界框的地面真值标签。
在第三步中,我们将执行ground truth data augmented,它将随机向每个点云添加固定数量的car类对象。该技术通过综合增加训练数据集的大小,有助于提高网络的准确性。
此外,我们将使用额外的增强技术,如翻转,缩放,旋转和平移。
接下来,我们将构建PointPillars网络来对这些数据进行培训。
PointPillars网络接受点云作为输入,并估计对象周围有方向的3D方框。它包括三个主要阶段
1、将点云转换为稀疏伪图像的特征编码器。它将点云转换为柱子,然后使用简化版的PointNet来学习组织为柱子的点云的表示。
2-二维卷积主干,用于将伪图像处理为高级表示和
3-一个检测头,检测物体并在其周围创建三维包围框。
我们可以在MATLAB中使用命令行,使用内置的深度学习层,如输入层、卷积层、反卷积层、批处理归一化层、maxpool和relu层来构建这个网络。
接下来,我们将定义培训选项,如纪元数和学习率。我们将设置执行环境为“auto”,这将允许在GPU上训练网络,如果可用的话,或者使用CPU进行训练。
在整个数据集上训练点支柱需要很长时间,所以现在我正在加载一个预先训练的点支柱网络来检测激光雷达数据上的对象。
现在,我们可以加载测试数据并应用经过训练的网络在已识别的对象上生成边界框
最后,我们在点云数据上检测到了我们的对象。在这里,红色边界框表示预测对象,绿色边界框表示地面真实值标签。您可以看到它们非常接近,这意味着我们的模型的预测相当好。
请点击下面的链接了解更多信息。如果您有任何问题或意见,请通过下面的评论框告知我们。
谢谢收看。
您还可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。