补全reference_point
Anchor-DETR提出用预定义的参考点生成query_pos;
DBA-DETR提出预定义参考信息由(x,y)增至(x,y,w,h)
那么在3D检测任务中是否可以把预定义参考信息补全为(x,y,z,l,w,h,sint,cost),而query_pos都是使用xy两个维度(因为是bev网络).
(这种方法在Sparse-DETR中已经被提到过了).
因此下面作这个实验,预期结果与(xyz)三个维度的预定义参考信息相比,loss(最后一层的loss)下降更快,稳态更低.
实验结果如下:
(xyz)三个维度的预定义参考信息:
(x,y,z,l,w,h,sint,cost)八个维度的预定义参考信息:
由实验结果可知:与预期相符.
行列注意力机制
在Anchor DETR中提到可以利用行列注意力机制降低计算量,因此我也拿来测试一下
基于上一步的优化进行测试:
行列注意力(无/有(max模型)/有(mean模式):
优化前cost=3.6545071601867676s
优化后-max-cost=1.4044816493988037s
优化后-mean-cost=1.394972801208496s
这里需要注意,因为修改后显存占用减少很多,我把batch改成16,因此横坐标需要扩大2倍比较.目测loss和之前区别不大.但是显存占用和flops明显减少很多.