点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
作者:Herschel | 已授权转载(源:知乎)编辑:CVer
https://zhuanlan.zhihu.com/p/495892085
点击进入—> CV 微信技术交流群
QueryDet: Cascaded Sparse Query for Accelerating High-Resolution for Small Object Detection
论文:https://arxiv.org/abs/2103.09136
代码(已开源):
https://github.com/ChenhongyiYang/QueryDet-PyTorch
摘要:
虽然在过去的几年中,基于深度学习的通用目标检测已经取得了巨大的成功,但在检测小目标的性能和效率方面却远远不能令人满意。推广小目标检测最常见和有效的方法是使用高分辨率图像或特征图。然而,这两种方法都会导致昂贵的计算,因为计算成本会随着图像和特征大小的增加而增加。我们提出了QueryDet,它使用一种新颖的查询机制来加快基于特征金字塔的目标检测器的推断速度。该pipeline由两个步骤组成:首先在低分辨率特征上预测小目标的粗定位,然后利用这些粗位置稀疏引导的高分辨率特征计算出准确的检测结果。这样既可以获得高分辨率feature map的benefit,又可以避免对背景区域使用较少的计算量。在popular COCO数据集上,该方法将mAP提高了1.0,mAP-small提高了2.0,将高分辨率的推理速度平均提高到3.0×。在包含更多小对象的VisDrone数据集上,我们获取了新的SOTA,同时获得了平均2.3×高分辨率的加速。
1.研究背景
当使用现有的通用目标检测器在常规目标检测数据集上进行检测时,中等尺度和大尺度目标可以获得的结果远高于小目标。本文认为,小目标检测中出现性能衰减主要由三方面因素所导致:
1. 由于下采样操作导致引导小目标的特征消失,或被background中的噪声污染。
2. 低分辨率特征对应的感受野无法与小目标的尺度相匹配。
3. 小目标较小的偏差就会导致IoU上较大的扰动,导致小目标检测先天难于大目标。
现有的小目标检测方法通常通过放大输入图像尺寸或减少降采样率来维持较大分辨率的特征,进而提升小目标检测的性能。引入FPN可以在一定程度上缓解高分辨率引入大量计算的问题,但其在low-level特征上检测的计算复杂度仍很高。
QueryDet的目标是在引入更浅层高分辨率的特征助力小目标检测的同时,保证计算的轻量化。
本文提出的QueryDet的出发点来自于观察到的两个事实:
1. low-level特征层上的计算中,有很大部分是冗余的。
2. FPN结构中,即使低分辨率(high-level)的特征层无法精确的检测出小目标,但也能以较高的置信度来粗略判断出小目标是否存在以及对应的区域。
基于以上出发点,QueryDet提出了Cascade Sparse Query(CSQ)机制,其中Query代表使用前一层(higher-level feature with lower resolution)中传递过来的query来指导本层的小目标检测,再预测出本层的query进一步传递给下一层,对下一层的小目标检测进行指导,Cascade传递了这种级联的思想。Sparse表示通过使用sparse convolution(稀疏卷积)来显著减少low-level特征层上检测头的计算开销。
总体上,higher-level feature with lower resolution负责对小目标的初筛,higher-resolution feature再进行精找,这种“glance and focus”的two-stage结构可以有效的进行动态推理,检测出最终结果。
2. 模型方法
2.1 计算量开销比较
QueryDet在实现中使用RetinaNet作为baseline。文中首先分析了RetinaNet中使用的FPN中不同level P对应的FLOPs开销:
可以看出原版RetinaNet中,最低层P3就占据了总计算量的很大部分;引入更高分辨率的P2助力小目标检测后,P2的计算开销占到了总开销的一半以上;加入最终模型QueryDet进行比较,可以看出QueryDet在减小 高分辨率上的计算开销同时提高了推理速度。
2.2 使用Sparse Query加速推理
本节对文中的核心模块Query进行介绍。Query总体是一个由粗到细的过程:在粗(low-resolution)的特征图上对小目标进行粗略定位,再到细(high-resolution)特征图的对应位置上进行计算(使用sparse convolution)。在这个query过程中,粗糙定位可以看作query keys,而对应用于小目标检测的high-resolution特征图可被视为query values。
QueryDet在detection head中额外添加了用于产生小目标coarse location的,平行于classification和localization head,的query head。模型的总体结构如下图所示:
接下来, Pl-1 上对应的三个head只会在key位置集中对应的位置上计算head和用于下一层的queries。这个计算过程通过sparse convolution实现,极大的节剩了计算量。sparse convolution的提出主要是为了解决3D场景下进行运算的特征中存在很多零的情况,对稀疏卷积感兴趣的话,可以通过这篇博文简单学习一下,Rulebook构建中的Getoffset指的是kernel中每个weight对应其kernel中心位置的偏移坐标量。
Cascade Sparse Query结构保证每层生成的query并不是来自单一的P,可以通过stride的不断降低扩张对应key position的尺度。
2.3 训练过程
query head对应GT的计算过程为:首先计算 Pl 上每个位置与对应的所有小目标中心的距离,当该位置上与小目标中心的距离小于指定阈值时,其在 Vl 上的GT标记为1。query head被当作二分类问题进行处理,使用focal loss作为损失函数。
模型的总体损失表示为:
其中加入了权重来调节每个level的损失,因为在 P2 上的训练样本数量很可能要比前5层上对应样本的总数量还要多,如果不减小权重,整个训练将由small objects主导。
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:
4. 总结
QueryDet利用high-resolution feature来提升小目标检测性能的同时,通过CSQ机制,利用高层低分辨率特征初筛含有小目标的区域,在高分辨特征层上利用初筛获得的位置,使用sparse convolution,极大地节约了计算消耗。
ICCV和CVPR 2021论文和代码下载
后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集
后台回复:ICCV2021,即可下载ICCV 2021论文和代码开源的论文合集
后台回复:Transformer综述,即可下载最新的3篇Transformer综述PDF
目标检测和Transformer交流群成立
扫描下方二维码,或者添加微信:CVer6666,即可添加CVer小助手微信,便可申请加入CVer-目标检测或者Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测或者Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲扫码或加微信: CVer6666,进交流群
CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!
▲扫码进群
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看