开源论文复现:RaCFormer开启雷视融合新范式

Niko曾辉
阅读次数44

在自动驾驶感知系统中,如何在保证性能的同时降低成本,一直是行业追求的核心目标。激光雷达精度高,但价格不菲、怕雨怕雾;纯视觉成本低,但深度不稳定。毫米波雷达+摄像头(雷视融合)的组合,凭借全天候、低成本、强测速的优势,正成为越来越多量产方案的首选。

然而,传统的雷视融合方法往往在BEV特征对齐和雷达信息利用上存在明显短板。如何真正让雷达和视觉“协同作战”,而不是“互添干扰”?

近日,某技术团队成功复现了最新论文《RaCFormer:基于查询的雷达-相机融合高质量3D目标检测》,在nuScenes公开数据集上取得了超越绝大多数雷视融合方法、媲美顶级LiDAR方案的优异表现。

本文将带你一探RaCFormer的核心技术与复现成果。

1. 论文概述

1.1 研究背景与痛点

自动驾驶感知领域,3D目标检测是核心环节。目前主流方案中,激光雷达(LiDAR)虽然精度高但成本昂贵且易受恶劣天气干扰;纯视觉方案成本低,但在深度估计和光照变化剧烈时表现不佳。

毫米波雷达(Radar)与相机的融合方案因具备全天候、低成本优势而备受关注。

然而,现有的雷视融合方法面临两大核心痛点:

  • BEV特征对齐困难:主流方法通常依赖“图像到BEV”的显式转换。如果视觉深度估计不准确,生成的视觉BEV特征会发生畸变,导致其与稀疏的雷达BEV特征在空间上无法完美对齐,直接融合反而引入噪声。

  • 雷达信息利用不充分:传统方法往往仅将雷达点简单投影至BEV平面进行拼接或交叉注意力计算,忽略了雷达原始视角下的几何关联、RCS(雷达散射截面)属性以及多普勒速度等关键时序信息,未能充分发挥雷达在测速和抗干扰方面的独特优势。

1.2 解决的问题

针对上述痛点,本文提出了RaCFormer,一种基于查询(Query-based)的双视角融合框架。

该方法不再强制要求视觉与雷达特征在BEV空间进行硬性对齐,而是以Object Query为媒介,自适应地从原始图像视角和BEV视角同时采样实例相关特征。

通过这一范式转变,RaCFormer有效解决了特征错位问题,并深度挖掘了雷达的时序动态信息与物理属性,实现了高精度、高鲁棒性的3D目标检测。

4bfc2a05-a5e3-4c52-cefa-f63b029ef356-57a7e52c7449469ab00a048ee91a0f37~tplv-21qjs0gem7-jpg.png
4bfc2a05-a5e3-4c52-cefa-f63b029ef356-57a7e52c7449469ab00a048ee91a0f37~tplv-21qjs0gem7-jpg.png

2.方法

RaCFormer作为一种基于查询的3D物体检测框架,集成了雷达和相机输入,核心模块包括图像编码器、柱状编码器、雷达感知深度头、LSS视图变换模块、隐式动态捕捉器以及transformer解码器。

图像编码器从相机帧中提取特征,而柱状编码器处理雷达点并将特征扁平化为BEV。接着,雷达BEV特征通过隐式动态捕捉器捕捉移动元素,雷达点也被重新投影到图像平面并与视觉特征在雷达感知深度头中结合形成深度概率分布D′。

增强后的深度分布与图像特征一起输入LSS模块生成相机BEV特征。

查询作为跨视角和跨模态特征融合的媒介,以可调的圆形分布进行初始化,并由transformer解码器进行细化。

该transformer解码器包含L层,每个解码层包括一个尺度自适应自注意力模块用于动态调整感受野、两个射线采样模块用于提取鸟瞰图和图像视图特征和自适应混合器用于特征聚合,最终分类头和回归头对细化后的查询进行解析,实现精确的目标检测。

4aa43cf8-2fbc-45e5-aead-329f8146b28b-22b3535efec24ac79a4b137bb186d561~tplv-21qjs0gem7-jpg.png
4aa43cf8-2fbc-45e5-aead-329f8146b28b-22b3535efec24ac79a4b137bb186d561~tplv-21qjs0gem7-jpg.png

2.1 核心工作:基于查询的双视角融合范式

RaCFormer摒弃了传统的“先转BEV再融合”思路,设计了跨视角特征融合框架。Object Queries作为可学习的探针,通过变形注意力(Deformable Attention)分别从高分辨率的图像特征图和雷达BEV特征图中采样实例相关特征,并在Query空间内进行融合更新。

这种设计使得模型能够根据每个物体的实际位置和内容,动态选择最可靠的信息源,从根本上规避了全局BEV对齐误差的影响。

2.2 三大关键创新点及其作用

  • 雷达感知的深度预测头
c4ffab41-5cfe-4a46-8791-02ab49024001-53b5e7aee5904283b7a510ebcba79f12~tplv-21qjs0gem7-jpg.png
  • 方案:设计了一个专门的深度估计模块。首先将雷达点的Z坐标归一化为1并投影至图像平面,生成粗略的深度先验图;随后结合雷达散射截面(RCS)属性和像素位置编码,构建雷达感知特征来增强深度预测网络。

  • 作用:利用雷达精确的径向距离信息矫正视觉深度估计的模糊性,特别是改善了垂直方向(Z轴)的定位精度。高质量的深度预测直接提升了从图像平面到Camera BEV的几何准确性,为后续融合奠定了坚实基础。

隐式动态捕捉器

35c4ca54-b8f1-4812-8912-37d90a923154-ba6d484151014639a6b4ab4909e8622a~tplv-21qjs0gem7-jpg.png
  • 方案:引入ConvGRU网络处理多帧雷达BEV特征序列,将历史帧的运动信息累积到当前帧的隐藏状态中,形成包含时序动态信息的增强BEV特征。

  • 作用:显式建模了雷达的多普勒效应和物体运动轨迹。使模型不仅能感知物体的静态位置,还能精准捕捉其速度矢量,大幅提升了对高速运动目标和遮挡目标的检测与跟踪稳定性。增强雷达BEV特征的运动感知能力。

线性递增的圆形查询初始化
761b2523-bda1-4284-a9be-2c5c3a5411fe-9e61a699693240e9ba714fe86bf78e04~tplv-21qjs0gem7-jpg.png
  • 方案:提出了一种新的查询空间分布策略。在极坐标系下,查询点沿同心圆排列,且每圈的查询数量从内向外呈线性递增,而非传统的均匀或径向递减分布。

  • 作用:这一策略精准匹配了车载传感器“近处分辨率高、远处分辨率低”的投影特性。它解决了传统方法中远距离区域查询密度不足导致的漏检问题。

3. 实验

3.1 nuScenes数据集主性能对比

RaCFormer在nuScenes测试集上取得了SOTA(State-of-the-Art)性能,全面超越了现有的雷视融合及纯视觉方法,甚至优于部分激光雷达方法。

38089509-565b-4c9a-8149-e596aa2f6d63-ba6fce48157c49f7bfe87a29c77e42c3~tplv-21qjs0gem7-jpg.png

结果分析:RaCFormer (59.2/65.9,Vovnet-99做骨干网络并采用7个历史帧) 相比HyDRa (57.4/64.2) 提升了1.8%mAP、1.7%NDS。此外,通过引入6个过去帧和6个未来帧,RaCFormer的mAP达到64.9%、NDS达到70.2%,相较于采用更多输入帧的HVDetFusion,分别高出4.0%和2.8%性能跃升显著。更重要的是,它首次使雷视融合方案在nuScenes上达到了与顶级LiDAR方法(VoxelNeXt 64.5/70.0)持平甚至略优的水平,证明了低成本传感器组合的巨大潜力。

结果可视化

c0a36676-9583-4b17-b2ea-4a5e56795071-8b8421fc62f24f47b9c9e924110d0e1f~tplv-21qjs0gem7-jpg.png

图6展示了RaCFormer在图像视角和BEV视角下的定性检测结果,彰显了其在各种复杂环境中的鲁棒性。这些环境包括雨天、黑暗等不利条件,以及物体密集的场景。

3.2 鲁棒性验证

抗恶劣天气测试
cef34aef-d016-45e0-8b33-a5ad3f1c598b-86217bd87cb341e68ecf4a4ccdd9c0ec~tplv-21qjs0gem7-jpg.png

论文为验证雷视融合的影响,根据天气和光照条件将nuScenes验证集划分为四个场景:晴天、雨天、白天和夜晚,将其方法与两个基准方法进行了对比。如表8所示,RaCFormer在所有场景中均优于这两个基准方法。

具体而言,在晴天条件下,本文方法比RayFormer的mAP高出8.5%;在雨天条件下,则高出6.6%。

同样地,白天时段,RaCFormer的表现比RayFormer高出8.4%;夜间时段则高出4.3%。

在雨天和黑暗条件下,RaCFormer分别达到了基于激光雷达的CenterPoint所实现mAP的94%和89%,部分弥补了基于图像的感知技术存在的局限性。

传感器失效测试
1e653467-eb9e-4d54-b74a-24e897553de0-eeabeb53159b4862bbdcc61142f84cbe~tplv-21qjs0gem7-jpg.png

为了评估雷达与摄像头融合带来的系统鲁棒性提升,实验选择性地排除图像或雷达输入测试传感器故障场景下系统的性能。

表9显示,当相机完全失效时,RaCFormer仍能实现27.2%的车辆AP,比CRN高出14.4%。而在缺乏雷达数据时,RaCFormer的车辆AP达到52.8%,较CRN提升了9.0%。

以上鲁棒性测试表明了Racformer在部分传感器失效、恶劣天气下不会崩溃,体现了方法的工程实用价值。

3.3 消融实验

7b149944-1a21-4a38-87ff-082bb2ab2d18-9eacb531e9ae40a4b583824c847fcb27~tplv-21qjs0gem7-jpg.png

表4表明特征解码阶段使用基于查询的双视角特征融合方法相对于拼接操作或可变形交叉注意力方法分别使mAP提升5.0%、NDS提升6.6%。

8e92a514-c481-42a2-9f03-0130abde3ce0-b8d4374de7e342f3b9fad3c0c07e79e8~tplv-21qjs0gem7-jpg.png

在表5中,雷达感知的深度预测模块使Racformer的mAP和NDS总体提升了1.1%、2.1%。
be68cc2a-10c8-44ff-ddb0-20f4e8b88a56-e2fdc44013b3413a98dfb914f60b1aa3~tplv-21qjs0gem7-jpg.png

在表7中,实验在保持查询总次数约为900时,以传统网格分布作为基准(ID=A)评估了圆形分布超参数的影响。

实验发现,外圈密度过高(α=2),深度方向密度过低(k=4)会导致性能下降(ID=C&E),当α=1.25性能最佳。

运动目标检测分析

表6显示了雷达数据和IDC(隐式动态捕捉器)模块对移动物体尤其是缓慢移动物体的速度估计带来了更显著的优化效果,这对预测行人意图至关重要。
9754974d-9abb-4a42-864e-0f63e9d36f44-9dfbc3fd84724a48afc2f9ce530a45b1~tplv-21qjs0gem7-jpg.png

在表6中,实验通过评估来检验隐式动态捕捉器(IDC)的性能。在nuScenes验证集上,针对移动物体的mAP和mAVE,按物体速度划分:静止(0 m/s)、缓慢(<5 m/s)和快速(>5 m/s)物体。仅加入雷达数据,可使缓慢和快速物体的相对mAP分别提升49.2%和48.1%,同时使相对mAVE分别降低30.2%和11.8%。在引入IDC后,RaCFormer进一步将相对mAP分别提升4.3%和3.5%,并将相对mAVE分别降低2.9%和2.0%。雷达数据与IDC模块对缓慢移动物体带来了更显著的优化效果。

4.复现过程

代码链接:https://github.com/cxmomo/RaCFormer

环境配置

复制代码
conda create -n racformer python=3.8 conda activate racformer conda install pytorch==2.0.0 torchvision==0.15.0 pytorch-cuda=11.8 -c pytorch -c nvidia
复制代码
pip install openmim mim install mmcv-full==1.6.0 mim install mmdet==2.28.2 mim install mmsegmentation==0.30.0 mim install mmdet3d==1.0.0rc6 pip install setuptools==59.5.0 pip install numpy==1.23.5
复制代码
sudo apt-get update sudo apt-get install -y libturbojpeg pip install pyturbojpeg pip uninstall pillow pip install pillow-simd==9.0.0.post1
复制代码
cd models/csrc python setup.py build_ext --inplace
数据准备

1.下载nuScenes数据集,然后将其放入data/nuscenes文件夹中或者在配置文件configs/racformer_r50_nuimg_704x256_f8.py中将dataset_root修改为新的数据集路径。

复制代码
wget -c -O v1.0-mini.tgz "https://d36yt3mvayqw5m.cloudfront.net/public/v1.0/v1.0-mini.tgz" wget -c -O v1.0-trainval01_blobs.tar "https://motional-nuscenes.s3.amazonaws.com/public/v1.0/v1.0-trainval01_blobs.tgz" wget -c -O v1.0-trainval02_blobs.tar "https://motional-nuscenes.s3.amazonaws.com/public/v1.0/v1.0-trainval02_blobs.tgz" wget -c -O v1.0-trainval03_blobs.tgz "https://d36yt3mvayqw5m.cloudfront.net/public/v1.0/v1.0-trainval03_blobs.tgz" wget -c -O v1.0-trainval04_blobs.tgz "https://motional-nuscenes.s3.amazonaws.com/public/v1.0/v1.0-trainval04_blobs.tgz" wget -c -O v1.0-trainval05_blobs.tgz "https://d36yt3mvayqw5m.cloudfront.net/public/v1.0/v1.0-trainval05_blobs.tgz" wget -c -O v1.0-trainval06_blobs.tgz "https://d36yt3mvayqw5m.cloudfront.net/public/v1.0/v1.0-trainval06_blobs.tgz" wget -c -O v1.0-trainval07_blobs.tgz "https://d36yt3mvayqw5m.cloudfront.net/public/v1.0/v1.0-trainval07_blobs.tgz" wget -c -O v1.0-trainval08_blobs.tgz "https://motional-nuscenes.s3.amazonaws.com/public/v1.0/v1.0-trainval08_blobs.tgz" wget -c -O v1.0-trainval09_blobs.tgz "https://motional-nuscenes.s3.amazonaws.com/public/v1.0/v1.0-trainval09_blobs.tgz" wget -c -O v1.0-trainval10_blobs.tgz "https://motional-nuscenes.s3.amazonaws.com/public/v1.0/v1.0-trainval10_blobs.tgz" wget -c -O v1.0-trainval_meta.tgz "https://d36yt3mvayqw5m.cloudfront.net/public/v1.0/v1.0-trainval_meta.tgz"  wget -c -O v1.0-test_blobs.tgz "https://motional-nuscenes.s3.amazonaws.com/public/v1.0/v1.0-test_blobs.tgz" wget -c -O v1.0-test_meta.tgz "https://d36yt3mvayqw5m.cloudfront.net/public/v1.0/v1.0-test_meta.tgz"

2.对nuScenes进行预处理,生成预处理文件。

进行预处理要借助mmdetection3d第三方库,修改其中tools/create_ data.py中的dataset、version、root-path、out-dir、extra-tag等配置参数,然后执行create_data.py生成预处理文件:

复制代码
nuscenes_infos_test.pkl nuscenes_infos_train.pkl nuscenes_infos_val.pkl

之后执行racformer中的tools/gen_sweep_info.py生成最终的数据文件:

复制代码
data/nuscenes ├── maps ├── nuscenes_infos_test_sweep.pkl ├── nuscenes_infos_train_sweep.pkl ├── samples ├── sweeps ├── v1.0-test └── v1.0-trainval
训练与评估

下载pretrained ResNet-50,将其放入pretrain/:

复制代码
pretrain ├── cascade_mask_rcnn_r50_fpn_coco-20e_20e_nuim_20201009_124951-40963960.pth

根据自身情况修改配置文件configs/racformer_r50_nuimg_704x256_f8.py,开始训练:

复制代码
CUDA_VISIBLE_DEVICES=0,1,2,3 \ torchrun --nproc_per_node 4 train.py --config configs/racformer_r50_nuimg_704x256_f8.py 或者 CUDA_VISIBLE_DEVICES=0 train.py --config configs/racformer_r50_nuimg_704x256_f8.py

训练设置:显卡(1张NVIDIA L20,显存48G)、batch:2、initial_learning_rate:0.0001、optimizer: AdamW、learning_rate_adjustment:CosineAnnealing。

用训练集完成36个epoch训练共耗时264h,占用显存15.6G。

e18431a0-5f4a-406b-b49c-75c77a961bc6-e9d4058943fe4e71b50886a623eced60~tplv-21qjs0gem7-jpg.png

评价指标:当以ResNet50为图像特征编码器,以256 × 704为输入图像分辨率、使用七个历史帧时,表现略低于官方指标。

复制代码
--- val Set Evaluation Results --- mAP: 0.5221 mATE: 0.4911 mASE: 0.2684 mAOE: 0.4895 mAVE: 0.2137 mAAE: 0.1838 NDS: 0.5964
46947dca-7aca-481a-cd49-6e358eb6c29d-5026e3d521644d11af9c5b6f477475f7~tplv-21qjs0gem7-jpg.png

对racformer进行纯视觉与雷视融合目标检测性能对比,结论与上面表9相同。实验条件:以ResNet50为图像特征编码器,以256 × 704为输入图像分辨率,只使用一个当前帧。

b103e4fb-1523-4951-bd57-199d777d9876-fc25c0db37be49ee97115acbd56b2d1a~tplv-21qjs0gem7-jpg.png

5.测试与结果展示

使用训练好的模型对nuScenes测试集进行推理,编写代码将点云映射到图像上并输出可视化结果。

图中左侧表示环绕车身的六个相机的视角,目标检测预测值与真值上下对比,颜色随目标类别各异;

右侧是鸟瞰图视角,绿色框表示真值,蓝色框表示预测值。

a26e2dbf-cc86-4602-f290-d76772ec7a7f-013e71de9dbc4c83b3ee6c82e7e5f836~tplv-21qjs0gem7-jpg.png

6.总结:雷达不只是“辅助”,而是“主力”

RaCFormer打破了传统BEV空间融合的局限,让雷达在融合中真正发挥主导作用。通过雷达引导深度修正、时序动态建模、圆形查询初始化,系统在低成本传感器组合下,实现了:

• 高精度3D检测(媲美LiDAR)

• 强鲁棒性(恶劣天气、传感器失效)

• 真实可落地(nuScenes验证)

此次RaCFormer的成功复现,不仅验证了论文方法的工程可行性,也为我们在雷视融合领域的技术积累再添一块重要拼图。

欢迎了解更多或讨论交流。

社区介绍

横版.jpg
SuperRadar 是由承泰科技发起并作为核心 sponsor 长期支持的开放技术社区,聚焦感知、AI 算法、多传感器融合、机器人、智能交通、工业安全、低空经济等方向,致力于通过开放技术基座、开发者工具、场景实践和生态共创,推动感知技术进步与智能感知行业发展。

联系小助手:superradar01

本文来源于网络投稿,侵权请联系删除