【深度学习】OHEM:Training Region-based Object Detectors with Online Hard Example Mining

Posted by ShawnD on November 22, 2022

Abstract

在卷积网络的浪潮上, 目标检测领域取得了显著的提高,但是他们的训练过程包含很多难以调整的启发式设计和超参数。

这篇文章提出了一种简单但出人意料地有效的在线困难样本挖掘(OHEM)算法,用于训练基于区域的卷积检测器。

作者的动机一如既往——检测数据集包含大量简单的样本和少量困难样本。

自动选择这些困难示例可以使训练更有效、更高效。

OHEM是一种简单直观的算法,消除了常用的几种启发式和超参数等。

但更重要的是,它在PASCAL VOC 2007和2012等基准上的检测性能得到了一致和显著的提高。

正如MS COCO数据集的结果所表明的那样,随着数据集的扩大和困难,其有效性会提高。

Approach

作者提出了一种简单而有效的在线困难样本挖掘算法,用于训练 Fast R-CNN(或任何Fast R-CNN风格的目标检测器)。

作者认为,目前为 SGD 创建小批量的方式(第3.1节)是没有效率和次优的,作者证明其所提方法会导致更好的训练(更低的训练损失)和更高的测试性能(mAP)。

Online hard example mining

回想定义困难样本挖掘算法的交替步骤:

(a)在一段时间内,使用固定模型来查找新样本添加到 active 训练集;

(b)然后,在一段时间内,模型在固定 active 训练集上训练

在基于 SVM 的目标检测器中,例如在 R-CNN 或 SPPnet 中训练的SVM中

步骤(a)检查可变数量的图像(通常是10或100),直到 active 训练集达到阈值大小,

然后在步骤(b)训练 SVM 在 active 训练集上收敛。

这个过程重复,直到 active 训练集包含所有支持向量。

将类似的策略应用于FRCN ConvNet训练会减慢学习速度,因为在从10秒或100秒的图像中选择样本时没有进行模型更新。

作者的主要观察是,这些交替步骤可以与如何使用在线 SGD 训练 FRCN 相结合。关键是,尽管每个 SGD 迭代只采样少量图像,但每个图像都包含数千个 RoI 样本,我们可以从中选择困难样本,而不是启发式采样子集。此策略仅将模型 “冻结” 为一个小批量,从而将交替模板与 SGD 相匹配。因此,模型的更新频率与基线SGD方法完全相同,因此学习不会延迟。

更具体地说,在线困难样本挖掘算法(OHEM)过程如下。对于 SGD 迭代 $t$ 的输入图像,首先使用卷积网络计算卷积特征图。然后,RoI 网络使用此特征图和所有输入 RoIs(R),而不是采样的小批量[14]进行前向传播。请记住,此步骤仅涉及 RoI 池化、几个 fc 层和每个 RoI 的损失计算。损失代表当前网络在每个 RoI 上的表现。通过按损失对输入 RoIs 进行排序并取当前网络表现最差的 B/N 样本来选择困难样本。大部分前向计算是通过卷积特征映射在 RoI 之间共享的,因此前向所有 RoI 所需的额外计算相对较小。此外,由于只选择了少量的 RoI 来更新模型,因此反向传播并不比以前贵。

然而,有一个小警告:高度重叠的 RoI 可能会产生相关的损失。此外,由于分辨率差异,这些重叠的 RoI 可以投射到卷积特征图中的同一区域,从而导致损失重复计数。为了处理这些冗余的区域,使用标准非最大抑制(NMS)来执行重复数据删除。给定RoI及其损失的列表,NMS通过迭代选择具有最高损失的RoI,然后删除与所选区域高度重叠的所有低损失RoI。作者使用 0.7 的 IoU 阈值来抑制高度重叠的RoI。

作者注意到,上述过程不需要 fg-bg 比率来进行数据平衡。如果忽视任何类别,其损失将增加,直到它具有很高的采样概率。可以有 fg RoIs 容易的图像(例如汽车的规范视图),因此网络可以自由使用小批量中的bg区域;反之亦然,当bg微不足道时(例如天空、草等),小批量可以完全是fg区域。

Conclusion

作者提出了一种在线困难样本挖掘(OHEM)算法,这是一种训练基于区域的卷积检测器的简单有效的方法。

OHEM通过自动选择困难样本,消除了常用的几个启发式设计和超参数,从而简化了训练。

作者进行了广泛的实验分析,以证明该算法的有效性,这导致了更好的训练收敛性和标准基准检测精度的一致提高。

当将OHEM与其他正交方法一起使用时,作者还报告了PASCAL VOC 2007和2012的最新结果。

虽然作者在整个论文中使用了 Fast R-CNN,但 OHEM 可用于训练任何基于区域的卷积网络检测器。