项目地址:https://github.com/open-mmlab/OpenPCDet
论文地址:https://arxiv.org/abs/2205.05979
MPPNet
MPPNet论文结构如图所示。本文主要介绍Multi-Frame Feature Interaction部分。
Intra与Inter详细图示
数据流如下图所示。总结而言,INTRA阶段的Query是每个ROI有一个,Key和Value是64个Proxy Points Feature;INTER阶段的Query是每个ROI有64个,Key和Query是64个多帧全局Proxy Points Feature。
Intra 组内特征提取
完成BBox内部的空间特征提取。
1. mlp_mixer_3d
输入
src[1:]
: [num_proxy_points, bs*num_rois*num_groups, C]
输出
src_intra_group_fusion
: [num_proxy_points, bs*num_rois*num_groups, C]
后续
根据 src[1:]
与src_intra_group_fusion
更新 src[1:]
说明
针对64个Proxy Points进行空间特征提取
2. self_attention
输入
Query: src[:1]
[1, bs*num_rois*num_groups, C]
Key: src_intra_group_fusion
+pos
[num_proxy_points, bs*num_rois*num_groups, C]
Value: src_intra_group_fusion
[num_proxy_points, bs*num_rois*num_groups, C]
输出
src_summary
: [1, bs*num_rois*num_groups, C]
说明
batch_size是bs*num_rois*num_groups
相当于空间特征提取,每个框会有1个Query,64个Key/Value。
Inter 组间特征提取
完成BBox帧间的时空特征提取。
1. fusion_all_groups
输入
src_all_groups
: [num_proxy_points, bs*num_rois, C*num_groups]
来源为src[1:]
输出
src_all_groups_fusion
: [num_proxy_points, bs*num_rois, C]
说明
每个Proxy Points的全局多帧特征通过MLP完成。
2. cross_attn_layers
输入
Query: query_list[i]
[num_proxy_points, bs*num_rois, C]
来源为src[1:] + pos,长度为num_groups
Key: src_all_groups_fusion
+pos
[num_proxy_points, bs*num_rois, C]
Value: src_intra_group_fusion
[num_proxy_points, bs*num_rois, C]
输出
inter_group_fusion
: [num_proxy_points, bs*num_rois, C]
说明
src[1:] 更新为num_groups
个inter_group_fusion
。即[num_proxy_points, bs*num_rois*num_groups, C]