北京大学长安汽车发布毫米波与相机融合模型RCBEVDet:最快能达到每秒28帧

Abstract

三维目标检测是自动驾驶中的关键任务之一。为了在实际应用中降低成本,提出了利用低成本的多视角相机进行3D目标检测,以取代昂贵的LiDAR传感器。然而,仅依靠相机很难实现高精度和鲁棒性的3D目标检测。解决这一问题的有效方法是将多视角相机与经济的毫米波雷达传感器相结合,以实现更可靠的多模态3D目标检测。在本文中,我们介绍了RCBEVDet,这是一种在鸟瞰视角(BEV)下的雷达-相机融合3D目标检测方法。具体而言,我们首先设计了RadarBEVNet用于雷达BEV特征提取。RadarBEVNet由一个双流雷达骨干网和一个RCS(雷达截面)感知的BEV编码器组成。在双流雷达骨干网中,提出了基于点的编码器和基于Transformer的编码器用于提取雷达特征,并通过注入和提取模块来促进两个编码器之间的通信。RCS感知的BEV编码器以RCS作为对象大小的先验信息,将点特征散布在BEV中。此外,我们提出了跨注意力多层融合模块,利用可变形注意力机制自动对齐来自雷达和相机的多模态BEV特征,然后通过通道和空间融合层进行融合。实验结果表明,RCBEVDet在nuScenes和view-of-delft(VoD)3D目标检测基准测试中实现了新的最先进的雷达-相机融合结果。此外,RCBEVDet在21~28 FPS的更快推理速度下,实现了比所有实时相机仅和雷达-相机3D目标检测器更好的3D检测结果。源代码将发布在https://github.com/VDIGPKU/RCBEVDet。

图片

Introction

3D目标检测技术在自动驾驶领域迅速发展,多视角相机因其成本效益和提供高分辨率语义信息而受到青睐。但单一相机存在深度信息捕捉不精确和在恶劣环境下性能下降的问题。结合经济的毫米波雷达传感器,可以提供距离和速度的高精度测量,且不受天气和光照影响,实现更可靠的多模态目标检测。

毫米波雷达虽然数据稀疏且缺乏语义信息,但作为辅助传感器,与多视角相机结合使用,可提供互补信息,提高3D目标检测的准确性。近年来,这种融合方法受到广泛关注。

Method

1、RadarBEVNet

RCBEVDet的整体流程如下图所示。多视角图像被发送到图像编码器以提取特征。然后,应用视图转换模块将多视角图像特征转换为图像BEV特征。同时,通过提出的RadarBEVNet将对齐的雷达点云编码为雷达BEV特征。随后,通过跨注意力多层融合模块融合图像和雷达BEV特征。最后,融合的多模态BEV特征用于3D目标检测任务。

图片

先前的雷达-相机融合方法主要采用为LiDAR点云设计的雷达编码器,如PointPillars。相反,我们提出了RadarBEVNet,特别是用于高效的雷达BEV特征提取。

1.1 双流雷达骨干网(Dual-stream radar backbone:双流雷达骨干网有两个骨干网,即基于点的骨干网和基于Transformer的骨干网。基于点的骨干网学习局部雷达特征,而基于Transformer的骨干网捕获全局信息。具体来说,对于基于点的骨干网,我们采用类似于PointNet的简单结构。如下图所示,基于点的骨干网有S个块,每个块包含一个MLP和一个最大池化操作。输入的雷达点特征首先发送到MLP以增加其特征维度。然后,通过对所有雷达点的最大池化操作提取全局信息,并将其与高维雷达特征连接。至于基于Transformer的骨干网,它包含S个标准的Transformer块,具有注意力机制、前馈网络和归一化层,如下图所示。由于自动驾驶场景的广泛性,直接使用标准的自注意力机制可能使模型优化变得困难。为了解决这个问题,我们提出了一种距离调制自注意力机制(DMSA),以使模型在早期训练迭代中聚合邻近信息,从而促进模型收敛

图片

图片

1.2 RCS感知的BEV编码器:目前的雷达BEV编码器通常根据点的3D坐标将点特征散布到体素空间,并压缩z轴以生成BEV特征。然而,生成的BEV特征是稀疏的,也就是说,大多数像素的特征是零。有些像素很难聚集特征,这可能会影响检测性能。一种解决方案是增加BEV编码器层的数量,但这通常会导致小物体的特征被背景特征平滑掉。为了解决这个问题,我们提出了一种RCS感知的BEV编码器。雷达截面积(RCS)衡量物体被雷达检测到的能力。通常,较大的物体会产生较强的雷达波反射,导致较大的RCS测量值。因此,RCS可以提供物体大小的粗略测量。RCS感知的BEV编码器的关键设计是RCS感知散布操作,它利用RCS作为物体大小的先验,将一个雷达点的特征散布到多个像素,而不是在BEV空间中的一个像素,如图5所示。

图片

2、跨注意力多层融合模块

2.1 利用跨注意力机制进行多模态特征对齐(Multi-modal Feature Alignment with Cross-Attention)。雷达点云经常受到方位误差的影响。因此,雷达传感器可能会获取超出物体边界的雷达点。结果,由RadarBEVNet生成的雷达特征可能会分配到相邻的BEV网格上,导致来自相机和雷达的BEV特征对齐错误。为了解决这个问题,我们使用跨注意力机制动态对齐多模态特征。由于未对齐的雷达点会偏离其真实位置一定距离,我们建议使用可变形跨注意力机制来捕捉这种偏差。

图片

2.2 通道和空间融合(Channel and Spatial Fusion)。在通过交叉注意力对齐来自相机和雷达的BEV特征后,我们提出了通道和空间融合层来聚合多模态BEV特征.

Experiment

1.NuScenes 结果 :我们在 nuScenes 验证集和测试集上将提出的 RCBEVDet 与之前的最先进的 3D 检测方法进行了比较,如表 1 和表 2 所示。在各种主干设置下,RCBEVDet 在推理速度更快的情况下显示出具有竞争力的 3D 物体检测性能。值得注意的是,与之前最好的仅使用相机的方法(SOLOFusion)和雷达-相机方法(CRN)相比,RCBEVDet 使用 ResNet-50 将速度误差(mAVE)分别减少了 14.7% 和 37.5%。此外,RCBEVDet 超越了所有基于相机的 3D 检测方法,展示了使用互补雷达信息以实现更好的 3D 检测的有效性。

图片

如表 1 所示,RCBEVDet 尤其在整体指标(NDS)和速度误差(mAVE)方面显示出竞争力。具体来说,RCBEVDet 在之前的雷达-相机融合方法中表现出色。

图片

2.VoD 结果:为了进一步证明 RCBEVDet 的有效性,我们在 4D 毫米波雷达数据集 view-of-delft (VoD) 上训练了 RCBEVDet。我们在 VoD 验证集上的结果如表 3 所示。在整个区域内,RCBEVDet 比 RCFusion 高出 0.34 mAP。在感兴趣区域,RCBEVDet 也以 69.80 mAP 达到了最先进的结果。

图片

总结

文章的主要贡献可以概括为以下几点:

  1. 提出了一种名为RCBEVDet的雷达-相机多模态3D目标检测器,旨在实现高精度、高效且鲁棒的检测。
  2. 设计了一种高效的雷达特征提取器RadarBEVNet,它包含双流雷达骨干网络,用于提取并编码雷达特征到鸟瞰视图(BEV)中。
  3. 引入了跨注意力多层融合模块,通过可变形跨注意力机制实现雷达和相机特征的鲁棒对齐和融合。
  4. RCBEVDet在nuScenes和VoD数据集上取得了雷达-相机多模态3D目标检测的先进结果,并在实时检测器中实现了精度和速度的最佳平衡。5. RCBEVDet在传感器故障情况下展现出良好的鲁棒性。

引用CVPR2024文章: RCBEVDet: Radar-camera Fusion in Bird’s Eye View for 3D Object Detection

欢迎关注我的公众号auto_driver_ai(Ai fighting), 第一时间获取更新内容。

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

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

相关文章

苍穹外卖--编辑员工和根据id查询员工信息

查询员工信息 编辑员工 package com.sky.controller.admin;import com.sky.constant.JwtClaimsConstant; import com.sky.dto.EmployeeDTO; import com.sky.dto.EmployeeLoginDTO; import com.sky.dto.EmployeePageQueryDTO; import com.sky.entity.Employee; import com.sky…

Instruct-GS2GS:通过用户指令编辑 GS 三维场景

Paper: Instruct-GS2GS: Editing 3D Gaussian Splats with Instructions Introduction: https://instruct-gs2gs.github.io/ Code: https://github.com/cvachha/instruct-gs2gs Instruct-GS2GS 复用了 Instruct-NeRF2NeRF 1 的架构,将基于 NeRF 的三维场景编辑方法迁…

IDEA如何创建原生maven子模块

文件 -> 新建 -> 新模块 -> Maven ArcheTypeMaven ArcheType界面中的输入框介绍 名称:子模块的名称位置:子模块存放的路径名创建Git仓库:子模块不单独作为一个git仓库,无需勾选JDK:JDK版本号父项:…

C++ 是否变得比 C 更流行了?

每年都会出现一种新的编程语言。创造一种新语言来解决计算机科学中的挑战的诱惑很难抗拒。一些资料表明,目前有多达 2,500 种语言,这并不奇怪! 对于我们嵌入式软件开发人员来说,这个列表并不长。事实上,我们可以用一只…

【Linux】网络新兵连

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 引言 在上一篇博客中,我们简单的介绍了一些Linux网络一些比较基本的概念。本篇博客我们将开始正式学习Linux网络套接字的内容,那么我们开始吧! 1.网络中的地址管理 大家一…

uniapp安卓端实现语音合成播报

最初尝试使用讯飞语音合成方式,能获取到语音数据,但是数据是base64格式的,在安卓端无法播放,网上有说通过转成blob格式的url可以播放,但是uniapp不支持转换的api;于是后面又想其他办法,使用安卓插件播报原生安卓语音播报插件 - DCloud 插件市场 方案一(讯飞语音合成) 1.在讯飞…

分享一个Typecho博客系统专用的CloudFlare缓存规则,优化加速一下下!

好久都没有更新Typecho博客了,最近几天明月测试了一套适用于Typecho博客系统的CloudFlare缓存规则,经过近一周时间的测试确定有效,并且加速效果特别突出,今天就无偿分享给大家,也算是为国内Typecho生态添砖加瓦了吧! 总结下来,这套CloudFlare缓存规则带来的好处就是可以…

华为机试HJ108求最小公倍数

华为机试HJ108求最小公倍数 题目: 想法: 要找到输入的两个数的最小公倍数,这个最小公倍数要大于等于其中最大的那个数值,遍历最大的那个数值的倍数,最大的最小公倍数就是输入的两个数值的乘积 input_number_list i…

tableau饼图与环形图绘制 - 5

饼图与环形图绘制 1. 饼图绘制1.1 饼图绘制1.2 显示标签1.3 显示合计百分比1.4 设置百分比格式1.5 添加说明1.6 图像导出 2. 环形图绘制2.1 选择标记为饼图2.1 饼图绘制2.2 双饼图绘制2.3 设置大饼图大小2.4 设置双轴2.5 设置小饼图属性 1. 饼图绘制 酒店价格等级饼图 1.1 饼…

作业/数据结构/2024/7/8

链表的相关操作作业: 1】 按值修改 2】按值查找,返回当前节点的地址 (先不考虑重复,如果有重复,返回第一个) 3】 逆置(反转) 4】释放链表 main.c #include "head.h"int main(int argc, con…

品牌文化五大维度,构建品牌竞争力的秘诀!

品牌文化对于企业的发展和成功至关重要。 品牌文化不仅是企业和消费者之间的纽带,也是企业内部员工的凝聚力。 在当今竞争激烈的市场环境中,建立一个有活力和影响力的品牌文化是每个企业都需要认真思考和实践的事情。 品牌文化的五大维度包括价值观、…

VMware vSAN替换存储解决方案如何选择?

What is vSAN ? 是一款软件定义的企业存储解决方案,支持超融合基础架构系统。vSAN与VMware vSphere 完全集成在一起,作为ESXi Hypervisor内的分布式软件层,通过整合、池化ESXi各个主机上的存储资源,为vSphere虚拟化平…

医疗器械网络安全| 常见安全漏洞与防护措施

医疗器械网络安全顾问​https://link.zhihu.com/?targethttps%3A//www.wanyun.cn/Support%3Fshare%3D24315_ea8a0e47-b38d-4cd6-8ed1-9e7711a8ad5e 一、常见安全漏洞 医疗器械软件在现代医疗体系中扮演着至关重要的角色,然而,随着技术的不断发展&…

(2)滑动窗口算法练习:无重复字符的最长子串

无重复字符的最长子串 题目链接:3. 无重复字符的最长子串 - 力扣(LeetCode) 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是"a…

计算机网络知识汇总

目录 前言 概述 1、互联网的组成 2、端系统之间的两种通信方式 1、客户-服务器方式 2、对等连接方式(P2P) 3、交换技术 4、时延 5、利用率 6、协议 7、计算机网络体系结构 8、ISP 物理层 链路层 网络层 传输层 应用层 前言 最近准备找工作…

Linux 网络--TCP协议收包流程(NAPI机制)

Linux 网络--TCP协议收包流程(NAPI机制) 平台环境简介:宿主机: ubuntu18.04Linux内核源码版本: Linux-4.15网卡驱动: Intel e1000 (ubuntu 虚拟机默认网卡驱动)协议:TCP协议,本文分析收包过程 本…

Python编程学习笔记(3)--- 操作列表

1、遍历列表 遍历列表可以采用for循环的方法,需要对列表中的每一个元素都执行相同的操作。 具体事实如下: name ["ada","cdb","dbc","bad","jinb"] for Name in name:print(Name)运行结果&#x…

html H5 dialog弹窗学习,实现弹窗显示内容 替代confirm、alert

html H5 dialog弹窗学习,实现弹窗内容 替代confirm 框架使用的mui,使用mui.confirm() 弹窗内容过多时,弹窗被撑的到屏幕外去了,使用H5 dialog 标签自定义一个固定大小的弹窗,内容过多时可下拉显示 效果展示 隐私政策内容很多,可以下拉显示 代码 myDialog.css dialog{p…

tomcat 项目迁移,无法将项目作为服务service启动

背景 测试服务器需要迁移到正式服务器上,为了方便省事,将测试服务器上的一些文件直接复制到正式服务器 问题 使用startup启动项目之后,可以直接使用使用tomcat9w启动,或者作为服务service启动的时候,显示无法访问到资源…

STM32实战篇:按键控制LED

按键控制LED 功能要求 有两个按键,分别控制两个LED灯。当按键按下后,灯的亮暗状态改变。实物如下图所示: 由图可知,按键一端直接接地,故另一端所对应IO引脚的输入模式应该为上拉输入模式。 实现代码 #include "…