阅读笔记 PED: DETR for Pedestrian Detection

来源: arXiv:2012.06785v1
作者:清华、商汤、牛津大学和悉尼大学


image.png

摘要

主要目标:解决密集场景中目标检测漏检问题
主要贡献:

  1. 提出密集场景中使用密集的queries,然后针对于密集queries的计算负担,设计了decoder中针对于self-attention的local attention策略,称为dense queries (DQ)
  2. 针对于目标不同尺度问题,deformable DETR的queries点分布随机问题,在decoder的cross-attention中设计了 rectified attention field的临近点集选择策略;
  3. 为了缓解部分遮挡问题,提出了一种V-Match的监督方法,具体而言就是在decoder的前面若干层监督的是预测和部件之间的匹配关系,后面层监督的是预测和整体之间的关系。
  4. 为了计算dense queries与gt的KM过程的速度,提出了一种Fast-KM方法。

DETR回顾

为了后面更好的分析本文讲了啥,需要这部分内容

Decoder

本文针对的点主要是decoder部分,因为作者目标是解决密集场景检测,思路是使用密集的queries,于是将问题转化为了如何处理密集的queries,queries只出现在decoder中,所以作者主要针对于decoder部分进行改动。
将decoder的每一层形式化表达,即:


Eq1-Eq2

Eq3-Eq4

其中Eq1-Eq2表示的是self-attention所在部分, Eq3-Eq4表示的是cross-attention所在部分,对照下图Fig10很容易理解。 MSA和MCA分别表示multi-head self-attention和multi-head cross-attention, LN表示layer normalization, q表示queries. 把MSA和MCA统一形式变成Eq5-7:


Eq5-7

image.png

于是根据Eq5-7分析deformable DETR和DETR的不同点则体现在Eq
5中的关于MCA的参考点的集合 定义和权重 上。 DETR使用的是全部的相似位置,且权重由内积计算得到,而deformable则使用学习到的局部点集,权重是由数据直接线性映射得到。(文章也只说了deformable 的权重计算方式节省计算量,但具体谁的效果好不知道。)

方法

  1. 作者认为DETR包括deformable DETR学习出来的queries往往在前几个decoder层是稀疏的且在image空间是近似均匀的,如下图所示
    image.png

    这导致的结果就是密集场景的多个目标附近只有一个query。此时就要求模型具有两个能力:1.处理不同尺度的目标,2.密集场景需要映射分布较广的多个queries。

为了解决这个问题,作者提出使用更加密集的queries,即dense query (DQ)但此时会带来self attention计算复杂的问题,于是作者对decoder的self-attention进行了魔改,即根据空间位置选择K个local self-attention的参考样本:


Eq8-Eq9

其实这个操作本质上和deformable attention的思想是类似的。

  1. 除了self-attention模块,作者还发现DETR中在cross-attention模块每个query的keys往往分布无规律,如下图所示,有些点落在gt box之外或者其他gt中,有些分布集中在gt中间部分不够全面:
    image.png

    于是作者不使用deformable attention自主学习点集的方式,而是直接在box内均匀采点,感觉像是由deformable cnn转变为标准cnn的过程:
    image.png

    表示采点个数。
    作者统计DETR结果发现在decoder的后面3层预测的box对应的gt是一致的,因此将后面3层的deformable attention直接替换成了rectified attention field。
  2. 为了除了遮挡问题,作者认为decoder的层数递增,box也越精确,所以在低层使用了V-match的方式,即预测与可见部分的映射约束网络,后面的层则使用原本的方式。
  3. KM的提速问题,这里不清楚,猜测应该是空间上进行了约束。

问题:作者没有设计queries增多导致的cross-attention次数增多的问题,后面的实验也没有分析。

实验部分

  1. Rectified Attention Field的作用


    image.png

    这里baseline应该是#RFLayer为0的列, #RFLayer是指最后使用RF的层,发现最后3层decoder使用RF的效果最好。

  2. V-Match


    image.png

    L表示没有使用预测-可见部分配对的层数,所以L=6时时baseline,表示没有使用V-match,发现V-match能提升性能,且只是用前两层时效果最好

  3. Dense Queries


    image.png

    DQ的操作也是不同的层数使用进行对比,发现也不是越多越好。

  4. SOTA


    image.png

    image.png

结论

本文针对于Dense 场景对deformable DETR做了一些修改,主要是self-attention和cross-attention的集合范围上的改动。实验分析发现这类修改往往针对于不同的层更加有效,而不能应用到所有的decoder层上。本文的设计和实验稍显粗糙,但也是一个值得研究的方向吧。

你可能感兴趣的:(阅读笔记 PED: DETR for Pedestrian Detection)