NLP携手Transformer跨界计算机视觉!DETR:目标检测新范式

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: 自 Transformer 被提出以来,便席卷了整个 NLP 领域。其实,它还可以用来进行目标检测。Facebook AI 的研究者首先推出了 Transformer 视觉版本——Detection Transformer(DETR),填补了 Transformer 用于目标检测的空白,对标超越 Faster RCNN。基于 DETR,研究者们提出了多种优化版本进行目标检测任务,效果还不错。



微信图片_20211204203832.jpg


Transformer 是 Google 团队在 2017 年 6 月提出的 NLP 经典之作,由 Ashish Vaswani 等人在发表的论文《Attention Is All You Need》中提出。自从 Transformer 被提出以来,得益于其强大的注意力机制,便开始在 NLP 领域一统江湖。但令人意外的是,Transformer 在 CV 界却反响平平,一度认为不适合 CV 领域,直到最近计算机视觉领域出来几篇 Transformer 文章,性能直逼 CNN 的 SOTA,给予了计算机视觉领域新的想象空间,Transformer 在计算机视觉领域的范式已经初具雏形。


在计算机视觉领域,目标检测发展迅速,出现了以 R-CNN、Faster R-CNN、Mask RCNN 为代表的 two-stage 网络架构,以及以 YOLO、SSD 为代表的 one-stage 网络架构。如果将在 NLP 领域表现超越的 Transformer 用于目标检测,其效果又如何?现阶段研究者已尝试将 Transformer 用于目标检测任务,填补了 Transformer 用于目标检测的空白。


本文我们将要介绍的是用 Transformer 进行目标检测任务,主要包括以下内容:

  • 论文 1:《End-to-End Object Detection with Transformers》,来自 Facebook AI 的研究者推出的 Transformer 视觉版本——Detection Transformer(DETR),可用于目标检测和全景分割。
  • 论文 2:《DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION》,来自商汤科技研究院、中国科学技术大学以及香港中文大学的研究者提出了 Deformable DETR,解决了 DETR 收敛慢、计算复杂度高这两大问题。
  • 论文 3:《UP-DETR: Unsupervised Pre-training for Object Detection with Transformers》,来自华南理工大学以及腾讯 Wechat AI 的研究者提出了一种称为随机查询 patch 检测的前置任务,以无监督的预训练 DETR(UP-DETR)进行目标检测。
  • 论文 4:《End-to-End Object Detection with Adaptive Clustering Transformer》,来自北京大学与香港中文大学的研究者提出了一种新的 transformer 变体:自适应聚类 Transformer(ACT),解决了 DETR 需要大量的计算资源来进行训练和推理的计算成本。


论文 1:End-to-End Object Detection with Transformers

由于 Transformer 广泛应用于序列数据的处理任务,尤其是在语言建模、机器翻译等任务中表现出良好的性能,那么在 NLP 领域表现良好的模型是否可以用到视觉领域?来自 Facebook AI 的研究者实现了这一功能。


Facebook AI 的研究者把 Transformer 用到了目标检测任务中,还取得了媲美 Faster R-CNN 的效果。该研究推出的 Transformer 视觉版本——Detection Transformer(DETR),可用于目标检测和全景分割。与之前的目标检测相比,DETR 的架构有了根本上的改变,也是第一个将 Transformer 成功整合为检测 pipeline 中心构建块的目标检测框架。基于 Transformer 的端到端目标检测,没有 NMS 后处理步骤、真正的没有 anchor,且对标超越 Faster R-CNN。


微信图片_20211204203840.jpgimage.gif



算法实现:处理目标检测任务的全新架构


微信图片_20211204203858.pngimage.gif


DETR 通过将常见的 CNN 与 Transformer 架构相结合,直接(并行)预测最终的检测结果。在训练阶段,二分匹配将唯一的预测分配给 GT 框。不匹配的预测产生无目标(∅)类预测。


DETR 的工作流程可以归为以下步骤:Backbone -> Transformer -> detect header。


将 DETR 的结构具体化,如下图所示:


微信图片_20211204203902.png


DETR 使用常规的 CNN 主干来学习输入图像的 2D 表示。模型将其展平并传递到 transformer 编码器之前进行位置编码补充。然后,transformer 解码器将少量固定数量的位置嵌入作为输入,称为目标查询,并另外参与编码器的输出。将解码器的每个输出嵌入传递到预测检测(类和边界框)或无目标类的共享前馈网络(FFN)。

更为具体的 DETR 架构如下:


微信图片_20211204203906.png


上图给出了 DETR 中使用 transformer 的详细说明,并在每个注意力层传递了位置编码。来自 CNN 主干的图像特征通过了 transformer 编码器,并将空间位置编码与添加到查询和键处的空间编码一起传递。然后,解码器接收查询(最初设置为零),输出位置编码(目标查询)和编码器内存,并通过多个多头自注意力和解码器 - 编码器注意力来生成最终的一组预测类标签和边界框。此外可以跳过第一解码器层中的第一自注意力层。

虽然 DETR 性能良好,但其自身也存在着如下两个问题:

  • 与现有的目标检测器相比,它需要更长的训练轮数才能收敛。比如,在 COCO 基准上,DETR 需要 500 个 epoch 才能收敛,这比 Faster R-CNN 慢了 10 到 20 倍;
  • DETR 在检测小物体上性能较差。当今的目标检测器通常利用了多尺度的特征,从而小物体可以从高分辨率的特征图中检测。但是对于 DETR 来说,高分辨率的特征图将带来不可接受的计算复杂度和内存复杂度。


论文 2:DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION


今年 5 月底,Facebook AI 提出了 DETR(论文 1),利用 Transformer 去做目标检测,该方法去除了许多目标检测中的人工设计组件,同时展现了非常好的性能。但是,DETR 存在收敛速度慢和特征分辨率有限、训练时间慢等缺陷。为了解决这些问题,来自商汤研究院、中科大和港中文的研究者提出了 Deformable DETR,解决了 DETR 收敛慢、计算复杂度高这两大问题。其注意力模块仅关注于参考点附近的一小部分采样点作为注意力模块中的 key 元素。Deformable DETR 可以在比 DETR 少 9/10 的训练轮数下,达到更好的性能(尤其是在小物体上),在 COCO 基准上的大量实验验证了该方法的有效性。


Deformable DETR 提出的可形变注意力可以缓解 DETR 收敛速度慢和复杂度高的问题,同时结合了可形变卷积的稀疏空间采样能力和 transformer 的关系建模能力。可形变注意力可以考虑小的采样位置集作为一个 pre-filter 突出所有特征图的关键特征,并且可以自然地扩展到融合多尺度特征,这样多尺度可形变注意力本身就可以在多尺度特征图之间进行交换信息,不需要 FPN 操作。


微信图片_20211204203908.png


论文地址:https://arxiv.org/pdf/2010.04159.pdf


Deformable DETR 方法和模型解读


Deformable DETR 结合了可形变卷积中的稀疏空间采样的优势以及 Transformer 中的关系建模能力。研究者提出了可形变注意力模块(如下公式(2)所示),它关注一小部分采样的位置,作为从特征图所有像素中预先筛选出显著的 key 元素。


微信图片_20211204203912.png


这一模块可以被扩展到聚合多尺度特征上(如下公式(3)所示),而不需要 FPN。


微信图片_20211204203915.png


Deformable DETR 将 DETR 中的 attention 替换成 Deformable Attention,使 DETR 范式的检测器更加高效,收敛速度提升 10 倍,如下图所示:

image.gif

微信图片_20211204203918.png


由于 Deformable DETR 的快速收敛性和计算内存高效性,它打开了探索端到端目标检测器变种的可能。此外,研究者探索了一个简单而有效的迭代式物体边界框细化机制来进一步提高检测性能。同时也尝试了 two-stage 网络架构的 Deformable DETR,其中第一阶段的 region proposals 也是由 Deformable DETR 的一个变种生成,然后进一步被输入到解码器进行迭代式物体边界框细化。


论文 3:UP-DETR: Unsupervised Pre-training for Object Detection with Transformers


受预训练 transformer 在 NLP 任务中巨大成功的启发,来自华南理工大学以及腾讯 Wechat AI 的研究者提出了一种被称为随机查询 patch 检测的前置任务,以无监督预训练 DETR(UP-DETR)进行目标检测。特别地,研究者从给定的图像中随机裁剪 patches,然后将裁剪 patches 作为查询提供给解码器。


该模型经过预训练可以从原始图像中检测出这些查询 patches。预训练期间需要解决两个关键问题:多任务学习和多查询定位。一方面,为了在前置任务中权衡分类和定位的多任务学习,该研究冻结了 CNN 主干,并提出了一个与 patch 检测联合优化的 patch 特征重构分支。另一方面,为了执行多查询定位,该研究从单查询 patch 引入了 UP-DETR,并将其扩展到具有目标查询 shuffle 和注意力掩码的多查询 patch 。在实验中,UP-DETR 在 PASCAL VOC 和 COCO 数据集上以更快的收敛速度和更高的准确率显著提高了 DETR 的性能。


在预训练过程中,研究者主要解决以下两个关键问题:

  • 多任务学习:目标检测是目标分类和定位的耦合。为了避免查询 patch 检测破坏分类特征,研究者引入冻结的预训练主干和 patch 特征重构来保持 transformer 的特征识别;
  • 多查询定位:不同的目标查询聚焦于不同的位置区域和检测框大小。为了说明这一性质,研究者提出了简单的单查询预训练,并将其扩展到多查询版本。对于多查询 patches,研究者设计了目标查询 shuffle 和注意掩码,解决了查询 patches 和目标查询之间的分配问题。


微信图片_20211204203921.png


论文地址:https://arxiv.org/pdf/2011.09094.pdf


算法介绍


UP-DETR 包括预训练与微调过程:在没有任何人工标注的大型数据集上对 transformer 进行了无监督的预训练;使用与下游任务原始 DETR 相同的标记数据对整个模型进行微调。


微信图片_20211204203924.png


如上图 2 所示,随机查询 patch 检测是简单而有效的。首先,利用冻结的 CNN 主干提取输入图像的特征映射 f∈R^C×H×W,其中 C 为通道维数,H×W 为特征映射大小。然后,在 DETR 中将特征映射与位置编码相结合并传递给多层 transformer 编码器。对于随机裁剪的查询 patch,采用全局平均池化(GAP)的 CNN 主干网提取出 patch 特征 p∈R^C,并对其进行扁平化处理,并辅以目标查询 q∈R^C,然后将其传递给 transformer 解码器。注意,查询 patch 是指从原始图像中裁剪出来的 patch,而目标查询是指位置嵌入,并将其传递给解码器。CNN 参数在整个模型中是共享的。


单查询 Patch:DETR 为每个目标查询学习不同的空间专有化(spatial specialization),这表明不同的目标查询关注不同的位置区域和边框大小。当从图像中随机裁剪 patch 时,没有任何关于查询 patch 的位置区域和边框大小的先验信息。为了保持不同的空间专有化,该研究显式地为所有目标查询(N=3)指定单个查询块(M=1),如上图 2(a)所示。


图 2b 示出了具有注意力掩码和目标查询 shuffle 的多查询 patches 的预训练。为了提高泛化能力,研究人员在预训练期间随机地将 10% 的查询 patche 掩码为零,这类似于 dropout 方法。在实验中,两个典型值被设置为 N=100 和 M=10。


论文 4:End-to-End Object Detection with Adaptive Clustering Transformer


使用 Transformer 进行端到端的目标检测(DETR),可以达到与 two-stage 网络架构(如 Faster R-CNN)相媲美的性能。然而,由于高分辨率的空间输入,DETR 需要大量的计算资源来进行训练和推理。


为了降低高分辨率输入的计算成本,来自北京大学与香港中文大学的研究者提出了一种新的 transformer 变体:自适应聚类 Transformer(Adaptive Clustering Transformer, ACT)。ACT 使用局部敏感哈希(LSH)自适应地对查询特征进行聚类,并利用 prototype-key 交互近似 query-key 交互。ACT 可以将自注意力内部的二次 O(N^2)复杂度降低为 O(NK),其中 K 是每层原型的数量。在不影响预训练 DETR 模型性能的前提下,ACT 可以替代 DETR 中原有的自注意模块。ACT 在准确率和计算成本(FLOPs)之间实现了很好的平衡。

image.gif

微信图片_20211204203927.png


论文地址:https://arxiv.org/pdf/2011.09315.pdf


该研究的主要贡献如下:

  • 提出了一种新的自适应聚类 Transformer(ACT)方法,可以降低 DETR 的推理成本。ACT 旨在使用轻量级 LSH 从查询中选择具有代表性的原型,然后将所选原型的特征更新传递到最近的查询中。ACT 可以降低原始 transformer 的二次复杂度,同时与原始 transformer 完全兼容;
  • 在不经过任何训练的情况下,该研究将 DETR 中的 FLOPS 从 73.4 Gflops 减少到 58.2 Gflops(排除主干 Resnet FLOPs),而 AP 中损失仅为 0.7%;
  • 通过多任务知识蒸馏 (MTKD) 将 AP 中损失降低到 0.2%,从而实现了 ACT 和原始 transform 之间的无缝转换。


算法介绍


下图 3 展示了 DETR 的三个阶段。在编码器中,使用 ImageNet 预训练的 ResNet 模型从输入图像中提取 2D 特征。位置编码模块使用不同频率的正弦和余弦函数对空间信息进行编码。DETR 将 2D 特性扁平化,用位置编码进行补充,并传递给 6 层 transformer 编码器。编码器的每一层结构相同,包括 8 头自注意力模块和 FFN 模块。然后解码器将少量固定数量的学习位置嵌入作为输入,这些嵌入被称为目标查询,并额外关注编码器输出。解码器同样有 6 层,每一层包含 8 头自注意力模块和 8 头共同注意力模块,以及 FFN 模块。最后,DETR 将解码器的每个输出传递给共享的前馈网络,该网络预测检测 (类和边框) 或无目标类。


微信图片_20211204203930.png



参考链接:https://blog.csdn.net/irving512/article/details/109713148https://jishuin.proginn.com/p/763bfbd2ee77


一场属于蓉城的“鲜香”盛宴,DevRun开发者沙龙邀您开启“麻辣”开发之旅行至西南,遇见成都。12月12日,DevRun开发者沙龙华为云成都专场将带你逐一解锁:AI开发与云原生DevOps的进阶之旅、华为云技术专家面对面的教学指导、技术瓶颈突破与核心效能提升的关键要义以及拥抱变革与自我进阶的最佳姿势。精彩不容错过!识别二维码,立即报名。


微信图片_20211204203934.png

© THE END


转载请联系本公众号获得授权


投稿或寻求报道:content@jiqizhixin.com

相关文章
|
30天前
|
机器学习/深度学习 自然语言处理 并行计算
探索深度学习中的Transformer模型及其在自然语言处理中的应用
【10月更文挑战第6天】探索深度学习中的Transformer模型及其在自然语言处理中的应用
81 0
|
1月前
|
机器学习/深度学习 自然语言处理 异构计算
【NLP自然语言处理】初识深度学习模型Transformer
【NLP自然语言处理】初识深度学习模型Transformer
|
6月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
|
2月前
|
人工智能 并行计算 PyTorch
AI计算机视觉笔记十八:Swin Transformer目标检测环境搭建
本文详细记录了Swin Transformer在AutoDL平台上的环境搭建与训练过程。作者从租用GPU实例开始,逐步介绍了虚拟环境的创建、PyTorch安装、mmcv及mmdetection的配置,并解决了安装过程中遇到的各种问题,如cython版本冲突等。最后,通过修改代码实现目标检测结果的保存。如需了解更多细节或获取完整代码,请联系作者。原文链接:[原文链接](请在此处插入原文链接)。
|
2月前
|
人工智能 计算机视觉 Python
AI计算机视觉笔记十九:Swin Transformer训练
本文介绍了使用自定义数据集训练和测试目标检测模型的步骤。首先,通过安装并使用标注工具labelme准备数据集;接着修改配置文件以适应自定义类别,并调整预训练模型;然后解决训练过程中遇到的依赖冲突问题并完成模型训练;最后利用测试命令验证模型效果。文中提供了具体命令及文件修改指导。
|
2月前
|
机器学习/深度学习 人工智能 算法
AI计算机视觉笔记十一:yolo5+Deepsort实现目标检测与跟踪(CPU版)
DeepSORT是一种基于深度学习的计算机视觉跟踪算法,扩展了SORT算法,通过添加外观描述符减少身份切换,提高跟踪效率。本文档提供了DeepSORT环境搭建步骤,包括创建虚拟环境、安装依赖及解决常见错误等,最终实现人员和车辆的跟踪计数功能。适合无GPU设备的学习者参考。
|
4月前
|
自然语言处理 监控 自动驾驶
大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
【7月更文挑战第26天】大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
166 11
|
4月前
|
机器学习/深度学习 人工智能 算法
计算机视觉:目标检测算法综述
【7月更文挑战第13天】目标检测作为计算机视觉领域的重要研究方向,近年来在深度学习技术的推动下取得了显著进展。然而,面对复杂多变的实际应用场景,仍需不断研究和探索更加高效、鲁棒的目标检测算法。随着技术的不断发展和应用场景的不断拓展,相信目标检测算法将在更多领域发挥重要作用。
|
4月前
|
机器学习/深度学习 自然语言处理 计算机视觉
Transformer深度学习架构与GPT自然语言处理模型
Transformer和GPT(Generative Pre-trained Transformer)是深度学习和自然语言处理(NLP)领域的两个重要概念,它们之间存在密切的关系但也有明显的不同。
82 2
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
不做数值运算、纯靠嘴炮也能机器学习?基于自然语言的全新ML范式来了
【6月更文挑战第30天】基于自然语言的VML简化了机器学习,让模型参数变为人类可读的文本,提高理解和应用性。借助大型语言模型的进展,VML能直接编码先验知识,自动选择模型类,并提供可解释的学习过程。然而,表达能力、训练优化及泛化能力的挑战仍需克服。[论文链接](https://arxiv.org/abs/2406.04344)
37 1

热门文章

最新文章

下一篇
无影云桌面