摘要

对于许多自动驾驶功能而言,对车辆环境的高度准确感知是至关重要的前提。现代高分辨率雷达传感器每个物体会产生多个雷达目标,这使得这些传感器特别适合2D物体检测任务。这项工作提出了一种仅使用PointNets仅根据稀疏雷达数据检测2D对象的方法。在文献中,到目前为止,仅介绍了执行对象分类或对象边界框估计的方法。相比之下,此方法使用单个雷达传感器有助于对物体进行分类以及包围盒估计。为此,对PointNets进行了调整,以进行具有分段的2D对象分类和2D边界框回归的雷达数据,以便估算无模2D边界框。使用自动创建的数据集对算法进行评估,该数据集由各种现实驾驶操作组成。结果表明,使用PointNets在高分辨率雷达数据中进行目标检测的巨大潜力。

一,引言

对于自动驾驶,对车辆周围环境的感知是一项重要的任务。尤其是,使用来自雷达,激光雷达和摄像头等传感器的嘈杂数据跟踪多个物体是一项至关重要的任务。一种标准方法是对接收到的传感器数据进行预处理,以生成对象检测,将其用作跟踪算法的输入。
对于照相机和激光雷达传感器,已经开发了各种物体检测器以分类的矩形2D或3D边界框的形式获得物体假设。据作者所知,到目前为止,在文献中还没有提出用于雷达的目标检测方法,该方法可以进行分类以及边界框估计。尽管现代的高分辨率雷达传感器对每个物体产生多次检测,但是与激光雷达点云或摄像机图像相比,接收到的雷达数据极为稀疏。因此,仅使用雷达数据识别不同的物体是一项艰巨的任务。

该文章提出了一种使用机器学习方法在高分辨率雷达数据中检测物体的方法。如图1所示,雷达数据表示为点云,称为雷达目标列表,由两个空间坐标,自我运动补偿多普勒速度和雷达横截面(RCS)值组成。由于雷达目标表示为点云,因此希望使用原始点云作为神经网络的输入。处理雷达数据的现有方法使用某些表示变换以便使用神经网络,例如神经网络。雷达数据被转换为网格图表示。但是,PointNets [1],[2]使得直接处理点云成为可能,并且适用于这种数据格式。Frustum PointNets [3]通过将2D对象检测器与3D实例分割和3D边界框估计相结合,扩展了用于检测对象的PointNets概念。提出的雷达数据目标检测方法是基于Frustum PointNets进行2D目标检测的方法,即目标分类和雷达目标列表的分割以及2D边界框回归。[1] – [3]中使用的3D激光雷达点云密集且甚至捕获了对象的细粒度结构。尽管与激光雷达数据相比,雷达数据稀疏,但是雷达数据包含具有多普勒和RCS信息形式的强大功能。例如,车辆的车轮产生明显的多普勒速度,而车牌导致目标具有高RCS值。雷达数据的另一个优点是,它经常包含不直接可见的对象部分的反射,例如,位于车辆对面的轮罩。所有这些功能对于分类和分割雷达目标非常有益,最重要的是可以对物体进行边界框估计。

这项工作的结构如下。第二部分显示了使用雷达数据进行的物体分类和边界框估计领域的相关工作。此外,还介绍了使用PointNets在点云上进行深度学习的方法。第三节介绍了此贡献解决的问题。第四节介绍了建议的检测雷达数据中二维物体的方法。此外,描述了自动生成的雷达数据集,并说明了训练过程。第五部分显示了根据实际雷达数据评估的结果。

二。相关工作

雷达数据中的对象分类:对于雷达数据中的对象分类,Heuel和Rohling [4] – [6]提出了具有自定义提取特征的方法,以对行人和车辆进行识别和分类。Wohler等人提取随机特征并将其用作随机森林分类器和长短期记忆网络的输入。为了分类静态对象,Lombacher等人。[8]随时间累积原始雷达数据,并将其转换为网格图表示[9]。然后,将潜在对象周围的窗口切出并用作深度神经网络的输入。此外,Lombacher等人。[10]使用雷达数据推断静止物体的语义表示。为此,向卷积神经网络提供了占用雷达栅格图。

雷达数据中的边界框估计。Roos等人[11]提出了一种使用高分辨率雷达来估计车辆的方向和尺寸的方法。为此,收集了两个雷达的单个测量值,并应用了定向包围盒算法和L-fit算法的增强版本。Schlichenmaier等人[12]显示了另一种使用高分辨率雷达数据估计边界框的方法。因此,使用k近邻法的一种变型来估算车辆的位置和尺寸。此外,Schlichenmaier等人[13]提出了一种使用模板匹配来估计代表车辆的边界框的算法。尤其是在具有挑战性的场景中,模板匹配算法的性能要优于定向边界框方法。所提出的方法的缺点在于,对于边界框估计考虑了不属于车辆的杂波点。

PointNets:大多数神经网络的输入必须遵循规则的结构,例如图像网格或网格图表示。这就要求将点云或雷达目标之类的数据转换为神经网络之前,必须先进行常规转换。PointNet体系结构克服了这一限制,并支持点云作为输入。Qi使用PointNet提出了3D激光雷达点云的3D分类和语义分割。由于PointNet体系结构无法捕获度量空间引起的局部结构,因此捕获细节的能力受到限制。因此,Qi还提出了一种称为PointNet ++的分层神经网络,该网络递归地将PointNet应用于输入点集的小区域。Schumann使用相同的PointNet ++架构对雷达点云进行语义分割。为此,对体系结构进行了修改,以处理具有两个空间尺寸和两个其他特征尺寸的点云。雷达数据在500毫秒的时间段内累积,以获得更密集的点云,每个物体的反射更多。随后,每个雷达目标被分为六个不同类别。因此,仅执行语义分割,而不执行语义实例分割或边界框估计。利用图像和激光雷达数据,文献[3]提出了平截头体PointNet,以检测3D对象。首先,使用2D边界框从基于图像的对象检测器中提取包含对象的3D视锥面点云。其次,使用分割PointNet在截锥体中执行3D实例分割。第三,使用回归PointNet估计非模态3D边界框。因此,Frustum PointNet是执行对象检测的第一种方法,包括使用PointNet对非结构化数据进行边界框估计。

三,问题陈述

给定雷达点云,提出的方法的目标是检测物体,即在2D空间中对物体进行分类和定位(图1)。雷达点云表示为一组四维点P = {pi | i = 1,。。。,n},其中n∈N表示雷达目标的数量。此外,每个点pi =(x,y,v〜r,σ)包含(x,y)坐标,自我运动补偿多普勒速度v〜r和雷达横截面值σ。雷达数据是从单个雷达的一个测量周期生成的,不会随时间累积。

对于对象分类,此贡献区分了汽车和杂物两类。另外,对于分配给该级别汽车的雷达目标,可以预测非模态2D边界,即,即使雷达传感器仅捕获了一部分,也可以估算整个对象。2D边界框由其中心(xc,yc),其在xy平面中的航向角θ和包含长度l和宽度w的大小来描述。

IV。用POINTNETS进行2D对象检测

图2显示了所建议的使用雷达数据的2D对象检测系统的概述。本节介绍了系统的三个主要模块:patch proposal,分类和分段以及非模态2D边界框估计。

A.patch proposal

patch proposal将雷达点云划分为感兴趣的区域。为此,在每个雷达目标周围确定具有特定长度和宽度的面片。贴片的长度和宽度的选择必须使其包含整个感兴趣的物体(这里是汽车)。
另外,重要的是每个斑块都包含足够的雷达目标,以区分分类中的汽车斑块和杂波雷达斑块,以及在分割步骤中区分汽车斑块和杂波雷达目标。修补程序提议将生成包含同一对象的多个修补程序。结果,最终的2D对象检测器为单个对象提供了多个假设。这种行为是理想的,因为用于环境感知的进一步处理链中的对象跟踪系统处理每个对象的多个假设。请注意,跟踪系统不是这项工作的一部分。如[3]中所述,将补丁标准化为中心视图,以确保算法的旋转不变性。最后,将补丁中的所有雷达目标转发到分类和分段网络。

B.分类和细分

分类和对象分割模块由一个网络组成,该网络对每个面片进行分类,并对面片内的所有雷达目标进行分割。为此,可以使用分类网络来区分整个补丁,以区分汽车补丁和杂乱补丁。对于汽车补丁,分割网络为每个雷达目标预测概率得分,该概率得分指示雷达目标属于汽车的概率。在掩蔽步骤中,提取被分类为汽车目标的雷达目标。如[3]中所述,对分割的雷达目标的坐标进行归一化以确保算法的平移不变性。

请注意,分类和细分模块可以轻松扩展到多个类别。为此,将补丁分类为特定类别,因此将预测的分类信息用于分割步骤。

C.非模态2D边界框估计

在分割目标点之后,该模块估计一个关联的无模2D边界框。首先,一个轻量级回归PointNet,称为Transformer PointNet(T-Net),估计无模态边界框的中心,并将雷达目标转换为相对于预测中心的局部坐标系。此步骤和T-Net体系结构在[3]中进行了详细描述。使用T-Net进行转换是合理的,因为就视角而言,分割点的质心可能会与非模态包围盒的真实中心不同。

对于2D边界框估计,使用了在概念上与[3]中提出的相同的框回归PointNet。回归网络可预测2D边界框的参数,即其中心(xc,yc),其航向角θ及其大小(l,w)。对于框中心估计,执行[3]的基于残差的2D定位。如[3]中所述,使用分类和分割方法的组合来预测航向角和包围盒的大小。更准确地说,对于大小估计,将预定义的大小模板并入分类任务。此外,可以预测有关这些类别的残值。在有多个类别的情况下,框估计网络还将分类信息用于边界框回归。因此,尺寸模板必须被附加类别扩展,例如行人或骑自行车的人。

D.网络架构

对于雷达数据中的目标检测任务,网络架构基于PointNet [1]和Frustum PointNets [3]的概念。图3显示了由分类,分割和2D边界框回归网络组成的网络架构。对于分类和分割网络,其架构在概念上类似于[1]。用于模态2D边界框估计的网络与[3]中提出的网络相同。在这项工作中,分类和边界框回归网络的输入是雷达数据。因此,有关原始PointNet的输入已扩展到雷达目标列表。对于分类和分割网络以及包围盒回归网络,雷达目标表示为包含二维空间数据,自我运动补偿的多普勒速度和RCS信息的四个点的集合。对于分类和分段网络,输入是带有n点补丁的雷达目标列表。然后,将具有m个点属于一个对象的分段雷达目标列表馈入2D边界框估计网络。

E.数据集

为了对雷达数据中建议的二维对象检测方法进行训练和测试,在测试轨道上创建了具有真实雷达数据的数据集。乌尔姆大学使用了两辆测试车[15],一辆自我测试车和一个目标测试车。自我车辆配备了两个大陆集团的ARS 408-21 Premium雷达传感器,它们安装在车辆的前角。请注意,在这项工作中,仅使用安装在左前角的雷达传感器。这两款车均配备了GeneSys的汽车动态运动分析仪(ADMA)传感器单元和高精度的全球差分定位系统(DGPS)。目标车辆是梅赛德斯E级旅行车S212。目标车辆的地面真相数据是使用ADMA数据生成的,并表示为包含位置,方向和尺寸的边界框。

在记录数据集时,存在不同的天气条件。数据集由11种不同的驾驶操作(例如,驾驶圈和八字形),在前方或朝着自我车辆的行驶以及通过的操作组成。这个想法是在训练条件下涵盖尽可能多的演习,这些演习可以尽可能地转移到现实交通场景中。

标记过程通过使用目标车辆的地面真相边界框作为参考来自动生成带注释的雷达目标。参考边界框内的每个雷达目标都标记为汽车目标,其他所有目标都标记为杂物目标。由于雷达测量噪声通常很大,因此接近目标车辆的目标可能属于汽车类别。因此,地面真相边界框的长度和宽度扩展了0.35 m。自动标签过程的最大优势在于,可以用最少的精力对大量数据进行注释。

在提出补丁建议后,即在每个雷达目标周围生成补丁,如果定义补丁的雷达目标(补丁中心的雷达目标)属于汽车类别,则将补丁标注为汽车。否则,该补丁将被视为杂乱补丁。由于需要一定数量的雷达目标来分配类别以及估计边界框,因此将在某些条件下创建数据集。因此,每个轿厢斑块必须包括至少两个属于该轿厢类别的雷达目标,并且每个杂波斑块必须包括至少16个属于该混乱类别的雷达目标。由于存在更多有关杂乱补丁的示例,因此带注释的补丁的分布不平衡,更准确地说,只有4.77%的补丁属于汽车类别。

为了进行培训,验证和测试,数据集分为三个部分:培训,验证和测试数据。训练数据用于训练模型。在训练过程中对模型的评估使用验证数据。验证数据包括与训练数据相同的驾驶操作。例如,如果执行了五次操作,则将其中三个添加到训练数据中,将其余三个添加到验证数据中。这确保了验证数据中涵盖了所有训练有素的驾驶操作。测试数据用于显示训练过程后模型的泛化能力。测试数据由不同的驾驶操作组成,这些操作与经过训练的操作不同。结果,测试数据与训练和验证数据完全脱节。总共有61.68%的补丁用于训练,19.62%的用于验证和18.70%的测试。

F.培训

如[3]中提出的,训练是在多任务损失的情况下进行的,以同时优化分类和分割PointNet,T-Net和无模态2D边界框估计PointNet。由于这项工作在分割之前使用补丁分类,因此如[1]中提出的那样,通过分类部分扩展了多任务损失。其结果是,在多任务损耗被定义为

在等式(1)中,Lcls表示补丁分类的损失,而Lseg表示补丁中雷达目标的分割的损失。两种损耗都可以分别由参数wcls和wseg加权。由于汽车和杂物斑块在数据集中的分布不平衡,因此在训练过程中,wcls和wseg的权重选择为汽车斑块较高。所有其他损失都用于边界框回归。在此,Lc1 reg用于T-net的基于残差的中心回归,而Lc2 reg用于无模态框估计网络的中心回归。此外,Lh cls和Lh reg是航向角估计的损耗,而Ls cls和Ls reg是边界框的大小估计。角损失Lcorner由wcorner加权,是[3]中提出的一种新颖的正则化损失,用于共同优化边界框的中心,大小和航向角。构造此损失是为了确保在联合度量的交集下获得良好的2D边界框估计。参数wbox加权边界框估计。如果将补丁分类为杂乱补丁,则wbox设置为零,结果是不执行边界框估计。此外,具有交叉熵损失的softmax用于分类和分割任务,而平滑l1(huber)损失用于回归任务的损失计算。

为了保证固定数量的输入点,将执行采样。为了进行分类和分割,每个斑块最多绘制48个雷达目标。由于按汽车类别生成的雷达目标数量很少,因此训练期间的采样过程将考虑所有汽车目标,并且仅考虑样本杂乱点。在测试目标探测器时,雷达目标的采样与类别无关。对于非模态2D边界框估计,从分段雷达目标中随机抽取多达32个点。

数据扩充是避免模型过度拟合的有用概念。因此,对于补丁的所有雷达目标,在训练期间都会应用数据增强。首先,通过在x和y方向上均匀地均匀移动所有雷达目标,来扰动雷达斑块中的空间信息。其次,对于汽车目标,使用零均值和标准偏差为0.2的随机高斯噪声对自我运动补偿的多普勒速度进行扰动。第三,为了扰动汽车目标的RCS值,使用均值为零且标准偏差为1的高斯分布的随机噪声。

模型的训练使用Adam优化器,并对除最后分类和回归层之外的所有层执行批量归一化。两个模型的初始学习选择为0.0001。此外,用于训练的批次大小选择为32。在单个NVIDIA GeForce GTX 1070 GPU上进行11个时期的训练。

在包含补丁的完整数据集上训练模型,每个补丁至少包含2个汽车目标和16个杂乱目标。此外,启发式地将训练过程中多任务丢失的权重选择为wcls = 2,对于汽车补丁为wseg = 2,对于杂乱补丁为wcls = 1,wseg = 1,对于边界框为wbox = 1,wcorner = 10 估计。由于使用稀疏雷达目标点云对包围盒回归的优化比分类和分割任务更为复杂,因此选择包围盒估计损失的权重应选择更高。这是由于多普勒速度和RCS值是很强的特征,因为汽车和杂波雷达目标的RCS和多普勒速度存在显着差异。

五,实验

本节介绍了雷达数据中建议的2D对象检测器的结果。为此,评估分类和分割以及2D边界框估计。此外,讨论了结果和限制。

A.评估

由于建议的2D对象检测方法包含分类,分割和边界框估计,因此将评估这三个模块的性能。对于分类和细分,使用准确性和F1分数。对于边界框回归,性能通过交并集(IoU)度量来衡量。
F1得分是精度P和召回R之间的谐波平均值,由下式给出:

IoU将预测的边界框bpred与地面真值边界框bgt进行比较,并定义为

|·|为测量基础集的面积。如果地面真实情况和预测的边界框几乎相同,则IoU得分往往接近1。如果两个边界框根本不重叠,则IoU分数将为零。

测试是在完整的数据集上进行的,其中每个补丁的汽车目标和杂物目标的数量分别至少为2和16。贴片的长度和宽度(第IV-A节)选择为10 m,这可以确保贴片在任何时候都包括整辆车。此外,评估单次驾驶操作。因此,雷达物体检测可以处理传感器测量周期中所有被测雷达目标。因此,没有给出每个轿厢和杂波斑块分别包括至少2个轿厢和16个杂波雷达目标的条件。表I显示了雷达数据中目标检测的结果。提出的目标检测器在分类和分割精度以及包围盒回归方面显示出令人鼓舞的结果。在自我操纵车辆追随目标车辆而没有超车的情况下,机动车辆在进行二维边界框估计时表现出最佳的结果。,所提出的目标检测器需要2.9毫秒的预测时间(分类和分段以及模态2D边界框估计)进行每个补丁。

B.讨论

通常,雷达数据中二维物体检测器的结果很有希望。但是,请务必注意,所提供的数据集是有限的。每个雷达测量周期数据集仅包含一个对象。进一步的限制是,对象始终具有相同的地面真实大小,因此不必更详细地考虑大小估计的结果。尽管如此,所提出的方法提供了处理不同大小的机制,但是它们的效果必须在未来的工作中进行评估。相同的论点适用于检测多个类。
提供了识别多个类别的机制,但是当前数据集不包括具有不同类别的对象。为了将来的研究,数据集将扩展到多个对象和多个类。
还要注意的另一个重要点是,在进一步的工作中,雷达数据的目标检测器将是多目标跟踪系统的预处理模块,该模块融合了多个雷达传感器的数据。这就是为什么不使用多个雷达测量值的累积来获得更密集的点云的主要原因。可以使用复杂的对象跟踪系统处理具有不同时间戳的雷达测量值融合以及来自多个雷达传感器的测量值。此外,对象跟踪器概率地为每个对象建模多个假设。因此,期望物体检测器产生多个假设,这由补丁提议模块保证。由于一个雷达传感器只能在每个测量周期提供稀疏数据,因此建议的对象检测器自然会产生误检测或混乱的测量结果。但是,诸如标记多伯努利过滤器[16]之类的多对象跟踪器可以处理此问题。

VI。结论

该贡献提出了一种在稀疏雷达数据中检测2D对象假设的方法。对象检测器使用PointNets的变体执行对象分类和2D分割,以及非模态2D边界框估计。尽管在这项工作中只考虑了一个对象类,但是结果是有希望的,并且应该对所提出的方法进行进一步的研究。在将来的工作中,数据集将扩展几个类别,以评估多个类别的对象检测器的性能。此外,数据集中属于同一类的对象将具有不同的大小,以检查对象维度的影响。

使用PointNets在雷达数据中进行二维汽车检测相关推荐

  1. layui数据表格中加入二维码

    最近在做一个后端项目时,需要在表格中展示二维码,但是在layui表格渲染时无法获取元素id,下面就将我出现的问题记录下,并提供解决方案供大家查看. jq插件qrcode引入和下载 qrcode其实是通 ...

  2. python二维元组_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)

    如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  3. Verilog中的二维数组及其初始化

    Verilog中的二维数组 Verilog中提供了两维数组来帮助我们建立内存的行为模型.具体来说,就是可以将内存宣称为一个reg类型的数组,这个数组中的任何一个单元都可以通过一个下标去访问.这样的数组 ...

  4. 支付宝支付 第九集:产品数据和支付二维码对接

    支付宝支付 第九集:产品数据和支付二维码对接 一.问题 javascript中单引号和双引号的区别是什么? vue中的:作用 v-bind指令 二.代码 目录结构 更新AlipayServiceImp ...

  5. python可以使用二维元组吗_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...

    怎么去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  6. java 数组存入数据库_Java中关于二维数组的理解与使用

    今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...

  7. scala中的二维数组_Scala中的多维数组

    scala中的二维数组 多维数组 (Multi-dimensional arrays) An Array that stores data in the form multidimensional m ...

  8. java不等长二维数组_Java中关于二维数组的理解与使用

    今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...

  9. 如何在C/C++中动态分配二维数组

    如何在C/C++中动态分配二维数组 在C/C++中动态分配二维数组可以先申请一维的指针数组,然后该数组中的每个指针再申请数组,这样就相当于二维数组了,但是这种方法会导致每行可能不相邻,从而访问效率比较 ...

最新文章

  1. 虚拟机 硬盘容量不够 增大的方法
  2. ThinkPHP- 3.1
  3. Chrome和Firefox浏览器长截图
  4. C语言中的编译,链接,运行简单复习
  5. 如何在AI工程实践中选择合适的算法?
  6. C++引用,常量优化,四种类型转换符
  7. 2021 年 7 月程序员工资统计,最赚钱的岗位出炉。。
  8. Rust: 在子线程启动子线程
  9. VNN结合金蝶Kis9.1专业版Sp1的应用及解决方案
  10. Httpd Forbidden:You don't have permission to access /index.html on this server.
  11. Ubuntu 更换阿里云软件源
  12. 腾讯视频网页版无法连接服务器失败怎么办,腾讯视频突然不能投屏怎么解决 腾讯视频突然不能投屏解决方法...
  13. unity通过鼠标滑轮控制物体大小
  14. Android预置默认输入法
  15. 工赋开发者社区 | (案例)中译语通:差别化纺纱柔性智慧工厂
  16. 一个物体 偏转角度计算
  17. java hh24miss_Java编程时间格式与数据库中时间格式转化
  18. Go 每日一库之 gorilla/sessions
  19. 《Android深入透析》之Android事件分发机制
  20. 汇编版PE结构解析器

热门文章

  1. MTK平台安卓手机性能测试方法
  2. 迅捷FW150US无线网卡驱动安装
  3. win7安装oracle 黑屏,雨林木风 win7安装黑屏怎么解决
  4. 关于DNS的域名解析
  5. 23 种设计模式的有趣见解
  6. 【python】实现一次指数平滑
  7. PyTorch数据处理工具箱
  8. 硬件nat关闭还是开启_SSD4K对齐了,但是速度还是很慢怎么办?我的主板是华硕990FX,AHIC也开了,检测也通过了,-小派4K...
  9. 微信小程序和ssm交互
  10. [原创]对于运行ASP.NET程序时,提示:无法启动程序“http://localhost:3532/Default.aspx”。的解决办法...