QueryDet

QueryDet

Introduction

论文题目 :QueryDet

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

论文出处 :2022’CVPR oral

代码实现https://github.com/ChenhongyiYang/QueryDet-PyTorch

Idea

针对小目标检测,作者提出了QueryDet,设计了级联稀疏查询(CSQ)机制,它可以有效利用高分辨率特征,同时高可以降低所有基于特征金字塔的目标检测器的计算成本,保证快速的推理速度,从而提高对小目标的检测性能。

Detail

Question in small objection

小目标检测中出现性能衰减主要由三个因素所导致:

  1. 由于下采样操作导致引导小目标的特征消失,或被background中的噪声污染。

  2. 低分辨率特征对应的感受野无法与小目标的尺度相匹配。

  3. 小目标较小的偏差就会导致IoU上较大的扰动,导致小目标检测先天难于大目标。

针对这些问题,作者认为:

  1. low-level特征层上的计算中,有很大部分是冗余的。

  2. FPN结构中,即使低分辨率(high-level)的特征层无法精确的检测出小目标,但也能以较高的置信度来粗略判断出小目标是否存在以及对应的区域。

图1是普通的retinanet,图二retinanet+P2,计算的参数量明显增加了很多,图三QueryDet(CSQ)

做法:

引入更高分辨率特征图(P2)进行计算,因为更高分辨率的特征图能更好的保留小目标的语义信息

Head设计上:平行于分类和回归头,添加了一个查询头(query head)。query head会输出的热力图(heat map),表示位置grid(i,j)grid(i, j)含有小目标的概率。

Cascade Sparse Query (CSQ)

在训练过程中,每一层预定义阈值sl{s_l}设置为该层最小的anchor尺寸(anchor-based)/最小的回归范围(anchor-free),尺寸小于sl{s_l}的ground truth,在该层会被视为小目标(small ground truth)。

query操作:然后对query head输出的heatmap做一个binary mask:计算small ground truth中心位置与head map上每个位置之间的距离来编码,距离小于sls_l的位置设为1,否则为0. 那么在下一层中heat map 中对应映射mask为0的位置,就不会进行概率的预测了。(这样就可以少计算很多冗余的anchor的Loss,从而减少计算量)

每层损失采用不同加权系数(P2-P7在[1, 2.6]线性增加)来求得总损失,使模型同时从所有层学习。因为添加的更高分辨率特征(P2)使训练样本的分布发生了显著变化。P2上的训练样本总数甚至大于P3~P7的训练样本总和,如果不降低其权重,训练将由小目标主导。

在测试/推理过程中,因为没有ground truth作为参照了,因此在做query的binary mask操作时,直接设定了一个阈值σ=0.15{\sigma = 0.15}。当query head输出heat map,其位置grid(i,j)grid(i, j)的预测概率分数>σ{\sigma}时,mask设置为1,否则为0. 查询后的Query value feature,做稀疏卷积spconv来减少计算量。

Result

实验中设置阈值σ=0.15{\sigma}=0.15

总体上来说,设计得是比较简单,并且这种设计对于检测遥感图像也值得借鉴。