摘要
目标检测是计算机视觉的重要任务。DETR模型是面向这一任务的新型端到端方法。它集合了set prediction思想,以创新的object query结构,打破了之前传统的基于人工锚点进行识别再进行重复结果合并的流程。我们将探讨其中的实现原理以及后续的改进工作,这也将帮助我们思考与DETR类似的使用Transformer结构在计算机视觉领域的应用及其特点。
Set Prediction方法
物体检测的任务是找到图像中所有感兴趣的物体并给出它们的所属类标签(category label)和边界框(bounding box)。之前SOTA的物体检测模型很多都是基于先检测再合并的两步(two-stage)流程,也就是先预测出很多包含物体的候选框,然后再做一次后处理,将很多本应该属于同一物体的候选框集合成一个。这样做的缺点是检测模型本身由于要连接到后处理模块,无法做端到端的训练和优化。同时候选框的生成通常基于预设锚点框(anchor box)的方法,它们是在图像的初始滑窗中所预设的一系列形状和大小各异的矩形框,用来匹配和识别不同形状特征的物体。
DEtection TRansformer(DETR)[1]则打破这一旧范式,它可以直接给出预测结果的集合(set prediction),本质上去掉了之前方法中人为给出预测框的步骤,这需要网络对图像的语义有更直接的理解能力,进而也避免了作为第二步的后处理过程,实现了对于物体检测的集合预测任务的完全端到端的输出。
模型结构
模型结构如下图1所示。它使用了一个接在CNN backbone后的Transformer encoder-decoder结构,其中的Transformer encoder接收展开后的图像深度特征图并做self-attention机制的处理,decoder部分则接收来自encoder的输出结果和一组可学习的object queries,最终输出预测结果的集合。Decoder中的cross-attention层非常重要,它让该可学习object queries中的每个元素可以捕获原图像中不同位置与大小特征等的物体信息。结合对于输出结果与ground truth优秀的双边匹配规则,DETR得以在其包含的attention机制中自动去掉重复的检测。
图1. DETR模型总体结构[1]
总体过程为输入原始图像,输出组(可自由限定)识别物体的信息,每组信息包含物体所属类别和所在位置的边界框,组信息中不一定每组都包含了识别出的物体,如果识别出的物体总数小于,则组信息中有些是空的,物体名称和位置范围都用空集表示。
有关模型结构更具体的内容,相关解读很多,可参考相关资料及原文。
模型探讨
模型中很有意思的一点是Decoder部分中作为输入的object queries实则是decoder部分的positional encoding。该positional encoding 非常重要,因为作为要最后变成输出的物体识别的结果信息组,它所学习到的信息需要能够体现各自在图像中的对应不同位置、大小的物体检测能力。下图2展示的是模型中object queries里的其中20个元素所预测的最终结果的统计,其中每个小点都是该元素在某个数据(图像)上给出的识别物体的所在位置的中心点,颜色则代表识别的该物体的边界框特性,绿色代表较小边界框,红色代表较大的垂直型边界框,蓝色则代表较大的水平型边界框。可以看到作为decoder位置编码输入的object queries中的每个元素都基本代表了一种或多种位置及物体大小的识别模式。
图2. object queries各元素的预测特征[1]
前面提到DETR之所以能通过训练实现直接端到端的物体检测任务,除了模型本身结构外也源于它的输出结果与ground truth优秀的双边匹配规则。训练时的输入为初始图片和对应的标记好的图中物体分类和对应位置边界框。训练时将不带任何标记信息的初始图片输入给DETR模型后,模型生成个指定数量的分类信息与位置边界框,下面的问题是怎样计算模型输出结果与标记好的待识别物体对应信息间的损失函数,因为这两组信息中各自的物体识别的结果是没有一一对应好的。
首先这两组信息的总数很可能是不匹配的,是我们预先规定的,为了有一定模型预测的冗余能力,往往图片中所含的可识别物体数量要更少。所以首先要将输入的标记好的信息组数量用空集填充至同样为个。接下来我们将输入信息组与模型输出信息组找到一种两两匹配的方法,使得匹配后的损失函数最小,即
其中  是输入信息组,  是模型输出信息组,  是求损失函数时需要先找到的最佳匹配规则,通过调换输入信息组  的顺序实现最佳匹配。
对于  组输出信息,和的匹配可能性总数是  ,这意味着如果用遍历法找到最佳匹配是一个时间复杂度很高的问题。因此模型对于这个问题采用了匈牙利算法(Hungarian algorithm),可以将匹配的时间复杂度降低到  ,具体可参考文献[2]。
实验中DETR取得了优秀的成绩,在和SOTA的Fast R-CNN类模型的比较中,DETR取得了很具有竞争力结果,在参数量相当的情况下,DETR对较大物体的检测能力比Fast R-CNN更优,对小物体检测的能力则偏弱。
基于DETR的改进与扩展
DETR无疑是一种很有启发意义的新型检测方法。作为很有潜力的模型,它一方面提供了面向相关研究的扩展空间,同时又留下了进一步提升性能的可能性。性能提升的研究主要集中在下述方向。
1. 考虑attention中的稀疏性研究
在DETR中,decoder embeddings和来自encoder输出的global features间的作用是稠密的,这给模型带来了很大的运算复杂度,相关的改进也层出不穷。
1) Deformable DETR[3]
该模型包含一个可学习的deformable attention和一个多层级的feature maps,分别用于加速收敛和提高预测准确性。所谓deformable attention是在原有的attention机制中对于输入加入了可学习的扰动偏移项,使得该attention只需要关注feature maps中的部分关键内容,替代原有的需要对feature maps整体都进行关注的普通attention机制。更具体一点,它对于attention中的query项只关注它邻域内的部分key tokens,而不是计算它对于全局所有key tokens的self-attention weights。同时多层级feature maps的引入使得图像特征表示更加丰富,进一步提升了deformable attention的效果,其模型结构如下图3所示。
图3. Deformable DETR模型结构[3]
Deformable DETR显著提高了DETR的收敛速度,同时在检测效果上也有了进一步提升,在多个指标上比原先的DETR更优。
2) Adaptive Clustering Transformer(ACT)[4]
观察到有相似语义特征和相近空间位置的元素在DETR的encoder中有相似的query-key attention map,因此可以通过减小encoder中attention map的queries数量来提高计算速度。通过一种哈希算法,ACT可以动态地将encoder queries进行聚类组合,再将组合后较少的原型类queries用于近似产生原先的query-key attention map。ACT在降低encoder中self-attention机制运算量的前提下对检测准确性影响很小,同时无需重新训练,可以直接用于预训练好的模型优化。
2. 加入空间先验
DETR使用具有随机初始的object queries隐式地学习了图像中的空间信息,这与之前包含了具有初始空间先验的目标检测模型有着很大不同。于是考虑可以在DETR中加入类似的空间先验信息帮助提高模型收敛速度和预测准确性。
1)Spatially Modulated Cross-Attention(SMCA)[5]
首先SMCA可以动态产生关于不同object query所对应的不同bounding box信息(中心点位置和尺寸),将这样的对应关系weight map添加在cross-attention map上后就可以直接指导object queries对于实际空间信息的快速学习。不仅如此,在encoder中部分,SMCA还加入了多层级特征提取。Encoder中的intra-scale self-attention用于学习层内的特征,另外还有multi-scale self-attention用于学习全位置空间中的不同尺度特征,并加以汇总。配合之前每个object query对应产生的具备尺度选择能力的attention weight,每个不同的object query就可以自动检测不同位置上不同尺度的目标。
2)Conditional DETR[6]
DETR中的decoder部分含有cross-attention机制,它产生了作为decoder输入的object queries和来自encoder的positional encoding之间的spatial attention map。作者发现该spatial attention map在训练较少的模型中对于位置较为极端的关联呈现出更大的相异性,于是设计了一个称为conditional spatial embedding的空间先验,用于表达位置较为极端的物体,从而缩窄了定位这些区域的空间范围。
3. Encoder-only结构
为了直接避免由Transformer结构中的cross-attention机制带来的收敛速度慢的问题,人们也开始关注只含Transformer中encoder部分的物体检测模型。
1)You Only Look at One Sequence(YOLOS)[7]
YOLOS的作者认为ViT的最大特点是在计算机视觉领域完全保留了Transformer的纯粹sequence型输入以及这意味着的基于全局的attention机制,而没有加入任何的类似CNN体现的邻域空间依赖关系甚至金字塔式的多级邻域特征关系,尽管加入后两者之后在具体视觉任务上往往能进一步提高性能。类似ViT那样,YOLOS的具体结构如下图4所示。
图4. YOLOS模型结构[7]
可见其中物体检测结果的输出来自于和图片patches同时输入的Det-Toks,它们都仅仅通过Transformer encoder层就完成了模型输出。实验中YOLOS取得了很不错的成绩,尽管和更复杂的DETR比较,YOLOS的绝对表现要差一些,但作者也强调,YOLOS并不是为了在物体检测上的最佳表现而设计,更多是想探究ViT模型在迁移到目标识别任务中的表现。而在经过对于ViT模型尽量少的调整后,YOLOS取得的结果已经很好地揭示了Transformer的通用性。
2) Transformer-based Set Prediction (TSP)[8]
作者更直接地将作为patches输入的图片经过Transformer encoder后的输出结果用于物体检测。更具体地,将一张HxW的图片转成(H/32)x(W/32)后的feature map输入Transformer encoder,其中每个feature的输出都会进入一个detection head以产生一个最终的预测结果。为了解决该encoder-only结构对于大小各异的物体检测能力较弱的问题,作者引入了FCOS(Fully Convolutional One-Stage Object Detector)用于输入前的预处理,因而具体模型也叫做TSP-FCOS,另外还有引入R-CNN作前处理的TSP-RCNN。实验中,在大部分指标上包含了随机裁剪(random crop augmentation)机制的TSP-RCNN+取得了SOTA的结果。
4. 其他
还有一些其他的研究,比如再次引入two-stage流程的Two-Stage Deformable DETR[3]和Efficient DETR[9],或者引入自监督学习的Unsupervised Pre-training DETR(UP-DETR)[10]。另外将Transformer作为backbone用于图像分类已经取得了很多成功,这些Transformer-based backbone很容易被引入到其他如R-CNN等模型中完成更多密集型的预测任务。而在这些任务中,Transformer结构本身也获得了改进,如多层级的PVT[11]可以从高到低处理不同分辨率下的图像特征,而如SWIN-Transformer[12]通过滑窗的attention机制可以在避免计算量平方型增长的情况下同样实现短程和长程依赖关系的描述。
除了方法优化,DETR还被应用于目标分割任务中。首先DETR的检测结果可作为分割模型的参考,其次通过新增分割query,改进的DETR模型也可以实现端到端的目标检测分割任务。DETR用于图像分割是目前的热点研究之一,限于篇幅不再展开。
小结
这一由DETR开创的端到端的set prediction型的物体检测方法打破了之前一直被采用的使用锚点框并分成两步处理的物体检测思路,是创新利用Transformer结构的很好的例子,也取得了优秀的效果,这也再次证明了Transformer结构在视觉领域的强大可拓展性。当然由于Transformer本身的特征,DETR也有收敛较慢和对小目标检测能力较弱等问题。后续人们对这些问题有了很多富有理论依据的改进,也让我们对Transformer结构,特别是将其在视觉任务上运用时显现的特征有了更多的认识。
参考文献
[1] Austin Derrow-Pinion, Jennifer She, David Wong, et al. ETA Predictionwith Graph Neural Networks in Google Maps. 2021
[1] Nicolas Carion, et al., ‘End-to-EndObject Detection with Transformers’, arXiv: 2005.12872
[2] Kuhn, H.W.: The Hungarian method for the assignment problem (1955)
[3] X. Zhu, et al., “Deformable DETR: Deformable transformers for end-to-end object detection,” in Proc. ICLR, 2021.
[4] M. Zheng, et al., “End-to-end object detection with adaptive clustering transformer,” arXiv: 2011.09315, 2020.
[5] P. Gao, at al., “Fast convergence of DETRwith spatially modulated co-attention,” in Proc. ICCV, 2021, pp. 3621–3630.
[6] D. Meng, et al., “Conditional DETR for fast training convergence,” in Proc. ICCV, 2021, pp. 3651–3660.
[7] Y. Fang, et al., “You only look at one sequence: Rethinking transformer in vision through object detection,” arXiv: 2106.00666, 2021.
[8] Z. Sun, et al., “Rethinkingtransformer-based set prediction for object detection,” in Proc. ICCV, 2021, pp. 3611–3620.
[9] Z. Yao, et al., “Efficient DETR: Improving end-to end object detector with dense prior,” arXiv: 2104.01318,2021.
[10] Z. Dai, et al., “Up-DETR: Unsupervisedpre-training for object detection with transformers,” in Proc. CVPR, 2021, pp.1601–1610.
[11] W. Wang, et al., “Pyramid vision transformer: A versatile backbone for dense prediction without convolutions,” in Proc. ICCV, 2021, pp. 568–578.
[12] Z. Liu, et al., “Swin transformer: Hierarchical vision transformer using shifted windows,” in Proc. ICCV, 2021,pp. 10 012–10 022.
关于壁仞科技研究院
壁仞科技研究院作为壁仞科技的前沿研究部门,旨在研究新型智能计算系统的关键技术,重点关注新型架构,先进编译技术和设计方法学,并将逐渐拓展研究方向,探索未来智能系统的各种可能。壁仞科技研究院秉持开放的原则,将积极投入各类产学研合作并参与开源社区的建设,为相关领域的技术进步做出自己的贡献。
扫码关注我们
继续阅读
阅读原文