当前位置: 首页 > article >正文

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

原文链接: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.kler.cn/a/9209.html

相关文章:

  • three.js 杂记
  • 3D绘制动态爱心Matlab
  • Java的dto,和多表的调用
  • 万字长文分析函数式编程
  • 一种基于深度学习的反无人机无人值守系统及方法
  • unity基础,点乘叉乘。
  • CSS 单位
  • Spring数据库事务管理
  • Vue.js 2.0 条件渲染
  • 如何处理后端返回的复杂数据
  • 【源码】手麻系统源码,C#手术麻醉系统源码
  • 前端如何优雅地使用枚举
  • 蓝桥杯基础8:BASIC-7试题 特殊的数字
  • table数据自动滚动
  • Redis 实现限流
  • 异构计算给我们带来了哪些思考?
  • MySQL学习笔记(十八)—— 事务基本知识
  • Golang中基于HTTP协议的网络服务
  • 盐城北大青鸟:人生苦短,我学Java
  • 【剑指offer|1.数组中重复的数字】
  • SpringBoot集成Dubbo启用gRPC协议
  • chatGPA的主要功能-chatGPT深度分析
  • 【数据结构】二叉搜索树BST的实现(递归)
  • 使用sealos工具部署k8s
  • ToBeWritten之固件威胁建模
  • 代码随想录打卡第51天|309.最佳买卖股票时机含冷冻期;714.买卖股票的最佳时机含手续费