zhuanlan.zhihu.com/p/543335939
1 Users
1 Comments
16 Highlights
7 Notes
Top Highlights
对于 BEVFormer 网络模型而言,输入的数据是一个 6 维的张量:(bs,queue,cam,C,H,W)
在代码中,多尺度可变形注意力模块是以 CUDA 扩展的形式进行封装的,实现逻辑也是在 CUDA 代码中;这里放一下代码链接;
输入到 Deformable Attention Module CUDA 扩展的变量主要有五个,分别是采样位置(Sample Location)、注意力权重(Attention Weights)、映射后的 Value 特征、多尺度特征每层特征起始索引位置、多尺度特征图的空间大小(便于将采样位置由归一化的值变成绝对位置);
Deformable DETR 中用局部注意力机制代替了全局注意力机制,只对几个采样点进行采样,而采样点的位置相对于参考点的偏移量和每个采样点在加权时的比重均是靠 Query 经过 Linear 层学习得到的。
对于 Temporal Self-Attention 模块而言,需要 bev_query、bev_pos、prev_bev、ref_point、value等参数
BEV 特征不对齐主要体现在以下两个方面。
对于 Temporal Self-Attention 模块输入包含 prev_bev时,value = [prev_bev,bev_query],对应的参考点 ref_point = [ref_2d + shift,ref_2d];如果输入不包含 prev_bev时,value = [bev_query,bev_query],对应的参考点ref_point = [ref_2d,ref_2d]。 相应的,之前介绍的 bev_query 在输入包含 prev_bev时,bev_query = [value[0],bev_query];输入不包含 prev_bev时,value = [bev_query,bev_query];
内部参数 Offset、Weights、 Sample Location
利用 Temporal Self-Attention 模块输出的 bev_query, 对主干网络和 Neck 网络提取到的多尺度环视图像特征进行查询,生成 BEV 空间下的BEV Embedding特征;
对于 Spatial Cross-Attention 模块而言,与 Temporal Self-Attention 模块需要的参数很类似,但是并不需要 bev_pos 参数,只需要 bev_query、ref_point、value(就是 concat 到一起的多尺度特征);虽不需要 bev_pose,但是整体流程与 Deformable Attention Pipeline 图解类似
这个ref_3d是基于 BEV 空间产生的三维空间规则网格点,同时在 z 轴方向上人为的选择了 4 个坐标点。
BEV 空间下的三维坐标点向图像空间转换的过程
之前也有提到,并不是 BEV 坐标系下的每个三维坐标都会映射到环视相机的所有图像上,而只会映射到其中的某几张图片上,所以使用所有来自 Temporal Self-Attention 模块的所有bev_query会消耗很大的计算量,所以这里是对bev_query进行了重新的整合,涉及的核心代码如下:
1. value: shape = (cam = 6, sum(h_i * w_i) = 30825, head = 8, dim = 32) 2. spatial_shapes = ([[116, 200], [58, 100], [29, 50], [15, 25]]) 3. level_start_index= [0, 23200, 29000, 30450] 4. sampling_locations = (cam, max_len, 8, 4, 8, 2) 5. attention_weights = (cam, max_len, 8, 4, 8)
在获得查询到的特征后,会利用回归分支(FFN 网络)对提取的特征计算回归结果,预测 10 个输出; 我的理解这 10 个维度的含义为:[xc,yc,w,l,zc,h,rot.sin(),rot.cos(),vx,vy];[预测框中心位置的x方向偏移,预测框中心位置的y方向偏移,预测框的宽,预测框的长,预测框中心位置的z方向偏移,预测框的高,旋转角的正弦值,旋转角的余弦值,x方向速度,y方向速度];
正负样本的定义用到的就是匈牙利匹配算法,分类损失和类似回归损失的总损失和最小
Toughts & Comments
Hao Kong
这篇解读了代码,不错!
Glasp is a social web highlighter that people can highlight and organize quotes and thoughts from the web, and access other like-minded people’s learning.