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