DETR系列大盘点 | 端到端Transformer目标检测算法汇总!(上)

简介: 自从VIT横空出世以来,Transformer在CV界掀起了一场革新,各个上下游任务都得到了长足的进步,今天就带大家盘点一下基于Transformer的端到端目标检测算法!

自从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。

640.png


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

640.png


DETR还展示了COCO上的全景分割结果,可以看出实例区分能力还是比较有限,中间的Bus。

640.png


Pix2seq(谷歌Hinton)


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


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

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


网络主要包含四个组件:


  • 图像增强:正如在训练计算机视觉模型中常见的那样,论文使用图像增强来丰富一组固定的训练示例(例如,使用随机缩放和裁剪);
  • 序列构造和扩充:由于图像的目标注释通常表示为一组边界框和类标签,论文将它们转换为一系列离散token;
  • 架构:使用编码器-解码器模型,其中编码器感知像素输入,解码器生成目标序列(一次一个token);
  • 目标/损失函数:对模型进行训练,以最大化基于图像和先前token的token的对数似然性(使用softmax cross-entropy loss)。

640.png


序列构造示意图:

640.png


训练300 epochs,实验结果:

640.png


稀疏注意力



Deformable DETR(ICLR 2021)


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

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

640.png


- DETR存在的问题

  • 训练周期长,相比faster rcnn慢10-20倍!
  • 小目标性能差!通常用多尺度特征来解小目标,然而高分辨率的特征图大大提高DETR复杂度!


- 存在上述问题的原因

  • 初始化时,attention model对于特征图上所有像素权重几乎是统一的(即一个query与所有的k相乘的贡献图比较均匀,理想状况是q与高度相关且稀疏的k相关性更强),因此需要长时间学习更好的attention map;
  • 处理高分辨率特征存在计算量过大,存储复杂的特点;


- Motivation

  • 让encoder初始化的权重不再是统一分布,即不再与所有key计算相似度,而是与更有意义的key计算相似度可变形卷积就是一种有效关注稀疏空间定位的方式;
  • 提出deformable DETR,融合deformable conv的稀疏空间采样与transformer相关性建模能力在整体feature map像素中,模型关注小序列的采样位置作为预滤波,作为key。

实验结果

640.png


End-to-End Object Detection with Adaptive Clustering Transformer(北大&港中文)


代码链接:https://github.com/gaopengcuhk/SMCA-DETR/

DETR使用Transformer实现目标检测,并实现与Faster RCNN等两阶段目标检测类似的性能。然而,由于高分辨率的空间输入,DETR需要大量的计算资源用于训练和推理。本文提出了一种新的Transformer变体——自适应聚类Transformer(ACT),以降低高分辨率输入的计算成本。ACT使用Locality Sensitive Hashing(LSH)自适应地聚类query特征,并使用prototype-key交互来近似query-key交互。ACT可以将自注意力内部的二次()复杂度降低为(),其中K是每个层中原型的数量。ACT可以是一个嵌入式模块,取代原来的自注意力模块,无需任何训练。ACT在精度和计算成本(FLOP)之间实现了良好的平衡。

640.png


本文的主要贡献如下:

  • 开发了一种称为自适应聚类Transformer(ACT)的新方法,该方法可以降低DETR的推理成本。ACT可以降低原始Transformer的二次复杂度,同时ACT与原始Transformer完全兼容;
  • 将DETR的FLOPS从73.4 Gflops减少到58.2 Gflops(不包括骨干Resnet FLOPS),而无需任何训练过程,而AP的损失仅为0.7%;
  • 通过多任务知识蒸馏(MTKD)进一步将AP的损失降低到0.2%,该技术实现了ACT和原始Transformer之间的无缝切换。


实验结果如下:

640.png


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进行有效的视觉分析迈出了一步,其中通常观察到空间冗余。


640.png


本文的主要贡献如下:

  • 分析了DETR模型中图像特征图的空间冗余问题,该问题导致transformer网络计算量过大。因此,提出对特征映射进行抽象,以显著降低模型运算量;
  • 设计了一种新颖的两步轮询池采样模块提取特征。该算法首先利用poll采样器提取前景精细特征向量,然后利用pool采样器获取上下文粗特征向量;
  • 构建了PnP-DETR,该变换在抽象的细粗特征空间上进行操作,并自适应地将计算分布在空间域。通过改变精细特征集的长度,PnP-DETR算法效率更高,在单一模型下实现了即时计算和性能折衷。
  • PnP抽样模块是通用的,是端到端学习的,没有像RPN那样的明确监督。论文进一步在全景分割和最近的ViT模型上对其进行了验证,并显示出一致的效率增益。这种方法为未来研究使用transformer的视觉任务的有效解决方案提供了有用的见解。实验结果如下:

640.png


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%。

640.png


论文的主要贡献如下:

  • 提出了一种有效的端到端目标检测器的编码器token稀疏化方法,通过该方法减轻了编码器中的注意力复杂性。这种效率使得能够堆叠比Deformable DETR更多的编码器层,从而在相同的计算量下提高性能;
  • 提出了两个新的稀疏化标准来从整个token集合中采样信息子集:Objectness Score(OS)和Decoder cross-Attention Map(DAM)。基于decoder cross-attention map标准,稀疏模型即使在仅使用整个token的10%时也保持了检测性能;
  • 仅对所选token采用编码器辅助损失。这种额外的损失不仅稳定了学习过程,而且大大提高了性能,只略微增加了训练时间。

640.png


实验结果如下:

640.png


原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA

相关文章
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | Transformer,一个神奇的算法模型!!
**Transformer 模型的核心是自注意力机制,它改善了长序列理解,让每个单词能“注意”到其他单词。自注意力通过查询、键和值向量计算注意力得分,多头注意力允许并行处理多种关系。残差连接和层归一化加速训练并提升模型稳定性。该机制广泛应用于NLP和图像处理,如机器翻译和图像分类。通过预训练模型微调和正则化技术可进一步优化。**
54 1
算法金 | Transformer,一个神奇的算法模型!!
|
4月前
|
算法 JavaScript 前端开发
在JavaScript中实现基本的碰撞检测算法,我们通常会用到矩形碰撞检测,也就是AABB(Axis-Aligned Bounding Box)碰撞检测
【6月更文挑战第16天】JavaScript中的基本碰撞检测涉及AABB(轴对齐边界框)方法,常用于2D游戏。`Rectangle`类定义了矩形的属性,并包含一个`collidesWith`方法,通过比较边界来检测碰撞。若两矩形无重叠部分,四个条件(关于边界相对位置)均需满足。此基础算法适用于简单场景,复杂情况可能需采用更高级的检测技术或物理引擎库。
77 6
|
3天前
|
算法 安全
分别使用OVP-UVP和OFP-UFP算法以及AFD检测算法实现反孤岛检测simulink建模与仿真
本课题通过Simulink建模与仿真,实现OVP-UVP、OFP-UFP算法及AFD检测算法的反孤岛检测。OVP-UVP基于电压幅值变化,OFP-UFP基于频率变化,而AFD则通过注入频率偏移信号来检测孤岛效应,确保电力系统安全稳定运行。系统使用MATLAB 2013b进行建模与仿真验证。
|
2月前
|
机器学习/深度学习 监控 算法
目标检测算法技术
8月更文挑战第11天
|
2月前
|
机器学习/深度学习 监控 算法
目标检测算法
8月更文挑战第5天
|
2月前
|
机器学习/深度学习 监控 算法
目标检测算法
8月更文挑战第8天
|
3月前
|
监控 算法 自动驾驶
目标检测算法:从理论到实践的深度探索
【7月更文第18天】目标检测,作为计算机视觉领域的核心任务之一,旨在识别图像或视频中特定对象的位置及其类别。这一技术在自动驾驶、视频监控、医疗影像分析等多个领域发挥着至关重要的作用。本文将深入浅出地介绍目标检测的基本概念、主流算法,并通过一个实际的代码示例,带您领略YOLOv5这一高效目标检测模型的魅力。
386 11
|
3月前
|
机器学习/深度学习 人工智能 监控
人工智能 - 目标检测算法详解及实战
目标检测需识别目标类别与位置,核心挑战为复杂背景下的多目标精准快速检测。算法分两步:目标提取(滑动窗口或区域提议)和分类(常用CNN)。IoU衡量预测与真实框重叠度,越接近1,检测越准。主流算法包括R-CNN系列(R-CNN, Fast R-CNN, Faster R-CNN),YOLO系列,SSD,各具特色,如Faster R-CNN高效候选区生成与检测,YOLO适用于实时应用。应用场景丰富,如自动驾驶行人车辆检测,安防监控,智能零售商品识别等。实现涉及数据准备、模型训练(示例YOLOv3)、评估(Precision, Recall, mAP)及测试。
100 5
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
126 9
|
3月前
|
机器学习/深度学习 人工智能 算法
计算机视觉:目标检测算法综述
【7月更文挑战第13天】目标检测作为计算机视觉领域的重要研究方向,近年来在深度学习技术的推动下取得了显著进展。然而,面对复杂多变的实际应用场景,仍需不断研究和探索更加高效、鲁棒的目标检测算法。随着技术的不断发展和应用场景的不断拓展,相信目标检测算法将在更多领域发挥重要作用。
下一篇
无影云桌面