DETR模型结构

 在模型框架图中,可以看到包含三个部分,第一部分包含CNN和位置编码的的backbone,第二部分包含transformer encoder 和decoder模块,第三部分是检测头,其中包含两个检测头,一个用于检测bounding box的类别,另一个用于预测bounding box的坐标。第二张图是transformer encoder和decoder的细节图。

模型细节结构图如下:

图像做完预处理之后得到的尺寸是(bs,8,800,1066),将图像讲过卷积网络的backbone,得到feature map  尺寸(bs,2048,25,34),feature map 经过一个1*1的卷积层(目的是减少channel数),in_channel:2048,out_channel:256,stride:1  得到结果(bs,256,25,34),将最后两个维度经过flatten拉直,在调换维度得到(850,bs,256),包含850个token,每个token有256个维度。

transformer结构

论文中可以看到,从CNN得到的backbone和位置编码一起输入到transformer的encode模块中,这里的位置编码在每个multi-head self-attention中都要传入到输入上,生成Q和K。这里和标准的transformer有区别。

标准的transformer中,位置编码是加在input上的,只添加了一次。而DETR transformer中位置编码是在每个堆叠的encoder 和decoder中都要使用的,N=6代表encoder执行6次,每次位置编码都要加入到输入上,生成对应的Q和K。因为输入是一样的,位置编码也是一样的,所以得到的Q和K也是一样的。在decoder部分,M=6,decoder也要堆叠6次,在每次decoder中,位置编码都要和encoder中的输出相加,得到K。

这里说明,decoder接收到了三个输入,第一个是queries,初始值是0,shape是(100,256)第二个是object positional encoding(object queries),shape是(100,256),第三个是encoder memory:encoder模块最后的输出,包含了图像提取出的全局信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值