《Imbalance problems in object detection: A review》笔记

简介

论文《Imbalance problems in object detection: A review》对目标检测中的不平衡问题做了综合的叙述。该论文对目标检测的不平衡问题做了系统性的分类,根据相关的输入属性,把不平衡问题划分成4大类,8个小类。

目标检测的不平衡问题分类

与类别的不平衡问题相关的输入属性是不同类别的输入的边框数量,这也是这个类别的分类依据。前景类和背景类的边框数不同导致了前景-背景类别不平衡问题。而前景类中不同类别的边框数不同导致了前景-前景类别不平衡问题。

对象/边框的尺度不平衡问题的划分依据的是输入图片和真实边框的尺度。不同对象/边框具有不同的尺度,这些尺度分布得不均匀,造成了对象/边框的尺度不平衡问题。

特征不平衡问题划分依据是骨架网络的不同抽象层对特征层的贡献。这句话用一个例子来解释,例如低级细节特征和高级语义特征对特征层的贡献度不同。R-CNN使用的RoI特征一般来自骨干网络的最后一层特征层,该层主要包含高级语义特征,几乎不含低级细节特征。低级特征和高级特征含量的不同会影响检测的效果。

回归损失的不平衡问题的划分依据是单独样本对回归损失的贡献。不同的样本会产生不同的回归损失,离群点(outlier)会产生很大的损失,占据总回归损失的很大一部分,影响回归器的训练。

IoU分布不平衡问题的划分依据是正样本的边框的IoU分布。正样本的IoU分布有很大的偏向性,比如偏向IoU=0.5,影响检测器的检测效果。

对象位置不平衡问题的划分依据是对象在图片中的位置。在实际情况下,对象不可能均匀地落在图片的各个位置。

目标不平衡问题的划分依据是不同任务对总损失的贡献。目标检测是一个多目标任务,包括分类和回归。分类损失和回归损失的不平衡会影响各自的优化。

在目标检测训练流程中,每个阶段都会出现1个或者多个不平衡问题,下图显示了每个流程出现的其中一个不平衡问题,(a)是目标检测的训练流程,(b)是出现的不平衡问题。

目标检测训练流程和不平衡问题

下面我会详细地描述不同不平衡问题和相关的解决方法。

类别不平衡

类别的不平衡可以通过下图类别统计直方图直观地表现出来。
类别统计直方图

前景-背景类别不平衡

定义 在前景-背景类不平衡问题中,代表过多的类和代表不足的类分别是背景类和前景类。这种类型的问题是不可避免的,因为如上图所示,大多数边框被标记为背景(即负)类。前景-背景不平衡问题是在训练期间发生的,它不取决于数据集中每个类的例子数,因为它们在背景上不包含任何注释。

解决方法包括hard sampling methods、soft sampling methods、sampling-free methods和generative methods。

采样的方法科学的描述是,每个样本对分类损失都有一个贡献度,或者说权重。hard sampling methods 的每个样本的权重取值范围是{0,1}\{0,1\},所以说是hard,而soft sampling methods的每个样本的权重取值范围是[0,1][0,1],所以说是soft。

hard sampling methods最直接的方法是随机采样,比如R-CNN系列方法就是随机采样,保证前景类别和背景类别的样本比例保持恒定。其他方法有Hard-example mining methods,目的是找到难样本,SSD就是这样做的。其他类似的方法有Online Hard Example Mining(OHEM)。还有其他方法限制样本的搜索范围,比如Fast R-CNN设置RoI负样本的IoU下边界是0.1,而不是0。

soft sampling methods 根据每个样本的损失或梯度调整权重。最直接的方法是把权重设置成一个常量,把背景类的样本的权重设置低一点,比如0.5。Focal loss把权重设置成(1ps)y(1-p_s)^y,减轻容易学习的样本的损失。Gradient Harmonizing Mechanism根据样本产生的梯度调整样本的权重。

sampling-free methods 不需要人工地设计采样的方式。Chen等人提出的方法加了一个对象分支,用于预测residual objectness scores,分类分支只处理对象分支预测为前景类的样本。在推理时,分类分数等于分类分支输出乘对象分支的输出。

generative methods包括对抗训练方法和GAN方法。Adversarial-Fast-RCNN 在RoI pooling时对特征进行遮盖和空间变换,使得样本更难。Task Aware Data Synthesis 用GAN方法,给定一个前景掩膜,在图片相应位置生产难样本。

前景-前景类别不平衡

定义 在前景-前景类别不平衡中,代表过多的类和代表不足的类都是前景类。根据问题的来源将其分为两类:(i)数据集级别和(ii)批处理级别。

数据集级别上的类别不平衡问题的解决方法有generative methods,和上述的一样,生成正样本补充数据集。另外一种方法是根据类别的特征对类别进行聚类,把类别组成多个大类,首先对大类进行分类,再分小类。

批处理级别的类别不平衡是在一个数据批次中类别不平衡。解决方法有Online Foreground Balanced sampling,它的具体操作是为每个边框分配一个采样概率,保证采样后的前景类别样本数量保持平衡。

尺度不平衡

尺度不平衡包括两个方面,一是对象或边框的尺度不平衡,另一方面是特征金字塔中特征不平衡。

对象/边框的尺度不平衡

定义 当某些大小的对象或输入边框在数据集中过多表示时,会发生比例不平衡。研究表明,这会影响估计RoI的尺度和整体检测性能。下图显示了MS-COCO数据集中的对象的相对宽度,高度和面积。可以观察到分布偏斜。
MS-COCO数据集中的对象的相对宽度,高度和面积

解决方法:图片金字塔和特征金字塔。常用的金字塔方法包括下图显示的几种,其中最常用的是特征金字塔FPN(c)
图片金字塔和特征金字塔

特征不平衡

定义 特征层中的低级特征和高级特征应该保持平衡。低级细节特征有助于边框的回归预测,高级语义特征有助于分类预测。下图是特征金字塔低级和高级特征的分布,P2-P5用于提取RoI特征,可以看出P2-P5含有的低级和高级特征不平衡,P5几乎不含低级特征。

特征金字塔低级和高级特征的分布

为了平衡P2-P5中低级和高级特征,许多方法研究如何组合骨干网络的各个层级的特征,已有的方法和相应的操作如下图所示
特征金字塔改进

空间不平衡

空间不平衡是边框大小形状位置和IoU的分布不平衡。

回归损失的不平衡

定义 这个不平衡问题与不同个体样本对回归损失的不均衡贡献有关。下图说明了使用L1和L2损失的问题,其中最困难的示例(即IoU低的那个黄色框)主导了L2损失,而L1损失则为所有示例分配了相对更平衡的误差。

回归损失的不平衡

解决方法是使用其他回归损失函数。被提出的边框预测回归损失函数如下图所示
边框预测回归损失函数列表

IoU分布不平衡

定义 当输入边界框的IoU分布偏斜时,会观察到IoU分布不平衡。RetinaNet的anchor的IoU主要分布在0.5。IoU偏低,影响性能指标。

解决方法有Cascade R-CNN。通过级联的方法,每个阶段提高IoU阈值,比如0.5,0.6,0.7,这样做提高了检测器的性能指标。

对象位置不平衡

定义 由于当前的深度物体检测器采用密集采样的锚点作为滑动窗口分类器,因此物体在整个图像中的分布很重要。对于大多数方法,锚点均匀分布在图像中,因此,图像中的每个部分都具有相同的重要性级别。另一方面,图像中的对象不遵循均匀分布(如下图),即,对象位置不平衡。

图像中的对象不遵循均匀分布

解决方法:Wang等提出的方法添加两个分支,锚点位置预测分支预测每个位置是否有对象的概率,设置一个阈值确定该位置是否启用锚点;锚点形状预测分支生产每个位置的锚点的形状。其他方法还有 free anchor。

目标不平衡

定义 目标失衡与训练过程中最小化的目标(损失)函数有关。通过定义,目标检测需要多任务损失才能同时解决分类和回归任务。但是,由于以下差异,不同的任务可能会导致失衡:(i)对于这些任务,梯度的范数可能会有所不同,并且一项任务可能会主导训练。(ii)来自不同任务的损失函数的范围可以不同,这会妨碍任务的一致和均衡的优化。(iii)任务的难度可以有所不同,这会影响任务学习的速度,从而阻碍了训练过程。

下图表示随着迭代的次数增多,分类损失和回归损失不断地变化。训练初期的分类损失占总损失的比重非常大。

解决方法有Task Weighting,它通过权重因子平衡各个损失项。另一个问题是每个损失项的取值范围不同,比如smooth L1的取值范围是[0,)[0,\infty),通过更换回归损失函数,可以更改损失取值范围,比如GIoU损失的取值范围是[1,1][-1,1]。Classification-Aware Regression Loss (CARL) 组合分类和回归任务,它假设分类和回归任务是相关的。CARL的回归损失函数是ciL1smooth(x)c'_i L1_{smooth}(x)。其中cic'_i是一个基于分类预测值pip_i的因子。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章