雷达点云语义分割是雷达数据处理的新挑战。我们演示了如何使用关于人工标记雷达反射的大型数据集执行此任务。我们现在不再使用聚类反射产生的特征向量作为分类器的输入,而是将整个雷达点云作为输入并获得每个反射的类别概率。因此,我们不再需要聚类算法和手动特征选择。1简介在过去的几年里,图像分析已经从单纯的图像中心对象分类和对象或对象部分的检测转移到一个单一的组合任务:语义分割。语义实例分割通过区分物理上不同对象的相同类标签的像素来增强语义分割,这样除了按像素分类之外,对象实例也被分组。语义分割通常由深度卷积神经网络完成,其通常表现为编码器-解码器结构。这些架构都依赖于规则的图像结构,即具有等距像素的矩形网格。如果使用全卷积网络,网格的大小,即图像的宽度和高度,可能会有所不同。矩形网格引起像素之??间的距离和邻域关系,空间扩展大于一个像素的卷积核利用这些关系。因此,如果使用相机作为传感器,这些方法就可以正常工作。毫米波雷达和激光雷达传感器与摄像头相辅相成,以保持功能安全。这些额外的传感器不仅应该是互补的,而且应该是冗余的。因此,希望从毫米波雷达和激光雷达中获得对周围环境的高水平语义理解。在本文中,我们将语义分割雷达数据,即我们为每个测量的反射点分配一个类标签。我们专注于动态物体并研究六种不同的类别:汽车、卡车、行人、行人群体、自行车和静态物体。应用恒虚警率(CFAR)算法后得到的雷达检测结果构成点云,其中点云P定义为一组N∈N点pi∈Rd,i=1,...,N,wherethepoint点在云中的顺序无关紧要。对于每次反射,需要测量两个空间坐标(径向距离r和方位角φ)、自运动补偿多普勒速度v?r和雷达截面(RCS)σ。因此,在语义分割任务中必须处理4D点云。雷达反射的空间密度变化很大,使得大规模网格映射方法在计算上不可行。因此,无法应用相机图像的常用网络结构。不需要类似图像输入的算法是必要的,从图1可以看出,该图显示了在200毫秒的时间内从四个雷达收集的雷达检测数据。在此图中,可以看到没有测量值的大面积区域以及具有大量反射的区域。具有大约2000个单独反射的整个场景的网格图必须覆盖至少150mx200m的大空间区域,即使在非常低的分辨率下,单元格大小为1mx1m,最多6%的像素也会有一个非零值。图1.超过200毫秒的雷达点云累积。突出显示了三种不同车型的反射。仅显示完整视野的摘录因此,我们使用PointNet++作为我们分割算法的基础。PointNet++能够直接在点云上工作,它最初设计用于处理来自激光扫描仪的3D空间数据。在本文中,我们修改架构以处理两个空间维度和另外两个特征维度。在之前的工作中,分类是对特征向量进行的,而特征向量又是从集群的雷达反射中获得的。使用我们的新方法,我们避免了这两个预处理步骤:将雷达目标分组到集群中,并且不再需要从这些集群生成预定义的特征向量。这些表明我们的新方法大大优于以前的方法。本文的其余部分结构如下:在第二部分中,我们评论了有关该主题的相关工作和其他方法。之后,我们更详细地描述了我们的网络结构,并解释了我们的培训和测试程序。在第四节中,我们展示了我们的结果并将它们与以前的方法进行了比较。最后,对我们未来的工作进行了展望。2相关工作当相机被用作传感器并且大多数算法都是针对图像数据量身定制时,语义分割是一种流行的方法。全卷积网络的引入启发了许多类似的以及后来更先进的神经网络结构,例如SegNet、U-Net、R-CNN及其后继者FastR-CNN、FasterR-CNN和MaskR-CNN。为了将这些技术应用于雷达数据,必须进行一些预处理。网格图提供了一种将空间不均匀的雷达反射转换为图像数据的方法。测得的反射随时间积分,并插值到地图中的相应位置。可以通过这种方式创建不同的地图,例如占用网格地图(描述网格占用的后验概率),或RCS地图,(提供有关每个网格中反射的测量RCS值的信息)。这种方法适用于静态物体,因为只需要考虑自身运动(而不是额外的物体速度和轨迹)来在地图中正确位置的不同时间插入雷达反射。对于这项工作中考虑的动态对象,需要精确的扩展对象跟踪算法,或者将对象的动态视为特征,以便动态对象在地图中创建扩展的反射尾巴。另一个困难是网格映射对于稀疏数据效率不高,因为需要一个潜在的大网格来显示相对较少的测量值。据我们所知,以前没有对移动物体的汽车雷达数据进行语义分割。分类只对小数据集或大量模拟数据进行。3方法A.网络结构Qi等人。提供PointNet和PointNet++方法直接处理点云,因此不需要之前的映射步骤。他们对通过从室内场景的3D扫描网格中采样点获得的3D点云执行语义分割。我们使用他们的架构作为我们方法的基础。然而,我们在实验中使用的雷达数据在以下方面与3D室内数据不同。首先,每个雷达反射点只包含两个空间坐标,而不是三个,但是加上自运动补偿的多普勒速度和RCS值,整个点云的每个点pi都是四维的。其次,我们的数据显示密度和采样率的差异更大。来自斯坦福大学的3D语义分析数据集的3D扫描提供了密集的点云,其中可以看到办公室内部的细节,而我们的雷达数据仅提供每个物体的少量反射,因此对于更小或更远的物体,甚至它们的轮廓都不是正确捕获,请参见图1。多尺度分组模块(MSG)和特征传播模块(FP)在PointNet++中定义。MSG模块考虑中心点周围各种大小的邻域,并在描述这些邻域的中心点位置创建组合特征向量。该模块包括三个步骤:选择、分组和特征生成。首先,通过最远点采样选取输入点云的N个样本点,以对输入点云进行均匀采样。在分组步骤中,为每个选定的Nsample点创建一个邻域。在我们的网络中,邻域由位于中心点周围半径r内的Nneigh点组成。邻域搜索只考虑雷达反射的两个空间分量。如果一个反射点在给定的搜索半径内有超过Nneigh的邻居,则只使用找到的前Nneigh点进行进一步计算,如果找到的反射点较少,则重复第一个邻域以保证Fixed-size数据结构。在每个MSG模块中,创建多个r和Nneigh值不同的邻域。在最后一步中,通过在形状为(Nsample,Nneigh,cin)的邻域张量上应??用过滤器大小为1×1的卷积层,为每个Nsample点生成特征,其中cin是通道数。这会产生一个大小为(Nsample,Nneigh,cout)的张量,在其上应用最终的最大集成层,以便仅考虑具有最高激活的邻居对相应滤波器的贡献。经过MSG模块后,输出点云中的点数比输入点云中的点数少,因此,更深层的点包含越来越多的抽象特征,这些特征提供了关于前一层域点的信息.该过程类似于用于图像处理的卷积网络,其中图像尺寸在每一层都减小。在图2中,显示了雷达反射的空间位置和自运动补偿多普勒速度,并描述了每个MSG模块后输入点云的子采样。图中没有显示MSG模块中每个点生成的高维特征向量。场景的相机图像如图3所示。对于语义分割,来自子采样点云的信息被传播到完整的输入点云。图2摘录了一个用空间坐标和自运动补偿多普勒速度绘制的示例雷达点云。从左到右:输入层的点云和第一、第二和第三个MSG模块之后的二次采样点云。数据累积超过500毫秒。该场景的相机图像可以在图3中找到。图3.与图2相同场景的相机图像。该任务由特征传播模块执行:k层MSG模块之后是k层FP模块,它迭代地将人口较少的点云的特征传播到下一个更高的层。对于密集点云中的每个点pi,计算稀疏点云中三个最近邻的特征向量的加权平均值,并将该特征向量通过一组卷积层后赋值给点pi。跳过来自MSG模块相应级别的连接改进了特征传播。我们的网络结构如图4所示,其中也定义了MSG模块的参数值。B.数据集在本文中,我们仅使用两辆不同的实验车辆车辆A和车辆B收集的真实数据。车辆A配备了四个77GHz传感器,安装在车辆的两个前角和两侧。仅使用传感器的接近模式以检测100米范围内的目标。每个传感器的视野为±45°。车辆B配备了八个雷达传感器,其规格与车辆A的传感器相同。这八个传感器分别安装在汽车的四个角和汽车的左前、右前、左后和右后侧。车辆A(B)的数据集包含超过4.5小时(6.5分钟)的驾驶测量,即收集了超过1亿(500万)条雷达反射,其中300万(10万条)属于6200(191))不同的移动物体。属于同一对象的所有反射都被手动分组并用以下类别的标签进行注释:汽车、卡车、行人、行人群体、自行车和静态。六个类别的反射分布如表一所示。与我们之前的工作不同,噪声没有作为额外的类别进行研究,而是被视为静态的,因为在这项工作中我们的目标是仅从原始点检测和分类真实的动态对象云。我们以前的分类器必须处理不是来自真实对象的聚类和特征向量,因此有必要区分垃圾类和真实对象。这些错误创建的簇和特征向量是由不完善的预处理步骤造成的,我们在这里尽量避免这种情况。表I六个类别的雷达反射分布C.训练和测试在我们实际训练之前,必须固定超参数。MSG模块的个数、样本点的个数Nsample、每个MSG模块中的邻域个数及其各自的半径r、每个样本点的邻域点个数Nneigh、每个模块中卷积层的个数必须确定,尺寸。它是通过检查随机选择的验证集上的合理配置并更改这些配置以进一步优化网络性能来完成的。由于参数空间的巨大规模和相应的计算成本,对参数空间进行完整采样是不可行的。图4描述了最终选择的、性能最佳的架构。Fig.4Structureofournetwork红色箭头表示跳过的连接,从MSG模块提取的特征通过这些连接传递到相应层的FP模块。三个MSG模块的内核大小为[[32,32,64],[64,64,128]],[[32,32,64],[64,64,128]]和[[64,64],128],[64,64,128]]。为了进行评估,我们进行了五重交叉验证。即把数据集分成5组fold,每fold占数据的20%,每fold用于测试一次,其余4fold作为训练数据。仅使用车辆A的数据进行训练。来自车辆B的测量数据仅用于检查我们的分类器的泛化能力。该网络使用随机梯度下降法和基于交叉熵的损失函数和Adam优化方案进行训练。我们使用了发表在中的部分tensorflow源代码由于静态和动态数据之间的较大不平衡(大约9700万到300万),降低了静态类的损失函数的权重使得优化不再分配几乎所有指向静态类。训练持续了30个时期,在此期间进行了数据增强:将随机噪声应用于每个特征维度,从而改变反射的空间位置以及测量的RCS值和自我运动补偿的多普勒速度。速度特征仅针对动态对象的反射进行了修改。此外,为每个动态物体生成一个随机数q∈[0,0.3],并且该物体的每个反射在epoch期间以概率q被忽略,从而改变动态物体的形状和密度。网络本身没有记录单次反射时间的概念,但是在训练时,我们为网络提供了一个长度为T=500ms的时间窗口,这样点云变得更密集,可以考虑每个物体更多的反射。在最早的测量中,将不同时间段的反射转换到车辆坐标系中。点云的输入大小固定为3072次反射。如果在500毫秒长的时间窗口内测量到超过3072次反射,则删除静态类的反射,如果测量到少于3072次反射,则将反射重新采样到所需次数。由于网络结构中的最大池层,这种过采样不会改变语义分割结果。在测试期间,接下来的3072次反射通过网络,按测量时间排序,因此不需要过采样或欠采样。训练在配备NvidiaGeForceGTX1070GPU的Linux工作站上完成。4结果我们的系统是基于6×6混淆矩阵和宏平均F1分数(以下简称F1分数)进行评估的。F1分数对应于精度和召回率的调和平均值[24]。在宏平均中,每个类别对总分的贡献均等——与类别的数量无关——因为每个类别计算一个单独的F1分数,然后对六个值进行平均。A.Best-PerformingArchitecture我们首先展示使用我们的最佳性能架构获得的结果。我们只使用车辆A的数据进行五重交叉验证。除了两个空间坐标x和y(在车辆坐标系中)之外,我们还使用自我运动补偿的多普勒速度和RCS值来丰富输入点云。因此,我们提供4D点云作为输入。得到的混淆矩阵如图5所示。图5与图4描述的网络结构进行5折交叉验证后的相对混淆矩阵。点云的输入特征:x,y,v^r,σ。毫不奇怪,带有静态标签的多数类显示出最高的真阳性值。然而,我们应该意识到,区分属于运动或非运动物体的反射比在多普勒速度上设置一个阈值并将速度低于该阈值的每个反射分类为静态要困难得多。在现实场景中,许多不属于移动物体的反射显示出非零的自运动补偿多普勒速度,这是由里程计误差、传感器偏差、时间同步误差、镜像效应或其他传感器伪影引起的。此外,多普勒速度为零的反射不一定属于静态物体,因为旋转的汽车车轮底部或行人的身体部位(垂直于行走方向移动)也可能不显示径向速度。汽车类中的对象被分类为次优,行人组中也是如此。Truck类的对象经常与Cars混淆。造成这种混淆的原因有两个:首先,在很远的距离上,每个物体只能测量到很少的反射,因此很难推断出物体的空间范围。其次,汽车和卡车实例之间的转换相当平滑,因为例如,大型SUV与小型卡车没有区别。可以从图中推断出的另一个值得注意的行为是行人和行人群体之间的高度混淆。这种行为可能是由我们的训练数据引起的,因为人类标注者有时可以将附近两个行人的倒影分配给个体,从而创建两个行人的实例,但有时这并不容易,而且时间要求太高高的。将所有反射标记为行人组的单个实例。因此,除了复杂的任务本身,网络还必须应对地面实况数据中的不一致。对于很多驾驶任务来说,知道一个区域是否有一个或两个行人并不重要,这样可以将两个类别结合起来产生超过91%的真阳性率。由于数据集高度不平衡,因此仅检查归一化为类计数的相对混淆矩阵可能会产生误导。因此,我们还在图6中呈现了具有绝对值的混淆矩阵。这种可视化突出显示了许多误报动态对象是由网络创建的(图中的最后一行)。这种效果对于汽车类别最为明显:只有68%的预测汽车反射属于动态物体(参见图6的第一列)。然而,对于汽车应用,动态对象的高误报率可能比高误报率更可取。降低静态类损失函数的权重会导致更高的误报值,因此该参数允许我们在误报和漏报之间进行调整。图6.使用图4中描述的网络结构进行5次交叉验证后的绝对混淆矩阵。点云的输入特征:x、y、v^r、σ。应该注意的是,动态和静态反射之间的混淆百分比(图5中混淆矩阵的最后一列)并不代表被忽略的对象的百分比。如果只有一个动态对象的反射被正确分类,但同一对象的其他反射被分类为静态,即使假阴性计数增加,该对象仍然被检测到。B.输入特征的变化为了更深入地了解哪些信息对网络有用,我们用三组不同的输入特征重复五重交叉f1=x,y,v^r,f2=x,y,σ,f3=x,y验证,并将结果与??原始特征进行比较f0=x,y,v^r,σ。在表II中,显示了每个输入配置的F1分数。从这张表可以看出以下几点。呈现给网络的输入特征越多,性能就越高。将每个反射的RCS值添加到输入特征会使F1分数增加少量(从0.7303到0.7425),而添加自我运动补偿的多普勒速度具有更大的效果,将分数增加近0.1。尽管多普勒速度作为一个特征很重要,但值得注意的是,对于输入特征f2和f3,网络的性能仍然远高于随机猜测。这意味着反射的空间上下文是网络的一个非常有表现力的特征,并构成分类步骤的基础,然后使用速度和RCS值的附加特征对其进行分类。表二不同输入特征的分类得分C.测试车辆B数据到目前为止,只有车辆A数据被用于训练和测试。现在,我们使用仅在车辆A数据上训练的网络来预测车辆B测量的反射等级。此设置在两个方面有所不同。一方面,车辆B配备了8个雷达传感器,而不是4个,从而提供了360°的车辆周围视野,这与车辆A的主要正面和侧面设置不同。另一方面,车辆A的数据是在德国城市和乡村道路上收集的,而车辆B仅在美国收集数据。不同的道路和街道设计以及平均较大的汽车对算法提出了挑战。将我们性能最好的网络应用到这个新数据上获得了0.46的F1分数,这明显低于我们使用五折交叉验证获得的值。如果测试车辆前部的四个传感器独立于后部的四个传感器进行评估,则F1分数可以提高到0.48。由于车辆B的数据集与车辆A的数据集相比非常小,因此我们必须谨慎解释结果。然而,很明显改变传感器设置对分类器的性能有一些影响。D.与以前方法的比较在以前的工作中,我们使用DBSCAN进行聚类,使用LSTM网络进行分类,为特征向量序列生成类标签。以前,我们对地面实况集群上生成的特征向量进行了性能测量。在本文中,该方法的评估是通过将特征向量的类标签投影回聚类的原始反射来完成的。我们在同一数据集上训练LSTM网络和我们的新方法,并在同一测试集上评估这两种方法。为了公平比较,LSTM没有在地面真实集群的特征向量上进行测试,而是在通过在点云上应用DBSCAN获得的集群产生的特征向量上进行测试。与我们当前的方法不同,如果特征向量来自不属于真实对象的簇,则LSTM还会学习将它们分类为垃圾。如果LSTM拒绝这样的特征向量,我们在比较中将相关点视为静态。我们的新方法在这个选定的测试集上获得了0.734的F1分数,而DBSCAN+LSTM方法仅获得0.597。新方法创建的假阳性动态对象更少,并且在所有类别中具有更高的真阳性计数。最吸引人的特点是被错误识别为静态的反射器减少了三倍,因此可能被忽视的物体更少。将源自动态对象的反射与来自静态类的反射混淆,不仅源于LSTM的分类结果不佳,而且主要是由于聚类不足,导致LSTM无法对某些反射进行分类。E.可视化在场景的前向传递过程中可视化不同网络层的输出是有用的。图2显示了输入级和三个MSG模块之后示例场景的空间位置和多普勒速度。不同层的卷积核很难可视化,因为只进行了1×1的卷积,所以没有filter本身有意义的图像。但是,我们可以通过网络传递不同的场景,并在最后一个卷积层之前收集网络输出。在这个输出中,我们从每个类别中随机选择1000个点,连同它们的128维特征向量,并将这个高维点云通过t-SNE降维算法传递,以获得二维点云。这在图7中进行了演示,从中可以观察到汽车、卡车、自行车和静态类的四个不同的集群。根据图5中的混淆矩阵,来自行人或行人群体的反射没有很好地分离。来自汽车和自行车类的反射丰富了点云的中心,揭示了那些难以分类的点。最后,图8显示了与图2相同的场景,但现在显示的是预测的类标签而不是多普勒速度。所有三类行人、卡车和汽车都被正确识别。然而,最右边行人身后的一些杂物被错误地归类为行人组,而汽车后面的一些反射也被错误地标记为汽车类。尽管如此,场景的语义信息还是得到了很好的表达。图7.我们网络中倒数第二个卷积层的128维特征向量的二维嵌入。使用非线性t-SNE方法进行嵌入。图8.示例场景的每个反射的预测类标签。手动添加边界框以关联点云和相机图像。5结论与展望本文采用PointNet++作为分类算法,给出了雷达数据的语义分割结果。我们表明我们的新方法优于我们以前的方法,它包括两个现在已经过时的预处理步骤,即聚类和特征生成。此外,我们证明了用RCS值和自我运动补偿多普勒速度可以改善分类结果,其中多普勒速度对分类结果的影响更大。在未来的工作中,我们将着重于两个不同的方面。一方面,将时间信息集成到网络中似乎是有益的。对象的时间演化是一个描述性特征,至少应该改善静态和动态类实例之间的区别。实现这一目标的一种可能方法是将递归神经网络结构集成到PointNet++中。一种更简单的方法是将测量时间戳作为附加功能呈现。另一方面,需要对语义实例分割进行扩展。目前,我们只为每个反射提供一个类标签,没有任何反射所属对象实例的概念。因此,我们不知道场景中有多少不同的物体,而只能知道属于一个物体类别的反射量。类感知聚类算法是从反射生成实例的一种可能性,但结合实例学习和类关联可能会产生更高的整体性能。
