End-to-End Object Detection with Transformers 论文阅读

该论文为跨界论文,将机器翻译的Transformer结构用在了目标检测以及语义分割上,在COCO数据集上超越了Faster R-CNN。将Transformer应用到计算机视觉方面,简化了检测的流程(不需要很多手动设计的组件,如非最大抑制,或者锚)。该网络基于集合的全局损耗,通过二分匹配和Transformer中的编码解码器架构来进行预测。


网络结构

该论文由CNN与Transformer组成,由CNN提取特征,再通过Transformer结构将特征进行编码预测。
在这里插入图片描述
下图为网络各部分具体的结构。
在这里插入图片描述

1.主干网络

主干网络采用的CNN,将输入的2D图像进行特征提取。初始输入图像 x i m g ∈ R 3    ∗    H 0    ∗    W 0 x_{img}\in \mathbb{R}^{3\;\ast\;H_0\;\ast\;W_0} ximgR3H0W0为3通道图像,通过主干网络提取特征生成的激活特征图 f ∈ R C    ∗    H    ∗    W f\in \mathbb{R}^{C\;\ast\;H\;\ast\;W} fRCHW,通常C为2048通道,H,W = H 0 32 \frac{H_0}{32} 32H0, W 0 32 \frac{W_0}{32} 32W0

2.Transformer结构

1.positional encoding
通过位置编码来对模型的输入进行补充,来满足Transformer对有序序列的需求。
2.encoder
Transformer encoder结构,首先使用1 × \times × 1的卷积结构,因为通过CNN获得的特征图不满足encoder的输入维度要求,需要先使用1 × \times × 1的卷积结构对特征图的通道数进行降维,从输出的C维降到d维。而encoder结构需要的是序列输入,所以将降维后的特征图压缩成 一维 的输入序列。压缩后成为一个d × \times × HW的特征图。每层encoder都是由multi-head attention和FFN(feed forward network)构成。
3.decoder
decoder使用multi-head attention结构转换大小为d的N个embeding,N为初始设置的检测目标数。与Transformer不同的是,文中的decoder会同时并行解码N个目标。最后将decoder的输出通过FFN解码成box的坐标和类别label。
4.Prediction feed-forward network(FFNs)
预测前馈网络由3层的感知器和1层线性层构成。并且在预测是N可能会比检测目标多,当N未预测到目标则用 ∅ \varnothing 表示。
5.应用于语义分割时增加的结构
在这里插入图片描述
增加了FPN结构的CNN用来提取深层语义特征,以及掩码结构来输出N类的feature map,最后通过对像素进行分类来输出类别。


提出的创新或改进

传统的目标检测为每个感兴趣的对象预测一组边界框和类别标签,而这些感兴趣的对象往往数量很大,这也是现代目标检测性能受限的原因。现在的目标检测的端到端的理念仅仅是增加其他形式的先验知识,要么没有在挑战性的benchmarks(基准数据集)与strong baselines进行对比。而该论文就是为了解决这一差距。
“benchmark 是基准,或者说是基准数据集。 它与dataset的区别是只有images,没有groundtruth。 所以他不应该作为网络训练的训练集,而是作为测试集。 所以benchmark的作用是评估不同算法的性能。”

1.将CNN与Transformer进行结合

通过对特征图进行编码,转换成Transformer的输入序列,使得CNN与Transformer进行了结合,Transformer的decoder结构对编码的特征进行了类别预测,decoder同时可以解码出来box向量和label,N个序列表示了N个预测,不需要像常规的目标检测结构一样需要预先设置过多的兴趣区域,然后进行筛选。Transformer的每个序列就一一对应所预测的目标(存在空目标),Transformer结构中不需要anchor或者proposal。

2.损失函数

基础损失函数–bipartite matching loss(二分匹配损失),使用该损失则使得Transformer结构中不需要使用先验知识(NMS等),与anchors或proposal的匹配类似,但不同的是该损失是将N个序列进行一一对应的匹配。
在这里插入图片描述
Hungarian loss :同时结合了类别预测损失和box预测损失
在这里插入图片描述

Auxiliary decoding losses:有助于输出每个类别正确的对象数

3.预测

目标检测的预测:目标检测中的预测使用的是FFNs,将decoder的N个目标输出进行解码,生成box向量和label,然后对box和label进行预测。其中label用softmax进行预测。
语义分割的预测:语义分割中的预测是在Transformer中增加掩码,使用掩码来获得不同类别的输出,然后通过对像素点进行分类来进行预测。


模型的训练

1.数据集的使用

该论文在COCO 2017目标检测和语义分割数据集中进行实验。该数据集中平均每个图像有7个实例,单个图像中最多有63个实例。

2.模型的初始化和训练

该模型使用Adam优化器,Transformer结构初始学习率设置为 1 0 − 4 10^{-4} 104,主干网络设置为 1 0 − 5 10^{-5} 105,使用权重下降进行优化权重。Transformer的权重参数使用Xvaier进行初始化。该模型同时使用两种主干网络进行对比试验分别为ResNet50和ResNet101。


实验结果与分析

该论文通过与传统目标检测方法进行比较,取得了比较理想的结果。并且进行了消融实验来证明了各个结构的效果。

1.消融实验

首先是编码器的层数对模型的影响。由此看出第一层和最后一层的编码器对模型的影响最大。未使用编码器与使用了三层编码器AP上查了3.4。
在这里插入图片描述
下图为最后一层encoder的可视化输出
在这里插入图片描述

其次是位置编码对模型的影响。位置编码分别为空间位置编码和输出位置编码。输出位置编码是必须的,对模型的影响比较大。空间位置编码也对模型性能有一定的提升。
在这里插入图片描述
最后是损失函数对模型的影响,因为是目标检测需要预测类别,所以类别损失一直存在,仅仅是对 l 1 \mathcal l1 l1损失和GIoU损失进行比较。
在这里插入图片描述

2.与其他模型进行对比

在目标检测的数据集上与Faster RCNN进行的比较。在大目标上去的了较好的结果,但是对于小目标检测结果有待提高。
在这里插入图片描述
在语义分割的数据集上与SOTA的模型进行比较,以ResNet101为主干网络的DETR取得了很好的表现。
在这里插入图片描述
下图为语义分割的具体表现
在这里插入图片描述

3.结论

在目标检测方面对大目标检测效果理想,但是对于小目标的检测有待提升,并且网络的泛化能力较好,如下图,在训练集中没有超过13只长颈鹿的图片,但DETR人就能扩展到24个或更多的实例。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值