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