1. 前言

本专栏的第一篇文章介绍了毫米波雷达的数据处理流程,以及基于点云和DataCube的感知算法。

毫米波雷达:感知算法(一)

近些年来,随着深度学习技术在自动驾驶中的广泛应用,它在毫米波雷达感知中起到的作用也越来越大,其中一个最热门的方向就是研究如何使用底层数据(DateCube)设计端到端的毫米波雷达感知系统。在前文的基础上,这篇文章进一步总结和分析了深度学习在毫米波雷达感知中最新的应用情况。

毫米波雷达的数据形式主要有两种:点云数据和底层数据。因此本文还是按照输入数据的形式来区分不同的感知方法。

2. 基于点云的方法

点云是毫米波雷达最常用的数据形式。虽然非常稀疏(比如每帧64个点),能够提供的信息量有限,但也正是因为数据量小,处理它需要的计算量非常小,适用于低算力系统。

点云数据的使用一般有两种方式:一种是直接使用点数据,一种是把点云转换为网格形式。这跟激光雷达点云的处理方式是类似的。点云这种数据形式对于神经网络,尤其是常用的卷积神经网络来说,并不是非常友好。因此,为了能够利用成熟的卷积网络设计,主流的方法通常都会把点云转换为适于卷积处理的网格形式。不过,也有些研究者尝试使用特殊的神经网络,比如PointNet,GraphNN,来直接处理点云数据。

Radar-PointGNN: Graph Based Object Recognition for Unstructured Radar Point-cloud Data (2021)

这个工作来自于TUDelft。它利用图神经网络(GraphNN)来直接处理点云数据,其核心思路是用GraphConv来提取点云的邻域(或者说上下文,contextual)信息。如下图所示,Radar point首先用MLP进行特征提取,注意这里是对每个点单独处理,并不涉及邻域,因此叫做Non-contextual embeddings。处理完之后的点,再用GraphConv来提取邻域信息,所以这一步是Contextual embeddings。最后,基于提取的特征,每个点都可以去生成一个object proposal。

标题Radar-PointGNN的总体结构

HARadNet: Anchor-free Target Detection for Radar Point Clouds using Hierarchical Attention and Multi-Task Learning (2022)

这个工作来自于Infineon。主要思路是采用激光点云处理中经典的PointNet++方法来提取点云的邻域特征,并用这个网络结构来对进行点云语义分割和速度方向预测(点云的原始doppler信息是相对雷达的径向速度)。这两部分的输出用point-wise attention的方式进行合并后,再进行后续的处理。

标题HARadNet的总体结构

NVRadarNet: Real-Time Radar Obstacle and Free Space Detection for Autonomous Driving (2023)

这个工作来自于NVidia。主要思路是把连续5帧的点云合并(需要做自车运动补偿),然后生成网格特征。网格的大小为800x800,分辨率为25cm,落到每个网格内的点特征求均值作为网格特征。网络结构也非常简单,就是一个U-Net,后面接3个head,分别对应目标分类,物体框预测和freespace分割任务。整个算法的结构非常直观,可以作为点云网格化方法的baseline。

标题NVRadarNet的总体结构

Improved Multi-Scale Grid Rendering of Point Clouds for Radar Object Detection Networks (2023)

这个工作来自于Bosch。主要思路是把点云转成稀疏网格数据,然后用KPConv来从稀疏网格中提取特征。KPConv是一种比较特殊的卷积,可以用来增强点特征 。同时,该方法也采用了多尺度的特征提取,这也是深度学习中常用的手法。

算法框架(左)和KPConv示意(右)标题

Exploiting Temporal Relations on Radar Perception for Autonomous Driving (2022)

这个工作来自于MERL,其特点在于采用自注意力机制来提取时序特征。该方法把雷达点云转成网格形式,并且将前后两帧的数据在特征维度上拼接起来。拼接的方式有两种,一种是当前帧在前,一种是当前帧在后。在每种拼接后的特征图上选取K个响应最大的位置作为目标候选。这个2K个候选合并到一起,通过自注意力机制进行特征提取,这里就隐含了时间维度上的交互。经过时序特征增强后的候选,再利用解码器得到目标的具体信息。

标算法总体结构题

RadarDistill: Boosting Radar-based Object Detection Performance via Knowledge Distillation from LiDAR Features (2024)

这个工作提出用激光雷达的数据来进行知识蒸馏,辅助毫米波雷达神经网络的学习。值得一提的是,该方法在nuScenes数据库上把mAP和NDS两个指标的STOA分别提高了15.5%和29.8%。

RadarDistill的总体结构标题

RadarDistill的总体结构如上图所示。激光和毫米波雷达分支都采用PillarNet结构。毫米波雷达的pillar特征在进行知识蒸馏之前先进行了稠密化处理(CMA模块),这么做是为了可以生成跟激光雷达稠密度类似的特征。接下来,知识蒸馏在底层特征(AFD模块)和高层特征(PFD模块)上分别进行。

在底层特征的蒸馏中,区分active和inactive区域,其实就是区分有响应的区域和没有响应的区域。知识蒸馏关注激光雷达和毫米波雷达都有响应的区域(两者的特征要尽量相似),以及毫米波雷达有响应而激光雷达没有响应的区域(毫米波特征尽量清除)。在高层特征的蒸馏中,标注的目标信息被加入进来,蒸馏只在有目标的区域进行,这样就可以指导毫米波雷达网络去学习激光雷达数据中的目标信息。

nuScenes数据库上的对比标题

SIRA: Scalable Inter-frame Relation and Association for Radar Perception (2024)

毫米波雷达单帧的数据噪声非常大,因此传统的数据处理方法都会采用tracking来充分利用多帧信息,这个结论对于深度学习算法来说同样适用。在SIRA中,雷达点云被转换成网格数据的形式,作者设计了两个模块来处理多帧网格数据,提取时序信息。首先是ETR(Extended Temporal Relation)模块,利用交叉注意力模块来提取多帧之间的信息。这里的注意力是基于窗口机制来设计的,也就是Swin-Transformer的思路。其次是MCTrack(Motion Consistency Track),多帧数据同时来预测目标在当前帧的位置。这个信息可以被用来辅助tracking中的数据关联。

标题SIRA的整体结构

通过对时序信息的有效利用,SIRA在Radiate数据库上的指标超也过了SOTA。

3. 基于底层数据的方法

毫米波雷达的点云非常稀疏,其中大量信息在信号处理阶段被过滤掉了,比如CFAR过滤。这些信息中很多都是噪声,但是也有不少有用的信息,比如多普勒的频谱信息。传统的信号处理方法很难从大量的噪声中提取这些有用信息,而这正是深度学习算法的强项。深度神经网络可以通过数据驱动的方式,从大量数据中学习如何抑制噪声,提取对于下游任务有用的信息。因此,最新的毫米波雷达感知算法大多都是利用深度学习算法来处理pre-CFAR的原始数据。

毫米波雷达最原始的ADC数据,其形式为3D Tensor,3个维度分别对应Sample、Chirp和Antenna。传统的信号处理方法用FFT解析这三个维度,得到Range(距离),Doppler(速度)和Arzimuth(角度),然后用CFAR进行稀疏化。为了降低计算量,在距离和速度解析完之后,CFAR可能会现在RD上进行,然后角度解析只在稀疏的数据上进行。理论上说,深度神经网络可以用来代替3个FFT和CFAR操作。但是,为了降低网络学习的难度,很多时候还是会保留一定的FFT操作,比如Range FFT。深度学习最常用的方式是处理3次FFT之后稠密的RAD数据,当然也有很多方法用深度学习来解析速度和角度。

RADDet: Range-Azimuth-Doppler based Radar Object Detection for Dynamic Road Users(2021)

这个工作来自于渥太华大学和Sensorcortek。网络输入是Range-Azimuth-Doppler数据块,其中range和azimuth作为空间维度,doppler作为特征维度,这样就把RAD数据转换成了2D图像的形式。这也是处理RAD数据最常用的方式。网络结构比较简单,就是一个典型的ResNet。处理之后的特征图,接了两个基于YOLO的head。一个是range-arzimuth,对应极坐标系。另一个转换到XY,对应笛卡尔坐标系。

RADDet的总体结构标题

类似的,PolarNet (2021) 也是采用了RAD的数据表示,doppler作为特征维度,可以用卷积处理,也可以直接采用均值操作压缩到1D。

Multi-View Radar Semantic Segmentation (2021)

这个工作来自于Valeo。前面介绍的两个方法都是在RA视图下处理,doppler作为特征维度。当然,我们也可以采用别的方式,比如在RD视图下处理,把azimuth作为特征,或者在AD视图下处理,range作为特征。多种视图分别处理,然后再统一到RA或者RD视图下,进行下一步任务的处理。这就是multi-view的基本思路,也是RAD处理的另外一种常见方式。

Multi-View的处理流程标题

毫米波雷达:感知算法(一)中介绍了RAMP-CNN采用的也是基于multi-view的方法。

ERASE-Net: Efficient Segmentation Networks for Automotive Radar Signals (2023)

这个工作来自于NXP,是一个两阶段的方法。在第一阶段中,雷达数据采用RA视图表示,并用CenterNet结构来检测候选目标的中心点。在第二阶段中,这些中心点在原始RAD数据上进行邻域扩展,邻域范围内响应大于阈值的点被保留下来,形成点云数据。这个点云数据最终被用来完成后续的语义分割任务。

标题ERASE-Net的总体结构

A recurrent CNN for online object detection on raw radar frames (2023)

这个工作同样来自于NXP,其主要特点是采用LSTM来提取多帧雷达数据中的时序信息。雷达数据采用RA视图来表示,当然也可以扩展到多视图的表示。网络结构整体是一个U-Net的形式,但是在下采样的不同阶段加入了LSTM来提取时序特征。

标题算法总体结构

RadarFormer: Lightweight and Accurate Real-Time Radar Object Detection Model (2023)

这个工作来自于阿联酋的穆罕默德·本·扎耶德人工智能大学,主要分为两个模块。一个模块用来生成RA视图的特征图。与一般方法不同,为了提取doppler维度的特征,这里采用RODNet中的M-Net来处理chirp维度,而不是常用的FFT。得到RA特征图后,另外一个模块采用Vision Transformer(ViT)的一个变种方法(MaXViT)来进一步提取特征。

标题RadarFormer的RA视图生成(上)和ViT特征提取(下)模块

PeakConv: Learning Peak Receptive Field for Radar Semantic Segmentation (2023)

这个工作来自CASIC,其重要的特点在于提出了一种特殊的卷积(PeakConv)来模拟CFAR操作。在传统雷达信号处理中的,CFAR被用来从稠密的RD图中提取目标(局部极值),从而生成稀疏的点云。

CFAR在提取局部极值的时候,需要排除掉周围的一个小的区域(下图蓝色区域),称之为“保护单元”。原因是极值点的周围很可能也是实际存在的目标,并不是背景噪声。那么,用卷积来模拟CFAR的关键就是要实现这个过程,也就是说把蓝色区域排除在卷积的感受野以外。所以我们可以看到,PeakConv的感受野是一个空心的正方形,中间被“挖掉”的部分就是“保护单元”。

标CFAR(左)和PeakConv(右)题

Bootstrapping Autonomous Driving Radars with Self-Supervised Learning (2024)

这个工作讨论了神经网络模型的训练问题。毫米波雷达的数据难以直接标注,通常的做法都是采用同步的激光雷达或者摄像头来辅助标注。但是这些传感器的FOV (Field of View)不同,生成数据的方式也不同,直接把来自一种传感器数据的标注用于训练另一种传感器数据,会有一些问题。比如说,激光雷达可能看到了一个目标,但是这个目标并不在毫米波雷达的FOV之内,或者说这个目标的反射能量非常弱,那么这个目标在训练毫米波雷达的神经网络的时候就不太合适作为正样本。

为了解决标注数据获取困难的问题,文章中提出了两个方案:一种做法是采用自监督学习,充分利用没有标注的雷达数据;另外一个是利用同步的图像数据,辅助自监督学习。

标题自监督学习的算法框架

该方法提出的自监督学习,采用“对比损失”(Contrastive Loss)来进行训练。具体来说,每一个雷达数据(RA视图)通过某种数据增强方法扩展成两个样本,然后经过雷达主干网络进行特征提取后,计算对比损失。直观来说,最小化对比损失就是要拉近同类样本(通过数据增强扩展的两个样本)的距离,拉远异类样本的距离。另一方面,来自图像的特征也跟雷达特征计算对比损失,这可以认为是从图像数据来进行知识蒸馏。但是,笔者个人认为,这里最好可以采用BEV视图的图像特征,这样与雷达特征在坐标上统一,有利于网络的训练。

关于数据增强,作者实验了一些图像神经网络训练中常用的方法,比如裁剪,镜像,平移,旋转等。实验结果表明,旋转和中心裁剪会起到一定的效果。此外,作者提出针在原始雷达数据上进行增强,比如在天线维度上进行dropout,在接收天线数据上增加随机的相位噪声。实验证明,这两种增强方法也能起到很好的效果。

更多推荐