网站首页 > 技术文章 正文
导读
使用RFLA,实验表明,在4个数据集上都是有效的,特别是在AI-TOD数据集上,超过了当前的SOTA达到4.0AP。
摘要:检测小目标是物体检测的主要问题之一。通用的物体检测器,在遇到小目标的时候,检测效果就会急剧下降。在本文中,我们指出,无论是有先验框的anchor based物体检测器,还是使用先验点的anchor free的物体检测器,对于小目标都不是最优的。我们的关键发现在于,当前的anchor based和anchor free的物体检测器的label分配策略会产生很多小尺寸的ground truth离群点样本,这导致检测器不能很好的聚焦于小目标上。因此,我们提出了基于高斯感受野的label分配策略(RFLA)。具体来说,RFLA首先利用了特征感受野加上高斯分布的先验信息。然后,不是用IoU或者中心采样的策略来分配标签,我们使用一种新的感受野距离(RFD)来直接度量高斯感受野和ground truth的相似度。考虑到基于IoU阈值和中心采样的策略是偏向于大目标的,我们进一步设计了一种层次标签分配模块,来为小目标达到一种平衡的学习。实验表明,我们的方法在4个数据集上都是有效的,特别是在AI-TOD数据集上,超过了当前的SOTA达到4.0AP。
代码:https://github.com/Chasel-Tsui/mmdet-rfla
1.介绍
小目标,一般是指小于16x16像素的目标。由于小目标缺少可区分的特征,通用的物体检测器往往效果不好。在本文中,我们讨论了当前的先验框和先验点的方法,以及对应的度量策略对于小目标都不是最优的,会对标签分配有不好的效果。具体来说,我们以单个先验框和先验点为例子,从分布的角度进行了重新的思考。
其中是先验信息的概率分布函数,(x,y)是在图像中的位置,v是对应位置的权重,是阶跃函数,当输入大于0的时候等于1,其他情况下为0。是先验信息的区域,对于anchor-based检测器,,,对于anchor-free的检测器,,。不同的先验的概要图见图1,现有的先验信息及其对应的度量策略对于小目标有下面的几个问题。
首先,单个先验框和先验点都只有有限的域(的地方),而现有的标签分配度量是高度依赖于重叠的区域的。也就是说,当某个gt和特定的先验没有重叠的时候,这种位置关系没办法通过IoU和中心来解决。而对于小目标,这是很常见的情况,因此会导致正样本的缺失。因此,启发式方法常常用来保证小目标有更多的正样本。但是,这种分配方式往往不能抵消IoU不重叠,或者没有中心点带来的问题。因此,网络往往关注小目标较少。第二,当前的先验区域基本上对每个位置均匀分布的,然而,先验信息对于辅助标签分配的过程是非常重要的,在这个过程中,一个隐含的规则是将带有合适感受野的区域的特征点分配给gt。之前的工作已经从理论上分析过,当把特征点的感受野映射回到输入图像上,感受野的作用域实际上是一个高斯分布。先验的均匀分布和感受野的高斯分布之间的gap会导致gt和感受野特征点分配之间的不匹配。
为了缓解这个问题,我们介绍了新的基于高斯感受野的先验,并设计了基于高斯感受野的标签分配策略(RFLA)。本文的贡献如下:
(1)我们从实验上回顾了当前的anchor-based和anchor-free的物体检测器存在的在小目标的标签分配上的尺度样本不均衡的问题。
(2)为了缓解这个问题,我们提出了一个简单有效的方法,基于高斯感受野的标签分配(RFLA)策略,可以方便的替换标准的基于框和基于点的标签分配策略,提高小目标的检测能力。
(3)在4个数据集上的试验表明我们的方法的有效性,可以大大提高小目标的检测能力,而且在推理阶段无额外开销。
2. 小目标检测
现有的小目标检测方法大致可以分为4类:数据增强,多尺度学习,自定义训练策略和特征增强策略。
数据增加 这是一个简单有效的方法,就是收集更多的小目标的数据。另一种是使用简单的数据增强的方法,如旋转,翻转,上采样,复制粘贴等等。
多尺度学习 多尺度学习的基本方法是使用不同分辨率的图像金字塔进行学习。为了降低计算量,有些工作提出构建特征级别的金字体。后来,更多的方法放在如何提升FPN上,如PANet,BiFPN,RecursiveFPN等,还有TridentNet构建了多个分支的检测头使用了不同的感受野来生成特定尺度的特征图。多尺度学习一般都可以提升小目标检测的效果,但是会增加计算量。
自定义训练策略 物体检测器往往不能在小目标和大目标上同时达到很好的效果,受到这个现象的启发,SNIP和SNIPER设计了一种策略,可以选择特定尺度范围的目标进行训练。SAN将不同空间的特征映射到不同尺度的之空间中,是的检测器对尺度变化更加鲁棒。
特征增强策略 有些工作通过超分辨率或者GAN的方法来增强小目标的特征表示。PGAN首次尝试将GAN引入小目标检测中,MT-GAN训练了一个图像级别的超分辨率模型来增强小目标的RoI区域的特征。
目前大部分的方法都需要引入额外的标注或者计算量。相比之下,我们的方法从标签分配的角度切入,不增强额外的开销。
3. 物体检测中的标签分配
anchor-based和anchor-free物体检测器之间的本质区别在于如何定义正负样本。正负样本的选择会很大程度上影响检测器的性能。最近,有许多工作提出了更好的样本分配策略,FreeAnchor基于检测定制化的相似度来决定正样本的anchor,PAA利用GMM来建模anchors的分布,并基于GMM的中心来划分正负样本。OTA将标签分配过程当成最优传输过程,并寻求解决最优化分配策略。ATSS通过统计特征动态调整正负样本。AutoAssign和IQDet基于预测的IoU和置信度重新加权高质量区域的样本。
不同于上面的这些通用的目标检测策略,这篇文章聚焦于针对小目标检测来设计先验信息以及对应的标签分配策略。
4. 方法
4.1 感受野建模
物体检测的一个基本原则是分而治之,也就是FPN的不同层去检测不同尺度的物体。具体来说,anchor-based目标检测器将不同尺度的先验框分配到不同的FPN的层上,检测器在FPN的不同层上检测不同尺度的目标。对于anchor free的检测器,将不同尺度范围内的目标分配到FPN的不同层上。尽管标签分配策略各有不同,基本的原则就是将合适的感受野的特征点分配到对应的目标尺寸上。因此,感受野可以直接作为标签分配的一个很好的先验信息,不需要启发式的设计anchor框的设置和尺度的组合。
本文中,我们提出了在有效感受野ERF和gt区域上直接度量匹配度来进行标签分配。之前的工作已经指出有效感受野理论上是高斯分布的。本文中,我们沿用了这个模式来将每个特征点建模为高斯分布,我们首先推导出第n层的理论上的感受野TRF:
其中,表示第n个卷积层的每个点的理论感受野,和表示第n层的kernel size和stride。
ERF和TRF具有相同的中心点,但是ERF只是TRF的一部分。因此,我们使用特征点的位置作为标准高斯分布的均值向量。由于很难得到精确的ERF,我们将ERF的半径近似为TRF的半径的一半。的平方作为高斯分布的协方差,综合起来,我们将ERF建模成的高斯分布为:
4.2 感受野距离
得到高斯分布的有效感受野ERF,下面就是度量特征点的ERF和某个gt之间的匹配度。前面讨论过,均匀分布不能很好的适配小目标,需要将gt建模为另外的分布。
我们将gt框建模为标准的高斯分布,其中,中心点为均值向量,长和宽的一半的平方作为协方差矩阵:
本文中,我们研究了3种类型的高斯分布之间的距离度量来作为感受野距离的候选。包括Wasserstein距离,K-L距离和J-S散度。高斯分布的J-S散度没有一个闭合表达式,用的时候需要巨大的计算量,因此J-S散度弃用。
Wasserstein距离 Wasserstein距离来自最优传输理论,给定高斯ERF 和高斯gt ,两者的2阶Wasserstein距离可以简单表示为:
Wasserstein距离的主要优点是可以度量2个不相交的分布的距离。因为在小目标的时候,gt框和先验框以及先验点不相交是常见的情况,这种情况下会无法分配候选gt。因此,Wasserstein距离的这个特点很适合小目标的检测。但是,Wasserstein距离不是尺度不变的,因此,当目标有较大的尺度变化的时候,可能不是最优的选择。
Kullback-Leibler散度 KL散度是经典的度量两个分布的相似性的统计方法。两个高斯分布的KLD是有解析解的:
上式可以简化为:
KLD是具有尺度不变性的,这对目标检测很重要。但是主要的缺点是当两个分布重叠很小的时候,不能连续反应出距离的变化。因此,本文选取EFR和gt之间的KLD作为另外一个RFDC。
总的来说,我们研究了3种经典的分布相似性的度量方法,选取了Wasserstein距离和KL散度作为RFDC。然后,我们对RFDC做一个非线性变换,得到RFD,并归一化到(0,1)范围内,如下:
4.3 层次化标签分配
有些anchor-based目标检测器设置了一个IoU的阈值来决定正负样本,anchor-free的检测器一般通过空间位置来确定正负样本。而小目标往往在这两种策略上的效果都不好,我们提出了一种使用得分排序的层次化的方法来分配标签。
为了确保特征点和gt之间的位置关系是可以处理的,我们这个层次标签分配策略(HLA)是基于RFD构建的。在分配之前,先计算一个RFD的得分矩阵。第一步,对于一个gt,我们对所有的特征点按照RFD进行排序,然后,对于topk的特征点分配为正样本。最后,我们得到分配的结果r1和对应的mask m。第二步,为了提升整体的召回率和缓解离群点,我们通过因子β轻微衰减了有效的范围,然后重复排序策略,为每个gt补充一个正样本,得到分配的结果r2。我们得到的最终的结果为r:
其中,mask的操作是为了避免引入太多的低质量的样本。注意,遮挡的样本会分配到更小的gt中,我们将RFD和HLA策略结合起来得到完整的RFLA策略。
4.4 应用到检测器中
提出的RFLA策略可以方便的应用到anchor-based和anchor-free的框架中,不失一般性,我们以Faster R-CNN和FCOS为例。具体来说,对于Faster R-CNN,RFLA可以用来代替标准的anchor分配过程。对于FCOS,我们去除掉特征点需要在gt框之内的限制,然后可以很方便的代替基于点的分配策略。注意,我们将centerness损失修改为下面的形式,避免梯度爆炸:
和式(1)类似,c设置为0.01避免中心点在gt框以外的时候梯度消失的问题。
5. 实验
5.1 数据集
我们在4个数据集上进行了实验,主要的实验是在AI-TOD数据集上做的,这个数据集的平均目标尺寸为12.8像素,包括28036张图像。我们还在TinyPerson,VisDrone2019和DOTAv2.0数据集上做了实验。这些数据集都包含大量的小目标(小于16x16像素)。
5.2 实验设置
所有的实验都是在一块NVIDIA RTX 3090 GPU上做的,核心代码基于MMDetection构建,用ImageNet的pretrain模型作为主干。优化器为SGD,训练12个epochs,0.9的momenta,weight decay 0.0001,batch size为2。初始的学习率为0.005,在第8和第11个epoch的时候学习率下降。RPN的proposals数量为3000。
5.3 消融学习
RFD的有效性 我们分别使用了WD和KLD来作为距离的度量,我们还测试了GIoU的效果。所有的实验都是基于Faster R-CNN w/HLA因为HLA和RFD是独立的。结果见表1,我们发现,GIoU对于RFD的效果不好,WD和KLD的效果相当。之前说过,由于KLD具有尺度不变性,因此对于非常小的目标会更好,后面的实验中,我们使用KLD作为默认的RFD。
各个部分的有效性 本文的核心设计是独立的,可以分为2个部分:层次化标签分配(HLA)策略和基于HLA构建的感受野距离(RFD)。注意,RFD的验证需要在第一个步骤上使用HLA,我们没有在RFD上用阈值来分配标签,因为原始的阈值是基于IoU来设计的,和RFD不是相同的维度。我们将RFD和HLA逐步应用到Faster RCNN中,结果见表2,AP逐步的提升。当切换到基于RFD的分配策略的时候,有9.6AP的提升。这个解释了框的先验的局限性,anchor和gt之间的IoU是非常小的,很多的gt无法匹配到anchor。使用高斯先验和RFD的时候,可以度量出所有的特征点和特定gt之间的RFD得分,即便是这个gt和所有的先验框都没有重叠,也可以在合理的感受野范围内补偿一些正样本出来,最终为小目标的训练得到足够多的正样本。
不同的衰减因子β 在HLA中,我们设计了一个因子β,用来缓解离群效应。在表3中,我们保持所有的其他的参数固定,实验表明,0.9是最好的选择。将β设置的过低会导致太多的低质量的样本。
不同的k的影响 在HLA中,超参数k用来调整每个实例的正样本的数量。我们保持其他的所有参数固定,将k设置从1到4变化,performance分别为20.7,21.1,21.1和20.9。当k设置为2或者3时,达到最佳效果。因此默认设置推荐用3。另外,测试的不同的k引起的AP的变化很小,我们对比了微调anchor size的AP的变化和不同的k的AP的变化,见图3。很容易发现,在TOD任务上,检测器的性能对于先验框的尺寸是很敏感的。
高斯anchor和感受野anchor 我们直接将anchor建模为高斯分布,计算和gt之间的RFD得分,并且使用HLA进行标签分配。结果见表4。结果显示,高斯先验以及组合使用HLA有很大的好处。高斯先验具有更大的作用域,能更好的进行样本补偿。另外,我们将anchor的尺寸改为ERF的尺寸,然后用MaxIoU的策略进行标签分配。这个基于baseline的提升进一步表明了先验框在TOD数据集上的敏感性。同时也揭示了当前的anchor在小目标上和感受野是不匹配的。
5.4 主要结果
我们也和其他的方法在AI-TOD数据集上进行了对比,见表5。DetectoRS w/ RFLA达到了24.8AP,比其他的SOTA高了4AP。值得注意的是,在多阶段的anchor-based的检测器上,提升尤为明显。我们认为这是由于多阶段检测器的重复观察和思考的机制。在第一个步上,使用了RFLA的RPN可大大提高小目标的召回率,在第二个步上,这些建议区域进一步的进行精确的定位和分类。另外,对于一阶段和anchor-free的检测器,在上的提升也很明显。
5.5 分析
我们进行了一组分析实验,以深入研究不同的先验设计以及小目标的标签分配方法。在第一步中,我们分别 在Faster R-CNN, FCOS和RFLA中使用平铺的先验。第二步,我们在图像的不同位置随机生成不同的gt并模拟 统计标签分配的过程。具体来说,gt的尺寸是随机的从0到64。之后,我们将尺度范围分成16个区间,如图4所示,并计算分配的平均正样本数。每个gt在不同的尺度范围。图4中的观察结果表明现有检测器存在严重的比例样品不平衡问题。相比之下,在RFLA上,在不同尺度范围内分配给gt的样本具有很好的一致性,为小目标检测实现了平衡优化。
5.6 在更多的数据集上的实验
我们还在TinyPerson,VisDrone2019, DOTA-v2.0数据集上做了实验,结果见表6,表7,表8。
—END—
论文链接:https://arxiv.org/pdf/2208.08738.pdf
猜你喜欢
- 2024-10-30 助力一切YOLO涨点!Shape-IoU:更准确的边界框形状和尺度!
- 2024-10-30 WACV 2021 论文大盘点-目标检测篇
- 2024-10-30 智能学子斩获ICCV 2021国际竞赛五项冠亚季军
- 2024-10-30 ECCV2020智能学子大显身手 勇夺多项竞赛大奖
- 2024-10-30 武汉大学提出NWD:小目标检测新范式,抛弃IoU-Based暴力涨点
- 2024-10-30 微小目标检测中基于相似距离的标签分配(arxiv2024)
- 2024-10-30 EdgeYOLO:边缘设备上实时运行的目标检测器及Pytorch实现
- 2024-10-30 无人机对地目标跟踪的快速初始化和自适应优化
- 2024-10-30 云从科技与中科院联合夺得 ICCV 2019 无人机目标跟踪冠军
- 2024-10-30 小目标物体检测方法:基于距离相似度的标签分配策略
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)