论文地址:https://arxiv.org/abs/2005.12872
总体思路及优势分析
DETR是FIR提出的基于Transformers的端到端目标检测,将对象检测视为直接集合预测问题(set prediction),简化了检测流程,有效地消除了对先验知识和人工操作的要求,例如非极大值抑制NMS或锚点生成anchor。结果在coco数据集上效果与Faster RCNN相当,且可以很容易地将DETR迁移到其他任务例如全景分割。
优点
1、提出了一种目标检测新思路,真正的end-to-end,更少的先验(没有anchor、nms等),在大目标上检测较为准确;
2、在coco上,准确率、运行效率与高度优化的faster R-CNN基本持平。在大目标上效果比faster R-CNN好;
3、与大多数现有的检测方法不同,DETR不需要任何自定义层,因此复现容易,涉及到模块都能在任何深度学习框架中找到。
不足
1、对小物体检查效果欠佳
2、训练时间较长
DETR原理
DETR的流程很简单,可以归结如下:Backbone -> Transformer -> detect header。
DETR采用基于Transformer的编码器-解码器架构,Transformer 的自注意力机制明确地模拟了序列中元素之间的所有成对交互,使这些架构特别适合集合预测的特定约束,例如删除重复的预测。DETR模型架构:一个用于特征提取的 CNN 主干,一个编码器-解码器以及一个简单的全连接层 (FFN)。
注意力机制是聚合来自整个输入序列的信息的神经网络层。Transformer引入了自注意力层,与非局部神经网络类似,它扫描序列的每个元素,并通过聚合整个序列的信息来更新它。基于注意力的模型的主要优点之一是它们的全局计算和完美的记忆,这使得它们比RNN更适合长序列,在目标检测方面对物体识别效果更好,能够实现更全面的检测。
Backbone:输入图像(H*W*C),通过CNN卷积得到特征图,用1x1卷积核进行卷积,将图像的通道维度从C减少到更小的维度d。降维之后得到一个新的特征图z0(H*W*d),与Spatial positional Encoding相加,由于Encoder期望一个序列作为输入,因此我们将z0的空间维度折叠为一维,从而产生 d×HW 特征图。然后被送到Encoder里。为了体现图像在x和y维度上的信息,作者的代码里分别计算了两个维度的positional Encoding,然后Cat到一起。
Transformer Encoder:FFN、LN等操作与Transformer类似,Encoder最后得到的结果是对N个物体编码后的特征。
Transformer Decoder:每个Decoder有两个输入:一个是object query(或者是上一个Decoder的输出),另一个是Encoder的结果,区别在于这里是并行解码N个object。与原始的Transformer不同的地方在于Decoder每一层都输出结果,计算loss;另外一个与Transformer不同的地方是,DETR的Decoder和Encoder一样也加入了可学习的positional embedding,其功能类似于anchor。最后一个Decoder后面接了两个FFN,分别预测检测框及其类别,从而产生N个最终预测。该模型使用它们之间的成对关系对所有对象进行全局推理,同时能够使用整个图像作为上下文。
Prediction feed-forward networks (FFNs):最终预测由包含ReLU激活函数和隐藏维度d的3层感知器以及线性投影层计算。FFN预测框的中心坐标、高度和宽度。输入图像,线性层使用 softmax函数预测类标签。由于我们预测一组固定大小的N个边界框,其中N通常远大于图像中感兴趣对象的实际数量,因此使用额外的特殊类标签 ∅来表示未检测到对象(背景)。这里N被设计为固定的100个。
Auxiliary decoding losses:在每个Decoder之后添加预测FFN和匈牙利损失。所有预测FFN共享其参数。使用额外的共享层来规范来自不同Decoder的预测FFN的输入。实现一一对应之后,便能够利用分类Loss以及boundingbox Loss进行优化。DETR会同时预测所有对象,并使用一组损失函数进行端到端训练,该函数在预测对象prediction和真实对象ground truth之间使用匈牙利算法,将matching cost matrix传入linear-sum-assignment中执行二分匹配,得到预测框和真实物体和一对一匹配结果。
Matching cost matrix:
classification loss function:
bounding box distance loss:
代码理解可参考:
https://blog.csdn.net/feng__shuai/article/details/106625695