论文阅读--DETR(ECCV2020)

DETR

特点:CNN + Transformer,端到端,一次预测,二分匹配,匈牙利算法。

关键部分:

1、使用Transformer的encoder-decoder架构一次生成N个box prediction,N为一个事先设定的,远远大于一个图片中object个数的一个整数。
2、设计了bipartite matching loss,基于预测的bbox和ground truth boxes的二分图像匹配计算loss的大小,从而使得预测的box的位置和类别更接近于groundtruth。(一次性生成100个box,然后使用这100个框和groundtruth(假如为2)计算二者之间的matching loss从而确定这100个框中哪两个对应于groundtruth,决定好匹配关系后再像普通的目标检测一样去计算一个分类的loss和一个bounding box 的loss,而其余没有匹配到groundtruth的框即剩下的98个则被视为背景类)

整体结构

DETR整体结构可以分为四个部分:backbone,encoder,decoder和FFN
在这里插入图片描述
在这里插入图片描述

1、backbone
将输入图像转换为BCHW(C为2048或256)
2、encoder

  • 通道压缩:使用1*1conv处理,将通道从C压缩到d,得到新的feature map。
  • 转换为序列化数据:将空间的维度高宽压缩为一个维度(HW,B,256)
  • 位置编码:与原Transformer有两点不同,1)DETR考虑了xy方向的位置编码,因为图像特征是二维特征,每个方向各编码128维向量,这种编码方式更符合图像特点。(vision transoformer做法简单的将其拉伸为d×HW,然后从 [1,HW] 进行长度为256的位置编码)。2)原版Transformer 只在Encoder之前使用了Positional Encoding,而且是在输入上进行Positional Encoding,再把输入经过transformation matrix变为Query,Key和Value这几个张量。但是DETR在Encoder的每一个Multi-head Self-attention之前都使用了Positional Encoding,且只对Query和Key使用了Positional Encoding。

3、decoder
DETR的Transformer Decoder是一次性处理全部的object queries,即一次性输出全部的predictions;而不像原始的Transformer是auto-regressive的,从左到右一个词一个词地输出。
两个输入

  • Transformer Encoder输出的Embedding与 position encoding 之和。
  • Object queries。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值