自从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。
实验结果如下所示,性能上倒是还不错,就是训练太慢了,300 epochs。
DETR还展示了COCO上的全景分割结果,可以看出实例区分能力还是比较有限,中间的Bus。
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)。
序列构造示意图:
训练300 epochs,实验结果:
稀疏注意力
Deformable DETR(ICLR 2021)
代码链接:https://github.com/fundamentalvision/Deformable-DETR
最近提出了DETR,以消除在物体检测中对许多手动设计部件的需要,同时证明了良好的性能。然而,由于Transformer注意力模块在处理图像特征图时的限制,它存在收敛速度慢和特征空间分辨率有限的问题。为了缓解这些问题,论文提出了Deformable DETR,其注意力模块只关注参考周围的一小组关键采样点。Deformable DETR可以实现比DETR更好的性能(特别是在小目标上),训练时间减少10倍。COCO基准的大量实验证明了算法的有效性。
- 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。
实验结果
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)之间实现了良好的平衡。
本文的主要贡献如下:
- 开发了一种称为自适应聚类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之间的无缝切换。
实验结果如下:
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进行有效的视觉分析迈出了一步,其中通常观察到空间冗余。
本文的主要贡献如下:
- 分析了DETR模型中图像特征图的空间冗余问题,该问题导致transformer网络计算量过大。因此,提出对特征映射进行抽象,以显著降低模型运算量;
- 设计了一种新颖的两步轮询池采样模块提取特征。该算法首先利用poll采样器提取前景精细特征向量,然后利用pool采样器获取上下文粗特征向量;
- 构建了PnP-DETR,该变换在抽象的细粗特征空间上进行操作,并自适应地将计算分布在空间域。通过改变精细特征集的长度,PnP-DETR算法效率更高,在单一模型下实现了即时计算和性能折衷。
- PnP抽样模块是通用的,是端到端学习的,没有像RPN那样的明确监督。论文进一步在全景分割和最近的ViT模型上对其进行了验证,并显示出一致的效率增益。这种方法为未来研究使用transformer的视觉任务的有效解决方案提供了有用的见解。实验结果如下:
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%。
论文的主要贡献如下:
- 提出了一种有效的端到端目标检测器的编码器token稀疏化方法,通过该方法减轻了编码器中的注意力复杂性。这种效率使得能够堆叠比Deformable DETR更多的编码器层,从而在相同的计算量下提高性能;
- 提出了两个新的稀疏化标准来从整个token集合中采样信息子集:Objectness Score(OS)和Decoder cross-Attention Map(DAM)。基于decoder cross-attention map标准,稀疏模型即使在仅使用整个token的10%时也保持了检测性能;
- 仅对所选token采用编码器辅助损失。这种额外的损失不仅稳定了学习过程,而且大大提高了性能,只略微增加了训练时间。
实验结果如下:
原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA)