DETR个人学习笔记(一)之DETR发展与概述

本文是根据CSND上的课程DETR原理与代码精讲所打的逐字稿,加上一些我自己不理解的名词的解释。第一节课是免费试听的,所以就把文章发布出来了。之后那个课程的逐字稿我就不设置为公开可见了。
文章是针对自己在听课的时候听一遍老是听不懂,课后再想回看太麻烦,知识架构不完整然后打字帮助一下自己。

DETR是Facebook所提出的使用Transformer进行目标检测的一个方法。论文发表于2020年的ECCV上。文章的题目是End-to-End Object Detection with Transformers
Transformer已经成为深度学习的新范式。它采用注意力机制,最初应用于自然语言处理任务中。目前已经成为NLP任务的统治性的方法。Transformer也在向CV领域进行渗透和应用。在2020年五月,DETR问世,在DETR基础上有很多改进的工作。
DETR个人学习笔记(一)之DETR发展与概述_第1张图片
对于目标检测而言,一个是要确定图片中有哪些物体,即What?另外要确定物体所在的位置,那就要用边界框框住所检测到的物体即Where?
DETR个人学习笔记(一)之DETR发展与概述_第2张图片
在Transformer出现以前,如果采用CNN卷积神经网络进行目标检测,目前流行的方法多采用建议框,或者anchors1进行预测,对于重叠的边界框,要采用非极大值抑制进行去除。
DETR个人学习笔记(一)之DETR发展与概述_第3张图片

下图就是FasterR-CNN进行两阶段预测的方法,第一个阶段它需要有建议框,第二个阶段它要有非极大值抑制的后处理来进行物体类别和边界框的预测。DETR就很简洁,它也采用CNN提前图像特征,然后直接送入Transformer进行处理就可以预测出物体的边界框和类别,它不需要非极大值抑制的后处理,也不需要anchors机制,所以是一个端到端的(End-to-End)目标检测的架构
DETR个人学习笔记(一)之DETR发展与概述_第4张图片
再来看一下DETR的网络架构图,对于一幅图片,经过CNN卷积神经网络提取图像特征(set of image features),然后送入Transformer encoder-decoder得到预测出来的边界框,在训练的时候边界框和ground truth看作是一个几何预测问题。预测框和ground truth进行二分匹配(bipartite matching)。没有匹配上的物体(图中右二小图的绿色框)归为no object这一类。
DETR个人学习笔记(一)之DETR发展与概述_第5张图片
下图也是对DETR的架构的描述。可以看到,图像经过backbone卷积神经网络,然后再加上位置编码(positional encoding),然后再展平送入transformer encoder,encoder的输出送入transformer decoder,另外transformer decoder的输入还有object queries。然后transformer decoder的输出送入预测头,预测头中由前馈神经网络(FFN)进行物体类别和边界框的预测。
DETR个人学习笔记(一)之DETR发展与概述_第6张图片
下图就是DETR中 transformer的具体架构。可以看到,它有Encoder和Decoder两部分。Encoder的输入就是通过CNN提取的网络的图片特征(Image features),然后再加上空间位置编码(Spatial positional encoding)送入多头自注意力模块(Multi-Head Self-Attention),然后再送入前馈神经网络模块(FFN),然后这样的Encoder层可以堆叠多个(N×)。然后其输出送入Decoder层,Decoder层有Object queries可学习的位置线路作为输入,然后经过多头自注意力模块(Multi-Head Self-Attention),然后再经过Encoder和Decoder之间的多头互注意力模块(Multi-Head Attention),再送入FFN处理。Decoder的层也可以堆叠多个(M×)。最后的输出送入FFN进行物体类别的预测和边界框的预测。
DETR个人学习笔记(一)之DETR发展与概述_第7张图片

DETR的性能如何?它可以达到和目前比较先进的目标检测架构性能相当。比如和Faster RCNN的改进版的性能进行比较。DETR所达到的AP值与Faster RCNN基本相当甚至超过。
DETR个人学习笔记(一)之DETR发展与概述_第8张图片
另外还可以对DETR的注意力图进行可视化,从图中可以看到,高亮部分就是decoder对预测物体的注意力大的地方。从图中可以看到,虽然两只象有重叠,但是它的注意力可以关注到正确的物体上。
DETR个人学习笔记(一)之DETR发展与概述_第9张图片


  1. anchor字面意思是锚,指固定船的东西,anchor在计算机视觉中有锚点或锚框,目标检测中常出现的anchor box是锚框,表示固定的参考框。 ↩︎

你可能感兴趣的:(DETR,学习,transformer,计算机视觉)