硬件加速 3D 实时感知 (HARP-3D)
使用在 ULTRA96V2 上运行的深度神经网络在 LiDAR 点云中进行 3D 对象检测的端到端演示。
本项目用到的东西
Ultra96-V2
绪论
理念
感知是自动驾驶中的一项关键任务,并且可能是当今技术界讨论最多的话题之一。
简单来说,感知是理解数据的任务。这些数据通常由各种传感器生成,例如相机、雷达、激光雷达等。
最常用的感知任务是对象检测和语义分割。
对象检测是在传感器数据中定位和分类感兴趣的对象的任务。
语义分割是将传感器数据的每个像素/元素标记为属于一组感兴趣类别中的一个类别的任务。
深度神经网络 (DNN) 已经发展成为复杂感知算法的支柱,否则使用传统的计算机视觉算法几乎不可能进行设计。
任何类型的 DNN 的基本数学运算都是矩阵乘法。
事实证明,矩阵乘法是一种可以高度并行化的运算。这就是 GPU 对深度学习有用的根本原因。
这就是硬件加速可以作为加速深度学习算法的一种手段。
本项目旨在演示这一点,使用 Ultra96v2 开发板作为硬件加速平台。
Ultra96v2 基于 Xilinx Zynq MPSoC 平台,开发板具有除 FPGA 之外的其他几个外设。
该项目演示了如何使用 Ultra96v2 作为硬件加速平台和 Vitis-AI 作为软件平台在 LiDAR 点云中执行对象检测。它还以端到端的方式演示了带有对象检测模型的 Ultra96v2 如何作为边缘 AI 应用程序工作。
传感器数据
该项目使用 LiDAR 传感器数据作为输入。现在,由于传感器的状态非常昂贵,该项目使用来自最先进的 LiDAR 传感器的预先记录的数据。这是KITTI数据集(http://www.cvlibs.net/datasets/kitti/)。
传感器的典型扫描,称为点云如下所示。
点云中的每个点都由至少 3 个数字表示,这些数字对应于 3D 空间中该点相对于传感器的 x、y 和 z 坐标。
目标
我们试图确定汽车和其他物体在上述点云中的位置,并在它们周围放置一个边界框。
这如下所示。
神经网络
使用的神经网络是称为U-Net的语义分割网络。
❝https://arxiv.org/abs/1505.04597
它被修改为预测关键点,其中关键点是范围图像中的对象中心。
一旦我们有了关键点,一个简单的后处理步骤将它们转换回 3D 坐标 - x、y、z。
根据每个关键点的类别完成基于模型的框拟合。
这是通过获取 KITTI 训练数据集中不同对象类别的框的平均尺寸来发现的。
例如,汽车通常具有长度、宽度和高度分别为 3.6、1.5、1.8 的盒子尺寸。
下图显示了网络的架构。
数据预处理
3D 点云首先被转换为称为距离图像的 2D 表示,然后使用上面显示的 U-Net 架构进行处理。