4D毫米波雷达——ADCNet 原始雷达数据 目标检测与可行驶区域分割

前言

本文介绍使用4D毫米波雷达,基于原始雷达数据,实现目标检测可行驶区域分割,它是来自2023-12的论文。

会讲解论文整体思路、输入分析、模型框架、设计理念、损失函数等,还有结合代码进行分析。

论文地址:ADCNet: Learning from Raw Radar Data via Distillation

1、模型框架

 ADCNet只使用雷达信息,实现车辆检测和可行驶区域分割。

  1. 输入:原始雷达数据;即ADC数据,由4D毫米波雷达生成。
  2. 信号处理模块:用一个可学习的信号处理层,来处理原始ADC数据。
  3. RD特征:信号处理层将ADC数据,转为RD特征,范围-多普勒信息,包含距离和速度信息。
  4. 主干网络:进一步编码RD特征,隐式地估算目标的方位角。
  5. 任务头:首先进行RAD张量预训练。在预训练完后,进行微调检测任务头和分割任务头。
  6. 输出:目标检测和可行驶区域分割结果。

参考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数据的维度表示:

补充一下:

峰值检测和阈值设定是雷达信号处理的步骤:

  1. 峰值检测:这一步骤涉及到识别信号中的显著特征,也就是反射信号中最强的部分。这些“峰值”通常代表了物体的位置。
  2. 阈值设定:为了过滤掉背景噪声或不重要的信号,会设置一个阈值,只有超过这个阈值的信号才会被认为是有效的。

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。

预训练优势:

  1. 方位估计的直接改进,通过这种方式预训练网络,网络学会了如何估算方位角。这种能力直接转化为改善了检测和分割任务的性能。网络不仅能识别物体,还能更精确地定位物体在空间中的位置。
  2. 数据标注的省略,由于原始雷达数据通常对人类来说不可解释,所以人工标注这类数据需要借助传感器融合技术来提供准确的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,可以参考博客。

分享完成,本文只供大家参考与学习,谢谢~

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/357295.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为什么说语言的主要作用不是交流而是思考

一般人常常以为,语言最重要的作用是帮助人们表达思想和情感。但最近偶然看到对乔姆斯基的一个采访,他认为:语言的主要作用不是交流,而是思考的工具,即语言是帮助人们组织和理解思维的过程。以下是几点说明为什么说语言…

Vue-43、Vue中组件自定义事件

1、给学生绑定atguigu事件 2、在组件内触发事件 第二种写法 传多个参数。 解绑 解绑一个事件 解绑多个自定义事件 this.$off([xxx1,xxx2]);解绑所有事件 this.$off();总结

宝塔控制面板配置SSL证书实现网站HTTPS

宝塔安装SSL证书提前申请好SSL证书,如果还没有,先去Gworg里面申请,一般几分钟就可以下来,申请地址:首页-Gworg官方店-淘宝网 一、登录邮箱下载:Gworg证书文件目录 ,都会有以下五个文件夹。宝塔…

【算法】怪盗基德的滑翔翼(最大上升子序列)

题目 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。 而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。 有一天,怪盗基德像往常一样偷走…

一进一出模拟量信号隔离变送器

一进一出模拟量信号隔离变送器 捷晟达科技推出一进一出模拟量信号隔离变送器 深圳捷晟达科技推出一款具有隔离,放大,转换保护功能的一进一出的小型隔离变送器设备,该设备可以把模拟量(4-20mA/0-10V等)标准信号转换用户需要的信号,该产品具有抗EMC干扰,可以有效的保护后级设备安…

第一节课,用户管理--后端初始化,项目调通。二次翻工2

一、网址来源: 快速开始 | MyBatis-Plus (baomidou.com) 进程: ​ 二、[此处不看]添加测试类,看下效果 2.1 参考 一、第一节课,用户管理--后端初始化,项目调通-CSDN博客 ​ 2.2 新建 SampleTest ​ 2.3 复…

Android Studio 下载安装配置使用入门【2024年最新】

前言: Android Studio 是谷歌官方提供的主要集成开发环境(IDE),专为 Android 平台应用开发而设计。它基于 JetBrains 的 IntelliJ IDEA 软件,并在此基础上增加了大量针对 Android 开发的定制功能。Android Studio 通过…

【AI视野·今日Robot 机器人论文速览 第七十六期】Fri, 12 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Fri, 12 Jan 2024 Totally 12 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Topology-Driven Parallel Trajectory Optimization in Dynamic Environments Authors Oscar de Groot, Laura Ferranti, Dari…

Java 对部分接口返回数据进行加密,或其他处理

业务场景:后端项目中分为PC端和移动端接口,移动端为例如 mobile 开头的URl,需求为调用移动端接口时,对返回数据进行加密,PC端不加密 import cn.hutool.core.date.DatePattern; import cn.hutool.json.JSONConfig; impo…

【C/C++ 02】希尔排序

希尔排序虽然是直接插入排序的升级版本,和插入排序有着相同的特性,即原始数组有序度越高则算法的时间复杂度越低(预排序机制),但是是不稳定排序算法。 为了降低算法的时间复杂度,所以我们需要在排序之前尽…

力扣hot100 子集 回溯 超简洁

Problem: 78. 子集 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 参考题解 复杂度 时间复杂度: 添加时间复杂度, 示例&#xff1a; O ( n ) O(n) O(n) 空间复杂度: 添加空间复杂度, 示例&#xff1a; O ( n ) O(n) O(n) Code class Solution {List<Li…

HCIA---OSPF实验

题目&#xff1a; 一:IP规划及配置 IP规划没有要求&#xff0c;所以我们可以去任意规划&#xff0c;只要每个网段不要重复就好 规划的IP 配置IP 先在每个ABR设备上配置环回和接口IP&#xff0c;然后每台设备上使用display ip interface brief都查看一下 R1&#xff1a; R3&…

《2023直播电商数字化引领者》&《2023最受欢迎直播电商消费品牌TOP100》榜单发布

“ 独行快&#xff0c;众行远” 文 | 云舒&凯丰 编辑 | 小白 出品&#xff5c;极新&#xff06;北京电子商务协会 2024年1月27日&#xff0c;由极新、北京电子商务协会主办的「2024未来直播电商科技峰会」在北京首钢园三高炉A馆报告厅盛大召开。本届峰会以“预见”为主…

方案:将vue项目放在SpringMVC中,并用tomcat访问

需要先将项目生成一次war包才能访问项目的webapp文件夹下的资源&#xff0c;否则tomcat的webapp文件夹下面不会生成对应资源文件夹就无法访问。 问题&#xff1a;目录如下&#xff1a; 今天我测试了一下将vue打包后&#xff0c;放入webapp下面访问&#xff0c;却发现vue项目无…

华为radius认证

组网需求 如图1所示&#xff0c;用户同处于huawei域&#xff0c;Router作为目的网络接入服务器。用户需要通过服务器的远端认证才能通过Router访问目的网络。在Router上的远端认证方式如下&#xff1a; Router对接入用户先用RADIUS服务器进行认证&#xff0c;如果认证没有响应…

系列五十、idea父子项目忽略部分文件

一、idea父子项目忽略部分文件 **/mvnw **/mvnw.cmd **/.mvn **/target/ .idea **/.gitignore

分类预测 | Matlab实现SCN-Adaboost随机配置网络模型SCN的Adaboost数据分类预测/故障识别

分类预测 | Matlab实现SCN-Adaboost随机配置网络模型SCN的Adaboost数据分类预测/故障识别 目录 分类预测 | Matlab实现SCN-Adaboost随机配置网络模型SCN的Adaboost数据分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现SCN-Adaboost随机配置网…

VRRP协议原理

目录 VRRP的产生单网关的缺陷多网关存在的问题VRRP基本概述VRRP基本结构状态机 VRRP主备备份工作过程VRRP的工作过程如果Master发生故障&#xff0c;则主备切换的过程如果原Master故障恢复&#xff0c;则主备回切的过程 VRRP联动功能 VRRP负载分担工作过程 VRRP的产生 单网关的…

Jupyter notebook文件默认存储路径以及更改方法

目录 1、文件默认存储路径怎么查&#xff1f;2、文件默认存储路径怎么改&#xff1f; 转自&#xff1a;https://blog.csdn.net/fengyeer20120/article/details/109483362 初次使用Jupyter Notebook&#xff0c;确实好用啊&#xff01;但安装Anaconda后&#xff0c;打开Jupyter …

top命令

在linux运维中&#xff0c;经常用到 top 命令&#xff0c;详细介绍一下&#xff1a; 字段介绍 时间&#xff1a; 当前时间系统运行时间当前登录用户数系统负载&#xff0c;即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值 任务&#xff1a; 进程总…