【论文笔记】CRN: Camera Radar Net for Accurate, Robust, Efficient 3D Perception

news2025/6/18 9:48:44

原文链接:https://arxiv.org/abs/2304.00670

1. 引言

  本文提出两阶段融合方法CRN,能使用相机和雷达生成语义丰富且位置精确的BEV特征。具体来说,首先将图像透视特征转换到BEV下,该步骤依赖雷达,称为雷达辅助的视图变换(RVT)。由于转换得到的BEV特征并非完全精确,接下来的多模态特征聚合(MFA)层使用注意力机制将BEV特征编码为统一的特征图。
  CRN有如下3个特点:

  1. 精确。仅使用低成本的相机和雷达,就能达到和激光雷达相当的检测性能。
  2. 鲁棒。即使在一个模态完全失效的情况下,CRN也有鲁棒的性能。
  3. 高效。使用很小的额外计算成本,就能显著提高性能,有利于实时且长距离的感知。

3. 相机-雷达网络(CRN)

  如下图所示为本文CRN的网络结构。
在这里插入图片描述

3.1 准备工作

  单目3D方法:可分为两类,即基于几何的方法和基于学习的方法。
  基于几何的方法通过预测深度 D D D作为显式的中间表达,将透视图特征 F F F ( u , v ) (u,v) (u,v)转换为 ( d , u , v ) (d,u,v) (d,u,v),再按下式转换为3D ( x , y , z ) (x,y,z) (x,y,z)
F 3D ( x , y , z ) = M ( F 2D ( u , v ) ⊗ D ( u , v ) ) F_\text{3D}(x,y,z)=M(F_\text{2D}(u,v)\otimes D(u,v)) F3D(x,y,z)=M(F2D(u,v)D(u,v))其中 M M M表示视图变换模块(如BEVDepth中的体素池化操作); ⊗ \otimes 表示外积。
  基于学习的方法使用映射网络隐式地建模3D到2D的投影:
F 3D ( x , y , z ) = f ( P x y z , F 2D ( u , v ) ) F_\text{3D}(x,y,z)=f(P_{xyz},F_\text{2D}(u,v)) F3D(x,y,z)=f(Pxyz,F2D(u,v))其中 f f f为透视图到BEV的映射函数(如MLP或交叉注意力); P x y z P_{xyz} Pxyz为3D体素。
  两种方法的关键都是获取空间精确的3D特征 F 3D ( x , y , z ) F_\text{3D}(x,y,z) F3D(x,y,z)。本文使用雷达提升视图变换性能。
  雷达特征:雷达有3D张量和点云等表达。雷达点云表达和激光雷达点云相比,分辨率和精度都不够;且更加模糊、富含噪声、无俯仰角测量。因此,雷达可能在有物体的地方没有测量,而在无物体的地方有测量。雷达感知任务若直接使用激光雷达方法会使复杂场景下的性能受限。本文自适应地利用雷达,以克服其稀疏性和模糊性。

3.2 雷达辅助的视图变换(RVT)

  图像特征编码与深度分布:本文使用图像主干(如ResNet或ConvNeXt)和FPN为每个视图的图像获取下采样的特征图 F I F_I FI。然后类似LSS方法,使用额外的卷积提取图像内容特征 C I P V ∈ R N × C × H × W C^{PV}_I\in\mathbb{R}^{N\times C\times H\times W} CIPVRN×C×H×W和像素的深度分布 D I ∈ R N × D × H × W D_I\in\mathbb{R}^{N\times D\times H\times W} DIRN×D×H×W
C I P V = Conv ( F I ) , D I ( u , v ) = Softmax ( Conv ( F I ) ( u , v ) ) C^{PV}_I=\text{Conv}(F_I),D_I(u,v)=\text{Softmax}(\text{Conv}(F_I)(u,v)) CIPV=Conv(FI),DI(u,v)=Softmax(Conv(FI)(u,v))其中 ( u , v ) (u,v) (u,v)代表图像平面的坐标, D D D是深度区间数。
  雷达特征编码与雷达占用图:首先将雷达点云投影到多视图图像上,然后体素化为图像视锥体素 V P F V ( d , u , v ) V^{FV}_P(d,u,v) VPFV(d,u,v)。其中 u , v u,v u,v是图像的宽、高像素单位, d d d是深度方向的度量单位。由于雷达不含高度信息,使用柱状表达(不考虑 v v v)。非空柱体被PointNet和稀疏卷积编码为特征 F P ∈ R N × C × D × W F_P\in\mathbb{R}^{N\times C\times D\times W} FPRN×C×D×W。类似图像分支,也提取图像视锥内的雷达内容特征 C P F V ∈ R N × C × D × W C^{FV}_P\in\mathbb{R}^{N\times C\times D\times W} CPFVRN×C×D×W和雷达占用图 O P ∈ R N × 1 × D × W O_P\in\mathbb{R}^{N\times 1\times D\times W} OPRN×1×D×W。这里的卷积被用在俯视图 ( d , u ) (d,u) (d,u)而非 ( u , v ) (u,v) (u,v)上:
C P F V = Conv ( F P ) , O P ( d , u ) = σ ( Conv ( F P ) ( d , u ) ) C^{FV}_P=\text{Conv}(F_P),O_P(d,u)=\sigma(\text{Conv}(F_P)(d,u)) CPFV=Conv(FP),OP(d,u)=σ(Conv(FP)(d,u))其中 σ \sigma σ是Sigmoid函数。
  视锥视图变换:给定深度分布 D I D_I DI和雷达占用图 O P O_P OP,使用外积将图像内容特征图 C I P V C_I^{PV} CIPV转换到图像视锥视图 C I F V ∈ R N × C × D × H × W C_I^{FV}\in\mathbb{R}^{N\times C\times D\times H\times W} CIFVRN×C×D×H×W:
C I F V = Conv [ C I P V ⊗ D I ; C I P V ⊗ O P ] C_I^{FV}=\text{Conv}[C_I^{PV}\otimes D_I;C_I^{PV}\otimes O_P] CIFV=Conv[CIPVDI;CIPVOP]其中 [ ⋅ ; ⋅ ] [\cdot;\cdot] [;]表示沿通道维度的拼接。由于雷达无高度信息,且为了节省存储空间,将图像上下文特征使用求和进行高度压缩,如下图所示。
在这里插入图片描述
  BEV变换:最后,相机和雷达在视锥视图内的上下文特征图 F F V = { C I F V , C R F V ∈ R N × C × D × H × W } F^{FV}=\{C_I^{FV},C_R^{FV}\in\mathbb{R}^{N\times C\times D\times H\times W}\} FFV={CIFV,CRFVRN×C×D×H×W}被视图变换模块 M M M转换到BEV空间 R C × 1 × X × Y \mathbb{R}^{C\times1\times X\times Y} RC×1×X×Y下:
F B E V = M ( { F i F V } i = 1 N ) F^{BEV}=M(\{F_i^{FV}\}_{i=1}^N) FBEV=M({FiFV}i=1N)具体来说,使用BEVStereo的体素池化操作,并将每个BEV网格内的求和修改为取均值,以使得BEV特征图对距自车的距离更加一致(因为透视投影会使近距离的BEV网格与更多的视锥网格相关联)。

3.3 多模态特征聚合(MFA)

  动机:传统的通道拼接或求和融合方法不能处理图像特征空间错位或雷达模糊问题,本文使用自适应的方法,利用注意力机制进行融合。
  多模态可变形交叉注意力(MDCA):交叉注意力的计算花费与序列长度为二次关系,即 O ( N 2 ) , N = X Y O(N^2),N=XY O(N2),N=XY。因此本文使用可变形交叉注意力,其复杂度与输出大小为线性关系,即 O ( 2 N + N K ) O(2N+NK) O(2N+NK),其中 K ≪ N K\ll N KN为采样数。
  给定拉长的BEV上下文特征图 x m = { C I B E V , C R B E V ∈ R C × X Y } x_m=\{C_I^{BEV},C_R^{BEV}\in\mathbb{R}^{C\times XY}\} xm={CIBEV,CRBEVRC×XY},首先将 x m x_m xm拼接后投影为 C C C维查询向量: z q = W z [ LN ( C I ) ; LN ( C P ) ] z_q=W_z[\text{LN}(C_I);\text{LN}(C_P)] zq=Wz[LN(CI);LN(CP)],其中 W ∈ R C × 2 C W\in\mathbb{R}^{C\times 2C} WRC×2C为线性投影,LN是LayerNorm。然后特征图通过多模态可变形交叉注意力聚合:
MDCA ( z q , p q , x m ) = ∑ h H W h [ ∑ m M ∑ k K A h m q k ⋅ W h m ′ x m ( ϕ m ( p q + Δ p h m q k ) ) ] \text{MDCA}(z_q,p_q,x_m)=\sum_h^HW_h\left[\sum_m^M\sum_k^KA_{hmqk}\cdot W'_{hm}x_m(\phi_m(p_q+\Delta p_{hmqk}))\right] MDCA(zq,pq,xm)=hHWh[mMkKAhmqkWhmxm(ϕm(pq+Δphmqk))]其中 h , m , k h,m,k h,m,k索引注意力头、模态和采样点。为更好地利用各模态信息,本文分开为 x m x_m xm使用注意力权重 A h m q k A_{hmqk} Ahmqk和采样偏移量 Δ h m q k \Delta_{hmqk} Δhmqk。细节见附录B。
  稀疏聚合:虽然MDCA有线性复杂度,但当感知范围增大时仍是瓶颈。本文提出进一步减小输入查询数的方法,仅使用前 k k k置信度的特征。给定BEV深度分布 D I D_I DI和雷达占用图 O P O_P OP,利用 max ⁡ ( D I , O P ) \max(D_I,O_P) max(DI,OP)作为概率,从 z q ∈ R C × N z_q\in\mathbb{R}^{C\times N} zqRC×N中选择 N k ≪ N N_k\ll N NkN个特征 z q N k ∈ R C × N k z_q^{N_k}\in\mathbb{R}^{C\times N_k} zqNkRC×Nk。这样,复杂度与感知范围无关,利于长距离感知。

3.4 训练目标与任务头

  本文类似BEVDepth,将激光雷达投影到图像上得到深度图,以其为目标训练深度估计网络。类似CenterPoint,预测中心热图。当使用稀疏聚合方式时,在得到目标深度图前过滤边界框外的激光雷达点云,并将3.2节第一式中的Softmax函数替换为Sigmoid函数,使得包含前景物体的特征网格有高概率。

4. 实验

4.1 实验设置

  实施细节:图像分支类似BEVDepth;雷达分支积累了多帧雷达点云,归一化了RCS和多普勒维度;BEV特征图也进行了多帧积累。详见附录C。

4.2 主要结果

  实验表明,CRN能在所有相机单一模态以及相机雷达融合方法中排名第一,且有更快的速率。即使使用小的输入图像尺寸和图像主干网络,CRN也能达到其他方法的性能,且速度能高出一个数量级。CRN还能超过一些激光雷达方法。

4.3 消融研究

  使用三个基准方案:BEVDepth(相机)、CenterPoint(雷达)、BEVFusion(相机+雷达)。
  视图变换:仅使用图像深度估计结果进行视图变换的性能较差,因为深度估计的精度较低;替换为使用雷达占用网格辅助视图变换后,会带来性能下降,因为雷达稀疏而模糊。但将两者结合起来能显著提高性能。对于激光雷达,该方法也有一致的性能提升。
  特征聚合:BEVFusion使用卷积非自适应地融合特征,性能较差,增加融合网络层数也难以提高性能;但本文的方法在仅使用MFA的情况下,就能超过带RVT的BEVFusion的性能。此外,RVT在MFA上的性能提升不如在BEVFusion融合方式上的性能提升显著,这是因为MFA能处理多模态特征的空间不对齐问题。

4.4 分析

  扩大感知范围:将感知范围扩大1倍,即使是多帧积累的激光雷达,在远处的点云也很稀疏,导致性能大幅下降。CRN在30m外就能超过激光雷达的性能,且有更高的FPS。使用稀疏聚合可进一步加速推断,同时保持相当的性能。
  鲁棒性:在单帧输入(不积累)情况下,随机丢弃图像和雷达输入。训练时使用数据增广。CRN不仅在所有输入均有效时能超过BEVFusion,在传感器失效情况下也能保持更高的性能。当完全丢弃雷达模态时(此时网络相当于BEVDepth),BEVFusion的性能相比BEVDepth大幅下降,而CRN仅有略微下降。这一优势来自自适应融合方法。
  推断时间:相比BEVDepth,CRN仅在雷达编码和融合模块引入了可忽略的计算,但性能有极大的提升;CRN使用小尺寸图像输入时,在FPS和性能上均比大尺寸图像输入的BEVDepth更高。使用推断优化方法可能进一步减小延迟。

附录

B. 多模态可变形交叉注意力(MDCA)

  给定查询 z q z_q zq和多模态特征图 x m = { C I , C P ∈ R C × H × W } x_m=\{C_I,C_P\in\mathbb{R}^{C\times H\times W}\} xm={CI,CPRC×H×W},令 q q q索引查询元素, p q ∈ [ 0 , 1 ] 2 p_q\in [0,1]^2 pq[0,1]2 q q q的归一化参考点坐标。则MDCA定义为:
MDCA ( z q , p q , x m ) = ∑ h H W h [ ∑ m M ∑ k K A h m q k ⋅ W h m ′ x m ( ϕ m ( p q + Δ p h m q k ) ) ] \text{MDCA}(z_q,p_q,x_m)=\sum_h^HW_h\left[\sum_m^M\sum_k^KA_{hmqk}\cdot W'_{hm}x_m(\phi_m(p_q+\Delta p_{hmqk}))\right] MDCA(zq,pq,xm)=hHWh[mMkKAhmqkWhmxm(ϕm(pq+Δphmqk))]其中 h , m , k h,m,k h,m,k索引注意力头(总数为 H H H)、模态 { C I , C R } \{C_I,C_R\} {CI,CR}和采样点(总数为 K K K)。 W h ∈ R C × C v W_h\in\mathbb{R}^{C\times C_v} WhRC×Cv是第 h h h个头的输出投影矩阵, W h m ′ ∈ R C v × C W'_{hm}\in\mathbb{R}^{C_v\times C} WhmRCv×C是第 h h h个头、模态 m m m的输入值投影矩阵。 C v = C / H C_v=C/H Cv=C/H W h m ′ W'_{hm} Whm被用在每个模态上,使得MDCA能实现鲁棒融合。 A h m q k A_{hmqk} Ahmqk Δ h m q k \Delta_{hmqk} Δhmqk是输入查询 z q z_q zq通过线性投影得到的,且 A h m q k A_{hmqk} Ahmqk被归一化为 ∑ m M ∑ k K A h m q k = 1 \sum_m^M\sum_k^K A_{hmqk}=1 mMkKAhmqk=1。函数 ϕ m ( p q ) \phi_m(p_q) ϕm(pq)将归一化坐标 p q p_q pq进行缩放,以免两模态有不同的形状。
  MDCA可克服参考点周围的空间不对齐,并使融合是自适应的。

C. 实施细节

C.1 预处理和超参数

  图像分支:使用SECONDFPN将图像主干网络的输出拼接到统一尺度。深度空间被均匀离散化。雷达点投影到图像上并在图像视锥坐标系内体素化后,使用SECOND和SECONDFPN进行特征提取和占用图生成。

C.2 训练设置

  图像主干进行了预训练。
  图像和雷达的透视图使用了相同的缩放、裁剪、水平翻转数据增广。随机旋转对RVT的高度压缩会有不利影响,因此没有使用。
  BEV增广使用随机X/Y轴翻转,全局旋转和缩放。GT采样增广未被使用。

C.3 消融研究的基准方案

  BEVDepth和CenterPoint均未使用类别平衡的分组和采样策略(CBGS)和GT采样。对于BEVFusion,本文使用BEVDepth获取图像BEV特征,而非原始的LSS。

C.4 长距离感知的细节

  扩大感知范围相应地增加了获取的BEV特征图大小(未改变BEV分辨率)。
  训练和测试时均没有过滤掉不含点的真实边界框。

D. 额外的实验结果

D.1 设计决策

  时序帧:BEV特征输入到BEV主干网络前,通过通道拼接和卷积聚合积累多帧BEV特征。由于无需时序输入生成BEV特征图,故该操作不会增加延迟。
  实验表明,多帧BEV特征图能显著提升mAP,mATE和mAVE。但mAOE在此过程中不稳定。
  稀疏聚合:使用稀疏聚合能在少量降低性能的同时大幅提高推断速率。相比mAP,其他的TP指标下降更大,可能是由于相比于分类网络,回归网络更难以从稀疏分布的BEV特征中回归物体属性。

D.2 天气和光照分析

  激光雷达在雨天产生的噪声,或图像在夜间的低亮度使得激光雷达或图像单一模态的方法检测比较困难。但CRN在各种天气和光照下相比图像单一模态方法均有一致的大幅性能提升,表明本文方法的鲁棒性。

D.3 逐类分析

  相比BEVDepth,CRN在金属类别或常见类别有显著的性能提升。在非金属类别上,相比其余雷达图像融合方法,CRN的性能提升也更加显著。这可以归功于CRN的融合模块。

E. 可视化

  可视化表明,雷达的融合可帮助检测被遮挡物体或低亮度条件下的物体。无雷达检测的物体也能通过图像检测到。但在物体属于稀有类别且存在雷达检测时,可能会导致误检。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据技术(入门篇) --- centos7安装CDH6.2集群

随着信息化时代的进步,业务系统的数据量出现了爆发式的增长,带来的不良结果就是数据库的数据量剧增,而部分业务系统需要实时数据,有些业务系统需要离线计算后的数据,所以就产生了大数据技术,因此最近在学习…

面试官:说一说mysql的varchar字段最大长度?

在mysql建表sql里,我们经常会有定义字符串类型的需求。 CREATE TABLE user (name varchar(100) NOT NULL DEFAULT COMMENT 名字 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 ;比方说user表里的名字,就是个字符串。mysql里有两个类型比较适合这个场景。 ch…

剧本拆分如何用ai人工智能辅助完成

随着现代技术的发展,人工智能在电影制作领域中的应用已经越来越普遍。其中,辅助剧本拆分是人工智能技术的一种重要应用。人工智能可以帮助电影制作人员更快速、更准确地进行剧本拆分,提高制作效率和创作质量。 剧本拆分是电影制作中非常重要的…

二叉树的链式结构

思维导图 二叉树的创建 先定义一个二叉树链式结构的结构体 typedef int BTDatatype; typedef struct BinaryTreeNode {struct BinaryTreeNode* left;struct BinaryTreeNode* right;BTDatatype data; }BTNode; 手搓一个二叉树(前序遍历的方式创建二叉树放到OJ题…

nm命令 以及 C++11 编译出现找不到stringstream 以及 undefined reference to `std::runtime_error

最近在学习ZLMediaKit 源码 里面用到了很多C11 的知识 本地有一个 ubuntu18.04 的服务器 源码下下来发现 直接编译报很多错误 比如 找不到 std::runtime_error 找不到 stringstream 等等等 后来偶然的机会发现 是libstdc.so.6 太老了 找一个新的 替换掉这个就可以 …

新 Nano(五)自己写个库,读 DHT11 / DHT22

DHT11 这款温湿度传感器 几乎是所有 MCU 入门第一个传感器, 现在看来有些不合时宜, 毕竟过于廉价,数据不太靠谱,远不如 AHT10 好用。早年买了两个,按例程读出数据后就吃灰了。某日看到有人说自己按datasheet去读&#…

c#快速入门~在java基础上,知道C#和JAVA 的不同即可

☺ 观看下文前提:如果你的主语言是java,现在想再学一门新语言C#,下文是在java基础上,对比和java的不同,快速上手C#,当然不是说学C#的前提是需要java,而是下文是从主语言是java的情况下&#xff…

CloudIDE 如何提升研发效能

原文作者:行云创新技术总监 邓冰寒 引言 CloudIDE ,一种基于云计算技术开发的云原生集成开发环境,可以帮助企业提高研发效能,实现数字化转型的目标。本文将探讨 CloudIDE 如何在数字化时代体现业务价值、提升研发效能。 CloudID…

【一起撸个DL框架】1 绪论

文章目录第一章 绪论 🍉1.1 在人工智能的大潮里1.2 为什么重复造轮子1.3 深度学习框架简介第一章 绪论 🍉 1.1 在人工智能的大潮里 人工智能——一个如今十分火热的话题,人们在生活中越来越多地使用它、谈论它。在2022年之前,人…

ChatGPT会取代律师这份职业吗?

如今,一种新型的人工智能威胁再次来袭,律师们可能会感到似曾相识的感觉。有人警告称,类似于ChatGPT的软件,因为具有类似于人类的语言流畅性,可能会取代大部分法律工作。 人工智能​的进步曾让人们预测,法律…

Linux 网络扫描工具:nmap,涨知识的时间到了!

在Linux系统中,nmap是一个非常流行的网络扫描工具。它可以用于探测主机和网络上的开放端口、操作系统类型、服务和应用程序等信息。nmap还可以与Ping命令结合使用,以便快速识别网络上的活动主机。本文将介绍如何在Linux上使用nmap和Ping命令进行扫描。 …

服务器部署需要注意的事项

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

在win10系统中使用EasyUEFI修复​Win10+Ubuntu双系统​引导启动项

我安装了Win10Ubuntu双系统,有一天电脑突然坏了开不了机,把硬盘拆下放到别的机器上,发现是直接进入Win10系统,而不是grub选择界面。进F12也找不到ubuntu的启动项。 之前网上的修复方法是: 1. 首先你需要一张ubuntu的…

多智能体强化学习论文导读

Adaptive Value Decomposition with Greedy Marginal Contribution Computation for Cooperative Multi-Agent Reinforcement Learning Dec-POMDP 本文的研究对象是 decentralized partially observable Markov decision process (Dec-POMDP), 我们首先来看一下它和经典的MDP…

用HTTP proxy module配置一个而反向代理服务器

反向代理与正向代理 摘抄:https://cloud.tencent.com/developer/article/1418457 正向代理 正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,…

2023-04-11 无向图的匹配问题

无向图的匹配问题 之所以把无向图的这个匹配问题放到最后讲是因为匹配问题借鉴了有向图中一些算法的思想 1 最大匹配和完美匹配 二分图回顾 二分图:把一个图中的所有顶点分成两部分,如果每条边的两端分别属于不同部分,则这个图是二分图。更多…

银行数字化转型导师坚鹏:金融科技与数字化转型成功案例

金融科技与数字化转型成功案例课程背景: 数字化转型背景下,很多银行存在以下问题: 不清楚金融科技如何赋能数字化转型? 不清楚银行金融科技体系的建设情况? 不了解银行数字化转型标杆成功案例? 课程特色…

AD六层板布线经验累积

目录 1、布局: 2、创建电源类PWR 3、高速部分可以加屏蔽罩, 4、EMMC和NANDFLASH采取兼容放置(创建联合) 5、HDMI设计 6、就近原则摆放 7、AV端口 8、模拟信号(1字型或L型走线) 9、WIFI模块 10、局…

Python+ChatGPT实战之进行游戏运营数据分析

文章目录一、数据二、目标三、解决方案1. DAU2. 用户等级分布3. 付费率4. 收入情况5. 付费用户的ARPU最近ChatGPT蛮火的,今天试着让ta写了一篇数据分析实战案例,大家来评价一下!一、数据 您的团队已经为您提供了一些游戏数据,包括…

考研数二第十七讲 反常积分与反常积分之欧拉-泊松(Euler-Poisson)积分

反常积分 反常积分又叫广义积分,是对普通定积分的推广,指含有无穷上限/下限,或者被积函数含有瑕点的积分,前者称为无穷限广义积分,后者称为瑕积分(又称无界函数的反常积分)。 含有无穷上限/下…