• 论文笔记 DETR


    detr

    摘要和引言
    • 2020论文facebook
    • 不需要proposal,不需要基于anchor的先验知识(比如预训练的模型),也不需要NMS进行筛选,直接端到端不需要后处理
    • 利用transformer的全局建模能力,看成集合预测问题,不会输出很多冗余的框,直接端到端,不需要NMS,简化了训练和部署
    • NMS:非极大值抑制,抑制掉冗余的框
    • anchor:滑动窗口,需要手动设计特征并判断提取,会产生大量候选框;直到Faster RCNN出现直接使用RPN网络预测候选框,使用神经网络取代计算特征过程,直接使用神经网络输出anchor是否包含物体,anchor指在不同尺寸的特征图的每个点设置N个不同尺寸的框框。
    • 使用二分图匹配的方式替代冗余的框,解码器时使用了learned object queries,类似anchor了,并行输出检测框
    • 简单!只需支持CNN和transformer即可部署!
    • 同时尝试了分割任务,只需加一个分割头即可
    • 在这里插入图片描述
    • 图像通过CNN获取特征,然后拉直送入transformer,encoder进一步学习全局信息,每一个点与其他的点就有交互了,decoder出一系列预测框;其中transformer中还需要与object queries(限定出多少框,文中为100个框 )进行交互;最后使用二分图匹配计算loss。取决于物体数量,选出对应的独一无二的几个框后,再正常计算类别loss和bandingbox的loss。
    • 推理时前面相同,在生成一系列预测框后,卡一个输出的置信度,比如大于0.7的,被当作前景物体保留下来
    • 对大物体表现非常好,小物体上比较差,但之后deformable DETR出现,通过多尺度特征,解决了小物体问题,并解决了训练太慢的问题
    相关工作
    • 第一部分讲下集合预测问题,和大家怎么解决的;第二部分讲了transformer为什么不是自回归
    • 之前两阶段的proposal,一阶段的anchor,和物体中心点;都和初始的猜测非常相关。后处理对预测结果非常重要
    • 之前有基于集合的目标函数,也有匈牙利算法二分图匹配,也有使用RNN进行编码解码,但由于没使用transformer,骨干网络输出的特征不够强,需要人工干预
    详细模型
    1. 基于集合的目标函数:
      • 输出为固定的集合,输出N个框,然后进行二分图匹配,匈牙利算法是解决二分图匹配的最好算法
      • 使用scipy中的自带函数输入花费矩阵,输出最优排列,即为每个人分配最擅长的工作,最后的总花费最小,在本问题就是100个预测框与ground truth的几个框组成花费矩阵。
      • 花费就是为loss,使用函数计算分类loss和边界框loss组成花费,分类loss和边界框loss在同样的取值空间中,边界框loss没有只使用L1loss,而是加上了IOUloss,一起计算来减少框的大小对loss的影响
      • 这与proposal和anchor一个原理,不过强行一对一匹配;先算出最优匹配再算loss
        在这里插入图片描述
    2. DETR的结构
      • object queries:一个可学习的position embedding
      • FFN:全连接层
      • 在这里插入图片描述
    实验
    • 与Faster RCNN的对比:
    • 在这里插入图片描述
    • encoder学到了什么?可以把物体分割的很好,可视化:
    • 在这里插入图片描述
    • 实验了transformer为3、6、9层的不同效果:
    • 在这里插入图片描述
    • deconder学到了什么?对边缘极值点进行了学习
    • 在这里插入图片描述
    • object queries学到了什么?自学了适应数据集的anchor,

    在这里插入图片描述

  • 相关阅读:
    服装PLM解决方案能带给企业什么?
    linux k8s之KubeSphere启用DevOps
    MCU常见通信总线串讲(二)—— RS232和RS485
    最新AI系统ChatGPT源码+AI绘画系统源码+支持GPT4.0+Midjourney绘画+搭建部署教程+附源码
    GSCoolink GSV2201D 替 IT6563 DisplayPort 1.2转HDMI 2.0
    低代码 系列 —— 中后台集成低代码预研
    完全背包代码模板
    排序算法-交换排序详解
    用C语言实现ping命令
    算法分析基础
  • 原文地址:https://blog.csdn.net/qq_29589765/article/details/132951105