DAB-DETR模型学习记录

回顾DETR

DAB-DETR是对DETR模型的改进,在了解DAB-DETR前,我们先来回顾一下DETR
DETR的贡献为:

  • 将目标检测建模为集合预测(set prediction)的问题(二分图)
  • 使用二分匹配(bipartite matching)的标签分配策略(匈牙利算法)
  • 端到端(end2end),无需 NMS 后处理
  • 没有 anchor 等手工设置(hand-craft)的位置先验

美中不足的是,DETR也存在着以下主要缺点:

  • 收敛慢(与传统的目标检测器相比,比如 Faster-RCNN)
  • 与基于纯 CNN 的最强目标检测器相比,在性能上还有差距
  • 没有回答出Decoder 中query到底是什么

在这里插入图片描述

Query是什么?

在 DETR 中,Decoder中的query是由两部分构成的:learnable embeddings(上图的 Learnable Queries) + 初始化为全0的非可学习的 embeddings(上图的 Decoder Embeddings)。

Decoder Embeddings 是不可学习的,它通过 cross-attention 与 Encoder 的 key(图像特征) 进行交互,并将得到的注意力施加在 value(来自 Encoder,本质也是图像特征) 上,从而抽取到图像语义,由此可将它视作是图像语义的载体。
于是,Decoder Embeddings 可以对应到内容部分。
至于 Learnable Queries,它是可学习的,通过 cross-attention 与图像特征进行交互(它不断在图像中看某些东西),最终由目标损失反向传播回来获得梯度,那么它理应要学会关注到物体所在的位置。

故decoder embeddings对应内容部分,leanable queries对应位置部分
在源码中是这样定义的:

# Learnable Queries
query_embed = torch.nn.Embedding(num_queries, hidden_dim)
# Decoder Embeddings
tgt = torch.zeros_like(query_embed)#两者是加在一起的。

从宏观上来看,Encoder 中,query 是图像特征 + 正余弦位置编码,而在Decoder中,query 是初始化为0的 decoder embeddings + leanable queries。

收敛慢的原因是什么?

而learnable queries(位置部分) 又没有显式地提供位置先验(没有像传统 anchor 那样平铺到图像上、也没有像 Encoder 中那样经历了正余弦位置编码从而得到明确的、可区分的信息),因此,在刚开始进行交叉注意力计算时,大部分 decoder embeddings 中的向量都会被 project 到图像特征的同一个空间位置(因为大家都没有啥区别与约束)。于是,DETR 就势必要经历较多论迭代才能收敛(学得好)。

DAB-DETR改进

引入Anchor先验

基于以上推断,DAB-DETR的作者指出DETR收敛慢的原因在于没有提供位置先验信息。那么作者是如何做的呢?
其实关于这一点,Conditional DETR的作者已经发现了,并引入了x,y中心点坐标来作为先验信息。但其只是关注到了位置,但却忽视了目标的尺寸差异,Conditional DETR的位置的attention map计算公式如下:
在这里插入图片描述
其中, x,y 是 Decoder 的 query 位置部分,作为 query;而 xref, yref则是 Encoder 的 positional embeddings,作为 key。此处有个前提是两者都在 x 与 y 方向上独立进行位置编码然后 concat 起来,于是 dot product 的结果就是两个部分相乘的加和。

锚点更新策略

这种其实就是将Anchor锚框引入到Decoder模块,使用 x y w h 作为先验信息,即将learnable queries的shape设置为4维。而box的优化可以通过反向传播来实现。
但这样只使用Decoder的最后一层来做优化效率有些低些,比如DETR中在Decoder中使用的是同一个位置编码,因此,作者选择在每一层 DecoderLayer中都进行优化。如下所示:

在这里插入图片描述

宽度与高度调整

此外,作者还指出这样的尽管在引入了anchor后,其虽然能够学习到位置信息,但却没有关注到不同目标的尺度信息。通过attention map我们可以看到DETR中学习到的形状是固定的,这就无法考虑到不同目标间的尺度差异。
因此作者在attention计算时指出x,y可以分别除以w,h来兼顾尺寸信息,通过下面的注意力计算公式计算得到的attention map便可以变换不同的形状。

即在

在这里插入图片描述

TEMPERATURE TUNING

这里其实博主是将位置编码中的正余弦编码公式中的参数值由10000变为了20,并通过实验给出了证明自己的修改有效。
在这里插入图片描述

总结

这篇论文中的贡献之一便是回答了Query到底是什么,Decoder中的Query与Encoder中的key(图像特征)做交互,从中提取信息并试驾到Value上,形成新的feature,而加入了位置先验信息后,那么Query在与key交互时便不再盲目提取语义信息,由于位置编码的约束,其就会相当于从不同的框中去提取语义信息,那么Query就类似于Fast-R-CNN中的ROI Pooling。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭祥.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值