简介

论文《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\} {0,1},所以说是hard,而soft sampling methods的每个样本的权重取值范围是 [ 0 , 1 ] [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把权重设置成 ( 1 − p s ) y (1-p_s)^y (1−ps​)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数据集中的对象的相对宽度,高度和面积。可以观察到分布偏斜。

解决方法:图片金字塔和特征金字塔。常用的金字塔方法包括下图显示的几种,其中最常用的是特征金字塔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) [0,∞),通过更换回归损失函数,可以更改损失取值范围,比如GIoU损失的取值范围是 [ − 1 , 1 ] [-1,1] [−1,1]。Classification-Aware Regression Loss (CARL) 组合分类和回归任务,它假设分类和回归任务是相关的。CARL的回归损失函数是 c i ′ L 1 s m o o t h ( x ) c'_i L1_{smooth}(x) ci′​L1smooth​(x)。其中 c i ′ c'_i ci′​是一个基于分类预测值 p i p_i pi​的因子。

《Imbalance problems in object detection: A review》笔记相关推荐

  1. 《信贷的逻辑与常识》笔记

    序 银行信贷风险管理的反思 现状与趋势 银行贷款的质量变化与经济周期.宏观调控政策等存在很高的相关性 现在银行不良贷款的增加主要是前几年经济快速增长时企业过度投资.银行过度放贷所带来的结果. 从历史情 ...

  2. AI公开课:19.02.27周逵(投资人)《AI时代的投资逻辑》课堂笔记以及个人感悟

    AI公开课:19.02.27周逵(投资人)<AI时代的投资逻辑>课堂笔记以及个人感悟 目录 课堂PPT图片 精彩语录 个人感悟 课堂PPT图片 精彩语录 更新中-- 文件图片已经丢失-- ...

  3. 人工智能入门算法逻辑回归学习笔记

    逻辑回归是一个非常经典的算法,其中也包含了非常多的细节,曾看到一句话:如果面试官问你熟悉哪个机器学习模型,可以说 SVM,但千万别说 LR,因为细节真的太多了. 秉持着精益求精的工匠精神不断对笔记进行 ...

  4. 【逻辑回归学习笔记】

    算法描述 1.逻辑回归要做的事就是寻找分界面实现二分类. 2.问题假设:对一堆三角形和正方形分类. 3.数据输入:已知正方形和三角形的坐标和标签. 4.算法过程: 知识储备 1.分类和回归 ①分类的目 ...

  5. 逻辑回归函数学习笔记

    继续逻辑回归学习,今日笔记记录. 1.逻辑回归和线性回归的关系:对逻辑回归的概率比取自然对数,则得到的是一个线性函数,推导过程如下. 首先,看逻辑回归的定义 其次,计算两个极端y/(1-y),其值为( ...

  6. 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授

    逻辑回归 上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0). Sigmoid预测函数 在逻辑 ...

  7. LVM逻辑卷分区笔记

    磁盘的静态分区有其缺点:分区大小难评估,估计不准确,当分区空间不够用的时候,系统管理员可能需要先备份整个系统,清除磁盘空间,然后重新对磁盘进行分区,然后恢复磁盘数据到新分区,且需要停机一段时间进行恢复 ...

  8. 适合理工直男的钟平老师逻辑英语学习笔记

    一切的一切都只是套路!             --鲁迅 核心公式: En: (状语1) 主(定语1) 谓(状语2) (宾)(定语2) (状语1) Ch: (状语1) (定语1)主 (状语2)谓 (定 ...

  9. 【数字逻辑】学习笔记 第四章 Part2 常用组合逻辑电路与竞争、险象

    文章目录 一.常用组合逻辑电路 1. 译码器 (1) 二进制译码器 74LS138(3/8译码器) a. 一般符号和图形符号 b. 74LS138功能表 c. 两片 `74LS138` 构成 `4-1 ...

  10. 线性回归、逻辑回归学习笔记

    学习源代码 import numpy as np import matplotlib.pyplot as plt def true_fun(X): # 这是我们设定的真实函数,即ground trut ...

最新文章

  1. leetcode 10 Regular Expression Matching
  2. 【ASP.NET Web API教程】2.3 与实体框架一起使用Web API
  3. python自动爬取更新电影网站_python爬取电影网站信息
  4. EF6 MVC5译文
  5. 数组-scala数组与java的list的互转
  6. 老马的原创空间搬家通告
  7. Get Intellisense for .axml files in Visual Studio
  8. [网络安全自学篇] 八十五.《Windows黑客编程技术详解》之注入技术详解(全局钩子、远线程钩子、突破Session 0注入、APC注入)
  9. Matlab三次样条插值
  10. GNU Radio系列教程(五):初级篇之GNU Radio GRC AM发射与接收
  11. 你的网名OUT了吗?盘点那些曾经超in的网名
  12. java 中的连接超时_【java中处理http连接超时的方法】
  13. 硬盘已成为计算机性能提高瓶颈吗,固态硬盘停步 接口或已成为性能瓶颈?
  14. FileZilla Server源码分析--大漠落日5节
  15. 预祝大家平安夜圣诞节快乐
  16. 居中小圆点html,圆点怎么打
  17. 简单分享,阿里巴巴测试岗4轮面经(已拿34K+ offer)
  18. paddle video_tag paddle.fluid.io.xmap_readers
  19. 中国“互联网+”大学生创新创业大赛“的实施方案及评审规则
  20. itext设置字体间距_Word涨薪第五十四式:解决无法调整行间距的情况

热门文章

  1. 最长回文字符串(马拉车算法)
  2. 以我的亲身经历为例,告诉大家写简历和面试的技巧(面向高级开发和架构师)
  3. 力扣算法题,第N个神奇数字(Python)
  4. matlab conj函数用法,conj(conj的用法)
  5. sparrow-js开源低代码场景化工作台,自动给你生成代码
  6. win10的系统path环境变量被删除了怎么恢复
  7. linux拷贝文件大小不一样,关于拷贝或远程拷贝文件后大小不一致的问题分析
  8. 微信小程序直播系统有哪些优势?
  9. 刚提测就改需求,我是渣男吗?
  10. python总结报告_python 学习总结