Conditional DETR(ICCV 21)

Conditional DETR(ICCV 21)

Conditional DETR for Fast Training Convergence

加速detr收敛(50 epoch收敛)

DETR收敛慢的原因

DETR训练收敛速度慢,需要500 epochs
DETR的Cross Attention高度依赖content embedding(decoder的输出,可以是self attention的输出)进行定位和预测增加了对高质量的content embeddings的需求,需要很多轮才能学号content embedding,因此增大了训练的难度

Conditional DETR修改点

主要修改了decoder部分,其他部分和原始DETR保持一致

在这里插入图片描述

结构(只画了decoder)

img

  1. cross attention两个换成了concat,原始的是相加
  2. 模块:生成新的参考点

Decoder Cross Attention

Decoder有三种输入: query key value
value是encoder的输出,称其为content embedding
key由encoder的输出t=content embedding +spatial key(空间位置编码,三角函数位置编码或可学习)构成
query由decoder的前一层(self attention)的输出=content query和spatial query(空间位置编码,也就是object query)

conditional:条件空间查询

图右侧加的额外的附加条件是2d坐标embedding
object query-> s(2d coordinates)

原始的DETR,self-attention的输出作为q,这个q需要同时在和k匹配过程中,查询出k表示的物体和识别出bbox的边界,训练时间按长。

qk计算分两个部分:一个是content计算,一个是position计算
(3d tensor相乘的计算是2dtensor对应相乘后concat)
c q ⊤ c k + p q ⊤ p k . {\mathbf{c}_q^\top\mathbf{c}_k+\mathbf{p}_q^\top\mathbf{p}_k}. cqck+pqpk.
补充的条件空间查询(上面的pq,pk):有意把一份空间信息concat到self attention输出上

(s(补充的网络部分),f(self输出))->pq
p s = sinusoidal(sigmoid( s ) ) \mathbf{p}_s=\text{sinusoidal(sigmoid(}\mathbf{s})) ps=sinusoidal(sigmoid(s))
sigmoid之后空间位置编码(三角函数)

算完ps之后和T做运算,算q:
p q = T p s = λ q ⊙ p s \mathbf{p}_q=\mathbf{T}\mathbf{p}_s=\lambda_q\odot\mathbf{p}_s pq=Tps=λqps
T的FFN的输入是上一层decoder的输出,λq的值是经过FFN得到的

ablations-projections T:

在这里插入图片描述

full就是标准矩阵的意思,最后是只训练对角的参数值
输出和deformable detr相同,都是相对于参考点的修正

参考:

https://www.bilibili.com/video/BV1sj411K7Mj/?spm_id_from=333.788&vd_source=4e2df178682eb78a7ad1cc398e6e154d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值