BEV感知PETR-V1和PETR-V2

PETR-V1和PETR-V2是基于位置编码转换的BEV感知方法,V1使用3D位置编码嵌入2D图像特征,V2增加了时序支持并解决位置不匹配问题。通过pose变换和2D特征引导的attention优化3D位置编码。在下游任务如3D目标检测和分割中表现出良好性能。
部署运行你感兴趣的模型镜像

参考代码:PETR

1. 概述

介绍:这两篇文章提出了以位置编码转换(PETR,position embedding transformation)为基础的BEV感知方法,按照方法中组件不同可将PETR划分为V1和V2版本。在V1版本中提出了基础版本的PETR,首先使用一种类似LSS的方法构建相机视锥,里面编码了图像中每个点在不同深度下的3D空间位置,这些3D空间位置经过编码网络之后(几层1*1的卷积)得到3D空间位置的embedding编码,embedding编码再与2D相机特征做融合将3D空间位置信息嵌入到2D图像特征中去,最后在生成的特征图上使用DETR方法检测3D目标。V2版本相对V1版本增加了时间序列的支持,特别的是对于时序带来位置空间相对变化导致的位置不匹配问题,对于该问题文章通过pose变换对齐的方式实现特征图对齐。在下游任务中除了3D目标检测任务之外,还引入了分割分支。

2. BEV特征提取

2.1 PETR-V1

在V1版本中数据处理流程见下图所示:
在这里插入图片描述
对于2D图像可以根据相机内外参数和假定的3D空间范围内生成相机视锥数据,对应上图中的3D Coordinates Generator部分,3D视锥数据再与图像2D图像特征融合得到具备感知3D位置信息的2D图像特征,之后在接下游检测任务。这里的核心便是如何将3D位置信息如何添加到2D中,与之对应的部分便是上图中的3D Position Encoder。该部分的具体结构见下图所示:
在这里插入图片描述
对于图像特征生成的视锥数据维度为 P 3 d = { P i 3 d ∈ R ( D ∗ 4 ) ∗ H F ∗ W F } P^{3d}=\{P_i^{3d}\in R^{(D*4)*H_F*W_F}\} P3d={Pi3dR(D4)HFWF},其中 W F , H F W_F,H_F WF,HF代表生成视锥时特征图的宽高, D D D代表深度划分的steps。这些数据经过几个 1 ∗ 1 1*1 11的卷积之后得到3D位置编码,再与图像2D特征相加便使得2D图像特征中嵌入了3D位置信息。对于产生位置编码时使用的操作,以及3D位置编码和2D图像特征融合操作,它们对性能带来的影响见下表:
在这里插入图片描述
其中感到惊讶的是 3 ∗ 3 3*3 33的卷积竟然带来这大的负收益-_-||。

2.2 PETR-V2

2.2.1 网络结构

V2版本在V1版本上添加了对时序的支持,但是引入时序信息带来的问题便是在不同时刻下图像物体的3D相对位置是不一致的。这就要求在新版的PETR中对图像中的3D位置信息进行了对齐,对于对齐文中是使用pose变换的形式实现的。同时对于3D位置编码还引入了2D图像特征引导的attention操作用于优化3D位置编码

在V2版本中算法的流程图见下图所示:
在这里插入图片描述
可以看到在图像的数据输入端添加了来自之前时序的数据。对于2D图像域的数据是直接通过concat组合起来,但是对于3D位置编码数据就不是直接这样处理了,其通过pose变换使其在车体坐标下对齐,也就是下图所示的样子:
在这里插入图片描述
t t t时刻的相机坐标系记为 c ( t ) c(t) c(t),激光雷达坐标系 l ( t ) l(t) l(t),车体坐标系 e ( t ) e(t) e(t),全局坐标系 g g g。对于一个从src到dst的变换记为 T s r c d s t T_{src}^{dst} Tsrcdst。则从图像坐标系到激光雷达坐标系的变换为:
P i l ( t ) ( t ) = T c i ( t ) l ( t ) K i − 1 P m ( t ) P_i^{l(t)}(t)=T_{c_i(t)}^{l(t)}K_i^{-1}P^m(t) Pil(t)(t)=Tci(t)l(t)Ki1Pm(t)
而激光雷达坐标系下 t − 1 t-1 t1 t t t的变换描述为:
P i l ( t ) ( t − 1 ) = T l ( t − 1 ) l ( t ) P i l ( t − 1 ) ( t − 1 ) P_i^{l(t)}(t-1)=T_{l(t-1)}^{l(t)}P_i^{l(t-1)}(t-1) Pil(t)(t1)=Tl(t1)l(t)Pil(t1)(t1)
其中的变换矩阵是借用了车体坐标系和全局坐标系作为中间变量迭代得到的:
T l ( t − 1 ) l ( t ) = T e ( t ) l ( t ) T g e ( t ) T g e ( t − 1 ) − 1 T e ( t − 1 ) l ( t − 1 ) − 1 T_{l(t-1)}^{l(t)}=T_{e(t)}^{l(t)}T_g^{e(t)}T_g^{e(t-1)^{-1}}T_{e(t-1)}^{l(t-1)^{-1}} Tl(t1)l(t)=Te(t)l(t)Tge(t)Tge(t1)1Te(t1)l(t1)1

在V2版本中通过2D特征给3D位置编码做attention优化,也就是使用下图中的结构实现:
在这里插入图片描述

2.2.2 鲁棒性分析

此外,文章还分析了相机外参、相机缺失、时序对齐异常情况进行分析,从下表中可以观察网络的鲁棒性:
在这里插入图片描述
在这里插入图片描述

3. 下游任务

3.1 PETR-V1

在V1版本中下游检测任务DETR的anchor point类型和transformer decoder中points-num对向能的影响:
在这里插入图片描述

PETR收敛性和速度分析:
在这里插入图片描述

在nuScenes test下的性能比较:
在这里插入图片描述

3.2 PETR-V2

V2的版本在V1基础上添加了分割分支,这里为了减少计算量对分割query的数量进行限制,使用一个query代表一个 16 ∗ 16 16*16 1616大小的网格,之后这个query负责这个区域的分割任务,其流程见下图所示:
在这里插入图片描述

nuScenes下检测检测性能比较:
在这里插入图片描述

nuScenes下分割性能比较:
在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Yolo-v5

Yolo-v5

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

### BEV 场景图在自动驾驶中的应用 #### 定义 BEV(Bird's Eye View)场景图是一种用于表示自驾车周围环境的结构化数据模型。该模型通过将三维空间信息投影到二维平面来简化感知任务,使得车辆能够更好地理解周围的静态动态物体及其相互关系[^1]。 #### 实现方法 为了构建有效的BEV场景图,在实现过程中通常会采用以下几种关键技术: - **多传感器融合**:利用摄像头、激光雷达等多种类型的传感器获取丰富的环境信息,并将其转换为统一坐标系下的点云或图像形式。 - **Transformer架构的应用**:基于注意力机制的Transformers可以有效地捕捉远距离依赖并处理稀疏输入特征,这有助于提高对复杂交通状况的理解能力。 - **几何变换与映射**:通过对原始观测数据执行适当的几何操作(如旋转平移),可获得更加直观易懂的地图视图。此外,还需要考虑如何高效地存储这些地图以及实现实时更新功能[^3]。 ```python import numpy as np def transform_to_bev(points_3d, camera_matrix): """ 将3D点集转换为鸟瞰视角 参数: points_3d (np.ndarray): 形状为(N, 3) 的3D点数组 camera_matrix (np.ndarray): 相机内参矩阵 返回: bev_points (np.ndarray): 转换后的2D点阵列表示 """ # 假设已知从世界坐标系到相机坐标系的变换矩阵T_world_cam T_world_cam = ... homogenuous_coords = np.hstack((points_3d, np.ones((len(points_3d), 1)))) transformed_coords = T_world_cam @ homogenuous_coords.T projected_coords = camera_matrix @ transformed_coords[:3] bev_points = projected_coords / projected_coords[-1] return bev_points[:-1].T ``` #### 应用场景 BEV场景图广泛应用于多个领域,特别是在智能驾驶辅助系统中发挥着重要作用: - **路径规划**:帮助无人驾驶汽车制定最优行驶路线,避开障碍物其他潜在危险区域。 - **行为预测**:结合历史轨迹分析其他道路使用者的行为模式,提前做出反应决策。 - **高精度定位**:借助预先建立好的高清地图进行精确定位,即使是在GPS信号较弱的情况下也能保持较高的准确性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值