zoukankan      html  css  js  c++  java
  • End-to-End Object Detection with Transformers

    End-to-End Object Detection with Transformers

    2020-05-27 11:05:14

    Paperhttps://arxiv.org/pdf/2005.12872.pdf 

    Codehttps://github.com/facebookresearch/detr 

    Bloghttps://ai.facebook.com/blog/end-to-end-object-detection-with-transformers 

    Youtube Tutorialhttps://www.youtube.com/watch?v=T35ba_VXkMY 

     

    Facebook 的工作,构建了一种基于 transformer 的物体检测框架。大致结构如下图所示:

     

    给定图像,先用 CNN 抽取其特征,然后用 transformer 结构来直接预测得到 BBox 的结果。一般来讲,作者会预测得到非常多的 框框,同时为了 loss 的计算,作者也对 GT 的 BBox 进行填充。

     

    本文所提出的 DETR model 有两个不可缺少的部分:

    1). a set prediction loss, 用于计算预测 和 真值 之间的差异;

    2). an architecture, 预测一组物体并且建模他们之间的关系。

     

    1. DETR 会直接推理出一组固定大小的 N 个预测结果,通过 decoder 可以一次搞定这个事情。这里的 N 会明显的比常规物体个数要多。训练的一个困难是,对预测的物体进行打分,关于 class, position, size 等。本文的 loss 产生了一个最优的二值匹配,然后优化一个 object-specific losses。

     

    为了计算预测的 BBox 和 真值 BBox 两个集合之间的差异,作者利用如下的方式,得到 N 个元素的置换:

     

    其中,$L_{match}$ 是一个 pair-wise matching cost。该最优的赋值是利用 Hungarian algorithm 来计算得到的。这个 matching cost 考虑到了 class prediction 和 similarity。

     是  

    其中,ci 是目标类别标签,bi 是向量代表了真值 BBox 中心点坐标及其宽高。作者提到这个寻找 matching 的过程类似于 匹配  proposal 或者 anchors 机制。这里主要的区别是,需要找一个 one to one matching,而不需要重复。

     

    第二步是计算 loss function,在上一个步骤中,所有 pairs 的 Hungarian loss。

     

     

    其中,$hat{delta}$ 是步骤 1 中得到的 optimal assignment。

     

    公式 2 中的第二项是 matching cost 和 Hungarian loss,对 BBox 进行打分处理。作者这里采用了 L1 loss 和 generalized IoU loss。总体来说,本文的 BBox loss 定义为:

      

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    软件工程课堂二
    软件工程第二周总结
    软件工程第一周开课博客
    软件工程课堂一
    开学第一次考试感想
    以Function构造函数方式声明函数
    document.scrollingElement
    标识符
    变量声明语句的提升
    用that代替this
  • 原文地址:https://www.cnblogs.com/wangxiaocvpr/p/12971335.html
Copyright © 2011-2022 走看看