ReasonNet(论文总结)

论文总结

1 Conclusion

同时对时间空间维度进行推理,时间维度维度推理可以有效处理不同帧特征之间的相互作用和关系(更好的进行行为预测);空间维度推理可以提升整体的感知性能(尤其是对被遮挡物体潜在危险性的预测,虽然看不到,但可以推理出来)。

在这里插入图片描述

2 Model Architecture

模型的输入是传感器数据、measurements和高级导航命令,输出是控制命令。包含三个模块,感知模块、时间推理模块和全局推理模块:

  • Perception Module: 从相机和LiDAR数据中提取BEV特征。

  • Temporal reasoning module: 处理时序数据,维护一个memory bank,保存历史特征。

  • Global reasoning module: 处理目标和环境之间的交互关系,用于被遮挡物体,提高整体的检测能力。

在这里插入图片描述

2.1 Perception Module

在我们的框架的早期阶段,感知模块负责处理和融合不同的传感器数据,在此基础上,后续模块可以进行时间和全局推理。共使用5个传感器:4个RGB camera(前后左右,另外还有focus view image) I r g b = I 0 , 1 , 2 , 3 I_{\mathrm{rgb}}=I_{0,1,2,3} Irgb=I0,1,2,3 和1个LiDAR I lidar = I 4 I_{\text{lidar}}=I_4 Ilidar=I4

该模块包含一个2D BackBone和一个3D BackBone,前者负责从图像中提取keys和values,后者负责从LiDAR点云中提取queries。随后紧跟一个BEV decoder,使用这些keys、values和queries来获得BEV、waypoints和交通标识的特征。下面进行分别介绍:

  • Image Input

和Interfuser一模一样的操作,每个RGB图像经过2D CNN得到feature map f i f_i fi ,然后经过一个1x1卷积层将每个feature的channel调整为 C v C_v Cv ,随后按照channel展开成一维token(当然,需要给这些tokens加上位置编码和传感器编码)。最后,将这些tokens输入到标准的Transformer Encoder中,得到keys和values。(这一系列操作下来,显然很好的融合了上下文信息)

  • LiDAR Input

使用PointPillars作为3D Backbone,来处理LiDAR点云数据(以自车为中心的区域 x ∈ [ − H b , H − H b ] x\in[-H_b,H-H_b] x[Hb,HHb] y ∈ [ − W / 2 , W / 2 ] y \in [-W/2,W/2] y[W/2,W/2])。每个Pillar大小为 0.25 m × 0.25 m 0.25m\times0.25\text{m} 0.25m×0.25m ,和图类似,使用1x1卷积层将LiDAR的feature map下采样到 C v × H × W C_v\times H\times W Cv×H×W ,作为BEV decoder的queries。

  • Sensor-Fusion BEV Decoder

BEV Decoder是标准的Transformer结构。RGB图像通道输入keys和values,LiDAR通输入queries( H × W H\times W H×W),根据queries和keys得到BEV特征。

此外,另外两种queries用来预测交通标识和waypoints w \mathbf{w} w 。和Interfuser类似,使用2层MLP来预测交通信号灯状态和是否有停车标志位;使用单层GRU根据自车位置来自回归地预测出waypoints { w t } t = 1 T f \{\mathbf{w}_t\}_{t=1}^{T_f} {wt}t=1Tf

在第一个训练阶段中,为了对感知模块进行预训练,生成的BEV(鸟瞰图)特征通过一个单阶段的CenterPoint模型进行处理,生成一个覆盖了Hm × Wm空间区域的H × W × 7的BEV地图。其中,七个通道分别表示每个网格单元中对象存在的概率、与网格中心的偏移、边界框的范围、朝向角度以及速度。(此过程并没有画在流程图中)

2.2 Temporal Reasoning Module

现有的许多E2E方法考虑多帧融合,仅将多帧特征进行简单的拼接处理,而没有考虑不同帧之间的相互作用和关系。为了更好的处理多帧特征,作者提出了一个Temporal Reasoning Module,能够充分存储和融合历史信息,从而更好的对交通参与者进行行为预测。

Temporal Reasoning Module包含temporal processing,以通过当前注意力机制融合当前和历史特征。并且,还维护一个memory bank,用于存储历史short-term和long-term特征(keys&values)。下面进行分别介绍:

  • Temporal Processing

不同历史帧对当前帧的影响并不相同,因此,需要使用注意力机制来读取历史帧,而非简单的特征拼接。对于存储在Memory Bank的历史帧,首先计算其与当前帧的相关程度,也就是attention acore(这里叫做normalized similarity S \mathbf{S} S ):
S ( q h , w , k t , i , j ) = ( k t , i , j − q h , w ) 2 ∑ i = 0 , j = 0 i = H − 1 , j = W − 1 ( k t , i , j − q h , w ) 2 S(\mathbf{q}_{h,w},\mathbf{k}_{t,i,j})=\frac{(\mathbf{k}_{t,i,j}-\mathbf{q}_{h,w})^2}{\sum_{i=0,j=0}^{i=H-1,j=W^{-1}}(\mathbf{k}_{t,i,j}-\mathbf{q}_{h,w})^2} S(qh,w,kt,i,j)=i=0,j=0i=H1,j=W1(kt,i,jqh,w)2(kt,i,jqh,w)2

然后开始使用value将上述的normalized similarity进行加权求和,得到当前帧的历史特征(文中较readout feature M ∈ R C v × T h × H × W \mathbf{M}\in\mathbb{R}^{C_{v}\times T_{h}\times H\times W} MRCv×Th×H×W ):
M t , h , w = ∑ i = 0 , j = 0 i = H − 1 , j = W − 1 v t , i , j S ( q h , w , k t , i , j ) \mathbf{M}_{t,h,w}=\sum_{i=0,j=0}^{i=H-1,j=W-1}\mathbf{v}_{t,i,j}S(\mathbf{q}_{h,w},\mathbf{k}_{t,i,j}) Mt,h,w=i=0,j=0i=H1,j=W1vt,i,jS(qh,w,kt,i,j)
随后,将上述得到的 M ∈ R C v × T h × H × W \mathbf{M}\in\mathbb{R}^{C_v\times T_h\times H\times W} MRCv×Th×H×W 与当前帧的BEV features进行concatenate得到 M ′ ∈ R C v × ( T h + 1 ) × H × W \mathbf{M}^{'}\in\mathbb{R}^{C_v\times(T_h+1)\times H\times W} MRCv×(Th+1)×H×W 。然后,输入到GRU逐步融合时间维度的信息得到 M f u s e d ∈ R C v × H × W \mathbf{M}_{f u s e d}\in\mathbb{R}^{C_{v}\times H\times W} MfusedRCv×H×W,此作为该module的最终输出。

  • Memory Bank

每经过 τ \tau τ 帧,更新Memory Bank中存储的keys & values。其中key来自于当前帧的query q \mathbf{q} q (无需进行任何处理)。Temoral Moudle的输出 M f u s e d \mathbf{M}_{fused} Mfused 首先被编码成BEV map M p \textbf{M}_p Mp ,然后与 M f u s e d \mathbf{M}_{fused} Mfused 进行concatenate,输入到value encoder得到需要保存的value值。

2.3 Global Reasoning Module

罕见事件如遮挡物对无人车影响很大,主要是传感器无法直接感知到前方障碍物。眼睛看不到,就没办法了吗?非也非也!可以利用场景中的全局信息来进行推理。基于此,作者提出了Global Reasoning Module,用于处理目标和环境之间的交互关系,从而提高整体的感知能力。

该module包含了3个部分:1) 一个目标-环境和目标-目标交互建模处理;2) 一个occupancy decoder,用于产生占据地图(occupancy map);3) 一个一致性损失计算模块,来增强waypoints和occupancy map之间的一致性。下面进行分别介绍:

  • Interaction Modeling

这部分的目的就是为了推理出目标与环境、目标与目标之间的交互关系。

  • 一方面,提取BEV map M p \mathbf{M}_p Mp 中存在概率较高的 M f u s e d \mathbf{M}_{f u s e d} Mfused 作为目标特征。

  • 另一方面, M f u s e d \mathbf{M}_{f u s e d} Mfused 会进行下采样,来表示环境特征。

最后,用所有的目标特征和环境特征构建graph,随后将其输入到GAT中,得到目标与环境之间、目标与目标之间的交互特征。

  • Occupancy Decoder

GAT的输出作为keys和values,Learning positional embedding作为queries,输入到Occupancy Encoder中,以获得:

  • 交通标志特征,和BEV decoder 获得的交通标志特征进行concatenate,输入到MLP中,得到交通标志的预测结果。
  • 占据地图特则,随后输入到卷积层中获得占据地图 O t ∈ R T f × H × W \textbf{O}_t\in\mathbb{R}^{T_f\times H\times W} OtRTf×H×W 。(在每个时间 t t t ,每个栅格的值位于[0,1]之间,表示被占据的概率)
  • Consistency Loss

显然,waypoints和占据地图是分别独立进行预测的,因此,二者之间的一致性无法得到保障。导致预测出的waypoints会穿过占据栅格。依次需要有一个一致性损失来增加二者的一致性: L constency = 1 T f ( ∑ t = 0 T f ∑ i = 0 N c t O t , i N c t − λ ∑ t = 0 T f ∥ w t ∥ 1 ) \mathcal{L}_{\text{constency}}=\frac{1}{T_f}\left(\sum_{t=0}^{T_f}\frac{\sum_{i=0}^{N_c^t}\mathbf{O}_{t,i}}{N_c^t}-\lambda\sum_{t=0}^{T_f}\|\mathbf{w}_t\|_1\right) Lconstency=Tf1 t=0TfNcti=0NctOt,iλt=0Tfwt1

  • 最小化waypoints所在占据栅格上的占据概率。
  • 最大化waypoints的 l 2 l_2 l2 范数。

2.4 Control Module

  • 使用两个PID控制器对自车进行横向和纵向控制,分别跟踪预测waypoints的航向和速度。

  • 如果检测出红灯,自车停止;如果自车的bounding box穿过占据栅格,自车停止;如果未来waypoints与BEV map中的目标重叠,自车停止。

  • 如果检测出红灯,自车停止;如果自车的bounding box穿过占据栅格,自车停止;如果未来waypoints与BEV map中的目标重叠,自车停止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值