前言
本文介绍使用4D毫米波雷达,基于原始雷达数据,实现目标检测与可行驶区域分割,它是来自2023-12的论文。
会讲解论文整体思路、输入分析、模型框架、设计理念、损失函数等,还有结合代码进行分析。
论文地址:ADCNet: Learning from Raw Radar Data via Distillation
1、模型框架
ADCNet只使用雷达信息,实现车辆检测和可行驶区域分割。
- 输入:原始雷达数据;即ADC数据,由4D毫米波雷达生成。
- 信号处理模块:用一个可学习的信号处理层,来处理原始ADC数据。
- RD特征:信号处理层将ADC数据,转为RD特征,范围-多普勒信息,包含距离和速度信息。
- 主干网络:进一步编码RD特征,隐式地估算目标的方位角。
- 任务头:首先进行RAD张量预训练。在预训练完后,进行微调检测任务头和分割任务头。
- 输出:目标检测和可行驶区域分割结果。
参考FFTRadNet,转为RD立方体,然后隐式地使用来自检测和分割头的监督信号来估算目标的方位角。区别是: ADCNet使用了学习的信号处理层,来处理原始ADC数据。
ADCNet 框架的创新之处:
- 与传统方法不同,新框架是将整个信号处理链整合进一个神经网络,从原始ADC数据开始。
- 设计了一个能够使用原始ADC数据的框架,并预训练了一个主干网络,这个主干网络可以用于各种下游任务。
- 预训练模型会重构完整的距离-方位角-多普勒RAD张量。采用传统信号处理链将会产生的结果,作为标签真值。
- 将完整的信号处理模块(包括DFT、阈值处理和AOA估计)蒸馏到可学习的信号处理模块和主干网络中。
预训练:主干网络首先通过预训练来学习重构RAD张量,这相当于模拟传统的信号处理步骤。
微调:一旦“信号处理模块”和“主干网络”预训练完成,它就可以为特定的下游任务(如目标检测和分割)进行微调。
2、雷达信号处理过程
背景
- 毫米波雷达相比激光雷达(LiDAR)成本较低,并且在恶劣天气条件下更加稳健。
- 但是,雷达生成的点云数据通常比激光雷达的要嘈杂且稀疏。
- 为了克服这些挑战,最近的研究开始关注使用原始雷达数据,而不是处理后的雷达点云数据。
为了提高雷达数据的质量,提出将“一些信号处理的步骤”直接集成到一个深度学习网络中。即,模型参与雷达数据早期阶段的转换处理。
传统雷达信号处理链:
- 在传统的雷达信号处理中,原始ADC数据首先通过两个维度上的离散傅里叶变换(DFT)操作转换成距离-多普勒(RD)立方体。
- 这个RD立方体接着会经过阈值处理,并通过到达角(AOA)估计层来估算目标的方位角。
- 方位角寻找步骤在计算上非常密集,是信号处理链中最消耗计算资源的步骤。
FMCW雷达的工作原理:
- 车载的4D毫米波雷达,通常都是FMCW类型的雷达。
- FMCW雷达通过发射一系列频率逐渐增加的短波(chirp)来工作。这些波在遇到物体时反射回来,被雷达的接收天线捕获。
- 这种频率随时间增加的特性,使FMCW雷达能够同时获取物体的距离和速度信息。
信号数字化:
- 天线捕获的反射信号通过模拟-数字转换器ADC被采样和数字化。
- ADC的作用是将模拟信号(实际反射波)转换成数字形式,使其能够被计算机处理。
- 这个数字化的信号随后传输给雷达传感器中的其他软件模块进行进一步处理。
雷达信号处理链:
- ADC数据通常被组织成数组,每个数组代表一个接收天线的数据。
- 这些数组根据每个chirp波的样本数和数量来确定维度。
- 对这些数组进行信号处理操作,主要是离散傅里叶变换DFT,这样就将数据转换成所谓的距离-多普勒RD数组,提供了探测物体的距离(范围)和速度(多普勒)信息。
看一下完整的雷达信号处理链,如下图所示:
进一步的处理步骤:
- 通常会对RD立方体进行阈值处理,以减少需要处理的距离-多普勒格点。这一步有助于过滤掉不那么重要的数据。
- 然后进行到达角AOA估算算法。AOA估算对于确定反射信号的来向非常重要。
- AOA全称是Angle of Arrival,用来确定反射波的具体到达方向。通过了解波从哪个方向来,雷达可以更准确地定位物体在空间中的位置。
基本的AOA估算方法:
- 一种基础的AOA估算方法是在雷达数据的最后一个轴上,应用另一个离散傅里叶变换DFT。这可以提供一个大致的到达角估算。
- 例如,如果雷达系统有多个接收天线,通过比较不同天线接收到的信号之间的相位差异,可以估算出信号的到达角度。
高级AOA估算技术:
- 对于更精确的AOA估算,可以使用更高级的算法,如迭代自适应方法(IAA)、多重信号分类(MUSIC)和信号参数的旋转不变性估计(ESPRIT)。
- 这些算法通常更复杂,能提供更精确的到达角估算。它们通过对雷达信号进行更深入的分析,能更精确地区分和定位多个物体。
3、输入数据
本文的4D毫米波雷达是高清的,也称为成像雷达。
- 成像雷达在更高的频率上运行,约77GHz;并且有更宽的可用带宽,约4GHz;这使得它们比传统的汽车雷达能提供更高的分辨率。
- 成像雷达还配备有多个发送和接收天线,利用多输入多输出MIMO技术,这种新型雷达能够大幅提升距离和角度分辨率。
低级雷达数据是指未经过信号处理链的峰值检测和阈值处理步骤的雷达数据,比如:
- 距离多普勒(RD)
- 距离-方位角-多普勒(RAD)
- 它们已经历了信号处理阶段(如信号放大、滤波等,但未经过峰值检测和阈值设定)
本文采用 ADC原始雷达数据,作为模型的输入。看一下ADC原始雷达数据、RD数据的维度表示:
补充一下:
峰值检测和阈值设定是雷达信号处理的步骤:
- 峰值检测:这一步骤涉及到识别信号中的显著特征,也就是反射信号中最强的部分。这些“峰值”通常代表了物体的位置。
- 阈值设定:为了过滤掉背景噪声或不重要的信号,会设置一个阈值,只有超过这个阈值的信号才会被认为是有效的。
4、信号处理模块
下面看一下“信号处理模块”的详细设计思路,如下图所示:
可学习的窗口操作作用,主要是减少不连续性:
- 在处理实际信号时,我们通常只能获取信号的一个有限的时间段。在这个时间段的两端,信号从有值突变到无值,这种不连续可以在频域中产生不必要的影响,比如频谱泄露。
- 为了减少这种不连续性带来的影响,可以通过乘以一个窗口函数。
- 窗口函数通常在中间最大,两端逐渐减小至零,这样可以“柔化”信号的起始和结束部分,使其平滑过渡至零。
窗口操作对离散傅里叶DFT的影响:
- 频率分辨率:加窗可以改善DFT的频率分辨率,这是因为它减少了信号两端的突变对频谱的影响。没有加窗的信号在DFT后可能会在频谱中展现出多余的频率成分,这些成分实际上并不是信号本身的一部分,而是由于两端不连续性产生的。
- 频谱泄露:频谱泄露是指信号的能量从其真实的频率分布泄露到其他频率。窗口函数通过减少两端的不连续性,有助于减少这种泄露,使得频谱更加集中于信号的真实成分。
- 信号的真实成分:加窗口操作的目的是确保DFT分析更加集中于信号的真实成分,而不是由于采样窗口造成的人为效应。
实现可学习信号处理模块的一个困难是 DFT 运算是在复杂域中。
- 为了避免在神经网络中使用复杂的运算,将复杂的张量(ADC 数组和 DFT 矩阵)分成实部和虚部,并分别执行乘法,如下图所示。
- 这些是标准运算,可以很容易地 在 Pytorch 等典型深度学习框架中实现。 可学习窗口模块仅涉及一个参数向量,并且将其与前向传递中的输入相乘。
这里的离散傅里叶DFT,是使用"带有扰动的DFT"。这种方法涉及到对传统的离散傅里叶变换(DFT)矩阵的参数进行微小的随机扰动。
- DFT矩阵的初始化:在神经网络中,如果一个线性层(或全连接层)代表一个DFT操作,它的权重可以被初始化为DFT矩阵的值。这样做的直接目的是让网络能够在开始训练之前就拥有执行DFT的能力。
- 引入扰动:"扰动"指的是在这些初始权重上加入微小的随机变化。这可以通过将DFT矩阵与一个小的随机高斯噪声矩阵相加来实现,噪声矩阵的每个元素都有一个非常小的方差(γ)。
- 避免局部最小:神经网络在训练过程中可能会陷入局部最小值,尤其是当权重初始化过于接近一个有效解时。扰动可以帮助网络在训练过程中探索参数空间,避免局部最优解。
- 增强学习能力:通过扰动,网络能够在训练过程中自主学习到数据的特点,并找到更适合数据的DFT表示,而不是仅仅依赖于预设的、固定的DFT操作。
5、预训练
核心目的:
- 为了构建一个神经网络,它能从最基本的雷达信号(ADC数据)开始,学习整个雷达信号处理的任务,最终能够预测出RAD张量。这里的RAD张量包含了物体的距离、速度和角度信息,这些信息是进行物体检测和场景理解的关键。
第一步:生成RAD标签
- 利用离线的信号处理算法,从ADC数据生成距离-方位角-多普勒(RAD)立方体。
- 这一步骤实质上是在模拟传统的信号处理流程,为后续的学习提供数据标签。
- 在第一步中,使用离线的信号处理算法处理ADC数据,这个过程本质上是用来模拟雷达硬件通常会执行的任务,但在一个离线环境中进行。
第二步:监督学习
- 第二步是监督学习,其中(ADC, RAD)对被用作输入和标签,来训练一个可学习的信号处理模块和主干网络。这个过程是监督学习的核心,其中网络被训练来预测与离线算法生成的RAD张量尽可能接近的输出。
预训练过程中的RAD预测
- 使用ADC作为输入,可学习的信号处理模块和主干网络预测RAD张量。
- 这些预测通过以下的损失函数进行监督,其中
Y_RAD
代表生成的RAD张量,而Ŷ_RAD
代表神经网络的预测。
- 为了便于训练,将RAD张量的形状从原始的512 × 751 × 256下采样到128 × 248 × 256。
预训练优势:
- 方位估计的直接改进,通过这种方式预训练网络,网络学会了如何估算方位角。这种能力直接转化为改善了检测和分割任务的性能。网络不仅能识别物体,还能更精确地定位物体在空间中的位置。
- 数据标注的省略,由于原始雷达数据通常对人类来说不可解释,所以人工标注这类数据需要借助传感器融合技术来提供准确的3D标签。这个预训练过程省略了这一繁琐步骤,因为它使用从雷达数据自动生成的标签。
6、微调多任务
在预训练ADCNet的信号处理模块和主干网络后,继续进行多任务设置的微调。
多任务学习设置,用于微调ADCNet骨干网络,以同时执行目标检测和自由空间分割任务。这一过程涉及了特定的损失函数构建和超参数的设定。
目标检测和自由空间分割:
- ADCNet通过添加目标检测和分割头,被微调以同时进行目标检测和自由空间分割。
- 这意味着网络将学习从输入数据中提取用于两个不同任务的特征。
7、损失函数
目标检测分类损失:
- 分类标签
ycls
表示在特征图上的真实分类标签,其中1表示对象存在,0表示不存在。ycls
的形状为Nrange-bins × Nazimuth-bins
。 - 分类损失使用了
focal()
函数,这是一种专门设计用来解决类别不平衡问题的损失函数。
目标检测回归损失:
- 回归目标
yreg
代表了距离和方位的回归目标。网络预测一个距离值和一个方位值,回归目标是距离和方位的余数,与距离和方位格大小相关。 - 回归损失使用平滑的L1损失(也称为Huber损失),这是一种旨在减少离群点影响的损失函数。
可行驶区域分割损失
- 分割标签
yseg(r, a)
表示在位置(r, a)的真实标签,1代表对象存在,0代表不存在。 - 分割损失使用二元交叉熵损失(BCE),这是评估二元分类任务性能的常用损失函数。
整体损失函数
- 训练的总损失是目标检测损失和自由空间分割损失的组合,其中β是一个超参数,用于控制自由空间分割任务的权重。
- α和β是超参数,用于平衡目标检测和自由空间分割两部分的权重。在实际训练过程中,需要通过实验来调整这些参数,以达到最佳的模型性能。
8、实验与效果
车辆检测任务,作者在RADIal数据集进行测试,其中:
- AP:平均精度
- AR:平均召回率
- RE:检测到的物体的距离误差
- AE:检测到的物体的方位角误差
测试集分为简单和困难子集以进行详细比较:
可行驶区域任务,在RADIal数据集进行测试。性能以mIOU来衡量,值越高越好。
替换不同组件和训练方式,实验比较:
- NPT(无预训练)表示的模型是不通过蒸馏使用预训练的模型
- ADC UNet是指主干网络由Resnet+FPN,替换为UNet
- Convert3d是指用它替换“信号处理模块”
效率比较,对于吞吐量和内存测量,批量大小为 20。 *所有测量均在 RTX 3090 上进行。
RAD 预测示例,每个样本的相对绝对误差 (RAE) 的平均值和最大值。
从这些例子中可以看出,经过预训练后,网络能够以非常高的精度预测 RAD 张量。
看一下实际的检测效果:
本文先介绍到这里,后面会分享4D毫米波雷达的其它数据集、算法、代码、具体应用示例。
对于4D毫米波雷达的原理、对比、优势、行业现状,可以参考我这篇博客。
对于4D毫米波雷达——RADIal数据集、格式、可视化 CVPR2022,可以参考我这篇博客。
对于4D毫米波雷达——FFT-RadNet 目标检测与可行驶区域分割 CVPR2022,可以参考博客。
分享完成,本文只供大家参考与学习,谢谢~