发布时间:2023-04-20 文章分类:电脑百科 投稿人:李佳 字号: 默认 | | 超大 打印

都到了13了 ~~ 还是基于这个的么办法 自从VIT横空出世以来,Transformer在CV界掀起了一场革新,各个上下游任务都得到了长足的进步,然后盘点一下基于Transformer的端到端目标检测算法!

原始Tranformer检测器

DETR(ECCV2020)

开山之作!DETR!

代码链接:https://github.com/facebookresearch/detr

论文提出了一种将目标检测视为直接集预测问题的新方法。DETR简化了检测流程,有效地消除了对许多人工设计组件的需求,如NMS或anchor生成。新框架的主要组成部分,称为DEtection TRansformer或DETR,是一种基于集合的全局损失,通过二分匹配强制进行一对一预测,以及一种transformer encoder-decoder架构。给定一组固定的学习目标查询,DETR分析了目标和全局图像上下文之间的关系,以直接并行输出最后一组预测。与许多其他检测器不同,新模型概念简单,不需要专门的库。DETR在具有挑战性的COCO目标检测数据集上展示了与成熟且高度优化的Faster RCNN基线相当的准确性和运行时间。此外,DETR可以很容易地推广到以统一的方式输出全景分割。

DETR的网络结构如下图所示,从图中可以看出DETR由四个主要模块组成:backbone,编码器,解码器以及预测头。主干网络是经典的CNN,输出降采样32倍的feature。

Transformer13~目标检测算法汇总

实验结果如下所示,性能上倒是还不错,就是训练太慢了,300 epochs。

Transformer13~目标检测算法汇总DETR还展示了COCO上的全景分割结果,可以看出实例区分能力还是比较有限,中间的Bus。  Transformer13~目标检测算法汇总

Pix2seq(谷歌Hinton)

代码链接:https://github.com/google-research/pix2seq

一句话总结:一个简单而通用的目标检测新框架,其将目标检测转换为语言建模任务,大大简化了pipeline,性能可比肩Faster R-CNN和DETR!还可扩展到其他任务。

论文提出Pix2Seq,一个简单而通用的目标检测框架!!!与显式集成关于任务的先验知识的现有方法不同,Pix2seq将目标检测作为一个基于观察到的像素输入的语言建模任务。目标描述(例如,边界框和类标签)表示为离散token,训练神经网络来感知图像并生成所需序列。Pix2seq主要基于这样一种直觉,即如果神经网络知道目标的位置和内容,我们只需要教它如何read them out。除了使用特定于任务的数据扩充,Pix2seq对任务的假设最少,但与高度专业化和优化的检测算法相比,它在具有挑战性的COCO数据集上取得了有竞争力的结果。

网络主要包含四个组件:

Transformer13~目标检测算法汇总 序列构造示意图:

Transformer13~目标检测算法汇总

 训练300 epochs,实验结果:

Transformer13~目标检测算法汇总

稀疏注意力

Deformable DETR(ICLR 2021)

代码链接:https://github.com/fundamentalvision/Deformable-DETR

最近提出了DETR,以消除在物体检测中对许多手动设计部件的需要,同时证明了良好的性能。然而,由于Transformer注意力模块在处理图像特征图时的限制,它存在收敛速度慢和特征空间分辨率有限的问题。为了缓解这些问题,论文提出了Deformable DETR,其注意力模块只关注参考周围的一小组关键采样点。Deformable DETR可以实现比DETR更好的性能(特别是在小目标上),训练时间减少10倍。COCO基准的大量实验证明了算法的有效性。

Transformer13~目标检测算法汇总

 DETR存在的问题

- 存在上述问题的原因

- Motivation

实验结果

Transformer13~目标检测算法汇总End-to-End Object Detection with Adaptive Clustering Transformer(北大&港中文)

代码链接:https://github.com/gaopengcuhk/SMCA-DETR/DETR Transformer13~目标检测算法汇总

本文的主要贡献如下:

实验结果如下:

Transformer13~目标检测算法汇总

PnP-DETR(ICCV 2021)

论文链接:GitHub - twangnh/pnp-detr: Implementation of ICCV21 paper: PnP-DETR: Towards Efficient Visual Analysis with Transformers

DETR虽然有效,但由于在某些区域(如背景)上的冗余计算,转换完整的特征图可能代价高昂。在这项工作中,论文将减少空间冗余的思想封装到一个新的poll and pool(PnP)采样模块中,利用该模块构建了一个端到端PnP DETR架构,该架构自适应地在空间上分配其计算,以提高效率。具体地说,PnP模块将图像特征映射抽象为精细的前景目标特征向量和少量粗略的背景上下文特征向量。Transformer对精细-粗糙特征空间内的信息交互进行建模,并将特征转换为检测结果。此外,通过改变采样特征长度,PnP增强模型可以立即在单个模型的性能和计算之间实现各种期望的权衡,而不需要像现有方法那样训练多个模型。因此,它为具有不同计算约束的不同场景中的部署提供了更大的灵活性。论文进一步验证了PnP模块在全景分割上的泛化性以及最近基于Transformer的图像识别模型ViT[7],并显示出一致的效率增益。论文认为PnP-DETR为使用Transformer进行有效的视觉分析迈出了一步,其中通常观察到空间冗余。

Transformer13~目标检测算法汇总

本文的主要贡献如下:

Sparse DETR(ICLR 2022)

代码链接:https://github.com/kakaobrain/sparse-detr

Deformable DETR使用多尺度特征来改善性能,然而,与DETR相比,encoder tokens的数量增加了20倍,encoder注意力的计算成本仍然是一个瓶颈。在本文的初步实验中,发现即使只更新了encoder tokens的一部分,检测性能也几乎不会恶化。受这一观察的启发,论文提出了Sparse DETR,它只选择性地更新decoder预期引用的令牌,从而帮助模型有效地检测目标。此外,在encoder中对所选token应用辅助检测损失可以提高性能,同时最小化计算开销。本文验证了Sparse DETR即使在COCO数据集上只有10%的encoder tokens,也比Deformable DETR获得更好的性能。尽管只有encoder tokens被稀疏化,但与Deformable DETR相比,总计算成本降低了38%,FPS增加了42%。

Transformer13~目标检测算法汇总

论文的主要贡献如下:

Transformer13~目标检测算法汇总 实验结果如下: 

Transformer13~目标检测算法汇总

 空间先验

Fast Convergence of DETR with Spatially Modulated Co-Attention(ICCV 2021)

DETR的收敛速度较慢。从头开始训练DETR[4]需要500个epoch才能获得高精度。为了加速其收敛,本文提出了一种简单而有效的改进DETR框架的方案,即Spatially Modulated Co-Attention(SMCA)机制。SMCA的核心思想是通过将co-attention响应限制在初始估计的边界框位置附近的较高区域,在DETR中进行regression-aware co-attention。本文提出的SMCA通过替换decoder中的原始co-attention,同时保持DETR中的其他操作不变,提高了DETR的收敛速度。此外,通过将multi-head和scale-selection注意力设计集成到SMCA中,与基于空洞卷积的主干的DETR相比,本文的SMCA可以实现更好的性能。论文对COCO数据集进行了广泛的消融研究,以验证所提出的SMCA的有效性。

Transformer13~目标检测算法汇总主要贡献如下:

动机

为了加速DETR收敛,本文通过动态预测一个2D的空间高斯weight map,来跟co-attention feature maps相乘来达到加快收敛速度的目的。即插即用,让DETR涨点明显。性能优于可变形DETR、DETR等网络。实验结果如下:

Transformer13~目标检测算法汇总

Conditional DETR(ICCV 2021)

本文针对DETR训练收敛缓慢这一关键问题,提出了一种用于快速DETR训练的conditional cross-attention机制。动机是DETR中的cross-attention高度依赖内容嵌入来定位和预测box,这增加了对高质量内容嵌入的需求,从而增加了训练难度。

本文的方法称为Conditional DETR,从解码器嵌入中学习条件空间query,用于解码器multi-head cross-attention。好处在于,通过条件空间query,每个交叉注意力头能够关注包含不同区域的band,例如,一个目标末端或目标框内的区域。这缩小了用于定位目标分类和box回归的不同区域的空间范围,从而放松了对内容嵌入的依赖,并简化了训练。实验结果表明,对于主干R50和R101,Conditional DETR收敛速度快6.7倍,对于更强的主干DC5-R50和DC5-R101,收敛速度快10倍。

Transformer13~目标检测算法汇总

动机

为了分析 DETR 为什么收敛慢,论文对 DETR decoder cross-attention 中的 spatial attention map 进行了可视化。

Transformer13~目标检测算法汇总

每个 head 的 spatial attention map 都在尝试找物体的一个 extremity 区域。论文认为,DETR 在计算 cross-attention 时,query 中的 content embedding 要同时和 key 中的 content embedding 以及 key 中的 spatial embedding 做匹配,这就对 content embedding 的质量要求非常高。而训练了 50 epoch 的DETR,因为 content embedding 质量不高,无法准确地缩小搜寻物体的范围,导致收敛缓慢。所以用一句话总结 DETR 收敛慢的原因,就是DETR 高度依赖高质量的 content embedding 去定位物体的 extremity 区域,而这部分区域恰恰是定位和识别物体的关键

基于此,提出Conditional DETR!

实验结果如下:

Transformer13~目标检测算法汇总Anchor DETR(AAAI 2022)

代码链接:https://github.com/megvii-research/AnchorDETR

本文提出了一种新的基于Transfomrer的目标检测查询机制。在以前的基于Transfomrer的检测器中,object query是一组学习的嵌入。然而,每个学习到的嵌入都没有明确的物理意义,我们无法解释它将集中在哪里。由于每个object query的预测slot没有特定的模式,因此很难进行优化。换句话说,每个object query都不会关注特定区域。为了解决这些问题,在本文的query设计中,object query基于anchor point,这在基于CNN的检测器中被广泛使用。因此,每个object query都集中在anchor附近的目标上。此外,本文的query设计可以在一个位置预测多个目标以解决困难:“一个区域,多个目标”。此外,本文设计了一种注意力变体,它可以降低内存成本,同时实现与DETR中的标准注意力相似或更好的性能。由于query设计和注意力变体,本文方法名为Anchor DETR,可以实现比DETR更好的性能,并且运行速度比DETR更快。

Transformer13~目标检测算法汇总

回顾基于CNN的检测器,anchor与位置高度相关,包含可解释的意义。受此启发,作者提出了一种基于锚点(anchor points)的查询设计,即将anchor points编码为目标查询。查询是锚点坐标的编码,因此每个目标查询都具有显式的物理意义。          whaosoft aiot http://143ai.com

但是,这个解决方案还有一个限制:多个目标可能出现在一个位置 。在这种情况下,只有这个位置的一个查询不能预测多个目标,因此来自其他位置的查询必须协同预测这些目标。它将导致每个目标查询负责一个更大的区域。因此,作者通过向每个锚点添加多个模式(multiple patterns,即一个锚点可以检测多个目标)来改进目标查询设计,以便每个锚点都可以预测多个目标

除了查询设计之外,作者还设计了一个attention变体—行列解耦注意(Row-Column Decouple Attention,RCDA) 。它将二维key特征解耦为一维行特征和一维列特征,然后依次进行行注意力和列注意力。RCDA可以降低计算成本,同时实现与DETR中的标准注意力相似甚至更好的性能。

实验结果如下: Transformer13~目标检测算法汇总

Efficient DETR(旷视)

DETR和Deformable DETR,具有堆叠6个解码器层的级联结构,以迭代更新object query,否则它们的性能会严重下降。本文研究了目标容器(包括object query和reference point)的随机初始化主要负责多次迭代的需求。基于论文的发现提出了Efficient DETR,这是一种用于端到端目标检测的简单高效的管道。通过利用密集检测和稀疏集合检测,Efficient DETR在初始化目标容器之前利用密集先验,并消除了1解码器结构和6解码器结构之间的差距。在MS COCO上进行的实验表明,本文的方法仅具有3个编码器层和1个解码器层,与最先进的目标检测方法相比,可以获得具有竞争力的性能。Efficient DETR在拥挤的场景中也很强大。它在CrowdHuman数据集上大大优于当期检测器。

Transformer13~目标检测算法汇总

 实验结果如下:

Transformer13~目标检测算法汇总

Dynamic DETR(ICCV 2021)

本文提出了一种新的Dynamic DETR(Transfomrer检测)方法,将动态注意力引入DETR的编码器和解码器阶段,以打破其在小特征分辨率和训练收敛慢方面的两个限制。为了解决第一个限制,这是由于Transformer编码器中的自注意力模块的二次计算复杂性,论文提出了一种动态编码器,以使用具有各种注意力类型的基于卷积的动态编码器来近似Transformer编码器的注意力机制。这种编码器可以基于诸如尺度重要性、空间重要性和表示(即,特征维度)重要性的多个因素来动态调整注意力。为了减轻学习难度的第二个限制,论文引入了一个动态解码器,通过在Transformer解码器中使用基于ROI的动态注意力来替换交叉注意力模块。这种解码器有效地帮助Transfomrer从coarse-to-fine地关注ROI,并显著降低学习难度,从而实现更快的收敛。论文进行了一系列实验来证明我们的优势。Dynamic DETR显著缩短了训练时间(减少了14倍),但性能要好得多(mAP提升3.6)。

Transformer13~目标检测算法汇总

本文的主要贡献如下:

Transformer13~目标检测算法汇总 实验结果如下: 

Transformer13~目标检测算法汇总

 结构重新设计

Rethinking Transformer-based Set Prediction for Object Detection(ICCV 2021)

代码链接:GitHub: Let’s build from hereEdward-Sun/TSP-Detection

DETR是最近提出的一种基于Transformer的方法,它将目标检测视为一个集合预测问题,并实现了最先进的性能,但需要额外的训练时间来收敛。本文研究了DETR训练中优化困难的原因,揭示了导致DETR缓慢收敛的几个因素,主要是匈牙利损失和Transformer中co-attention的问题。为了克服这些问题,本文提出了两种解决方案,即TSP-FCOS(使用FCOS的基于Transformer的集合预测)和TSP-RCNN(使用RCNN的基于Transformer集合预测)。实验结果表明,所提出的方法不仅比原始DETR收敛更快,而且在检测精度方面显著优于DETR和其他基线。

Transformer13~目标检测算法汇总

实验结果如下:

Transformer13~目标检测算法汇总

You Only Look at One Sequence: Rethinking Transformer in Vision through Object Detection(NeurIPS 2021)

代码链接:GitHub - hustvl/YOLOS: You Only Look at One Sequence (NeurIPS 2021)

Transformer能否在对2D空间结构了解最少的情况下,从纯sequence-to-sequence的角度进行2D目标和区域级别的识别?为了回答这个问题,论文提出了“你只看一个序列”(YOLOS),这是一系列基于朴素视觉Transformer的目标检测模型,具有最少的可能修改、区域优先级以及目标任务的归纳偏差。论文发现只有在中型ImageNet-1k数据集上预训练的YOLOS才能在COCO目标检测基准上获得相当有竞争力的性能,例如,直接采用BERT-Base架构的YOLOS-Base可以在COCO值上获得42.0 box AP。论文还通过YOLOS讨论了当前预训练方案和Transformer模型缩放策略的影响和局限性。 Transformer13~目标检测算法汇总

本文的主要贡献如下:

实验结果如下:

Transformer13~目标检测算法汇总

匹配优化

DN-DETR(CVPR 2022)

代码链接:https://github.com/FengLi-ust/DN-DETR

本文提出了一种新的去噪训练方法,以加速DETR(DEtection TRansformer)训练,并加深了对类DETR方法的收敛慢问题的理解。本文认为收敛缓慢是由于二分匹配的不稳定性导致的,这在早期训练阶段导致了不一致的优化目标。为了解决这个问题,除了匈牙利损失外,论文还将带有噪声的GT框输入Transformer解码器,并训练模型以重建原始框,这有效地降低了二分匹配的难度,并可以更快的收敛。本文的方法是通用的,可以通过添加几十行代码轻松地插入到任何类DETR的方法中,以实现显著的改进。因此,DN-DETR在相同的设置下产生了显著的改进(+1.9AP)。与相同设置下的基线相比,DN-DETR在50%的训练时间内实现了可比的性能。

Transformer13~目标检测算法汇总

本文的主要贡献如下:

实验结果后如下: Transformer13~目标检测算法汇总

DINO

代码链接:https://github.com/IDEACVR/DINO

本文提出DINO,这是一种先进的端到端目标检测器。DINO通过使用对比的去噪训练方法、anchor初始化的混合query选择方法和box预测的look forward twice方案,在性能和效率上改进了以前的类DETR模型。DINO在具有ResNet-50主干和多尺度特征的COCO上实现了12个epoch的49.4 AP和24个epoch的51.3AP,与之前最好的类DETR的模型DN-DETR相比,分别显著提高了+6.0 AP和+2.7 AP。DINO在模型大小和数据大小方面都具有很好的扩展性。没有任何trick,在使用SwinL主干的Objects365数据集上进行预训练后,DINO在COCO val 2017(63.2AP)和测试集(63.3AP)上都获得了最好的结果。与排行榜上的其他模型相比,DINO显著减少了其模型大小和预训练数据大小,同时获得了更好的结果。

Transformer13~目标检测算法汇总本文的主要贡献如下:

Transformer13~目标检测算法汇总