【CVPR2022】QueryDet论文精读


论文:https://arxiv.org/abs/2103.09136

源码:https://github.com/ChenhongyiYang/QueryDet-PyTorch

1 前言

最近一直在考虑如何针对遥感影像中小目标检测问题进行改进,恰巧看见了图森未来提出的小目标检测工作QueryDet,文章的主要思想是使用使用级联稀疏query加速高分辨率下的小目标检测,极大地减少了网络的运算和存储开销,下面主要讲一下我对这篇文章的几点理解和思考。

2 研究背景

我觉得作者的这篇文章写得比较好的一点在于,他们没有机械地搬运、罗列前人做的工作,而是把重点放在对任务本身的总结归纳上,任务固有的挑战与难题梳理得很清楚。

2.1 小目标检测精度低的挑战

在COCO数据集上,目前主流的检测器RetinaNet对于大目标、中等目标的检测精度可以分别达到51.2mAP和44.1mAP,但是对于小目标的检测精度仅仅止步于24.1mAP,作者总结小目标精度退化的原因主要有三点原因:

  1. CNN下采样操作会消解小目标的特征信息,也会导致特征被背景污染;
  2. 低分辨率特征图的感受野可能与小目标大小不匹配;
  3. 小目标的边界框扰动对于检测结果的影响远大于大目标,因此定位更困难;

小目标面临的检测挑战

2.2 改进动机

现有的小目标检测方法通常通过放大输入图像尺寸或减少降采样率来维持较大分辨率的特征,这种方法引入了大量的冗余计算,致使其在low-level特征上检测的计算复杂度很高,如下图所示。
不同结构运算开销对比

作者否定了这种笨蛋的方式(之前我也想用这种笨方法改进来着,幸好先看了这篇文章),并且描述了自己的两点关键发现:

  1. 高分辨率、低层特征层(Low-level feature map)中的特征计算是高度冗余的,小目标的空间分布稀疏,只在特征图中占一小部分,如下图展示的遥感影像中飞机占比很小;
  2. FPN结构中,即使低分辨率的特征层无法精确的检测出小目标,但也能以较高的置信度来粗略判断出小目标是否存在以及对应的区域。特征金字塔的采样特性类似卷积神经网络的卷积特性(平移、缩放、扭曲不变性),可以依据其下采样、上采样的特点进行特征推断;

小目标影像示例
基于以上出发点,QueryDet提出了级联稀疏查询(Cascade Sparse Query)机制。其中Query代表使用前一层(higher-level feature with lower resolution)中传递过来的query来指导本层的小目标检测,再预测出本层的query进一步传递给下一层,对下一层的小目标检测进行指导的过程;Cascade表示了这种级联的思想;Sparse表示通过使用稀疏卷积(sparse convolution)来显著减少低层特征层上检测头的计算开销。

说白了,前一层的特征图具有高层特征和低分辨率,负责对小目标的初筛;这种查询传导到具有高分辨率信息的低层后再进行精找,这种“glance and focus”的two-stage结构可以有效的进行动态推理,检测出最终结果。

2 模型结构

前面提到过,在以往基于特征金字塔的检测器的设计中,小目标倾向于从高分辨率低级特征图中检测到。 然而,由于小目标通常在空间中分布稀疏,高分辨率特征图上的密集计算范式效率非常低。 受此观察的启发,作者提出了一种从粗到细的方法来降低低级金字塔的计算成本:首先,在粗略特征图上预测小目标的粗略位置,然后集中计算精细特征图上的相应位置。这个过程可以看作是一个查询过程:粗略的位置是查询键,用于检测小目标的高分辨率特征是查询值,整个流程如下图所示。
QueryDet检测流程
原文用公式严格定义了这个过程,写的不是很容易理解,下面我将借用作者首页中的图、尽量用通俗的语言将这段检测流程讲明白:
QueryDet检测过程示意
对于上图而言,包含了两个级联的查询操作,即:Large->Medium和Medium->Small,我们以Large->Medium为例。首先,网络会在Large层次的图像中对小目标进行标记(将规模小于预设阈值s的对象定义为小目标),Large层次的网络在预测过程中会对小目标的置信度进行预测,得到包含小目标的网格信息;其次,在推理过程中,网络选择预测分数大于阈值s的位置作为query,并将这个位置映射到Medium的特征图中,具体数学定于如公式(1)所示;最后,Medium上对应的三个head只会在key位置集中对应的位置上计算head和用于下一层的queries,这个计算过程通过稀疏卷积实现。

具体数学描述

3 实验结果

文章做了比较充分地消融实验,主要包括:

  • 在COCO mini-val上比较RetinaNet & QueryDet
  • 在Visdrone上比较RetinaNet & QueryDet
  • 在COCO mini-val上进行消融实验,比较HR(hight-resolution feature),RB(loss
    re-balance,就是给不同层加权重),QH(额外的Query Head)
  • 在COCO和Visdrone 2018上使用不同的query threshold比较AP、AR、FPS的trade off
  • 在COCO mini-val上比较不使用query方法和使用三种不同query的方法:CSQ最优
  • 在COCO mini-val上比较从不同层开始query,对应的AP和FPS
  • 换用不同的backbone(MobileNet V2 & ShuffleNet V2)测试结果
  • 在COCO mini-val上使用嵌入QueryDet的FCOS,比较结果
  • 在COCO test-dev & VisDrone validation上比较不用的methods

CSQ、CQ、CCQ性能对比
结果就不罗列了,看一下可视化效果。
可视化效果

4 总结

QueryDet利用high-resolution feature来提升小目标检测性能的同时,通过CSQ机制,利用高层低分辨率特征初筛含有小目标的区域,在高分辨特征层上利用初筛获得的位置,并且使用稀疏卷积运算,极大地节约了计算消耗。其实,论文中所述的SOFT还是有待商榷的,具体性能如何,等我仔细研读源码后再与大家分享。

猜你喜欢

转载自blog.csdn.net/weixin_43427721/article/details/125116134