当前位置:   article > 正文

Transformer学习之DETR

Transformer学习之DETR

1.算法简介

Detection Transformer(DETR) 首次将Transformer拓展到目标检测领域中,DETR抛弃了几乎所有的前处理和后处理操作,不需要进行设计锚框来提供参考,或者利用非极大值(NMS)抑制来筛除多余的框,使模型做到了真正的End-to-End检测,即对于输入的任意图像统一输出N个带有类别和置信度的Box结果。
参考链接1:沐神论文精读
参考链接2:搞懂DEtection TRanformer(DETR)
参考链接3:详细解读DETR
参考链接4:Transformer中的position encoding

1.1 算法主要贡献

  1. 提出一种新的目标函数,通过二分图匹配的方式为每个目标输出独一无二的预测,避免更多冗余检测框的出现
  2. 首次将Transformer拓展到目标检测领域
  3. 在Decoder部分设计一种可学习的object queries,将其和全局图像信息结合在一起,通过不断地进行注意力操作,使得模型可以直接并行地输出最后一组预测框
  4. 可以简单的拓展到其他任务(如全景分割),只需要修改预测头(prediction heads)即可

1.2 算法网络结构

在这里插入图片描述
如上图所示,DETR主要包括以下几个部分:

  1. Backbone模块:将输入图像利用卷积神经网络(CNN)映射为特征图
  2. Transformer Encoder模块:输入特征向量和空间位置编码,输出相同维度的全局特征向量,描述了每个patch或者像素与全局图像下的其他patch之间的关系
  3. Transformer Decoder模块
    1. 输入Encoder模块得到的特征向量空间位置编码和固定数量 N = 100 N=100 N=100Object queries,输出 N = 100 N=100 N=100个固定的预测结果
    2. 二分图匹配:对Object queries和真实的标签GroundTruth,利用二分图匹配筛选出和GroundTruth对应的object query用于计算损失(在推理时,会设置一个阈值,将大于阈值的object query作为检测结果)
  4. 利用计算的损失(计算类别和预测框的损失)反向更新卷积神经网络(CNN)和Transformer模型的参数。
  5. 预测头Prediction heads: FFN 是由具有 ReLU 激活函数且具有隐藏层的3层线性层计算的,或者说就是 1 × 1 1\times1 1×1卷积。FFN 预测框标准化中心坐标高度和宽度,然后使用 softmax 函数激活获得预测类标签。

2.损失函数设计

前面提到,在训练过程中Transformer Decoder模块会创建

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/936487
推荐阅读
相关标签